ref: 878092004956418bfd77bfdb9fc9dd7f640f80d2
parent: a6656a986bf9dde51561cab090648e0117b173ad
parent: 3c37bfc6fa2570a0a77c1230673910257ecf32df
author: yenatch <yenatch@gmail.com>
date: Sat Dec 23 08:17:46 EST 2017
Merge pull request #419 from roukaour/master More reorganization and documentation
--- a/FAQ.md
+++ b/FAQ.md
@@ -1,17 +1,31 @@
# FAQ
+
+## Questions
+
+- [What is pokecrystal11.gbc?](#what-is-pokecrystal11gbc)
+- [Can't build ROM; "ERROR: `UNION` already defined"](#cant-build-rom-error-union-already-defined)
+- [Can't build ROM; "Segmentation fault" from `rgbgfx`](#cant-build-rom-segmentation-fault-from-rgbgfx)
+- [Can't build ROM; "Section is too big" or "Unable to place section in bank"](#cant-build-rom-section-is-too-big-or-unable-to-place-section-in-bank)
+- [How do I edit maps?](#how-do-i-edit-maps)
+- [I need more help!](#i-need-more-help)
+
+
## What is pokecrystal11.gbc?
Version 1.1 of Pokémon Crystal, which fixed some issues with the initial international release. `make crystal11` defines `CRYSTAL11` so the assembly builds the changed version.
+
## Can't build ROM; "ERROR: `UNION` already defined"
Download [**rgbds 0.3.3**](rgbds). Earlier versions will not work.
+
## Can't build ROM; "Segmentation fault" from `rgbgfx`
If you are using 64-bit Windows, download [**64-bit Cygwin**](cygwin) and [**64-bit rgbds**](rgbds).
+
## Can't build ROM; "Section is too big" or "Unable to place section in bank"
If you have not changed any of the asm, make sure you have the latest version of pokecrystal and the correct version of rgbds (see [INSTALL.md](INSTALL.md)).
@@ -18,9 +32,11 @@
If you added or changed any code, it has to fit in the **memory banks**. The 2MB ROM is divided into 128 banks of 4KB each, numbered $00 to $7F. The linkerscript **pokecrystal.link** lists which **`SECTION`**s go in which banks. Try moving some code into a new section.
+
## How do I edit maps?
For `asm` scripts, read [docs/map_scripts.md](docs/map_scripts.md). For `blk` layouts, try [crowdmap](crowdmap) or [Polished Map](polished-map).
+
## I need more help!
--- a/Makefile
+++ b/Makefile
@@ -17,20 +17,20 @@
crystal_obj := \
-wram.o \
-main.o \
-lib/mobile/main.o \
-home.o \
audio.o \
+home.o \
+main.o \
maps.o \
-engine/events.o \
+wram.o \
+data/pokemon/dex_entries.o \
+data/pokemon/egg_moves.o \
+data/pokemon/evos_attacks.o \
engine/credits.o \
-data/egg_moves.o \
-data/evos_attacks.o \
-data/pokedex/entries.o \
-misc/crystal_misc.o \
-text/common_text.o \
-gfx/pics.o
+engine/events.o \
+gfx/pics.o \
+gfx/sprites.o \
+lib/mobile/main.o \
+text/common_text.o
crystal11_obj := $(crystal_obj:.o=11.o)
@@ -197,15 +197,17 @@
gfx/battle/dude.2bpp: rgbgfx += -h
+gfx/font/unused_bold_font.1bpp: tools/gfx += --trim-whitespace
+
gfx/pokegear/pokegear.2bpp: rgbgfx += -x2
gfx/pokegear/pokegear_sprites.2bpp: tools/gfx += --trim-whitespace
-gfx/unknown/ascii_font.2bpp: tools/gfx += --trim-whitespace
-gfx/unknown/bold_font.1bpp: tools/gfx += --trim-whitespace
-gfx/unknown/egg_animated.2bpp: tools/gfx += --trim-whitespace
-gfx/unknown/egg_animated_nonmatching.2bpp: tools/gfx += --remove-duplicates --remove-xflip
-gfx/unknown/mobile_splash.2bpp: tools/gfx += --remove-duplicates --remove-xflip
-gfx/unknown/pichu_animated.2bpp: tools/gfx += --trim-whitespace
+gfx/mobile/ascii_font.2bpp: tools/gfx += --trim-whitespace
+gfx/mobile/electro_ball.2bpp: tools/gfx += --trim-whitespace
+gfx/mobile/electro_ball_nonmatching.2bpp: tools/gfx += --remove-duplicates --remove-xflip
+gfx/mobile/mobile_splash.2bpp: tools/gfx += --remove-duplicates --remove-xflip
+gfx/mobile/pichu_animated.2bpp: tools/gfx += --trim-whitespace
+
gfx/unknown/unknown_egg.2bpp: rgbgfx += -h
--- a/audio.asm
+++ b/audio.asm
@@ -4,7 +4,7 @@
SECTION "Audio", ROMX
INCLUDE "audio/engine.asm"
-INCLUDE "trainers/encounter_music.asm"
+INCLUDE "data/trainers/encounter_music.asm"
INCLUDE "audio/music_pointers.asm"
INCLUDE "audio/music/nothing.asm"
INCLUDE "audio/cry_pointers.asm"
@@ -157,6 +157,6 @@
SECTION "Cries", ROMX
-CryHeaders:: INCLUDE "audio/cry_headers.asm"
+INCLUDE "data/pokemon/cry_headers.asm"
INCLUDE "audio/cries.asm"
--- a/audio/cry_headers.asm
+++ /dev/null
@@ -1,258 +1,0 @@
-; f2787
-; index, pitch, length
-BulbasaurCryHeader: cry_header CRY_BULBASAUR, $080, $081
-IvysaurCryHeader: cry_header CRY_BULBASAUR, $020, $100
-VenusaurCryHeader: cry_header CRY_BULBASAUR, $000, $140
-CharmanderCryHeader: cry_header CRY_CHARMANDER, $060, $0c0
-CharmeleonCryHeader: cry_header CRY_CHARMANDER, $020, $0c0
-CharizardCryHeader: cry_header CRY_CHARMANDER, $000, $100
-SquirtleCryHeader: cry_header CRY_SQUIRTLE, $060, $0c0
-WartortleCryHeader: cry_header CRY_SQUIRTLE, $020, $0c0
-BlastoiseCryHeader: cry_header CRY_BLASTOISE, $000, $100
-CaterpieCryHeader: cry_header CRY_CATERPIE, $080, $0a0
-MetapodCryHeader: cry_header CRY_METAPOD, $0cc, $081
-ButterfreeCryHeader: cry_header CRY_CATERPIE, $077, $0c0
-WeedleCryHeader: cry_header CRY_WEEDLE, $0ee, $081
-KakunaCryHeader: cry_header CRY_BLASTOISE, $0ff, $081
-BeedrillCryHeader: cry_header CRY_BLASTOISE, $060, $100
-PidgeyCryHeader: cry_header CRY_PIDGEY, $0df, $084
-PidgeottoCryHeader: cry_header CRY_PIDGEOTTO, $028, $140
-PidgeotCryHeader: cry_header CRY_PIDGEOTTO, $011, $17f
-RattataCryHeader: cry_header CRY_RATTATA, $000, $100
-RaticateCryHeader: cry_header CRY_RATTATA, $020, $17f
-SpearowCryHeader: cry_header CRY_SPEAROW, $000, $100
-FearowCryHeader: cry_header CRY_FEAROW, $040, $120
-EkansCryHeader: cry_header CRY_EKANS, $012, $0c0
-ArbokCryHeader: cry_header CRY_EKANS, $0e0, $090
-PikachuCryHeader: cry_header CRY_BULBASAUR, $0ee, $081
-RaichuCryHeader: cry_header CRY_RAICHU, $0ee, $088
-SandshrewCryHeader: cry_header CRY_NIDORAN_M, $020, $0c0
-SandslashCryHeader: cry_header CRY_NIDORAN_M, $0ff, $17f
-NidoranFCryHeader: cry_header CRY_NIDORAN_F, $000, $100
-NidorinaCryHeader: cry_header CRY_NIDORAN_F, $02c, $160
-NidoqueenCryHeader: cry_header CRY_NIDOQUEEN, $000, $100
-NidoranMCryHeader: cry_header CRY_NIDORAN_M, $000, $100
-NidorinoCryHeader: cry_header CRY_NIDORAN_M, $02c, $140
-NidokingCryHeader: cry_header CRY_RAICHU, $000, $100
-ClefairyCryHeader: cry_header CRY_CLEFAIRY, $0cc, $081
-ClefableCryHeader: cry_header CRY_CLEFAIRY, $0aa, $0a0
-VulpixCryHeader: cry_header CRY_VULPIX, $04f, $090
-NinetalesCryHeader: cry_header CRY_VULPIX, $088, $0e0
-JigglypuffCryHeader: cry_header CRY_PIDGEY, $0ff, $0b5
-WigglytuffCryHeader: cry_header CRY_PIDGEY, $068, $0e0
-ZubatCryHeader: cry_header CRY_SQUIRTLE, $0e0, $100
-GolbatCryHeader: cry_header CRY_SQUIRTLE, $0fa, $100
-OddishCryHeader: cry_header CRY_ODDISH, $0dd, $081
-GloomCryHeader: cry_header CRY_ODDISH, $0aa, $0c0
-VileplumeCryHeader: cry_header CRY_VILEPLUME, $022, $17f
-ParasCryHeader: cry_header CRY_PARAS, $020, $160
-ParasectCryHeader: cry_header CRY_PARAS, $042, $17f
-VenonatCryHeader: cry_header CRY_VENONAT, $044, $0c0
-VenomothCryHeader: cry_header CRY_VENONAT, $029, $100
-DiglettCryHeader: cry_header CRY_DIGLETT, $0aa, $081
-DugtrioCryHeader: cry_header CRY_DIGLETT, $02a, $090
-MeowthCryHeader: cry_header CRY_CLEFAIRY, $077, $090
-PersianCryHeader: cry_header CRY_CLEFAIRY, $099, $17f
-PsyduckCryHeader: cry_header CRY_PSYDUCK, $020, $0e0
-GolduckCryHeader: cry_header CRY_PSYDUCK, $0ff, $0c0
-MankeyCryHeader: cry_header CRY_NIDOQUEEN, $0dd, $0e0
-PrimeapeCryHeader: cry_header CRY_NIDOQUEEN, $0af, $0c0
-GrowlitheCryHeader: cry_header CRY_GROWLITHE, $020, $0c0
-ArcanineCryHeader: cry_header CRY_WEEDLE, $000, $100
-PoliwagCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
-PoliwhirlCryHeader: cry_header CRY_PIDGEY, $077, $0e0
-PoliwrathCryHeader: cry_header CRY_PIDGEY, $000, $17f
-AbraCryHeader: cry_header CRY_METAPOD, $0c0, $081
-KadabraCryHeader: cry_header CRY_METAPOD, $0a8, $140
-AlakazamCryHeader: cry_header CRY_METAPOD, $098, $17f
-MachopCryHeader: cry_header CRY_GROWLITHE, $0ee, $081
-MachokeCryHeader: cry_header CRY_GROWLITHE, $048, $0e0
-MachampCryHeader: cry_header CRY_GROWLITHE, $008, $140
-BellsproutCryHeader: cry_header CRY_PSYDUCK, $055, $081
-WeepinbellCryHeader: cry_header CRY_WEEPINBELL, $044, $0a0
-VictreebelCryHeader: cry_header CRY_WEEPINBELL, $066, $14c
-TentacoolCryHeader: cry_header CRY_VENONAT, $000, $100
-TentacruelCryHeader: cry_header CRY_VENONAT, $0ee, $17f
-GeodudeCryHeader: cry_header CRY_VULPIX, $0f0, $090
-GravelerCryHeader: cry_header CRY_VULPIX, $000, $100
-GolemCryHeader: cry_header CRY_GOLEM, $0e0, $0c0
-PonytaCryHeader: cry_header CRY_WEEPINBELL, $000, $100
-RapidashCryHeader: cry_header CRY_WEEPINBELL, $020, $140
-SlowpokeCryHeader: cry_header CRY_SLOWPOKE, $000, $100
-SlowbroCryHeader: cry_header CRY_GROWLITHE, $000, $100
-MagnemiteCryHeader: cry_header CRY_METAPOD, $080, $0e0
-MagnetonCryHeader: cry_header CRY_METAPOD, $020, $140
-FarfetchDCryHeader: cry_header CRY_SPEAROW, $0dd, $081
-DoduoCryHeader: cry_header CRY_DIGLETT, $0bb, $081
-DodrioCryHeader: cry_header CRY_DIGLETT, $099, $0a0
-SeelCryHeader: cry_header CRY_SEEL, $088, $140
-DewgongCryHeader: cry_header CRY_SEEL, $023, $17f
-GrimerCryHeader: cry_header CRY_GRIMER, $000, $100
-MukCryHeader: cry_header CRY_MUK, $0ef, $17f
-ShellderCryHeader: cry_header CRY_FEAROW, $000, $100
-CloysterCryHeader: cry_header CRY_FEAROW, $06f, $160
-GastlyCryHeader: cry_header CRY_METAPOD, $000, $100
-HaunterCryHeader: cry_header CRY_METAPOD, $030, $0c0
-GengarCryHeader: cry_header CRY_MUK, $000, $17f
-OnixCryHeader: cry_header CRY_EKANS, $0ff, $140
-DrowzeeCryHeader: cry_header CRY_DROWZEE, $088, $0a0
-HypnoCryHeader: cry_header CRY_DROWZEE, $0ee, $0c0
-KrabbyCryHeader: cry_header CRY_KRABBY, $020, $160
-KinglerCryHeader: cry_header CRY_KRABBY, $0ee, $160
-VoltorbCryHeader: cry_header CRY_VOLTORB, $0ed, $100
-ElectrodeCryHeader: cry_header CRY_VOLTORB, $0a8, $110
-ExeggcuteCryHeader: cry_header CRY_DIGLETT, $000, $100
-ExeggutorCryHeader: cry_header CRY_DROWZEE, $000, $100
-CuboneCryHeader: cry_header CRY_CLEFAIRY, $000, $100
-MarowakCryHeader: cry_header CRY_ODDISH, $04f, $0e0
-HitmonleeCryHeader: cry_header CRY_GOLEM, $080, $140
-HitmonchanCryHeader: cry_header CRY_SEEL, $0ee, $140
-LickitungCryHeader: cry_header CRY_SEEL, $000, $100
-KoffingCryHeader: cry_header CRY_GOLEM, $0e6, $15d
-WeezingCryHeader: cry_header CRY_GOLEM, $0ff, $17f
-RhyhornCryHeader: cry_header CRY_CHARMANDER, $000, $100
-RhydonCryHeader: cry_header CRY_RHYDON, $000, $100
-ChanseyCryHeader: cry_header CRY_PIDGEOTTO, $00a, $140
-TangelaCryHeader: cry_header CRY_GOLEM, $000, $100
-KangaskhanCryHeader: cry_header CRY_KANGASKHAN, $000, $100
-HorseaCryHeader: cry_header CRY_CLEFAIRY, $099, $090
-SeadraCryHeader: cry_header CRY_CLEFAIRY, $03c, $081
-GoldeenCryHeader: cry_header CRY_CATERPIE, $080, $0c0
-SeakingCryHeader: cry_header CRY_CATERPIE, $010, $17f
-StaryuCryHeader: cry_header CRY_PARAS, $002, $0a0
-StarmieCryHeader: cry_header CRY_PARAS, $000, $100
-MrMimeCryHeader: cry_header CRY_KRABBY, $008, $0c0
-ScytherCryHeader: cry_header CRY_CATERPIE, $000, $100
-JynxCryHeader: cry_header CRY_DROWZEE, $0ff, $17f
-ElectabuzzCryHeader: cry_header CRY_VOLTORB, $08f, $17f
-MagmarCryHeader: cry_header CRY_CHARMANDER, $0ff, $0b0
-PinsirCryHeader: cry_header CRY_PIDGEOTTO, $000, $100
-TaurosCryHeader: cry_header CRY_SQUIRTLE, $011, $0c0
-MagikarpCryHeader: cry_header CRY_EKANS, $080, $080
-GyaradosCryHeader: cry_header CRY_EKANS, $000, $100
-LaprasCryHeader: cry_header CRY_LAPRAS, $000, $100
-DittoCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
-EeveeCryHeader: cry_header CRY_VENONAT, $088, $0e0
-VaporeonCryHeader: cry_header CRY_VENONAT, $0aa, $17f
-JolteonCryHeader: cry_header CRY_VENONAT, $03d, $100
-FlareonCryHeader: cry_header CRY_VENONAT, $010, $0a0
-PorygonCryHeader: cry_header CRY_WEEPINBELL, $0aa, $17f
-OmanyteCryHeader: cry_header CRY_GROWLITHE, $0f0, $081
-OmastarCryHeader: cry_header CRY_GROWLITHE, $0ff, $0c0
-KabutoCryHeader: cry_header CRY_CATERPIE, $0bb, $0c0
-KabutopsCryHeader: cry_header CRY_FEAROW, $0ee, $081
-AerodactylCryHeader: cry_header CRY_VILEPLUME, $020, $170
-SnorlaxCryHeader: cry_header CRY_GRIMER, $055, $081
-ArticunoCryHeader: cry_header CRY_RAICHU, $080, $0c0
-ZapdosCryHeader: cry_header CRY_FEAROW, $0ff, $100
-MoltresCryHeader: cry_header CRY_RAICHU, $0f8, $0c0
-DratiniCryHeader: cry_header CRY_BULBASAUR, $060, $0c0
-DragonairCryHeader: cry_header CRY_BULBASAUR, $040, $100
-DragoniteCryHeader: cry_header CRY_BULBASAUR, $03c, $140
-MewtwoCryHeader: cry_header CRY_PARAS, $099, $17f
-MewCryHeader: cry_header CRY_PARAS, $0ee, $17f
-ChikoritaCryHeader: cry_header CRY_CHIKORITA, -$010, $0b0
-BayleefCryHeader: cry_header CRY_CHIKORITA, -$022, $120
-MeganiumCryHeader: cry_header CRY_CHIKORITA, -$0b7, $200
-CyndaquilCryHeader: cry_header CRY_CYNDAQUIL, $347, $080
-QuilavaCryHeader: cry_header CRY_CYNDAQUIL, $321, $120
-TyphlosionCryHeader: cry_header CRY_TYPHLOSION, $f00, $0d4
-TotodileCryHeader: cry_header CRY_TOTODILE, $46c, $0e8
-CroconawCryHeader: cry_header CRY_TOTODILE, $440, $110
-FeraligatrCryHeader: cry_header CRY_TOTODILE, $3fc, $180
-SentretCryHeader: cry_header CRY_SENTRET, $08a, $0b8
-FurretCryHeader: cry_header CRY_SENTRET, $06b, $102
-HoothootCryHeader: cry_header CRY_HOOTHOOT, $091, $0d8
-NoctowlCryHeader: cry_header CRY_HOOTHOOT, $000, $1a0
-LedybaCryHeader: cry_header CRY_LEDYBA, $000, $0de
-LedianCryHeader: cry_header CRY_LEDYBA, -$096, $138
-SpinarakCryHeader: cry_header CRY_SPINARAK, $011, $200
-AriadosCryHeader: cry_header CRY_SPINARAK, -$0ae, $1e2
-CrobatCryHeader: cry_header CRY_SQUIRTLE, -$010, $140
-ChinchouCryHeader: cry_header CRY_CYNDAQUIL, $3c9, $140
-LanturnCryHeader: cry_header CRY_CYNDAQUIL, $2d0, $110
-PichuCryHeader: cry_header CRY_PICHU, $000, $140
-CleffaCryHeader: cry_header CRY_CLEFFA, $061, $091
-IgglybuffCryHeader: cry_header CRY_CHIKORITA, $0e8, $0e8
-TogepiCryHeader: cry_header CRY_TOGEPI, $010, $100
-TogeticCryHeader: cry_header CRY_TOGETIC, $03b, $038
-NatuCryHeader: cry_header CRY_NATU, -$067, $100
-XatuCryHeader: cry_header CRY_NATU, -$0a7, $168
-MareepCryHeader: cry_header CRY_MAREEP, $022, $0d8
-FlaaffyCryHeader: cry_header CRY_MAREEP, -$007, $180
-AmpharosCryHeader: cry_header CRY_AMPHAROS, -$07c, $0e8
-BellossomCryHeader: cry_header CRY_CLEFFA, $084, $150
-MarillCryHeader: cry_header CRY_MARILL, $11b, $120
-AzumarillCryHeader: cry_header CRY_MARILL, $0b6, $180
-SudowoodoCryHeader: cry_header CRY_CLEFFA, $f40, $180
-PolitoedCryHeader: cry_header CRY_CLEFFA, -$2a3, $1c8
-HoppipCryHeader: cry_header CRY_CLEFFA, $03b, $0c8
-SkiploomCryHeader: cry_header CRY_CLEFFA, $027, $138
-JumpluffCryHeader: cry_header CRY_CLEFFA, $000, $180
-AipomCryHeader: cry_header CRY_AIPOM, -$051, $0e8
-SunkernCryHeader: cry_header CRY_MARILL, $12b, $0b8
-SunfloraCryHeader: cry_header CRY_SUNFLORA, -$020, $180
-YanmaCryHeader: cry_header CRY_TOTODILE, $031, $0c8
-WooperCryHeader: cry_header CRY_WOOPER, $093, $0af
-QuagsireCryHeader: cry_header CRY_WOOPER, -$0c6, $140
-EspeonCryHeader: cry_header CRY_AIPOM, $0a2, $140
-UmbreonCryHeader: cry_header CRY_VENONAT, -$0e9, $0f0
-MurkrowCryHeader: cry_header CRY_MARILL, -$01f, $180
-SlowkingCryHeader: cry_header CRY_SLOWKING, $104, $200
-MisdreavusCryHeader: cry_header CRY_HOOTHOOT, $130, $0e8
-UnownCryHeader: cry_header CRY_HOOTHOOT, $162, $100
-WobbuffetCryHeader: cry_header CRY_AMPHAROS, $27b, $144
-GirafarigCryHeader: cry_header CRY_GIRAFARIG, $041, $200
-PinecoCryHeader: cry_header CRY_SLOWKING, $080, $100
-ForretressCryHeader: cry_header CRY_SLOWKING, $000, $180
-DunsparceCryHeader: cry_header CRY_DUNSPARCE, $1c4, $100
-GligarCryHeader: cry_header CRY_GLIGAR, -$102, $100
-SteelixCryHeader: cry_header CRY_TYPHLOSION, $0ef, $0f7
-SnubbullCryHeader: cry_header CRY_DUNSPARCE, $112, $0e8
-GranbullCryHeader: cry_header CRY_DUNSPARCE, $000, $180
-QwilfishCryHeader: cry_header CRY_SLOWKING, $160, $0e0
-ScizorCryHeader: cry_header CRY_AMPHAROS, $000, $160
-ShuckleCryHeader: cry_header CRY_DUNSPARCE, $290, $0a8
-HeracrossCryHeader: cry_header CRY_AMPHAROS, $035, $0e0
-SneaselCryHeader: cry_header CRY_WOOPER, $053, $0af
-TeddiursaCryHeader: cry_header CRY_TEDDIURSA, $7a2, $06e
-UrsaringCryHeader: cry_header CRY_TEDDIURSA, $640, $0d8
-SlugmaCryHeader: cry_header CRY_SLUGMA, -$1d8, $140
-MagcargoCryHeader: cry_header CRY_MAGCARGO, -$20d, $1c0
-SwinubCryHeader: cry_header CRY_CYNDAQUIL, $1fe, $140
-PiloswineCryHeader: cry_header CRY_MAGCARGO, -$109, $100
-CorsolaCryHeader: cry_header CRY_MAGCARGO, $0a1, $0e8
-RemoraidCryHeader: cry_header CRY_SUNFLORA, $00d, $100
-OctilleryCryHeader: cry_header CRY_TOTODILE, $000, $180
-DelibirdCryHeader: cry_header CRY_TEDDIURSA, $002, $06a
-MantineCryHeader: cry_header CRY_MANTINE, -$0be, $0f0
-SkarmoryCryHeader: cry_header CRY_AMPHAROS, $8a9, $180
-HoundourCryHeader: cry_header CRY_CYNDAQUIL, $039, $140
-HoundoomCryHeader: cry_header CRY_TOTODILE, -$10a, $100
-KingdraCryHeader: cry_header CRY_SLUGMA, $2fb, $100
-PhanpyCryHeader: cry_header CRY_SENTRET, $048, $230
-DonphanCryHeader: cry_header CRY_DONPHAN, $000, $1a0
-Porygon2CryHeader: cry_header CRY_GIRAFARIG, $073, $240
-StantlerCryHeader: cry_header CRY_AIPOM, -$160, $180
-SmeargleCryHeader: cry_header CRY_PICHU, -$21a, $1f0
-TyrogueCryHeader: cry_header CRY_AIPOM, $02c, $108
-HitmontopCryHeader: cry_header CRY_SLUGMA, $000, $100
-SmoochumCryHeader: cry_header CRY_MARILL, $068, $100
-ElekidCryHeader: cry_header CRY_SUNFLORA, -$2d8, $0b4
-MagbyCryHeader: cry_header CRY_TEDDIURSA, $176, $03a
-MiltankCryHeader: cry_header CRY_GLIGAR, -$1cd, $1a0
-BlisseyCryHeader: cry_header CRY_SLOWKING, $293, $140
-RaikouCryHeader: cry_header CRY_RAIKOU, $22e, $120
-EnteiCryHeader: cry_header CRY_ENTEI, $000, $1a0
-SuicuneCryHeader: cry_header CRY_MAGCARGO, $000, $180
-LarvitarCryHeader: cry_header CRY_RAIKOU, $05f, $0d0
-PupitarCryHeader: cry_header CRY_SPINARAK, -$1db, $150
-TyranitarCryHeader: cry_header CRY_RAIKOU, -$100, $180
-LugiaCryHeader: cry_header CRY_TYPHLOSION, $000, $100
-HoOhCryHeader: cry_header CRY_AIPOM, $000, $180
-CelebiCryHeader: cry_header CRY_ENTEI, $14a, $111
-CryHeader252: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader253: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader254: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader255: cry_header CRY_NIDORAN_M, 0, 0
-; f2d81
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -245,7 +245,7 @@
.Channel1:
ld a, [Danger]
- bit 7, a
+ bit DANGER_ON_F, a
ret nz
.Channel5:
ld hl, Channel1NoteFlags - Channel1
@@ -537,9 +537,9 @@
PlayDanger: ; e8307
ld a, [Danger]
- bit 7, a
+ bit DANGER_ON_F, a
ret z
- and $7f
+ and $ff - (1 << DANGER_ON_F)
ld d, a
call _CheckSFX
jr c, .asm_e8335
@@ -573,7 +573,7 @@
jr c, .asm_e833c
xor a
.asm_e833c
- or $80
+ or 1 << DANGER_ON_F
ld [Danger], a
; is hw ch1 on?
ld a, [SoundOutput]
@@ -632,9 +632,9 @@
ld [MusicFadeCount], a
; get SO1 volume
ld a, [Volume]
- and $7
+ and VOLUME_SO1_LEVEL
; which way are we fading?
- bit 7, d
+ bit MUSIC_FADE_IN_F, d
jr nz, .fadein
; fading out
and a
@@ -648,7 +648,7 @@
ld [Volume], a
; did we just get on a bike?
ld a, [PlayerState]
- cp $1 ; bicycle
+ cp PLAYER_BIKE
jr z, .bicycle
push bc
; restart sound
@@ -688,7 +688,7 @@
pop bc
; fade in
ld hl, MusicFade
- set 7, [hl]
+ set MUSIC_FADE_IN_F, [hl]
ret
.fadein
@@ -2882,9 +2882,9 @@
; e8d80
-INCLUDE "data/audio/notes.asm"
+INCLUDE "audio/notes.asm"
-INCLUDE "data/audio/wave_samples.asm"
+INCLUDE "audio/wave_samples.asm"
INCLUDE "audio/drumkits.asm"
@@ -2976,7 +2976,7 @@
ld [MusicFade], a
; play nothing for one frame
push de
- ld de, 0 ; id: Music_Nothing
+ ld de, MUSIC_NONE
call PlayMusic
call DelayFrame
; play new song
--- /dev/null
+++ b/audio/notes.asm
@@ -1,0 +1,27 @@
+FrequencyTable: ; e8d80
+ dw 0 ; __
+ dw $f82c ; C_
+ dw $f89d ; C#
+ dw $f907 ; D_
+ dw $f96b ; D#
+ dw $f9ca ; E_
+ dw $fa23 ; F_
+ dw $fa77 ; F#
+ dw $fac7 ; G_
+ dw $fb12 ; G#
+ dw $fb58 ; A_
+ dw $fb9b ; A#
+ dw $fbda ; B_
+ dw $fc16 ; C_
+ dw $fc4e ; C#
+ dw $fc83 ; D_
+ dw $fcb5 ; D#
+ dw $fce5 ; E_
+ dw $fd11 ; F_
+ dw $fd3b ; F#
+ dw $fd63 ; G_
+ dw $fd89 ; G#
+ dw $fdac ; A_
+ dw $fdcd ; A#
+ dw $fded ; B_
+; e8db2
--- /dev/null
+++ b/audio/wave_samples.asm
@@ -1,0 +1,14 @@
+WaveSamples: ; e8db2
+ ; these are streams of 32 4-bit values used as wavepatterns
+ ; nothing interesting here!
+ dn 0, 2, 4, 6, 8, 10, 12, 14, 15, 15, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 3, 3, 2, 2, 1, 1
+ dn 0, 2, 4, 6, 8, 10, 12, 14, 14, 15, 15, 15, 15, 14, 14, 14, 13, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 1, 1
+ dn 1, 3, 6, 9, 11, 13, 14, 14, 14, 14, 15, 15, 15, 15, 14, 13, 13, 14, 15, 15, 15, 15, 14, 14, 14, 14, 13, 11, 9, 6, 3, 1
+ dn 0, 2, 4, 6, 8, 10, 12, 13, 14, 15, 15, 14, 13, 14, 15, 15, 14, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
+ dn 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 14, 15, 7, 7, 15, 14, 14, 13, 12, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0
+ dn 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 3, 3, 2, 2, 1, 1, 15, 15, 14, 14, 12, 12, 10, 10, 8, 8, 10, 10, 12, 12, 14, 14
+ dn 0, 2, 4, 6, 8, 10, 12, 14, 12, 11, 10, 9, 8, 7, 6, 5, 15, 15, 15, 14, 14, 13, 13, 12, 4, 4, 3, 3, 2, 2, 1, 1
+ dn 12, 0, 10, 9, 8, 7, 15, 5, 15, 15, 15, 14, 14, 13, 13, 12, 4, 4, 3, 3, 2, 2, 15, 1, 0, 2, 4, 6, 8, 10, 12, 14
+ dn 4, 4, 3, 3, 2, 2, 1, 15, 0, 0, 4, 6, 8, 10, 12, 14, 15, 8, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5
+ dn 1, 1, 0, 0, 0, 0, 0, 8, 0, 0, 1, 3, 5, 7, 9, 10, 11, 4, 11, 10, 10, 9, 9, 8, 8, 7, 6, 5, 4, 3, 2, 1
+; e8e52
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -820,42 +820,8 @@
ret
; 3c59a
-FleeMons:
+INCLUDE "data/battle/flee_mons.asm"
-SometimesFleeMons: ; 3c59a
- db MAGNEMITE
- db GRIMER
- db TANGELA
- db MR__MIME
- db EEVEE
- db PORYGON
- db DRATINI
- db DRAGONAIR
- db TOGETIC
- db UMBREON
- db UNOWN
- db SNUBBULL
- db HERACROSS
- db -1
-
-OftenFleeMons: ; 3c5a8
- db CUBONE
- db ARTICUNO
- db ZAPDOS
- db MOLTRES
- db QUAGSIRE
- db DELIBIRD
- db PHANPY
- db TEDDIURSA
- db -1
-
-AlwaysFleeMons: ; 3c5b1
- db RAIKOU
- db ENTEI
-; db SUICUNE
- db -1
-; 3c5b4
-
CompareMovePriority: ; 3c5b4
; Compare the priority of the player and enemy's moves.
; Return carry if the player goes first, or z if they match.
@@ -876,7 +842,7 @@
ld b, a
- ; Vital throw goes last.
+ ; Vital Throw goes last.
cp VITAL_THROW
ld a, 0
ret z
@@ -4454,7 +4420,7 @@
HandleHPHealingItem: ; 3dd2f
callab GetOpponentItem
ld a, b
- cp $1
+ cp HELD_BERRY
ret nz
ld de, EnemyMonHP + 1
ld hl, EnemyMonMaxHP
@@ -4856,12 +4822,12 @@
.no_danger
ld hl, Danger
- res 7, [hl]
+ res DANGER_ON_F, [hl]
jr .done
.danger
ld hl, Danger
- set 7, [hl]
+ set DANGER_ON_F, [hl]
.done
ret
--- a/battle/effect_command_pointers.asm
+++ b/battle/effect_command_pointers.asm
@@ -1,7 +1,7 @@
dw 0 ; padding
BattleCommandPointers: ; 3fd28
-; entries correspond to constants/effect_command_constants.asm
+; entries correspond to macros/scripts/effect_commands.asm
dw BattleCommand_CheckTurn ; 34084
dw BattleCommand_CheckObedience ; 343db
dw BattleCommand_UsedMoveText ; 34541
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -3191,6 +3191,8 @@
ld a, [wd002]
ld c, a
ld a, [CurBattleMon]
+ ; BUG: this can desynchronize link battles
+ ; Change "cp [hl]" to "cp c" to fix
cp [hl]
ld hl, BattleMonStatus
jr z, .active_mon
@@ -9763,6 +9765,7 @@
CheckHiddenOpponent: ; 37daa
+; BUG: This routine should account for Lock-On and Mind Reader.
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
@@ -9806,7 +9809,7 @@
ret z
push hl
- ld hl, ItemAttributes + 2
+ ld hl, ItemAttributes + ITEMATTR_EFFECT
dec a
ld c, a
ld b, 0
--- a/battle/magikarp_length.asm
+++ /dev/null
@@ -1,214 +1,0 @@
-CalcMagikarpLength: ; fbbfc
-; Return Magikarp's length (in mm) at wMagikarpLength (big endian).
-;
-; input:
-; de: EnemyMonDVs
-; bc: PlayerID
-
-; This function is poorly commented.
-
-; In short, it generates a value between 190 and 1786 using
-; a Magikarp's DVs and its trainer ID. This value is further
-; filtered in LoadEnemyMon to make longer Magikarp even rarer.
-
-; The value is generated from a lookup table.
-; The index is determined by the dv xored with the player's trainer id.
-
-; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id)
-
-; if bc < 10: [wMagikarpLength] = c + 190
-; if bc >= $ff00: [wMagikarpLength] = c + 1370
-; else: [wMagikarpLength] = z * 100 + (bc - x) / y
-
-; X, Y, and Z depend on the value of b as follows:
-
-; if b = 0: x = 310, y = 2, z = 3
-; if b = 1: x = 710, y = 4, z = 4
-; if b = 2-9: x = 2710, y = 20, z = 5
-; if b = 10-29: x = 7710, y = 50, z = 6
-; if b = 30-68: x = 17710, y = 100, z = 7
-; if b = 69-126: x = 32710, y = 150, z = 8
-; if b = 127-185: x = 47710, y = 150, z = 9
-; if b = 186-224: x = 57710, y = 100, z = 10
-; if b = 225-243: x = 62710, y = 50, z = 11
-; if b = 244-251: x = 64710, y = 20, z = 12
-; if b = 252-253: x = 65210, y = 5, z = 13
-; if b = 254: x = 65410, y = 2, z = 14
-
-
- ; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id)
-
- ; id
- ld h, b
- ld l, c
- ld a, [hli]
- ld b, a
- ld c, [hl]
- rrc b
- rrc c
-
- ; dv
- ld a, [de]
- inc de
- rrca
- rrca
- xor b
- ld b, a
-
- ld a, [de]
- rrca
- rrca
- xor c
- ld c, a
-
- ; if bc < 10:
- ; de = bc + 190
- ; break
-
- ld a, b
- and a
- jr nz, .no
- ld a, c
- cp 10
- jr nc, .no
-
- ld hl, 190
- add hl, bc
- ld d, h
- ld e, l
- jr .done
-
-.no
-
- ld hl, .Lengths
- ld a, 2
- ld [wd265], a
-
-.read
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call .BCLessThanDE
- jr nc, .next
-
- ; c = (bc - de) / [hl]
- call .BCMinusDE
- ld a, b
- ld [hDividend + 0], a
- ld a, c
- ld [hDividend + 1], a
- ld a, [hl]
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hQuotient + 2]
- ld c, a
-
- ; de = c + 100 * (2 + i)
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, 100
- ld [hMultiplicand + 2], a
- ld a, [wd265]
- ld [hMultiplier], a
- call Multiply
- ld b, 0
- ld a, [hProduct + 3]
- add c
- ld e, a
- ld a, [hProduct + 2]
- adc b
- ld d, a
- jr .done
-
-.next
- inc hl ; align to next triplet
- ld a, [wd265]
- inc a
- ld [wd265], a
- cp 16
- jr c, .read
-
- call .BCMinusDE
- ld hl, 1600
- add hl, bc
- ld d, h
- ld e, l
-
-.done
- ; hl = de * 10
- ld h, d
- ld l, e
- add hl, hl
- add hl, hl
- add hl, de
- add hl, hl
-
- ; hl = hl / 254
- ld de, -254
- ld a, -1
-.div_254
- inc a
- add hl, de
- jr c, .div_254
-
- ; d, e = hl / 12, hl % 12
- ld d, 0
-.mod_12
- cp 12
- jr c, .ok
- sub 12
- inc d
- jr .mod_12
-.ok
- ld e, a
-
- ld hl, wMagikarpLength
- ld [hl], d
- inc hl
- ld [hl], e
- ret
-; fbc9a
-
-.BCLessThanDE: ; fbc9a
-; Intention: Return bc < de.
-; Reality: Return b < d.
- ld a, b
- cp d
- ret c
- ret nc ; whoops
- ld a, c
- cp e
- ret
-; fbca1
-
-.BCMinusDE: ; fbca1
-; bc -= de
- ld a, c
- sub e
- ld c, a
- ld a, b
- sbc d
- ld b, a
- ret
-; fbca8
-
-.Lengths: ; fbca8
-; ????, divisor
- dwb 110, 1
- dwb 310, 2
- dwb 710, 4
- dwb 2710, 20
- dwb 7710, 50
- dwb 17710, 100
- dwb 32710, 150
- dwb 47710, 150
- dwb 57710, 100
- dwb 62710, 50
- dwb 64710, 20
- dwb 65210, 5
- dwb 65410, 2
- dwb 65510, 1 ; not used
-; fbcd2
--- a/battle/moves/move_descriptions.asm
+++ b/battle/moves/move_descriptions.asm
@@ -1,4 +1,5 @@
-; MoveDescriptions: ; 2cb52
+MoveDescriptions:: ; 2cb52
+; entries correspond to move ids (see constants/move_constants.asm)
dw PoundDescription
dw KarateChopDescription
dw DoubleslapDescription
--- a/battle/moves/move_effects.asm
+++ b/battle/moves/move_effects.asm
@@ -1,3 +1,5 @@
+MoveEffects: ; 2732e
+
NormalHit:
checkobedience
usedmovetext
@@ -571,7 +573,7 @@
supereffectivetext
checkdestinybond
buildopponentrage
- effectchance
+ effectchance ; bug: duplicate effectchance shouldn't be here
defensedown
statdownmessage
endmove
--- a/battle/moves/move_effects_pointers.asm
+++ b/battle/moves/move_effects_pointers.asm
@@ -1,3 +1,4 @@
+MoveEffectsPointers: ; 271f4
; entries correspond to EFFECT_* constants
dw NormalHit
dw DoSleep
--- a/battle/moves/moves.asm
+++ b/battle/moves/moves.asm
@@ -1,4 +1,3 @@
-Moves: ; 41afb
; Characteristics of each move.
move: MACRO
@@ -11,6 +10,8 @@
db \7 percent ; effect chance
ENDM
+Moves: ; 41afb
+; entries correspond to constants/move_constants.asm
move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0
move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0
move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0
--- a/battle/objects/data.asm
+++ b/battle/objects/data.asm
@@ -1,4 +1,6 @@
-BattleAnimObjects: ; ccb56
+ABSOLUTE_X EQU $00
+RELATIVE_X EQU $01
+
battleanimobj: MACRO
db \1 ; flags
; bit 7: priority
@@ -14,572 +16,194 @@
db \6 ; tile offset
endm
-ABSOLUTE_X EQU $00
-RELATIVE_X EQU $01
-
-
-; ANIM_OBJ_00
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_01
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_02
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_03
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_04
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_05
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_06
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_07
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_08
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_09
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_0A
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_0B
- battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_0C
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_0D
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_0E
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_0F
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_BURNED
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_BLIZZARD
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_12
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_ICE_BEAM
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_RAZOR_LEAF
- battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, $06
-
-; ANIM_OBJ_POKE_BALL
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, PAL_BATTLE_OB_RED, $0b
-
-; ANIM_OBJ_POKE_BALL_BLOCKED
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, PAL_BATTLE_OB_RED, $0b
-
-; ANIM_OBJ_17
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08
-
-; ANIM_OBJ_18
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08
-
-; ANIM_OBJ_19
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $0c
-
-; ANIM_OBJ_1A
- battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, PAL_BATTLE_OB_GRAY, $0c
-
-; ANIM_OBJ_1B
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07
-
-; ANIM_OBJ_BALL_POOF
- battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07
-
-; ANIM_OBJ_1D
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_1E
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_1F
- battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_20
- battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BLUE, $21
-
-; ANIM_OBJ_BUBBLE
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, PAL_BATTLE_OB_BLUE, $0d
-
-; ANIM_OBJ_22
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, PAL_BATTLE_OB_BLUE, $0d
-
-; ANIM_OBJ_23
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_24
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, PAL_BATTLE_OB_BLUE, $04
-
-; ANIM_OBJ_25
- battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $04
-
-; ANIM_OBJ_26
- battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GREEN, $0f
-
-; ANIM_OBJ_27
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10
-
-; ANIM_OBJ_28
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10
-
-; ANIM_OBJ_ICE_BUILDUP
- battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_FROZEN
- battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_MASTER_BALL_SPARKLE
- battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, PAL_BATTLE_OB_BROWN, $11
-
-; ANIM_OBJ_2C
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, PAL_BATTLE_OB_YELLOW, $0d
-
-; ANIM_OBJ_2D
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_2E
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_2F
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_30
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_31
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_LIGHTNING_BOLT
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08
-
-; ANIM_OBJ_33
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_34
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08
-
-; ANIM_OBJ_35
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_36
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_37
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_38
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_39
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_3A
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_3B
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_3C
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, PAL_BATTLE_OB_GREEN, $12
-
-; ANIM_OBJ_3D
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GREEN, $12
-
-; ANIM_OBJ_GUST
- battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, PAL_BATTLE_OB_GRAY, $13
-
-; ANIM_OBJ_3F
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_40
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_41
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_42
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_43
- battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_44
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_ABSORB
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, PAL_BATTLE_OB_GREEN, $12
-
-; ANIM_OBJ_46
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, PAL_BATTLE_OB_GRAY, $15
-
-; ANIM_OBJ_47
- battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_48
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16
-
-; ANIM_OBJ_49
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16
-
-; ANIM_OBJ_LEECH_SEED
- battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, $06
-
-; ANIM_OBJ_4B
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_4C
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $17
-
-; ANIM_OBJ_4D
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_4E
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10
-
-; ANIM_OBJ_4F
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10
-
-; ANIM_OBJ_50
- battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $18
-
-; ANIM_OBJ_51
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18
-
-; ANIM_OBJ_CHICK
- battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, PAL_BATTLE_OB_YELLOW, $19
-
-; ANIM_OBJ_53
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, PAL_BATTLE_OB_GRAY, $19
-
-; ANIM_OBJ_54
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $19
-
-; ANIM_OBJ_SKULL
- battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $0c
-
-; ANIM_OBJ_56
- battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_OB_BROWN, $1a
-
-; ANIM_OBJ_57
- battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BROWN, $1a
-
-; ANIM_OBJ_58
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $1a
-
-; ANIM_OBJ_PARALYZED
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, PAL_BATTLE_OB_YELLOW, $19
-
-; ANIM_OBJ_5A
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, PAL_BATTLE_OB_GRAY, $1b
-
-; ANIM_OBJ_HAZE
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_MIST
- battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_SMOG
- battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_POISON_GAS
- battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_HORN
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, $1d
-
-; ANIM_OBJ_60
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, PAL_BATTLE_OB_GRAY, $1d
-
-; ANIM_OBJ_61
- battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, PAL_BATTLE_OB_RED, $1e
-
-; ANIM_OBJ_62
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $15
-
-; ANIM_OBJ_63
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_BROWN, $19
-
-; ANIM_OBJ_64
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_65
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $11
-
-; ANIM_OBJ_66
- battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, $23
-
-; ANIM_OBJ_67
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_68
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_69
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_6A
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, PAL_BATTLE_OB_YELLOW, $23
-
-; ANIM_OBJ_6B
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_6C
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_6D
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_SKY_ATTACK_FEAROW
- battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, PAL_BATTLE_OB_GRAY, $20
-
-; ANIM_OBJ_LICK
- battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $04
-
-; ANIM_OBJ_WITHDRAW
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18
-
-; ANIM_OBJ_71
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_BLUE, $0d
-
-; ANIM_OBJ_72
- battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, PAL_BATTLE_OB_YELLOW, $12
-
-; ANIM_OBJ_73
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $08
-
-; ANIM_OBJ_74
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_75
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, PAL_BATTLE_OB_GRAY, $15
-
-; ANIM_OBJ_76
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_77
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, PAL_BATTLE_OB_GRAY, $11
-
-; ANIM_OBJ_78
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22
-
-; ANIM_OBJ_79
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22
-
-; ANIM_OBJ_7A
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_7B
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_7C
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_7D
- battleanimobj RELATIVE_X | X_FLIP | BEHIND_BG, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, PAL_BATTLE_OB_BLUE, $13
-
-; ANIM_OBJ_HEART
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, PAL_BATTLE_OB_RED, $23
-
-; ANIM_OBJ_7F
- battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_80
- battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_COTTON_SPORE
- battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_82
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_83
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_84
- battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $1f
-
-; ANIM_OBJ_85
- battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_86
- battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, PAL_BATTLE_OB_RED, $1f
-
-; ANIM_OBJ_87
- battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_88
- battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_89
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_8A
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_YELLOW, $23
-
-; ANIM_OBJ_8B
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_GRAY, $19
-
-; ANIM_OBJ_8C
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $15
-
-; ANIM_OBJ_8D
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $19
-
-; ANIM_OBJ_SPIKES
- battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_8F
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, PAL_BATTLE_OB_GRAY, $0a
-
-; ANIM_OBJ_90
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_91
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, PAL_BATTLE_OB_GRAY, $08
-
-; ANIM_OBJ_92
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1b
-
-; ANIM_OBJ_93
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $23
-
-; ANIM_OBJ_94
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_95
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_96
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_97
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $25
-
-; ANIM_OBJ_98
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_GREEN, $23
-
-; ANIM_OBJ_99
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $23
-
-; ANIM_OBJ_9A
- battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, PAL_BATTLE_OB_YELLOW, $23
-
-; ANIM_OBJ_9B
- battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_9C
- battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, PAL_BATTLE_OB_YELLOW, $24
-
-; ANIM_OBJ_9D
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24
-
-; ANIM_OBJ_9E
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $24
-
-; ANIM_OBJ_9F
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, PAL_BATTLE_OB_RED, $12
-
-; ANIM_OBJ_A0
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_A1
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_A2
- battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_BROWN, $0f
-
-; ANIM_OBJ_A3
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_A4
- battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_A5
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, PAL_BATTLE_OB_GRAY, $23
-
-; ANIM_OBJ_PERISH_SONG
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_A7
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24
-
-; ANIM_OBJ_A8
- battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, PAL_BATTLE_OB_GRAY, $13
-
-; ANIM_OBJ_A9
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, PAL_BATTLE_OB_GRAY, $13
-
-; ANIM_OBJ_AA
- battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_AB
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_AC
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $17
-
-; ANIM_OBJ_AD
- battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_AE
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_AF
- battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_GRAY, $04
-
-; ANIM_OBJ_B0
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, PAL_BATTLE_OB_RED, $1c
-
-; ANIM_OBJ_B1
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, PAL_BATTLE_OB_GRAY, $19
-
-; ANIM_OBJ_B2
- battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_B3
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $27
-
-; ANIM_OBJ_B4
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, PAL_BATTLE_OB_BLUE, $15
-
-; ANIM_OBJ_B5
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_FLOWER
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $1e
-
-; ANIM_OBJ_COTTON
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_OB_RED, $1f
-
-; ANIM_OBJ_PLAYERFEETFOLLOW
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28
-
-; ANIM_OBJ_ENEMYFEETFOLLOW
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29
-
-; ANIM_OBJ_BA
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28
-
-; ANIM_OBJ_BB
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29
-
+BattleAnimObjects: ; ccb56
+; entries correspond to ANIM_OBJ_* constants
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_00
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_02
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_04
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_05
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_06
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_07
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_08
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_09
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_0A
+ battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0B
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0C
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0D
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0E
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0F
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_BURNED
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_BLIZZARD
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_12
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_ICE_BEAM
+ battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, $06 ; ANIM_OBJ_RAZOR_LEAF
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, PAL_BATTLE_OB_RED, $0b ; ANIM_OBJ_POKE_BALL
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, PAL_BATTLE_OB_RED, $0b ; ANIM_OBJ_POKE_BALL_BLOCKED
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 ; ANIM_OBJ_17
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 ; ANIM_OBJ_18
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_19
+ battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_1A
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 ; ANIM_OBJ_1B
+ battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 ; ANIM_OBJ_BALL_POOF
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1D
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1E
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1F
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BLUE, $21 ; ANIM_OBJ_20
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_BUBBLE
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_22
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_23
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, PAL_BATTLE_OB_BLUE, $04 ; ANIM_OBJ_24
+ battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $04 ; ANIM_OBJ_25
+ battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GREEN, $0f ; ANIM_OBJ_26
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_27
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_28
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_ICE_BUILDUP
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_FROZEN
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, PAL_BATTLE_OB_BROWN, $11 ; ANIM_OBJ_MASTER_BALL_SPARKLE
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, PAL_BATTLE_OB_YELLOW, $0d ; ANIM_OBJ_2C
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2D
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2E
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2F
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_30
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_31
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_LIGHTNING_BOLT
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_33
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_34
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_35
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_36
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_37
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_38
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_39
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_3A
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_3B
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_3C
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_3D
+ battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_GUST
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_3F
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_40
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_41
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_42
+ battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_43
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_44
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_ABSORB
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_46
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_47
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 ; ANIM_OBJ_48
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 ; ANIM_OBJ_49
+ battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, $06 ; ANIM_OBJ_LEECH_SEED
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_4B
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $17 ; ANIM_OBJ_4C
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_4D
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_4E
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_4F
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $18 ; ANIM_OBJ_50
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 ; ANIM_OBJ_51
+ battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, PAL_BATTLE_OB_YELLOW, $19 ; ANIM_OBJ_CHICK
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_53
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_54
+ battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_SKULL
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_OB_BROWN, $1a ; ANIM_OBJ_56
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BROWN, $1a ; ANIM_OBJ_57
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $1a ; ANIM_OBJ_58
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, PAL_BATTLE_OB_YELLOW, $19 ; ANIM_OBJ_PARALYZED
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, PAL_BATTLE_OB_GRAY, $1b ; ANIM_OBJ_5A
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_HAZE
+ battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_MIST
+ battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_SMOG
+ battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_POISON_GAS
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, $1d ; ANIM_OBJ_HORN
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, PAL_BATTLE_OB_GRAY, $1d ; ANIM_OBJ_60
+ battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, PAL_BATTLE_OB_RED, $1e ; ANIM_OBJ_61
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_62
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_BROWN, $19 ; ANIM_OBJ_63
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_64
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $11 ; ANIM_OBJ_65
+ battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_66
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_67
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_68
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_69
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_6A
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_6B
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_6C
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_6D
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, PAL_BATTLE_OB_GRAY, $20 ; ANIM_OBJ_SKY_ATTACK_FEAROW
+ battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $04 ; ANIM_OBJ_LICK
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 ; ANIM_OBJ_WITHDRAW
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_71
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, PAL_BATTLE_OB_YELLOW, $12 ; ANIM_OBJ_72
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_73
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_74
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_75
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_76
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, PAL_BATTLE_OB_GRAY, $11 ; ANIM_OBJ_77
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 ; ANIM_OBJ_78
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 ; ANIM_OBJ_79
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_7A
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_7B
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_7C
+ battleanimobj RELATIVE_X | X_FLIP | BEHIND_BG, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, PAL_BATTLE_OB_BLUE, $13 ; ANIM_OBJ_7D
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_HEART
+ battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_7F
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_80
+ battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_COTTON_SPORE
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_82
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_83
+ battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $1f ; ANIM_OBJ_84
+ battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_85
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, PAL_BATTLE_OB_RED, $1f ; ANIM_OBJ_86
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_87
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_88
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_89
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_8A
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_8B
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_8C
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $19 ; ANIM_OBJ_8D
+ battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_SPIKES
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, PAL_BATTLE_OB_GRAY, $0a ; ANIM_OBJ_8F
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_90
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_91
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1b ; ANIM_OBJ_92
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_93
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_94
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_95
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_96
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $25 ; ANIM_OBJ_97
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_GREEN, $23 ; ANIM_OBJ_98
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $23 ; ANIM_OBJ_99
+ battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_9A
+ battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_9B
+ battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, PAL_BATTLE_OB_YELLOW, $24 ; ANIM_OBJ_9C
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 ; ANIM_OBJ_9D
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $24 ; ANIM_OBJ_9E
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, PAL_BATTLE_OB_RED, $12 ; ANIM_OBJ_9F
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_A0
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_A1
+ battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_BROWN, $0f ; ANIM_OBJ_A2
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_A3
+ battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_A4
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, PAL_BATTLE_OB_GRAY, $23 ; ANIM_OBJ_A5
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_PERISH_SONG
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 ; ANIM_OBJ_A7
+ battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_A8
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_A9
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_AA
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_AB
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $17 ; ANIM_OBJ_AC
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_AD
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_AE
+ battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_GRAY, $04 ; ANIM_OBJ_AF
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, PAL_BATTLE_OB_RED, $1c ; ANIM_OBJ_B0
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_B1
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_B2
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $27 ; ANIM_OBJ_B3
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, PAL_BATTLE_OB_BLUE, $15 ; ANIM_OBJ_B4
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_B5
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $1e ; ANIM_OBJ_FLOWER
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_OB_RED, $1f ; ANIM_OBJ_COTTON
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_PLAYERFEETFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_ENEMYFEETFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_BA
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_BB
; ccfbe
--- a/battle/objects/functions.asm
+++ b/battle/objects/functions.asm
@@ -450,7 +450,7 @@
ret
; cd26c (33:526c)
-INCLUDE "data/ball_colors.asm"
+INCLUDE "data/battle/ball_colors.asm"
BattleAnimFunction_10: ; cd284 (33:5284)
call BattleAnim_AnonJumptable
--- a/battle/objects/gfx_headers.asm
+++ b/battle/objects/gfx_headers.asm
@@ -1,6 +1,3 @@
-
-AnimObjGFX: ; cfcf6
-
object_gfx: MACRO
; # tiles, label
db \1
@@ -7,6 +4,8 @@
dba \2
ENDM
+AnimObjGFX: ; cfcf6
+; entries correspond to ANIM_GFX_* constants
object_gfx 0, AnimObj00GFX
object_gfx 21, AnimObjHitGFX
object_gfx 6, AnimObjCutGFX
--- a/compare.sh
+++ /dev/null
@@ -1,11 +1,0 @@
-#!/bin/sh
-# Compares baserom.gbc and pokecrystal.gbc
-
-# create baserom.txt if necessary
-if [ ! -f baserom.txt ]; then
- hexdump -C baserom.gbc > baserom.txt
-fi
-
-hexdump -C pokecrystal.gbc > pokecrystal.txt
-
-diff -u baserom.txt pokecrystal.txt | less
--- a/compare2.sh
+++ /dev/null
@@ -1,51 +1,0 @@
-#!/bin/sh
-# Compares baserom.gbc and pokecrystal.gbc
-
-# create baserom.txt if necessary
-crystal_md5=9f2922b235a5eeb78d65594e82ef5dde
-if [ ! -f baserom.gbc ]; then
- echo "FATAL: Baserom not found"
- exit 1
-fi
-
-if [ $1 ]; then
- if [ $1 == "-v" ]; then
- verbose=1
- else
- verbose = 0
- fi
-else
- verbose=0
-fi
-
-base_md5=`md5sum baserom.gbc | cut -d' ' -f1`
-if [ $verbose == 1 ]; then
- echo "baserom.gbc: $base_md5"
-fi
-if [ $base_md5 != $crystal_md5 ]; then
- echo "FATAL: Baserom is incorrect"
- exit 1
-fi
-
-built_md5=`md5sum pokecrystal.gbc | cut -d' ' -f1`
-if [ $verbose == 1 ]; then
- echo "pokecrystal.gbc: $built_md5"
-fi
-if [ $built_md5 != $crystal_md5 ]
-then
- if [ $verbose == 1 ]; then
- echo "Checksums do not match, here's where the ROMs differ..."
- fi
- if [ ! -f baserom.txt ]; then
- hexdump -C baserom.gbc > baserom.txt
- fi
-
- hexdump -C pokecrystal.gbc > pokecrystal.txt
-
- diff -u baserom.txt pokecrystal.txt | less
-else
- if [ $verbose == 1 ]; then
- echo "Checksums match! :D"
- fi
-fi
-
--- a/constants.asm
+++ b/constants.asm
@@ -1,13 +1,12 @@
INCLUDE "macros.asm"
-INCLUDE "gbhw.asm"
INCLUDE "hram.asm"
+INCLUDE "constants/hardware_constants.asm"
INCLUDE "constants/wram_constants.asm"
INCLUDE "constants/pokemon_constants.asm"
INCLUDE "constants/type_constants.asm"
INCLUDE "constants/move_constants.asm"
-INCLUDE "constants/effect_command_constants.asm"
INCLUDE "constants/battle_constants.asm"
INCLUDE "constants/map_dimension_constants.asm"
INCLUDE "constants/map_constants.asm"
@@ -22,6 +21,7 @@
INCLUDE "constants/sfx_constants.asm"
INCLUDE "constants/animation_constants.asm"
INCLUDE "constants/phone_constants.asm"
+INCLUDE "constants/credits_constants.asm"
INCLUDE "constants/gfx_constants.asm"
INCLUDE "constants/input_constants.asm"
INCLUDE "constants/pokemon_data_constants.asm"
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -1,5 +1,5 @@
; pitch
-; FrequencyTable indexes (see data/audio/notes.asm)
+; FrequencyTable indexes (see audio/notes.asm)
const_def
const __ ; 0
const C_ ; 1
@@ -67,4 +67,22 @@
const NOTE_VIBRATO_OVERRIDE ; 6
; Volume:
+VOLUME_SO1_F EQU 3
+VOLUME_SO2_F EQU 7
+VOLUME_SO1_LEVEL EQU %00000111
+VOLUME_SO2_LEVEL EQU %01110000
MAX_VOLUME EQU $77
+
+; SoundInput:
+SOUND_INPUT_CH1_F EQU 0
+SOUND_INPUT_CH2_F EQU 1
+SOUND_INPUT_CH3_F EQU 2
+SOUND_INPUT_CH4_F EQU 3
+SOUND_INPUT_GLOBAL_F EQU 7
+
+; Danger:
+DANGER_PITCH_F EQU 4
+DANGER_ON_F EQU 7
+
+; MusicFade:
+MUSIC_FADE_IN_F EQU 7
--- a/constants/battle_tower_constants.asm
+++ b/constants/battle_tower_constants.asm
@@ -1,4 +1,4 @@
-; BattleTowerAction arguments (see misc/battle_tower_5c.asm)
+; BattleTowerAction arguments (see mobile/battle_tower_5c.asm)
const_def
const BATTLETOWERACTION_CHECK_EXPLANATION_READ
const BATTLETOWERACTION_SET_EXPLANATION_READ
@@ -20,8 +20,8 @@
const BATTLETOWERACTION_11 ; store 0 in 5:aa8d
const BATTLETOWERACTION_12 ; store 1 in 5:aa8d
const BATTLETOWERACTION_13 ; check 5:aa8d
- const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [s1_be4f]
- const BATTLETOWERACTION_15 ; set 0, [s1_be4f]
+ const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [sBattleTowerSaveFileFlags]
+ const BATTLETOWERACTION_15 ; set 0, [sBattleTowerSaveFileFlags]
const BATTLETOWERACTION_16 ; update time in SRAM bank 5
const BATTLETOWERACTION_17 ; check time in SRAM bank 5
const BATTLETOWERACTION_LEVEL_CHECK
--- a/constants/cgb_constants.asm
+++ b/constants/cgb_constants.asm
@@ -1,4 +1,4 @@
-; GetSGBLayout arguments (see predef/cgb.asm and predef/sgb.asm)
+; GetSGBLayout arguments (see engine/cgb_layouts.asm and engine/sgb_layouts.asm)
const_def
const SCGB_BATTLE_GRAYSCALE
const SCGB_BATTLE_COLORS
--- /dev/null
+++ b/constants/credits_constants.asm
@@ -1,0 +1,115 @@
+; CreditsStrings indexes (see data/credits_text.asm)
+ const_def
+ const SATOSHI_TAJIRI
+ const JUNICHI_MASUDA
+ const TETSUYA_WATANABE
+ const SHIGEKI_MORIMOTO
+ const SOUSUKE_TAMADA
+ const TAKENORI_OOTA
+ const KEN_SUGIMORI
+ const MOTOFUMI_FUJIWARA
+ const ATSUKO_NISHIDA
+ const MUNEO_SAITO
+ const SATOSHI_OOTA
+ const RENA_YOSHIKAWA
+ const JUN_OKUTANI
+ const HIRONOBU_YOSHIDA
+ const ASUKA_IWASHITA
+ const GO_ICHINOSE
+ const MORIKAZU_AOKI
+ const KOHJI_NISHINO
+ const KENJI_MATSUSHIMA
+ const TOSHINOBU_MATSUMIYA
+ const SATORU_IWATA
+ const NOBUHIRO_SEYA
+ const KAZUHITO_SEKINE
+ const TETSUJI_OOTA
+ const NCL_SUPER_MARIO_CLUB
+ const SARUGAKUCHO
+ const AKITO_MORI
+ const TAKAHIRO_HARADA
+ const TOHRU_HASHIMOTO
+ const NOBORU_MATSUMOTO
+ const TAKEHIRO_IZUSHI
+ const TAKASHI_KAWAGUCHI
+ const TSUNEKAZU_ISHIHARA
+ const HIROSHI_YAMAUCHI
+ const KENJI_SAIKI
+ const ATSUSHI_TADA
+ const NAOKO_KAWAKAMI
+ const HIROYUKI_ZINNAI
+ const KUNIMI_KAWAMURA
+ const HISASHI_SOGABE
+ const KEITA_KAGAYA
+ const YOSHINORI_MATSUDA
+ const HITOMI_SATO
+ const TORU_OSAWA
+ const TAKAO_OHARA
+ const YUICHIRO_ITO
+ const TAKAO_SHIMIZU
+ const PLANNING
+ const KEITA_NAKAMURA
+ const HIROTAKA_UEMURA
+ const HIROAKI_TAMURA
+ const NORIAKI_SAKAGUCHI
+ const MIYUKI_SATO
+ const GAKUZI_NOMOTO
+ const AI_MASHIMA
+ const MIKIHIRO_ISHIKAWA
+ const HIDEYUKI_HASHIMOTO
+ const SATOSHI_YAMATO
+ const SHIGERU_MIYAMOTO
+ const GAIL_TILDEN
+ const NOB_OGASAWARA
+ const SETH_MCMAHILL
+ const HIROTO_ALEXANDER
+ const TERESA_LILLYGREN
+ const THOMAS_HERTZOG
+ const ERIK_JOHNSON
+ const HIRO_NAKAMURA
+ const TERUKI_MURAKAWA
+ const KAZUYOSHI_OSAWA
+ const KIMIKO_NAKAMICHI
+ const CREDIT_END
+ const CREDIT_UNKNOWN
+ const STAFF
+ const DIRECTOR
+ const CODIRECTOR
+ const PROGRAMMERS
+ const GRAPHICS_DIRECTOR
+ const MONSTER_DESIGN
+ const GRAPHICS_DESIGN
+ const CREDIT_MUSIC
+ const CREDIT_SOUND_EFFECTS
+ const GAME_DESIGN
+ const GAME_SCENARIO
+ const TOOL_PROGRAMMING
+ const PARAMETRIC_DESIGN
+ const SCRIPT_DESIGN
+ const MAP_DATA_DESIGN
+ const MAP_DESIGN
+ const PRODUCT_TESTING
+ const SPECIAL_THANKS
+ const PRODUCERS
+ const EXECUTIVE_PRODUCER
+ const POKEMON_ANIMATION
+ const POKEDEX_TEXT
+ const MOBILE_PRJ_LEADER
+ const MOBILE_SYSTEM_AD
+ const MOBILE_STADIUM_DIR
+ const COORDINATION
+ const COPYRIGHT
+ const US_VERSION_STAFF
+ const US_COORDINATION
+ const TEXT_TRANSLATION
+ const PAAD_TESTING
+
+; CreditsScript indexes (see data/credits_script.asm)
+const_value SET -7
+ const CREDITS_THEEND
+ const CREDITS_WAIT2
+ const CREDITS_MUSIC
+ const CREDITS_CLEAR
+ const CREDITS_SCENE
+ const CREDITS_WAIT
+ const CREDITS_END
--- a/constants/effect_command_constants.asm
+++ /dev/null
@@ -1,187 +1,0 @@
-; BattleCommandPointers indexes (see battle/effect_commands.asm)
-
-command: macro
- enum \1_command
-\1 equs "db \1_command"
-endm
-
- enum_start 1
- command checkturn ; 01
- command checkobedience ; 02
- command usedmovetext ; 03
- command doturn ; 04
- command critical ; 05
- command damagestats ; 06
- command stab ; 07
- command damagevariation ; 08
- command checkhit ; 09
- command lowersub ; 0a
- command hittargetnosub ; 0b
- command raisesub ; 0c
- command failuretext ; 0d
- command checkfaint ; 0e
- command criticaltext ; 0f
- command supereffectivetext ; 10
- command checkdestinybond ; 11
- command buildopponentrage ; 12
- command poisontarget ; 13
- command sleeptarget ; 14
- command draintarget ; 15
- command eatdream ; 16
- command burntarget ; 17
- command freezetarget ; 18
- command paralyzetarget ; 19
- command selfdestruct ; 1a
- command mirrormove ; 1b
- command statup ; 1c
- command statdown ; 1d
- command payday ; 1e
- command conversion ; 1f
- command resetstats ; 20
- command storeenergy ; 21
- command unleashenergy ; 22
- command forceswitch ; 23
- command endloop ; 24
- command flinchtarget ; 25
- command ohko ; 26
- command recoil ; 27
- command mist ; 28
- command focusenergy ; 29
- command confuse ; 2a
- command confusetarget ; 2b
- command heal ; 2c
- command transform ; 2d
- command screen ; 2e
- command poison ; 2f
- command paralyze ; 30
- command substitute ; 31
- command rechargenextturn ; 32
- command mimic ; 33
- command metronome ; 34
- command leechseed ; 35
- command splash ; 36
- command disable ; 37
- command cleartext ; 38
- command charge ; 39
- command checkcharge ; 3a
- command traptarget ; 3b
- command effect0x3c ; 3c
- command rampage ; 3d
- command checkrampage ; 3e
- command constantdamage ; 3f
- command counter ; 40
- command encore ; 41
- command painsplit ; 42
- command snore ; 43
- command conversion2 ; 44
- command lockon ; 45
- command sketch ; 46
- command defrostopponent ; 47
- command sleeptalk ; 48
- command destinybond ; 49
- command spite ; 4a
- command falseswipe ; 4b
- command healbell ; 4c
- command kingsrock ; 4d
- command triplekick ; 4e
- command kickcounter ; 4f
- command thief ; 50
- command arenatrap ; 51
- command nightmare ; 52
- command defrost ; 53
- command curse ; 54
- command protect ; 55
- command spikes ; 56
- command foresight ; 57
- command perishsong ; 58
- command startsandstorm ; 59
- command endure ; 5a
- command checkcurl ; 5b
- command rolloutpower ; 5c
- command effect0x5d ; 5d
- command furycutter ; 5e
- command attract ; 5f
- command happinesspower ; 60
- command present ; 61
- command damagecalc ; 62
- command frustrationpower ; 63
- command safeguard ; 64
- command checksafeguard ; 65
- command getmagnitude ; 66
- command batonpass ; 67
- command pursuit ; 68
- command clearhazards ; 69
- command healmorn ; 6a
- command healday ; 6b
- command healnite ; 6c
- command hiddenpower ; 6d
- command startrain ; 6e
- command startsun ; 6f
- command attackup ; 70
- command defenseup ; 71
- command speedup ; 72
- command specialattackup ; 73
- command specialdefenseup ; 74
- command accuracyup ; 75
- command evasionup ; 76
- command attackup2 ; 77
- command defenseup2 ; 78
- command speedup2 ; 79
- command specialattackup2 ; 7a
- command specialdefenseup2 ; 7b
- command accuracyup2 ; 7c
- command evasionup2 ; 7d
- command attackdown ; 7e
- command defensedown ; 7f
- command speeddown ; 80
- command specialattackdown ; 81
- command specialdefensedown ; 82
- command accuracydown ; 83
- command evasiondown ; 84
- command attackdown2 ; 85
- command defensedown2 ; 86
- command speeddown2 ; 87
- command specialattackdown2 ; 88
- command specialdefensedown2 ; 89
- command accuracydown2 ; 8a
- command evasiondown2 ; 8b
- command statupmessage ; 8c
- command statdownmessage ; 8d
- command statupfailtext ; 8e
- command statdownfailtext ; 8f
- command effectchance ; 90
- command statdownanim ; 91
- command statupanim ; 92
- command switchturn ; 93
- command fakeout ; 94
- command bellydrum ; 95
- command psychup ; 96
- command rage ; 97
- command doubleflyingdamage ; 98
- command doubleundergrounddamage ; 99
- command mirrorcoat ; 9a
- command checkfuturesight ; 9b
- command futuresight ; 9c
- command doubleminimizedamage ; 9d
- command skipsuncharge ; 9e
- command thunderaccuracy ; 9f
- command teleport ; a0
- command beatup ; a1
- command ragedamage ; a2
- command resettypematchup ; a3
- command allstatsup ; a4
- command effect0xa5 ; a5
- command raisesubnoanim ; a6
- command lowersubnoanim ; a7
- command effect0xa8 ; a8
- command clearmissdamage ; a9
- command movedelay ; aa
- command hittarget ; ab
- command tristatuschance ; ac
- command supereffectivelooptext ; ad
- command startloop ; ae
- command curl ; af
-
- enum_start -1, -1
- command endmove
- command endturn
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -19,3 +19,6 @@
HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
EXP_BAR_LENGTH EQU 8 ; tiles
EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
+
+
+PALPACKET_LENGTH EQU $10
--- /dev/null
+++ b/constants/hardware_constants.asm
@@ -1,0 +1,135 @@
+; Graciously aped from http://nocash.emubase.de/pandocs.htm .
+
+; MBC3
+MBC3SRamEnable EQU $0000
+MBC3RomBank EQU $2000
+MBC3SRamBank EQU $4000
+MBC3LatchClock EQU $6000
+MBC3RTC EQU $a000
+
+SRAM_DISABLE EQU $00
+SRAM_ENABLE EQU $0a
+
+NUM_SRAM_BANKS EQU 4
+
+RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
+RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
+RTC_H EQU $0a ; Hours 0-23 (0-17h)
+RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
+RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
+ ; Bit 0 Most significant bit of Day Counter (Bit 8)
+ ; Bit 6 Halt (0=Active, 1=Stop Timer)
+ ; Bit 7 Day Counter Carry Bit (1=Counter Overflow)
+
+; interrupt flags
+VBLANK EQU 0
+LCD_STAT EQU 1
+TIMER EQU 2
+SERIAL EQU 3
+JOYPAD EQU 4
+
+; OAM attribute flags
+OAM_TILE_BANK EQU 3
+OAM_OBP_NUM EQU 4 ; non CGB Mode Only
+OAM_X_FLIP EQU 5
+OAM_Y_FLIP EQU 6
+OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
+
+PALETTE_MASK EQU %111
+VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08
+OBP_NUM EQU 1 << OAM_OBP_NUM ; $10
+X_FLIP EQU 1 << OAM_X_FLIP ; $20
+Y_FLIP EQU 1 << OAM_Y_FLIP ; $40
+BEHIND_BG EQU 1 << OAM_PRIORITY ; $80
+
+; Hardware registers
+rJOYP EQU $ff00 ; Joypad (R/W)
+rSB EQU $ff01 ; Serial transfer data (R/W)
+rSC EQU $ff02 ; Serial Transfer Control (R/W)
+rSC_ON EQU 7
+rSC_CGB EQU 1
+rSC_CLOCK EQU 0
+rDIV EQU $ff04 ; Divider Register (R/W)
+rTIMA EQU $ff05 ; Timer counter (R/W)
+rTMA EQU $ff06 ; Timer Modulo (R/W)
+rTAC EQU $ff07 ; Timer Control (R/W)
+rTAC_ON EQU 2
+rTAC_4096_HZ EQU 0
+rTAC_262144_HZ EQU 1
+rTAC_65536_HZ EQU 2
+rTAC_16384_HZ EQU 3
+rIF EQU $ff0f ; Interrupt Flag (R/W)
+rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
+rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
+rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
+rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
+rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
+rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W)
+rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
+rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
+rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
+rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
+rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
+rNR31 EQU $ff1b ; Channel 3 Sound Length
+rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
+rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
+rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
+rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W)
+rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
+rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
+rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
+rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W)
+rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
+rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
+rNR52 EQU $ff26 ; Sound on/off
+rWave_0 EQU $ff30
+rWave_1 EQU $ff31
+rWave_2 EQU $ff32
+rWave_3 EQU $ff33
+rWave_4 EQU $ff34
+rWave_5 EQU $ff35
+rWave_6 EQU $ff36
+rWave_7 EQU $ff37
+rWave_8 EQU $ff38
+rWave_9 EQU $ff39
+rWave_a EQU $ff3a
+rWave_b EQU $ff3b
+rWave_c EQU $ff3c
+rWave_d EQU $ff3d
+rWave_e EQU $ff3e
+rWave_f EQU $ff3f
+rLCDC EQU $ff40 ; LCD Control (R/W)
+rSTAT EQU $ff41 ; LCDC Status (R/W)
+rSCY EQU $ff42 ; Scroll Y (R/W)
+rSCX EQU $ff43 ; Scroll X (R/W)
+rLY EQU $ff44 ; LCDC Y-Coordinate (R)
+rLYC EQU $ff45 ; LY Compare (R/W)
+rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
+rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
+rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
+rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
+rWY EQU $ff4a ; Window Y Position (R/W)
+rWX EQU $ff4b ; Window X Position minus 7 (R/W)
+rLCDMODE EQU $ff4c
+rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
+rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
+rBLCK EQU $ff50
+rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
+rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
+rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
+rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
+rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
+rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
+rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
+rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
+rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
+rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
+rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only
+rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
+rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write)
+rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write)
+rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only
+rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
+rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
+rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
+rIE EQU $ffff ; Interrupt Enable (R/W)
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -1,9 +1,9 @@
; item ids
; indexes for:
-; - ItemAttributes (see items/item_attributes.asm)
-; - ItemDescriptions (see items/item_descriptions.asm)
-; - ItemEffects (see items/item_effects.asm)
-; - ItemNames (see items/item_names.asm)
+; - ItemAttributes (see data/items/item_attributes.asm)
+; - ItemDescriptions (see data/items/item_descriptions.asm)
+; - ItemEffects (see engine/item_effects.asm)
+; - ItemNames (see data/items/item_names.asm)
const_def
const NO_ITEM ; $00
const MASTER_BALL ; $01
@@ -372,7 +372,7 @@
const HELD_78
const HELD_FOCUS_BAND
-; item_attribute struct members (see items/item_attributes.asm)
+; item_attribute struct members (see data/items/item_attributes.asm)
const_def
const ITEMATTR_PRICE
const ITEMATTR_PRICE_HI
@@ -397,7 +397,7 @@
const MARTTYPE_PHARMACY
const MARTTYPE_ROOFTOP
-; Marts indexes (see items/marts.asm)
+; Marts indexes (see data/items/marts.asm)
const_def
const MART_CHERRYGROVE
const MART_CHERRYGROVE_DEX
--- a/constants/landmark_constants.asm
+++ b/constants/landmark_constants.asm
@@ -1,4 +1,4 @@
-; Landmarks indexes (see data/landmarks.asm)
+; Landmarks indexes (see data/maps/landmarks.asm)
const_def
; Johto landmarks
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -127,7 +127,7 @@
EMOTE_OBJECT EQU 7
-; SpawnPoints indexes (see data/spawn_points.asm)
+; SpawnPoints indexes (see data/maps/spawn_points.asm)
const_value = -1
const SPAWN_N_A
const SPAWN_HOME
@@ -203,7 +203,7 @@
const EMOTE_GRASS_RUSTLE ; 11
EMOTE_MEM EQU -1
-; FruitTreeItems indexes (see data/fruit_tree_items.asm)
+; FruitTreeItems indexes (see data/items/fruit_trees.asm)
const_value SET 1
const FRUITTREE_ROUTE_29 ; 01
const FRUITTREE_ROUTE_30_1 ; 02
--- a/constants/map_dimension_constants.asm
+++ b/constants/map_dimension_constants.asm
@@ -1,8 +1,23 @@
+newgroup: macro
+const_value = const_value + 1
+ enum_start 1
+endm
+
+mapgroup: macro
+;\1: map id
+;\2: height: in blocks
+;\3: width: in blocks
+GROUP_\1 EQU const_value
+ enum MAP_\1
+\1_HEIGHT EQU \2
+\1_WIDTH EQU \3
+endm
+
; map group ids
; `newgroup` indexes are for:
; - MapGroupPointers (see maps/map_headers.asm)
-; - OutdoorSprites (see data/outdoor_sprites.asm)
-; - MapGroupRoofs (see data/mapgroup_roofs.asm)
+; - OutdoorSprites (see data/maps/outdoor_sprites.asm)
+; - MapGroupRoofs (see data/maps/mapgroup_roofs.asm)
; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm)
const_def
@@ -214,7 +229,7 @@
mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8
mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9
mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10
- mapgroup VIOLET_ONIX_TRADE_HOUSE, 4, 4 ; 11
+ mapgroup VIOLET_KYLES_HOUSE, 4, 4 ; 11
mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12
mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13
mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -27,7 +27,7 @@
TRAINER_CLASS_NAME_LENGTH EQU 13
NAME_LENGTH_JAPANESE EQU 6
-; GetName types (see home.asm)
+; GetName types (see home/names.asm)
PKMN_NAME EQU 1
MOVE_NAME EQU 2
; dummied out EQU 3
@@ -44,12 +44,13 @@
const PRINTNUM_RIGHTALIGN_F ; 6
const PRINTNUM_LEADINGZEROS_F ; 7
+; PrintNum arguments (see engine/printnum.asm)
PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
-; movement
+; DoPlayerMovement.DoStep arguments (see engine/player_movement.asm)
const_def
const STEP_SLOW ; 0
const STEP_WALK ; 1
@@ -61,8 +62,14 @@
const STEP_WALK_IN_PLACE ; 7
+; hMenuReturn
HMENURETURN_SCRIPT EQU %10000000
HMENURETURN_ASM EQU %11111111
+
+
+; save file corruption check values
+SAVE_CHECK_VALUE_1 EQU 99
+SAVE_CHECK_VALUE_2 EQU 127
; time of day boundaries
--- a/constants/mobile_constants.asm
+++ b/constants/mobile_constants.asm
@@ -1,4 +1,4 @@
-; MobileEZChatCategoryPointers indexes (see misc/fixed_words.asm)
+; MobileEZChatCategoryPointers indexes (see mobile/fixed_words.asm)
const_def
const EZCHAT_POKEMON
const EZCHAT_TYPES
@@ -16,6 +16,6 @@
const EZCHAT_FAREWELLS
const EZCHAT_THISANDTHAT
-NUM_KANA EQU 45 ; length of SortedPokemon table (see misc/fixed_words.asm)
+NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm)
MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,11 +1,11 @@
; pokemon ids
; indexes for:
-; - CryHeaders (see audio/cry_headers.asm)
-; - BaseData (see data/base_stats.asm)
-; - EggMovePointers (see data/egg_move_pointers.asm)
-; - EvosAttacksPointers (see data/evos_attacks_pointers.asm)
-; - PokemonNames (see data/pokemon_names.asm)
-; - PokedexDataPointerTable (see data/pokedex/entry_pointers.asm)
+; - CryHeaders (see data/pokemon/cry_headers.asm)
+; - BaseData (see data/pokemon/base_stats.asm)
+; - EggMovePointers (see data/pokemon/egg_move_pointers.asm)
+; - EvosAttacksPointers (see data/pokemon/evos_attacks_pointers.asm)
+; - PokemonNames (see data/pokemon/pokemon_names.asm)
+; - PokedexDataPointerTable (see data/pokemon/dex_entry_pointers.asm)
; - AnimationPointers (see gfx/pics/anim_pointers.asm)
; - BitmasksPointers (see gfx/pics/bitmask_pointers.asm)
; - AnimationExtraPointers (see gfx/pics/extra_pointers.asm)
@@ -12,11 +12,11 @@
; - FramesPointers (see gfx/pics/frame_pointers.asm)
; - PokemonPalettes (see gfx/pics/palette_pointers.asm)
; - PicPointers (see gfx/pics/pic_pointers.asm)
-; - AlphabeticalPokedexOrder (see data/pokedex/order_alpha.asm)
-; - NewPokedexOrder (see data/pokedex/order_new.asm)
-; - MonMenuIcons (see data/mon_menu_icons.asm)
-; - Pokered_MonIndices (see engine/time_capsule/conversion.asm)
-; - SortedPokemon (see misc/fixed_words.asm)
+; - AlphabeticalPokedexOrder (see data/pokemon/dex_order_alpha.asm)
+; - NewPokedexOrder (see data/pokemon/dex_order_new.asm)
+; - MonMenuIcons (see data/pokemon/menu_icons.asm)
+; - Pokered_MonIndices (see data/time_capsule/mon_order.asm)
+; - SortedPokemon (see mobile/fixed_words.asm)
const_value set 1
const BULBASAUR ; 01
const IVYSAUR ; 02
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -1,4 +1,4 @@
-; base data struct members (see data/base_stats/*.asm)
+; base data struct members (see data/pokemon/base_stats/*.asm)
BASE_DEX_NO EQUS "(BaseDexNo - CurBaseData)"
BASE_STATS EQUS "(BaseStats - CurBaseData)"
BASE_HP EQUS "(BaseHP - CurBaseData)"
@@ -25,8 +25,17 @@
BASE_TMHM EQUS "(BaseTMHM - CurBaseData)"
BASE_DATA_SIZE EQUS "(CurBaseDataEnd - CurBaseData)"
+; gender ratio constants
+GENDER_F0 EQU 0 percent
+GENDER_F12_5 EQU 31 ; 12.5 percent
+GENDER_F25 EQU 25 percent
+GENDER_F50 EQU 50 percent
+GENDER_F75 EQU 75 percent
+GENDER_F100 EQU 254 ; 100 percent
+GENDERLESS EQU 255
+
; BaseGrowthRate values
-; GrowthRates indexes (see main.asm)
+; GrowthRates indexes (see data/growth_rates.asm)
const_def
const MEDIUM_FAST
const SLIGHTLY_FAST
@@ -136,7 +145,7 @@
const ICON_BIGMON
-; evolution types (used in data/evos_attacks.asm)
+; evolution types (used in data/pokemon/evos_attacks.asm)
const_value SET 1
const EVOLVE_LEVEL
const EVOLVE_ITEM
--- a/constants/std_constants.asm
+++ b/constants/std_constants.asm
@@ -1,5 +1,5 @@
; StdScripts indexes (see engine/std_scripts.asm)
-; also used in CheckFacingTileForStd (see main.asm)
+; also used in TileCollisionStdScripts (see data/collision_stdscripts.asm)
enum_start
enum pokecenternurse
enum difficultbookshelf
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -1,11 +1,17 @@
+trainerclass: MACRO
+ enum \1
+const_value = 1
+ENDM
+
; trainer class ids
; `trainerclass` indexes are for:
-; - TrainerClassAttributes (see trainers/attributes.asm)
-; - TrainerClassDVs (see trainers/dvs.asm)
-; - TrainerEncounterMusic (see trainers/encounter_music.asm)
-; - TrainerGroups (see trainers/trainer_pointers.asm)
-; - BTTrainerClassGenders (see misc/battle_tower_47.asm)
-; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see trainers/trainers.asm)
+; - TrainerClassAttributes (see data/trainers/trainer_attributes.asm)
+; - TrainerClassDVs (see data/trainers/trainer_dvs.asm)
+; - TrainerClassNames (see data/trainers/trainer_class_names.asm)
+; - TrainerEncounterMusic (see data/trainers/encounter_music.asm)
+; - TrainerGroups (see data/trainers/party_pointers.asm)
+; - BTTrainerClassGenders (see data/trainers/gendered_trainers.asm)
+; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see data/trainers/parties.asm)
enum_start
CHRIS EQU __enum__
trainerclass TRAINER_NONE ; 0
@@ -672,7 +678,7 @@
NUM_TRAINER_CLASSES EQU __enum__
-; TrainerClassAttributes fields (see trainers/attributes.asm)
+; TrainerClassAttributes fields (see data/trainers/trainer_attributes.asm)
const_def
const TRNATTR_ITEM1
const TRNATTR_ITEM2
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -107,7 +107,7 @@
; PlayerState: ; d95d
PLAYER_NORMAL EQU 0
PLAYER_BIKE EQU 1
-PLAYER_SLIP EQU 2
+PLAYER_SKATE EQU 2
PLAYER_SURF EQU 4
PLAYER_SURF_PIKA EQU 8
--- a/data/audio/notes.asm
+++ /dev/null
@@ -1,27 +1,0 @@
-FrequencyTable: ; e8d80
- dw 0 ; __
- dw $f82c ; C_
- dw $f89d ; C#
- dw $f907 ; D_
- dw $f96b ; D#
- dw $f9ca ; E_
- dw $fa23 ; F_
- dw $fa77 ; F#
- dw $fac7 ; G_
- dw $fb12 ; G#
- dw $fb58 ; A_
- dw $fb9b ; A#
- dw $fbda ; B_
- dw $fc16 ; C_
- dw $fc4e ; C#
- dw $fc83 ; D_
- dw $fcb5 ; D#
- dw $fce5 ; E_
- dw $fd11 ; F_
- dw $fd3b ; F#
- dw $fd63 ; G_
- dw $fd89 ; G#
- dw $fdac ; A_
- dw $fdcd ; A#
- dw $fded ; B_
-; e8db2
--- a/data/audio/wave_samples.asm
+++ /dev/null
@@ -1,14 +1,0 @@
-WaveSamples: ; e8db2
- ; these are streams of 32 4-bit values used as wavepatterns
- ; nothing interesting here!
- dn 0, 2, 4, 6, 8, 10, 12, 14, 15, 15, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 3, 3, 2, 2, 1, 1
- dn 0, 2, 4, 6, 8, 10, 12, 14, 14, 15, 15, 15, 15, 14, 14, 14, 13, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 1, 1
- dn 1, 3, 6, 9, 11, 13, 14, 14, 14, 14, 15, 15, 15, 15, 14, 13, 13, 14, 15, 15, 15, 15, 14, 14, 14, 14, 13, 11, 9, 6, 3, 1
- dn 0, 2, 4, 6, 8, 10, 12, 13, 14, 15, 15, 14, 13, 14, 15, 15, 14, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
- dn 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 14, 15, 7, 7, 15, 14, 14, 13, 12, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0
- dn 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 3, 3, 2, 2, 1, 1, 15, 15, 14, 14, 12, 12, 10, 10, 8, 8, 10, 10, 12, 12, 14, 14
- dn 0, 2, 4, 6, 8, 10, 12, 14, 12, 11, 10, 9, 8, 7, 6, 5, 15, 15, 15, 14, 14, 13, 13, 12, 4, 4, 3, 3, 2, 2, 1, 1
- dn 12, 0, 10, 9, 8, 7, 15, 5, 15, 15, 15, 14, 14, 13, 13, 12, 4, 4, 3, 3, 2, 2, 15, 1, 0, 2, 4, 6, 8, 10, 12, 14
- dn 4, 4, 3, 3, 2, 2, 1, 15, 0, 0, 4, 6, 8, 10, 12, 14, 15, 8, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5
- dn 1, 1, 0, 0, 0, 0, 0, 8, 0, 0, 1, 3, 5, 7, 9, 10, 11, 4, 11, 10, 10, 9, 9, 8, 8, 7, 6, 5, 4, 3, 2, 1
-; e8e52
--- a/data/ball_colors.asm
+++ /dev/null
@@ -1,16 +1,0 @@
-; colors of balls thrown in battle
-
-BallColors: ; cd26c (33:526c)
- db MASTER_BALL, PAL_BATTLE_OB_GREEN
- db ULTRA_BALL, PAL_BATTLE_OB_YELLOW
- db GREAT_BALL, PAL_BATTLE_OB_BLUE
- db POKE_BALL, PAL_BATTLE_OB_RED
- db HEAVY_BALL, PAL_BATTLE_OB_GRAY
- db LEVEL_BALL, PAL_BATTLE_OB_BROWN
- db LURE_BALL, PAL_BATTLE_OB_BLUE
- db FAST_BALL, PAL_BATTLE_OB_BLUE
- db FRIEND_BALL, PAL_BATTLE_OB_YELLOW
- db MOON_BALL, PAL_BATTLE_OB_GRAY
- db LOVE_BALL, PAL_BATTLE_OB_RED
- db -1, PAL_BATTLE_OB_GRAY
-; cd284
--- a/data/base_stats.asm
+++ /dev/null
@@ -1,252 +1,0 @@
-BaseData::
-INCLUDE "data/base_stats/bulbasaur.asm"
-INCLUDE "data/base_stats/ivysaur.asm"
-INCLUDE "data/base_stats/venusaur.asm"
-INCLUDE "data/base_stats/charmander.asm"
-INCLUDE "data/base_stats/charmeleon.asm"
-INCLUDE "data/base_stats/charizard.asm"
-INCLUDE "data/base_stats/squirtle.asm"
-INCLUDE "data/base_stats/wartortle.asm"
-INCLUDE "data/base_stats/blastoise.asm"
-INCLUDE "data/base_stats/caterpie.asm"
-INCLUDE "data/base_stats/metapod.asm"
-INCLUDE "data/base_stats/butterfree.asm"
-INCLUDE "data/base_stats/weedle.asm"
-INCLUDE "data/base_stats/kakuna.asm"
-INCLUDE "data/base_stats/beedrill.asm"
-INCLUDE "data/base_stats/pidgey.asm"
-INCLUDE "data/base_stats/pidgeotto.asm"
-INCLUDE "data/base_stats/pidgeot.asm"
-INCLUDE "data/base_stats/rattata.asm"
-INCLUDE "data/base_stats/raticate.asm"
-INCLUDE "data/base_stats/spearow.asm"
-INCLUDE "data/base_stats/fearow.asm"
-INCLUDE "data/base_stats/ekans.asm"
-INCLUDE "data/base_stats/arbok.asm"
-INCLUDE "data/base_stats/pikachu.asm"
-INCLUDE "data/base_stats/raichu.asm"
-INCLUDE "data/base_stats/sandshrew.asm"
-INCLUDE "data/base_stats/sandslash.asm"
-INCLUDE "data/base_stats/nidoran_f.asm"
-INCLUDE "data/base_stats/nidorina.asm"
-INCLUDE "data/base_stats/nidoqueen.asm"
-INCLUDE "data/base_stats/nidoran_m.asm"
-INCLUDE "data/base_stats/nidorino.asm"
-INCLUDE "data/base_stats/nidoking.asm"
-INCLUDE "data/base_stats/clefairy.asm"
-INCLUDE "data/base_stats/clefable.asm"
-INCLUDE "data/base_stats/vulpix.asm"
-INCLUDE "data/base_stats/ninetales.asm"
-INCLUDE "data/base_stats/jigglypuff.asm"
-INCLUDE "data/base_stats/wigglytuff.asm"
-INCLUDE "data/base_stats/zubat.asm"
-INCLUDE "data/base_stats/golbat.asm"
-INCLUDE "data/base_stats/oddish.asm"
-INCLUDE "data/base_stats/gloom.asm"
-INCLUDE "data/base_stats/vileplume.asm"
-INCLUDE "data/base_stats/paras.asm"
-INCLUDE "data/base_stats/parasect.asm"
-INCLUDE "data/base_stats/venonat.asm"
-INCLUDE "data/base_stats/venomoth.asm"
-INCLUDE "data/base_stats/diglett.asm"
-INCLUDE "data/base_stats/dugtrio.asm"
-INCLUDE "data/base_stats/meowth.asm"
-INCLUDE "data/base_stats/persian.asm"
-INCLUDE "data/base_stats/psyduck.asm"
-INCLUDE "data/base_stats/golduck.asm"
-INCLUDE "data/base_stats/mankey.asm"
-INCLUDE "data/base_stats/primeape.asm"
-INCLUDE "data/base_stats/growlithe.asm"
-INCLUDE "data/base_stats/arcanine.asm"
-INCLUDE "data/base_stats/poliwag.asm"
-INCLUDE "data/base_stats/poliwhirl.asm"
-INCLUDE "data/base_stats/poliwrath.asm"
-INCLUDE "data/base_stats/abra.asm"
-INCLUDE "data/base_stats/kadabra.asm"
-INCLUDE "data/base_stats/alakazam.asm"
-INCLUDE "data/base_stats/machop.asm"
-INCLUDE "data/base_stats/machoke.asm"
-INCLUDE "data/base_stats/machamp.asm"
-INCLUDE "data/base_stats/bellsprout.asm"
-INCLUDE "data/base_stats/weepinbell.asm"
-INCLUDE "data/base_stats/victreebel.asm"
-INCLUDE "data/base_stats/tentacool.asm"
-INCLUDE "data/base_stats/tentacruel.asm"
-INCLUDE "data/base_stats/geodude.asm"
-INCLUDE "data/base_stats/graveler.asm"
-INCLUDE "data/base_stats/golem.asm"
-INCLUDE "data/base_stats/ponyta.asm"
-INCLUDE "data/base_stats/rapidash.asm"
-INCLUDE "data/base_stats/slowpoke.asm"
-INCLUDE "data/base_stats/slowbro.asm"
-INCLUDE "data/base_stats/magnemite.asm"
-INCLUDE "data/base_stats/magneton.asm"
-INCLUDE "data/base_stats/farfetch_d.asm"
-INCLUDE "data/base_stats/doduo.asm"
-INCLUDE "data/base_stats/dodrio.asm"
-INCLUDE "data/base_stats/seel.asm"
-INCLUDE "data/base_stats/dewgong.asm"
-INCLUDE "data/base_stats/grimer.asm"
-INCLUDE "data/base_stats/muk.asm"
-INCLUDE "data/base_stats/shellder.asm"
-INCLUDE "data/base_stats/cloyster.asm"
-INCLUDE "data/base_stats/gastly.asm"
-INCLUDE "data/base_stats/haunter.asm"
-INCLUDE "data/base_stats/gengar.asm"
-INCLUDE "data/base_stats/onix.asm"
-INCLUDE "data/base_stats/drowzee.asm"
-INCLUDE "data/base_stats/hypno.asm"
-INCLUDE "data/base_stats/krabby.asm"
-INCLUDE "data/base_stats/kingler.asm"
-INCLUDE "data/base_stats/voltorb.asm"
-INCLUDE "data/base_stats/electrode.asm"
-INCLUDE "data/base_stats/exeggcute.asm"
-INCLUDE "data/base_stats/exeggutor.asm"
-INCLUDE "data/base_stats/cubone.asm"
-INCLUDE "data/base_stats/marowak.asm"
-INCLUDE "data/base_stats/hitmonlee.asm"
-INCLUDE "data/base_stats/hitmonchan.asm"
-INCLUDE "data/base_stats/lickitung.asm"
-INCLUDE "data/base_stats/koffing.asm"
-INCLUDE "data/base_stats/weezing.asm"
-INCLUDE "data/base_stats/rhyhorn.asm"
-INCLUDE "data/base_stats/rhydon.asm"
-INCLUDE "data/base_stats/chansey.asm"
-INCLUDE "data/base_stats/tangela.asm"
-INCLUDE "data/base_stats/kangaskhan.asm"
-INCLUDE "data/base_stats/horsea.asm"
-INCLUDE "data/base_stats/seadra.asm"
-INCLUDE "data/base_stats/goldeen.asm"
-INCLUDE "data/base_stats/seaking.asm"
-INCLUDE "data/base_stats/staryu.asm"
-INCLUDE "data/base_stats/starmie.asm"
-INCLUDE "data/base_stats/mr__mime.asm"
-INCLUDE "data/base_stats/scyther.asm"
-INCLUDE "data/base_stats/jynx.asm"
-INCLUDE "data/base_stats/electabuzz.asm"
-INCLUDE "data/base_stats/magmar.asm"
-INCLUDE "data/base_stats/pinsir.asm"
-INCLUDE "data/base_stats/tauros.asm"
-INCLUDE "data/base_stats/magikarp.asm"
-INCLUDE "data/base_stats/gyarados.asm"
-INCLUDE "data/base_stats/lapras.asm"
-INCLUDE "data/base_stats/ditto.asm"
-INCLUDE "data/base_stats/eevee.asm"
-INCLUDE "data/base_stats/vaporeon.asm"
-INCLUDE "data/base_stats/jolteon.asm"
-INCLUDE "data/base_stats/flareon.asm"
-INCLUDE "data/base_stats/porygon.asm"
-INCLUDE "data/base_stats/omanyte.asm"
-INCLUDE "data/base_stats/omastar.asm"
-INCLUDE "data/base_stats/kabuto.asm"
-INCLUDE "data/base_stats/kabutops.asm"
-INCLUDE "data/base_stats/aerodactyl.asm"
-INCLUDE "data/base_stats/snorlax.asm"
-INCLUDE "data/base_stats/articuno.asm"
-INCLUDE "data/base_stats/zapdos.asm"
-INCLUDE "data/base_stats/moltres.asm"
-INCLUDE "data/base_stats/dratini.asm"
-INCLUDE "data/base_stats/dragonair.asm"
-INCLUDE "data/base_stats/dragonite.asm"
-INCLUDE "data/base_stats/mewtwo.asm"
-INCLUDE "data/base_stats/mew.asm"
-INCLUDE "data/base_stats/chikorita.asm"
-INCLUDE "data/base_stats/bayleef.asm"
-INCLUDE "data/base_stats/meganium.asm"
-INCLUDE "data/base_stats/cyndaquil.asm"
-INCLUDE "data/base_stats/quilava.asm"
-INCLUDE "data/base_stats/typhlosion.asm"
-INCLUDE "data/base_stats/totodile.asm"
-INCLUDE "data/base_stats/croconaw.asm"
-INCLUDE "data/base_stats/feraligatr.asm"
-INCLUDE "data/base_stats/sentret.asm"
-INCLUDE "data/base_stats/furret.asm"
-INCLUDE "data/base_stats/hoothoot.asm"
-INCLUDE "data/base_stats/noctowl.asm"
-INCLUDE "data/base_stats/ledyba.asm"
-INCLUDE "data/base_stats/ledian.asm"
-INCLUDE "data/base_stats/spinarak.asm"
-INCLUDE "data/base_stats/ariados.asm"
-INCLUDE "data/base_stats/crobat.asm"
-INCLUDE "data/base_stats/chinchou.asm"
-INCLUDE "data/base_stats/lanturn.asm"
-INCLUDE "data/base_stats/pichu.asm"
-INCLUDE "data/base_stats/cleffa.asm"
-INCLUDE "data/base_stats/igglybuff.asm"
-INCLUDE "data/base_stats/togepi.asm"
-INCLUDE "data/base_stats/togetic.asm"
-INCLUDE "data/base_stats/natu.asm"
-INCLUDE "data/base_stats/xatu.asm"
-INCLUDE "data/base_stats/mareep.asm"
-INCLUDE "data/base_stats/flaaffy.asm"
-INCLUDE "data/base_stats/ampharos.asm"
-INCLUDE "data/base_stats/bellossom.asm"
-INCLUDE "data/base_stats/marill.asm"
-INCLUDE "data/base_stats/azumarill.asm"
-INCLUDE "data/base_stats/sudowoodo.asm"
-INCLUDE "data/base_stats/politoed.asm"
-INCLUDE "data/base_stats/hoppip.asm"
-INCLUDE "data/base_stats/skiploom.asm"
-INCLUDE "data/base_stats/jumpluff.asm"
-INCLUDE "data/base_stats/aipom.asm"
-INCLUDE "data/base_stats/sunkern.asm"
-INCLUDE "data/base_stats/sunflora.asm"
-INCLUDE "data/base_stats/yanma.asm"
-INCLUDE "data/base_stats/wooper.asm"
-INCLUDE "data/base_stats/quagsire.asm"
-INCLUDE "data/base_stats/espeon.asm"
-INCLUDE "data/base_stats/umbreon.asm"
-INCLUDE "data/base_stats/murkrow.asm"
-INCLUDE "data/base_stats/slowking.asm"
-INCLUDE "data/base_stats/misdreavus.asm"
-INCLUDE "data/base_stats/unown.asm"
-INCLUDE "data/base_stats/wobbuffet.asm"
-INCLUDE "data/base_stats/girafarig.asm"
-INCLUDE "data/base_stats/pineco.asm"
-INCLUDE "data/base_stats/forretress.asm"
-INCLUDE "data/base_stats/dunsparce.asm"
-INCLUDE "data/base_stats/gligar.asm"
-INCLUDE "data/base_stats/steelix.asm"
-INCLUDE "data/base_stats/snubbull.asm"
-INCLUDE "data/base_stats/granbull.asm"
-INCLUDE "data/base_stats/qwilfish.asm"
-INCLUDE "data/base_stats/scizor.asm"
-INCLUDE "data/base_stats/shuckle.asm"
-INCLUDE "data/base_stats/heracross.asm"
-INCLUDE "data/base_stats/sneasel.asm"
-INCLUDE "data/base_stats/teddiursa.asm"
-INCLUDE "data/base_stats/ursaring.asm"
-INCLUDE "data/base_stats/slugma.asm"
-INCLUDE "data/base_stats/magcargo.asm"
-INCLUDE "data/base_stats/swinub.asm"
-INCLUDE "data/base_stats/piloswine.asm"
-INCLUDE "data/base_stats/corsola.asm"
-INCLUDE "data/base_stats/remoraid.asm"
-INCLUDE "data/base_stats/octillery.asm"
-INCLUDE "data/base_stats/delibird.asm"
-INCLUDE "data/base_stats/mantine.asm"
-INCLUDE "data/base_stats/skarmory.asm"
-INCLUDE "data/base_stats/houndour.asm"
-INCLUDE "data/base_stats/houndoom.asm"
-INCLUDE "data/base_stats/kingdra.asm"
-INCLUDE "data/base_stats/phanpy.asm"
-INCLUDE "data/base_stats/donphan.asm"
-INCLUDE "data/base_stats/porygon2.asm"
-INCLUDE "data/base_stats/stantler.asm"
-INCLUDE "data/base_stats/smeargle.asm"
-INCLUDE "data/base_stats/tyrogue.asm"
-INCLUDE "data/base_stats/hitmontop.asm"
-INCLUDE "data/base_stats/smoochum.asm"
-INCLUDE "data/base_stats/elekid.asm"
-INCLUDE "data/base_stats/magby.asm"
-INCLUDE "data/base_stats/miltank.asm"
-INCLUDE "data/base_stats/blissey.asm"
-INCLUDE "data/base_stats/raikou.asm"
-INCLUDE "data/base_stats/entei.asm"
-INCLUDE "data/base_stats/suicune.asm"
-INCLUDE "data/base_stats/larvitar.asm"
-INCLUDE "data/base_stats/pupitar.asm"
-INCLUDE "data/base_stats/tyranitar.asm"
-INCLUDE "data/base_stats/lugia.asm"
-INCLUDE "data/base_stats/ho_oh.asm"
-INCLUDE "data/base_stats/celebi.asm"
--- a/data/base_stats/abra.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ABRA ; 063
-
- db 25, 20, 15, 90, 105, 55
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 200 ; catch rate
- db 73 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/abra/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/aerodactyl.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db AERODACTYL ; 142
-
- db 80, 105, 65, 130, 60, 75
- ; hp atk def spd sat sdf
-
- db ROCK, FLYING
- db 45 ; catch rate
- db 202 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/aerodactyl/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLAMETHROWER
- ; end
--- a/data/base_stats/aipom.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db AIPOM ; 190
-
- db 55, 70, 55, 85, 40, 55
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 94 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/aipom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, STRENGTH, THUNDERBOLT
- ; end
--- a/data/base_stats/alakazam.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ALAKAZAM ; 065
-
- db 55, 50, 45, 120, 135, 85
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 50 ; catch rate
- db 186 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/alakazam/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/ampharos.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db AMPHAROS ; 181
-
- db 90, 75, 75, 55, 115, 90
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 45 ; catch rate
- db 194 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ampharos/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/arbok.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ARBOK ; 024
-
- db 60, 85, 69, 80, 65, 79
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 90 ; catch rate
- db 147 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/arbok/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
- ; end
--- a/data/base_stats/arcanine.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ARCANINE ; 059
-
- db 90, 110, 80, 95, 100, 80
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 75 ; catch rate
- db 213 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/arcanine/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
--- a/data/base_stats/ariados.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ARIADOS ; 168
-
- db 70, 90, 70, 40, 60, 60
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 90 ; catch rate
- db 134 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ariados/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
- ; end
--- a/data/base_stats/articuno.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ARTICUNO ; 144
-
- db 90, 85, 100, 85, 95, 125
- ; hp atk def spd sat sdf
-
- db ICE, FLYING
- db 3 ; catch rate
- db 215 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/articuno/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, ICE_BEAM
- ; end
--- a/data/base_stats/azumarill.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db AZUMARILL ; 184
-
- db 100, 50, 80, 50, 50, 80
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 75 ; catch rate
- db 153 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/azumarill/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMPHIBIAN, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/bayleef.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db BAYLEEF ; 153
-
- db 60, 62, 80, 60, 63, 80
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 141 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/bayleef/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
- ; end
--- a/data/base_stats/beedrill.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db BEEDRILL ; 015
-
- db 65, 80, 40, 75, 45, 80
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 45 ; catch rate
- db 159 ; base exp
- db NO_ITEM ; item 1
- db POISON_BARB ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/beedrill/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, FURY_CUTTER, CUT
- ; end
--- a/data/base_stats/bellossom.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db BELLOSSOM ; 182
-
- db 75, 80, 85, 50, 90, 100
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 184 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/bellossom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/bellsprout.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db BELLSPROUT ; 069
-
- db 50, 75, 35, 40, 70, 30
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 255 ; catch rate
- db 84 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/bellsprout/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/blastoise.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db BLASTOISE ; 009
-
- db 79, 83, 100, 78, 85, 105
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 210 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/blastoise/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/blissey.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db BLISSEY ; 242
-
- db 255, 10, 10, 55, 75, 135
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 30 ; catch rate
- db 255 ; base exp
- db NO_ITEM ; item 1
- db LUCKY_EGG ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/blissey/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/bulbasaur.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db BULBASAUR ; 001
-
- db 45, 49, 49, 45, 65, 65
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 64 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/bulbasaur/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
- ; end
--- a/data/base_stats/butterfree.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db BUTTERFREE ; 012
-
- db 60, 45, 50, 70, 80, 80
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 45 ; catch rate
- db 160 ; base exp
- db NO_ITEM ; item 1
- db SILVERPOWDER ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/butterfree/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/caterpie.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CATERPIE ; 010
-
- db 45, 30, 35, 45, 20, 20
- ; hp atk def spd sat sdf
-
- db BUG, BUG
- db 255 ; catch rate
- db 53 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/caterpie/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/celebi.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CELEBI ; 251
-
- db 100, 100, 100, 100, 100, 100
- ; hp atk def spd sat sdf
-
- db PSYCHIC, GRASS
- db 45 ; catch rate
- db 64 ; base exp
- db NO_ITEM ; item 1
- db MIRACLEBERRY ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/celebi/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/chansey.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CHANSEY ; 113
-
- db 250, 05, 05, 50, 35, 105
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 30 ; catch rate
- db 255 ; base exp
- db NO_ITEM ; item 1
- db LUCKY_EGG ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/chansey/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/charizard.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CHARIZARD ; 006
-
- db 78, 84, 78, 100, 109, 85
- ; hp atk def spd sat sdf
-
- db FIRE, FLYING
- db 45 ; catch rate
- db 209 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/charizard/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, REPTILE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, CUT, FLY, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/charmander.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CHARMANDER ; 004
-
- db 39, 52, 43, 65, 60, 50
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 65 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/charmander/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, REPTILE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/charmeleon.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CHARMELEON ; 005
-
- db 58, 64, 58, 80, 80, 65
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 142 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/charmeleon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, REPTILE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/chikorita.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CHIKORITA ; 152
-
- db 45, 49, 65, 45, 49, 65
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 64 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/chikorita/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/chinchou.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CHINCHOU ; 170
-
- db 75, 38, 38, 67, 56, 56
- ; hp atk def spd sat sdf
-
- db WATER, ELECTRIC
- db 190 ; catch rate
- db 90 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/chinchou/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/clefable.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CLEFABLE ; 036
-
- db 95, 70, 73, 60, 85, 90
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 25 ; catch rate
- db 129 ; base exp
- db MYSTERYBERRY ; item 1
- db MOON_STONE ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/clefable/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/clefairy.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CLEFAIRY ; 035
-
- db 70, 45, 48, 35, 60, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 150 ; catch rate
- db 68 ; base exp
- db MYSTERYBERRY ; item 1
- db MOON_STONE ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/clefairy/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/cleffa.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CLEFFA ; 173
-
- db 50, 25, 28, 15, 45, 55
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 150 ; catch rate
- db 37 ; base exp
- db MYSTERYBERRY ; item 1
- db MOON_STONE ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/cleffa/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
- ; end
--- a/data/base_stats/cloyster.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CLOYSTER ; 091
-
- db 50, 95, 180, 70, 85, 45
- ; hp atk def spd sat sdf
-
- db WATER, ICE
- db 60 ; catch rate
- db 203 ; base exp
- db PEARL ; item 1
- db BIG_PEARL ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/cloyster/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/corsola.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CORSOLA ; 222
-
- db 55, 55, 85, 35, 65, 85
- ; hp atk def spd sat sdf
-
- db WATER, ROCK
- db 60 ; catch rate
- db 113 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/corsola/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/crobat.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CROBAT ; 169
-
- db 85, 90, 80, 130, 70, 80
- ; hp atk def spd sat sdf
-
- db POISON, FLYING
- db 90 ; catch rate
- db 204 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/crobat/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
--- a/data/base_stats/croconaw.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CROCONAW ; 159
-
- db 65, 80, 80, 58, 59, 63
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 143 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/croconaw/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/cubone.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CUBONE ; 104
-
- db 50, 50, 95, 35, 40, 50
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 190 ; catch rate
- db 87 ; base exp
- db NO_ITEM ; item 1
- db THICK_CLUB ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/cubone/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
- ; end
--- a/data/base_stats/cyndaquil.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db CYNDAQUIL ; 155
-
- db 39, 52, 43, 65, 60, 50
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 65 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/cyndaquil/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER
- ; end
--- a/data/base_stats/delibird.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DELIBIRD ; 225
-
- db 45, 55, 45, 75, 65, 45
- ; hp atk def spd sat sdf
-
- db ICE, FLYING
- db 45 ; catch rate
- db 183 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/delibird/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLY, ICE_BEAM
- ; end
--- a/data/base_stats/dewgong.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DEWGONG ; 087
-
- db 90, 70, 80, 70, 70, 95
- ; hp atk def spd sat sdf
-
- db WATER, ICE
- db 75 ; catch rate
- db 176 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dewgong/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/diglett.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DIGLETT ; 050
-
- db 10, 55, 25, 95, 35, 45
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 255 ; catch rate
- db 81 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/diglett/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
- ; end
--- a/data/base_stats/ditto.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DITTO ; 132
-
- db 48, 48, 48, 48, 48, 48
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 35 ; catch rate
- db 61 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ditto/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn LADIES_MAN, LADIES_MAN ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/dodrio.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DODRIO ; 085
-
- db 60, 110, 70, 100, 60, 60
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 45 ; catch rate
- db 158 ; base exp
- db NO_ITEM ; item 1
- db SHARP_BEAK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dodrio/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
--- a/data/base_stats/doduo.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DODUO ; 084
-
- db 35, 85, 45, 75, 35, 35
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 190 ; catch rate
- db 96 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/doduo/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
--- a/data/base_stats/donphan.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DONPHAN ; 232
-
- db 90, 120, 120, 50, 60, 60
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 60 ; catch rate
- db 189 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/donphan/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
- ; end
--- a/data/base_stats/dragonair.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DRAGONAIR ; 148
-
- db 61, 84, 65, 70, 70, 70
- ; hp atk def spd sat sdf
-
- db DRAGON, DRAGON
- db 45 ; catch rate
- db 144 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dragonair/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/dragonite.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DRAGONITE ; 149
-
- db 91, 134, 95, 80, 100, 100
- ; hp atk def spd sat sdf
-
- db DRAGON, FLYING
- db 45 ; catch rate
- db 218 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dragonite/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/dratini.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DRATINI ; 147
-
- db 41, 64, 45, 50, 50, 50
- ; hp atk def spd sat sdf
-
- db DRAGON, DRAGON
- db 45 ; catch rate
- db 67 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dratini/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/drowzee.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DROWZEE ; 096
-
- db 60, 48, 45, 42, 43, 90
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 190 ; catch rate
- db 102 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/drowzee/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/dugtrio.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DUGTRIO ; 051
-
- db 35, 80, 50, 120, 50, 70
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 50 ; catch rate
- db 153 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dugtrio/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
- ; end
--- a/data/base_stats/dunsparce.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db DUNSPARCE ; 206
-
- db 100, 70, 70, 45, 65, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 190 ; catch rate
- db 75 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dunsparce/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER, THUNDERBOLT
- ; end
--- a/data/base_stats/eevee.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db EEVEE ; 133
-
- db 55, 55, 50, 55, 45, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 92 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/eevee/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT
- ; end
--- a/data/base_stats/ekans.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db EKANS ; 023
-
- db 35, 60, 44, 55, 40, 54
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 255 ; catch rate
- db 62 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ekans/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
- ; end
--- a/data/base_stats/electabuzz.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ELECTABUZZ ; 125
-
- db 65, 83, 57, 105, 95, 85
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 45 ; catch rate
- db 156 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/electabuzz/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/electrode.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ELECTRODE ; 101
-
- db 60, 50, 70, 140, 80, 80
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 60 ; catch rate
- db 150 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/electrode/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/elekid.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ELEKID ; 239
-
- db 45, 63, 37, 95, 65, 55
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 45 ; catch rate
- db 106 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/elekid/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/entei.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ENTEI ; 244
-
- db 115, 115, 85, 100, 90, 75
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 3 ; catch rate
- db 217 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/entei/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, FLAMETHROWER
- ; end
--- a/data/base_stats/espeon.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ESPEON ; 196
-
- db 65, 65, 60, 110, 130, 95
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 45 ; catch rate
- db 197 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/espeon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
- ; end
--- a/data/base_stats/exeggcute.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db EXEGGCUTE ; 102
-
- db 60, 40, 80, 40, 60, 45
- ; hp atk def spd sat sdf
-
- db GRASS, PSYCHIC
- db 90 ; catch rate
- db 98 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/exeggcute/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
- ; end
--- a/data/base_stats/exeggutor.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db EXEGGUTOR ; 103
-
- db 95, 95, 85, 55, 125, 65
- ; hp atk def spd sat sdf
-
- db GRASS, PSYCHIC
- db 45 ; catch rate
- db 212 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/exeggutor/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
- ; end
--- a/data/base_stats/farfetch_d.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db FARFETCH_D ; 083
-
- db 52, 65, 55, 60, 58, 62
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 45 ; catch rate
- db 94 ; base exp
- db NO_ITEM ; item 1
- db STICK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/farfetch_d/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
- ; end
--- a/data/base_stats/fearow.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db FEAROW ; 022
-
- db 65, 90, 65, 100, 61, 61
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 90 ; catch rate
- db 162 ; base exp
- db NO_ITEM ; item 1
- db SHARP_BEAK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/fearow/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
--- a/data/base_stats/feraligatr.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db FERALIGATR ; 160
-
- db 85, 105, 100, 78, 79, 83
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 210 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/feraligatr/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/flaaffy.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db FLAAFFY ; 180
-
- db 70, 55, 55, 45, 80, 60
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 120 ; catch rate
- db 117 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/flaaffy/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/flareon.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db FLAREON ; 136
-
- db 65, 130, 60, 65, 95, 110
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 198 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/flareon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, FLAMETHROWER
- ; end
--- a/data/base_stats/forretress.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db FORRETRESS ; 205
-
- db 75, 90, 140, 40, 60, 60
- ; hp atk def spd sat sdf
-
- db BUG, STEEL
- db 75 ; catch rate
- db 118 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/forretress/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
- ; end
--- a/data/base_stats/furret.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db FURRET ; 162
-
- db 85, 76, 64, 90, 45, 55
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 90 ; catch rate
- db 116 ; base exp
- db BERRY ; item 1
- db GOLD_BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/furret/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF, STRENGTH
- ; end
--- a/data/base_stats/gastly.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GASTLY ; 092
-
- db 30, 35, 30, 80, 100, 35
- ; hp atk def spd sat sdf
-
- db GHOST, POISON
- db 190 ; catch rate
- db 95 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gastly/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
- ; end
--- a/data/base_stats/gengar.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GENGAR ; 094
-
- db 60, 65, 60, 110, 130, 75
- ; hp atk def spd sat sdf
-
- db GHOST, POISON
- db 45 ; catch rate
- db 190 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gengar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, STRENGTH, THUNDERBOLT
- ; end
--- a/data/base_stats/geodude.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GEODUDE ; 074
-
- db 40, 80, 100, 20, 30, 30
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 255 ; catch rate
- db 86 ; base exp
- db NO_ITEM ; item 1
- db EVERSTONE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/geodude/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/girafarig.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GIRAFARIG ; 203
-
- db 70, 80, 65, 85, 90, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, PSYCHIC
- db 60 ; catch rate
- db 149 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/girafarig/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, THUNDERBOLT
- ; end
--- a/data/base_stats/gligar.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GLIGAR ; 207
-
- db 65, 75, 105, 85, 35, 65
- ; hp atk def spd sat sdf
-
- db GROUND, FLYING
- db 60 ; catch rate
- db 108 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gligar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
--- a/data/base_stats/gloom.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GLOOM ; 044
-
- db 60, 65, 70, 40, 85, 75
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 120 ; catch rate
- db 132 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gloom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/golbat.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GOLBAT ; 042
-
- db 75, 80, 70, 90, 65, 75
- ; hp atk def spd sat sdf
-
- db POISON, FLYING
- db 90 ; catch rate
- db 171 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/golbat/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
- ; end
--- a/data/base_stats/goldeen.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GOLDEEN ; 118
-
- db 45, 67, 60, 63, 35, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 225 ; catch rate
- db 111 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/goldeen/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/golduck.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GOLDUCK ; 055
-
- db 80, 82, 78, 85, 95, 80
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 75 ; catch rate
- db 174 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/golduck/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, FURY_CUTTER, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/golem.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GOLEM ; 076
-
- db 80, 110, 130, 45, 55, 65
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 45 ; catch rate
- db 177 ; base exp
- db NO_ITEM ; item 1
- db EVERSTONE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/golem/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/granbull.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GRANBULL ; 210
-
- db 90, 120, 75, 45, 60, 60
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 75 ; catch rate
- db 178 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/granbull/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FIELD, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
- ; end
--- a/data/base_stats/graveler.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GRAVELER ; 075
-
- db 55, 95, 115, 35, 45, 45
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 120 ; catch rate
- db 134 ; base exp
- db NO_ITEM ; item 1
- db EVERSTONE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/graveler/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/grimer.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GRIMER ; 088
-
- db 80, 80, 50, 25, 40, 50
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 190 ; catch rate
- db 90 ; base exp
- db NO_ITEM ; item 1
- db NUGGET ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/grimer/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
- ; end
--- a/data/base_stats/growlithe.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GROWLITHE ; 058
-
- db 55, 70, 45, 60, 70, 50
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 190 ; catch rate
- db 91 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/growlithe/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
--- a/data/base_stats/gyarados.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db GYARADOS ; 130
-
- db 95, 125, 79, 81, 60, 100
- ; hp atk def spd sat sdf
-
- db WATER, FLYING
- db 45 ; catch rate
- db 214 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 5 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gyarados/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FISH, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/haunter.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HAUNTER ; 093
-
- db 45, 50, 45, 95, 115, 55
- ; hp atk def spd sat sdf
-
- db GHOST, POISON
- db 90 ; catch rate
- db 126 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/haunter/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
- ; end
--- a/data/base_stats/heracross.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HERACROSS ; 214
-
- db 80, 125, 75, 85, 40, 95
- ; hp atk def spd sat sdf
-
- db BUG, FIGHTING
- db 45 ; catch rate
- db 200 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/heracross/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
--- a/data/base_stats/hitmonchan.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HITMONCHAN ; 107
-
- db 50, 105, 79, 76, 35, 110
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 45 ; catch rate
- db 140 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hitmonchan/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
- ; end
--- a/data/base_stats/hitmonlee.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HITMONLEE ; 106
-
- db 50, 120, 53, 87, 35, 110
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 45 ; catch rate
- db 139 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hitmonlee/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
- ; end
--- a/data/base_stats/hitmontop.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HITMONTOP ; 237
-
- db 50, 95, 95, 70, 35, 110
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 45 ; catch rate
- db 138 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hitmontop/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
- ; end
--- a/data/base_stats/ho_oh.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HO_OH ; 250
-
- db 106, 130, 90, 90, 110, 154
- ; hp atk def spd sat sdf
-
- db FIRE, FLYING
- db 3 ; catch rate
- db 220 ; base exp
- db SACRED_ASH ; item 1
- db SACRED_ASH ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ho_oh/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT
- ; end
--- a/data/base_stats/hoothoot.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HOOTHOOT ; 163
-
- db 60, 30, 30, 50, 36, 56
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 255 ; catch rate
- db 58 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hoothoot/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
- ; end
--- a/data/base_stats/hoppip.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HOPPIP ; 187
-
- db 35, 35, 40, 50, 35, 55
- ; hp atk def spd sat sdf
-
- db GRASS, FLYING
- db 255 ; catch rate
- db 74 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hoppip/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FAIRY, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
- ; end
--- a/data/base_stats/horsea.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HORSEA ; 116
-
- db 30, 40, 70, 60, 70, 25
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 225 ; catch rate
- db 83 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/horsea/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/houndoom.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HOUNDOOM ; 229
-
- db 75, 90, 50, 95, 110, 80
- ; hp atk def spd sat sdf
-
- db DARK, FIRE
- db 45 ; catch rate
- db 204 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/houndoom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/houndour.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HOUNDOUR ; 228
-
- db 45, 60, 30, 65, 80, 50
- ; hp atk def spd sat sdf
-
- db DARK, FIRE
- db 120 ; catch rate
- db 114 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/houndour/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLAMETHROWER
- ; end
--- a/data/base_stats/hypno.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db HYPNO ; 097
-
- db 85, 73, 70, 67, 73, 115
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 75 ; catch rate
- db 165 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hypno/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/igglybuff.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db IGGLYBUFF ; 174
-
- db 90, 30, 15, 15, 40, 20
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 170 ; catch rate
- db 39 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/igglybuff/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
- ; end
--- a/data/base_stats/ivysaur.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db IVYSAUR ; 002
-
- db 60, 62, 63, 60, 80, 80
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 141 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ivysaur/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
- ; end
--- a/data/base_stats/jigglypuff.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db JIGGLYPUFF ; 039
-
- db 115, 45, 20, 20, 45, 25
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 170 ; catch rate
- db 76 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/jigglypuff/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/jolteon.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db JOLTEON ; 135
-
- db 65, 65, 60, 130, 110, 95
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 45 ; catch rate
- db 197 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/jolteon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/jumpluff.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db JUMPLUFF ; 189
-
- db 75, 55, 70, 110, 55, 85
- ; hp atk def spd sat sdf
-
- db GRASS, FLYING
- db 45 ; catch rate
- db 176 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/jumpluff/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FAIRY, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
- ; end
--- a/data/base_stats/jynx.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db JYNX ; 124
-
- db 65, 50, 35, 95, 115, 95
- ; hp atk def spd sat sdf
-
- db ICE, PSYCHIC
- db 45 ; catch rate
- db 137 ; base exp
- db ICE_BERRY ; item 1
- db ICE_BERRY ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/jynx/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
- ; end
--- a/data/base_stats/kabuto.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KABUTO ; 140
-
- db 30, 80, 90, 55, 55, 45
- ; hp atk def spd sat sdf
-
- db ROCK, WATER
- db 45 ; catch rate
- db 119 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 30 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kabuto/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, ICE_BEAM
- ; end
--- a/data/base_stats/kabutops.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KABUTOPS ; 141
-
- db 60, 115, 105, 80, 65, 70
- ; hp atk def spd sat sdf
-
- db ROCK, WATER
- db 45 ; catch rate
- db 201 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 30 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kabutops/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/kadabra.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KADABRA ; 064
-
- db 40, 35, 30, 105, 120, 70
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 100 ; catch rate
- db 145 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kadabra/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/kakuna.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KAKUNA ; 014
-
- db 45, 25, 50, 35, 25, 25
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 120 ; catch rate
- db 71 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kakuna/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/kangaskhan.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KANGASKHAN ; 115
-
- db 105, 95, 80, 90, 40, 80
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 175 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kangaskhan/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/kingdra.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KINGDRA ; 230
-
- db 75, 95, 95, 85, 95, 95
- ; hp atk def spd sat sdf
-
- db WATER, DRAGON
- db 45 ; catch rate
- db 207 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kingdra/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/kingler.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KINGLER ; 099
-
- db 55, 130, 115, 75, 50, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 60 ; catch rate
- db 206 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kingler/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/koffing.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KOFFING ; 109
-
- db 40, 65, 95, 35, 60, 45
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 190 ; catch rate
- db 114 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/koffing/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
- ; end
--- a/data/base_stats/krabby.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db KRABBY ; 098
-
- db 30, 105, 90, 50, 25, 25
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 225 ; catch rate
- db 115 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/krabby/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/lanturn.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db LANTURN ; 171
-
- db 125, 58, 58, 67, 76, 76
- ; hp atk def spd sat sdf
-
- db WATER, ELECTRIC
- db 75 ; catch rate
- db 156 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/lanturn/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/lapras.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db LAPRAS ; 131
-
- db 130, 85, 80, 60, 85, 95
- ; hp atk def spd sat sdf
-
- db WATER, ICE
- db 45 ; catch rate
- db 219 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/lapras/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, WHIRLPOOL, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/larvitar.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db LARVITAR ; 246
-
- db 50, 64, 50, 41, 45, 50
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 45 ; catch rate
- db 67 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/larvitar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
- ; end
--- a/data/base_stats/ledian.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db LEDIAN ; 166
-
- db 55, 35, 50, 85, 55, 110
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 90 ; catch rate
- db 134 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ledian/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
- ; end
--- a/data/base_stats/ledyba.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db LEDYBA ; 165
-
- db 40, 20, 30, 55, 40, 80
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 255 ; catch rate
- db 54 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ledyba/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
- ; end
--- a/data/base_stats/lickitung.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db LICKITUNG ; 108
-
- db 90, 55, 75, 30, 60, 75
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 127 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/lickitung/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/lugia.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db LUGIA ; 249
-
- db 106, 90, 130, 110, 90, 154
- ; hp atk def spd sat sdf
-
- db PSYCHIC, FLYING
- db 3 ; catch rate
- db 220 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/lugia/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/machamp.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MACHAMP ; 068
-
- db 90, 130, 80, 55, 65, 85
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 45 ; catch rate
- db 193 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/machamp/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/machoke.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MACHOKE ; 067
-
- db 80, 100, 70, 45, 50, 60
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 90 ; catch rate
- db 146 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/machoke/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/machop.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MACHOP ; 066
-
- db 70, 80, 50, 35, 35, 35
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 180 ; catch rate
- db 88 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/machop/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/magby.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MAGBY ; 240
-
- db 45, 75, 37, 83, 70, 55
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 117 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magby/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER
- ; end
--- a/data/base_stats/magcargo.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MAGCARGO ; 219
-
- db 50, 50, 120, 30, 80, 80
- ; hp atk def spd sat sdf
-
- db FIRE, ROCK
- db 75 ; catch rate
- db 154 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magcargo/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/magikarp.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MAGIKARP ; 129
-
- db 20, 10, 55, 80, 15, 20
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 255 ; catch rate
- db 20 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 5 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magikarp/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FISH, REPTILE ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/magmar.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MAGMAR ; 126
-
- db 65, 95, 57, 93, 100, 85
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 167 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magmar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/magnemite.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MAGNEMITE ; 081
-
- db 25, 35, 70, 45, 95, 55
- ; hp atk def spd sat sdf
-
- db ELECTRIC, STEEL
- db 190 ; catch rate
- db 89 ; base exp
- db NO_ITEM ; item 1
- db METAL_COAT ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magnemite/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/magneton.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MAGNETON ; 082
-
- db 50, 60, 95, 70, 120, 70
- ; hp atk def spd sat sdf
-
- db ELECTRIC, STEEL
- db 60 ; catch rate
- db 161 ; base exp
- db NO_ITEM ; item 1
- db METAL_COAT ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magneton/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/mankey.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MANKEY ; 056
-
- db 40, 80, 35, 70, 35, 45
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 190 ; catch rate
- db 74 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mankey/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
- ; end
--- a/data/base_stats/mantine.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MANTINE ; 226
-
- db 65, 40, 70, 70, 80, 140
- ; hp atk def spd sat sdf
-
- db WATER, FLYING
- db 25 ; catch rate
- db 168 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mantine/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/mareep.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MAREEP ; 179
-
- db 55, 40, 40, 35, 65, 45
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 235 ; catch rate
- db 59 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mareep/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/marill.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MARILL ; 183
-
- db 70, 20, 50, 40, 20, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 58 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/marill/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMPHIBIAN, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/marowak.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MAROWAK ; 105
-
- db 60, 80, 110, 45, 50, 80
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 75 ; catch rate
- db 124 ; base exp
- db NO_ITEM ; item 1
- db THICK_CLUB ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/marowak/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
- ; end
--- a/data/base_stats/meganium.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MEGANIUM ; 154
-
- db 80, 82, 100, 80, 83, 100
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 208 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/meganium/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
- ; end
--- a/data/base_stats/meowth.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MEOWTH ; 052
-
- db 40, 45, 35, 90, 40, 40
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 255 ; catch rate
- db 69 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/meowth/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
- ; end
--- a/data/base_stats/metapod.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db METAPOD ; 011
-
- db 50, 20, 55, 30, 25, 25
- ; hp atk def spd sat sdf
-
- db BUG, BUG
- db 120 ; catch rate
- db 72 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/metapod/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/mew.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MEW ; 151
-
- db 100, 100, 100, 100, 100, 100
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 45 ; catch rate
- db 64 ; base exp
- db NO_ITEM ; item 1
- db MIRACLEBERRY ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mew/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, FLY, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/mewtwo.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MEWTWO ; 150
-
- db 106, 110, 90, 130, 154, 90
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 3 ; catch rate
- db 220 ; base exp
- db NO_ITEM ; item 1
- db BERSERK_GENE ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mewtwo/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, THUNDERPUNCH, DREAM_EATER, DETECT, REST, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/miltank.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MILTANK ; 241
-
- db 95, 80, 105, 100, 40, 70
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 200 ; base exp
- db MOOMOO_MILK ; item 1
- db MOOMOO_MILK ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/miltank/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/misdreavus.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MISDREAVUS ; 200
-
- db 60, 60, 60, 85, 85, 85
- ; hp atk def spd sat sdf
-
- db GHOST, GHOST
- db 45 ; catch rate
- db 147 ; base exp
- db NO_ITEM ; item 1
- db SPELL_TAG ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/misdreavus/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/moltres.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MOLTRES ; 146
-
- db 90, 100, 90, 90, 125, 85
- ; hp atk def spd sat sdf
-
- db FIRE, FLYING
- db 3 ; catch rate
- db 217 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/moltres/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, STEEL_WING, FLY, FLAMETHROWER
- ; end
--- a/data/base_stats/mr__mime.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MR__MIME ; 122
-
- db 40, 45, 65, 90, 100, 120
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 45 ; catch rate
- db 136 ; base exp
- db NO_ITEM ; item 1
- db MYSTERYBERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mr__mime/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/muk.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MUK ; 089
-
- db 105, 105, 75, 50, 65, 100
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 75 ; catch rate
- db 157 ; base exp
- db NO_ITEM ; item 1
- db NUGGET ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/muk/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
- ; end
--- a/data/base_stats/murkrow.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db MURKROW ; 198
-
- db 60, 85, 42, 91, 85, 42
- ; hp atk def spd sat sdf
-
- db DARK, FLYING
- db 30 ; catch rate
- db 107 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/murkrow/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY
- ; end
--- a/data/base_stats/natu.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NATU ; 177
-
- db 40, 50, 45, 70, 70, 45
- ; hp atk def spd sat sdf
-
- db PSYCHIC, FLYING
- db 190 ; catch rate
- db 73 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/natu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/nidoking.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NIDOKING ; 034
-
- db 81, 92, 77, 85, 85, 75
- ; hp atk def spd sat sdf
-
- db POISON, GROUND
- db 45 ; catch rate
- db 195 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidoking/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/nidoqueen.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NIDOQUEEN ; 031
-
- db 90, 82, 87, 76, 75, 85
- ; hp atk def spd sat sdf
-
- db POISON, GROUND
- db 45 ; catch rate
- db 194 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidoqueen/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/nidoran_f.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NIDORAN_F ; 029
-
- db 55, 47, 52, 41, 40, 40
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 235 ; catch rate
- db 59 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidoran_f/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
- ; end
--- a/data/base_stats/nidoran_m.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NIDORAN_M ; 032
-
- db 46, 57, 40, 50, 40, 40
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 235 ; catch rate
- db 60 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidoran_m/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
- ; end
--- a/data/base_stats/nidorina.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NIDORINA ; 030
-
- db 70, 62, 67, 56, 55, 55
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 120 ; catch rate
- db 117 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidorina/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/nidorino.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NIDORINO ; 033
-
- db 61, 72, 57, 65, 55, 55
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 120 ; catch rate
- db 118 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidorino/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/ninetales.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NINETALES ; 038
-
- db 73, 76, 75, 100, 81, 100
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 75 ; catch rate
- db 178 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ninetales/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
--- a/data/base_stats/noctowl.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db NOCTOWL ; 164
-
- db 100, 50, 50, 70, 76, 96
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 90 ; catch rate
- db 162 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/noctowl/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
- ; end
--- a/data/base_stats/octillery.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db OCTILLERY ; 224
-
- db 75, 105, 75, 45, 105, 75
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 75 ; catch rate
- db 164 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/octillery/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
- ; end
--- a/data/base_stats/oddish.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ODDISH ; 043
-
- db 45, 50, 55, 30, 75, 65
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 255 ; catch rate
- db 78 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/oddish/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/omanyte.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db OMANYTE ; 138
-
- db 35, 40, 100, 35, 90, 55
- ; hp atk def spd sat sdf
-
- db ROCK, WATER
- db 45 ; catch rate
- db 120 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 30 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/omanyte/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/omastar.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db OMASTAR ; 139
-
- db 70, 60, 125, 55, 115, 70
- ; hp atk def spd sat sdf
-
- db ROCK, WATER
- db 45 ; catch rate
- db 199 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 30 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/omastar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/onix.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ONIX ; 095
-
- db 35, 45, 160, 70, 30, 45
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 45 ; catch rate
- db 108 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/onix/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, STRENGTH
- ; end
--- a/data/base_stats/paras.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PARAS ; 046
-
- db 35, 70, 55, 25, 45, 55
- ; hp atk def spd sat sdf
-
- db BUG, GRASS
- db 190 ; catch rate
- db 70 ; base exp
- db TINYMUSHROOM ; item 1
- db BIG_MUSHROOM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/paras/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
- ; end
--- a/data/base_stats/parasect.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PARASECT ; 047
-
- db 60, 95, 80, 30, 60, 80
- ; hp atk def spd sat sdf
-
- db BUG, GRASS
- db 75 ; catch rate
- db 128 ; base exp
- db TINYMUSHROOM ; item 1
- db BIG_MUSHROOM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/parasect/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
- ; end
--- a/data/base_stats/persian.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PERSIAN ; 053
-
- db 65, 70, 60, 115, 65, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 90 ; catch rate
- db 148 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/persian/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
- ; end
--- a/data/base_stats/phanpy.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PHANPY ; 231
-
- db 90, 60, 60, 40, 40, 40
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 120 ; catch rate
- db 124 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/phanpy/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
- ; end
--- a/data/base_stats/pichu.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PICHU ; 172
-
- db 20, 40, 15, 60, 35, 35
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 190 ; catch rate
- db 42 ; base exp
- db NO_ITEM ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pichu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/pidgeot.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PIDGEOT ; 018
-
- db 83, 80, 75, 91, 70, 70
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 45 ; catch rate
- db 172 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pidgeot/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
--- a/data/base_stats/pidgeotto.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PIDGEOTTO ; 017
-
- db 63, 60, 55, 71, 50, 50
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 120 ; catch rate
- db 113 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pidgeotto/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
--- a/data/base_stats/pidgey.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PIDGEY ; 016
-
- db 40, 45, 40, 56, 35, 35
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 255 ; catch rate
- db 55 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pidgey/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
--- a/data/base_stats/pikachu.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PIKACHU ; 025
-
- db 35, 55, 30, 90, 50, 40
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 190 ; catch rate
- db 82 ; base exp
- db NO_ITEM ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pikachu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, STRENGTH, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/piloswine.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PILOSWINE ; 221
-
- db 100, 100, 80, 50, 60, 60
- ; hp atk def spd sat sdf
-
- db ICE, GROUND
- db 75 ; catch rate
- db 160 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/piloswine/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
- ; end
--- a/data/base_stats/pineco.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PINECO ; 204
-
- db 50, 65, 90, 15, 35, 35
- ; hp atk def spd sat sdf
-
- db BUG, BUG
- db 190 ; catch rate
- db 60 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pineco/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, STRENGTH
- ; end
--- a/data/base_stats/pinsir.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PINSIR ; 127
-
- db 65, 125, 100, 85, 55, 70
- ; hp atk def spd sat sdf
-
- db BUG, BUG
- db 45 ; catch rate
- db 200 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pinsir/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
--- a/data/base_stats/politoed.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db POLITOED ; 186
-
- db 90, 75, 75, 70, 90, 100
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 185 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/politoed/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/poliwag.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db POLIWAG ; 060
-
- db 40, 50, 40, 90, 40, 40
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 255 ; catch rate
- db 77 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/poliwag/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/poliwhirl.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db POLIWHIRL ; 061
-
- db 65, 65, 65, 90, 50, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 120 ; catch rate
- db 131 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/poliwhirl/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/poliwrath.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db POLIWRATH ; 062
-
- db 90, 85, 95, 70, 70, 90
- ; hp atk def spd sat sdf
-
- db WATER, FIGHTING
- db 45 ; catch rate
- db 185 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/poliwrath/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/ponyta.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PONYTA ; 077
-
- db 50, 85, 55, 90, 65, 65
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 190 ; catch rate
- db 152 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ponyta/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
--- a/data/base_stats/porygon.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PORYGON ; 137
-
- db 65, 60, 70, 40, 85, 75
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 130 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/porygon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/porygon2.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PORYGON2 ; 233
-
- db 85, 80, 90, 60, 105, 95
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 180 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/porygon2/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/primeape.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PRIMEAPE ; 057
-
- db 65, 105, 60, 95, 60, 70
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 75 ; catch rate
- db 149 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/primeape/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
- ; end
--- a/data/base_stats/psyduck.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PSYDUCK ; 054
-
- db 50, 52, 48, 55, 65, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 80 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/psyduck/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/pupitar.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db PUPITAR ; 247
-
- db 70, 84, 70, 51, 65, 70
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 45 ; catch rate
- db 144 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pupitar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
- ; end
--- a/data/base_stats/quagsire.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db QUAGSIRE ; 195
-
- db 95, 85, 85, 35, 65, 65
- ; hp atk def spd sat sdf
-
- db WATER, GROUND
- db 90 ; catch rate
- db 137 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/quagsire/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/quilava.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db QUILAVA ; 156
-
- db 58, 64, 58, 80, 80, 65
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 142 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/quilava/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/qwilfish.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db QWILFISH ; 211
-
- db 65, 95, 75, 85, 55, 55
- ; hp atk def spd sat sdf
-
- db WATER, POISON
- db 45 ; catch rate
- db 100 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/qwilfish/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/raichu.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db RAICHU ; 026
-
- db 60, 90, 55, 100, 90, 80
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 75 ; catch rate
- db 122 ; base exp
- db NO_ITEM ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/raichu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, STRENGTH, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/raikou.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db RAIKOU ; 243
-
- db 90, 85, 75, 115, 115, 100
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 3 ; catch rate
- db 216 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/raikou/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/rapidash.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db RAPIDASH ; 078
-
- db 65, 100, 70, 105, 80, 80
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 60 ; catch rate
- db 192 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/rapidash/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
--- a/data/base_stats/raticate.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db RATICATE ; 020
-
- db 55, 81, 60, 97, 50, 70
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 90 ; catch rate
- db 116 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/raticate/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, CUT, STRENGTH, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/rattata.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db RATTATA ; 019
-
- db 30, 56, 35, 72, 25, 35
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 255 ; catch rate
- db 57 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/rattata/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF
- ; end
--- a/data/base_stats/remoraid.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db REMORAID ; 223
-
- db 35, 65, 35, 65, 65, 35
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 78 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/remoraid/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
- ; end
--- a/data/base_stats/rhydon.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db RHYDON ; 112
-
- db 105, 130, 120, 40, 45, 45
- ; hp atk def spd sat sdf
-
- db GROUND, ROCK
- db 60 ; catch rate
- db 204 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/rhydon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/rhyhorn.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db RHYHORN ; 111
-
- db 80, 85, 95, 25, 30, 30
- ; hp atk def spd sat sdf
-
- db GROUND, ROCK
- db 120 ; catch rate
- db 135 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/rhyhorn/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/sandshrew.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SANDSHREW ; 027
-
- db 50, 75, 85, 40, 20, 30
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 255 ; catch rate
- db 93 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sandshrew/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
--- a/data/base_stats/sandslash.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SANDSLASH ; 028
-
- db 75, 100, 110, 65, 45, 55
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 90 ; catch rate
- db 163 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sandslash/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
--- a/data/base_stats/scizor.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SCIZOR ; 212
-
- db 70, 130, 100, 65, 55, 80
- ; hp atk def spd sat sdf
-
- db BUG, STEEL
- db 25 ; catch rate
- db 200 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/scizor/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT, STRENGTH
- ; end
--- a/data/base_stats/scyther.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SCYTHER ; 123
-
- db 70, 110, 80, 105, 55, 80
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 45 ; catch rate
- db 187 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/scyther/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT
- ; end
--- a/data/base_stats/seadra.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SEADRA ; 117
-
- db 55, 65, 95, 85, 95, 45
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 75 ; catch rate
- db 155 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/seadra/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/seaking.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SEAKING ; 119
-
- db 80, 92, 65, 68, 65, 80
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 60 ; catch rate
- db 170 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/seaking/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/seel.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SEEL ; 086
-
- db 65, 45, 55, 45, 45, 70
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 100 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/seel/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/sentret.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SENTRET ; 161
-
- db 35, 46, 34, 20, 35, 45
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 255 ; catch rate
- db 57 ; base exp
- db NO_ITEM ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sentret/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF
- ; end
--- a/data/base_stats/shellder.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SHELLDER ; 090
-
- db 30, 65, 100, 40, 45, 25
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 97 ; base exp
- db PEARL ; item 1
- db BIG_PEARL ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/shellder/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/shuckle.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SHUCKLE ; 213
-
- db 20, 10, 230, 05, 10, 230
- ; hp atk def spd sat sdf
-
- db BUG, ROCK
- db 190 ; catch rate
- db 80 ; base exp
- db BERRY ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/shuckle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLASH
- ; end
--- a/data/base_stats/skarmory.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SKARMORY ; 227
-
- db 65, 80, 140, 70, 40, 70
- ; hp atk def spd sat sdf
-
- db STEEL, FLYING
- db 25 ; catch rate
- db 168 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/skarmory/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
- ; end
--- a/data/base_stats/skiploom.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SKIPLOOM ; 188
-
- db 55, 45, 50, 80, 45, 65
- ; hp atk def spd sat sdf
-
- db GRASS, FLYING
- db 120 ; catch rate
- db 136 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/skiploom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FAIRY, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
- ; end
--- a/data/base_stats/slowbro.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SLOWBRO ; 080
-
- db 95, 75, 110, 30, 100, 80
- ; hp atk def spd sat sdf
-
- db WATER, PSYCHIC
- db 75 ; catch rate
- db 164 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/slowbro/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
- ; end
--- a/data/base_stats/slowking.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SLOWKING ; 199
-
- db 95, 75, 80, 30, 100, 110
- ; hp atk def spd sat sdf
-
- db WATER, PSYCHIC
- db 70 ; catch rate
- db 164 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/slowking/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
- ; end
--- a/data/base_stats/slowpoke.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SLOWPOKE ; 079
-
- db 90, 65, 65, 15, 40, 40
- ; hp atk def spd sat sdf
-
- db WATER, PSYCHIC
- db 190 ; catch rate
- db 99 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/slowpoke/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
- ; end
--- a/data/base_stats/slugma.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SLUGMA ; 218
-
- db 40, 40, 40, 20, 70, 40
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 190 ; catch rate
- db 78 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/slugma/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FLAMETHROWER
- ; end
--- a/data/base_stats/smeargle.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SMEARGLE ; 235
-
- db 55, 20, 35, 75, 20, 45
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 106 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/smeargle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/smoochum.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SMOOCHUM ; 238
-
- db 45, 30, 15, 65, 85, 65
- ; hp atk def spd sat sdf
-
- db ICE, PSYCHIC
- db 45 ; catch rate
- db 87 ; base exp
- db ICE_BERRY ; item 1
- db ICE_BERRY ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/smoochum/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
- ; end
--- a/data/base_stats/sneasel.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SNEASEL ; 215
-
- db 55, 95, 55, 115, 35, 75
- ; hp atk def spd sat sdf
-
- db DARK, ICE
- db 60 ; catch rate
- db 132 ; base exp
- db NO_ITEM ; item 1
- db QUICK_CLAW ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sneasel/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, ICE_BEAM
- ; end
--- a/data/base_stats/snorlax.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SNORLAX ; 143
-
- db 160, 110, 65, 30, 65, 110
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 25 ; catch rate
- db 154 ; base exp
- db LEFTOVERS ; item 1
- db LEFTOVERS ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/snorlax/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/snubbull.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SNUBBULL ; 209
-
- db 60, 80, 50, 30, 40, 40
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 190 ; catch rate
- db 63 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/snubbull/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FIELD, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
- ; end
--- a/data/base_stats/spearow.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SPEAROW ; 021
-
- db 40, 60, 30, 70, 31, 31
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 255 ; catch rate
- db 58 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/spearow/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
--- a/data/base_stats/spinarak.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SPINARAK ; 167
-
- db 40, 60, 40, 30, 40, 40
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 255 ; catch rate
- db 54 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/spinarak/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
- ; end
--- a/data/base_stats/squirtle.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SQUIRTLE ; 007
-
- db 44, 48, 65, 43, 50, 64
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 66 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/squirtle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/stantler.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db STANTLER ; 234
-
- db 73, 95, 62, 85, 85, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 165 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/stantler/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
- ; end
--- a/data/base_stats/starmie.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db STARMIE ; 121
-
- db 60, 75, 85, 115, 100, 85
- ; hp atk def spd sat sdf
-
- db WATER, PSYCHIC
- db 60 ; catch rate
- db 207 ; base exp
- db STARDUST ; item 1
- db STAR_PIECE ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/starmie/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/staryu.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db STARYU ; 120
-
- db 30, 45, 55, 85, 70, 55
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 225 ; catch rate
- db 106 ; base exp
- db STARDUST ; item 1
- db STAR_PIECE ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/staryu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/steelix.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db STEELIX ; 208
-
- db 75, 85, 200, 30, 55, 65
- ; hp atk def spd sat sdf
-
- db STEEL, GROUND
- db 25 ; catch rate
- db 196 ; base exp
- db NO_ITEM ; item 1
- db METAL_COAT ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/steelix/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, CUT, STRENGTH
- ; end
--- a/data/base_stats/sudowoodo.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SUDOWOODO ; 185
-
- db 70, 100, 115, 30, 30, 65
- ; hp atk def spd sat sdf
-
- db ROCK, ROCK
- db 65 ; catch rate
- db 135 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sudowoodo/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
- ; end
--- a/data/base_stats/suicune.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SUICUNE ; 245
-
- db 100, 75, 115, 85, 90, 115
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 3 ; catch rate
- db 215 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/suicune/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/sunflora.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SUNFLORA ; 192
-
- db 75, 75, 55, 30, 105, 85
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 120 ; catch rate
- db 146 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sunflora/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/sunkern.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SUNKERN ; 191
-
- db 30, 30, 30, 30, 30, 30
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 235 ; catch rate
- db 52 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sunkern/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/swinub.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db SWINUB ; 220
-
- db 50, 50, 40, 50, 30, 30
- ; hp atk def spd sat sdf
-
- db ICE, GROUND
- db 225 ; catch rate
- db 78 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/swinub/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
- ; end
--- a/data/base_stats/tangela.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TANGELA ; 114
-
- db 65, 55, 115, 60, 100, 40
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 166 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tangela/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT, FLASH
- ; end
--- a/data/base_stats/tauros.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TAUROS ; 128
-
- db 75, 100, 95, 110, 40, 70
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 211 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tauros/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/teddiursa.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TEDDIURSA ; 216
-
- db 60, 80, 50, 40, 50, 50
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 120 ; catch rate
- db 124 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/teddiursa/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
- ; end
--- a/data/base_stats/tentacool.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TENTACOOL ; 072
-
- db 40, 40, 35, 70, 50, 100
- ; hp atk def spd sat sdf
-
- db WATER, POISON
- db 190 ; catch rate
- db 105 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tentacool/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/tentacruel.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TENTACRUEL ; 073
-
- db 80, 70, 65, 100, 80, 120
- ; hp atk def spd sat sdf
-
- db WATER, POISON
- db 60 ; catch rate
- db 205 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tentacruel/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/togepi.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TOGEPI ; 175
-
- db 35, 20, 65, 20, 40, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 190 ; catch rate
- db 74 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/togepi/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, FLASH, FLAMETHROWER
- ; end
--- a/data/base_stats/togetic.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TOGETIC ; 176
-
- db 55, 40, 85, 40, 80, 105
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 75 ; catch rate
- db 114 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/togetic/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AVIAN, FAIRY ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLASH, FLAMETHROWER
- ; end
--- a/data/base_stats/totodile.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TOTODILE ; 158
-
- db 50, 65, 64, 43, 44, 48
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 66 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/totodile/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/typhlosion.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TYPHLOSION ; 157
-
- db 78, 84, 78, 100, 109, 85
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 209 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/typhlosion/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
- ; end
--- a/data/base_stats/tyranitar.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TYRANITAR ; 248
-
- db 100, 134, 110, 61, 95, 100
- ; hp atk def spd sat sdf
-
- db ROCK, DARK
- db 45 ; catch rate
- db 218 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tyranitar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/tyrogue.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db TYROGUE ; 236
-
- db 35, 35, 35, 35, 35, 35
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 75 ; catch rate
- db 91 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tyrogue/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
- ; end
--- a/data/base_stats/umbreon.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db UMBREON ; 197
-
- db 95, 65, 110, 65, 60, 130
- ; hp atk def spd sat sdf
-
- db DARK, DARK
- db 45 ; catch rate
- db 197 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/umbreon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
- ; end
--- a/data/base_stats/unown.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db UNOWN ; 201
-
- db 48, 72, 48, 48, 72, 48
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 225 ; catch rate
- db 61 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/unown_a/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/ursaring.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db URSARING ; 217
-
- db 90, 130, 75, 55, 75, 75
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 60 ; catch rate
- db 189 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ursaring/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
- ; end
--- a/data/base_stats/vaporeon.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db VAPOREON ; 134
-
- db 130, 65, 60, 65, 110, 95
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 196 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/vaporeon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/venomoth.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db VENOMOTH ; 049
-
- db 70, 65, 60, 90, 90, 75
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 75 ; catch rate
- db 138 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/venomoth/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF, FLASH
- ; end
--- a/data/base_stats/venonat.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db VENONAT ; 048
-
- db 60, 55, 50, 45, 40, 55
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 190 ; catch rate
- db 75 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/venonat/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF
- ; end
--- a/data/base_stats/venusaur.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db VENUSAUR ; 003
-
- db 80, 82, 83, 80, 100, 100
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 208 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/venusaur/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
- ; end
--- a/data/base_stats/victreebel.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db VICTREEBEL ; 071
-
- db 80, 105, 65, 70, 100, 60
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 191 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/victreebel/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/vileplume.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db VILEPLUME ; 045
-
- db 75, 80, 85, 50, 100, 90
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 184 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/vileplume/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/voltorb.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db VOLTORB ; 100
-
- db 40, 30, 50, 100, 55, 55
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 190 ; catch rate
- db 103 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/voltorb/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/vulpix.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db VULPIX ; 037
-
- db 38, 41, 40, 65, 50, 65
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 190 ; catch rate
- db 63 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/vulpix/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
--- a/data/base_stats/wartortle.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db WARTORTLE ; 008
-
- db 59, 63, 80, 58, 65, 80
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 143 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/wartortle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
--- a/data/base_stats/weedle.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db WEEDLE ; 013
-
- db 40, 35, 30, 50, 20, 20
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 255 ; catch rate
- db 52 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/weedle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/weepinbell.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db WEEPINBELL ; 070
-
- db 65, 90, 50, 55, 85, 45
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 120 ; catch rate
- db 151 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/weepinbell/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
--- a/data/base_stats/weezing.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db WEEZING ; 110
-
- db 65, 90, 120, 60, 85, 70
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 60 ; catch rate
- db 173 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/weezing/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
- ; end
--- a/data/base_stats/wigglytuff.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db WIGGLYTUFF ; 040
-
- db 140, 70, 45, 45, 75, 50
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 50 ; catch rate
- db 109 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/wigglytuff/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
--- a/data/base_stats/wobbuffet.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db WOBBUFFET ; 202
-
- db 190, 33, 58, 33, 33, 58
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 45 ; catch rate
- db 177 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/wobbuffet/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm
- ; end
--- a/data/base_stats/wooper.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db WOOPER ; 194
-
- db 55, 45, 45, 15, 25, 25
- ; hp atk def spd sat sdf
-
- db WATER, GROUND
- db 255 ; catch rate
- db 52 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/wooper/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, ICE_BEAM
- ; end
--- a/data/base_stats/xatu.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db XATU ; 178
-
- db 65, 75, 70, 95, 95, 70
- ; hp atk def spd sat sdf
-
- db PSYCHIC, FLYING
- db 75 ; catch rate
- db 171 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/xatu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLY, FLASH
- ; end
--- a/data/base_stats/yanma.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db YANMA ; 193
-
- db 65, 65, 45, 95, 75, 45
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 75 ; catch rate
- db 147 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/yanma/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLASH
- ; end
--- a/data/base_stats/zapdos.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ZAPDOS ; 145
-
- db 90, 90, 85, 100, 125, 90
- ; hp atk def spd sat sdf
-
- db ELECTRIC, FLYING
- db 3 ; catch rate
- db 216 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/zapdos/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, FLASH, THUNDERBOLT
- ; end
--- a/data/base_stats/zubat.asm
+++ /dev/null
@@ -1,22 +1,0 @@
- db ZUBAT ; 041
-
- db 40, 45, 35, 55, 30, 40
- ; hp atk def spd sat sdf
-
- db POISON, FLYING
- db 255 ; catch rate
- db 54 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/zubat/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
- ; end
--- /dev/null
+++ b/data/battle/ball_colors.asm
@@ -1,0 +1,16 @@
+; colors of balls thrown in battle
+
+BallColors: ; cd26c (33:526c)
+ db MASTER_BALL, PAL_BATTLE_OB_GREEN
+ db ULTRA_BALL, PAL_BATTLE_OB_YELLOW
+ db GREAT_BALL, PAL_BATTLE_OB_BLUE
+ db POKE_BALL, PAL_BATTLE_OB_RED
+ db HEAVY_BALL, PAL_BATTLE_OB_GRAY
+ db LEVEL_BALL, PAL_BATTLE_OB_BROWN
+ db LURE_BALL, PAL_BATTLE_OB_BLUE
+ db FAST_BALL, PAL_BATTLE_OB_BLUE
+ db FRIEND_BALL, PAL_BATTLE_OB_YELLOW
+ db MOON_BALL, PAL_BATTLE_OB_GRAY
+ db LOVE_BALL, PAL_BATTLE_OB_RED
+ db -1, PAL_BATTLE_OB_GRAY
+; cd284
--- /dev/null
+++ b/data/battle/flee_mons.asm
@@ -1,0 +1,36 @@
+FleeMons:
+; referenced by TryEnemyFlee and FastBallMultiplier
+
+SometimesFleeMons: ; 3c59a
+ db MAGNEMITE
+ db GRIMER
+ db TANGELA
+ db MR__MIME
+ db EEVEE
+ db PORYGON
+ db DRATINI
+ db DRAGONAIR
+ db TOGETIC
+ db UMBREON
+ db UNOWN
+ db SNUBBULL
+ db HERACROSS
+ db -1
+
+OftenFleeMons: ; 3c5a8
+ db CUBONE
+ db ARTICUNO
+ db ZAPDOS
+ db MOLTRES
+ db QUAGSIRE
+ db DELIBIRD
+ db PHANPY
+ db TEDDIURSA
+ db -1
+
+AlwaysFleeMons: ; 3c5b1
+ db RAIKOU
+ db ENTEI
+; db SUICUNE
+ db -1
+; 3c5b4
--- a/data/battle_tower.asm
+++ b/data/battle_tower.asm
@@ -1,7 +1,7 @@
BattleTowerTrainers: ; 1f814e
; The trainer class is not used in Crystal 1.0 due to a bug.
; Instead, the sixth character in the trainer's name is used.
-; See misc/battle_tower_47.asm
+; See mobile/battle_tower_47.asm
db "HANSON@@@@", FISHER
db "SAWYER@@@@", POKEMANIAC
db "MASUDA@@@@", GUITARIST
--- /dev/null
+++ b/data/credits_script.asm
@@ -1,0 +1,287 @@
+CreditsScript: ; 10acb4
+
+; Clear the banner.
+ db CREDITS_CLEAR
+
+; Pokemon Crystal Version Staff
+ db STAFF, 1
+
+ db CREDITS_WAIT, 8
+
+; Play the credits music.
+ db CREDITS_MUSIC
+
+ db CREDITS_WAIT2, 10
+
+ db CREDITS_WAIT, 1
+
+; Update the banner.
+ db CREDITS_SCENE, 0 ; Pichu
+
+ db DIRECTOR, 1
+ db SATOSHI_TAJIRI, 2
+
+ db CREDITS_WAIT, 12
+
+ db CODIRECTOR, 1
+ db JUNICHI_MASUDA, 2
+
+ db CREDITS_WAIT, 12
+
+ db PROGRAMMERS, 0
+ db SOUSUKE_TAMADA, 1
+ db HISASHI_SOGABE, 2
+ db KEITA_KAGAYA, 3
+ db YOSHINORI_MATSUDA, 4
+
+ db CREDITS_WAIT, 12
+
+ db PROGRAMMERS, 0
+ db SHIGEKI_MORIMOTO, 1
+ db TETSUYA_WATANABE, 2
+ db TAKENORI_OOTA, 3
+
+ db CREDITS_WAIT, 12
+
+ db GRAPHICS_DIRECTOR, 1
+ db KEN_SUGIMORI, 2
+
+ db CREDITS_WAIT, 12
+
+ db MONSTER_DESIGN, 0
+ db KEN_SUGIMORI, 1
+ db MOTOFUMI_FUJIWARA, 2
+ db SHIGEKI_MORIMOTO, 3
+ db HIRONOBU_YOSHIDA, 4
+ db SATOSHI_OOTA, 5
+
+ db CREDITS_WAIT, 12
+
+ db MONSTER_DESIGN, 0
+ db ATSUKO_NISHIDA, 1
+ db MUNEO_SAITO, 2
+ db RENA_YOSHIKAWA, 3
+
+ db CREDITS_WAIT, 12
+
+ db POKEMON_ANIMATION, 1
+ db HIRONOBU_YOSHIDA, 2
+ db JUN_OKUTANI, 3
+
+ db CREDITS_WAIT, 12
+
+; Clear the banner.
+ db CREDITS_CLEAR
+
+ db CREDITS_WAIT, 1
+
+; Update the banner.
+ db CREDITS_SCENE, 1 ; Smoochum
+
+ db GRAPHICS_DESIGN, 0
+ db HIRONOBU_YOSHIDA, 1
+ db JUN_OKUTANI, 2
+ db ASUKA_IWASHITA, 3
+ db TETSUYA_WATANABE, 4
+
+ db CREDITS_WAIT, 12
+
+ db CREDIT_MUSIC, 0
+ db JUNICHI_MASUDA, 1
+ db MORIKAZU_AOKI, 2
+ db GO_ICHINOSE, 3
+
+ db CREDITS_WAIT, 12
+
+ db CREDIT_SOUND_EFFECTS, 0
+ db MORIKAZU_AOKI, 1
+ db JUNICHI_MASUDA, 2
+ db TETSUYA_WATANABE, 3
+
+ db CREDITS_WAIT, 12
+
+ db GAME_DESIGN, 0
+ db JUNICHI_MASUDA, 1
+ db SHIGEKI_MORIMOTO, 2
+ db KOHJI_NISHINO, 3
+
+ db CREDITS_WAIT, 12
+
+ db GAME_DESIGN, 0
+ db TETSUJI_OOTA, 1
+ db HITOMI_SATO, 2
+ db KENJI_MATSUSHIMA, 3
+
+ db CREDITS_WAIT, 12
+
+ db GAME_SCENARIO, 0
+ db JUNICHI_MASUDA, 1
+ db KOHJI_NISHINO, 2
+ db TOSHINOBU_MATSUMIYA, 3
+ db KENJI_MATSUSHIMA, 4
+
+ db CREDITS_WAIT, 12
+
+ db POKEDEX_TEXT, 1
+ db TOSHINOBU_MATSUMIYA, 2
+
+ db CREDITS_WAIT, 12
+
+ db TOOL_PROGRAMMING, 1
+ db SOUSUKE_TAMADA, 2
+ db TAKENORI_OOTA, 3
+
+ db CREDITS_WAIT, 12
+
+ db PARAMETRIC_DESIGN, 1
+ db KOHJI_NISHINO, 2
+
+ db CREDITS_WAIT, 12
+
+; Clear the banner.
+ db CREDITS_CLEAR
+
+ db CREDITS_WAIT, 1
+
+; Update the banner.
+ db CREDITS_SCENE, 2 ; Ditto
+
+ db SCRIPT_DESIGN, 1
+ db TETSUJI_OOTA, 2
+ db NOBUHIRO_SEYA, 3
+
+ db CREDITS_WAIT, 12
+
+ db MAP_DATA_DESIGN, 1
+ db TETSUJI_OOTA, 2
+ db KAZUHITO_SEKINE, 3
+
+ db CREDITS_WAIT, 12
+
+ db MAP_DESIGN, 0
+ db TETSUJI_OOTA, 1
+ db KOHJI_NISHINO, 2
+ db NOBUHIRO_SEYA, 3
+
+ db CREDITS_WAIT, 12
+
+ db COORDINATION, 1
+ db HIROYUKI_ZINNAI, 2
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCERS, 0
+ db SATORU_IWATA, 1
+ db SATOSHI_YAMATO, 2
+ db SHIGERU_MIYAMOTO, 3
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCERS, 1
+ db TSUNEKAZU_ISHIHARA, 2
+
+ db CREDITS_WAIT, 12
+
+; Clear the banner.
+ db CREDITS_CLEAR
+
+ db CREDITS_WAIT, 1
+
+; Update the banner.
+ db CREDITS_SCENE, 3 ; Igglybuff
+
+ db US_VERSION_STAFF, 2
+
+ db CREDITS_WAIT, 9
+
+ db US_COORDINATION, 1
+ db GAIL_TILDEN, 2
+ db HIRO_NAKAMURA, 3
+
+ db CREDITS_WAIT, 12
+
+ db US_COORDINATION, 1
+ db JUNICHI_MASUDA, 2
+ db SETH_MCMAHILL, 3
+
+ db CREDITS_WAIT, 12
+
+ db US_COORDINATION, 1
+ db HIROTO_ALEXANDER, 2
+ db TERESA_LILLYGREN, 3
+
+ db CREDITS_WAIT, 12
+
+ db TEXT_TRANSLATION, 1
+ db NOB_OGASAWARA, 2
+
+ db CREDITS_WAIT, 12
+
+ db PROGRAMMERS, 1
+ db TERUKI_MURAKAWA, 2
+ db KAZUYOSHI_OSAWA, 3
+
+ db CREDITS_WAIT, 12
+
+ db PAAD_TESTING, 1
+ db THOMAS_HERTZOG, 2
+ db ERIK_JOHNSON, 3
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCT_TESTING, 0
+ db PLANNING, 1
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCT_TESTING, 0
+ db KEITA_NAKAMURA, 1
+ db HIROTAKA_UEMURA, 2
+ db HIROAKI_TAMURA, 3
+ db NORIAKI_SAKAGUCHI, 4
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCT_TESTING, 0
+ db NCL_SUPER_MARIO_CLUB, 1
+ db KENJI_SAIKI, 2
+ db ATSUSHI_TADA, 3
+ db MIYUKI_SATO, 4
+
+ db CREDITS_WAIT, 12
+
+ db SPECIAL_THANKS, 0
+ db KIMIKO_NAKAMICHI, 1
+ db AKITO_MORI, 2
+
+ db CREDITS_WAIT, 12
+
+ db SPECIAL_THANKS, 0
+ db GAKUZI_NOMOTO, 1
+ db AI_MASHIMA, 2
+ db KUNIMI_KAWAMURA, 3
+
+ db CREDITS_WAIT, 12
+
+ db SPECIAL_THANKS, 0
+ db MIKIHIRO_ISHIKAWA, 1
+ db HIDEYUKI_HASHIMOTO, 2
+
+ db CREDITS_WAIT, 12
+
+ db EXECUTIVE_PRODUCER, 1
+ db HIROSHI_YAMAUCHI, 2
+
+ db CREDITS_WAIT, 12
+
+ db COPYRIGHT, 1
+
+ db CREDITS_WAIT, 9
+
+; Display "The End" graphic.
+ db CREDITS_THEEND
+
+ db CREDITS_WAIT, 20
+
+ db CREDITS_END
+; 10ae13
--- /dev/null
+++ b/data/credits_strings.asm
@@ -1,0 +1,221 @@
+CreditsStrings:
+; entries correspond to constants/credits_constants.asm
+ dw .SatoshiTajiri
+ dw .JunichiMasuda
+ dw .TetsuyaWatanabe
+ dw .ShigekiMorimoto
+ dw .SousukeTamada
+ dw .TakenoriOota
+ dw .KenSugimori
+ dw .MotofumiFujiwara
+ dw .AtsukoNishida
+ dw .MuneoSaito
+ dw .SatoshiOota
+ dw .RenaYoshikawa
+ dw .JunOkutani
+ dw .HironobuYoshida
+ dw .AsukaIwashita
+ dw .GoIchinose
+ dw .MorikazuAoki
+ dw .KohjiNishino
+ dw .KenjiMatsushima
+ dw .ToshinobuMatsumiya
+ dw .SatoruIwata
+ dw .NobuhiroSeya
+ dw .KazuhitoSekine
+ dw .TetsujiOota
+ dw .NclSuperMarioClub
+ dw .Sarugakucho
+ dw .AkitoMori
+ dw .TakahiroHarada
+ dw .TohruHashimoto
+ dw .NoboruMatsumoto
+ dw .TakehiroIzushi
+ dw .TakashiKawaguchi
+ dw .TsunekazuIshihara
+ dw .HiroshiYamauchi
+ dw .KenjiSaiki
+ dw .AtsushiTada
+ dw .NaokoKawakami
+ dw .HiroyukiZinnai
+ dw .KunimiKawamura
+ dw .HisashiSogabe
+ dw .KeitaKagaya
+ dw .YoshinoriMatsuda
+ dw .HitomiSato
+ dw .ToruOsawa
+ dw .TakaoOhara
+ dw .YuichiroIto
+ dw .TakaoShimizu
+ dw .Planning
+ dw .KeitaNakamura
+ dw .HirotakaUemura
+ dw .HiroakiTamura
+ dw .NoriakiSakaguchi
+ dw .MiyukiSato
+ dw .GakuziNomoto
+ dw .AiMashima
+ dw .MikihiroIshikawa
+ dw .HideyukiHashimoto
+ dw .SatoshiYamato
+ dw .ShigeruMiyamoto
+ dw .GailTilden
+ dw .NobOgasawara
+ dw .SethMcMahill
+ dw .HirotoAlexander
+ dw .TeresaLillygren
+ dw .ThomasHertzog
+ dw .ErikJohnson
+ dw .HiroNakamura
+ dw .TerukiMurakawa
+ dw .KazuyoshiOsawa
+ dw .KimikoNakamichi
+ dw .End
+ dw .Unknown
+ dw .Staff
+ dw .Director
+ dw .CoDirector
+ dw .Programmers
+ dw .GraphicsDirector
+ dw .MonsterDesign
+ dw .GraphicsDesign
+ dw .Music
+ dw .SoundEffects
+ dw .GameDesign
+ dw .GameScenario
+ dw .ToolProgramming
+ dw .ParametricDesign
+ dw .ScriptDesign
+ dw .MapDataDesign
+ dw .MapDesign
+ dw .ProductTesting
+ dw .SpecialThanks
+ dw .Producers
+ dw .ExecutiveProducer
+ dw .PokemonAnimation
+ dw .PokedexText
+ dw .MobilePrjLeader
+ dw .MobileSystemAd
+ dw .MobileStadiumDir
+ dw .Coordination
+ dw .Copyright
+ dw .UsVersionStaff
+ dw .UsCoordination
+ dw .TextTranslation
+ dw .PaadTesting
+
+.SatoshiTajiri: db " SATOSHI TAJIRI@" ; "たじり さとし@"
+.JunichiMasuda: db " JUNICHI MASUDA@" ; "ますだ じゅんいち@"
+.TetsuyaWatanabe: db " TETSUYA WATANABE@" ; "わたなべ てつや@"
+.ShigekiMorimoto: db " SHIGEKI MORIMOTO@" ; "もりもと しげき@"
+.SousukeTamada: db " SOUSUKE TAMADA@" ; "たまだ そうすけ@"
+.TakenoriOota: db " TAKENORI OOTA@" ; "おおた たけのり@"
+.KenSugimori: db " KEN SUGIMORI@" ; "すぎもり けん@"
+.MotofumiFujiwara: db " MOTOFUMI FUJIWARA@" ; "ふじわら もとふみ@"
+.AtsukoNishida: db " ATSUKO NISHIDA@" ; "にしだ あつこ@"
+.MuneoSaito: db " MUNEO SAITO@" ; "さいとう むねお@"
+.SatoshiOota: db " SATOSHI OOTA@" ; "おおた さとし@"
+.RenaYoshikawa: db " RENA YOSHIKAWA@" ; "よしかわ れな@"
+.JunOkutani: db " JUN OKUTANI@" ; "おくたに じゅん@"
+.HironobuYoshida: db " HIRONOBU YOSHIDA@" ; "よしだ ひろのぶ@"
+.AsukaIwashita: db " ASUKA IWASHITA@" ; "いわした あすか@"
+.GoIchinose: db " GO ICHINOSE@" ; "いちのせ ごう@"
+.MorikazuAoki: db " MORIKAZU AOKI@" ; "あおき もりかず@"
+.KohjiNishino: db " KOHJI NISHINO@" ; "にしの こうじ@"
+.KenjiMatsushima: db " KENJI MATSUSHIMA@" ; "まつしま けんじ@"
+.ToshinobuMatsumiya: db "TOSHINOBU MATSUMIYA@" ; "まつみや としのぶ@"
+.SatoruIwata: db " SATORU IWATA@" ; "いわた さとる@"
+.NobuhiroSeya: db " NOBUHIRO SEYA@" ; "せや のぶひろ@"
+.KazuhitoSekine: db " KAZUHITO SEKINE@" ; "せきね かずひと@"
+.TetsujiOota: db " TETSUJI OOTA@" ; "おおた てつじ@"
+.NclSuperMarioClub: db "NCL SUPER MARIO CLUB@" ; "スーパーマりォクラブ@"
+.Sarugakucho: db " SARUGAKUCHO@" ; "さるがくちょう@"
+.AkitoMori: db " AKITO MORI@" ; "もり あきと@"
+.TakahiroHarada: db " TAKAHIRO HARADA@" ; "はらだ たかひろ@"
+.TohruHashimoto: db " TOHRU HASHIMOTO@" ; "はしもと とおる@"
+.NoboruMatsumoto: db " NOBORU MATSUMOTO@" ; "まつもと のぼる@"
+.TakehiroIzushi: db " TAKEHIRO IZUSHI@" ; "いずし たけひろ@"
+.TakashiKawaguchi: db " TAKASHI KAWAGUCHI@" ; "かわぐち たかし@"
+.TsunekazuIshihara: db " TSUNEKAZU ISHIHARA@" ; "いしはら つねかず@"
+.HiroshiYamauchi: db " HIROSHI YAMAUCHI@" ; "やまうち ひろし@"
+.KenjiSaiki: db " KENJI SAIKI@" ; "さいき けんじ@"
+.AtsushiTada: db " ATSUSHI TADA@" ; "ただ あつし@"
+.NaokoKawakami: db " NAOKO KAWAKAMI@" ; "かわかみ なおこ@"
+.HiroyukiZinnai: db " HIROYUKI ZINNAI@" ; "じんない ひろゆき@"
+.KunimiKawamura: db " KUNIMI KAWAMURA@" ; "かわむら くにみ@"
+.HisashiSogabe: db " HISASHI SOGABE@" ; "そがべ ひさし@"
+.KeitaKagaya: db " KEITA KAGAYA@" ; "かがや けいた@"
+.YoshinoriMatsuda: db " YOSHINORI MATSUDA@" ; "まつだ よしのり@"
+.HitomiSato: db " HITOMI SATO@" ; "さとう ひとみ@"
+.ToruOsawa: db " TORU OSAWA@" ; "おおさわ とおる@"
+.TakaoOhara: db " TAKAO OHARA@" ; "おおはら たかお@"
+.YuichiroIto: db " YUICHIRO ITO@" ; "いとう ゆういちろう@"
+.TakaoShimizu: db " TAKAO SHIMIZU@" ; "しみず たかお@"
+.Planning: db " SPECIAL PRODUCTION"
+ next " PLANNING" ; "きかくかいはつぶ@"
+ next " & DEVELOPMENT DEPT.@"
+.KeitaNakamura: db " KEITA NAKAMURA@" ; "なかむら けいた@"
+.HirotakaUemura: db " HIROTAKA UEMURA@" ; "うえむら ひろたか@"
+.HiroakiTamura: db " HIROAKI TAMURA@" ; "たむら ひろあき@"
+.NoriakiSakaguchi: db " NORIAKI SAKAGUCHI@" ; "さかぐち のりあき@"
+.MiyukiSato: db " MIYUKI SATO@" ; "さとう みゆき@"
+.GakuziNomoto: db " GAKUZI NOMOTO@" ; "のもと がくじ@"
+.AiMashima: db " AI MASHIMA@" ; "ましま あい@"
+.MikihiroIshikawa: db " MIKIHIRO ISHIKAWA@" ; "いしかわ みきひろ@"
+.HideyukiHashimoto: db " HIDEYUKI HASHIMOTO@" ; "はしもと ひでゆき@"
+.SatoshiYamato: db " SATOSHI YAMATO@" ; "やまと さとし@"
+.ShigeruMiyamoto: db " SHIGERU MIYAMOTO@" ; "みやもと しげる@"
+.End: db " END@" ; "おしまい@"
+.Unknown: db " ????????@" ; "????????@"
+.GailTilden: db " GAIL TILDEN@"
+.NobOgasawara: db " NOB OGASAWARA@"
+.SethMcMahill: db " SETH McMAHILL@"
+.HirotoAlexander: db " HIROTO ALEXANDER@"
+.TeresaLillygren: db " TERESA LILLYGREN@"
+.ThomasHertzog: db " THOMAS HERTZOG@"
+.ErikJohnson: db " ERIK JOHNSON@"
+.HiroNakamura: db " HIRO NAKAMURA@"
+.TerukiMurakawa: db " TERUKI MURAKAWA@"
+.KazuyoshiOsawa: db " KAZUYOSHI OSAWA@"
+.KimikoNakamichi: db " KIMIKO NAKAMICHI@"
+.Staff: db " #MON" ; "ポケットモンスター"
+ next " CRYSTAL VERSION" ; " クりスタル バージョン"
+ next " STAFF@" ; " スタッフ@"
+.Director: db " DIRECTOR@" ; "エグゼクティブ ディレクター@"
+.CoDirector: db " CO-DIRECTOR@" ; "ディレクター@"
+.Programmers: db " PROGRAMMERS@" ; "プログラム@"
+.GraphicsDirector: db " GRAPHICS DIRECTOR@" ; "グラフィック ディレクター@"
+.MonsterDesign: db " MONSTER DESIGN@" ; "# デザイン@"
+.GraphicsDesign: db " GRAPHICS DESIGN@" ; "グラフィック デザイン@"
+.Music: db " MUSIC@" ; "おんがく@"
+.SoundEffects: db " SOUND EFFECTS@" ; "サウンド エフ→クト@"
+.GameDesign: db " GAME DESIGN@" ; "ゲームデザイン@"
+.GameScenario: db " GAME SCENARIO@" ; "シナりォ@"
+.ToolProgramming: db " TOOL PROGRAMMING@" ; "ツール プログラム@"
+.ParametricDesign: db " PARAMETRIC DESIGN@" ; "パラメーター せってい@"
+.ScriptDesign: db " SCRIPT DESIGN@" ; "スクりプト せってい@"
+.MapDataDesign: db " MAP DATA DESIGN@" ; "マップデータ せってい@"
+.MapDesign: db " MAP DESIGN@" ; "マップ デザイン@"
+.ProductTesting: db " PRODUCT TESTING@" ; "デバッグプレイ@"
+.SpecialThanks: db " SPECIAL THANKS@" ; "スぺシャルサンクス@"
+.Producers: db " PRODUCERS@" ; "プロデューサー@"
+.ExecutiveProducer: db " EXECUTIVE PRODUCER@" ; "エグゼクティブ プロデューサー@"
+.PokemonAnimation: db " #MON ANIMATION@" ; "# アニメーション@"
+.PokedexText: db " #DEX TEXT@" ; "ずかん テキスト@"
+.MobilePrjLeader: db " MOBILE PRJ. LEADER@" ; "モバイルプロジ→クト りーダー@"
+.MobileSystemAd: db " MOBILE SYSTEM AD.@" ; "モバイル システムアドバイザー@"
+.MobileStadiumDir: db "MOBILE STADIUM DIR.@" ; "モバイルスタジアム ディレクター@"
+.Coordination: db " COORDINATION@" ; "コーディネーター@"
+.UsVersionStaff: db " US VERSION STAFF@"
+.UsCoordination: db " US COORDINATION@"
+.TextTranslation: db " TEXT TRANSLATION@"
+.PaadTesting: db " PAAD TESTING@"
+
+.Copyright:
+ ; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o
+ db $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c
+ ; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c .
+ next $60,$61,$62,$63,$64,$65,$66,$6d,$6e,$6f,$70,$71,$72, $7a,$7b,$7c
+ ; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c .
+ next $60,$61,$62,$63,$64,$65,$66,$73,$74,$75,$76,$77,$78,$79, $7a,$7b,$7c
+ db "@"
--- a/data/egg_move_pointers.asm
+++ /dev/null
@@ -1,257 +1,0 @@
-EggMovePointers:: ; 0x23b11
- dw BulbasaurEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw CharmanderEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw SquirtleEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw PidgeyEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw RattataEggMoves
- dw NoEggMoves
- dw SpearowEggMoves
- dw NoEggMoves
- dw EkansEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw SandshrewEggMoves
- dw NoEggMoves
- dw NidoranFEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NidoranMEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw VulpixEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw ZubatEggMoves
- dw NoEggMoves
- dw OddishEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw ParasEggMoves
- dw NoEggMoves
- dw VenonatEggMoves
- dw NoEggMoves
- dw DiglettEggMoves
- dw NoEggMoves
- dw MeowthEggMoves
- dw NoEggMoves
- dw PsyduckEggMoves
- dw NoEggMoves
- dw MankeyEggMoves
- dw NoEggMoves
- dw GrowlitheEggMoves
- dw NoEggMoves
- dw PoliwagEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw AbraEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw MachopEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw BellsproutEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw TentacoolEggMoves
- dw NoEggMoves
- dw GeodudeEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw PonytaEggMoves
- dw NoEggMoves
- dw SlowpokeEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw FarfetchDEggMoves
- dw DoduoEggMoves
- dw NoEggMoves
- dw SeelEggMoves
- dw NoEggMoves
- dw GrimerEggMoves
- dw NoEggMoves
- dw ShellderEggMoves
- dw NoEggMoves
- dw GastlyEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw OnixEggMoves
- dw DrowzeeEggMoves
- dw NoEggMoves
- dw KrabbyEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw ExeggcuteEggMoves
- dw NoEggMoves
- dw CuboneEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw LickitungEggMoves
- dw KoffingEggMoves
- dw NoEggMoves
- dw RhyhornEggMoves
- dw NoEggMoves
- dw ChanseyEggMoves
- dw TangelaEggMoves
- dw KangaskhanEggMoves
- dw HorseaEggMoves
- dw NoEggMoves
- dw GoldeenEggMoves
- dw NoEggMoves
-if _CRYSTAL
- dw NoEggMoves
-else
- dw StaryuEggMoves
-endc
- dw NoEggMoves
- dw MrMimeEggMoves
- dw ScytherEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw PinsirEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw LaprasEggMoves
- dw NoEggMoves
- dw EeveeEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw OmanyteEggMoves
- dw NoEggMoves
- dw KabutoEggMoves
- dw NoEggMoves
- dw AerodactylEggMoves
- dw SnorlaxEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw DratiniEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw ChikoritaEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw CyndaquilEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw TotodileEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw SentretEggMoves
- dw NoEggMoves
- dw HoothootEggMoves
- dw NoEggMoves
- dw LedybaEggMoves
- dw NoEggMoves
- dw SpinarakEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw ChinchouEggMoves
- dw NoEggMoves
- dw PichuEggMoves
- dw CleffaEggMoves
- dw IgglybuffEggMoves
- dw TogepiEggMoves
- dw NoEggMoves
- dw NatuEggMoves
- dw NoEggMoves
- dw MareepEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw MarillEggMoves
- dw NoEggMoves
- dw SudowoodoEggMoves
- dw NoEggMoves
- dw HoppipEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw AipomEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw YanmaEggMoves
- dw WooperEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw MurkrowEggMoves
- dw NoEggMoves
- dw MisdreavusEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw GirafarigEggMoves
- dw PinecoEggMoves
- dw NoEggMoves
- dw DunsparceEggMoves
- dw GligarEggMoves
- dw NoEggMoves
- dw SnubbullEggMoves
- dw NoEggMoves
- dw QwilfishEggMoves
- dw NoEggMoves
- dw ShuckleEggMoves
- dw HeracrossEggMoves
- dw SneaselEggMoves
- dw TeddiursaEggMoves
- dw NoEggMoves
- dw SlugmaEggMoves
- dw NoEggMoves
- dw SwinubEggMoves
- dw NoEggMoves
- dw CorsolaEggMoves
- dw RemoraidEggMoves
- dw NoEggMoves
- dw DelibirdEggMoves
- dw MantineEggMoves
- dw SkarmoryEggMoves
- dw HoundourEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw PhanpyEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw StantlerEggMoves
- dw NoEggMoves
- dw TyrogueEggMoves
- dw NoEggMoves
- dw SmoochumEggMoves
- dw ElekidEggMoves
- dw MagbyEggMoves
- dw MiltankEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw LarvitarEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
- dw NoEggMoves
-; 0x23d07
--- a/data/egg_moves.asm
+++ /dev/null
@@ -1,870 +1,0 @@
-INCLUDE "includes.asm"
-
-
-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.
-
-; Staryu's egg moves were removed in Crystal, because Staryu is genderless
-; and can only breed with Ditto.
-
-
-INCLUDE "data/egg_move_pointers.asm"
-
-
-EggMoves::
-
-BulbasaurEggMoves:
- db LIGHT_SCREEN
- db SKULL_BASH
- db SAFEGUARD
-if !_CRYSTAL
- db CHARM
-endc
- db RAZOR_WIND
- db PETAL_DANCE
- db $ff
-
-CharmanderEggMoves:
- db BELLY_DRUM
- db ANCIENTPOWER
- db ROCK_SLIDE
- db BITE
- db OUTRAGE
- db BEAT_UP
- db $ff
-
-SquirtleEggMoves:
- db MIRROR_COAT
- db HAZE
- db MIST
- db CONFUSION
- db FORESIGHT
- db FLAIL
- db $ff
-
-PidgeyEggMoves:
- db PURSUIT
- db FAINT_ATTACK
- db FORESIGHT
-if !_CRYSTAL
- db STEEL_WING
-endc
- db $ff
-
-RattataEggMoves:
- db SCREECH
- db FLAME_WHEEL
- db FURY_SWIPES
- db BITE
- db COUNTER
- db REVERSAL
- db $ff
-
-SpearowEggMoves:
- db FAINT_ATTACK
- db FALSE_SWIPE
- db SCARY_FACE
- db QUICK_ATTACK
- db TRI_ATTACK
- db $ff
-
-EkansEggMoves:
- db PURSUIT
- db SLAM
- db SPITE
- db BEAT_UP
-if _CRYSTAL
- db CRUNCH
-endc
- db $ff
-
-SandshrewEggMoves:
- db FLAIL
- db SAFEGUARD
- db COUNTER
- db RAPID_SPIN
-if _CRYSTAL
- db METAL_CLAW
-endc
- db $ff
-
-NidoranFEggMoves:
- db SUPERSONIC
- db DISABLE
- db TAKE_DOWN
- db FOCUS_ENERGY
- db CHARM
- db COUNTER
- db BEAT_UP
- db $ff
-
-NidoranMEggMoves:
- db SUPERSONIC
- db DISABLE
- db TAKE_DOWN
- db CONFUSION
- db AMNESIA
- db COUNTER
- db BEAT_UP
- db $ff
-
-VulpixEggMoves:
- db FAINT_ATTACK
- db HYPNOSIS
- db FLAIL
- db SPITE
- db DISABLE
- db $ff
-
-ZubatEggMoves:
- db QUICK_ATTACK
- db PURSUIT
- db FAINT_ATTACK
- db GUST
- db WHIRLWIND
- db $ff
-
-OddishEggMoves:
- db SWORDS_DANCE
- db RAZOR_LEAF
- db FLAIL
- db SYNTHESIS
-if !_CRYSTAL
- db CHARM
-endc
- db $ff
-
-ParasEggMoves:
- db FALSE_SWIPE
- db SCREECH
- db COUNTER
- db PSYBEAM
- db FLAIL
-if !_CRYSTAL
- db SWEET_SCENT
-endc
- db LIGHT_SCREEN
- db PURSUIT
- db $ff
-
-VenonatEggMoves:
- db BATON_PASS
- db SCREECH
- db GIGA_DRAIN
- db $ff
-
-DiglettEggMoves:
- db FAINT_ATTACK
- db SCREECH
- db ANCIENTPOWER
- db PURSUIT
- db BEAT_UP
- db $ff
-
-MeowthEggMoves:
- db SPITE
- db CHARM
- db HYPNOSIS
- db AMNESIA
- db $ff
-
-PsyduckEggMoves:
- db ICE_BEAM
- db HYPNOSIS
- db PSYBEAM
- db FORESIGHT
- db LIGHT_SCREEN
- db FUTURE_SIGHT
- db PSYCHIC_M
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
-
-MankeyEggMoves:
- db ROCK_SLIDE
- db FORESIGHT
- db MEDITATE
- db COUNTER
- db REVERSAL
- db BEAT_UP
- db $ff
-
-GrowlitheEggMoves:
- db BODY_SLAM
- db SAFEGUARD
- db CRUNCH
- db THRASH
- db FIRE_SPIN
- db $ff
-
-PoliwagEggMoves:
- db MIST
- db SPLASH
- db BUBBLEBEAM
- db HAZE
- db MIND_READER
- db $ff
-
-AbraEggMoves:
- db LIGHT_SCREEN
- db ENCORE
- db BARRIER
- db $ff
-
-MachopEggMoves:
- db LIGHT_SCREEN
- db MEDITATE
- db ROLLING_KICK
- db ENCORE
- db $ff
-
-BellsproutEggMoves:
- db SWORDS_DANCE
- db ENCORE
- db REFLECT
- db SYNTHESIS
- db LEECH_LIFE
- db $ff
-
-TentacoolEggMoves:
- db AURORA_BEAM
- db MIRROR_COAT
- db RAPID_SPIN
- db HAZE
- db SAFEGUARD
- db $ff
-
-GeodudeEggMoves:
- db MEGA_PUNCH
- db ROCK_SLIDE
- db $ff
-
-PonytaEggMoves:
- db FLAME_WHEEL
- db THRASH
- db DOUBLE_KICK
- db HYPNOSIS
- db CHARM
- db QUICK_ATTACK
- db $ff
-
-SlowpokeEggMoves:
- db SAFEGUARD
- db BELLY_DRUM
- db FUTURE_SIGHT
- db STOMP
- db $ff
-
-FarfetchDEggMoves:
-if !_CRYSTAL
- db STEEL_WING
-endc
- db FORESIGHT
- db MIRROR_MOVE
- db GUST
- db QUICK_ATTACK
- db FLAIL
- db $ff
-
-DoduoEggMoves:
- db QUICK_ATTACK
- db SUPERSONIC
- db HAZE
- db FAINT_ATTACK
- db FLAIL
- db $ff
-
-SeelEggMoves:
- db LICK
- db PERISH_SONG
- db DISABLE
- db PECK
- db SLAM
- db ENCORE
- db $ff
-
-GrimerEggMoves:
- db HAZE
- db MEAN_LOOK
- db LICK
- db $ff
-
-ShellderEggMoves:
- db BUBBLEBEAM
- db TAKE_DOWN
- db BARRIER
- db RAPID_SPIN
- db SCREECH
- db $ff
-
-GastlyEggMoves:
- db PSYWAVE
- db PERISH_SONG
- db HAZE
- db $ff
-
-OnixEggMoves:
- db ROCK_SLIDE
- db FLAIL
- db $ff
-
-DrowzeeEggMoves:
- db LIGHT_SCREEN
- db BARRIER
- db $ff
-
-KrabbyEggMoves:
- db DIG
- db HAZE
- db AMNESIA
- db FLAIL
- db SLAM
- db $ff
-
-ExeggcuteEggMoves:
- db SYNTHESIS
- db MOONLIGHT
- db REFLECT
- db MEGA_DRAIN
- db ANCIENTPOWER
- db $ff
-
-CuboneEggMoves:
- db ROCK_SLIDE
- db ANCIENTPOWER
- db BELLY_DRUM
- db SCREECH
- db SKULL_BASH
- db PERISH_SONG
-if _CRYSTAL
- db SWORDS_DANCE
-endc
- db $ff
-
-LickitungEggMoves:
- db BELLY_DRUM
- db MAGNITUDE
- db BODY_SLAM
- db $ff
-
-KoffingEggMoves:
- db SCREECH
- db PSYWAVE
- db PSYBEAM
- db DESTINY_BOND
- db PAIN_SPLIT
- db $ff
-
-RhyhornEggMoves:
- db CRUNCH
- db REVERSAL
- db ROCK_SLIDE
- db THRASH
- db PURSUIT
- db COUNTER
- db MAGNITUDE
- db $ff
-
-ChanseyEggMoves:
- db PRESENT
- db METRONOME
- db HEAL_BELL
- db $ff
-
-TangelaEggMoves:
- db FLAIL
- db CONFUSION
- db MEGA_DRAIN
- db REFLECT
- db AMNESIA
- db $ff
-
-KangaskhanEggMoves:
- db STOMP
- db FORESIGHT
- db FOCUS_ENERGY
- db SAFEGUARD
- db DISABLE
- db $ff
-
-HorseaEggMoves:
- db FLAIL
- db AURORA_BEAM
- db OCTAZOOKA
- db DISABLE
- db SPLASH
- db DRAGON_RAGE
- db $ff
-
-GoldeenEggMoves:
- db PSYBEAM
- db HAZE
- db HYDRO_PUMP
- db $ff
-
-if !_CRYSTAL
-StaryuEggMoves:
- db AURORA_BEAM
- db BARRIER
- db SUPERSONIC
- db $ff
-endc
-
-MrMimeEggMoves:
- db FUTURE_SIGHT
- db HYPNOSIS
- db MIMIC
- db $ff
-
-ScytherEggMoves:
- db COUNTER
- db SAFEGUARD
- db BATON_PASS
- db RAZOR_WIND
- db REVERSAL
- db LIGHT_SCREEN
- db $ff
-
-PinsirEggMoves:
- db FURY_ATTACK
- db FLAIL
- db $ff
-
-LaprasEggMoves:
- db AURORA_BEAM
- db FORESIGHT
- db $ff
-
-EeveeEggMoves:
- db FLAIL
- db CHARM
- db $ff
-
-OmanyteEggMoves:
- db BUBBLEBEAM
- db AURORA_BEAM
- db SLAM
- db SUPERSONIC
- db HAZE
- db $ff
-
-KabutoEggMoves:
- db BUBBLEBEAM
- db AURORA_BEAM
- db RAPID_SPIN
- db DIG
- db FLAIL
- db $ff
-
-AerodactylEggMoves:
- db WHIRLWIND
- db PURSUIT
- db FORESIGHT
-if !_CRYSTAL
- db STEEL_WING
-endc
- db $ff
-
-SnorlaxEggMoves:
- db LICK
-if !_CRYSTAL
- db CHARM
-endc
- db $ff
-
-DratiniEggMoves:
- db LIGHT_SCREEN
- db MIST
- db HAZE
- db SUPERSONIC
- db $ff
-
-ChikoritaEggMoves:
- db VINE_WHIP
- db LEECH_SEED
- db COUNTER
- db ANCIENTPOWER
- db FLAIL
- db SWORDS_DANCE
- db $ff
-
-CyndaquilEggMoves:
- db FURY_SWIPES
- db QUICK_ATTACK
- db REVERSAL
- db THRASH
- db FORESIGHT
-if _CRYSTAL
- db SUBMISSION
-endc
- db $ff
-
-TotodileEggMoves:
- db CRUNCH
- db THRASH
- db HYDRO_PUMP
- db ANCIENTPOWER
- db RAZOR_WIND
- db ROCK_SLIDE
- db $ff
-
-SentretEggMoves:
- db DOUBLE_EDGE
- db PURSUIT
- db SLASH
- db FOCUS_ENERGY
- db REVERSAL
- db $ff
-
-HoothootEggMoves:
- db MIRROR_MOVE
- db SUPERSONIC
- db FAINT_ATTACK
- db WING_ATTACK
- db WHIRLWIND
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
-
-LedybaEggMoves:
- db PSYBEAM
- db BIDE
- db LIGHT_SCREEN
- db $ff
-
-SpinarakEggMoves:
- db PSYBEAM
- db DISABLE
- db SONICBOOM
- db BATON_PASS
- db PURSUIT
- db $ff
-
-ChinchouEggMoves:
- db FLAIL
- db SUPERSONIC
- db SCREECH
- db $ff
-
-PichuEggMoves:
- db REVERSAL
- db BIDE
- db PRESENT
- db ENCORE
- db DOUBLESLAP
- db $ff
-
-CleffaEggMoves:
- db PRESENT
- db METRONOME
- db AMNESIA
- db BELLY_DRUM
- db SPLASH
- db MIMIC
- db $ff
-
-IgglybuffEggMoves:
- db PERISH_SONG
- db PRESENT
- db FAINT_ATTACK
- db $ff
-
-TogepiEggMoves:
- db PRESENT
- db MIRROR_MOVE
- db PECK
- db FORESIGHT
- db FUTURE_SIGHT
- db $ff
-
-NatuEggMoves:
- db HAZE
- db DRILL_PECK
- db QUICK_ATTACK
- db FAINT_ATTACK
- db STEEL_WING
- db $ff
-
-MareepEggMoves:
- db THUNDERBOLT
- db TAKE_DOWN
- db BODY_SLAM
- db SAFEGUARD
- db SCREECH
- db REFLECT
- db $ff
-
-MarillEggMoves:
- db LIGHT_SCREEN
- db PRESENT
- db AMNESIA
- db FUTURE_SIGHT
- db BELLY_DRUM
- db PERISH_SONG
- db SUPERSONIC
- db FORESIGHT
- db $ff
-
-SudowoodoEggMoves:
- db SELFDESTRUCT
- db $ff
-
-HoppipEggMoves:
- db CONFUSION
- db GROWL
- db ENCORE
- db DOUBLE_EDGE
- db REFLECT
- db AMNESIA
- db PAY_DAY
- db $ff
-
-AipomEggMoves:
- db COUNTER
- db SCREECH
- db PURSUIT
- db AGILITY
- db SPITE
- db SLAM
- db DOUBLESLAP
- db BEAT_UP
- db $ff
-
-YanmaEggMoves:
- db WHIRLWIND
- db REVERSAL
- db LEECH_LIFE
- db $ff
-
-WooperEggMoves:
- db BODY_SLAM
- db ANCIENTPOWER
- db SAFEGUARD
- db $ff
-
-MurkrowEggMoves:
- db WHIRLWIND
- db DRILL_PECK
- db QUICK_ATTACK
- db MIRROR_MOVE
- db WING_ATTACK
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
-
-MisdreavusEggMoves:
- db SCREECH
- db DESTINY_BOND
- db $ff
-
-GirafarigEggMoves:
- db TAKE_DOWN
- db AMNESIA
- db FORESIGHT
- db FUTURE_SIGHT
- db BEAT_UP
- db $ff
-
-PinecoEggMoves:
- db REFLECT
- db PIN_MISSILE
- db FLAIL
- db SWIFT
- db $ff
-
-DunsparceEggMoves:
- db BIDE
- db ANCIENTPOWER
- db ROCK_SLIDE
- db BITE
- db RAGE
- db $ff
-
-GligarEggMoves:
- db METAL_CLAW
- db WING_ATTACK
- db RAZOR_WIND
- db COUNTER
- db $ff
-
-SnubbullEggMoves:
- db METRONOME
- db FAINT_ATTACK
- db REFLECT
- db PRESENT
- db CRUNCH
- db HEAL_BELL
- db LICK
- db LEER
- db $ff
-
-QwilfishEggMoves:
- db FLAIL
- db HAZE
- db BUBBLEBEAM
- db SUPERSONIC
- db $ff
-
-ShuckleEggMoves:
- db SWEET_SCENT
- db $ff
-
-HeracrossEggMoves:
- db HARDEN
- db BIDE
- db FLAIL
- db $ff
-
-SneaselEggMoves:
- db COUNTER
- db SPITE
- db FORESIGHT
- db REFLECT
- db BITE
- db $ff
-
-TeddiursaEggMoves:
- db CRUNCH
- db TAKE_DOWN
- db SEISMIC_TOSS
- db FOCUS_ENERGY
- db COUNTER
-if _CRYSTAL
- db METAL_CLAW
-endc
- db $ff
-
-SlugmaEggMoves:
- db ACID_ARMOR
- db $ff
-
-SwinubEggMoves:
- db TAKE_DOWN
- db BITE
- db BODY_SLAM
- db ROCK_SLIDE
- db ANCIENTPOWER
- db $ff
-
-CorsolaEggMoves:
- db ROCK_SLIDE
- db SAFEGUARD
- db SCREECH
- db MIST
- db AMNESIA
- db $ff
-
-RemoraidEggMoves:
- db AURORA_BEAM
- db OCTAZOOKA
- db SUPERSONIC
- db HAZE
- db SCREECH
- db $ff
-
-DelibirdEggMoves:
- db AURORA_BEAM
- db QUICK_ATTACK
- db FUTURE_SIGHT
- db SPLASH
- db RAPID_SPIN
- db $ff
-
-MantineEggMoves:
- db TWISTER
- db HYDRO_PUMP
- db HAZE
- db SLAM
- db $ff
-
-SkarmoryEggMoves:
- db DRILL_PECK
- db PURSUIT
- db WHIRLWIND
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
-
-HoundourEggMoves:
- db FIRE_SPIN
- db RAGE
- db PURSUIT
- db COUNTER
- db SPITE
- db REVERSAL
- db BEAT_UP
- db $ff
-
-PhanpyEggMoves:
- db FOCUS_ENERGY
- db BODY_SLAM
- db ANCIENTPOWER
-if _CRYSTAL
- db WATER_GUN
-endc
- db $ff
-
-StantlerEggMoves:
- db REFLECT
- db SPITE
- db DISABLE
- db LIGHT_SCREEN
- db BITE
- db $ff
-
-TyrogueEggMoves:
- db RAPID_SPIN
- db HI_JUMP_KICK
- db MACH_PUNCH
- db MIND_READER
- db $ff
-
-SmoochumEggMoves:
-if !_CRYSTAL
- db LOVELY_KISS
-endc
- db MEDITATE
- db $ff
-
-ElekidEggMoves:
- db KARATE_CHOP
- db BARRIER
- db ROLLING_KICK
- db MEDITATE
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
-
-MagbyEggMoves:
- db KARATE_CHOP
- db MEGA_PUNCH
- db BARRIER
- db SCREECH
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
-
-MiltankEggMoves:
- db PRESENT
- db REVERSAL
- db SEISMIC_TOSS
- db $ff
-
-LarvitarEggMoves:
- db PURSUIT
- db STOMP
- db OUTRAGE
- db FOCUS_ENERGY
- db ANCIENTPOWER
- db $ff
-
-NoEggMoves:
- db $ff
--- a/data/evos_attacks.asm
+++ /dev/null
@@ -1,3398 +1,0 @@
-INCLUDE "includes.asm"
-
-
-SECTION "Evolutions and Attacks", ROMX
-
-
-INCLUDE "data/evos_attacks_pointers.asm"
-
-
-EvosAttacks::
-
-BulbasaurEvosAttacks:
- db EVOLVE_LEVEL, 16, IVYSAUR
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, GROWL
- db 7, LEECH_SEED
- db 10, VINE_WHIP
- db 15, POISONPOWDER
- db 15, SLEEP_POWDER
- db 20, RAZOR_LEAF
- db 25, SWEET_SCENT
- db 32, GROWTH
- db 39, SYNTHESIS
- db 46, SOLARBEAM
- db 0 ; no more level-up moves
-
-IvysaurEvosAttacks:
- db EVOLVE_LEVEL, 32, VENUSAUR
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, LEECH_SEED
- db 4, GROWL
- db 7, LEECH_SEED
- db 10, VINE_WHIP
- db 15, POISONPOWDER
- db 15, SLEEP_POWDER
- db 22, RAZOR_LEAF
- db 29, SWEET_SCENT
- db 38, GROWTH
- db 47, SYNTHESIS
- db 56, SOLARBEAM
- db 0 ; no more level-up moves
-
-VenusaurEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, LEECH_SEED
- db 1, VINE_WHIP
- db 4, GROWL
- db 7, LEECH_SEED
- db 10, VINE_WHIP
- db 15, POISONPOWDER
- db 15, SLEEP_POWDER
- db 22, RAZOR_LEAF
- db 29, SWEET_SCENT
- db 41, GROWTH
- db 53, SYNTHESIS
- db 65, SOLARBEAM
- db 0 ; no more level-up moves
-
-CharmanderEvosAttacks:
- db EVOLVE_LEVEL, 16, CHARMELEON
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 7, EMBER
- db 13, SMOKESCREEN
- db 19, RAGE
- db 25, SCARY_FACE
- db 31, FLAMETHROWER
- db 37, SLASH
- db 43, DRAGON_RAGE
- db 49, FIRE_SPIN
- db 0 ; no more level-up moves
-
-CharmeleonEvosAttacks:
- db EVOLVE_LEVEL, 36, CHARIZARD
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 1, EMBER
- db 7, EMBER
- db 13, SMOKESCREEN
- db 20, RAGE
- db 27, SCARY_FACE
- db 34, FLAMETHROWER
- db 41, SLASH
- db 48, DRAGON_RAGE
- db 55, FIRE_SPIN
- db 0 ; no more level-up moves
-
-CharizardEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 1, EMBER
- db 1, SMOKESCREEN
- db 7, EMBER
- db 13, SMOKESCREEN
- db 20, RAGE
- db 27, SCARY_FACE
- db 34, FLAMETHROWER
- db 36, WING_ATTACK
- db 44, SLASH
- db 54, DRAGON_RAGE
- db 64, FIRE_SPIN
- db 0 ; no more level-up moves
-
-SquirtleEvosAttacks:
- db EVOLVE_LEVEL, 16, WARTORTLE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, TAIL_WHIP
- db 7, BUBBLE
- db 10, WITHDRAW
- db 13, WATER_GUN
- db 18, BITE
- db 23, RAPID_SPIN
- db 28, PROTECT
- db 33, RAIN_DANCE
- db 40, SKULL_BASH
- db 47, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-WartortleEvosAttacks:
- db EVOLVE_LEVEL, 36, BLASTOISE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 1, BUBBLE
- db 4, TAIL_WHIP
- db 7, BUBBLE
- db 10, WITHDRAW
- db 13, WATER_GUN
- db 19, BITE
- db 25, RAPID_SPIN
- db 31, PROTECT
- db 37, RAIN_DANCE
- db 45, SKULL_BASH
- db 53, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-BlastoiseEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 1, BUBBLE
- db 1, WITHDRAW
- db 4, TAIL_WHIP
- db 7, BUBBLE
- db 10, WITHDRAW
- db 13, WATER_GUN
- db 19, BITE
- db 25, RAPID_SPIN
- db 31, PROTECT
- db 42, RAIN_DANCE
- db 55, SKULL_BASH
- db 68, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-CaterpieEvosAttacks:
- db EVOLVE_LEVEL, 7, METAPOD
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, STRING_SHOT
- db 0 ; no more level-up moves
-
-MetapodEvosAttacks:
- db EVOLVE_LEVEL, 10, BUTTERFREE
- db 0 ; no more evolutions
- db 1, HARDEN
- db 7, HARDEN
- db 0 ; no more level-up moves
-
-ButterfreeEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONFUSION
- db 10, CONFUSION
- db 13, POISONPOWDER
- db 14, STUN_SPORE
- db 15, SLEEP_POWDER
- db 18, SUPERSONIC
- db 23, WHIRLWIND
- db 28, GUST
- db 34, PSYBEAM
- db 40, SAFEGUARD
- db 0 ; no more level-up moves
-
-WeedleEvosAttacks:
- db EVOLVE_LEVEL, 7, KAKUNA
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 1, STRING_SHOT
- db 0 ; no more level-up moves
-
-KakunaEvosAttacks:
- db EVOLVE_LEVEL, 10, BEEDRILL
- db 0 ; no more evolutions
- db 1, HARDEN
- db 7, HARDEN
- db 0 ; no more level-up moves
-
-BeedrillEvosAttacks:
- db 0 ; no more evolutions
- db 1, FURY_ATTACK
- db 10, FURY_ATTACK
- db 15, FOCUS_ENERGY
- db 20, TWINEEDLE
- db 25, RAGE
- db 30, PURSUIT
- db 35, PIN_MISSILE
- db 40, AGILITY
- db 0 ; no more level-up moves
-
-PidgeyEvosAttacks:
- db EVOLVE_LEVEL, 18, PIDGEOTTO
- db 0 ; no more evolutions
- db 1, TACKLE
- db 5, SAND_ATTACK
- db 9, GUST
- db 15, QUICK_ATTACK
- db 21, WHIRLWIND
- db 29, WING_ATTACK
- db 37, AGILITY
- db 47, MIRROR_MOVE
- db 0 ; no more level-up moves
-
-PidgeottoEvosAttacks:
- db EVOLVE_LEVEL, 36, PIDGEOT
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SAND_ATTACK
- db 1, GUST
- db 5, SAND_ATTACK
- db 9, GUST
- db 15, QUICK_ATTACK
- db 23, WHIRLWIND
- db 33, WING_ATTACK
- db 43, AGILITY
- db 55, MIRROR_MOVE
- db 0 ; no more level-up moves
-
-PidgeotEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SAND_ATTACK
- db 1, GUST
- db 1, QUICK_ATTACK
- db 5, SAND_ATTACK
- db 9, GUST
- db 15, QUICK_ATTACK
- db 23, WHIRLWIND
- db 33, WING_ATTACK
- db 46, AGILITY
- db 61, MIRROR_MOVE
- db 0 ; no more level-up moves
-
-RattataEvosAttacks:
- db EVOLVE_LEVEL, 20, RATICATE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 7, QUICK_ATTACK
- db 13, HYPER_FANG
- db 20, FOCUS_ENERGY
- db 27, PURSUIT
- db 34, SUPER_FANG
- db 0 ; no more level-up moves
-
-RaticateEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 1, QUICK_ATTACK
- db 7, QUICK_ATTACK
- db 13, HYPER_FANG
- db 20, SCARY_FACE
- db 30, PURSUIT
- db 40, SUPER_FANG
- db 0 ; no more level-up moves
-
-SpearowEvosAttacks:
- db EVOLVE_LEVEL, 20, FEAROW
- db 0 ; no more evolutions
- db 1, PECK
- db 1, GROWL
- db 7, LEER
- db 13, FURY_ATTACK
- db 25, PURSUIT
- db 31, MIRROR_MOVE
- db 37, DRILL_PECK
- db 43, AGILITY
- db 0 ; no more level-up moves
-
-FearowEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, GROWL
- db 1, LEER
- db 1, FURY_ATTACK
- db 7, LEER
- db 13, FURY_ATTACK
- db 26, PURSUIT
- db 32, MIRROR_MOVE
- db 40, DRILL_PECK
- db 47, AGILITY
- db 0 ; no more level-up moves
-
-EkansEvosAttacks:
- db EVOLVE_LEVEL, 22, ARBOK
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 9, POISON_STING
- db 15, BITE
- db 23, GLARE
- db 29, SCREECH
- db 37, ACID
- db 43, HAZE
- db 0 ; no more level-up moves
-
-ArbokEvosAttacks:
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 1, POISON_STING
- db 1, BITE
- db 9, POISON_STING
- db 15, BITE
- db 25, GLARE
- db 33, SCREECH
- db 43, ACID
- db 51, HAZE
- db 0 ; no more level-up moves
-
-PikachuEvosAttacks:
- db EVOLVE_ITEM, THUNDERSTONE, RAICHU
- db 0 ; no more evolutions
- db 1, THUNDERSHOCK
- db 1, GROWL
- db 6, TAIL_WHIP
- db 8, THUNDER_WAVE
- db 11, QUICK_ATTACK
- db 15, DOUBLE_TEAM
- db 20, SLAM
- db 26, THUNDERBOLT
- db 33, AGILITY
- db 41, THUNDER
- db 50, LIGHT_SCREEN
- db 0 ; no more level-up moves
-
-RaichuEvosAttacks:
- db 0 ; no more evolutions
- db 1, THUNDERSHOCK
- db 1, TAIL_WHIP
- db 1, QUICK_ATTACK
- db 1, THUNDERBOLT
- db 0 ; no more level-up moves
-
-SandshrewEvosAttacks:
- db EVOLVE_LEVEL, 22, SANDSLASH
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 6, DEFENSE_CURL
- db 11, SAND_ATTACK
- db 17, POISON_STING
- db 23, SLASH
- db 30, SWIFT
- db 37, FURY_SWIPES
- db 45, SANDSTORM
- db 0 ; no more level-up moves
-
-SandslashEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, DEFENSE_CURL
- db 1, SAND_ATTACK
- db 6, DEFENSE_CURL
- db 11, SAND_ATTACK
- db 17, POISON_STING
- db 24, SLASH
- db 33, SWIFT
- db 42, FURY_SWIPES
- db 52, SANDSTORM
- db 0 ; no more level-up moves
-
-NidoranFEvosAttacks:
- db EVOLVE_LEVEL, 16, NIDORINA
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, TACKLE
- db 8, SCRATCH
- db 12, DOUBLE_KICK
- db 17, POISON_STING
- db 23, TAIL_WHIP
- db 30, BITE
- db 38, FURY_SWIPES
- db 0 ; no more level-up moves
-
-NidorinaEvosAttacks:
- db EVOLVE_ITEM, MOON_STONE, NIDOQUEEN
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, TACKLE
- db 8, SCRATCH
- db 12, DOUBLE_KICK
- db 19, POISON_STING
- db 27, TAIL_WHIP
- db 36, BITE
- db 46, FURY_SWIPES
- db 0 ; no more level-up moves
-
-NidoqueenEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCRATCH
- db 1, DOUBLE_KICK
- db 1, TAIL_WHIP
- db 23, BODY_SLAM
- db 0 ; no more level-up moves
-
-NidoranMEvosAttacks:
- db EVOLVE_LEVEL, 16, NIDORINO
- db 0 ; no more evolutions
- db 1, LEER
- db 1, TACKLE
- db 8, HORN_ATTACK
- db 12, DOUBLE_KICK
- db 17, POISON_STING
- db 23, FOCUS_ENERGY
- db 30, FURY_ATTACK
- db 38, HORN_DRILL
- db 0 ; no more level-up moves
-
-NidorinoEvosAttacks:
- db EVOLVE_ITEM, MOON_STONE, NIDOKING
- db 0 ; no more evolutions
- db 1, LEER
- db 1, TACKLE
- db 8, HORN_ATTACK
- db 12, DOUBLE_KICK
- db 19, POISON_STING
- db 27, FOCUS_ENERGY
- db 36, FURY_ATTACK
- db 46, HORN_DRILL
- db 0 ; no more level-up moves
-
-NidokingEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, HORN_ATTACK
- db 1, DOUBLE_KICK
- db 1, POISON_STING
- db 23, THRASH
- db 0 ; no more level-up moves
-
-ClefairyEvosAttacks:
- db EVOLVE_ITEM, MOON_STONE, CLEFABLE
- db 0 ; no more evolutions
- db 1, POUND
- db 1, GROWL
- db 4, ENCORE
- db 8, SING
- db 13, DOUBLESLAP
- db 19, MINIMIZE
- db 26, DEFENSE_CURL
- db 34, METRONOME
- db 43, MOONLIGHT
- db 53, LIGHT_SCREEN
- db 0 ; no more level-up moves
-
-ClefableEvosAttacks:
- db 0 ; no more evolutions
- db 1, SING
- db 1, DOUBLESLAP
- db 1, METRONOME
- db 1, MOONLIGHT
- db 0 ; no more level-up moves
-
-VulpixEvosAttacks:
- db EVOLVE_ITEM, FIRE_STONE, NINETALES
- db 0 ; no more evolutions
- db 1, EMBER
- db 1, TAIL_WHIP
- db 7, QUICK_ATTACK
- db 13, ROAR
- db 19, CONFUSE_RAY
- db 25, SAFEGUARD
- db 31, FLAMETHROWER
- db 37, FIRE_SPIN
- db 0 ; no more level-up moves
-
-NinetalesEvosAttacks:
- db 0 ; no more evolutions
- db 1, EMBER
- db 1, QUICK_ATTACK
- db 1, CONFUSE_RAY
- db 1, SAFEGUARD
- db 43, FIRE_SPIN
- db 0 ; no more level-up moves
-
-JigglypuffEvosAttacks:
- db EVOLVE_ITEM, MOON_STONE, WIGGLYTUFF
- db 0 ; no more evolutions
- db 1, SING
- db 4, DEFENSE_CURL
- db 9, POUND
- db 14, DISABLE
- db 19, ROLLOUT
- db 24, DOUBLESLAP
- db 29, REST
- db 34, BODY_SLAM
- db 39, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-WigglytuffEvosAttacks:
- db 0 ; no more evolutions
- db 1, SING
- db 1, DISABLE
- db 1, DEFENSE_CURL
- db 1, DOUBLESLAP
- db 0 ; no more level-up moves
-
-ZubatEvosAttacks:
- db EVOLVE_LEVEL, 22, GOLBAT
- db 0 ; no more evolutions
- db 1, LEECH_LIFE
- db 6, SUPERSONIC
- db 12, BITE
- db 19, CONFUSE_RAY
- db 27, WING_ATTACK
- db 36, MEAN_LOOK
- db 46, HAZE
- db 0 ; no more level-up moves
-
-GolbatEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, CROBAT
- db 0 ; no more evolutions
- db 1, SCREECH
- db 1, LEECH_LIFE
- db 1, SUPERSONIC
- db 6, SUPERSONIC
- db 12, BITE
- db 19, CONFUSE_RAY
- db 30, WING_ATTACK
- db 42, MEAN_LOOK
- db 55, HAZE
- db 0 ; no more level-up moves
-
-OddishEvosAttacks:
- db EVOLVE_LEVEL, 21, GLOOM
- db 0 ; no more evolutions
- db 1, ABSORB
- db 7, SWEET_SCENT
- db 14, POISONPOWDER
- db 16, STUN_SPORE
- db 18, SLEEP_POWDER
- db 23, ACID
- db 32, MOONLIGHT
- db 39, PETAL_DANCE
- db 0 ; no more level-up moves
-
-GloomEvosAttacks:
- db EVOLVE_ITEM, LEAF_STONE, VILEPLUME
- db EVOLVE_ITEM, SUN_STONE, BELLOSSOM
- db 0 ; no more evolutions
- db 1, ABSORB
- db 1, SWEET_SCENT
- db 1, POISONPOWDER
- db 7, SWEET_SCENT
- db 14, POISONPOWDER
- db 16, STUN_SPORE
- db 18, SLEEP_POWDER
- db 24, ACID
- db 35, MOONLIGHT
- db 44, PETAL_DANCE
- db 0 ; no more level-up moves
-
-VileplumeEvosAttacks:
- db 0 ; no more evolutions
- db 1, ABSORB
- db 1, SWEET_SCENT
- db 1, STUN_SPORE
- db 1, PETAL_DANCE
- db 0 ; no more level-up moves
-
-ParasEvosAttacks:
- db EVOLVE_LEVEL, 24, PARASECT
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 7, STUN_SPORE
- db 13, POISONPOWDER
- db 19, LEECH_LIFE
- db 25, SPORE
- db 31, SLASH
- db 37, GROWTH
- db 43, GIGA_DRAIN
- db 0 ; no more level-up moves
-
-ParasectEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, STUN_SPORE
- db 1, POISONPOWDER
- db 7, STUN_SPORE
- db 13, POISONPOWDER
- db 19, LEECH_LIFE
- db 28, SPORE
- db 37, SLASH
- db 46, GROWTH
- db 55, GIGA_DRAIN
- db 0 ; no more level-up moves
-
-VenonatEvosAttacks:
- db EVOLVE_LEVEL, 31, VENOMOTH
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DISABLE
- db 1, FORESIGHT
- db 9, SUPERSONIC
- db 17, CONFUSION
- db 20, POISONPOWDER
- db 25, LEECH_LIFE
- db 28, STUN_SPORE
- db 33, PSYBEAM
- db 36, SLEEP_POWDER
- db 41, PSYCHIC_M
- db 0 ; no more level-up moves
-
-VenomothEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DISABLE
- db 1, FORESIGHT
- db 1, SUPERSONIC
- db 9, SUPERSONIC
- db 17, CONFUSION
- db 20, POISONPOWDER
- db 25, LEECH_LIFE
- db 28, STUN_SPORE
- db 31, GUST
- db 36, PSYBEAM
- db 42, SLEEP_POWDER
- db 52, PSYCHIC_M
- db 0 ; no more level-up moves
-
-DiglettEvosAttacks:
- db EVOLVE_LEVEL, 26, DUGTRIO
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 5, GROWL
- db 9, MAGNITUDE
- db 17, DIG
- db 25, SAND_ATTACK
- db 33, SLASH
- db 41, EARTHQUAKE
- db 49, FISSURE
- db 0 ; no more level-up moves
-
-DugtrioEvosAttacks:
- db 0 ; no more evolutions
-if _CRYSTAL
- db 1, TRI_ATTACK
-endc
- db 1, SCRATCH
- db 1, GROWL
- db 1, MAGNITUDE
- db 5, GROWL
- db 9, MAGNITUDE
- db 17, DIG
- db 25, SAND_ATTACK
- db 37, SLASH
- db 49, EARTHQUAKE
- db 61, FISSURE
- db 0 ; no more level-up moves
-
-MeowthEvosAttacks:
- db EVOLVE_LEVEL, 28, PERSIAN
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 11, BITE
- db 20, PAY_DAY
- db 28, FAINT_ATTACK
- db 35, SCREECH
- db 41, FURY_SWIPES
- db 46, SLASH
- db 0 ; no more level-up moves
-
-PersianEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 1, BITE
- db 11, BITE
- db 20, PAY_DAY
- db 29, FAINT_ATTACK
- db 38, SCREECH
- db 46, FURY_SWIPES
- db 53, SLASH
- db 0 ; no more level-up moves
-
-PsyduckEvosAttacks:
- db EVOLVE_LEVEL, 33, GOLDUCK
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 5, TAIL_WHIP
- db 10, DISABLE
- db 16, CONFUSION
- db 23, SCREECH
- db 31, PSYCH_UP
- db 40, FURY_SWIPES
- db 50, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-GolduckEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, TAIL_WHIP
- db 1, DISABLE
- db 1, CONFUSION
- db 5, TAIL_WHIP
- db 10, DISABLE
- db 16, CONFUSION
- db 23, SCREECH
- db 31, PSYCH_UP
- db 44, FURY_SWIPES
- db 58, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-MankeyEvosAttacks:
- db EVOLVE_LEVEL, 28, PRIMEAPE
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 9, LOW_KICK
- db 15, KARATE_CHOP
- db 21, FURY_SWIPES
- db 27, FOCUS_ENERGY
- db 33, SEISMIC_TOSS
- db 39, CROSS_CHOP
- db 45, SCREECH
- db 51, THRASH
- db 0 ; no more level-up moves
-
-PrimeapeEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 1, LOW_KICK
- db 1, RAGE
- db 9, LOW_KICK
- db 15, KARATE_CHOP
- db 21, FURY_SWIPES
- db 27, FOCUS_ENERGY
- db 28, RAGE
- db 36, SEISMIC_TOSS
- db 45, CROSS_CHOP
- db 54, SCREECH
- db 63, THRASH
- db 0 ; no more level-up moves
-
-GrowlitheEvosAttacks:
- db EVOLVE_ITEM, FIRE_STONE, ARCANINE
- db 0 ; no more evolutions
- db 1, BITE
- db 1, ROAR
- db 9, EMBER
- db 18, LEER
- db 26, TAKE_DOWN
- db 34, FLAME_WHEEL
- db 42, AGILITY
- db 50, FLAMETHROWER
- db 0 ; no more level-up moves
-
-ArcanineEvosAttacks:
- db 0 ; no more evolutions
- db 1, ROAR
- db 1, LEER
- db 1, TAKE_DOWN
- db 1, FLAME_WHEEL
- db 50, EXTREMESPEED
- db 0 ; no more level-up moves
-
-PoliwagEvosAttacks:
- db EVOLVE_LEVEL, 25, POLIWHIRL
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 7, HYPNOSIS
- db 13, WATER_GUN
- db 19, DOUBLESLAP
- db 25, RAIN_DANCE
- db 31, BODY_SLAM
- db 37, BELLY_DRUM
- db 43, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-PoliwhirlEvosAttacks:
- db EVOLVE_ITEM, WATER_STONE, POLIWRATH
- db EVOLVE_TRADE, KINGS_ROCK, POLITOED
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, HYPNOSIS
- db 1, WATER_GUN
- db 7, HYPNOSIS
- db 13, WATER_GUN
- db 19, DOUBLESLAP
- db 27, RAIN_DANCE
- db 35, BODY_SLAM
- db 43, BELLY_DRUM
- db 51, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-PoliwrathEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, HYPNOSIS
- db 1, DOUBLESLAP
- db 1, SUBMISSION
- db 35, SUBMISSION
- db 51, MIND_READER
- db 0 ; no more level-up moves
-
-AbraEvosAttacks:
- db EVOLVE_LEVEL, 16, KADABRA
- db 0 ; no more evolutions
- db 1, TELEPORT
- db 0 ; no more level-up moves
-
-KadabraEvosAttacks:
- db EVOLVE_TRADE, $ff, ALAKAZAM
- db 0 ; no more evolutions
- db 1, TELEPORT
- db 1, KINESIS
- db 1, CONFUSION
- db 16, CONFUSION
- db 18, DISABLE
- db 21, PSYBEAM
- db 26, RECOVER
- db 31, FUTURE_SIGHT
- db 38, PSYCHIC_M
- db 45, REFLECT
- db 0 ; no more level-up moves
-
-AlakazamEvosAttacks:
- db 0 ; no more evolutions
- db 1, TELEPORT
- db 1, KINESIS
- db 1, CONFUSION
- db 16, CONFUSION
- db 18, DISABLE
- db 21, PSYBEAM
- db 26, RECOVER
- db 31, FUTURE_SIGHT
- db 38, PSYCHIC_M
- db 45, REFLECT
- db 0 ; no more level-up moves
-
-MachopEvosAttacks:
- db EVOLVE_LEVEL, 28, MACHOKE
- db 0 ; no more evolutions
- db 1, LOW_KICK
- db 1, LEER
- db 7, FOCUS_ENERGY
- db 13, KARATE_CHOP
- db 19, SEISMIC_TOSS
- db 25, FORESIGHT
- db 31, VITAL_THROW
- db 37, CROSS_CHOP
- db 43, SCARY_FACE
- db 49, SUBMISSION
- db 0 ; no more level-up moves
-
-MachokeEvosAttacks:
- db EVOLVE_TRADE, $ff, MACHAMP
- db 0 ; no more evolutions
- db 1, LOW_KICK
- db 1, LEER
- db 1, FOCUS_ENERGY
- db 8, FOCUS_ENERGY
- db 15, KARATE_CHOP
- db 19, SEISMIC_TOSS
- db 25, FORESIGHT
- db 34, VITAL_THROW
- db 43, CROSS_CHOP
- db 52, SCARY_FACE
- db 61, SUBMISSION
- db 0 ; no more level-up moves
-
-MachampEvosAttacks:
- db 0 ; no more evolutions
- db 1, LOW_KICK
- db 1, LEER
- db 1, FOCUS_ENERGY
- db 8, FOCUS_ENERGY
- db 15, KARATE_CHOP
- db 19, SEISMIC_TOSS
- db 25, FORESIGHT
- db 34, VITAL_THROW
- db 43, CROSS_CHOP
- db 52, SCARY_FACE
- db 61, SUBMISSION
- db 0 ; no more level-up moves
-
-BellsproutEvosAttacks:
- db EVOLVE_LEVEL, 21, WEEPINBELL
- db 0 ; no more evolutions
- db 1, VINE_WHIP
- db 6, GROWTH
- db 11, WRAP
- db 15, SLEEP_POWDER
- db 17, POISONPOWDER
- db 19, STUN_SPORE
- db 23, ACID
- db 30, SWEET_SCENT
- db 37, RAZOR_LEAF
- db 45, SLAM
- db 0 ; no more level-up moves
-
-WeepinbellEvosAttacks:
- db EVOLVE_ITEM, LEAF_STONE, VICTREEBEL
- db 0 ; no more evolutions
- db 1, VINE_WHIP
- db 1, GROWTH
- db 1, WRAP
- db 6, GROWTH
- db 11, WRAP
- db 15, SLEEP_POWDER
- db 17, POISONPOWDER
- db 19, STUN_SPORE
- db 24, ACID
- db 33, SWEET_SCENT
- db 42, RAZOR_LEAF
- db 54, SLAM
- db 0 ; no more level-up moves
-
-VictreebelEvosAttacks:
- db 0 ; no more evolutions
- db 1, VINE_WHIP
- db 1, SLEEP_POWDER
- db 1, SWEET_SCENT
- db 1, RAZOR_LEAF
- db 0 ; no more level-up moves
-
-TentacoolEvosAttacks:
- db EVOLVE_LEVEL, 30, TENTACRUEL
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 6, SUPERSONIC
- db 12, CONSTRICT
- db 19, ACID
- db 25, BUBBLEBEAM
- db 30, WRAP
- db 36, BARRIER
- db 43, SCREECH
- db 49, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-TentacruelEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 1, SUPERSONIC
- db 1, CONSTRICT
- db 6, SUPERSONIC
- db 12, CONSTRICT
- db 19, ACID
- db 25, BUBBLEBEAM
- db 30, WRAP
- db 38, BARRIER
- db 47, SCREECH
- db 55, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-GeodudeEvosAttacks:
- db EVOLVE_LEVEL, 25, GRAVELER
- db 0 ; no more evolutions
- db 1, TACKLE
- db 6, DEFENSE_CURL
- db 11, ROCK_THROW
- db 16, MAGNITUDE
- db 21, SELFDESTRUCT
- db 26, HARDEN
- db 31, ROLLOUT
- db 36, EARTHQUAKE
- db 41, EXPLOSION
- db 0 ; no more level-up moves
-
-GravelerEvosAttacks:
- db EVOLVE_TRADE, $ff, GOLEM
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DEFENSE_CURL
- db 1, ROCK_THROW
- db 6, DEFENSE_CURL
- db 11, ROCK_THROW
- db 16, MAGNITUDE
- db 21, SELFDESTRUCT
- db 27, HARDEN
- db 34, ROLLOUT
- db 41, EARTHQUAKE
- db 48, EXPLOSION
- db 0 ; no more level-up moves
-
-GolemEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DEFENSE_CURL
- db 1, ROCK_THROW
- db 1, MAGNITUDE
- db 6, DEFENSE_CURL
- db 11, ROCK_THROW
- db 16, MAGNITUDE
- db 21, SELFDESTRUCT
- db 27, HARDEN
- db 34, ROLLOUT
- db 41, EARTHQUAKE
- db 48, EXPLOSION
- db 0 ; no more level-up moves
-
-PonytaEvosAttacks:
- db EVOLVE_LEVEL, 40, RAPIDASH
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, GROWL
- db 8, TAIL_WHIP
- db 13, EMBER
- db 19, STOMP
- db 26, FIRE_SPIN
- db 34, TAKE_DOWN
- db 43, AGILITY
- db 53, FIRE_BLAST
- db 0 ; no more level-up moves
-
-RapidashEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, TAIL_WHIP
- db 1, EMBER
- db 4, GROWL
- db 8, TAIL_WHIP
- db 13, EMBER
- db 19, STOMP
- db 26, FIRE_SPIN
- db 34, TAKE_DOWN
- db 40, FURY_ATTACK
- db 47, AGILITY
- db 61, FIRE_BLAST
- db 0 ; no more level-up moves
-
-SlowpokeEvosAttacks:
- db EVOLVE_LEVEL, 37, SLOWBRO
- db EVOLVE_TRADE, KINGS_ROCK, SLOWKING
- db 0 ; no more evolutions
- db 1, CURSE
- db 1, TACKLE
- db 6, GROWL
- db 15, WATER_GUN
- db 20, CONFUSION
- db 29, DISABLE
- db 34, HEADBUTT
- db 43, AMNESIA
- db 48, PSYCHIC_M
- db 0 ; no more level-up moves
-
-SlowbroEvosAttacks:
- db 0 ; no more evolutions
- db 1, CURSE
- db 1, TACKLE
- db 1, GROWL
- db 1, WATER_GUN
- db 6, GROWL
- db 15, WATER_GUN
- db 20, CONFUSION
- db 29, DISABLE
- db 34, HEADBUTT
- db 37, WITHDRAW
- db 46, AMNESIA
- db 54, PSYCHIC_M
- db 0 ; no more level-up moves
-
-MagnemiteEvosAttacks:
- db EVOLVE_LEVEL, 30, MAGNETON
- db 0 ; no more evolutions
- db 1, TACKLE
- db 6, THUNDERSHOCK
- db 11, SUPERSONIC
- db 16, SONICBOOM
- db 21, THUNDER_WAVE
- db 27, LOCK_ON
- db 33, SWIFT
- db 39, SCREECH
- db 45, ZAP_CANNON
- db 0 ; no more level-up moves
-
-MagnetonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, THUNDERSHOCK
- db 1, SUPERSONIC
- db 1, SONICBOOM
- db 6, THUNDERSHOCK
- db 11, SUPERSONIC
- 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
-
-FarfetchDEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 7, SAND_ATTACK
- db 13, LEER
- db 19, FURY_ATTACK
- db 25, SWORDS_DANCE
- db 31, AGILITY
- db 37, SLASH
- db 44, FALSE_SWIPE
- db 0 ; no more level-up moves
-
-DoduoEvosAttacks:
- db EVOLVE_LEVEL, 31, DODRIO
- db 0 ; no more evolutions
- db 1, PECK
- db 1, GROWL
- db 9, PURSUIT
- db 13, FURY_ATTACK
- db 21, TRI_ATTACK
- db 25, RAGE
- db 33, DRILL_PECK
- db 37, AGILITY
- db 0 ; no more level-up moves
-
-DodrioEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, GROWL
- db 1, PURSUIT
- db 1, FURY_ATTACK
- db 9, PURSUIT
- db 13, FURY_ATTACK
- db 21, TRI_ATTACK
- db 25, RAGE
- db 38, DRILL_PECK
- db 47, AGILITY
- db 0 ; no more level-up moves
-
-SeelEvosAttacks:
- db EVOLVE_LEVEL, 34, DEWGONG
- db 0 ; no more evolutions
- db 1, HEADBUTT
- db 5, GROWL
- db 16, AURORA_BEAM
- db 21, REST
- db 32, TAKE_DOWN
- db 37, ICE_BEAM
- db 48, SAFEGUARD
- db 0 ; no more level-up moves
-
-DewgongEvosAttacks:
- db 0 ; no more evolutions
- db 1, HEADBUTT
- db 1, GROWL
- db 1, AURORA_BEAM
- db 5, GROWL
- db 16, AURORA_BEAM
- db 21, REST
- db 32, TAKE_DOWN
- db 43, ICE_BEAM
- db 60, SAFEGUARD
- db 0 ; no more level-up moves
-
-GrimerEvosAttacks:
- db EVOLVE_LEVEL, 38, MUK
- db 0 ; no more evolutions
- db 1, POISON_GAS
- db 1, POUND
- db 5, HARDEN
- db 10, DISABLE
- db 16, SLUDGE
- db 23, MINIMIZE
- db 31, SCREECH
- db 40, ACID_ARMOR
- db 50, SLUDGE_BOMB
- db 0 ; no more level-up moves
-
-MukEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_GAS
- db 1, POUND
- db 1, HARDEN
- db 33, HARDEN
- db 37, DISABLE
- db 45, SLUDGE
- db 23, MINIMIZE
- db 31, SCREECH
- db 45, ACID_ARMOR
- db 60, SLUDGE_BOMB
- db 0 ; no more level-up moves
-
-ShellderEvosAttacks:
- db EVOLVE_ITEM, WATER_STONE, CLOYSTER
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, WITHDRAW
- db 9, SUPERSONIC
- db 17, AURORA_BEAM
- db 25, PROTECT
- db 33, LEER
- db 41, CLAMP
- db 49, ICE_BEAM
- db 0 ; no more level-up moves
-
-CloysterEvosAttacks:
- db 0 ; no more evolutions
- db 1, WITHDRAW
- 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
-
-GastlyEvosAttacks:
- db EVOLVE_LEVEL, 25, HAUNTER
- db 0 ; no more evolutions
- db 1, HYPNOSIS
- db 1, LICK
- db 8, SPITE
- db 13, MEAN_LOOK
- db 16, CURSE
- db 21, NIGHT_SHADE
- db 28, CONFUSE_RAY
- db 33, DREAM_EATER
- db 36, DESTINY_BOND
- db 0 ; no more level-up moves
-
-HaunterEvosAttacks:
- db EVOLVE_TRADE, $ff, GENGAR
- db 0 ; no more evolutions
- db 1, HYPNOSIS
- db 1, LICK
- db 1, SPITE
- db 8, SPITE
- db 13, MEAN_LOOK
- db 16, CURSE
- db 21, NIGHT_SHADE
- db 31, CONFUSE_RAY
- db 39, DREAM_EATER
- db 48, DESTINY_BOND
- db 0 ; no more level-up moves
-
-GengarEvosAttacks:
- db 0 ; no more evolutions
- db 1, HYPNOSIS
- db 1, LICK
- db 1, SPITE
- db 8, SPITE
- db 13, MEAN_LOOK
- db 16, CURSE
- db 21, NIGHT_SHADE
- db 31, CONFUSE_RAY
- db 39, DREAM_EATER
- db 48, DESTINY_BOND
- db 0 ; no more level-up moves
-
-OnixEvosAttacks:
- db EVOLVE_TRADE, METAL_COAT, STEELIX
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCREECH
- db 10, BIND
- db 14, ROCK_THROW
- db 23, HARDEN
- db 27, RAGE
- db 36, SANDSTORM
- db 40, SLAM
- db 0 ; no more level-up moves
-
-DrowzeeEvosAttacks:
- db EVOLVE_LEVEL, 26, HYPNO
- db 0 ; no more evolutions
- db 1, POUND
- db 1, HYPNOSIS
- db 10, DISABLE
- db 18, CONFUSION
- db 25, HEADBUTT
- db 31, POISON_GAS
- db 36, MEDITATE
- db 40, PSYCHIC_M
- db 43, PSYCH_UP
- db 45, FUTURE_SIGHT
- db 0 ; no more level-up moves
-
-HypnoEvosAttacks:
- db 0 ; no more evolutions
- db 1, POUND
- db 1, HYPNOSIS
- db 1, DISABLE
- db 1, CONFUSION
- db 10, DISABLE
- db 18, CONFUSION
- db 25, HEADBUTT
- db 33, POISON_GAS
- db 40, MEDITATE
- db 49, PSYCHIC_M
- db 55, PSYCH_UP
- db 60, FUTURE_SIGHT
- db 0 ; no more level-up moves
-
-KrabbyEvosAttacks:
- db EVOLVE_LEVEL, 28, KINGLER
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 5, LEER
- db 12, VICEGRIP
- db 16, HARDEN
- db 23, STOMP
- db 27, GUILLOTINE
- db 34, PROTECT
- db 41, CRABHAMMER
- db 0 ; no more level-up moves
-
-KinglerEvosAttacks:
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, LEER
- db 1, VICEGRIP
- db 5, LEER
- db 12, VICEGRIP
- db 16, HARDEN
- db 23, STOMP
- db 27, GUILLOTINE
- db 38, PROTECT
- db 49, CRABHAMMER
- db 0 ; no more level-up moves
-
-VoltorbEvosAttacks:
- db EVOLVE_LEVEL, 30, ELECTRODE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 9, SCREECH
- db 17, SONICBOOM
- db 23, SELFDESTRUCT
- db 29, ROLLOUT
- db 33, LIGHT_SCREEN
- db 37, SWIFT
- db 39, EXPLOSION
- db 41, MIRROR_COAT
- db 0 ; no more level-up moves
-
-ElectrodeEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCREECH
- db 1, SONICBOOM
- db 1, SELFDESTRUCT
- db 9, SCREECH
- db 17, SONICBOOM
- db 23, SELFDESTRUCT
- db 29, ROLLOUT
- db 34, LIGHT_SCREEN
- db 40, SWIFT
- db 44, EXPLOSION
- db 48, MIRROR_COAT
- db 0 ; no more level-up moves
-
-ExeggcuteEvosAttacks:
- db EVOLVE_ITEM, LEAF_STONE, EXEGGUTOR
- db 0 ; no more evolutions
- db 1, BARRAGE
- db 1, HYPNOSIS
- db 7, REFLECT
- db 13, LEECH_SEED
- db 19, CONFUSION
- db 25, STUN_SPORE
- db 31, POISONPOWDER
- db 37, SLEEP_POWDER
- db 43, SOLARBEAM
- db 0 ; no more level-up moves
-
-ExeggutorEvosAttacks:
- db 0 ; no more evolutions
- db 1, BARRAGE
- db 1, HYPNOSIS
- db 1, CONFUSION
- db 19, STOMP
- db 31, EGG_BOMB
- db 0 ; no more level-up moves
-
-CuboneEvosAttacks:
- db EVOLVE_LEVEL, 28, MAROWAK
- db 0 ; no more evolutions
- db 1, GROWL
- db 5, TAIL_WHIP
- db 9, BONE_CLUB
- db 13, HEADBUTT
- db 17, LEER
- db 21, FOCUS_ENERGY
- db 25, BONEMERANG
- db 29, RAGE
- db 33, FALSE_SWIPE
- db 37, THRASH
- db 41, BONE_RUSH
- db 0 ; no more level-up moves
-
-MarowakEvosAttacks:
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, TAIL_WHIP
- db 1, BONE_CLUB
- db 1, HEADBUTT
- db 5, TAIL_WHIP
- db 9, BONE_CLUB
- db 13, HEADBUTT
- db 17, LEER
- db 21, FOCUS_ENERGY
- db 25, BONEMERANG
- db 32, RAGE
- db 39, FALSE_SWIPE
- db 46, THRASH
- db 53, BONE_RUSH
- db 0 ; no more level-up moves
-
-HitmonleeEvosAttacks:
- db 0 ; no more evolutions
- db 1, DOUBLE_KICK
- db 6, MEDITATE
- db 11, ROLLING_KICK
- db 16, JUMP_KICK
- db 21, FOCUS_ENERGY
- db 26, HI_JUMP_KICK
- db 31, MIND_READER
- db 36, FORESIGHT
- db 41, ENDURE
- db 46, MEGA_KICK
- db 51, REVERSAL
- db 0 ; no more level-up moves
-
-HitmonchanEvosAttacks:
- db 0 ; no more evolutions
- db 1, COMET_PUNCH
- db 7, AGILITY
- db 13, PURSUIT
- db 26, THUNDERPUNCH
- db 26, ICE_PUNCH
- db 26, FIRE_PUNCH
- db 32, MACH_PUNCH
- db 38, MEGA_PUNCH
- db 44, DETECT
- db 50, COUNTER
- db 0 ; no more level-up moves
-
-LickitungEvosAttacks:
- db 0 ; no more evolutions
- db 1, LICK
- db 7, SUPERSONIC
- db 13, DEFENSE_CURL
- db 19, STOMP
- db 25, WRAP
- db 31, DISABLE
- db 37, SLAM
- db 43, SCREECH
- db 0 ; no more level-up moves
-
-KoffingEvosAttacks:
- db EVOLVE_LEVEL, 35, WEEZING
- db 0 ; no more evolutions
- db 1, POISON_GAS
- db 1, TACKLE
- db 9, SMOG
- db 17, SELFDESTRUCT
- db 21, SLUDGE
- db 25, SMOKESCREEN
- db 33, HAZE
- db 41, EXPLOSION
- db 45, DESTINY_BOND
- db 0 ; no more level-up moves
-
-WeezingEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_GAS
- db 1, TACKLE
- db 1, SMOG
- db 1, SELFDESTRUCT
- db 9, SMOG
- db 17, SELFDESTRUCT
- db 21, SLUDGE
- db 25, SMOKESCREEN
- db 33, HAZE
- db 44, EXPLOSION
- db 51, DESTINY_BOND
- db 0 ; no more level-up moves
-
-RhyhornEvosAttacks:
- db EVOLVE_LEVEL, 42, RHYDON
- db 0 ; no more evolutions
- db 1, HORN_ATTACK
- db 1, TAIL_WHIP
- db 13, STOMP
- db 19, FURY_ATTACK
- db 31, SCARY_FACE
- db 37, HORN_DRILL
- db 49, TAKE_DOWN
- db 55, EARTHQUAKE
- db 0 ; no more level-up moves
-
-RhydonEvosAttacks:
- db 0 ; no more evolutions
- db 1, HORN_ATTACK
- db 1, TAIL_WHIP
- db 1, STOMP
- db 1, FURY_ATTACK
- db 13, STOMP
- db 19, FURY_ATTACK
- db 31, SCARY_FACE
- db 37, HORN_DRILL
- db 54, TAKE_DOWN
- db 65, EARTHQUAKE
- db 0 ; no more level-up moves
-
-ChanseyEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, BLISSEY
- db 0 ; no more evolutions
- db 1, POUND
- db 5, GROWL
- db 9, TAIL_WHIP
- db 13, SOFTBOILED
- db 17, DOUBLESLAP
- db 23, MINIMIZE
- db 29, SING
- db 35, EGG_BOMB
- db 41, DEFENSE_CURL
- db 49, LIGHT_SCREEN
- db 57, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-TangelaEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONSTRICT
- db 4, SLEEP_POWDER
- db 10, ABSORB
- db 13, POISONPOWDER
- db 19, VINE_WHIP
- db 25, BIND
- db 31, MEGA_DRAIN
- db 34, STUN_SPORE
- db 40, SLAM
- db 46, GROWTH
- db 0 ; no more level-up moves
-
-KangaskhanEvosAttacks:
- db 0 ; no more evolutions
- db 1, COMET_PUNCH
- db 7, LEER
- db 13, BITE
- db 19, TAIL_WHIP
- db 25, MEGA_PUNCH
- db 31, RAGE
- db 37, ENDURE
- db 43, DIZZY_PUNCH
- db 49, REVERSAL
- db 0 ; no more level-up moves
-
-HorseaEvosAttacks:
- db EVOLVE_LEVEL, 32, SEADRA
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 8, SMOKESCREEN
- db 15, LEER
- db 22, WATER_GUN
- db 29, TWISTER
- db 36, AGILITY
- db 43, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-SeadraEvosAttacks:
- db EVOLVE_TRADE, DRAGON_SCALE, KINGDRA
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, SMOKESCREEN
- db 1, LEER
- db 1, WATER_GUN
- db 8, SMOKESCREEN
- db 15, LEER
- db 22, WATER_GUN
- db 29, TWISTER
- db 40, AGILITY
- db 51, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-GoldeenEvosAttacks:
- db EVOLVE_LEVEL, 33, SEAKING
- db 0 ; no more evolutions
- db 1, PECK
- db 1, TAIL_WHIP
- db 10, SUPERSONIC
- db 15, HORN_ATTACK
- db 24, FLAIL
- db 29, FURY_ATTACK
- db 38, WATERFALL
- db 43, HORN_DRILL
- db 52, AGILITY
- db 0 ; no more level-up moves
-
-SeakingEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, TAIL_WHIP
- db 1, TAIL_WHIP
- db 10, SUPERSONIC
- db 15, HORN_ATTACK
- db 24, FLAIL
- db 29, FURY_ATTACK
- db 41, WATERFALL
- db 49, HORN_DRILL
- db 61, AGILITY
- db 0 ; no more level-up moves
-
-StaryuEvosAttacks:
- db EVOLVE_ITEM, WATER_STONE, STARMIE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, HARDEN
- db 7, WATER_GUN
- db 13, RAPID_SPIN
- db 19, RECOVER
- db 25, SWIFT
- db 31, BUBBLEBEAM
- db 37, MINIMIZE
- db 43, LIGHT_SCREEN
- db 50, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-StarmieEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, RAPID_SPIN
- db 1, RECOVER
- db 1, BUBBLEBEAM
- db 37, CONFUSE_RAY
- db 0 ; no more level-up moves
-
-MrMimeEvosAttacks:
- db 0 ; no more evolutions
- db 1, BARRIER
- db 6, CONFUSION
- db 11, SUBSTITUTE
- db 16, MEDITATE
- db 21, DOUBLESLAP
- db 26, LIGHT_SCREEN
- db 26, REFLECT
- db 31, ENCORE
- db 36, PSYBEAM
- db 41, BATON_PASS
- db 46, SAFEGUARD
- db 0 ; no more level-up moves
-
-ScytherEvosAttacks:
- db EVOLVE_TRADE, METAL_COAT, SCIZOR
- db 0 ; no more evolutions
- db 1, QUICK_ATTACK
- db 1, LEER
- db 6, FOCUS_ENERGY
- db 12, PURSUIT
- db 18, FALSE_SWIPE
- db 24, AGILITY
- db 30, WING_ATTACK
- db 36, SLASH
- db 42, SWORDS_DANCE
- db 48, DOUBLE_TEAM
- db 0 ; no more level-up moves
-
-JynxEvosAttacks:
- db 0 ; no more evolutions
- db 1, POUND
- db 1, LICK
- db 1, LOVELY_KISS
- db 1, POWDER_SNOW
- db 9, LOVELY_KISS
- db 13, POWDER_SNOW
- db 21, DOUBLESLAP
- db 25, ICE_PUNCH
- db 35, MEAN_LOOK
- db 41, BODY_SLAM
- db 51, PERISH_SONG
- db 57, BLIZZARD
- db 0 ; no more level-up moves
-
-ElectabuzzEvosAttacks:
- db 0 ; no more evolutions
- db 1, QUICK_ATTACK
- db 1, LEER
- db 1, THUNDERPUNCH
- db 9, THUNDERPUNCH
- db 17, LIGHT_SCREEN
- db 25, SWIFT
- db 36, SCREECH
- db 47, THUNDERBOLT
- db 58, THUNDER
- db 0 ; no more level-up moves
-
-MagmarEvosAttacks:
- db 0 ; no more evolutions
- db 1, EMBER
- db 1, LEER
- db 1, SMOG
- db 1, FIRE_PUNCH
- db 7, LEER
- db 13, SMOG
- db 19, FIRE_PUNCH
- db 25, SMOKESCREEN
- db 33, SUNNY_DAY
- db 41, FLAMETHROWER
- db 49, CONFUSE_RAY
- db 57, FIRE_BLAST
- db 0 ; no more level-up moves
-
-PinsirEvosAttacks:
- db 0 ; no more evolutions
- db 1, VICEGRIP
- db 7, FOCUS_ENERGY
- db 13, BIND
- db 19, SEISMIC_TOSS
- db 25, HARDEN
- db 31, GUILLOTINE
- db 37, SUBMISSION
- db 43, SWORDS_DANCE
- db 0 ; no more level-up moves
-
-TaurosEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, TAIL_WHIP
- db 8, RAGE
- db 13, HORN_ATTACK
- db 19, SCARY_FACE
- db 26, PURSUIT
- db 34, REST
- db 43, THRASH
- db 53, TAKE_DOWN
- db 0 ; no more level-up moves
-
-MagikarpEvosAttacks:
- db EVOLVE_LEVEL, 20, GYARADOS
- db 0 ; no more evolutions
- db 1, SPLASH
- db 15, TACKLE
- db 30, FLAIL
- db 0 ; no more level-up moves
-
-GyaradosEvosAttacks:
- db 0 ; no more evolutions
- db 1, THRASH
- db 20, BITE
- db 25, DRAGON_RAGE
- db 30, LEER
- db 35, TWISTER
- db 40, HYDRO_PUMP
- db 45, RAIN_DANCE
- db 50, HYPER_BEAM
- db 0 ; no more level-up moves
-
-LaprasEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, GROWL
- db 1, SING
- db 8, MIST
- db 15, BODY_SLAM
- db 22, CONFUSE_RAY
- db 29, PERISH_SONG
- db 36, ICE_BEAM
- db 43, RAIN_DANCE
- db 50, SAFEGUARD
- db 57, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-DittoEvosAttacks:
- db 0 ; no more evolutions
- db 1, TRANSFORM
- db 0 ; no more level-up moves
-
-EeveeEvosAttacks:
- db EVOLVE_ITEM, THUNDERSTONE, JOLTEON
- db EVOLVE_ITEM, WATER_STONE, VAPOREON
- db EVOLVE_ITEM, FIRE_STONE, FLAREON
- db EVOLVE_HAPPINESS, TR_MORNDAY, ESPEON
- db EVOLVE_HAPPINESS, TR_NITE, UMBREON
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- 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
-
-VaporeonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, WATER_GUN
- db 23, QUICK_ATTACK
- db 30, BITE
- db 36, AURORA_BEAM
- db 42, HAZE
- db 47, ACID_ARMOR
- db 52, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-JolteonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, THUNDERSHOCK
- db 23, QUICK_ATTACK
- db 30, DOUBLE_KICK
- db 36, PIN_MISSILE
- db 42, THUNDER_WAVE
- db 47, AGILITY
- db 52, THUNDER
- db 0 ; no more level-up moves
-
-FlareonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, EMBER
- db 23, QUICK_ATTACK
- db 30, BITE
- db 36, FIRE_SPIN
- db 42, SMOG
- db 47, LEER
- db 52, FLAMETHROWER
- db 0 ; no more level-up moves
-
-PorygonEvosAttacks:
- db EVOLVE_TRADE, UP_GRADE, PORYGON2
- db 0 ; no more evolutions
- db 1, CONVERSION2
- db 1, TACKLE
- db 1, CONVERSION
- db 9, AGILITY
- db 12, PSYBEAM
- db 20, RECOVER
- db 24, SHARPEN
- db 32, LOCK_ON
- db 36, TRI_ATTACK
- db 44, ZAP_CANNON
- db 0 ; no more level-up moves
-
-OmanyteEvosAttacks:
- db EVOLVE_LEVEL, 40, OMASTAR
- db 0 ; no more evolutions
- db 1, CONSTRICT
- db 1, WITHDRAW
- db 13, BITE
- db 19, WATER_GUN
- db 31, LEER
- db 37, PROTECT
- db 49, ANCIENTPOWER
- db 55, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-OmastarEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONSTRICT
- db 1, WITHDRAW
- db 1, BITE
- db 13, BITE
- db 19, WATER_GUN
- db 31, LEER
- db 37, PROTECT
- db 40, SPIKE_CANNON
- db 54, ANCIENTPOWER
- db 65, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-KabutoEvosAttacks:
- db EVOLVE_LEVEL, 40, KABUTOPS
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, HARDEN
- db 10, ABSORB
- db 19, LEER
- db 28, SAND_ATTACK
- db 37, ENDURE
- db 46, MEGA_DRAIN
- db 55, ANCIENTPOWER
- db 0 ; no more level-up moves
-
-KabutopsEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, HARDEN
- db 1, ABSORB
- db 10, ABSORB
- db 19, LEER
- db 28, SAND_ATTACK
- db 37, ENDURE
- db 40, SLASH
- db 51, MEGA_DRAIN
- db 65, ANCIENTPOWER
- db 0 ; no more level-up moves
-
-AerodactylEvosAttacks:
- db 0 ; no more evolutions
- db 1, WING_ATTACK
- db 8, AGILITY
- db 15, BITE
- db 22, SUPERSONIC
- db 29, ANCIENTPOWER
- db 36, SCARY_FACE
- db 43, TAKE_DOWN
- db 50, HYPER_BEAM
- db 0 ; no more level-up moves
-
-SnorlaxEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 8, AMNESIA
- db 15, DEFENSE_CURL
- db 22, BELLY_DRUM
- db 29, HEADBUTT
- db 36, SNORE
- db 36, REST
- db 43, BODY_SLAM
- db 50, ROLLOUT
- db 57, HYPER_BEAM
- db 0 ; no more level-up moves
-
-ArticunoEvosAttacks:
- db 0 ; no more evolutions
- db 1, GUST
- db 1, POWDER_SNOW
- db 13, MIST
- db 25, AGILITY
- db 37, MIND_READER
- db 49, ICE_BEAM
- db 61, REFLECT
- db 73, BLIZZARD
- db 0 ; no more level-up moves
-
-ZapdosEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, THUNDERSHOCK
- db 13, THUNDER_WAVE
- db 25, AGILITY
- db 37, DETECT
- db 49, DRILL_PECK
- db 61, LIGHT_SCREEN
- db 73, THUNDER
- db 0 ; no more level-up moves
-
-MoltresEvosAttacks:
- db 0 ; no more evolutions
- db 1, WING_ATTACK
- db 1, EMBER
- db 13, FIRE_SPIN
- db 25, AGILITY
- db 37, ENDURE
- db 49, FLAMETHROWER
- db 61, SAFEGUARD
- db 73, SKY_ATTACK
- db 0 ; no more level-up moves
-
-DratiniEvosAttacks:
- db EVOLVE_LEVEL, 30, DRAGONAIR
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 8, THUNDER_WAVE
- db 15, TWISTER
- db 22, DRAGON_RAGE
- db 29, SLAM
- db 36, AGILITY
- db 43, SAFEGUARD
- db 50, OUTRAGE
- db 57, HYPER_BEAM
- db 0 ; no more level-up moves
-
-DragonairEvosAttacks:
- db EVOLVE_LEVEL, 55, DRAGONITE
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 1, THUNDER_WAVE
- db 1, TWISTER
- db 8, THUNDER_WAVE
- db 15, TWISTER
- db 22, DRAGON_RAGE
- db 29, SLAM
- db 38, AGILITY
- db 47, SAFEGUARD
- db 56, OUTRAGE
- db 65, HYPER_BEAM
- db 0 ; no more level-up moves
-
-DragoniteEvosAttacks:
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 1, THUNDER_WAVE
- db 1, TWISTER
- db 8, THUNDER_WAVE
- db 15, TWISTER
- db 22, DRAGON_RAGE
- db 29, SLAM
- db 38, AGILITY
- db 47, SAFEGUARD
- db 55, WING_ATTACK
- db 61, OUTRAGE
- db 75, HYPER_BEAM
- db 0 ; no more level-up moves
-
-MewtwoEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONFUSION
- db 1, DISABLE
- db 11, BARRIER
- db 22, SWIFT
- db 33, PSYCH_UP
- db 44, FUTURE_SIGHT
- db 55, MIST
- db 66, PSYCHIC_M
- db 77, AMNESIA
- db 88, RECOVER
- db 99, SAFEGUARD
- db 0 ; no more level-up moves
-
-MewEvosAttacks:
- db 0 ; no more evolutions
- db 1, POUND
- db 10, TRANSFORM
- db 20, MEGA_PUNCH
- db 30, METRONOME
- db 40, PSYCHIC_M
- db 50, ANCIENTPOWER
- db 0 ; no more level-up moves
-
-ChikoritaEvosAttacks:
- db EVOLVE_LEVEL, 16, BAYLEEF
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 8, RAZOR_LEAF
- db 12, REFLECT
- db 15, POISONPOWDER
- db 22, SYNTHESIS
- db 29, BODY_SLAM
- db 36, LIGHT_SCREEN
- db 43, SAFEGUARD
- db 50, SOLARBEAM
- db 0 ; no more level-up moves
-
-BayleefEvosAttacks:
- db EVOLVE_LEVEL, 32, MEGANIUM
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, RAZOR_LEAF
- db 1, REFLECT
- db 8, RAZOR_LEAF
- db 12, REFLECT
- db 15, POISONPOWDER
- db 23, SYNTHESIS
- db 31, BODY_SLAM
- db 39, LIGHT_SCREEN
- db 47, SAFEGUARD
- db 55, SOLARBEAM
- db 0 ; no more level-up moves
-
-MeganiumEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, RAZOR_LEAF
- db 1, REFLECT
- db 8, RAZOR_LEAF
- db 12, REFLECT
- db 15, POISONPOWDER
- db 23, SYNTHESIS
- db 31, BODY_SLAM
- db 41, LIGHT_SCREEN
- db 51, SAFEGUARD
- db 61, SOLARBEAM
- db 0 ; no more level-up moves
-
-CyndaquilEvosAttacks:
- db EVOLVE_LEVEL, 14, QUILAVA
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, LEER
- db 6, SMOKESCREEN
- db 12, EMBER
- db 19, QUICK_ATTACK
- db 27, FLAME_WHEEL
- db 36, SWIFT
- db 46, FLAMETHROWER
- db 0 ; no more level-up moves
-
-QuilavaEvosAttacks:
- db EVOLVE_LEVEL, 36, TYPHLOSION
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, LEER
- db 1, SMOKESCREEN
- db 6, SMOKESCREEN
- db 12, EMBER
- db 21, QUICK_ATTACK
- db 31, FLAME_WHEEL
- db 42, SWIFT
- db 54, FLAMETHROWER
- db 0 ; no more level-up moves
-
-TyphlosionEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, LEER
- db 1, SMOKESCREEN
- db 1, EMBER
- db 6, SMOKESCREEN
- db 12, EMBER
- db 21, QUICK_ATTACK
- db 31, FLAME_WHEEL
- db 45, SWIFT
- db 60, FLAMETHROWER
- db 0 ; no more level-up moves
-
-TotodileEvosAttacks:
- db EVOLVE_LEVEL, 18, CROCONAW
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 7, RAGE
- db 13, WATER_GUN
- db 20, BITE
- db 27, SCARY_FACE
- db 35, SLASH
- db 43, SCREECH
- db 52, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-CroconawEvosAttacks:
- db EVOLVE_LEVEL, 30, FERALIGATR
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 1, RAGE
- db 7, RAGE
- db 13, WATER_GUN
- db 21, BITE
- db 28, SCARY_FACE
- db 37, SLASH
- db 45, SCREECH
- db 55, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-FeraligatrEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 1, RAGE
- db 1, WATER_GUN
- db 7, RAGE
- db 13, WATER_GUN
- db 21, BITE
- db 28, SCARY_FACE
- db 38, SLASH
- db 47, SCREECH
- db 58, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-SentretEvosAttacks:
- db EVOLVE_LEVEL, 15, FURRET
- db 0 ; no more evolutions
- db 1, TACKLE
- db 5, DEFENSE_CURL
- db 11, QUICK_ATTACK
- db 17, FURY_SWIPES
- db 25, SLAM
- db 33, REST
- db 41, AMNESIA
- db 0 ; no more level-up moves
-
-FurretEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, DEFENSE_CURL
- db 1, QUICK_ATTACK
- db 5, DEFENSE_CURL
- db 11, QUICK_ATTACK
- db 18, FURY_SWIPES
- db 28, SLAM
- db 38, REST
- db 48, AMNESIA
- db 0 ; no more level-up moves
-
-HoothootEvosAttacks:
- db EVOLVE_LEVEL, 20, NOCTOWL
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 6, FORESIGHT
- db 11, PECK
- db 16, HYPNOSIS
- db 22, REFLECT
- db 28, TAKE_DOWN
- db 34, CONFUSION
- db 48, DREAM_EATER
- db 0 ; no more level-up moves
-
-NoctowlEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, FORESIGHT
- db 1, PECK
- db 6, FORESIGHT
- db 11, PECK
- db 16, HYPNOSIS
- db 25, REFLECT
- db 33, TAKE_DOWN
- db 41, CONFUSION
- db 57, DREAM_EATER
- db 0 ; no more level-up moves
-
-LedybaEvosAttacks:
- db EVOLVE_LEVEL, 18, LEDIAN
- db 0 ; no more evolutions
- db 1, TACKLE
- db 8, SUPERSONIC
- db 15, COMET_PUNCH
- db 22, LIGHT_SCREEN
- db 22, REFLECT
- db 22, SAFEGUARD
- db 29, BATON_PASS
- db 36, SWIFT
- db 43, AGILITY
- db 50, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-LedianEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SUPERSONIC
- db 8, SUPERSONIC
- db 15, COMET_PUNCH
- db 24, LIGHT_SCREEN
- db 24, REFLECT
- db 24, SAFEGUARD
- db 33, BATON_PASS
- db 42, SWIFT
- db 51, AGILITY
- db 60, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-SpinarakEvosAttacks:
- db EVOLVE_LEVEL, 22, ARIADOS
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 1, STRING_SHOT
- db 6, SCARY_FACE
- db 11, CONSTRICT
- db 17, NIGHT_SHADE
- 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
-
-AriadosEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 1, STRING_SHOT
- db 1, SCARY_FACE
- db 1, CONSTRICT
- db 6, SCARY_FACE
- db 11, CONSTRICT
- db 17, NIGHT_SHADE
- 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
-
-CrobatEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCREECH
- db 1, LEECH_LIFE
- db 1, SUPERSONIC
- db 6, SUPERSONIC
- db 12, BITE
- db 19, CONFUSE_RAY
- db 30, WING_ATTACK
- db 42, MEAN_LOOK
- db 55, HAZE
- db 0 ; no more level-up moves
-
-ChinchouEvosAttacks:
- db EVOLVE_LEVEL, 27, LANTURN
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, THUNDER_WAVE
- db 5, SUPERSONIC
- db 13, FLAIL
- db 17, WATER_GUN
- db 25, SPARK
- db 29, CONFUSE_RAY
- db 37, TAKE_DOWN
- db 41, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-LanturnEvosAttacks:
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, THUNDER_WAVE
- db 1, SUPERSONIC
- db 5, SUPERSONIC
- db 13, FLAIL
- db 17, WATER_GUN
- db 25, SPARK
- db 33, CONFUSE_RAY
- db 45, TAKE_DOWN
- db 53, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-PichuEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, PIKACHU
- db 0 ; no more evolutions
- db 1, THUNDERSHOCK
- db 1, CHARM
- db 6, TAIL_WHIP
- db 8, THUNDER_WAVE
- db 11, SWEET_KISS
- db 0 ; no more level-up moves
-
-CleffaEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, CLEFAIRY
- db 0 ; no more evolutions
- db 1, POUND
- db 1, CHARM
- db 4, ENCORE
- db 8, SING
- db 13, SWEET_KISS
- db 0 ; no more level-up moves
-
-IgglybuffEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, JIGGLYPUFF
- db 0 ; no more evolutions
- db 1, SING
- db 1, CHARM
- db 4, DEFENSE_CURL
- db 9, POUND
- db 14, SWEET_KISS
- db 0 ; no more level-up moves
-
-TogepiEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, TOGETIC
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, CHARM
- db 7, METRONOME
- db 18, SWEET_KISS
- db 25, ENCORE
- db 31, SAFEGUARD
- db 38, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-TogeticEvosAttacks:
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, CHARM
- db 7, METRONOME
- db 18, SWEET_KISS
- db 25, ENCORE
- db 31, SAFEGUARD
- db 38, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-NatuEvosAttacks:
- db EVOLVE_LEVEL, 25, XATU
- db 0 ; no more evolutions
- db 1, PECK
- db 1, LEER
- db 10, NIGHT_SHADE
- db 20, TELEPORT
- db 30, FUTURE_SIGHT
- db 40, CONFUSE_RAY
- db 50, PSYCHIC_M
- db 0 ; no more level-up moves
-
-XatuEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, LEER
- db 1, NIGHT_SHADE
- db 10, NIGHT_SHADE
- db 20, TELEPORT
- db 35, FUTURE_SIGHT
- db 50, CONFUSE_RAY
- db 65, PSYCHIC_M
- db 0 ; no more level-up moves
-
-MareepEvosAttacks:
- db EVOLVE_LEVEL, 15, FLAAFFY
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 9, THUNDERSHOCK
- db 16, THUNDER_WAVE
- db 23, COTTON_SPORE
- db 30, LIGHT_SCREEN
- db 37, THUNDER
- db 0 ; no more level-up moves
-
-FlaaffyEvosAttacks:
- db EVOLVE_LEVEL, 30, AMPHAROS
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, THUNDERSHOCK
- db 9, THUNDERSHOCK
- db 18, THUNDER_WAVE
- db 27, COTTON_SPORE
- db 36, LIGHT_SCREEN
- db 45, THUNDER
- db 0 ; no more level-up moves
-
-AmpharosEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, THUNDERSHOCK
- db 1, THUNDER_WAVE
- db 9, THUNDERSHOCK
- db 18, THUNDER_WAVE
- db 27, COTTON_SPORE
- db 30, THUNDERPUNCH
- db 42, LIGHT_SCREEN
- db 57, THUNDER
- db 0 ; no more level-up moves
-
-BellossomEvosAttacks:
- db 0 ; no more evolutions
- db 1, ABSORB
- db 1, SWEET_SCENT
- db 1, STUN_SPORE
- db 1, PETAL_DANCE
- db 55, SOLARBEAM
- db 0 ; no more level-up moves
-
-MarillEvosAttacks:
- db EVOLVE_LEVEL, 18, AZUMARILL
- db 0 ; no more evolutions
- db 1, TACKLE
- db 3, DEFENSE_CURL
- db 6, TAIL_WHIP
- db 10, WATER_GUN
- db 15, ROLLOUT
- db 21, BUBBLEBEAM
- db 28, DOUBLE_EDGE
- db 36, RAIN_DANCE
- db 0 ; no more level-up moves
-
-AzumarillEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DEFENSE_CURL
- db 1, TAIL_WHIP
- db 1, WATER_GUN
- db 3, DEFENSE_CURL
- db 6, TAIL_WHIP
- db 10, WATER_GUN
- db 15, ROLLOUT
- db 25, BUBBLEBEAM
- db 36, DOUBLE_EDGE
- db 48, RAIN_DANCE
- db 0 ; no more level-up moves
-
-SudowoodoEvosAttacks:
- db 0 ; no more evolutions
- db 1, ROCK_THROW
- db 1, MIMIC
- db 10, FLAIL
- db 19, LOW_KICK
- db 28, ROCK_SLIDE
- db 37, FAINT_ATTACK
- db 46, SLAM
- db 0 ; no more level-up moves
-
-PolitoedEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, HYPNOSIS
- db 1, DOUBLESLAP
- db 1, PERISH_SONG
- db 35, PERISH_SONG
- db 51, SWAGGER
- db 0 ; no more level-up moves
-
-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
- db 15, STUN_SPORE
- db 17, SLEEP_POWDER
- db 20, LEECH_SEED
- db 25, COTTON_SPORE
- db 30, MEGA_DRAIN
- db 0 ; no more level-up moves
-
-SkiploomEvosAttacks:
- db EVOLVE_LEVEL, 27, JUMPLUFF
- db 0 ; no more evolutions
- db 1, SPLASH
- 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
- db 15, STUN_SPORE
- db 17, SLEEP_POWDER
- db 22, LEECH_SEED
- db 29, COTTON_SPORE
- db 36, MEGA_DRAIN
- db 0 ; no more level-up moves
-
-JumpluffEvosAttacks:
- db 0 ; no more evolutions
- db 1, SPLASH
- 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
- db 15, STUN_SPORE
- db 17, SLEEP_POWDER
- db 22, LEECH_SEED
- db 33, COTTON_SPORE
- db 44, MEGA_DRAIN
- db 0 ; no more level-up moves
-
-AipomEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, TAIL_WHIP
- db 6, SAND_ATTACK
- db 12, BATON_PASS
- db 19, FURY_SWIPES
- db 27, SWIFT
- db 36, SCREECH
- db 46, AGILITY
- db 0 ; no more level-up moves
-
-SunkernEvosAttacks:
- db EVOLVE_ITEM, SUN_STONE, SUNFLORA
- db 0 ; no more evolutions
- db 1, ABSORB
- db 4, GROWTH
- db 10, MEGA_DRAIN
- db 19, SUNNY_DAY
- db 31, SYNTHESIS
- db 46, GIGA_DRAIN
- db 0 ; no more level-up moves
-
-SunfloraEvosAttacks:
- db 0 ; no more evolutions
- db 1, ABSORB
- db 1, POUND
- db 4, GROWTH
- db 10, RAZOR_LEAF
- db 19, SUNNY_DAY
- db 31, PETAL_DANCE
- db 46, SOLARBEAM
- db 0 ; no more level-up moves
-
-YanmaEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, FORESIGHT
- db 7, QUICK_ATTACK
- db 13, DOUBLE_TEAM
- 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
-
-WooperEvosAttacks:
- db EVOLVE_LEVEL, 20, QUAGSIRE
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, TAIL_WHIP
- db 11, SLAM
- db 21, AMNESIA
- db 31, EARTHQUAKE
- db 41, RAIN_DANCE
- db 51, MIST
- db 51, HAZE
- db 0 ; no more level-up moves
-
-QuagsireEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, TAIL_WHIP
- db 11, SLAM
- db 23, AMNESIA
- db 35, EARTHQUAKE
- db 47, RAIN_DANCE
- db 59, MIST
- db 59, HAZE
- db 0 ; no more level-up moves
-
-EspeonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, CONFUSION
- db 23, QUICK_ATTACK
- db 30, SWIFT
- db 36, PSYBEAM
- db 42, PSYCH_UP
- db 47, PSYCHIC_M
- db 52, MORNING_SUN
- db 0 ; no more level-up moves
-
-UmbreonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, PURSUIT
- db 23, QUICK_ATTACK
- db 30, CONFUSE_RAY
- db 36, FAINT_ATTACK
- db 42, MEAN_LOOK
- db 47, SCREECH
- db 52, MOONLIGHT
- db 0 ; no more level-up moves
-
-MurkrowEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 11, PURSUIT
- db 16, HAZE
- db 26, NIGHT_SHADE
- db 31, FAINT_ATTACK
- db 41, MEAN_LOOK
- db 0 ; no more level-up moves
-
-SlowkingEvosAttacks:
- db 0 ; no more evolutions
- db 1, CURSE
- db 1, TACKLE
- db 6, GROWL
- db 15, WATER_GUN
- db 20, CONFUSION
- db 29, DISABLE
- db 34, HEADBUTT
- db 43, SWAGGER
- db 48, PSYCHIC_M
- db 0 ; no more level-up moves
-
-MisdreavusEvosAttacks:
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, PSYWAVE
- db 6, SPITE
- db 12, CONFUSE_RAY
- db 19, MEAN_LOOK
- db 27, PSYBEAM
- db 36, PAIN_SPLIT
- db 46, PERISH_SONG
- db 0 ; no more level-up moves
-
-UnownEvosAttacks:
- db 0 ; no more evolutions
- db 1, HIDDEN_POWER
- db 0 ; no more level-up moves
-
-WobbuffetEvosAttacks:
- db 0 ; no more evolutions
- db 1, COUNTER
- db 1, MIRROR_COAT
- db 1, SAFEGUARD
- db 1, DESTINY_BOND
- db 0 ; no more level-up moves
-
-GirafarigEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, CONFUSION
- db 1, STOMP
- db 7, CONFUSION
- db 13, STOMP
- db 20, AGILITY
- db 30, BATON_PASS
- db 41, PSYBEAM
- db 54, CRUNCH
- db 0 ; no more level-up moves
-
-PinecoEvosAttacks:
- db EVOLVE_LEVEL, 31, FORRETRESS
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, PROTECT
- db 8, SELFDESTRUCT
- db 15, TAKE_DOWN
- db 22, RAPID_SPIN
- db 29, BIDE
- db 36, EXPLOSION
- db 43, SPIKES
- db 50, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-ForretressEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, PROTECT
- db 1, SELFDESTRUCT
- db 8, SELFDESTRUCT
- db 15, TAKE_DOWN
- db 22, RAPID_SPIN
- db 29, BIDE
- db 39, EXPLOSION
- db 49, SPIKES
- db 59, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-DunsparceEvosAttacks:
- db 0 ; no more evolutions
- db 1, RAGE
- db 5, DEFENSE_CURL
- db 13, GLARE
- db 18, SPITE
- db 26, PURSUIT
- db 30, SCREECH
- db 38, TAKE_DOWN
- db 0 ; no more level-up moves
-
-GligarEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 6, SAND_ATTACK
- db 13, HARDEN
- db 20, QUICK_ATTACK
- db 28, FAINT_ATTACK
- db 36, SLASH
- db 44, SCREECH
- db 52, GUILLOTINE
- db 0 ; no more level-up moves
-
-SteelixEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCREECH
- db 10, BIND
- db 14, ROCK_THROW
- db 23, HARDEN
- db 27, RAGE
- db 36, SANDSTORM
- db 40, SLAM
- db 49, CRUNCH
- db 0 ; no more level-up moves
-
-SnubbullEvosAttacks:
- db EVOLVE_LEVEL, 23, GRANBULL
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCARY_FACE
- db 4, TAIL_WHIP
- db 8, CHARM
- db 13, BITE
- db 19, LICK
- db 26, ROAR
- db 34, RAGE
- db 43, TAKE_DOWN
- db 0 ; no more level-up moves
-
-GranbullEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCARY_FACE
- db 4, TAIL_WHIP
- db 8, CHARM
- db 13, BITE
- db 19, LICK
- db 28, ROAR
- db 38, RAGE
- db 51, TAKE_DOWN
- db 0 ; no more level-up moves
-
-QwilfishEvosAttacks:
- db 0 ; no more evolutions
-if _CRYSTAL
- db 1, SPIKES
-endc
- db 1, TACKLE
- db 1, POISON_STING
- db 10, HARDEN
- db 10, MINIMIZE
- db 19, WATER_GUN
- db 28, PIN_MISSILE
- db 37, TAKE_DOWN
- db 46, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-ScizorEvosAttacks:
- db 0 ; no more evolutions
- db 1, QUICK_ATTACK
- db 1, LEER
- db 6, FOCUS_ENERGY
- db 12, PURSUIT
- db 18, FALSE_SWIPE
- db 24, AGILITY
- db 30, METAL_CLAW
- db 36, SLASH
- db 42, SWORDS_DANCE
- db 48, DOUBLE_TEAM
- db 0 ; no more level-up moves
-
-ShuckleEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONSTRICT
- db 1, WITHDRAW
- db 9, WRAP
- db 14, ENCORE
- db 23, SAFEGUARD
- db 28, BIDE
- db 37, REST
- db 0 ; no more level-up moves
-
-HeracrossEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, LEER
- db 6, HORN_ATTACK
- db 12, ENDURE
- db 19, FURY_ATTACK
- db 27, COUNTER
- db 35, TAKE_DOWN
- db 44, REVERSAL
- db 54, MEGAHORN
- db 0 ; no more level-up moves
-
-SneaselEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 9, QUICK_ATTACK
- db 17, SCREECH
- db 25, FAINT_ATTACK
- db 33, FURY_SWIPES
- 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:
- db EVOLVE_LEVEL, 30, URSARING
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 8, LICK
- db 15, FURY_SWIPES
- db 22, FAINT_ATTACK
- db 29, REST
- db 36, SLASH
- db 43, SNORE
- db 50, THRASH
- db 0 ; no more level-up moves
-
-UrsaringEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 1, LICK
- db 1, FURY_SWIPES
- db 8, LICK
- db 15, FURY_SWIPES
- db 22, FAINT_ATTACK
- db 29, REST
- db 39, SLASH
- db 49, SNORE
- db 59, THRASH
- db 0 ; no more level-up moves
-
-SlugmaEvosAttacks:
- db EVOLVE_LEVEL, 38, MAGCARGO
- db 0 ; no more evolutions
- db 1, SMOG
- db 8, EMBER
- db 15, ROCK_THROW
- db 22, HARDEN
- db 29, AMNESIA
- db 36, FLAMETHROWER
- db 43, ROCK_SLIDE
- db 50, BODY_SLAM
- db 0 ; no more level-up moves
-
-MagcargoEvosAttacks:
- db 0 ; no more evolutions
- db 1, SMOG
- db 1, EMBER
- db 1, ROCK_THROW
- db 8, EMBER
- db 15, ROCK_THROW
- db 22, HARDEN
- db 29, AMNESIA
- db 36, FLAMETHROWER
- db 48, ROCK_SLIDE
- db 60, BODY_SLAM
- db 0 ; no more level-up moves
-
-SwinubEvosAttacks:
- db EVOLVE_LEVEL, 33, PILOSWINE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 10, POWDER_SNOW
- db 19, ENDURE
- db 28, TAKE_DOWN
- db 37, MIST
- db 46, BLIZZARD
-if _CRYSTAL
- db 55, AMNESIA
-endc
- db 0 ; no more level-up moves
-
-PiloswineEvosAttacks:
- db 0 ; no more evolutions
- db 1, HORN_ATTACK
- db 1, POWDER_SNOW
- db 1, ENDURE
- db 10, POWDER_SNOW
- db 19, ENDURE
- db 28, TAKE_DOWN
- db 33, FURY_ATTACK
- db 42, MIST
- db 56, BLIZZARD
-if _CRYSTAL
- db 70, AMNESIA
-endc
- db 0 ; no more level-up moves
-
-CorsolaEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 7, HARDEN
- db 13, BUBBLE
- db 19, RECOVER
- db 25, BUBBLEBEAM
- db 31, SPIKE_CANNON
- db 37, MIRROR_COAT
- db 43, ANCIENTPOWER
- db 0 ; no more level-up moves
-
-RemoraidEvosAttacks:
- db EVOLVE_LEVEL, 25, OCTILLERY
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 11, LOCK_ON
- db 22, PSYBEAM
- db 22, AURORA_BEAM
- db 22, BUBBLEBEAM
- db 33, FOCUS_ENERGY
- db 44, ICE_BEAM
- db 55, HYPER_BEAM
- db 0 ; no more level-up moves
-
-OctilleryEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 11, CONSTRICT
- db 22, PSYBEAM
- db 22, AURORA_BEAM
- db 22, BUBBLEBEAM
- db 25, OCTAZOOKA
- db 38, FOCUS_ENERGY
- db 54, ICE_BEAM
- db 70, HYPER_BEAM
- db 0 ; no more level-up moves
-
-DelibirdEvosAttacks:
- db 0 ; no more evolutions
- db 1, PRESENT
- db 0 ; no more level-up moves
-
-MantineEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, BUBBLE
- db 10, SUPERSONIC
- db 18, BUBBLEBEAM
- db 25, TAKE_DOWN
- db 32, AGILITY
- db 40, WING_ATTACK
- db 49, CONFUSE_RAY
- db 0 ; no more level-up moves
-
-SkarmoryEvosAttacks:
- db 0 ; no more evolutions
- db 1, LEER
- db 1, PECK
- db 13, SAND_ATTACK
- db 19, SWIFT
- db 25, AGILITY
- db 37, FURY_ATTACK
- db 49, STEEL_WING
- db 0 ; no more level-up moves
-
-HoundourEvosAttacks:
- db EVOLVE_LEVEL, 24, HOUNDOOM
- db 0 ; no more evolutions
- db 1, LEER
- db 1, EMBER
- db 7, ROAR
- db 13, SMOG
- db 20, BITE
- db 27, FAINT_ATTACK
- db 35, FLAMETHROWER
- db 43, CRUNCH
- db 0 ; no more level-up moves
-
-HoundoomEvosAttacks:
- db 0 ; no more evolutions
- db 1, LEER
- db 1, EMBER
- db 7, ROAR
- db 13, SMOG
- db 20, BITE
- db 30, FAINT_ATTACK
- db 41, FLAMETHROWER
- db 52, CRUNCH
- db 0 ; no more level-up moves
-
-KingdraEvosAttacks:
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, SMOKESCREEN
- db 1, LEER
- db 1, WATER_GUN
- db 8, SMOKESCREEN
- db 15, LEER
- db 22, WATER_GUN
- db 29, TWISTER
- db 40, AGILITY
- db 51, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-PhanpyEvosAttacks:
- db EVOLVE_LEVEL, 25, DONPHAN
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 9, DEFENSE_CURL
- db 17, FLAIL
- db 25, TAKE_DOWN
- db 33, ROLLOUT
- db 41, ENDURE
- db 49, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-DonphanEvosAttacks:
- db 0 ; no more evolutions
- db 1, HORN_ATTACK
- db 1, GROWL
- db 9, DEFENSE_CURL
- db 17, FLAIL
- db 25, FURY_ATTACK
- db 33, ROLLOUT
- db 41, RAPID_SPIN
- db 49, EARTHQUAKE
- db 0 ; no more level-up moves
-
-Porygon2EvosAttacks:
- db 0 ; no more evolutions
- db 1, CONVERSION2
- db 1, TACKLE
- db 1, CONVERSION
- db 9, AGILITY
- db 12, PSYBEAM
- db 20, RECOVER
- db 24, DEFENSE_CURL
- db 32, LOCK_ON
- db 36, TRI_ATTACK
- db 44, ZAP_CANNON
- db 0 ; no more level-up moves
-
-StantlerEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 8, LEER
- db 15, HYPNOSIS
- db 23, STOMP
- db 31, SAND_ATTACK
- db 40, TAKE_DOWN
- db 49, CONFUSE_RAY
- db 0 ; no more level-up moves
-
-SmeargleEvosAttacks:
- db 0 ; no more evolutions
- db 1, SKETCH
- db 11, SKETCH
- db 21, SKETCH
- db 31, SKETCH
- db 41, SKETCH
- db 51, SKETCH
- db 61, SKETCH
- db 71, SKETCH
- db 81, SKETCH
- db 91, SKETCH
- db 0 ; no more level-up moves
-
-TyrogueEvosAttacks:
- db EVOLVE_STAT, 20, ATK_LT_DEF, HITMONCHAN
- db EVOLVE_STAT, 20, ATK_GT_DEF, HITMONLEE
- db EVOLVE_STAT, 20, ATK_EQ_DEF, HITMONTOP
- db 0 ; no more evolutions
- db 1, TACKLE
- db 0 ; no more level-up moves
-
-HitmontopEvosAttacks:
- db 0 ; no more evolutions
- db 1, ROLLING_KICK
- db 7, FOCUS_ENERGY
- db 13, PURSUIT
- db 19, QUICK_ATTACK
- db 25, RAPID_SPIN
- db 31, COUNTER
- db 37, AGILITY
- db 43, DETECT
- db 49, TRIPLE_KICK
- db 0 ; no more level-up moves
-
-SmoochumEvosAttacks:
- db EVOLVE_LEVEL, 30, JYNX
- db 0 ; no more evolutions
- db 1, POUND
- db 1, LICK
- db 9, SWEET_KISS
- db 13, POWDER_SNOW
- db 21, CONFUSION
- db 25, SING
- db 33, MEAN_LOOK
- db 37, PSYCHIC_M
- db 45, PERISH_SONG
- db 49, BLIZZARD
- db 0 ; no more level-up moves
-
-ElekidEvosAttacks:
- db EVOLVE_LEVEL, 30, ELECTABUZZ
- db 0 ; no more evolutions
- db 1, QUICK_ATTACK
- db 1, LEER
- db 9, THUNDERPUNCH
- db 17, LIGHT_SCREEN
- db 25, SWIFT
- db 33, SCREECH
- db 41, THUNDERBOLT
- db 49, THUNDER
- db 0 ; no more level-up moves
-
-MagbyEvosAttacks:
- db EVOLVE_LEVEL, 30, MAGMAR
- db 0 ; no more evolutions
- db 1, EMBER
- db 7, LEER
- db 13, SMOG
- db 19, FIRE_PUNCH
- db 25, SMOKESCREEN
- db 31, SUNNY_DAY
- db 37, FLAMETHROWER
- db 43, CONFUSE_RAY
- db 49, FIRE_BLAST
- db 0 ; no more level-up moves
-
-MiltankEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, GROWL
- db 8, DEFENSE_CURL
- db 13, STOMP
- db 19, MILK_DRINK
- db 26, BIDE
- db 34, ROLLOUT
- db 43, BODY_SLAM
- db 53, HEAL_BELL
- db 0 ; no more level-up moves
-
-BlisseyEvosAttacks:
- db 0 ; no more evolutions
- db 1, POUND
- db 4, GROWL
- db 7, TAIL_WHIP
- db 10, SOFTBOILED
- db 13, DOUBLESLAP
- db 18, MINIMIZE
- db 23, SING
- db 28, EGG_BOMB
- db 33, DEFENSE_CURL
- db 40, LIGHT_SCREEN
- db 47, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-RaikouEvosAttacks:
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 11, THUNDERSHOCK
- db 21, ROAR
- db 31, QUICK_ATTACK
- db 41, SPARK
- db 51, REFLECT
- db 61, CRUNCH
- db 71, THUNDER
- db 0 ; no more level-up moves
-
-EnteiEvosAttacks:
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 11, EMBER
- db 21, ROAR
- db 31, FIRE_SPIN
- db 41, STOMP
- db 51, FLAMETHROWER
- db 61, SWAGGER
- db 71, FIRE_BLAST
- db 0 ; no more level-up moves
-
-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
- db 0 ; no more level-up moves
-
-LarvitarEvosAttacks:
- db EVOLVE_LEVEL, 30, PUPITAR
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 8, SANDSTORM
- db 15, SCREECH
- db 22, ROCK_SLIDE
- db 29, THRASH
- db 36, SCARY_FACE
- db 43, CRUNCH
- db 50, EARTHQUAKE
- db 57, HYPER_BEAM
- db 0 ; no more level-up moves
-
-PupitarEvosAttacks:
- db EVOLVE_LEVEL, 55, TYRANITAR
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 1, SANDSTORM
- db 1, SCREECH
- db 8, SANDSTORM
- db 15, SCREECH
- db 22, ROCK_SLIDE
- db 29, THRASH
- db 38, SCARY_FACE
- db 47, CRUNCH
- db 56, EARTHQUAKE
- db 65, HYPER_BEAM
- db 0 ; no more level-up moves
-
-TyranitarEvosAttacks:
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 1, SANDSTORM
- db 1, SCREECH
- db 8, SANDSTORM
- db 15, SCREECH
- db 22, ROCK_SLIDE
- db 29, THRASH
- db 38, SCARY_FACE
- db 47, CRUNCH
- db 61, EARTHQUAKE
- db 75, HYPER_BEAM
- db 0 ; no more level-up moves
-
-LugiaEvosAttacks:
- db 0 ; no more evolutions
- db 1, AEROBLAST
- db 11, SAFEGUARD
- db 22, GUST
- db 33, RECOVER
- db 44, HYDRO_PUMP
- db 55, RAIN_DANCE
- db 66, SWIFT
- db 77, WHIRLWIND
- db 88, ANCIENTPOWER
- db 99, FUTURE_SIGHT
- db 0 ; no more level-up moves
-
-HoOhEvosAttacks:
- db 0 ; no more evolutions
- db 1, SACRED_FIRE
- db 11, SAFEGUARD
- db 22, GUST
- db 33, RECOVER
- db 44, FIRE_BLAST
- db 55, SUNNY_DAY
- db 66, SWIFT
- db 77, WHIRLWIND
- db 88, ANCIENTPOWER
- db 99, FUTURE_SIGHT
- db 0 ; no more level-up moves
-
-CelebiEvosAttacks:
- db 0 ; no more evolutions
- db 1, LEECH_SEED
- db 1, CONFUSION
- db 1, RECOVER
- db 1, HEAL_BELL
- db 10, SAFEGUARD
- db 20, ANCIENTPOWER
- db 30, FUTURE_SIGHT
- db 40, BATON_PASS
- db 50, PERISH_SONG
- db 0 ; no more level-up moves
--- a/data/evos_attacks_pointers.asm
+++ /dev/null
@@ -1,255 +1,0 @@
-; Evolutions and attacks are grouped together since they're both checked at level-up.
-
-EvosAttacksPointers:: ; 0x425b1
- dw BulbasaurEvosAttacks
- dw IvysaurEvosAttacks
- dw VenusaurEvosAttacks
- dw CharmanderEvosAttacks
- dw CharmeleonEvosAttacks
- dw CharizardEvosAttacks
- dw SquirtleEvosAttacks
- dw WartortleEvosAttacks
- dw BlastoiseEvosAttacks
- dw CaterpieEvosAttacks
- dw MetapodEvosAttacks
- dw ButterfreeEvosAttacks
- dw WeedleEvosAttacks
- dw KakunaEvosAttacks
- dw BeedrillEvosAttacks
- dw PidgeyEvosAttacks
- dw PidgeottoEvosAttacks
- dw PidgeotEvosAttacks
- dw RattataEvosAttacks
- dw RaticateEvosAttacks
- dw SpearowEvosAttacks
- dw FearowEvosAttacks
- dw EkansEvosAttacks
- dw ArbokEvosAttacks
- dw PikachuEvosAttacks
- dw RaichuEvosAttacks
- dw SandshrewEvosAttacks
- dw SandslashEvosAttacks
- dw NidoranFEvosAttacks
- dw NidorinaEvosAttacks
- dw NidoqueenEvosAttacks
- dw NidoranMEvosAttacks
- dw NidorinoEvosAttacks
- dw NidokingEvosAttacks
- dw ClefairyEvosAttacks
- dw ClefableEvosAttacks
- dw VulpixEvosAttacks
- dw NinetalesEvosAttacks
- dw JigglypuffEvosAttacks
- dw WigglytuffEvosAttacks
- dw ZubatEvosAttacks
- dw GolbatEvosAttacks
- dw OddishEvosAttacks
- dw GloomEvosAttacks
- dw VileplumeEvosAttacks
- dw ParasEvosAttacks
- dw ParasectEvosAttacks
- dw VenonatEvosAttacks
- dw VenomothEvosAttacks
- dw DiglettEvosAttacks
- dw DugtrioEvosAttacks
- dw MeowthEvosAttacks
- dw PersianEvosAttacks
- dw PsyduckEvosAttacks
- dw GolduckEvosAttacks
- dw MankeyEvosAttacks
- dw PrimeapeEvosAttacks
- dw GrowlitheEvosAttacks
- dw ArcanineEvosAttacks
- dw PoliwagEvosAttacks
- dw PoliwhirlEvosAttacks
- dw PoliwrathEvosAttacks
- dw AbraEvosAttacks
- dw KadabraEvosAttacks
- dw AlakazamEvosAttacks
- dw MachopEvosAttacks
- dw MachokeEvosAttacks
- dw MachampEvosAttacks
- dw BellsproutEvosAttacks
- dw WeepinbellEvosAttacks
- dw VictreebelEvosAttacks
- dw TentacoolEvosAttacks
- dw TentacruelEvosAttacks
- dw GeodudeEvosAttacks
- dw GravelerEvosAttacks
- dw GolemEvosAttacks
- dw PonytaEvosAttacks
- dw RapidashEvosAttacks
- dw SlowpokeEvosAttacks
- dw SlowbroEvosAttacks
- dw MagnemiteEvosAttacks
- dw MagnetonEvosAttacks
- dw FarfetchDEvosAttacks
- dw DoduoEvosAttacks
- dw DodrioEvosAttacks
- dw SeelEvosAttacks
- dw DewgongEvosAttacks
- dw GrimerEvosAttacks
- dw MukEvosAttacks
- dw ShellderEvosAttacks
- dw CloysterEvosAttacks
- dw GastlyEvosAttacks
- dw HaunterEvosAttacks
- dw GengarEvosAttacks
- dw OnixEvosAttacks
- dw DrowzeeEvosAttacks
- dw HypnoEvosAttacks
- dw KrabbyEvosAttacks
- dw KinglerEvosAttacks
- dw VoltorbEvosAttacks
- dw ElectrodeEvosAttacks
- dw ExeggcuteEvosAttacks
- dw ExeggutorEvosAttacks
- dw CuboneEvosAttacks
- dw MarowakEvosAttacks
- dw HitmonleeEvosAttacks
- dw HitmonchanEvosAttacks
- dw LickitungEvosAttacks
- dw KoffingEvosAttacks
- dw WeezingEvosAttacks
- dw RhyhornEvosAttacks
- dw RhydonEvosAttacks
- dw ChanseyEvosAttacks
- dw TangelaEvosAttacks
- dw KangaskhanEvosAttacks
- dw HorseaEvosAttacks
- dw SeadraEvosAttacks
- dw GoldeenEvosAttacks
- dw SeakingEvosAttacks
- dw StaryuEvosAttacks
- dw StarmieEvosAttacks
- dw MrMimeEvosAttacks
- dw ScytherEvosAttacks
- dw JynxEvosAttacks
- dw ElectabuzzEvosAttacks
- dw MagmarEvosAttacks
- dw PinsirEvosAttacks
- dw TaurosEvosAttacks
- dw MagikarpEvosAttacks
- dw GyaradosEvosAttacks
- dw LaprasEvosAttacks
- dw DittoEvosAttacks
- dw EeveeEvosAttacks
- dw VaporeonEvosAttacks
- dw JolteonEvosAttacks
- dw FlareonEvosAttacks
- dw PorygonEvosAttacks
- dw OmanyteEvosAttacks
- dw OmastarEvosAttacks
- dw KabutoEvosAttacks
- dw KabutopsEvosAttacks
- dw AerodactylEvosAttacks
- dw SnorlaxEvosAttacks
- dw ArticunoEvosAttacks
- dw ZapdosEvosAttacks
- dw MoltresEvosAttacks
- dw DratiniEvosAttacks
- dw DragonairEvosAttacks
- dw DragoniteEvosAttacks
- dw MewtwoEvosAttacks
- dw MewEvosAttacks
- dw ChikoritaEvosAttacks
- dw BayleefEvosAttacks
- dw MeganiumEvosAttacks
- dw CyndaquilEvosAttacks
- dw QuilavaEvosAttacks
- dw TyphlosionEvosAttacks
- dw TotodileEvosAttacks
- dw CroconawEvosAttacks
- dw FeraligatrEvosAttacks
- dw SentretEvosAttacks
- dw FurretEvosAttacks
- dw HoothootEvosAttacks
- dw NoctowlEvosAttacks
- dw LedybaEvosAttacks
- dw LedianEvosAttacks
- dw SpinarakEvosAttacks
- dw AriadosEvosAttacks
- dw CrobatEvosAttacks
- dw ChinchouEvosAttacks
- dw LanturnEvosAttacks
- dw PichuEvosAttacks
- dw CleffaEvosAttacks
- dw IgglybuffEvosAttacks
- dw TogepiEvosAttacks
- dw TogeticEvosAttacks
- dw NatuEvosAttacks
- dw XatuEvosAttacks
- dw MareepEvosAttacks
- dw FlaaffyEvosAttacks
- dw AmpharosEvosAttacks
- dw BellossomEvosAttacks
- dw MarillEvosAttacks
- dw AzumarillEvosAttacks
- dw SudowoodoEvosAttacks
- dw PolitoedEvosAttacks
- dw HoppipEvosAttacks
- dw SkiploomEvosAttacks
- dw JumpluffEvosAttacks
- dw AipomEvosAttacks
- dw SunkernEvosAttacks
- dw SunfloraEvosAttacks
- dw YanmaEvosAttacks
- dw WooperEvosAttacks
- dw QuagsireEvosAttacks
- dw EspeonEvosAttacks
- dw UmbreonEvosAttacks
- dw MurkrowEvosAttacks
- dw SlowkingEvosAttacks
- dw MisdreavusEvosAttacks
- dw UnownEvosAttacks
- dw WobbuffetEvosAttacks
- dw GirafarigEvosAttacks
- dw PinecoEvosAttacks
- dw ForretressEvosAttacks
- dw DunsparceEvosAttacks
- dw GligarEvosAttacks
- dw SteelixEvosAttacks
- dw SnubbullEvosAttacks
- dw GranbullEvosAttacks
- dw QwilfishEvosAttacks
- dw ScizorEvosAttacks
- dw ShuckleEvosAttacks
- dw HeracrossEvosAttacks
- dw SneaselEvosAttacks
- dw TeddiursaEvosAttacks
- dw UrsaringEvosAttacks
- dw SlugmaEvosAttacks
- dw MagcargoEvosAttacks
- dw SwinubEvosAttacks
- dw PiloswineEvosAttacks
- dw CorsolaEvosAttacks
- dw RemoraidEvosAttacks
- dw OctilleryEvosAttacks
- dw DelibirdEvosAttacks
- dw MantineEvosAttacks
- dw SkarmoryEvosAttacks
- dw HoundourEvosAttacks
- dw HoundoomEvosAttacks
- dw KingdraEvosAttacks
- dw PhanpyEvosAttacks
- dw DonphanEvosAttacks
- dw Porygon2EvosAttacks
- dw StantlerEvosAttacks
- dw SmeargleEvosAttacks
- dw TyrogueEvosAttacks
- dw HitmontopEvosAttacks
- dw SmoochumEvosAttacks
- dw ElekidEvosAttacks
- dw MagbyEvosAttacks
- dw MiltankEvosAttacks
- dw BlisseyEvosAttacks
- dw RaikouEvosAttacks
- dw EnteiEvosAttacks
- dw SuicuneEvosAttacks
- dw LarvitarEvosAttacks
- dw PupitarEvosAttacks
- dw TyranitarEvosAttacks
- dw LugiaEvosAttacks
- dw HoOhEvosAttacks
- dw CelebiEvosAttacks
-; 0x427a7
--- /dev/null
+++ b/data/flypoints.asm
@@ -1,0 +1,38 @@
+flypoint: MACRO
+ const FLY_\1
+ db \2, SPAWN_\1
+ENDM
+
+Flypoints: ; 91c5e
+; landmark, spawn point
+ const_def
+; Johto
+ flypoint NEW_BARK, NEW_BARK_TOWN
+ flypoint CHERRYGROVE, CHERRYGROVE_CITY
+ flypoint VIOLET, VIOLET_CITY
+ flypoint AZALEA, AZALEA_TOWN
+ flypoint GOLDENROD, GOLDENROD_CITY
+ flypoint ECRUTEAK, ECRUTEAK_CITY
+ flypoint OLIVINE, OLIVINE_CITY
+ flypoint CIANWOOD, CIANWOOD_CITY
+ flypoint MAHOGANY, MAHOGANY_TOWN
+ flypoint LAKE, LAKE_OF_RAGE
+ flypoint BLACKTHORN, BLACKTHORN_CITY
+ flypoint MT_SILVER, SILVER_CAVE
+
+; Kanto
+KANTO_FLYPOINT EQU const_value
+ flypoint PALLET, PALLET_TOWN
+ flypoint VIRIDIAN, VIRIDIAN_CITY
+ flypoint PEWTER, PEWTER_CITY
+ flypoint CERULEAN, CERULEAN_CITY
+ flypoint VERMILION, VERMILION_CITY
+ flypoint ROCK_TUNNEL, ROCK_TUNNEL
+ flypoint LAVENDER, LAVENDER_TOWN
+ flypoint CELADON, CELADON_CITY
+ flypoint SAFFRON, SAFFRON_CITY
+ flypoint FUCHSIA, FUCHSIA_CITY
+ flypoint CINNABAR, CINNABAR_ISLAND
+ flypoint INDIGO, INDIGO_PLATEAU
+ db -1
+; 91c8f
--- a/data/fruit_tree_items.asm
+++ /dev/null
@@ -1,33 +1,0 @@
-FruitTreeItems: ; 44097
-; entries correspond to FRUITTREE_* constants
- db BERRY ; ROUTE_29
- db BERRY ; ROUTE_30_1
- db BERRY ; ROUTE_38
- db BERRY ; ROUTE_46_1
- db PSNCUREBERRY ; ROUTE_30_2
- db PSNCUREBERRY ; ROUTE_33
- db BITTER_BERRY ; ROUTE_31
- db BITTER_BERRY ; ROUTE_43
- db PRZCUREBERRY ; VIOLET_CITY
- db PRZCUREBERRY ; ROUTE_46_2
- db MYSTERYBERRY ; ROUTE_35
- db MYSTERYBERRY ; ROUTE_45
- db ICE_BERRY ; ROUTE_36
- db ICE_BERRY ; ROUTE_26
- db MINT_BERRY ; ROUTE_39
- db BURNT_BERRY ; ROUTE_44
- db RED_APRICORN ; ROUTE_37_1
- db BLU_APRICORN ; ROUTE_37_2
- db BLK_APRICORN ; ROUTE_37_3
- db WHT_APRICORN ; AZALEA_TOWN
- db PNK_APRICORN ; ROUTE_42_1
- db GRN_APRICORN ; ROUTE_42_2
- db YLW_APRICORN ; ROUTE_42_3
- db BERRY ; ROUTE_11
- db PSNCUREBERRY ; ROUTE_2
- db BITTER_BERRY ; ROUTE_1
- db PRZCUREBERRY ; ROUTE_8
- db ICE_BERRY ; PEWTER_CITY_1
- db MINT_BERRY ; PEWTER_CITY_2
- db BURNT_BERRY ; FUCHSIA_CITY
-; 440b5
--- a/data/hm_moves.asm
+++ /dev/null
@@ -1,12 +1,0 @@
-; HM moves can't be forgotten
-
-HMMoves: ; 34f0
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
- db WATERFALL
- db WHIRLPOOL
- db -1 ; end
-; 34f8
--- /dev/null
+++ b/data/items/bargain_shop.asm
@@ -1,0 +1,9 @@
+BargainShopData: ; 15c51
+ db 5
+ dbw NUGGET, 4500
+ dbw PEARL, 650
+ dbw BIG_PEARL, 3500
+ dbw STARDUST, 900
+ dbw STAR_PIECE, 4600
+ db -1
+; 15c62
--- /dev/null
+++ b/data/items/buena_prizes.asm
@@ -1,0 +1,13 @@
+BuenaPrizeItems: ; 8b15e
+; there are NUM_BUENA_PRIZES items (see event/buena.asm)
+ db ULTRA_BALL, 2
+ db FULL_RESTORE, 2
+ db NUGGET, 3
+ db RARE_CANDY, 3
+ db PROTEIN, 5
+ db IRON, 5
+ db CARBOS, 5
+ db CALCIUM, 5
+ db HP_UP, 5
+BuenaPrizeItemsEnd:
+; 8b170
--- /dev/null
+++ b/data/items/fruit_trees.asm
@@ -1,0 +1,33 @@
+FruitTreeItems: ; 44097
+; entries correspond to FRUITTREE_* constants
+ db BERRY ; ROUTE_29
+ db BERRY ; ROUTE_30_1
+ db BERRY ; ROUTE_38
+ db BERRY ; ROUTE_46_1
+ db PSNCUREBERRY ; ROUTE_30_2
+ db PSNCUREBERRY ; ROUTE_33
+ db BITTER_BERRY ; ROUTE_31
+ db BITTER_BERRY ; ROUTE_43
+ db PRZCUREBERRY ; VIOLET_CITY
+ db PRZCUREBERRY ; ROUTE_46_2
+ db MYSTERYBERRY ; ROUTE_35
+ db MYSTERYBERRY ; ROUTE_45
+ db ICE_BERRY ; ROUTE_36
+ db ICE_BERRY ; ROUTE_26
+ db MINT_BERRY ; ROUTE_39
+ db BURNT_BERRY ; ROUTE_44
+ db RED_APRICORN ; ROUTE_37_1
+ db BLU_APRICORN ; ROUTE_37_2
+ db BLK_APRICORN ; ROUTE_37_3
+ db WHT_APRICORN ; AZALEA_TOWN
+ db PNK_APRICORN ; ROUTE_42_1
+ db GRN_APRICORN ; ROUTE_42_2
+ db YLW_APRICORN ; ROUTE_42_3
+ db BERRY ; ROUTE_11
+ db PSNCUREBERRY ; ROUTE_2
+ db BITTER_BERRY ; ROUTE_1
+ db PRZCUREBERRY ; ROUTE_8
+ db ICE_BERRY ; PEWTER_CITY_1
+ db MINT_BERRY ; PEWTER_CITY_2
+ db BURNT_BERRY ; FUCHSIA_CITY
+; 440b5
--- /dev/null
+++ b/data/items/item_attributes.asm
@@ -1,0 +1,521 @@
+item_attribute: MACRO
+; price, held effect, parameter, property, pocket, field menu, battle menu
+ dw \1
+ db \2, \3, \4, \5
+ dn \6, \7
+ENDM
+
+ItemAttributes: ; 67c1
+; entries correspond to constants/item_constants.asm
+; MASTER BALL
+ item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; ULTRA BALL
+ item_attribute 1200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; BRIGHTPOWDER
+ item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; GREAT BALL
+ item_attribute 600, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; # BALL
+ item_attribute 200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BICYCLE
+ item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; MOON STONE
+ item_attribute 0, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; ANTIDOTE
+ item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; BURN HEAL
+ item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ICE HEAL
+ item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; AWAKENING
+ item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; PARLYZ HEAL
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; FULL RESTORE
+ item_attribute 3000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX POTION
+ item_attribute 2500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HYPER POTION
+ item_attribute 1200, 0, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SUPER POTION
+ item_attribute 700, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; POTION
+ item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ESCAPE ROPE
+ item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; REPEL
+ item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; MAX ELIXER
+ item_attribute 4500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; FIRE STONE
+ item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; THUNDERSTONE
+ item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; WATER STONE
+ item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; HP UP
+ item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; PROTEIN
+ item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; IRON
+ item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; CARBOS
+ item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; LUCKY PUNCH
+ item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CALCIUM
+ item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; RARE CANDY
+ item_attribute 4800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; X ACCURACY
+ item_attribute 950, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LEAF STONE
+ item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; METAL POWDER
+ item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; NUGGET
+ item_attribute 10000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; # DOLL
+ item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FULL HEAL
+ item_attribute 600, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; REVIVE
+ item_attribute 1500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX REVIVE
+ item_attribute 4000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GUARD SPEC.
+ item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; SUPER REPEL
+ item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; MAX REPEL
+ item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; DIRE HIT
+ item_attribute 650, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FRESH WATER
+ item_attribute 200, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SODA POP
+ item_attribute 300, 0, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; LEMONADE
+ item_attribute 350, 0, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; X ATTACK
+ item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; X DEFEND
+ item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; X SPEED
+ item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; X SPECIAL
+ item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; COIN CASE
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; ITEMFINDER
+ item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EXP.SHARE
+ item_attribute 3000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; OLD ROD
+ item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; GOOD ROD
+ item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; SILVER LEAF
+ item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SUPER ROD
+ item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; PP UP
+ item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; ETHER
+ item_attribute 1200, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX ETHER
+ item_attribute 2000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ELIXER
+ item_attribute 3000, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; RED SCALE
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SECRETPOTION
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; S.S.TICKET
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MYSTERY EGG
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CLEAR BELL
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SILVER WING
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MOOMOO MILK
+ item_attribute 500, 0, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; QUICK CLAW
+ item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PSNCUREBERRY
+ item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GOLD LEAF
+ item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SOFT SAND
+ item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SHARP BEAK
+ item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PRZCUREBERRY
+ item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; BURNT BERRY
+ item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ICE BERRY
+ item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; POISON BARB
+ item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; KING'S ROCK
+ item_attribute 100, HELD_TRADE_EVOLVE, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BITTER BERRY
+ item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY
+; MINT BERRY
+ item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; RED APRICORN
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TINYMUSHROOM
+ item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BIG MUSHROOM
+ item_attribute 5000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SILVERPOWDER
+ item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLU APRICORN
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; AMULET COIN
+ item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; YLW APRICORN
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; GRN APRICORN
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CLEANSE TAG
+ item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MYSTIC WATER
+ item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TWISTEDSPOON
+ item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; WHT APRICORN
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLACKBELT
+ item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLK APRICORN
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PNK APRICORN
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLACKGLASSES
+ item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SLOWPOKETAIL
+ item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PINK BOW
+ item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; STICK
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SMOKE BALL
+ item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; NEVERMELTICE
+ item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MAGNET
+ item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MIRACLEBERRY
+ item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; PEARL
+ item_attribute 1400, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BIG PEARL
+ item_attribute 7500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EVERSTONE
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SPELL TAG
+ item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; RAGECANDYBAR
+ item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GS BALL
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLUE CARD
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; MIRACLE SEED
+ item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; THICK CLUB
+ item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FOCUS BAND
+ item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ENERGYPOWDER
+ item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ENERGY ROOT
+ item_attribute 800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HEAL POWDER
+ item_attribute 450, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; REVIVAL HERB
+ item_attribute 2800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HARD STONE
+ item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LUCKY EGG
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CARD KEY
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; MACHINE PART
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EGG TICKET
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LOST ITEM
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; STARDUST
+ item_attribute 2000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; STAR PIECE
+ item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BASEMENT KEY
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; PASS
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CHARCOAL
+ item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BERRY JUICE
+ item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SCOPE LENS
+ item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; METAL COAT
+ item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; DRAGON FANG
+ item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LEFTOVERS
+ item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MYSTERYBERRY
+ item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; DRAGON SCALE
+ item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BERSERK GENE
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SACRED ASH
+ item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; HEAVY BALL
+ item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FLOWER MAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LEVEL BALL
+ item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LURE BALL
+ item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FAST BALL
+ item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LIGHT BALL
+ item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FRIEND BALL
+ item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; MOON BALL
+ item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LOVE BALL
+ item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; NORMAL BOX
+ item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; GORGEOUS BOX
+ item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; SUN STONE
+ item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; POLKADOT BOW
+ item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; UP-GRADE
+ item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BERRY
+ item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GOLD BERRY
+ item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SQUIRTBOTTLE
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PARK BALL
+ item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; RAINBOW WING
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BRICK PIECE
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SURF MAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LITEBLUEMAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PORTRAITMAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LOVELY MAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EON MAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MORPH MAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLUESKY MAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MUSIC MAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MIRAGE MAIL
+ item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TM01
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM02
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM03
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM04
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TM05
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM06
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM07
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM08
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM09
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM10
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM11
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM12
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM13
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM14
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM15
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM16
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM17
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM18
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM19
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM20
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM21
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM22
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM23
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM24
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM25
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM26
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM27
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM28
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TM29
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM30
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM31
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM32
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM33
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM34
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM35
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM36
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM37
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM38
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM39
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM40
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM41
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM42
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM43
+ item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM44
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM45
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM46
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM47
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM48
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM49
+ item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM50
+ item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM01
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM02
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM03
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM04
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM05
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM06
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM07
+ item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ?
+ item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
--- /dev/null
+++ b/data/items/item_descriptions.asm
@@ -1,0 +1,1042 @@
+PrintItemDescription: ; 0x1c8955
+; Print the description for item [CurSpecies] at de.
+
+ ld a, [CurSpecies]
+ cp TM01
+ jr c, .not_a_tm
+
+ ld [CurItem], a
+ push de
+ callba GetTMHMItemMove
+ pop hl
+ ld a, [wd265]
+ ld [CurSpecies], a
+ predef PrintMoveDesc
+ ret
+
+.not_a_tm
+ push de
+ ld hl, ItemDescriptions
+ ld a, [CurSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop hl
+ jp PlaceString
+; 0x1c8987
+
+
+ItemDescriptions:
+ dw MasterBallDesc
+ dw UltraBallDesc
+ dw BrightpowderDesc
+ dw GreatBallDesc
+ dw PokeBallDesc
+ dw TeruSama1Desc
+ dw BicycleDesc
+ dw MoonStoneDesc
+ dw AntidoteDesc
+ dw BurnHealDesc
+ dw IceHealDesc
+ dw AwakeningDesc
+ dw ParlyzHealDesc
+ dw FullRestoreDesc
+ dw MaxPotionDesc
+ dw HyperPotionDesc
+ dw SuperPotionDesc
+ dw PotionDesc
+ dw EscapeRopeDesc
+ dw RepelDesc
+ dw MaxElixerDesc
+ dw FireStoneDesc
+ dw ThunderStoneDesc
+ dw WaterStoneDesc
+ dw TeruSama2Desc
+ dw HPUpDesc
+ dw ProteinDesc
+ dw IronDesc
+ dw CarbosDesc
+ dw LuckyPunchDesc
+ dw CalciumDesc
+ dw RareCandyDesc
+ dw XAccuracyDesc
+ dw LeafStoneDesc
+ dw MetalPowderDesc
+ dw NuggetDesc
+ dw PokeDollDesc
+ dw FullHealDesc
+ dw ReviveDesc
+ dw MaxReviveDesc
+ dw GuardSpecDesc
+ dw SuperRepelDesc
+ dw MaxRepelDesc
+ dw DireHitDesc
+ dw TeruSama3Desc
+ dw FreshWaterDesc
+ dw SodaPopDesc
+ dw LemonadeDesc
+ dw XAttackDesc
+ dw TeruSama4Desc
+ dw XDefendDesc
+ dw XSpeedDesc
+ dw XSpecialDesc
+ dw CoinCaseDesc
+ dw ItemfinderDesc
+ dw TeruSama5Desc
+ dw ExpShareDesc
+ dw OldRodDesc
+ dw GoodRodDesc
+ dw SilverLeafDesc
+ dw SuperRodDesc
+ dw PPUpDesc
+ dw EtherDesc
+ dw MaxEtherDesc
+ dw ElixerDesc
+ dw RedScaleDesc
+ dw SecretPotionDesc
+ dw SSTicketDesc
+ dw MysteryEggDesc
+ dw ClearBellDesc
+ dw SilverWingDesc
+ dw MoomooMilkDesc
+ dw QuickClawDesc
+ dw PsnCureBerryDesc
+ dw GoldLeafDesc
+ dw SoftSandDesc
+ dw SharpBeakDesc
+ dw PrzCureBerryDesc
+ dw BurntBerryDesc
+ dw IceBerryDesc
+ dw PoisonBarbDesc
+ dw KingsRockDesc
+ dw BitterBerryDesc
+ dw MintBerryDesc
+ dw RedApricornDesc
+ dw TinyMushroomDesc
+ dw BigMushroomDesc
+ dw SilverPowderDesc
+ dw BluApricornDesc
+ dw TeruSama6Desc
+ dw AmuletCoinDesc
+ dw YlwApricornDesc
+ dw GrnApricornDesc
+ dw CleanseTagDesc
+ dw MysticWaterDesc
+ dw TwistedSpoonDesc
+ dw WhtApricornDesc
+ dw BlackbeltDesc
+ dw BlkApricornDesc
+ dw TeruSama7Desc
+ dw PnkApricornDesc
+ dw BlackGlassesDesc
+ dw SlowpokeTailDesc
+ dw PinkBowDesc
+ dw StickDesc
+ dw SmokeBallDesc
+ dw NeverMeltIceDesc
+ dw MagnetDesc
+ dw MiracleBerryDesc
+ dw PearlDesc
+ dw BigPearlDesc
+ dw EverStoneDesc
+ dw SpellTagDesc
+ dw RageCandyBarDesc
+ dw GSBallDesc
+ dw BlueCardDesc
+ dw MiracleSeedDesc
+ dw ThickClubDesc
+ dw FocusBandDesc
+ dw TeruSama8Desc
+ dw EnergyPowderDesc
+ dw EnergyRootDesc
+ dw HealPowderDesc
+ dw RevivalHerbDesc
+ dw HardStoneDesc
+ dw LuckyEggDesc
+ dw CardKeyDesc
+ dw MachinePartDesc
+ dw EggTicketDesc
+ dw LostItemDesc
+ dw StardustDesc
+ dw StarPieceDesc
+ dw BasementKeyDesc
+ dw PassDesc
+ dw TeruSama9Desc
+ dw TeruSama10Desc
+ dw TeruSama11Desc
+ dw CharcoalDesc
+ dw BerryJuiceDesc
+ dw ScopeLensDesc
+ dw TeruSama12Desc
+ dw TeruSama13Desc
+ dw MetalCoatDesc
+ dw DragonFangDesc
+ dw TeruSama14Desc
+ dw LeftoversDesc
+ dw TeruSama15Desc
+ dw TeruSama16Desc
+ dw TeruSama17Desc
+ dw MysteryBerryDesc
+ dw DragonScaleDesc
+ dw BerserkGeneDesc
+ dw TeruSama18Desc
+ dw TeruSama19Desc
+ dw TeruSama20Desc
+ dw SacredAshDesc
+ dw HeavyBallDesc
+ dw FlowerMailDesc
+ dw LevelBallDesc
+ dw LureBallDesc
+ dw FastBallDesc
+ dw TeruSama21Desc
+ dw LightBallDesc
+ dw FriendBallDesc
+ dw MoonBallDesc
+ dw LoveBallDesc
+ dw NormalBoxDesc
+ dw GorgeousBoxDesc
+ dw SunStoneDesc
+ dw PolkadotBowDesc
+ dw TeruSama22Desc
+ dw UpGradeDesc
+ dw BerryDesc
+ dw GoldBerryDesc
+ dw SquirtBottleDesc
+ dw TeruSama23Desc
+ dw ParkBallDesc
+ dw RainbowWingDesc
+ dw TeruSama24Desc
+ dw BrickPieceDesc
+ dw SurfMailDesc
+ dw LiteBlueMailDesc
+ dw PortraitMailDesc
+ dw LovelyMailDesc
+ dw EonMailDesc
+ dw MorphMailDesc
+ dw BlueSkyMailDesc
+ dw MusicMailDesc
+ dw MewMailDesc
+ dw TeruSama25Desc
+ dw TeruSama26Desc
+ dw TeruSama26Desc
+ dw TeruSama26Desc
+ dw TeruSama26Desc
+ dw TeruSama26Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama27Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama28Desc
+ dw TeruSama29Desc
+ dw TeruSama30Desc
+ dw TeruSama31Desc
+ dw TeruSama32Desc
+ dw TeruSama33Desc
+
+MasterBallDesc:
+ db "The best BALL. It"
+ next "never misses.@"
+
+UltraBallDesc:
+ db "A BALL with a high"
+ next "rate of success.@"
+
+BrightpowderDesc:
+ db "Lowers the foe's"
+ next "accuracy. (HOLD)@"
+
+GreatBallDesc:
+ db "A BALL with a de-"
+ next "cent success rate.@"
+
+PokeBallDesc:
+ db "An item for catch-"
+ next "ing #MON.@"
+
+TeruSama1Desc:
+ db "?@"
+
+BicycleDesc:
+ db "A collapsible bike"
+ next "for fast movement.@"
+
+MoonStoneDesc:
+ db "Evolves certain"
+ next "kinds of #MON.@"
+
+AntidoteDesc:
+ db "Cures poisoned"
+ next "#MON.@"
+
+BurnHealDesc:
+ db "Heals burned"
+ next "#MON.@"
+
+IceHealDesc:
+ db "Defrosts frozen"
+ next "#MON.@"
+
+AwakeningDesc:
+ db "Awakens sleeping"
+ next "#MON.@"
+
+ParlyzHealDesc:
+ db "Heals paralyzed"
+ next "#MON.@"
+
+FullRestoreDesc:
+ db "Fully restores HP"
+ next "& status.@"
+
+MaxPotionDesc:
+ db "Fully restores"
+ next "#MON HP.@"
+
+HyperPotionDesc:
+ db "Restores #MON"
+ next "HP by 200.@"
+
+SuperPotionDesc:
+ db "Restores #MON"
+ next "HP by 50.@"
+
+PotionDesc:
+ db "Restores #MON"
+ next "HP by 20.@"
+
+EscapeRopeDesc:
+ db "Use for escaping"
+ next "from caves, etc.@"
+
+RepelDesc:
+ db "Repels weak #-"
+ next "MON for 100 steps.@"
+
+MaxElixerDesc:
+ db "Fully restores the"
+ next "PP of one #MON.@"
+
+FireStoneDesc:
+ db "Evolves certain"
+ next "kinds of #MON.@"
+
+ThunderStoneDesc:
+ db "Evolves certain"
+ next "kinds of #MON.@"
+
+WaterStoneDesc:
+ db "Evolves certain"
+ next "kinds of #MON.@"
+
+TeruSama2Desc:
+ db "?@"
+
+HPUpDesc:
+ db "Raises the HP of"
+ next "one #MON.@"
+
+ProteinDesc:
+ db "Raises ATTACK of"
+ next "one #MON.@"
+
+IronDesc:
+ db "Raises DEFENSE of"
+ next "one #MON.@"
+
+CarbosDesc:
+ db "Raises SPEED of"
+ next "one #MON.@"
+
+LuckyPunchDesc:
+ db "Ups critical hit"
+ next "ratio of CHANSEY.@"
+
+CalciumDesc:
+ db "Ups SPECIAL stats"
+ next "of one #MON.@"
+
+RareCandyDesc:
+ db "Raises level of a"
+ next "#MON by one.@"
+
+XAccuracyDesc:
+ db "Raises accuracy."
+ next "(1 BTL)@"
+
+LeafStoneDesc:
+ db "Evolves certain"
+ next "kinds of #MON.@"
+
+MetalPowderDesc:
+ db "Raises DEFENSE of"
+ next "DITTO. (HOLD)@"
+
+NuggetDesc:
+ db "Made of pure gold."
+ next "Sell high.@"
+
+PokeDollDesc:
+ db "Use to escape from"
+ next "a wild #MON.@"
+
+FullHealDesc:
+ db "Eliminates all"
+ next "status problems.@"
+
+ReviveDesc:
+ db "Restores a fainted"
+ next "#MON to 1/2 HP.@"
+
+MaxReviveDesc:
+ db "Fully restores a"
+ next "fainted #MON.@"
+
+GuardSpecDesc:
+ db "Prevents stats"
+ next "reduction. (1 BTL)@"
+
+SuperRepelDesc:
+ db "Repels weak #-"
+ next "MON for 200 steps.@"
+
+MaxRepelDesc:
+ db "Repels weak #-"
+ next "MON for 250 steps.@"
+
+DireHitDesc:
+ db "Ups critical hit"
+ next "ratio. (1 BTL)@"
+
+TeruSama3Desc:
+ db "?@"
+
+FreshWaterDesc:
+ db "Restores #MON"
+ next "HP by 50.@"
+
+SodaPopDesc:
+ db "Restores #MON"
+ next "HP by 60.@"
+
+LemonadeDesc:
+ db "Restores #MON"
+ next "HP by 80.@"
+
+XAttackDesc:
+ db "Raises ATTACK."
+ next "(1 BTL)@"
+
+TeruSama4Desc:
+ db "?@"
+
+XDefendDesc:
+ db "Raises DEFENSE."
+ next "(1 BTL)@"
+
+XSpeedDesc:
+ db "Raises SPEED."
+ next "(1 BTL)@"
+
+XSpecialDesc:
+ db "Raises SPECIAL"
+ next "ATTACK. (1 BTL)@"
+
+CoinCaseDesc:
+ db "Holds up to 9,999"
+ next "game coins.@"
+
+ItemfinderDesc:
+ db "Checks for unseen"
+ next "items in the area.@"
+
+TeruSama5Desc:
+ db "?@"
+
+ExpShareDesc:
+ db "Shares battle EXP."
+ next "Points. (HOLD)@"
+
+OldRodDesc:
+ db "Use by water to"
+ next "fish for #MON.@"
+
+GoodRodDesc:
+ db "A good ROD for"
+ next "catching #MON.@"
+
+SilverLeafDesc:
+ db "A strange, silver-"
+ next "colored leaf.@"
+
+SuperRodDesc:
+ db "The best ROD for"
+ next "catching #MON.@"
+
+PPUpDesc:
+ db "Raises max PP of"
+ next "a selected move.@"
+
+EtherDesc:
+ db "Restores PP of one"
+ next "move by 10.@"
+
+MaxEtherDesc:
+ db "Fully restores PP"
+ next "of one move.@"
+
+ElixerDesc:
+ db "Restores PP of all"
+ next "moves by 10.@"
+
+RedScaleDesc:
+ db "A scale from the"
+ next "red GYARADOS.@"
+
+SecretPotionDesc:
+ db "Fully heals any"
+ next "#MON.@"
+
+SSTicketDesc:
+ db "A ticket for the"
+ next "S.S.AQUA.@"
+
+MysteryEggDesc:
+ db "An EGG obtained"
+ next "from MR.#MON.@"
+
+ClearBellDesc:
+ db "Makes a gentle"
+ next "ringing.@"
+
+SilverWingDesc:
+ db "A strange, silver-"
+ next "colored feather.@"
+
+MoomooMilkDesc:
+ db "Restores #MON"
+ next "HP by 100.@"
+
+QuickClawDesc:
+ db "Raises 1st strike"
+ next "ratio. (HOLD)@"
+
+PsnCureBerryDesc:
+ db "A self-cure for"
+ next "poison. (HOLD)@"
+
+GoldLeafDesc:
+ db "A strange, gold-"
+ next "colored leaf.@"
+
+SoftSandDesc:
+ db "Powers up ground-"
+ next "type moves. (HOLD)@"
+
+SharpBeakDesc:
+ db "Powers up flying-"
+ next "type moves. (HOLD)@"
+
+PrzCureBerryDesc:
+ db "A self-cure for"
+ next "paralysis. (HOLD)@"
+
+BurntBerryDesc:
+ db "A self-cure for"
+ next "freezing. (HOLD)@"
+
+IceBerryDesc:
+ db "A self-heal for a"
+ next "burn. (HOLD)@"
+
+PoisonBarbDesc:
+ db "Powers up poison-"
+ next "type moves. (HOLD)@"
+
+KingsRockDesc:
+ db "May make the foe"
+ next "flinch. (HOLD)@"
+
+BitterBerryDesc:
+ db "A self-cure for"
+ next "confusion. (HOLD)@"
+
+MintBerryDesc:
+ db "A self-awakening"
+ next "for sleep. (HOLD)@"
+
+RedApricornDesc:
+ db "A red APRICORN.@"
+
+TinyMushroomDesc:
+ db "An ordinary mush-"
+ next "room. Sell low.@"
+
+BigMushroomDesc:
+ db "A rare mushroom."
+ next "Sell high.@"
+
+SilverPowderDesc:
+ db "Powers up bug-type"
+ next "moves. (HOLD)@"
+
+BluApricornDesc:
+ db "A blue APRICORN.@"
+
+TeruSama6Desc:
+ db "?@"
+
+AmuletCoinDesc:
+ db "Doubles monetary"
+ next "earnings. (HOLD)@"
+
+YlwApricornDesc:
+ db "A yellow APRICORN.@"
+
+GrnApricornDesc:
+ db "A green APRICORN.@"
+
+CleanseTagDesc:
+ db "Helps repel wild"
+ next "#MON. (HOLD)@"
+
+MysticWaterDesc:
+ db "Powers up water-"
+ next "type moves. (HOLD)@"
+
+TwistedSpoonDesc:
+ db "Powers up psychic-"
+ next "type moves. (HOLD)@"
+
+WhtApricornDesc:
+ db "A white APRICORN.@"
+
+BlackbeltDesc:
+ db "Boosts fighting-"
+ next "type moves. (HOLD)@"
+
+BlkApricornDesc:
+ db "A black APRICORN."
+ next "@"
+
+TeruSama7Desc:
+ db "?@"
+
+PnkApricornDesc:
+ db "A pink APRICORN."
+ next "@"
+
+BlackGlassesDesc:
+ db "Powers up dark-"
+ next "type moves. (HOLD)@"
+
+SlowpokeTailDesc:
+ db "Very tasty. Sell"
+ next "high.@"
+
+PinkBowDesc:
+ db "Powers up normal-"
+ next "type moves. (HOLD)@"
+
+StickDesc:
+ db "An ordinary stick."
+ next "Sell low.@"
+
+SmokeBallDesc:
+ db "Escape from wild"
+ next "#MON. (HOLD)@"
+
+NeverMeltIceDesc:
+ db "Powers up ice-type"
+ next "moves. (HOLD)@"
+
+MagnetDesc:
+ db "Boosts electric-"
+ next "type moves. (HOLD)@"
+
+MiracleBerryDesc:
+ db "Cures all status"
+ next "problems. (HOLD)@"
+
+PearlDesc:
+ db "A beautiful pearl."
+ next "Sell low.@"
+
+BigPearlDesc:
+ db "A big, beautiful"
+ next "pearl. Sell high.@"
+
+EverStoneDesc:
+ db "Stops evolution."
+ next "(HOLD)@"
+
+SpellTagDesc:
+ db "Powers up ghost-"
+ next "type moves. (HOLD)@"
+
+RageCandyBarDesc:
+ db "Restores #MON"
+ next "HP by 20.@"
+
+GSBallDesc:
+ db "The mysterious"
+ next "BALL.@"
+
+BlueCardDesc:
+ db "Card to save"
+ next "points.@"
+
+MiracleSeedDesc:
+ db "Powers up grass-"
+ next "type moves. (HOLD)@"
+
+ThickClubDesc:
+ db "A bone of some"
+ next "sort. Sell low.@"
+
+FocusBandDesc:
+ db "May prevent faint-"
+ next "ing. (HOLD)@"
+
+TeruSama8Desc:
+ db "?@"
+
+EnergyPowderDesc:
+ db "Restores #MON"
+ next "HP by 50. Bitter.@"
+
+EnergyRootDesc:
+ db "Restores #MON"
+ next "HP by 200. Bitter.@"
+
+HealPowderDesc:
+ db "Cures all status"
+ next "problems. Bitter.@"
+
+RevivalHerbDesc:
+ db "Revives fainted"
+ next "#MON. Bitter.@"
+
+HardStoneDesc:
+ db "Powers up rock-"
+ next "type moves. (HOLD)@"
+
+LuckyEggDesc:
+ db "Earns extra EXP."
+ next "points. (HOLD)@"
+
+CardKeyDesc:
+ db "Opens shutters in"
+ next "the RADIO TOWER.@"
+
+MachinePartDesc:
+ db "A machine part for"
+ next "the POWER PLANT.@"
+
+EggTicketDesc:
+ db "May use at Golden-"
+ next "rod trade corner.@"
+
+LostItemDesc:
+ db "The # DOLL lost"
+ next "by the COPYCAT.@"
+
+StardustDesc:
+ db "Pretty, red sand."
+ next "Sell high.@"
+
+StarPieceDesc:
+ db "A hunk of red gem."
+ next "Sell very high.@"
+
+BasementKeyDesc:
+ db "Opens doors.@"
+
+PassDesc:
+ db "A ticket for the"
+ next "MAGNET TRAIN.@"
+
+TeruSama9Desc:
+ db "?@"
+
+TeruSama10Desc:
+ db "?@"
+
+TeruSama11Desc:
+ db "?@"
+
+CharcoalDesc:
+ db "Powers up fire-"
+ next "type moves. (HOLD)@"
+
+BerryJuiceDesc:
+ db "Restores #MON"
+ next "HP by 20.@"
+
+ScopeLensDesc:
+ db "Raises critical"
+ next "hit ratio. (HOLD)@"
+
+TeruSama12Desc:
+ db "?@"
+
+TeruSama13Desc:
+ db "?@"
+
+MetalCoatDesc:
+ db "Powers up steel-"
+ next "type moves. (HOLD)@"
+
+DragonFangDesc:
+ db "Powers up dragon-"
+ next "type moves. (HOLD)@"
+
+TeruSama14Desc:
+ db "?@"
+
+LeftoversDesc:
+ db "Restores HP during"
+ next "battle. (HOLD)@"
+
+TeruSama15Desc:
+ db "?@"
+
+TeruSama16Desc:
+ db "?@"
+
+TeruSama17Desc:
+ db "?@"
+
+MysteryBerryDesc:
+ db "A self-restore"
+ next "for PP. (HOLD)@"
+
+DragonScaleDesc:
+ db "A rare dragon-type"
+ next "item.@"
+
+BerserkGeneDesc:
+ db "Boosts ATTACK but"
+ next "causes confusion.@"
+
+TeruSama18Desc:
+ db "?@"
+
+TeruSama19Desc:
+ db "?@"
+
+TeruSama20Desc:
+ db "?@"
+
+SacredAshDesc:
+ db "Fully revives all"
+ next "fainted #MON.@"
+
+HeavyBallDesc:
+ db "A BALL for catch-"
+ next "ing heavy #MON.@"
+
+FlowerMailDesc:
+ db "Flower-print MAIL."
+ next "(HOLD)@"
+
+LevelBallDesc:
+ db "A BALL for lower-"
+ next "level #MON.@"
+
+LureBallDesc:
+ db "A BALL for #MON"
+ next "hooked by a ROD.@"
+
+FastBallDesc:
+ db "A BALL for catch-"
+ next "ing fast #MON.@"
+
+TeruSama21Desc:
+ db "?@"
+
+LightBallDesc:
+ db "An odd, electrical"
+ next "orb. (HOLD)@"
+
+FriendBallDesc:
+ db "A BALL that makes"
+ next "#MON friendly.@"
+
+MoonBallDesc:
+ db "A BALL for MOON"
+ next "STONE evolvers.@"
+
+LoveBallDesc:
+ db "For catching the"
+ next "opposite gender.@"
+
+NormalBoxDesc:
+ db "Open it and see"
+ next "what's inside.@"
+
+GorgeousBoxDesc:
+ db "Open it and see"
+ next "what's inside.@"
+
+SunStoneDesc:
+ db "Evolves certain"
+ next "kinds of #MON.@"
+
+PolkadotBowDesc:
+ db "Powers up normal-"
+ next "type moves. (HOLD)@"
+
+TeruSama22Desc:
+ db "?@"
+
+UpGradeDesc:
+ db "A mysterious box"
+ next "made by SILPH CO.@"
+
+BerryDesc:
+ db "A self-restore"
+ next "item. (10HP, HOLD)@"
+
+GoldBerryDesc:
+ db "A self-restore"
+ next "item. (30HP, HOLD)@"
+
+SquirtBottleDesc:
+ db "A bottle used for"
+ next "watering plants.@"
+
+TeruSama23Desc:
+ db "?@"
+
+ParkBallDesc:
+ db "The Bug-Catching"
+ next "Contest BALL.@"
+
+RainbowWingDesc:
+ db "A mystical feather"
+ next "of rainbow colors.@"
+
+TeruSama24Desc:
+ db "?@"
+
+BrickPieceDesc:
+ db "A rare chunk of"
+ next "tile.@"
+
+SurfMailDesc:
+ db "LAPRAS-print MAIL."
+ next "(HOLD)@"
+
+LiteBlueMailDesc:
+ db "DRATINI-print"
+ next "MAIL. (HOLD)@"
+
+PortraitMailDesc:
+ db "MAIL featuring the"
+ next "holder's likeness.@"
+
+LovelyMailDesc:
+ db "Heart-print MAIL."
+ next "(HOLD)@"
+
+EonMailDesc:
+ db "EEVEE-print MAIL."
+ next "(HOLD)@"
+
+MorphMailDesc:
+ db "DITTO-print MAIL."
+ next "(HOLD)@"
+
+BlueSkyMailDesc:
+ db "Sky-print MAIL."
+ next "(HOLD)@"
+
+MusicMailDesc:
+ db "NATU-print MAIL."
+ next "(HOLD)@"
+
+MewMailDesc:
+ db "MEW-print MAIL."
+ next "(HOLD)@"
+
+TeruSama25Desc:
+ db "?@"
+
+TeruSama26Desc:
+ db "?@"
+
+TeruSama27Desc:
+ db "?@"
+
+TeruSama28Desc:
+ db "?@"
+
+TeruSama29Desc:
+ db "?@"
+
+TeruSama30Desc:
+ db "?@"
+
+TeruSama31Desc:
+ db "?@"
+
+TeruSama32Desc:
+ db "?@"
+
+TeruSama33Desc:
+ db "?@"
--- /dev/null
+++ b/data/items/item_names.asm
@@ -1,0 +1,257 @@
+ItemNames::
+ db "MASTER BALL@"
+ db "ULTRA BALL@"
+ db "BRIGHTPOWDER@"
+ db "GREAT BALL@"
+ db "# BALL@"
+ db "TERU-SAMA@"
+ db "BICYCLE@"
+ db "MOON STONE@"
+ db "ANTIDOTE@"
+ db "BURN HEAL@"
+ db "ICE HEAL@"
+ db "AWAKENING@"
+ db "PARLYZ HEAL@"
+ db "FULL RESTORE@"
+ db "MAX POTION@"
+ db "HYPER POTION@"
+ db "SUPER POTION@"
+ db "POTION@"
+ db "ESCAPE ROPE@"
+ db "REPEL@"
+ db "MAX ELIXER@"
+ db "FIRE STONE@"
+ db "THUNDERSTONE@"
+ db "WATER STONE@"
+ db "TERU-SAMA@"
+ db "HP UP@"
+ db "PROTEIN@"
+ db "IRON@"
+ db "CARBOS@"
+ db "LUCKY PUNCH@"
+ db "CALCIUM@"
+ db "RARE CANDY@"
+ db "X ACCURACY@"
+ db "LEAF STONE@"
+ db "METAL POWDER@"
+ db "NUGGET@"
+ db "# DOLL@"
+ db "FULL HEAL@"
+ db "REVIVE@"
+ db "MAX REVIVE@"
+ db "GUARD SPEC.@"
+ db "SUPER REPEL@"
+ db "MAX REPEL@"
+ db "DIRE HIT@"
+ db "TERU-SAMA@"
+ db "FRESH WATER@"
+ db "SODA POP@"
+ db "LEMONADE@"
+ db "X ATTACK@"
+ db "TERU-SAMA@"
+ db "X DEFEND@"
+ db "X SPEED@"
+ db "X SPECIAL@"
+ db "COIN CASE@"
+ db "ITEMFINDER@"
+ db "TERU-SAMA@"
+ db "EXP.SHARE@"
+ db "OLD ROD@"
+ db "GOOD ROD@"
+ db "SILVER LEAF@"
+ db "SUPER ROD@"
+ db "PP UP@"
+ db "ETHER@"
+ db "MAX ETHER@"
+ db "ELIXER@"
+ db "RED SCALE@"
+ db "SECRETPOTION@"
+ db "S.S.TICKET@"
+ db "MYSTERY EGG@"
+ db "CLEAR BELL@"
+ db "SILVER WING@"
+ db "MOOMOO MILK@"
+ db "QUICK CLAW@"
+ db "PSNCUREBERRY@"
+ db "GOLD LEAF@"
+ db "SOFT SAND@"
+ db "SHARP BEAK@"
+ db "PRZCUREBERRY@"
+ db "BURNT BERRY@"
+ db "ICE BERRY@"
+ db "POISON BARB@"
+ db "KING'S ROCK@"
+ db "BITTER BERRY@"
+ db "MINT BERRY@"
+ db "RED APRICORN@"
+ db "TINYMUSHROOM@"
+ db "BIG MUSHROOM@"
+ db "SILVERPOWDER@"
+ db "BLU APRICORN@"
+ db "TERU-SAMA@"
+ db "AMULET COIN@"
+ db "YLW APRICORN@"
+ db "GRN APRICORN@"
+ db "CLEANSE TAG@"
+ db "MYSTIC WATER@"
+ db "TWISTEDSPOON@"
+ db "WHT APRICORN@"
+ db "BLACKBELT@"
+ db "BLK APRICORN@"
+ db "TERU-SAMA@"
+ db "PNK APRICORN@"
+ db "BLACKGLASSES@"
+ db "SLOWPOKETAIL@"
+ db "PINK BOW@"
+ db "STICK@"
+ db "SMOKE BALL@"
+ db "NEVERMELTICE@"
+ db "MAGNET@"
+ db "MIRACLEBERRY@"
+ db "PEARL@"
+ db "BIG PEARL@"
+ db "EVERSTONE@"
+ db "SPELL TAG@"
+ db "RAGECANDYBAR@"
+ db "GS BALL@"
+ db "BLUE CARD@"
+ db "MIRACLE SEED@"
+ db "THICK CLUB@"
+ db "FOCUS BAND@"
+ db "TERU-SAMA@"
+ db "ENERGYPOWDER@"
+ db "ENERGY ROOT@"
+ db "HEAL POWDER@"
+ db "REVIVAL HERB@"
+ db "HARD STONE@"
+ db "LUCKY EGG@"
+ db "CARD KEY@"
+ db "MACHINE PART@"
+ db "EGG TICKET@"
+ db "LOST ITEM@"
+ db "STARDUST@"
+ db "STAR PIECE@"
+ db "BASEMENT KEY@"
+ db "PASS@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "CHARCOAL@"
+ db "BERRY JUICE@"
+ db "SCOPE LENS@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "METAL COAT@"
+ db "DRAGON FANG@"
+ db "TERU-SAMA@"
+ db "LEFTOVERS@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "MYSTERYBERRY@"
+ db "DRAGON SCALE@"
+ db "BERSERK GENE@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "SACRED ASH@"
+ db "HEAVY BALL@"
+ db "FLOWER MAIL@"
+ db "LEVEL BALL@"
+ db "LURE BALL@"
+ db "FAST BALL@"
+ db "TERU-SAMA@"
+ db "LIGHT BALL@"
+ db "FRIEND BALL@"
+ db "MOON BALL@"
+ db "LOVE BALL@"
+ db "NORMAL BOX@"
+ db "GORGEOUS BOX@"
+ db "SUN STONE@"
+ db "POLKADOT BOW@"
+ db "TERU-SAMA@"
+ db "UP-GRADE@"
+ db "BERRY@"
+ db "GOLD BERRY@"
+ db "SQUIRTBOTTLE@"
+ db "TERU-SAMA@"
+ db "PARK BALL@"
+ db "RAINBOW WING@"
+ db "TERU-SAMA@"
+ db "BRICK PIECE@"
+ db "SURF MAIL@"
+ db "LITEBLUEMAIL@"
+ db "PORTRAITMAIL@"
+ db "LOVELY MAIL@"
+ db "EON MAIL@"
+ db "MORPH MAIL@"
+ db "BLUESKY MAIL@"
+ db "MUSIC MAIL@"
+ db "MIRAGE MAIL@"
+ db "TERU-SAMA@"
+ db "TM01@"
+ db "TM02@"
+ db "TM03@"
+ db "TM04@"
+ db "TERU-SAMA@"
+ db "TM05@"
+ db "TM06@"
+ db "TM07@"
+ db "TM08@"
+ db "TM09@"
+ db "TM10@"
+ db "TM11@"
+ db "TM12@"
+ db "TM13@"
+ db "TM14@"
+ db "TM15@"
+ db "TM16@"
+ db "TM17@"
+ db "TM18@"
+ db "TM19@"
+ db "TM20@"
+ db "TM21@"
+ db "TM22@"
+ db "TM23@"
+ db "TM24@"
+ db "TM25@"
+ db "TM26@"
+ db "TM27@"
+ db "TM28@"
+ db "TERU-SAMA@"
+ db "TM29@"
+ db "TM30@"
+ db "TM31@"
+ db "TM32@"
+ db "TM33@"
+ db "TM34@"
+ db "TM35@"
+ db "TM36@"
+ db "TM37@"
+ db "TM38@"
+ db "TM39@"
+ db "TM40@"
+ db "TM41@"
+ db "TM42@"
+ db "TM43@"
+ db "TM44@"
+ db "TM45@"
+ db "TM46@"
+ db "TM47@"
+ db "TM48@"
+ db "TM49@"
+ db "TM50@"
+ db "HM01@"
+ db "HM02@"
+ db "HM03@"
+ db "HM04@"
+ db "HM05@"
+ db "HM06@"
+ db "HM07@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "TERU-SAMA@"
+ db "?@"
--- /dev/null
+++ b/data/items/marts.asm
@@ -1,0 +1,442 @@
+Marts: ; 160a9
+ dw MartCherrygrove
+ dw MartCherrygroveDex
+ dw MartViolet
+ dw MartAzalea
+ dw MartCianwood
+ dw MartGoldenrod2F1
+ dw MartGoldenrod2F2
+ dw MartGoldenrod3F
+ dw MartGoldenrod4F
+ dw MartGoldenrod5F1
+ dw MartGoldenrod5F2
+ dw MartGoldenrod5F3
+ dw MartGoldenrod5F4
+ dw MartOlivine
+ dw MartEcruteak
+ dw MartMahogany1
+ dw MartMahogany2
+ dw MartBlackthorn
+ dw MartViridian
+ dw MartPewter
+ dw MartCerulean
+ dw MartLavender
+ dw MartVermilion
+ dw MartCeladon2F1
+ dw MartCeladon2F2
+ dw MartCeladon3F
+ dw MartCeladon4F
+ dw MartCeladon5F1
+ dw MartCeladon5F2
+ dw MartFuchsia
+ dw MartSaffron
+ dw MartMtMoon
+ dw MartIndigoPlateau
+ dw MartUnderground
+MartsEnd
+; 160ed
+
+
+MartCherrygrove: ; 160ed
+ db 4 ; # items
+ db POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db $ff
+; 160f3
+
+MartCherrygroveDex: ; 160f3
+ db 5 ; # items
+ db POKE_BALL
+ db POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db $ff
+; 160fa
+
+MartViolet: ; 160fa
+ db 10 ; # items
+ db POKE_BALL
+ db POTION
+ db ESCAPE_ROPE
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db X_DEFEND
+ db X_ATTACK
+ db X_SPEED
+ db FLOWER_MAIL
+ db $ff
+; 16106
+
+MartAzalea: ; 16106
+ db 9 ; # items
+ db CHARCOAL
+ db POKE_BALL
+ db POTION
+ db SUPER_POTION
+ db ESCAPE_ROPE
+ db REPEL
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db FLOWER_MAIL
+ db $ff
+; 16111
+
+MartCianwood: ; 16111
+ db 5 ; # items
+ db POTION
+ db SUPER_POTION
+ db HYPER_POTION
+ db FULL_HEAL
+ db REVIVE
+ db $ff
+; 16118
+
+MartGoldenrod2F1: ; 16118
+ db 7 ; # items
+ db POTION
+ db SUPER_POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db BURN_HEAL
+ db ICE_HEAL
+ db $ff
+; 16121
+
+MartGoldenrod2F2: ; 16121
+ db 8 ; # items
+ db POKE_BALL
+ db GREAT_BALL
+ db ESCAPE_ROPE
+ db REPEL
+ db REVIVE
+ db FULL_HEAL
+ db POKE_DOLL
+ db FLOWER_MAIL
+ db $ff
+; 1612b
+
+MartGoldenrod3F: ; 1612b
+ db 7 ; # items
+ db X_SPEED
+ db X_SPECIAL
+ db X_DEFEND
+ db X_ATTACK
+ db DIRE_HIT
+ db GUARD_SPEC
+ db X_ACCURACY
+ db $ff
+; 16134
+
+MartGoldenrod4F: ; 16134
+ db 5 ; # items
+ db PROTEIN
+ db IRON
+ db CARBOS
+ db CALCIUM
+ db HP_UP
+ db $ff
+; 1613b
+
+MartGoldenrod5F1: ; 1613b
+ db 3 ; # items
+ db TM_THUNDERPUNCH
+ db TM_FIRE_PUNCH
+ db TM_ICE_PUNCH
+ db $ff
+; 16140
+
+MartGoldenrod5F2: ; 16140
+ db 4 ; # items
+ db TM_THUNDERPUNCH
+ db TM_FIRE_PUNCH
+ db TM_ICE_PUNCH
+ db TM_HEADBUTT
+ db $ff
+; 16146
+
+MartGoldenrod5F3: ; 16146
+ db 4 ; # items
+ db TM_THUNDERPUNCH
+ db TM_FIRE_PUNCH
+ db TM_ICE_PUNCH
+ db TM_ROCK_SMASH
+ db $ff
+; 1614c
+
+MartGoldenrod5F4: ; 1614c
+ db 5 ; # items
+ db TM_THUNDERPUNCH
+ db TM_FIRE_PUNCH
+ db TM_ICE_PUNCH
+ db TM_HEADBUTT
+ db TM_ROCK_SMASH
+ db $ff
+; 16153
+
+MartOlivine: ; 16153
+ db 9 ; # items
+ db GREAT_BALL
+ db SUPER_POTION
+ db HYPER_POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db ICE_HEAL
+ db SUPER_REPEL
+ db SURF_MAIL
+ db $ff
+; 1615e
+
+MartEcruteak: ; 1615e
+ db 10 ; # items
+ db POKE_BALL
+ db GREAT_BALL
+ db POTION
+ db SUPER_POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db BURN_HEAL
+ db ICE_HEAL
+ db REVIVE
+ db $ff
+; 1616a
+
+MartMahogany1: ; 1616a
+ db 4 ; # items
+ db TINYMUSHROOM
+ db SLOWPOKETAIL
+ db POKE_BALL
+ db POTION
+ db $ff
+; 16170
+
+MartMahogany2: ; 16170
+ db 9 ; # items
+ db RAGECANDYBAR
+ db GREAT_BALL
+ db SUPER_POTION
+ db HYPER_POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db SUPER_REPEL
+ db REVIVE
+ db FLOWER_MAIL
+ db $ff
+; 1617b
+
+MartBlackthorn: ; 1617b
+ db 9 ; # items
+ db GREAT_BALL
+ db ULTRA_BALL
+ db HYPER_POTION
+ db MAX_POTION
+ db FULL_HEAL
+ db REVIVE
+ db MAX_REPEL
+ db X_DEFEND
+ db X_ATTACK
+ db $ff
+; 16186
+
+MartViridian: ; 16186
+ db 9 ; # items
+ db ULTRA_BALL
+ db HYPER_POTION
+ db FULL_HEAL
+ db REVIVE
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db BURN_HEAL
+ db FLOWER_MAIL
+ db $ff
+; 16191
+
+MartPewter: ; 16191
+ db 7 ; # items
+ db GREAT_BALL
+ db SUPER_POTION
+ db SUPER_REPEL
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db BURN_HEAL
+ db $ff
+; 1619a
+
+MartCerulean: ; 1619a
+ db 9 ; # items
+ db GREAT_BALL
+ db ULTRA_BALL
+ db SUPER_POTION
+ db SUPER_REPEL
+ db FULL_HEAL
+ db X_DEFEND
+ db X_ATTACK
+ db DIRE_HIT
+ db SURF_MAIL
+ db $ff
+; 161a5
+
+MartLavender: ; 161a5
+ db 8 ; # items
+ db GREAT_BALL
+ db POTION
+ db SUPER_POTION
+ db MAX_REPEL
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db BURN_HEAL
+ db $ff
+; 161af
+
+MartVermilion: ; 161af
+ db 8 ; # items
+ db ULTRA_BALL
+ db SUPER_POTION
+ db HYPER_POTION
+ db REVIVE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db BURN_HEAL
+ db LITEBLUEMAIL
+ db $ff
+; 161b9
+
+MartCeladon2F1: ; 161b9
+ db 7 ; # items
+ db POTION
+ db SUPER_POTION
+ db HYPER_POTION
+ db MAX_POTION
+ db REVIVE
+ db SUPER_REPEL
+ db MAX_REPEL
+ db $ff
+; 161c2
+
+MartCeladon2F2: ; 161c2
+ db 10 ; # items
+ db POKE_BALL
+ db GREAT_BALL
+ db ULTRA_BALL
+ db ESCAPE_ROPE
+ db FULL_HEAL
+ db ANTIDOTE
+ db BURN_HEAL
+ db ICE_HEAL
+ db AWAKENING
+ db PARLYZ_HEAL
+ db $ff
+; 161ce
+
+MartCeladon3F: ; 161ce
+ db 5 ; # items
+ db TM_HIDDEN_POWER
+ db TM_SUNNY_DAY
+ db TM_PROTECT
+ db TM_RAIN_DANCE
+ db TM_SANDSTORM
+ db $ff
+; 161d5
+
+MartCeladon4F: ; 161d5
+ db 3 ; # items
+ db POKE_DOLL
+ db LOVELY_MAIL
+ db SURF_MAIL
+ db $ff
+; 161da
+
+MartCeladon5F1: ; 161da
+ db 5 ; # items
+ db HP_UP
+ db PROTEIN
+ db IRON
+ db CARBOS
+ db CALCIUM
+ db $ff
+; 161e1
+
+MartCeladon5F2: ; 161e1
+ db 7 ; # items
+ db X_ACCURACY
+ db GUARD_SPEC
+ db DIRE_HIT
+ db X_ATTACK
+ db X_DEFEND
+ db X_SPEED
+ db X_SPECIAL
+ db $ff
+; 161ea
+
+MartFuchsia: ; 161ea
+ db 7 ; # items
+ db GREAT_BALL
+ db ULTRA_BALL
+ db SUPER_POTION
+ db HYPER_POTION
+ db FULL_HEAL
+ db MAX_REPEL
+ db FLOWER_MAIL
+ db $ff
+; 161f3
+
+MartSaffron: ; 161f3
+ db 8 ; # items
+ db GREAT_BALL
+ db ULTRA_BALL
+ db HYPER_POTION
+ db MAX_POTION
+ db FULL_HEAL
+ db X_ATTACK
+ db X_DEFEND
+ db FLOWER_MAIL
+ db $ff
+; 161fd
+
+MartMtMoon: ; 161fd
+ db 6 ; # items
+ db POKE_DOLL
+ db FRESH_WATER
+ db SODA_POP
+ db LEMONADE
+ db REPEL
+ db PORTRAITMAIL
+ db $ff
+; 16205
+
+MartIndigoPlateau: ; 16205
+ db 7 ; # items
+ db ULTRA_BALL
+ db MAX_REPEL
+ db HYPER_POTION
+ db MAX_POTION
+ db FULL_RESTORE
+ db REVIVE
+ db FULL_HEAL
+ db $ff
+; 1620e
+
+MartUnderground: ; 1620e
+ db 4 ; # items
+ db ENERGYPOWDER
+ db ENERGY_ROOT
+ db HEAL_POWDER
+ db REVIVAL_HERB
+ db $ff
+; 16214
+
+DefaultMart: ; 16214
+ db 2 ; # items
+ db POKE_BALL
+ db POTION
+ db $ff
+; 16218
--- /dev/null
+++ b/data/items/mom_phone.asm
@@ -1,0 +1,27 @@
+momitem: macro
+; money to trigger, cost, kind, item
+ dt \1
+ dt \2
+ db \3, \4
+ENDM
+
+MomItems_1: ; fd136
+ momitem 0, 600, MOM_ITEM, SUPER_POTION
+ momitem 0, 90, MOM_ITEM, ANTIDOTE
+ momitem 0, 180, MOM_ITEM, POKE_BALL
+ momitem 0, 450, MOM_ITEM, ESCAPE_ROPE
+ momitem 0, 500, MOM_ITEM, GREAT_BALL
+MomItems_1End: ; fd15e
+
+MomItems_2: ; fd15e
+ momitem 900, 600, MOM_ITEM, SUPER_POTION
+ momitem 4000, 270, MOM_ITEM, REPEL
+ momitem 7000, 600, MOM_ITEM, SUPER_POTION
+ momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL
+ momitem 15000, 3000, MOM_ITEM, MOON_STONE
+ momitem 19000, 600, MOM_ITEM, SUPER_POTION
+ momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
+ momitem 40000, 900, MOM_ITEM, HYPER_POTION
+ momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL
+ momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
+MomItems_2End: ; fd1ae
--- /dev/null
+++ b/data/items/rooftop_sale.asm
@@ -1,0 +1,18 @@
+RooftopSaleData1: ; 15aee
+ db 5
+ dbw POKE_BALL, 150
+ dbw GREAT_BALL, 500
+ dbw SUPER_POTION, 500
+ dbw FULL_HEAL, 500
+ dbw REVIVE, 1200
+ db -1
+
+RooftopSaleData2: ; 15aff
+ db 5
+ dbw HYPER_POTION, 1000
+ dbw FULL_RESTORE, 2000
+ dbw FULL_HEAL, 500
+ dbw ULTRA_BALL, 1000
+ dbw PROTEIN, 7800
+ db -1
+; 15b10
--- a/data/landmarks.asm
+++ /dev/null
@@ -1,208 +1,0 @@
-landmark: MACRO
-; x, y, name
- db \1, \2
- dw \3
-ENDM
-
-Landmarks: ; 0x1ca8c3
-; entries correspond to constants/landmark_constants.asm
- landmark 0, 0, SpecialMapName
- landmark 148, 116, NewBarkTownName
- landmark 136, 116, Route29Name
- landmark 108, 116, CherrygroveCityName
- landmark 108, 96, Route30Name
- landmark 104, 76, Route31Name
- landmark 92, 76, VioletCityName
- landmark 93, 74, SproutTowerName
- landmark 92, 108, Route32Name
- landmark 84, 92, RuinsOfAlphName
- landmark 92, 140, UnionCaveName
- landmark 90, 140, Route33Name
- landmark 76, 140, AzaleaTownName
- landmark 78, 138, SlowpokeWellName
- landmark 60, 136, IlexForestName
- landmark 60, 128, Route34Name
- landmark 60, 108, GoldenrodCityName
- landmark 58, 108, RadioTowerName
- landmark 60, 92, Route35Name
- landmark 60, 76, NationalParkName
- landmark 72, 76, Route36Name
- landmark 76, 68, Route37Name
- landmark 76, 60, EcruteakCityName
- landmark 78, 58, TinTowerName
- landmark 74, 58, BurnedTowerName
- landmark 60, 60, Route38Name
- landmark 44, 64, Route39Name
- landmark 44, 76, OlivineCityName
- landmark 46, 78, LighthouseName
- landmark 36, 72, BattleTowerName
- landmark 36, 80, Route40Name
- landmark 36, 108, WhirlIslandsName
- landmark 36, 116, Route41Name
- landmark 28, 116, CianwoodCityName
- landmark 100, 60, Route42Name
- landmark 92, 60, MtMortarName
- landmark 116, 60, MahoganyTownName
- landmark 116, 52, Route43Name
- landmark 116, 44, LakeOfRageName
- landmark 128, 60, Route44Name
- landmark 138, 54, IcePathName
- landmark 140, 60, BlackthornCityName
- landmark 140, 52, DragonsDenName
- landmark 140, 80, Route45Name
- landmark 120, 88, DarkCaveName
- landmark 132, 104, Route46Name
- landmark 156, 84, SilverCaveName
- landmark 60, 124, PalletTownName
- landmark 60, 108, Route1Name
- landmark 60, 92, ViridianCityName
- landmark 60, 80, Route2Name
- landmark 60, 68, PewterCityName
- landmark 72, 68, Route3Name
- landmark 84, 68, MtMoonName
- landmark 96, 68, Route4Name
- landmark 108, 68, CeruleanCityName
- landmark 108, 60, Route24Name
- landmark 116, 52, Route25Name
- landmark 108, 76, Route5Name
- landmark 116, 92, UndergroundName
- landmark 108, 92, Route6Name
- landmark 108, 100, VermilionCityName
- landmark 96, 76, DiglettsCaveName
- landmark 96, 84, Route7Name
- landmark 124, 84, Route8Name
- landmark 124, 68, Route9Name
- landmark 140, 68, RockTunnelName
- landmark 140, 72, Route10Name
- landmark 140, 76, PowerPlantName
- landmark 140, 84, LavenderTownName
- landmark 148, 84, LavRadioTowerName
- landmark 84, 84, CeladonCityName
- landmark 108, 84, SaffronCityName
- landmark 124, 100, Route11Name
- landmark 140, 96, Route12Name
- landmark 132, 116, Route13Name
- landmark 124, 128, Route14Name
- landmark 112, 132, Route15Name
- landmark 76, 84, Route16Name
- landmark 76, 108, Route17Name
- landmark 88, 132, Route18Name
- landmark 100, 132, FuchsiaCityName
- landmark 100, 144, Route19Name
- landmark 84, 148, Route20Name
- landmark 76, 148, SeafoamIslandsName
- landmark 60, 148, CinnabarIslandName
- landmark 60, 136, Route21Name
- landmark 44, 84, Route22Name
- landmark 36, 68, VictoryRoadName
- landmark 36, 60, Route23Name
- landmark 36, 52, IndigoPlateauName
- landmark 36, 108, Route26Name
- landmark 28, 116, Route27Name
- landmark 20, 116, TohjoFallsName
- landmark 28, 84, Route28Name
- landmark 148, 132, FastShipName
-; 0x1caa43
-
-NewBarkTownName: db "NEW BARK¯TOWN@"
-CherrygroveCityName: db "CHERRYGROVE¯CITY@"
-VioletCityName: db "VIOLET CITY@"
-AzaleaTownName: db "AZALEA TOWN@"
-GoldenrodCityName: db "GOLDENROD¯CITY@"
-EcruteakCityName: db "ECRUTEAK¯CITY@"
-OlivineCityName: db "OLIVINE¯CITY@"
-CianwoodCityName: db "CIANWOOD¯CITY@"
-MahoganyTownName: db "MAHOGANY¯TOWN@"
-BlackthornCityName: db "BLACKTHORN¯CITY@"
-LakeOfRageName: db "LAKE OF¯RAGE@"
-SilverCaveName: db "SILVER CAVE@"
-SproutTowerName: db "SPROUT¯TOWER@"
-RuinsOfAlphName: db "RUINS¯OF ALPH@"
-UnionCaveName: db "UNION CAVE@"
-SlowpokeWellName: db "SLOWPOKE¯WELL@"
-RadioTowerName: db "RADIO TOWER@"
-PowerPlantName: db "POWER PLANT@"
-NationalParkName: db "NATIONAL¯PARK@"
-TinTowerName: db "TIN TOWER@"
-LighthouseName: db "LIGHTHOUSE@"
-WhirlIslandsName: db "WHIRL¯ISLANDS@"
-MtMortarName: db "MT.MORTAR@"
-DragonsDenName: db "DRAGON'S¯DEN@"
-IcePathName: db "ICE PATH@"
-NotApplicableName: db "N/A@"
-PalletTownName: db "PALLET TOWN@"
-ViridianCityName: db "VIRIDIAN¯CITY@"
-PewterCityName: db "PEWTER CITY@"
-CeruleanCityName: db "CERULEAN¯CITY@"
-LavenderTownName: db "LAVENDER¯TOWN@"
-VermilionCityName: db "VERMILION¯CITY@"
-CeladonCityName: db "CELADON¯CITY@"
-SaffronCityName: db "SAFFRON¯CITY@"
-FuchsiaCityName: db "FUCHSIA¯CITY@"
-CinnabarIslandName: db "CINNABAR¯ISLAND@"
-IndigoPlateauName: db "INDIGO¯PLATEAU@"
-VictoryRoadName: db "VICTORY¯ROAD@"
-MtMoonName: db "MT.MOON@"
-RockTunnelName: db "ROCK TUNNEL@"
-LavRadioTowerName: db "LAV¯RADIO TOWER@"
-SilphCoName: db "SILPH CO.@"
-SafariZoneName: db "SAFARI ZONE@"
-SeafoamIslandsName: db "SEAFOAM¯ISLANDS@"
-PokemonMansionName: db "#MON¯MANSION@"
-CeruleanCaveName: db "CERULEAN¯CAVE@"
-Route1Name: db "ROUTE 1@"
-Route2Name: db "ROUTE 2@"
-Route3Name: db "ROUTE 3@"
-Route4Name: db "ROUTE 4@"
-Route5Name: db "ROUTE 5@"
-Route6Name: db "ROUTE 6@"
-Route7Name: db "ROUTE 7@"
-Route8Name: db "ROUTE 8@"
-Route9Name: db "ROUTE 9@"
-Route10Name: db "ROUTE 10@"
-Route11Name: db "ROUTE 11@"
-Route12Name: db "ROUTE 12@"
-Route13Name: db "ROUTE 13@"
-Route14Name: db "ROUTE 14@"
-Route15Name: db "ROUTE 15@"
-Route16Name: db "ROUTE 16@"
-Route17Name: db "ROUTE 17@"
-Route18Name: db "ROUTE 18@"
-Route19Name: db "ROUTE 19@"
-Route20Name: db "ROUTE 20@"
-Route21Name: db "ROUTE 21@"
-Route22Name: db "ROUTE 22@"
-Route23Name: db "ROUTE 23@"
-Route24Name: db "ROUTE 24@"
-Route25Name: db "ROUTE 25@"
-Route26Name: db "ROUTE 26@"
-Route27Name: db "ROUTE 27@"
-Route28Name: db "ROUTE 28@"
-Route29Name: db "ROUTE 29@"
-Route30Name: db "ROUTE 30@"
-Route31Name: db "ROUTE 31@"
-Route32Name: db "ROUTE 32@"
-Route33Name: db "ROUTE 33@"
-Route34Name: db "ROUTE 34@"
-Route35Name: db "ROUTE 35@"
-Route36Name: db "ROUTE 36@"
-Route37Name: db "ROUTE 37@"
-Route38Name: db "ROUTE 38@"
-Route39Name: db "ROUTE 39@"
-Route40Name: db "ROUTE 40@"
-Route41Name: db "ROUTE 41@"
-Route42Name: db "ROUTE 42@"
-Route43Name: db "ROUTE 43@"
-Route44Name: db "ROUTE 44@"
-Route45Name: db "ROUTE 45@"
-Route46Name: db "ROUTE 46@"
-DarkCaveName: db "DARK CAVE@"
-IlexForestName: db "ILEX¯FOREST@"
-BurnedTowerName: db "BURNED¯TOWER@"
-FastShipName: db "FAST SHIP@"
-ViridianForestName: db "VIRIDIAN¯FOREST@"
-DiglettsCaveName: db "DIGLETT'S¯CAVE@"
-TohjoFallsName: db "TOHJO FALLS@"
-UndergroundName: db "UNDERGROUND@"
-BattleTowerName: db "BATTLE¯TOWER@"
-SpecialMapName: db "SPECIAL@"
--- a/data/map_triggers.asm
+++ /dev/null
@@ -1,89 +1,0 @@
-trigger_def: MACRO
-; db group, map
-; dw address
- map \1
- dw \2
-ENDM
-
-MapTriggers:: ; 4d01e
- trigger_def POKECENTER_2F, wPokecenter2FTrigger
- trigger_def TRADE_CENTER, wTradeCenterTrigger
- trigger_def COLOSSEUM, wColosseumTrigger
- trigger_def TIME_CAPSULE, wTimeCapsuleTrigger
- trigger_def POWER_PLANT, wPowerPlantTrigger
- trigger_def CERULEAN_GYM, wCeruleanGymTrigger
- trigger_def ROUTE_25, wRoute25Trigger
- trigger_def TRAINER_HOUSE_B1F, wTrainerHouseB1FTrigger
- trigger_def VICTORY_ROAD_GATE, wVictoryRoadGateTrigger
- trigger_def SAFFRON_TRAIN_STATION, wSaffronTrainStationTrigger
- trigger_def ROUTE_16_GATE, wRoute16GateTrigger
- trigger_def ROUTE_17_18_GATE, wRoute1718GateTrigger
- trigger_def INDIGO_PLATEAU_POKECENTER_1F, wIndigoPlateauPokecenter1FTrigger
- trigger_def WILLS_ROOM, wWillsRoomTrigger
- trigger_def KOGAS_ROOM, wKogasRoomTrigger
- trigger_def BRUNOS_ROOM, wBrunosRoomTrigger
- trigger_def KARENS_ROOM, wKarensRoomTrigger
- trigger_def LANCES_ROOM, wLancesRoomTrigger
- trigger_def HALL_OF_FAME, wHallOfFameTrigger
- trigger_def ROUTE_27, wRoute27Trigger
- trigger_def NEW_BARK_TOWN, wNewBarkTownTrigger
- trigger_def ELMS_LAB, wElmsLabTrigger
- trigger_def KRISS_HOUSE_1F, wKrissHouse1FTrigger
- trigger_def ROUTE_29, wRoute29Trigger
- trigger_def CHERRYGROVE_CITY, wCherrygroveCityTrigger
- trigger_def MR_POKEMONS_HOUSE, wMrPokemonsHouseTrigger
- trigger_def ROUTE_32, wRoute32Trigger
- trigger_def ROUTE_35_NATIONAL_PARK_GATE, wRoute35NationalParkGateTrigger
- trigger_def ROUTE_36, wRoute36Trigger
- trigger_def ROUTE_36_NATIONAL_PARK_GATE, wRoute36NationalParkGateTrigger
- trigger_def AZALEA_TOWN, wAzaleaTownTrigger
- trigger_def GOLDENROD_GYM, wGoldenrodGymTrigger
- trigger_def GOLDENROD_MAGNET_TRAIN_STATION, wGoldenrodMagnetTrainStationTrigger
- trigger_def GOLDENROD_POKECENTER_1F, wGoldenrodPokecenter1FTrigger
- trigger_def OLIVINE_CITY, wOlivineCityTrigger
- trigger_def ROUTE_34, wRoute34Trigger
- trigger_def ROUTE_34_ILEX_FOREST_GATE, wRoute34IlexForestGateTrigger
- trigger_def ECRUTEAK_HOUSE, wEcruteakHouseTrigger
- trigger_def WISE_TRIOS_ROOM, wWiseTriosRoomTrigger
- trigger_def ECRUTEAK_POKECENTER_1F, wEcruteakPokecenter1FTrigger
- trigger_def ECRUTEAK_GYM, wEcruteakGymTrigger
- trigger_def MAHOGANY_TOWN, wMahoganyTownTrigger
- trigger_def ROUTE_42, wRoute42Trigger
- trigger_def CIANWOOD_CITY, wCianwoodCityTrigger
- trigger_def BATTLE_TOWER_1F, wBattleTower1FTrigger
- trigger_def BATTLE_TOWER_BATTLE_ROOM, wBattleTowerBattleRoomTrigger
- trigger_def BATTLE_TOWER_ELEVATOR, wBattleTowerElevatorTrigger
- trigger_def BATTLE_TOWER_HALLWAY, wBattleTowerHallwayTrigger
- trigger_def BATTLE_TOWER_OUTSIDE, wBattleTowerOutsideTrigger
- trigger_def ROUTE_43_GATE, wRoute43GateTrigger
- trigger_def MOUNT_MOON, wMountMoonTrigger
- trigger_def SPROUT_TOWER_3F, wSproutTower3FTrigger
- trigger_def TIN_TOWER_1F, wTinTower1FTrigger
- trigger_def BURNED_TOWER_1F, wBurnedTower1FTrigger
- trigger_def BURNED_TOWER_B1F, wBurnedTowerB1FTrigger
- trigger_def RADIO_TOWER_5F, wRadioTower5FTrigger
- trigger_def RUINS_OF_ALPH_OUTSIDE, wRuinsOfAlphOutsideTrigger
- trigger_def RUINS_OF_ALPH_RESEARCH_CENTER, wRuinsOfAlphResearchCenterTrigger
- trigger_def RUINS_OF_ALPH_HO_OH_CHAMBER, wRuinsOfAlphHoOhChamberTrigger
- trigger_def RUINS_OF_ALPH_KABUTO_CHAMBER, wRuinsOfAlphKabutoChamberTrigger
- trigger_def RUINS_OF_ALPH_OMANYTE_CHAMBER, wRuinsOfAlphOmanyteChamberTrigger
- trigger_def RUINS_OF_ALPH_AERODACTYL_CHAMBER, wRuinsOfAlphAerodactylChamberTrigger
- trigger_def RUINS_OF_ALPH_INNER_CHAMBER, wRuinsOfAlphInnerChamberTrigger
- trigger_def MAHOGANY_MART_1F, wMahoganyMart1FTrigger
- trigger_def TEAM_ROCKET_BASE_B1F, wTeamRocketBaseB1FTrigger
- trigger_def TEAM_ROCKET_BASE_B2F, wTeamRocketBaseB2FTrigger
- trigger_def TEAM_ROCKET_BASE_B3F, wTeamRocketBaseB3FTrigger
- trigger_def UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, wUndergroundPathSwitchRoomEntrancesTrigger
- trigger_def SILVER_CAVE_ROOM_3, wSilverCaveRoom3Trigger
- trigger_def VICTORY_ROAD, wVictoryRoadTrigger
- trigger_def DRAGONS_DEN_B1F, wDragonsDenB1FTrigger
- trigger_def DRAGON_SHRINE, wDragonShrineTrigger
- trigger_def OLIVINE_PORT, wOlivinePortTrigger
- trigger_def VERMILION_PORT, wVermilionPortTrigger
- trigger_def FAST_SHIP_1F, wFastShip1FTrigger
- trigger_def FAST_SHIP_B1F, wFastShipB1FTrigger
- trigger_def MOUNT_MOON_SQUARE, wMountMoonSquareTrigger
- trigger_def MOBILE_TRADE_ROOM_MOBILE, wMobileTradeRoomMobileTrigger
- trigger_def MOBILE_BATTLE_ROOM, wMobileBattleRoomTrigger
- db -1
-; 4d15b
--- a/data/mapgroup_roofs.asm
+++ /dev/null
@@ -1,31 +1,0 @@
-; valid roofs: 0, 1, 2, 3, 4, or -1 for none
-
-MapGroupRoofs: ; 1c021i
- db -1 ; group 0 (unused)
- db 3 ; group 1 (Olivine)
- db 2 ; group 2 (Mahogany)
- db -1 ; group 3
- db 1 ; group 4 (Ecruteak)
- db 2 ; group 5 (Blackthorn)
- db -1 ; group 6
- db -1 ; group 7
- db 2 ; group 8 (Azalea)
- db 2 ; group 9 (Lake of Rage)
- db 1 ; group 10 (Violet)
- db 4 ; group 11 (Goldenrod)
- db -1 ; group 12
- db -1 ; group 13
- db -1 ; group 14
- db -1 ; group 15
- db -1 ; group 16
- db -1 ; group 17
- db -1 ; group 18
- db 0 ; group 19 (Silver Cave)
- db -1 ; group 20
- db -1 ; group 21
- db 3 ; group 22 (Cianwood)
- db -1 ; group 23
- db 0 ; group 24 (New Bark)
- db -1 ; group 25
- db 0 ; group 26 (Cherrygrove)
-; 1c03c
--- /dev/null
+++ b/data/maps/landmarks.asm
@@ -1,0 +1,208 @@
+landmark: MACRO
+; x, y, name
+ db \1, \2
+ dw \3
+ENDM
+
+Landmarks: ; 0x1ca8c3
+; entries correspond to constants/landmark_constants.asm
+ landmark 0, 0, SpecialMapName
+ landmark 148, 116, NewBarkTownName
+ landmark 136, 116, Route29Name
+ landmark 108, 116, CherrygroveCityName
+ landmark 108, 96, Route30Name
+ landmark 104, 76, Route31Name
+ landmark 92, 76, VioletCityName
+ landmark 93, 74, SproutTowerName
+ landmark 92, 108, Route32Name
+ landmark 84, 92, RuinsOfAlphName
+ landmark 92, 140, UnionCaveName
+ landmark 90, 140, Route33Name
+ landmark 76, 140, AzaleaTownName
+ landmark 78, 138, SlowpokeWellName
+ landmark 60, 136, IlexForestName
+ landmark 60, 128, Route34Name
+ landmark 60, 108, GoldenrodCityName
+ landmark 58, 108, RadioTowerName
+ landmark 60, 92, Route35Name
+ landmark 60, 76, NationalParkName
+ landmark 72, 76, Route36Name
+ landmark 76, 68, Route37Name
+ landmark 76, 60, EcruteakCityName
+ landmark 78, 58, TinTowerName
+ landmark 74, 58, BurnedTowerName
+ landmark 60, 60, Route38Name
+ landmark 44, 64, Route39Name
+ landmark 44, 76, OlivineCityName
+ landmark 46, 78, LighthouseName
+ landmark 36, 72, BattleTowerName
+ landmark 36, 80, Route40Name
+ landmark 36, 108, WhirlIslandsName
+ landmark 36, 116, Route41Name
+ landmark 28, 116, CianwoodCityName
+ landmark 100, 60, Route42Name
+ landmark 92, 60, MtMortarName
+ landmark 116, 60, MahoganyTownName
+ landmark 116, 52, Route43Name
+ landmark 116, 44, LakeOfRageName
+ landmark 128, 60, Route44Name
+ landmark 138, 54, IcePathName
+ landmark 140, 60, BlackthornCityName
+ landmark 140, 52, DragonsDenName
+ landmark 140, 80, Route45Name
+ landmark 120, 88, DarkCaveName
+ landmark 132, 104, Route46Name
+ landmark 156, 84, SilverCaveName
+ landmark 60, 124, PalletTownName
+ landmark 60, 108, Route1Name
+ landmark 60, 92, ViridianCityName
+ landmark 60, 80, Route2Name
+ landmark 60, 68, PewterCityName
+ landmark 72, 68, Route3Name
+ landmark 84, 68, MtMoonName
+ landmark 96, 68, Route4Name
+ landmark 108, 68, CeruleanCityName
+ landmark 108, 60, Route24Name
+ landmark 116, 52, Route25Name
+ landmark 108, 76, Route5Name
+ landmark 116, 92, UndergroundName
+ landmark 108, 92, Route6Name
+ landmark 108, 100, VermilionCityName
+ landmark 96, 76, DiglettsCaveName
+ landmark 96, 84, Route7Name
+ landmark 124, 84, Route8Name
+ landmark 124, 68, Route9Name
+ landmark 140, 68, RockTunnelName
+ landmark 140, 72, Route10Name
+ landmark 140, 76, PowerPlantName
+ landmark 140, 84, LavenderTownName
+ landmark 148, 84, LavRadioTowerName
+ landmark 84, 84, CeladonCityName
+ landmark 108, 84, SaffronCityName
+ landmark 124, 100, Route11Name
+ landmark 140, 96, Route12Name
+ landmark 132, 116, Route13Name
+ landmark 124, 128, Route14Name
+ landmark 112, 132, Route15Name
+ landmark 76, 84, Route16Name
+ landmark 76, 108, Route17Name
+ landmark 88, 132, Route18Name
+ landmark 100, 132, FuchsiaCityName
+ landmark 100, 144, Route19Name
+ landmark 84, 148, Route20Name
+ landmark 76, 148, SeafoamIslandsName
+ landmark 60, 148, CinnabarIslandName
+ landmark 60, 136, Route21Name
+ landmark 44, 84, Route22Name
+ landmark 36, 68, VictoryRoadName
+ landmark 36, 60, Route23Name
+ landmark 36, 52, IndigoPlateauName
+ landmark 36, 108, Route26Name
+ landmark 28, 116, Route27Name
+ landmark 20, 116, TohjoFallsName
+ landmark 28, 84, Route28Name
+ landmark 148, 132, FastShipName
+; 0x1caa43
+
+NewBarkTownName: db "NEW BARK¯TOWN@"
+CherrygroveCityName: db "CHERRYGROVE¯CITY@"
+VioletCityName: db "VIOLET CITY@"
+AzaleaTownName: db "AZALEA TOWN@"
+GoldenrodCityName: db "GOLDENROD¯CITY@"
+EcruteakCityName: db "ECRUTEAK¯CITY@"
+OlivineCityName: db "OLIVINE¯CITY@"
+CianwoodCityName: db "CIANWOOD¯CITY@"
+MahoganyTownName: db "MAHOGANY¯TOWN@"
+BlackthornCityName: db "BLACKTHORN¯CITY@"
+LakeOfRageName: db "LAKE OF¯RAGE@"
+SilverCaveName: db "SILVER CAVE@"
+SproutTowerName: db "SPROUT¯TOWER@"
+RuinsOfAlphName: db "RUINS¯OF ALPH@"
+UnionCaveName: db "UNION CAVE@"
+SlowpokeWellName: db "SLOWPOKE¯WELL@"
+RadioTowerName: db "RADIO TOWER@"
+PowerPlantName: db "POWER PLANT@"
+NationalParkName: db "NATIONAL¯PARK@"
+TinTowerName: db "TIN TOWER@"
+LighthouseName: db "LIGHTHOUSE@"
+WhirlIslandsName: db "WHIRL¯ISLANDS@"
+MtMortarName: db "MT.MORTAR@"
+DragonsDenName: db "DRAGON'S¯DEN@"
+IcePathName: db "ICE PATH@"
+NotApplicableName: db "N/A@"
+PalletTownName: db "PALLET TOWN@"
+ViridianCityName: db "VIRIDIAN¯CITY@"
+PewterCityName: db "PEWTER CITY@"
+CeruleanCityName: db "CERULEAN¯CITY@"
+LavenderTownName: db "LAVENDER¯TOWN@"
+VermilionCityName: db "VERMILION¯CITY@"
+CeladonCityName: db "CELADON¯CITY@"
+SaffronCityName: db "SAFFRON¯CITY@"
+FuchsiaCityName: db "FUCHSIA¯CITY@"
+CinnabarIslandName: db "CINNABAR¯ISLAND@"
+IndigoPlateauName: db "INDIGO¯PLATEAU@"
+VictoryRoadName: db "VICTORY¯ROAD@"
+MtMoonName: db "MT.MOON@"
+RockTunnelName: db "ROCK TUNNEL@"
+LavRadioTowerName: db "LAV¯RADIO TOWER@"
+SilphCoName: db "SILPH CO.@"
+SafariZoneName: db "SAFARI ZONE@"
+SeafoamIslandsName: db "SEAFOAM¯ISLANDS@"
+PokemonMansionName: db "#MON¯MANSION@"
+CeruleanCaveName: db "CERULEAN¯CAVE@"
+Route1Name: db "ROUTE 1@"
+Route2Name: db "ROUTE 2@"
+Route3Name: db "ROUTE 3@"
+Route4Name: db "ROUTE 4@"
+Route5Name: db "ROUTE 5@"
+Route6Name: db "ROUTE 6@"
+Route7Name: db "ROUTE 7@"
+Route8Name: db "ROUTE 8@"
+Route9Name: db "ROUTE 9@"
+Route10Name: db "ROUTE 10@"
+Route11Name: db "ROUTE 11@"
+Route12Name: db "ROUTE 12@"
+Route13Name: db "ROUTE 13@"
+Route14Name: db "ROUTE 14@"
+Route15Name: db "ROUTE 15@"
+Route16Name: db "ROUTE 16@"
+Route17Name: db "ROUTE 17@"
+Route18Name: db "ROUTE 18@"
+Route19Name: db "ROUTE 19@"
+Route20Name: db "ROUTE 20@"
+Route21Name: db "ROUTE 21@"
+Route22Name: db "ROUTE 22@"
+Route23Name: db "ROUTE 23@"
+Route24Name: db "ROUTE 24@"
+Route25Name: db "ROUTE 25@"
+Route26Name: db "ROUTE 26@"
+Route27Name: db "ROUTE 27@"
+Route28Name: db "ROUTE 28@"
+Route29Name: db "ROUTE 29@"
+Route30Name: db "ROUTE 30@"
+Route31Name: db "ROUTE 31@"
+Route32Name: db "ROUTE 32@"
+Route33Name: db "ROUTE 33@"
+Route34Name: db "ROUTE 34@"
+Route35Name: db "ROUTE 35@"
+Route36Name: db "ROUTE 36@"
+Route37Name: db "ROUTE 37@"
+Route38Name: db "ROUTE 38@"
+Route39Name: db "ROUTE 39@"
+Route40Name: db "ROUTE 40@"
+Route41Name: db "ROUTE 41@"
+Route42Name: db "ROUTE 42@"
+Route43Name: db "ROUTE 43@"
+Route44Name: db "ROUTE 44@"
+Route45Name: db "ROUTE 45@"
+Route46Name: db "ROUTE 46@"
+DarkCaveName: db "DARK CAVE@"
+IlexForestName: db "ILEX¯FOREST@"
+BurnedTowerName: db "BURNED¯TOWER@"
+FastShipName: db "FAST SHIP@"
+ViridianForestName: db "VIRIDIAN¯FOREST@"
+DiglettsCaveName: db "DIGLETT'S¯CAVE@"
+TohjoFallsName: db "TOHJO FALLS@"
+UndergroundName: db "UNDERGROUND@"
+BattleTowerName: db "BATTLE¯TOWER@"
+SpecialMapName: db "SPECIAL@"
--- /dev/null
+++ b/data/maps/map_triggers.asm
@@ -1,0 +1,89 @@
+trigger_def: MACRO
+; db group, map
+; dw address
+ map \1
+ dw \2
+ENDM
+
+MapTriggers:: ; 4d01e
+ trigger_def POKECENTER_2F, wPokecenter2FTrigger
+ trigger_def TRADE_CENTER, wTradeCenterTrigger
+ trigger_def COLOSSEUM, wColosseumTrigger
+ trigger_def TIME_CAPSULE, wTimeCapsuleTrigger
+ trigger_def POWER_PLANT, wPowerPlantTrigger
+ trigger_def CERULEAN_GYM, wCeruleanGymTrigger
+ trigger_def ROUTE_25, wRoute25Trigger
+ trigger_def TRAINER_HOUSE_B1F, wTrainerHouseB1FTrigger
+ trigger_def VICTORY_ROAD_GATE, wVictoryRoadGateTrigger
+ trigger_def SAFFRON_TRAIN_STATION, wSaffronTrainStationTrigger
+ trigger_def ROUTE_16_GATE, wRoute16GateTrigger
+ trigger_def ROUTE_17_18_GATE, wRoute1718GateTrigger
+ trigger_def INDIGO_PLATEAU_POKECENTER_1F, wIndigoPlateauPokecenter1FTrigger
+ trigger_def WILLS_ROOM, wWillsRoomTrigger
+ trigger_def KOGAS_ROOM, wKogasRoomTrigger
+ trigger_def BRUNOS_ROOM, wBrunosRoomTrigger
+ trigger_def KARENS_ROOM, wKarensRoomTrigger
+ trigger_def LANCES_ROOM, wLancesRoomTrigger
+ trigger_def HALL_OF_FAME, wHallOfFameTrigger
+ trigger_def ROUTE_27, wRoute27Trigger
+ trigger_def NEW_BARK_TOWN, wNewBarkTownTrigger
+ trigger_def ELMS_LAB, wElmsLabTrigger
+ trigger_def KRISS_HOUSE_1F, wKrissHouse1FTrigger
+ trigger_def ROUTE_29, wRoute29Trigger
+ trigger_def CHERRYGROVE_CITY, wCherrygroveCityTrigger
+ trigger_def MR_POKEMONS_HOUSE, wMrPokemonsHouseTrigger
+ trigger_def ROUTE_32, wRoute32Trigger
+ trigger_def ROUTE_35_NATIONAL_PARK_GATE, wRoute35NationalParkGateTrigger
+ trigger_def ROUTE_36, wRoute36Trigger
+ trigger_def ROUTE_36_NATIONAL_PARK_GATE, wRoute36NationalParkGateTrigger
+ trigger_def AZALEA_TOWN, wAzaleaTownTrigger
+ trigger_def GOLDENROD_GYM, wGoldenrodGymTrigger
+ trigger_def GOLDENROD_MAGNET_TRAIN_STATION, wGoldenrodMagnetTrainStationTrigger
+ trigger_def GOLDENROD_POKECENTER_1F, wGoldenrodPokecenter1FTrigger
+ trigger_def OLIVINE_CITY, wOlivineCityTrigger
+ trigger_def ROUTE_34, wRoute34Trigger
+ trigger_def ROUTE_34_ILEX_FOREST_GATE, wRoute34IlexForestGateTrigger
+ trigger_def ECRUTEAK_HOUSE, wEcruteakHouseTrigger
+ trigger_def WISE_TRIOS_ROOM, wWiseTriosRoomTrigger
+ trigger_def ECRUTEAK_POKECENTER_1F, wEcruteakPokecenter1FTrigger
+ trigger_def ECRUTEAK_GYM, wEcruteakGymTrigger
+ trigger_def MAHOGANY_TOWN, wMahoganyTownTrigger
+ trigger_def ROUTE_42, wRoute42Trigger
+ trigger_def CIANWOOD_CITY, wCianwoodCityTrigger
+ trigger_def BATTLE_TOWER_1F, wBattleTower1FTrigger
+ trigger_def BATTLE_TOWER_BATTLE_ROOM, wBattleTowerBattleRoomTrigger
+ trigger_def BATTLE_TOWER_ELEVATOR, wBattleTowerElevatorTrigger
+ trigger_def BATTLE_TOWER_HALLWAY, wBattleTowerHallwayTrigger
+ trigger_def BATTLE_TOWER_OUTSIDE, wBattleTowerOutsideTrigger
+ trigger_def ROUTE_43_GATE, wRoute43GateTrigger
+ trigger_def MOUNT_MOON, wMountMoonTrigger
+ trigger_def SPROUT_TOWER_3F, wSproutTower3FTrigger
+ trigger_def TIN_TOWER_1F, wTinTower1FTrigger
+ trigger_def BURNED_TOWER_1F, wBurnedTower1FTrigger
+ trigger_def BURNED_TOWER_B1F, wBurnedTowerB1FTrigger
+ trigger_def RADIO_TOWER_5F, wRadioTower5FTrigger
+ trigger_def RUINS_OF_ALPH_OUTSIDE, wRuinsOfAlphOutsideTrigger
+ trigger_def RUINS_OF_ALPH_RESEARCH_CENTER, wRuinsOfAlphResearchCenterTrigger
+ trigger_def RUINS_OF_ALPH_HO_OH_CHAMBER, wRuinsOfAlphHoOhChamberTrigger
+ trigger_def RUINS_OF_ALPH_KABUTO_CHAMBER, wRuinsOfAlphKabutoChamberTrigger
+ trigger_def RUINS_OF_ALPH_OMANYTE_CHAMBER, wRuinsOfAlphOmanyteChamberTrigger
+ trigger_def RUINS_OF_ALPH_AERODACTYL_CHAMBER, wRuinsOfAlphAerodactylChamberTrigger
+ trigger_def RUINS_OF_ALPH_INNER_CHAMBER, wRuinsOfAlphInnerChamberTrigger
+ trigger_def MAHOGANY_MART_1F, wMahoganyMart1FTrigger
+ trigger_def TEAM_ROCKET_BASE_B1F, wTeamRocketBaseB1FTrigger
+ trigger_def TEAM_ROCKET_BASE_B2F, wTeamRocketBaseB2FTrigger
+ trigger_def TEAM_ROCKET_BASE_B3F, wTeamRocketBaseB3FTrigger
+ trigger_def UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, wUndergroundPathSwitchRoomEntrancesTrigger
+ trigger_def SILVER_CAVE_ROOM_3, wSilverCaveRoom3Trigger
+ trigger_def VICTORY_ROAD, wVictoryRoadTrigger
+ trigger_def DRAGONS_DEN_B1F, wDragonsDenB1FTrigger
+ trigger_def DRAGON_SHRINE, wDragonShrineTrigger
+ trigger_def OLIVINE_PORT, wOlivinePortTrigger
+ trigger_def VERMILION_PORT, wVermilionPortTrigger
+ trigger_def FAST_SHIP_1F, wFastShip1FTrigger
+ trigger_def FAST_SHIP_B1F, wFastShipB1FTrigger
+ trigger_def MOUNT_MOON_SQUARE, wMountMoonSquareTrigger
+ trigger_def MOBILE_TRADE_ROOM_MOBILE, wMobileTradeRoomMobileTrigger
+ trigger_def MOBILE_BATTLE_ROOM, wMobileBattleRoomTrigger
+ db -1
+; 4d15b
--- /dev/null
+++ b/data/maps/mapgroup_roofs.asm
@@ -1,0 +1,31 @@
+; valid roofs: 0, 1, 2, 3, 4, or -1 for none
+
+MapGroupRoofs: ; 1c021i
+ db -1 ; group 0 (unused)
+ db 3 ; group 1 (Olivine)
+ db 2 ; group 2 (Mahogany)
+ db -1 ; group 3
+ db 1 ; group 4 (Ecruteak)
+ db 2 ; group 5 (Blackthorn)
+ db -1 ; group 6
+ db -1 ; group 7
+ db 2 ; group 8 (Azalea)
+ db 2 ; group 9 (Lake of Rage)
+ db 1 ; group 10 (Violet)
+ db 4 ; group 11 (Goldenrod)
+ db -1 ; group 12
+ db -1 ; group 13
+ db -1 ; group 14
+ db -1 ; group 15
+ db -1 ; group 16
+ db -1 ; group 17
+ db -1 ; group 18
+ db 0 ; group 19 (Silver Cave)
+ db -1 ; group 20
+ db -1 ; group 21
+ db 3 ; group 22 (Cianwood)
+ db -1 ; group 23
+ db 0 ; group 24 (New Bark)
+ db -1 ; group 25
+ db 0 ; group 26 (Cherrygrove)
+; 1c03c
--- /dev/null
+++ b/data/maps/outdoor_sprites.asm
@@ -1,0 +1,696 @@
+; Valid sprite IDs for each map group.
+; Maps with permission ROUTE or TOWN can only use these sprites.
+
+OutdoorSprites: ; 144b8
+ dw OlivineGroupSprites
+ dw MahoganyGroupSprites
+ dw DungeonsGroupSprites
+ dw EcruteakGroupSprites
+ dw BlackthornGroupSprites
+ dw CinnabarGroupSprites
+ dw CeruleanGroupSprites
+ dw AzaleaGroupSprites
+ dw LakeOfRageGroupSprites
+ dw VioletGroupSprites
+ dw GoldenrodGroupSprites
+ dw VermilionGroupSprites
+ dw PalletGroupSprites
+ dw PewterGroupSprites
+ dw FastShipGroupSprites
+ dw IndigoGroupSprites
+ dw FuchsiaGroupSprites
+ dw LavenderGroupSprites
+ dw SilverGroupSprites
+ dw CableClubGroupSprites
+ dw CeladonGroupSprites
+ dw CianwoodGroupSprites
+ dw ViridianGroupSprites
+ dw NewBarkGroupSprites
+ dw SaffronGroupSprites
+ dw CherrygroveGroupSprites
+; 144ec
+
+
+PalletGroupSprites: ; 144ec
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14503
+
+ViridianGroupSprites: ; 14503
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1451a
+
+PewterGroupSprites: ; 1451a
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14531
+
+CinnabarGroupSprites: ; 14531
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14548
+
+CeruleanGroupSprites: ; 14548
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKET
+ db SPRITE_MISTY
+ db SPRITE_POKE_BALL
+ db SPRITE_SLOWPOKE
+; 1455f
+
+SaffronGroupSprites: ; 1455f
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKET
+ db SPRITE_MISTY
+ db SPRITE_POKE_BALL
+ db SPRITE_SLOWPOKE
+; 14576
+
+CeladonGroupSprites: ; 14576
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_POLIWAG
+ db SPRITE_TEACHER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_BIKER
+ db SPRITE_SILVER
+ db SPRITE_BLUE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1458d
+
+LavenderGroupSprites: ; 1458d
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145a4
+
+VermilionGroupSprites: ; 145a4
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145bb
+
+FuchsiaGroupSprites: ; 145bb
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145d2
+
+IndigoGroupSprites: ; 145d2
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_BUENA
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_MACHOP
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_BOULDER
+; 145e9
+
+NewBarkGroupSprites: ; 145e9
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14600
+
+CherrygroveGroupSprites: ; 14600
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14617
+
+SilverGroupSprites: ; 14617
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1462e
+
+VioletGroupSprites: ; 1462e
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_LASS
+ db SPRITE_OFFICER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_BUG_CATCHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_WEIRD_TREE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14645
+
+EcruteakGroupSprites: ; 14645
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_LASS
+ db SPRITE_OFFICER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_BUG_CATCHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_WEIRD_TREE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1465c
+
+AzaleaGroupSprites: ; 1465c
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_KURT_OUTSIDE
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_OFFICER
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_TEACHER
+ db SPRITE_AZALEA_ROCKET
+ db SPRITE_LASS
+ db SPRITE_SILVER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_SLOWPOKE
+; 14673
+
+GoldenrodGroupSprites: ; 14673
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_POKE_BALL
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_OFFICER
+ db SPRITE_POKEFAN_M
+ db SPRITE_DAY_CARE_MON_1
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_ROCKET
+ db SPRITE_LASS
+ db SPRITE_DAY_CARE_MON_2
+ db SPRITE_FRUIT_TREE
+ db SPRITE_SLOWPOKE
+; 1468a
+
+CianwoodGroupSprites: ; 1468a
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_STANDING_YOUNGSTER
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_OLIVINE_RIVAL
+ db SPRITE_POKEFAN_M
+ db SPRITE_LASS
+ db SPRITE_BUENA
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SAILOR
+ db SPRITE_POKEFAN_F
+ db SPRITE_SUPER_NERD
+ db SPRITE_TAUROS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_ROCK
+; 146a1
+
+OlivineGroupSprites: ; 146a1
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_STANDING_YOUNGSTER
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_OLIVINE_RIVAL
+ db SPRITE_POKEFAN_M
+ db SPRITE_LASS
+ db SPRITE_BUENA
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SAILOR
+ db SPRITE_POKEFAN_F
+ db SPRITE_SUPER_NERD
+ db SPRITE_TAUROS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_ROCK
+; 146b8
+
+LakeOfRageGroupSprites: ; 146b8
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_LANCE
+ db SPRITE_GRAMPS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_LASS
+ db SPRITE_YOUNGSTER
+ db SPRITE_GYARADOS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146cf
+
+MahoganyGroupSprites: ; 146cf
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146e6
+
+BlackthornGroupSprites: ; 146e6
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146fd
+
+DungeonsGroupSprites: ; 146fd
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_GAMEBOY_KID
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_F
+ db SPRITE_TEACHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_GROWLITHE
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKER
+ db SPRITE_FISHER
+ db SPRITE_SCIENTIST
+ db SPRITE_POKE_BALL
+ db SPRITE_BOULDER
+; 14714
+
+FastShipGroupSprites: ; 14714
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SAILOR
+ db SPRITE_FISHING_GURU
+ db SPRITE_GENTLEMAN
+ db SPRITE_SUPER_NERD
+ db SPRITE_HO_OH
+ db SPRITE_TEACHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_YOUNGSTER
+ db SPRITE_FAIRY
+ db SPRITE_POKE_BALL
+ db SPRITE_ROCK
+; 1472b
+
+CableClubGroupSprites: ; 1472b
+ db SPRITE_OAK
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_TWIN
+ db SPRITE_POKEFAN_M
+ db SPRITE_GRAMPS
+ db SPRITE_FAIRY
+ db SPRITE_SILVER
+ db SPRITE_FISHING_GURU
+ db SPRITE_POKE_BALL
+ db SPRITE_POKEDEX
+; 14736
--- /dev/null
+++ b/data/maps/spawn_points.asm
@@ -1,0 +1,41 @@
+spawn: MACRO
+; map, y, x
+ map \1
+ db \2, \3
+ENDM
+
+SpawnPoints: ; 0x152ab
+; entries correspond to SPAWN_* constants
+
+ spawn KRISS_HOUSE_2F, 3, 3
+ spawn VIRIDIAN_POKECENTER_1F, 5, 3
+
+ spawn PALLET_TOWN, 5, 6
+ spawn VIRIDIAN_CITY, 23, 26
+ spawn PEWTER_CITY, 13, 26
+ spawn CERULEAN_CITY, 19, 22
+ spawn ROUTE_10_NORTH, 11, 2
+ spawn VERMILION_CITY, 9, 6
+ spawn LAVENDER_TOWN, 5, 6
+ spawn SAFFRON_CITY, 9, 30
+ spawn CELADON_CITY, 29, 10
+ spawn FUCHSIA_CITY, 19, 28
+ spawn CINNABAR_ISLAND, 11, 12
+ spawn ROUTE_23, 9, 6
+
+ spawn NEW_BARK_TOWN, 13, 6
+ spawn CHERRYGROVE_CITY, 29, 4
+ spawn VIOLET_CITY, 31, 26
+ spawn ROUTE_32, 11, 74
+ spawn AZALEA_TOWN, 15, 10
+ spawn CIANWOOD_CITY, 23, 44
+ spawn GOLDENROD_CITY, 15, 28
+ spawn OLIVINE_CITY, 13, 22
+ spawn ECRUTEAK_CITY, 23, 28
+ spawn MAHOGANY_TOWN, 15, 14
+ spawn LAKE_OF_RAGE, 21, 29
+ spawn BLACKTHORN_CITY, 21, 30
+ spawn SILVER_CAVE_OUTSIDE, 23, 20
+ spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
+ spawn N_A, -1, -1
+; 1531f
--- a/data/mom_phone_items.asm
+++ /dev/null
@@ -1,27 +1,0 @@
-momitem: macro
-; money to trigger, cost, kind, item
- dt \1
- dt \2
- db \3, \4
-ENDM
-
-MomItems_1: ; fd136
- momitem 0, 600, MOM_ITEM, SUPER_POTION
- momitem 0, 90, MOM_ITEM, ANTIDOTE
- momitem 0, 180, MOM_ITEM, POKE_BALL
- momitem 0, 450, MOM_ITEM, ESCAPE_ROPE
- momitem 0, 500, MOM_ITEM, GREAT_BALL
-MomItems_1End: ; fd15e
-
-MomItems_2: ; fd15e
- momitem 900, 600, MOM_ITEM, SUPER_POTION
- momitem 4000, 270, MOM_ITEM, REPEL
- momitem 7000, 600, MOM_ITEM, SUPER_POTION
- momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL
- momitem 15000, 3000, MOM_ITEM, MOON_STONE
- momitem 19000, 600, MOM_ITEM, SUPER_POTION
- momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
- momitem 40000, 900, MOM_ITEM, HYPER_POTION
- momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL
- momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
-MomItems_2End: ; fd1ae
--- a/data/mon_menu_icons.asm
+++ /dev/null
@@ -1,255 +1,0 @@
-; party menu icons
-
-MonMenuIcons: ; 8eac4
- db ICON_BULBASAUR ; BULBASAUR
- db ICON_BULBASAUR ; IVYSAUR
- db ICON_BULBASAUR ; VENUSAUR
- db ICON_CHARMANDER ; CHARMANDER
- db ICON_CHARMANDER ; CHARMELEON
- db ICON_BIGMON ; CHARIZARD
- db ICON_SQUIRTLE ; SQUIRTLE
- db ICON_SQUIRTLE ; WARTORTLE
- db ICON_SQUIRTLE ; BLASTOISE
- db ICON_CATERPILLAR ; CATERPIE
- db ICON_CATERPILLAR ; METAPOD
- db ICON_MOTH ; BUTTERFREE
- db ICON_CATERPILLAR ; WEEDLE
- db ICON_CATERPILLAR ; KAKUNA
- db ICON_BUG ; BEEDRILL
- db ICON_BIRD ; PIDGEY
- db ICON_BIRD ; PIDGEOTTO
- db ICON_BIRD ; PIDGEOT
- db ICON_FOX ; RATTATA
- db ICON_FOX ; RATICATE
- db ICON_BIRD ; SPEAROW
- db ICON_BIRD ; FEAROW
- db ICON_SERPENT ; EKANS
- db ICON_SERPENT ; ARBOK
- db ICON_PIKACHU ; PIKACHU
- db ICON_PIKACHU ; RAICHU
- db ICON_MONSTER ; SANDSHREW
- db ICON_MONSTER ; SANDSLASH
- db ICON_FOX ; NIDORAN_F
- db ICON_FOX ; NIDORINA
- db ICON_MONSTER ; NIDOQUEEN
- db ICON_FOX ; NIDORAN_M
- db ICON_FOX ; NIDORINO
- db ICON_MONSTER ; NIDOKING
- db ICON_CLEFAIRY ; CLEFAIRY
- db ICON_CLEFAIRY ; CLEFABLE
- db ICON_FOX ; VULPIX
- db ICON_FOX ; NINETALES
- db ICON_JIGGLYPUFF ; JIGGLYPUFF
- db ICON_JIGGLYPUFF ; WIGGLYTUFF
- db ICON_BAT ; ZUBAT
- db ICON_BAT ; GOLBAT
- db ICON_ODDISH ; ODDISH
- db ICON_ODDISH ; GLOOM
- db ICON_ODDISH ; VILEPLUME
- db ICON_BUG ; PARAS
- db ICON_BUG ; PARASECT
- db ICON_CATERPILLAR ; VENONAT
- db ICON_MOTH ; VENOMOTH
- db ICON_DIGLETT ; DIGLETT
- db ICON_DIGLETT ; DUGTRIO
- db ICON_FOX ; MEOWTH
- db ICON_FOX ; PERSIAN
- db ICON_MONSTER ; PSYDUCK
- db ICON_MONSTER ; GOLDUCK
- db ICON_FIGHTER ; MANKEY
- db ICON_FIGHTER ; PRIMEAPE
- db ICON_FOX ; GROWLITHE
- db ICON_FOX ; ARCANINE
- db ICON_POLIWAG ; POLIWAG
- db ICON_POLIWAG ; POLIWHIRL
- db ICON_POLIWAG ; POLIWRATH
- db ICON_HUMANSHAPE ; ABRA
- db ICON_HUMANSHAPE ; KADABRA
- db ICON_HUMANSHAPE ; ALAKAZAM
- db ICON_FIGHTER ; MACHOP
- db ICON_FIGHTER ; MACHOKE
- db ICON_FIGHTER ; MACHAMP
- db ICON_ODDISH ; BELLSPROUT
- db ICON_ODDISH ; WEEPINBELL
- db ICON_ODDISH ; VICTREEBEL
- db ICON_JELLYFISH ; TENTACOOL
- db ICON_JELLYFISH ; TENTACRUEL
- db ICON_GEODUDE ; GEODUDE
- db ICON_GEODUDE ; GRAVELER
- db ICON_GEODUDE ; GOLEM
- db ICON_EQUINE ; PONYTA
- db ICON_EQUINE ; RAPIDASH
- db ICON_SLOWPOKE ; SLOWPOKE
- db ICON_SLOWPOKE ; SLOWBRO
- db ICON_VOLTORB ; MAGNEMITE
- db ICON_VOLTORB ; MAGNETON
- db ICON_BIRD ; FARFETCH_D
- db ICON_BIRD ; DODUO
- db ICON_BIRD ; DODRIO
- db ICON_LAPRAS ; SEEL
- db ICON_LAPRAS ; DEWGONG
- db ICON_BLOB ; GRIMER
- db ICON_BLOB ; MUK
- db ICON_SHELL ; SHELLDER
- db ICON_SHELL ; CLOYSTER
- db ICON_GHOST ; GASTLY
- db ICON_GHOST ; HAUNTER
- db ICON_GHOST ; GENGAR
- db ICON_SERPENT ; ONIX
- db ICON_HUMANSHAPE ; DROWZEE
- db ICON_HUMANSHAPE ; HYPNO
- db ICON_SHELL ; KRABBY
- db ICON_SHELL ; KINGLER
- db ICON_VOLTORB ; VOLTORB
- db ICON_VOLTORB ; ELECTRODE
- db ICON_ODDISH ; EXEGGCUTE
- db ICON_ODDISH ; EXEGGUTOR
- db ICON_MONSTER ; CUBONE
- db ICON_MONSTER ; MAROWAK
- db ICON_FIGHTER ; HITMONLEE
- db ICON_FIGHTER ; HITMONCHAN
- db ICON_MONSTER ; LICKITUNG
- db ICON_BLOB ; KOFFING
- db ICON_BLOB ; WEEZING
- db ICON_EQUINE ; RHYHORN
- db ICON_MONSTER ; RHYDON
- db ICON_CLEFAIRY ; CHANSEY
- db ICON_ODDISH ; TANGELA
- db ICON_MONSTER ; KANGASKHAN
- db ICON_FISH ; HORSEA
- db ICON_FISH ; SEADRA
- db ICON_FISH ; GOLDEEN
- db ICON_FISH ; SEAKING
- db ICON_STARYU ; STARYU
- db ICON_STARYU ; STARMIE
- db ICON_HUMANSHAPE ; MR__MIME
- db ICON_BUG ; SCYTHER
- db ICON_HUMANSHAPE ; JYNX
- db ICON_HUMANSHAPE ; ELECTABUZZ
- db ICON_HUMANSHAPE ; MAGMAR
- db ICON_BUG ; PINSIR
- db ICON_EQUINE ; TAUROS
- db ICON_FISH ; MAGIKARP
- db ICON_GYARADOS ; GYARADOS
- db ICON_LAPRAS ; LAPRAS
- db ICON_BLOB ; DITTO
- db ICON_FOX ; EEVEE
- db ICON_FOX ; VAPOREON
- db ICON_FOX ; JOLTEON
- db ICON_FOX ; FLAREON
- db ICON_VOLTORB ; PORYGON
- db ICON_SHELL ; OMANYTE
- db ICON_SHELL ; OMASTAR
- db ICON_SHELL ; KABUTO
- db ICON_SHELL ; KABUTOPS
- db ICON_BIRD ; AERODACTYL
- db ICON_SNORLAX ; SNORLAX
- db ICON_BIRD ; ARTICUNO
- db ICON_BIRD ; ZAPDOS
- db ICON_BIRD ; MOLTRES
- db ICON_SERPENT ; DRATINI
- db ICON_SERPENT ; DRAGONAIR
- db ICON_BIGMON ; DRAGONITE
- db ICON_HUMANSHAPE ; MEWTWO
- db ICON_HUMANSHAPE ; MEW
- db ICON_ODDISH ; CHIKORITA
- db ICON_ODDISH ; BAYLEEF
- db ICON_ODDISH ; MEGANIUM
- db ICON_FOX ; CYNDAQUIL
- db ICON_FOX ; QUILAVA
- db ICON_FOX ; TYPHLOSION
- db ICON_MONSTER ; TOTODILE
- db ICON_MONSTER ; CROCONAW
- db ICON_MONSTER ; FERALIGATR
- db ICON_FOX ; SENTRET
- db ICON_FOX ; FURRET
- db ICON_BIRD ; HOOTHOOT
- db ICON_BIRD ; NOCTOWL
- db ICON_BUG ; LEDYBA
- db ICON_BUG ; LEDIAN
- db ICON_BUG ; SPINARAK
- db ICON_BUG ; ARIADOS
- db ICON_BAT ; CROBAT
- db ICON_FISH ; CHINCHOU
- db ICON_FISH ; LANTURN
- db ICON_PIKACHU ; PICHU
- db ICON_CLEFAIRY ; CLEFFA
- db ICON_JIGGLYPUFF ; IGGLYBUFF
- db ICON_CLEFAIRY ; TOGEPI
- db ICON_BIRD ; TOGETIC
- db ICON_BIRD ; NATU
- db ICON_BIRD ; XATU
- db ICON_FOX ; MAREEP
- db ICON_MONSTER ; FLAAFFY
- db ICON_MONSTER ; AMPHAROS
- db ICON_ODDISH ; BELLOSSOM
- db ICON_JIGGLYPUFF ; MARILL
- db ICON_JIGGLYPUFF ; AZUMARILL
- db ICON_SUDOWOODO ; SUDOWOODO
- db ICON_POLIWAG ; POLITOED
- db ICON_ODDISH ; HOPPIP
- db ICON_ODDISH ; SKIPLOOM
- db ICON_ODDISH ; JUMPLUFF
- db ICON_MONSTER ; AIPOM
- db ICON_ODDISH ; SUNKERN
- db ICON_ODDISH ; SUNFLORA
- db ICON_BUG ; YANMA
- db ICON_MONSTER ; WOOPER
- db ICON_MONSTER ; QUAGSIRE
- db ICON_FOX ; ESPEON
- db ICON_FOX ; UMBREON
- db ICON_BIRD ; MURKROW
- db ICON_SLOWPOKE ; SLOWKING
- db ICON_GHOST ; MISDREAVUS
- db ICON_UNOWN ; UNOWN
- db ICON_GHOST ; WOBBUFFET
- db ICON_EQUINE ; GIRAFARIG
- db ICON_BUG ; PINECO
- db ICON_BUG ; FORRETRESS
- db ICON_SERPENT ; DUNSPARCE
- db ICON_BUG ; GLIGAR
- db ICON_SERPENT ; STEELIX
- db ICON_MONSTER ; SNUBBULL
- db ICON_MONSTER ; GRANBULL
- db ICON_FISH ; QWILFISH
- db ICON_BUG ; SCIZOR
- db ICON_BUG ; SHUCKLE
- db ICON_BUG ; HERACROSS
- db ICON_FOX ; SNEASEL
- db ICON_MONSTER ; TEDDIURSA
- db ICON_MONSTER ; URSARING
- db ICON_BLOB ; SLUGMA
- db ICON_BLOB ; MAGCARGO
- db ICON_EQUINE ; SWINUB
- db ICON_EQUINE ; PILOSWINE
- db ICON_SHELL ; CORSOLA
- db ICON_FISH ; REMORAID
- db ICON_FISH ; OCTILLERY
- db ICON_MONSTER ; DELIBIRD
- db ICON_FISH ; MANTINE
- db ICON_BIRD ; SKARMORY
- db ICON_FOX ; HOUNDOUR
- db ICON_FOX ; HOUNDOOM
- db ICON_BIGMON ; KINGDRA
- db ICON_EQUINE ; PHANPY
- db ICON_EQUINE ; DONPHAN
- db ICON_VOLTORB ; PORYGON2
- db ICON_EQUINE ; STANTLER
- db ICON_MONSTER ; SMEARGLE
- db ICON_FIGHTER ; TYROGUE
- db ICON_FIGHTER ; HITMONTOP
- db ICON_HUMANSHAPE ; SMOOCHUM
- db ICON_HUMANSHAPE ; ELEKID
- db ICON_HUMANSHAPE ; MAGBY
- db ICON_EQUINE ; MILTANK
- db ICON_CLEFAIRY ; BLISSEY
- db ICON_FOX ; RAIKOU
- db ICON_FOX ; ENTEI
- db ICON_FOX ; SUICUNE
- db ICON_MONSTER ; LARVITAR
- db ICON_MONSTER ; PUPITAR
- db ICON_MONSTER ; TYRANITAR
- db ICON_LUGIA ; LUGIA
- db ICON_HO_OH ; HO_OH
- db ICON_HUMANSHAPE ; CELEBI
-; 8ebbf
--- a/data/outdoor_sprites.asm
+++ /dev/null
@@ -1,696 +1,0 @@
-; Valid sprite IDs for each map group.
-; Maps with permission ROUTE or TOWN can only use these sprites.
-
-OutdoorSprites: ; 144b8
- dw OlivineGroupSprites
- dw MahoganyGroupSprites
- dw DungeonsGroupSprites
- dw EcruteakGroupSprites
- dw BlackthornGroupSprites
- dw CinnabarGroupSprites
- dw CeruleanGroupSprites
- dw AzaleaGroupSprites
- dw LakeOfRageGroupSprites
- dw VioletGroupSprites
- dw GoldenrodGroupSprites
- dw VermilionGroupSprites
- dw PalletGroupSprites
- dw PewterGroupSprites
- dw FastShipGroupSprites
- dw IndigoGroupSprites
- dw FuchsiaGroupSprites
- dw LavenderGroupSprites
- dw SilverGroupSprites
- dw CableClubGroupSprites
- dw CeladonGroupSprites
- dw CianwoodGroupSprites
- dw ViridianGroupSprites
- dw NewBarkGroupSprites
- dw SaffronGroupSprites
- dw CherrygroveGroupSprites
-; 144ec
-
-
-PalletGroupSprites: ; 144ec
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14503
-
-ViridianGroupSprites: ; 14503
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1451a
-
-PewterGroupSprites: ; 1451a
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14531
-
-CinnabarGroupSprites: ; 14531
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14548
-
-CeruleanGroupSprites: ; 14548
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_COOLTRAINER_M
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKET
- db SPRITE_MISTY
- db SPRITE_POKE_BALL
- db SPRITE_SLOWPOKE
-; 1455f
-
-SaffronGroupSprites: ; 1455f
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_COOLTRAINER_M
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKET
- db SPRITE_MISTY
- db SPRITE_POKE_BALL
- db SPRITE_SLOWPOKE
-; 14576
-
-CeladonGroupSprites: ; 14576
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_POLIWAG
- db SPRITE_TEACHER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_BIKER
- db SPRITE_SILVER
- db SPRITE_BLUE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1458d
-
-LavenderGroupSprites: ; 1458d
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145a4
-
-VermilionGroupSprites: ; 145a4
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145bb
-
-FuchsiaGroupSprites: ; 145bb
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145d2
-
-IndigoGroupSprites: ; 145d2
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_BUENA
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_MACHOP
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_BOULDER
-; 145e9
-
-NewBarkGroupSprites: ; 145e9
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14600
-
-CherrygroveGroupSprites: ; 14600
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14617
-
-SilverGroupSprites: ; 14617
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1462e
-
-VioletGroupSprites: ; 1462e
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_LASS
- db SPRITE_OFFICER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_COOLTRAINER_M
- db SPRITE_BUG_CATCHER
- db SPRITE_SUPER_NERD
- db SPRITE_WEIRD_TREE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14645
-
-EcruteakGroupSprites: ; 14645
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_LASS
- db SPRITE_OFFICER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_COOLTRAINER_M
- db SPRITE_BUG_CATCHER
- db SPRITE_SUPER_NERD
- db SPRITE_WEIRD_TREE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1465c
-
-AzaleaGroupSprites: ; 1465c
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_KURT_OUTSIDE
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_OFFICER
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_TEACHER
- db SPRITE_AZALEA_ROCKET
- db SPRITE_LASS
- db SPRITE_SILVER
- db SPRITE_FRUIT_TREE
- db SPRITE_SLOWPOKE
-; 14673
-
-GoldenrodGroupSprites: ; 14673
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_POKE_BALL
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_OFFICER
- db SPRITE_POKEFAN_M
- db SPRITE_DAY_CARE_MON_1
- db SPRITE_COOLTRAINER_F
- db SPRITE_ROCKET
- db SPRITE_LASS
- db SPRITE_DAY_CARE_MON_2
- db SPRITE_FRUIT_TREE
- db SPRITE_SLOWPOKE
-; 1468a
-
-CianwoodGroupSprites: ; 1468a
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_STANDING_YOUNGSTER
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_OLIVINE_RIVAL
- db SPRITE_POKEFAN_M
- db SPRITE_LASS
- db SPRITE_BUENA
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SAILOR
- db SPRITE_POKEFAN_F
- db SPRITE_SUPER_NERD
- db SPRITE_TAUROS
- db SPRITE_FRUIT_TREE
- db SPRITE_ROCK
-; 146a1
-
-OlivineGroupSprites: ; 146a1
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_STANDING_YOUNGSTER
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_OLIVINE_RIVAL
- db SPRITE_POKEFAN_M
- db SPRITE_LASS
- db SPRITE_BUENA
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SAILOR
- db SPRITE_POKEFAN_F
- db SPRITE_SUPER_NERD
- db SPRITE_TAUROS
- db SPRITE_FRUIT_TREE
- db SPRITE_ROCK
-; 146b8
-
-LakeOfRageGroupSprites: ; 146b8
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_LANCE
- db SPRITE_GRAMPS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_LASS
- db SPRITE_YOUNGSTER
- db SPRITE_GYARADOS
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146cf
-
-MahoganyGroupSprites: ; 146cf
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_M
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146e6
-
-BlackthornGroupSprites: ; 146e6
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_M
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146fd
-
-DungeonsGroupSprites: ; 146fd
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_GAMEBOY_KID
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_LASS
- db SPRITE_POKEFAN_F
- db SPRITE_TEACHER
- db SPRITE_YOUNGSTER
- db SPRITE_GROWLITHE
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKER
- db SPRITE_FISHER
- db SPRITE_SCIENTIST
- db SPRITE_POKE_BALL
- db SPRITE_BOULDER
-; 14714
-
-FastShipGroupSprites: ; 14714
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SAILOR
- db SPRITE_FISHING_GURU
- db SPRITE_GENTLEMAN
- db SPRITE_SUPER_NERD
- db SPRITE_HO_OH
- db SPRITE_TEACHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_YOUNGSTER
- db SPRITE_FAIRY
- db SPRITE_POKE_BALL
- db SPRITE_ROCK
-; 1472b
-
-CableClubGroupSprites: ; 1472b
- db SPRITE_OAK
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_TWIN
- db SPRITE_POKEFAN_M
- db SPRITE_GRAMPS
- db SPRITE_FAIRY
- db SPRITE_SILVER
- db SPRITE_FISHING_GURU
- db SPRITE_POKE_BALL
- db SPRITE_POKEDEX
-; 14736
--- /dev/null
+++ b/data/palettes/49757.pal
@@ -1,0 +1,39 @@
+ RGB 31, 31, 63
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 63
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 31, 00, 00
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 30, 16, 26
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 16, 16, 16
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 31, 12, 12
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 07, 08, 31
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 29, 28, 09
+ RGB 31, 31, 31
--- /dev/null
+++ b/data/palettes/979c.pal
@@ -1,0 +1,29 @@
+ RGB 31, 31, 31
+ RGB 25, 25, 25
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 18, 07
+ RGB 20, 15, 03
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/b6f1.pal
@@ -1,0 +1,24 @@
+ RGB 31, 31, 31
+ RGB 18, 23, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 22, 00, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 25, 22, 00
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 26, 31
+ RGB 18, 23, 31
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/b719.pal
@@ -1,0 +1,9 @@
+ RGB 31, 31, 31
+ RGB 07, 06, 03
+ RGB 07, 06, 03
+ RGB 07, 06, 03
+
+ RGB 31, 31, 31
+ RGB 31, 31, 00
+ RGB 26, 22, 00
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/b789.pal
@@ -1,0 +1,19 @@
+ RGB 31, 31, 31
+ RGB 30, 22, 24
+ RGB 18, 18, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 10, 11, 31
+ RGB 18, 18, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 31, 11
+ RGB 18, 18, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 26, 05
+ RGB 18, 18, 18
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/card_flip.pal
@@ -1,0 +1,44 @@
+ RGB 31, 31, 31
+ RGB 17, 07, 31
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 25, 00
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 13, 30
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 08, 17, 30
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 08, 31, 08
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 17, 07, 31
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 17, 07, 31
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 17, 07, 31
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 31, 00, 00
--- /dev/null
+++ b/data/palettes/credits.pal
@@ -1,0 +1,19 @@
+; pichu
+ RGB 31,00,31, 31,25,00, 11,14,31, 07,07,07
+ RGB 31,05,05, 11,14,31, 11,14,31, 31,31,31
+ RGB 31,05,05, 00,00,00, 31,31,31, 31,31,31
+
+; smoochum
+ RGB 31,31,31, 31,27,00, 26,06,31, 07,07,07
+ RGB 03,13,31, 20,00,24, 26,06,31, 31,31,31
+ RGB 03,13,31, 00,00,00, 31,31,31, 31,31,31
+
+; ditto
+ RGB 31,31,31, 23,12,28, 31,22,00, 07,07,07
+ RGB 03,20,00, 31,22,00, 31,22,00, 31,31,31
+ RGB 03,20,00, 00,00,00, 31,31,31, 31,31,31
+
+; igglybuff
+ RGB 31,31,31, 31,10,31, 31,00,09, 07,07,07
+ RGB 31,14,00, 31,00,09, 31,00,09, 31,31,31
+ RGB 31,14,00, 31,31,31, 31,31,31, 31,31,31
--- /dev/null
+++ b/data/palettes/crystal_intro/fade.pal
@@ -1,0 +1,41 @@
+; Fade to white.
+
+ RGB 24, 12, 09
+ RGB 31, 31, 31
+ RGB 12, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 19, 05
+ RGB 31, 31, 31
+ RGB 15, 05, 31
+ RGB 07, 07, 07
+
+ RGB 31, 21, 09
+ RGB 31, 31, 31
+ RGB 18, 09, 31
+ RGB 11, 11, 11
+
+ RGB 31, 23, 13
+ RGB 31, 31, 31
+ RGB 21, 13, 31
+ RGB 15, 15, 15
+
+ RGB 31, 25, 17
+ RGB 31, 31, 31
+ RGB 25, 17, 31
+ RGB 19, 19, 19
+
+ RGB 31, 27, 21
+ RGB 31, 31, 31
+ RGB 27, 21, 31
+ RGB 23, 23, 23
+
+ RGB 31, 29, 25
+ RGB 31, 31, 31
+ RGB 29, 26, 31
+ RGB 27, 27, 27
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
--- /dev/null
+++ b/data/palettes/crystal_intro/gamefreak_logo.pal
@@ -1,0 +1,23 @@
+; Ditto's color as it turns into the Game Freak logo.
+; Fade from pink to orange.
+; One color per step.
+
+ RGB 23, 12, 28
+ RGB 23, 12, 27
+ RGB 23, 13, 26
+ RGB 23, 13, 24
+
+ RGB 24, 14, 22
+ RGB 24, 14, 20
+ RGB 24, 15, 18
+ RGB 24, 15, 16
+
+ RGB 25, 16, 14
+ RGB 25, 16, 12
+ RGB 25, 17, 10
+ RGB 25, 17, 08
+
+ RGB 26, 18, 06
+ RGB 26, 18, 04
+ RGB 26, 19, 02
+ RGB 26, 19, 00
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_1.pal
@@ -1,0 +1,79 @@
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 0, 4, 5
+ RGB 1, 8, 5
+ RGB 4, 12, 9
+ RGB 24, 12, 9
+
+ RGB 0, 4, 5
+ RGB 9, 6, 8
+ RGB 8, 16, 5
+ RGB 5, 10, 4
+
+ RGB 31, 31, 31
+ RGB 9, 6, 8
+ RGB 18, 9, 9
+ RGB 13, 8, 9
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 2, 5, 22
+ RGB 1, 5, 12
+
+ RGB 31, 31, 31
+ RGB 31, 10, 25
+ RGB 31, 21, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 21, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_2.pal
@@ -1,0 +1,79 @@
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 10, 0, 10
+ RGB 19, 0, 19
+ RGB 31, 0, 31
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_3.pal
@@ -1,0 +1,79 @@
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_4.pal
@@ -1,0 +1,79 @@
+ RGB 24, 12, 9
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 24, 12, 9
+ RGB 31, 31, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+
+ RGB 24, 12, 9
+ RGB 12, 20, 31
+ RGB 19, 8, 31
+ RGB 0, 0, 0
+
+ RGB 12, 20, 31
+ RGB 8, 9, 31
+ RGB 19, 8, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 12, 20, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_5.pal
@@ -1,0 +1,79 @@
+ RGB 24, 12, 9
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 24, 12, 9
+ RGB 31, 31, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 12, 0, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 21, 9, 0
+ RGB 21, 9, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
--- /dev/null
+++ b/data/palettes/debug/bg.pal
@@ -1,0 +1,43 @@
+ ; white
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ ; red
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ ; green
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 00, 00
+
+ ; blue
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/debug/ob.pal
@@ -1,0 +1,42 @@
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ ; red
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ ; green
+ RGB 31, 31, 31
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 00, 00
+
+ ; blue
+ RGB 31, 31, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/diploma.pal
@@ -1,0 +1,39 @@
+ RGB 27, 31, 27
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 07, 06
+ RGB 20, 02, 03
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 10, 31, 09
+ RGB 04, 14, 01
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 22, 16, 08
+ RGB 13, 07, 01
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 15, 31, 31
+ RGB 05, 17, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 11, 11, 19
+ RGB 07, 07, 12
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/mail.pal
@@ -1,0 +1,49 @@
+ RGB 20, 31, 11
+ RGB 31, 19, 00
+ RGB 31, 10, 09
+ RGB 00, 00, 00
+
+ RGB 15, 20, 31
+ RGB 30, 26, 00
+ RGB 31, 12, 00
+ RGB 00, 00, 00
+
+ RGB 24, 17, 31
+ RGB 30, 26, 00
+ RGB 08, 11, 31
+ RGB 00, 00, 00
+
+ RGB 31, 25, 17
+ RGB 31, 18, 04
+ RGB 28, 12, 05
+ RGB 00, 00, 00
+
+ RGB 19, 26, 31
+ RGB 31, 05, 08
+ RGB 31, 09, 31
+ RGB 00, 00, 00
+
+ RGB 31, 19, 28
+ RGB 31, 21, 00
+ RGB 12, 22, 00
+ RGB 00, 00, 00
+
+ RGB 19, 17, 23
+ RGB 30, 26, 00
+ RGB 31, 12, 00
+ RGB 00, 00, 00
+
+ RGB 07, 26, 31
+ RGB 26, 26, 27
+ RGB 31, 11, 11
+ RGB 00, 00, 00
+
+ RGB 21, 31, 21
+ RGB 30, 26, 00
+ RGB 31, 12, 00
+ RGB 00, 00, 00
+
+ RGB 07, 26, 31
+ RGB 31, 31, 00
+ RGB 00, 21, 00
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/map_objects.pal
@@ -1,0 +1,39 @@
+ ; morn
+ RGB 28,31,16, 31,19,10, 31,07,01, 00,00,00 ; red
+ RGB 28,31,16, 31,19,10, 10,09,31, 00,00,00 ; blue
+ RGB 28,31,16, 31,19,10, 07,23,03, 00,00,00 ; green
+ RGB 28,31,16, 31,19,10, 15,10,03, 00,00,00 ; brown
+ RGB 28,31,16, 31,19,10, 30,10,06, 00,00,00 ; pink
+ RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
+ RGB 22,31,10, 12,25,01, 05,14,00, 07,07,07 ; tree
+ RGB 28,31,16, 24,18,07, 20,15,03, 07,07,07 ; rock
+
+ ; day
+ RGB 27,31,27, 31,19,10, 31,07,01, 00,00,00 ; red
+ RGB 27,31,27, 31,19,10, 10,09,31, 00,00,00 ; blue
+ RGB 27,31,27, 31,19,10, 07,23,03, 00,00,00 ; green
+ RGB 27,31,27, 31,19,10, 15,10,03, 00,00,00 ; brown
+ RGB 27,31,27, 31,19,10, 30,10,06, 00,00,00 ; pink
+ RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
+ RGB 22,31,10, 12,25,01, 05,14,00, 07,07,07 ; tree
+ RGB 27,31,27, 24,18,07, 20,15,03, 07,07,07 ; rock
+
+ ; nite
+ RGB 15,14,24, 31,19,10, 31,07,01, 00,00,00 ; red
+ RGB 15,14,24, 31,19,10, 10,09,31, 00,00,00 ; blue
+ RGB 15,14,24, 31,19,10, 07,23,03, 00,00,00 ; green
+ RGB 15,14,24, 31,19,10, 15,10,03, 00,00,00 ; brown
+ RGB 15,14,24, 31,19,10, 30,10,06, 00,00,00 ; pink
+ RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
+ RGB 15,14,24, 08,13,19, 00,11,13, 00,00,00 ; tree
+ RGB 15,14,24, 12,09,15, 08,04,05, 00,00,00 ; rock
+
+ ; dark
+ RGB 01,01,02, 31,19,10, 31,07,01, 00,00,00 ; red
+ RGB 01,01,02, 31,19,10, 10,09,31, 00,00,00 ; blue
+ RGB 01,01,02, 31,19,10, 07,23,03, 00,00,00 ; green
+ RGB 01,01,02, 31,19,10, 15,10,03, 00,00,00 ; brown
+ RGB 01,01,02, 31,19,10, 30,10,06, 00,00,00 ; pink
+ RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
+ RGB 01,01,02, 00,00,00, 00,00,00, 00,00,00 ; tree
+ RGB 01,01,02, 00,00,00, 00,00,00, 00,00,00 ; rock
--- /dev/null
+++ b/data/palettes/mg_mobile.pal
@@ -1,0 +1,24 @@
+ RGB 03, 07, 09
+ RGB 26, 31, 00
+ RGB 20, 16, 03
+ RGB 31, 31, 31
+
+ RGB 13, 24, 29
+ RGB 11, 16, 30
+ RGB 07, 11, 22
+ RGB 05, 06, 18
+
+ RGB 31, 31, 31
+ RGB 20, 26, 31
+ RGB 13, 24, 29
+ RGB 11, 16, 30
+
+ RGB 31, 31, 31
+ RGB 20, 26, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 20, 16, 08
+ RGB 31, 00, 00
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/pack.pal
@@ -1,0 +1,29 @@
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 11, 31
+ RGB 15, 15, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 00, 00, 31
+ RGB 31, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 07, 19, 07
+ RGB 07, 19, 07
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/pack_f.pal
@@ -1,0 +1,29 @@
+ RGB 31, 31, 31
+ RGB 31, 14, 31
+ RGB 31, 07, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 14, 31
+ RGB 31, 07, 31
+ RGB 00, 00, 00
+
+ RGB 15, 15, 31
+ RGB 31, 14, 31
+ RGB 31, 07, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 14, 31
+ RGB 31, 07, 31
+ RGB 31, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 14, 31
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 07, 19, 07
+ RGB 07, 19, 07
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/party_menu.pal
@@ -1,0 +1,69 @@
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 10, 14, 20
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 24, 18, 07
+ RGB 20, 15, 03
+ RGB 07, 07, 07
--- /dev/null
+++ b/data/palettes/pokegear.pal
@@ -1,0 +1,29 @@
+ RGB 28, 31, 20
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 31, 15, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 00, 00, 31
+ RGB 31, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 15, 07, 00
+ RGB 31, 00, 00
--- /dev/null
+++ b/data/palettes/pokegear_f.pal
@@ -1,0 +1,29 @@
+ RGB 28, 31, 20
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 10, 18, 31
+ RGB 13, 06, 31
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 00, 00, 31
+ RGB 31, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 15, 07, 00
+ RGB 31, 00, 00
--- /dev/null
+++ b/data/palettes/predef.pal
@@ -1,0 +1,394 @@
+ RGB 31, 31, 31
+ RGB 22, 25, 19
+ RGB 16, 21, 30
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 27, 28, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 28, 19
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 24, 24
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 23, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 21, 27
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 24, 16
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 25, 30, 26
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 25, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 20, 19
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 26, 19
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 27, 28, 27
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 30, 23
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 24, 29
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 23, 29
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 25, 23, 20
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 26, 18
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 21, 18
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 25, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 22, 21, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 22, 25, 21
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 21, 22
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 20, 20
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 26, 26
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 14, 09
+ RGB 15, 20, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 28, 22
+ RGB 15, 20, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 07, 07, 07
+ RGB 02, 03, 03
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 22, 17
+ RGB 16, 14, 19
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 18, 20, 27
+ RGB 11, 15, 23
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 20, 10
+ RGB 26, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 25, 29
+ RGB 14, 19, 25
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 27, 22, 24
+ RGB 21, 15, 23
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 28, 20, 15
+ RGB 21, 14, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 20, 26, 16
+ RGB 09, 20, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 22, 24
+ RGB 28, 15, 21
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 28, 14
+ RGB 26, 20, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 21, 22
+ RGB 15, 15, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 19, 13
+ RGB 14, 12, 17
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 18, 21
+ RGB 10, 12, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 22, 15, 16
+ RGB 17, 02, 05
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 20, 20
+ RGB 05, 16, 16
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 15, 19
+ RGB 14, 04, 12
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 20, 17, 18
+ RGB 18, 13, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 21, 16
+ RGB 12, 12, 10
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 25, 29
+ RGB 30, 22, 24
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 23, 16
+ RGB 29, 14, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 18, 18, 18
+ RGB 10, 10, 10
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 26, 15
+ RGB 00, 23, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 26, 15
+ RGB 31, 23, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 26, 15
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 26, 19
+ RGB 27, 20, 14
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 20, 10
+ RGB 21, 00, 04
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 20, 10
+ RGB 21, 00, 04
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 26, 16
+ RGB 16, 12, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 28, 26
+ RGB 12, 22, 26
+ RGB 03, 16, 14
+
+ RGB 31, 31, 31
+ RGB 15, 28, 26
+ RGB 23, 24, 24
+ RGB 00, 00, 00
+
+ RGB 31, 31, 24
+ RGB 07, 27, 19
+ RGB 26, 20, 10
+ RGB 19, 12, 08
+
+ RGB 31, 31, 31
+ RGB 31, 28, 14
+ RGB 31, 13, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 18, 21
+ RGB 10, 12, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 21, 16
+ RGB 12, 12, 10
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 14, 00
+ RGB 07, 11, 15
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 21, 22
+ RGB 26, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 27, 04
+ RGB 24, 20, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 13, 25
+ RGB 24, 20, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 19, 29
+ RGB 24, 20, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 22, 24
+ RGB 18, 18, 18
+ RGB 16, 10, 07
+
+ RGB 31, 31, 31
+ RGB 21, 25, 29
+ RGB 18, 18, 18
+ RGB 16, 10, 07
+
+ RGB 31, 31, 31
+ RGB 20, 26, 16
+ RGB 18, 18, 18
+ RGB 16, 10, 07
+
+ RGB 31, 31, 31
+ RGB 31, 28, 14
+ RGB 18, 18, 18
+ RGB 16, 10, 07
+
+ RGB 31, 31, 31
+ RGB 18, 18, 18
+ RGB 26, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 22, 24
+ RGB 28, 15, 21
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 20, 00
+ RGB 16, 19, 29
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 02, 30
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 13, 04
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 28, 04, 02
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 18, 23, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 20, 11
+ RGB 18, 13, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 25, 30, 00
+ RGB 25, 30, 00
+
+ RGB 00, 00, 00
+ RGB 08, 11, 11
+ RGB 21, 21, 21
+ RGB 31, 31, 31
--- /dev/null
+++ b/data/palettes/roofs.pal
@@ -1,0 +1,161 @@
+; group 0 (unused)
+ RGB 21, 21, 21
+ RGB 11, 11, 11
+ RGB 21, 21, 21
+ RGB 11, 11, 11
+
+; group 1 (Olivine)
+ RGB 14, 17, 31
+ RGB 07, 11, 15
+ RGB 09, 09, 17
+ RGB 05, 07, 13
+
+; group 2 (Mahogany)
+ RGB 12, 19, 00
+ RGB 06, 10, 00
+ RGB 06, 09, 07
+ RGB 04, 05, 06
+
+; group 3
+ RGB 21, 21, 21
+ RGB 11, 11, 11
+ RGB 21, 21, 21
+ RGB 17, 08, 07
+
+; group 4 (Ecruteak)
+ RGB 31, 19, 00
+ RGB 27, 10, 05
+ RGB 15, 07, 02
+ RGB 11, 04, 02
+
+; group 5 (Blackthorn)
+ RGB 11, 10, 16
+ RGB 05, 06, 07
+ RGB 03, 04, 08
+ RGB 00, 00, 00
+
+; group 6 (Cinnabar)
+ RGB 31, 10, 00
+ RGB 18, 06, 00
+ RGB 18, 05, 09
+ RGB 17, 08, 07
+
+; group 7 (Cerulean)
+ RGB 17, 27, 31
+ RGB 05, 15, 31
+ RGB 07, 08, 22
+ RGB 07, 07, 16
+
+; group 8 (Azalea)
+ RGB 22, 20, 10
+ RGB 17, 14, 03
+ RGB 11, 11, 05
+ RGB 10, 09, 07
+
+; group 9 (Lake of Rage)
+ RGB 31, 08, 04
+ RGB 09, 09, 08
+ RGB 18, 05, 09
+ RGB 09, 09, 08
+
+; group 10 (Violet)
+ RGB 24, 14, 31
+ RGB 13, 07, 21
+ RGB 12, 03, 18
+ RGB 09, 03, 15
+
+; group 11 (Goldenrod)
+ RGB 25, 25, 00
+ RGB 20, 17, 08
+ RGB 12, 12, 00
+ RGB 10, 09, 05
+
+; group 12 (Vermilion)
+ RGB 27, 23, 01
+ RGB 23, 11, 00
+ RGB 15, 11, 01
+ RGB 11, 10, 01
+
+; group 13 (Pallet)
+ RGB 27, 28, 31
+ RGB 17, 19, 22
+ RGB 14, 14, 18
+ RGB 10, 09, 13
+
+; group 14 (Pewter)
+ RGB 19, 19, 16
+ RGB 10, 12, 15
+ RGB 09, 09, 11
+ RGB 04, 05, 07
+
+; group 15 (Mount Moon Square)
+ RGB 14, 17, 31
+ RGB 07, 11, 15
+ RGB 09, 13, 19
+ RGB 07, 07, 16
+
+; group 16 (Route 23)
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 11, 11, 19
+ RGB 07, 07, 12
+
+; group 17 (Fuchsia)
+ RGB 31, 18, 29
+ RGB 17, 13, 20
+ RGB 14, 06, 12
+ RGB 11, 03, 10
+
+; group 18 (Lavender)
+ RGB 23, 15, 31
+ RGB 16, 05, 31
+ RGB 12, 07, 17
+ RGB 08, 06, 10
+
+; group 19 (Route 28)
+ RGB 21, 21, 25
+ RGB 16, 16, 16
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+
+; group 20
+ RGB 21, 21, 21
+ RGB 11, 11, 11
+ RGB 21, 21, 21
+ RGB 11, 11, 11
+
+; group 21 (Celadon)
+ RGB 19, 31, 15
+ RGB 31, 22, 02
+ RGB 12, 13, 09
+ RGB 09, 12, 03
+
+; group 22 (Cianwood)
+ RGB 15, 10, 31
+ RGB 07, 05, 15
+ RGB 06, 05, 17
+ RGB 02, 02, 08
+
+; group 23 (Viridian)
+ RGB 21, 31, 07
+ RGB 13, 25, 04
+ RGB 09, 14, 08
+ RGB 06, 10, 04
+
+; group 24 (New Bark)
+ RGB 20, 31, 14
+ RGB 11, 23, 05
+ RGB 09, 13, 08
+ RGB 06, 09, 04
+
+; group 25 (Saffron)
+ RGB 31, 26, 00
+ RGB 31, 15, 00
+ RGB 13, 13, 01
+ RGB 08, 08, 01
+
+; group 26 (Cherrygrove)
+ RGB 31, 14, 28
+ RGB 31, 05, 21
+ RGB 14, 07, 17
+ RGB 13, 00, 08
--- /dev/null
+++ b/data/palettes/sgb_border.pal
@@ -1,0 +1,79 @@
+ RGB 24, 06, 06
+ RGB 24, 24, 26
+ RGB 14, 15, 20
+ RGB 04, 07, 10
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 18, 24, 18
+ RGB 31, 26, 15
+ RGB 26, 19, 10
+ RGB 12, 07, 05
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 18, 06, 31
+ RGB 31, 31, 29
+ RGB 31, 12, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 12, 31, 06
+ RGB 22, 26, 30
+ RGB 16, 17, 21
+ RGB 00, 03, 00
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
--- /dev/null
+++ b/data/palettes/slot_machine.pal
@@ -1,0 +1,79 @@
+ RGB 31, 31, 31
+ RGB 24, 25, 28
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 10, 06
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 31, 00
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 15, 31
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 21, 31
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 11
+ RGB 31, 31, 06
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 19, 29
+ RGB 25, 22, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 10, 06
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 30, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 20, 15, 03
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 15, 21, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 20, 15, 03
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 24, 21
+ RGB 31, 13, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/tileset_bg.pal
@@ -1,0 +1,227 @@
+; morn
+
+; gray
+ RGB 28, 31, 16
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+; red
+ RGB 28, 31, 16
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+; green
+ RGB 22, 31, 10
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 07, 07, 07
+; water
+ RGB 31, 31, 31
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 07, 07, 07
+; yellow
+ RGB 28, 31, 16
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+; brown
+ RGB 28, 31, 16
+ RGB 24, 18, 07
+ RGB 20, 15, 03
+ RGB 07, 07, 07
+; roof
+ RGB 28, 31, 16
+ RGB 15, 31, 31
+ RGB 05, 17, 31
+ RGB 07, 07, 07
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
+
+; day
+
+; gray
+ RGB 27, 31, 27
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+; red
+ RGB 27, 31, 27
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+; green
+ RGB 22, 31, 10
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 07, 07, 07
+; water
+ RGB 31, 31, 31
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 07, 07, 07
+; yellow
+ RGB 27, 31, 27
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+; brown
+ RGB 27, 31, 27
+ RGB 24, 18, 07
+ RGB 20, 15, 03
+ RGB 07, 07, 07
+; roof
+ RGB 27, 31, 27
+ RGB 15, 31, 31
+ RGB 05, 17, 31
+ RGB 07, 07, 07
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
+
+; nite
+
+; gray
+ RGB 15, 14, 24
+ RGB 11, 11, 19
+ RGB 07, 07, 12
+ RGB 00, 00, 00
+; red
+ RGB 15, 14, 24
+ RGB 14, 07, 17
+ RGB 13, 00, 08
+ RGB 00, 00, 00
+; green
+ RGB 15, 14, 24
+ RGB 08, 13, 19
+ RGB 00, 11, 13
+ RGB 00, 00, 00
+; water
+ RGB 15, 14, 24
+ RGB 05, 05, 17
+ RGB 03, 03, 10
+ RGB 00, 00, 00
+; yellow
+ RGB 30, 30, 11
+ RGB 16, 14, 18
+ RGB 16, 14, 10
+ RGB 00, 00, 00
+; brown
+ RGB 15, 14, 24
+ RGB 12, 09, 15
+ RGB 08, 04, 05
+ RGB 00, 00, 00
+; roof
+ RGB 15, 14, 24
+ RGB 13, 12, 23
+ RGB 11, 09, 20
+ RGB 00, 00, 00
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
+
+; dark
+
+; gray
+ RGB 01, 01, 02
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; red
+ RGB 01, 01, 02
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; green
+ RGB 01, 01, 02
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; water
+ RGB 01, 01, 02
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; yellow
+ RGB 30, 30, 11
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; brown
+ RGB 01, 01, 02
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; roof
+ RGB 01, 01, 02
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
+
+; indoor
+
+; gray
+ RGB 30, 28, 26
+ RGB 19, 19, 19
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+; red
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+; green
+ RGB 18, 24, 09
+ RGB 15, 20, 01
+ RGB 09, 13, 00
+ RGB 07, 07, 07
+; water
+ RGB 30, 28, 26
+ RGB 15, 16, 31
+ RGB 09, 09, 31
+ RGB 07, 07, 07
+; yellow
+ RGB 30, 28, 26
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+; brown
+ RGB 26, 24, 17
+ RGB 21, 17, 07
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+; roof
+ RGB 30, 28, 26
+ RGB 17, 19, 31
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
+
+; overworld water
+
+; morn/day
+ RGB 23, 23, 31
+ RGB 18, 19, 31
+ RGB 13, 12, 31
+ RGB 07, 07, 07
+; nite
+ RGB 15, 13, 27
+ RGB 10, 09, 20
+ RGB 04, 03, 18
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/title.pal
@@ -1,0 +1,81 @@
+; BG
+ RGB 00, 00, 00
+ RGB 19, 00, 00
+ RGB 15, 08, 31
+ RGB 15, 08, 31
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 15, 16, 31
+ RGB 31, 01, 13
+
+ RGB 00, 00, 00
+ RGB 07, 07, 07
+ RGB 31, 31, 31
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 13, 13, 13
+ RGB 31, 31, 18
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 19, 19, 19
+ RGB 29, 28, 12
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 25, 25, 25
+ RGB 28, 25, 06
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 26, 21, 00
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 11, 11, 19
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+; OBJ
+ RGB 00, 00, 00
+ RGB 10, 00, 15
+ RGB 17, 05, 22
+ RGB 19, 09, 31
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
--- /dev/null
+++ b/data/palettes/town_map.asm
@@ -1,0 +1,34 @@
+ const_def
+ const PAL_TOWNMAP_BORDER ; 0
+ const PAL_TOWNMAP_EARTH ; 1
+ const PAL_TOWNMAP_MOUNTAIN ; 2
+ const PAL_TOWNMAP_CITY ; 3
+ const PAL_TOWNMAP_POI ; 4
+ const PAL_TOWNMAP_POI_MTN ; 5
+
+townmappals: macro
+rept _NARG / 2
+ dn PAL_TOWNMAP_\2, PAL_TOWNMAP_\1
+ shift
+ shift
+endr
+endm
+
+; gfx/pokegear/town_map.png
+ townmappals EARTH, EARTH, EARTH, MOUNTAIN, MOUNTAIN, MOUNTAIN
+ townmappals BORDER, BORDER, EARTH, EARTH, CITY, EARTH
+ townmappals POI, POI_MTN, POI, POI_MTN, EARTH, EARTH
+ townmappals EARTH, MOUNTAIN, MOUNTAIN, MOUNTAIN, BORDER, BORDER
+ townmappals EARTH, EARTH, BORDER, EARTH, EARTH, BORDER
+ townmappals BORDER, BORDER, EARTH, EARTH, EARTH, MOUNTAIN
+ townmappals MOUNTAIN, MOUNTAIN, BORDER, BORDER, BORDER, BORDER
+ townmappals BORDER, BORDER, BORDER, BORDER, BORDER, BORDER
+; gfx/pokegear/pokegear.png
+ townmappals BORDER, BORDER, BORDER, BORDER, POI, POI
+ townmappals POI, BORDER, BORDER, BORDER, BORDER, BORDER
+ townmappals BORDER, BORDER, BORDER, BORDER, CITY, CITY
+ townmappals CITY, CITY, CITY, CITY, CITY, CITY
+ townmappals CITY, CITY, CITY, CITY, CITY, CITY
+ townmappals CITY, BORDER, CITY, CITY, CITY, CITY
+ townmappals CITY, CITY, CITY, CITY, BORDER, BORDER
+ townmappals BORDER, BORDER, BORDER, BORDER, BORDER, BORDER
--- /dev/null
+++ b/data/palettes/trade_room.pal
@@ -1,0 +1,29 @@
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 31, 00, 00
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 15, 23, 30
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 16, 16, 16
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 25, 07, 04
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 03, 22, 08
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 29, 28, 09
+ RGB 31, 31, 31
--- /dev/null
+++ b/data/palettes/unused_title/bg.pal
@@ -1,0 +1,39 @@
+ RGB 00, 00, 00
+ RGB 25, 15, 28
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+
+ RGB 00, 00, 00
+ RGB 17, 07, 22
+ RGB 13, 07, 16
+ RGB 19, 08, 26
+
+ RGB 25, 15, 28
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+ RGB 17, 07, 22
+
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+ RGB 17, 07, 22
+ RGB 13, 07, 16
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 22, 10, 31
+ RGB 19, 08, 26
+ RGB 17, 07, 22
--- /dev/null
+++ b/data/palettes/unused_title/ob.pal
@@ -1,0 +1,319 @@
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 22, 00
+ RGB 31, 27, 00
+ RGB 31, 31, 00
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 16, 31, 00
+ RGB 22, 31, 00
+ RGB 27, 31, 00
+ RGB 31, 31, 00
+
+ RGB 31, 00, 18
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 16, 31, 00
+ RGB 22, 31, 00
+ RGB 27, 31, 00
+ RGB 31, 31, 00
+
+ RGB 24, 18, 31
+ RGB 31, 31, 00
+ RGB 31, 31, 01
+ RGB 31, 31, 03
+
+ RGB 31, 31, 05
+ RGB 31, 31, 08
+ RGB 31, 31, 10
+ RGB 31, 31, 12
+
+ RGB 31, 31, 14
+ RGB 31, 31, 16
+ RGB 31, 31, 18
+ RGB 31, 31, 20
+
+ RGB 31, 31, 22
+ RGB 31, 31, 25
+ RGB 31, 31, 27
+ RGB 31, 31, 29
+
+ RGB 24, 06, 06
+ RGB 01, 01, 01
+ RGB 03, 03, 03
+ RGB 05, 05, 05
+
+ RGB 08, 08, 08
+ RGB 10, 10, 10
+ RGB 12, 12, 12
+ RGB 14, 14, 14
+
+ RGB 16, 16, 16
+ RGB 18, 18, 18
+ RGB 20, 20, 20
+ RGB 22, 22, 22
+
+ RGB 25, 25, 25
+ RGB 27, 27, 27
+ RGB 29, 29, 29
+ RGB 31, 31, 31
+
+ RGB 18, 24, 18
+ RGB 31, 29, 01
+ RGB 31, 27, 03
+ RGB 31, 25, 05
+
+ RGB 31, 22, 08
+ RGB 31, 20, 10
+ RGB 31, 18, 12
+ RGB 31, 16, 14
+
+ RGB 31, 14, 16
+ RGB 31, 12, 18
+ RGB 31, 10, 20
+ RGB 31, 08, 22
+
+ RGB 31, 05, 25
+ RGB 31, 03, 27
+ RGB 31, 01, 29
+ RGB 31, 00, 31
+
+ RGB 18, 06, 31
+ RGB 00, 31, 31
+ RGB 00, 31, 29
+ RGB 00, 31, 27
+
+ RGB 00, 31, 25
+ RGB 00, 31, 22
+ RGB 00, 31, 20
+ RGB 00, 31, 18
+
+ RGB 00, 31, 16
+ RGB 00, 31, 14
+ RGB 00, 31, 12
+ RGB 00, 31, 10
+
+ RGB 00, 31, 08
+ RGB 00, 31, 05
+ RGB 00, 31, 03
+ RGB 00, 31, 01
+
+ RGB 12, 31, 06
+ RGB 00, 00, 31
+ RGB 00, 01, 31
+ RGB 00, 03, 31
+
+ RGB 00, 05, 31
+ RGB 00, 08, 31
+ RGB 00, 10, 31
+ RGB 00, 12, 31
+
+ RGB 00, 14, 31
+ RGB 00, 16, 31
+ RGB 00, 18, 31
+ RGB 00, 20, 31
+
+ RGB 00, 22, 31
+ RGB 00, 25, 31
+ RGB 00, 27, 31
+ RGB 00, 29, 31
+
+ RGB 00, 00, 00
+ RGB 06, 00, 04
+ RGB 19, 02, 09
+ RGB 28, 04, 11
+
+ RGB 31, 07, 16
+ RGB 31, 17, 23
+ RGB 31, 26, 30
+ RGB 07, 05, 10
+
+ RGB 14, 10, 18
+ RGB 20, 20, 25
+ RGB 25, 27, 31
+ RGB 09, 05, 06
+
+ RGB 23, 16, 13
+ RGB 30, 23, 22
+ RGB 31, 28, 28
+ RGB 31, 31, 31
+
+ RGB 06, 31, 31
+ RGB 04, 00, 04
+ RGB 11, 02, 04
+ RGB 17, 02, 04
+
+ RGB 24, 05, 04
+ RGB 28, 07, 04
+ RGB 31, 11, 04
+ RGB 02, 01, 15
+
+ RGB 04, 11, 22
+ RGB 12, 25, 25
+ RGB 20, 31, 31
+ RGB 09, 04, 03
+
+ RGB 22, 11, 08
+ RGB 27, 19, 16
+ RGB 30, 28, 26
+ RGB 31, 31, 31
+
+ RGB 06, 18, 06
+ RGB 04, 04, 02
+ RGB 07, 07, 02
+ RGB 18, 18, 04
+
+ RGB 24, 24, 06
+ RGB 27, 27, 11
+ RGB 31, 31, 20
+ RGB 02, 03, 10
+
+ RGB 04, 05, 13
+ RGB 06, 10, 25
+ RGB 08, 15, 31
+ RGB 04, 00, 06
+
+ RGB 11, 07, 14
+ RGB 21, 16, 23
+ RGB 29, 26, 31
+ RGB 31, 31, 31
+
+ RGB 06, 00, 18
+ RGB 00, 04, 03
+ RGB 02, 09, 05
+ RGB 11, 19, 07
+
+ RGB 16, 24, 08
+ RGB 22, 31, 09
+ RGB 24, 31, 18
+ RGB 03, 01, 03
+
+ RGB 10, 04, 10
+ RGB 20, 08, 20
+ RGB 31, 17, 31
+ RGB 01, 03, 06
+
+ RGB 05, 09, 10
+ RGB 15, 21, 21
+ RGB 23, 25, 25
+ RGB 31, 31, 31
+
+ RGB 00, 18, 31
+ RGB 00, 05, 07
+ RGB 00, 08, 13
+ RGB 00, 12, 17
+
+ RGB 01, 20, 24
+ RGB 04, 27, 31
+ RGB 14, 31, 31
+ RGB 04, 02, 02
+
+ RGB 15, 01, 03
+ RGB 26, 04, 07
+ RGB 31, 13, 16
+ RGB 00, 05, 02
+
+ RGB 01, 11, 03
+ RGB 06, 21, 06
+ RGB 13, 31, 16
+ RGB 31, 31, 31
+
+ RGB 00, 06, 06
+ RGB 00, 01, 08
+ RGB 00, 05, 14
+ RGB 00, 08, 19
+
+ RGB 02, 14, 26
+ RGB 04, 21, 31
+ RGB 06, 26, 31
+ RGB 13, 00, 00
+
+ RGB 27, 07, 00
+ RGB 31, 17, 05
+ RGB 31, 25, 16
+ RGB 02, 04, 00
+
+ RGB 07, 11, 03
+ RGB 17, 19, 05
+ RGB 27, 31, 16
+ RGB 31, 31, 31
+
+ RGB 02, 00, 00
+ RGB 04, 01, 06
+ RGB 11, 03, 14
+ RGB 16, 04, 19
+
+ RGB 20, 07, 22
+ RGB 26, 12, 27
+ RGB 26, 20, 31
+ RGB 04, 07, 00
+
+ RGB 16, 20, 07
+ RGB 24, 28, 15
+ RGB 29, 31, 24
+ RGB 05, 02, 02
+
+ RGB 15, 04, 02
+ RGB 24, 11, 10
+ RGB 31, 22, 20
+ RGB 31, 31, 31
+
+ RGB 00, 00, 14
+ RGB 12, 00, 00
+ RGB 27, 05, 00
+ RGB 31, 15, 05
+
+ RGB 31, 26, 13
+ RGB 31, 30, 21
+ RGB 05, 07, 16
+ RGB 04, 16, 20
+
+ RGB 04, 24, 26
+ RGB 08, 31, 31
+ RGB 23, 31, 31
+ RGB 00, 00, 00
+
+ RGB 05, 05, 05
+ RGB 17, 17, 15
+ RGB 28, 28, 24
+ RGB 31, 31, 31
--- a/data/pokedex/entries.asm
+++ /dev/null
@@ -1,272 +1,0 @@
-INCLUDE "includes.asm"
-
-
-SECTION "Pokedex Entries 001-064", ROMX
-
-PokedexEntries1::
-BulbasaurPokedexEntry:: INCLUDE "data/pokedex/entries/bulbasaur.asm"
-IvysaurPokedexEntry:: INCLUDE "data/pokedex/entries/ivysaur.asm"
-VenusaurPokedexEntry:: INCLUDE "data/pokedex/entries/venusaur.asm"
-CharmanderPokedexEntry:: INCLUDE "data/pokedex/entries/charmander.asm"
-CharmeleonPokedexEntry:: INCLUDE "data/pokedex/entries/charmeleon.asm"
-CharizardPokedexEntry:: INCLUDE "data/pokedex/entries/charizard.asm"
-SquirtlePokedexEntry:: INCLUDE "data/pokedex/entries/squirtle.asm"
-WartortlePokedexEntry:: INCLUDE "data/pokedex/entries/wartortle.asm"
-BlastoisePokedexEntry:: INCLUDE "data/pokedex/entries/blastoise.asm"
-CaterpiePokedexEntry:: INCLUDE "data/pokedex/entries/caterpie.asm"
-MetapodPokedexEntry:: INCLUDE "data/pokedex/entries/metapod.asm"
-ButterfreePokedexEntry:: INCLUDE "data/pokedex/entries/butterfree.asm"
-WeedlePokedexEntry:: INCLUDE "data/pokedex/entries/weedle.asm"
-KakunaPokedexEntry:: INCLUDE "data/pokedex/entries/kakuna.asm"
-BeedrillPokedexEntry:: INCLUDE "data/pokedex/entries/beedrill.asm"
-PidgeyPokedexEntry:: INCLUDE "data/pokedex/entries/pidgey.asm"
-PidgeottoPokedexEntry:: INCLUDE "data/pokedex/entries/pidgeotto.asm"
-PidgeotPokedexEntry:: INCLUDE "data/pokedex/entries/pidgeot.asm"
-RattataPokedexEntry:: INCLUDE "data/pokedex/entries/rattata.asm"
-RaticatePokedexEntry:: INCLUDE "data/pokedex/entries/raticate.asm"
-SpearowPokedexEntry:: INCLUDE "data/pokedex/entries/spearow.asm"
-FearowPokedexEntry:: INCLUDE "data/pokedex/entries/fearow.asm"
-EkansPokedexEntry:: INCLUDE "data/pokedex/entries/ekans.asm"
-ArbokPokedexEntry:: INCLUDE "data/pokedex/entries/arbok.asm"
-PikachuPokedexEntry:: INCLUDE "data/pokedex/entries/pikachu.asm"
-RaichuPokedexEntry:: INCLUDE "data/pokedex/entries/raichu.asm"
-SandshrewPokedexEntry:: INCLUDE "data/pokedex/entries/sandshrew.asm"
-SandslashPokedexEntry:: INCLUDE "data/pokedex/entries/sandslash.asm"
-NidoranFPokedexEntry:: INCLUDE "data/pokedex/entries/nidoran_f.asm"
-NidorinaPokedexEntry:: INCLUDE "data/pokedex/entries/nidorina.asm"
-NidoqueenPokedexEntry:: INCLUDE "data/pokedex/entries/nidoqueen.asm"
-NidoranMPokedexEntry:: INCLUDE "data/pokedex/entries/nidoran_m.asm"
-NidorinoPokedexEntry:: INCLUDE "data/pokedex/entries/nidorino.asm"
-NidokingPokedexEntry:: INCLUDE "data/pokedex/entries/nidoking.asm"
-ClefairyPokedexEntry:: INCLUDE "data/pokedex/entries/clefairy.asm"
-ClefablePokedexEntry:: INCLUDE "data/pokedex/entries/clefable.asm"
-VulpixPokedexEntry:: INCLUDE "data/pokedex/entries/vulpix.asm"
-NinetalesPokedexEntry:: INCLUDE "data/pokedex/entries/ninetales.asm"
-JigglypuffPokedexEntry:: INCLUDE "data/pokedex/entries/jigglypuff.asm"
-WigglytuffPokedexEntry:: INCLUDE "data/pokedex/entries/wigglytuff.asm"
-ZubatPokedexEntry:: INCLUDE "data/pokedex/entries/zubat.asm"
-GolbatPokedexEntry:: INCLUDE "data/pokedex/entries/golbat.asm"
-OddishPokedexEntry:: INCLUDE "data/pokedex/entries/oddish.asm"
-GloomPokedexEntry:: INCLUDE "data/pokedex/entries/gloom.asm"
-VileplumePokedexEntry:: INCLUDE "data/pokedex/entries/vileplume.asm"
-ParasPokedexEntry:: INCLUDE "data/pokedex/entries/paras.asm"
-ParasectPokedexEntry:: INCLUDE "data/pokedex/entries/parasect.asm"
-VenonatPokedexEntry:: INCLUDE "data/pokedex/entries/venonat.asm"
-VenomothPokedexEntry:: INCLUDE "data/pokedex/entries/venomoth.asm"
-DiglettPokedexEntry:: INCLUDE "data/pokedex/entries/diglett.asm"
-DugtrioPokedexEntry:: INCLUDE "data/pokedex/entries/dugtrio.asm"
-MeowthPokedexEntry:: INCLUDE "data/pokedex/entries/meowth.asm"
-PersianPokedexEntry:: INCLUDE "data/pokedex/entries/persian.asm"
-PsyduckPokedexEntry:: INCLUDE "data/pokedex/entries/psyduck.asm"
-GolduckPokedexEntry:: INCLUDE "data/pokedex/entries/golduck.asm"
-MankeyPokedexEntry:: INCLUDE "data/pokedex/entries/mankey.asm"
-PrimeapePokedexEntry:: INCLUDE "data/pokedex/entries/primeape.asm"
-GrowlithePokedexEntry:: INCLUDE "data/pokedex/entries/growlithe.asm"
-ArcaninePokedexEntry:: INCLUDE "data/pokedex/entries/arcanine.asm"
-PoliwagPokedexEntry:: INCLUDE "data/pokedex/entries/poliwag.asm"
-PoliwhirlPokedexEntry:: INCLUDE "data/pokedex/entries/poliwhirl.asm"
-PoliwrathPokedexEntry:: INCLUDE "data/pokedex/entries/poliwrath.asm"
-AbraPokedexEntry:: INCLUDE "data/pokedex/entries/abra.asm"
-KadabraPokedexEntry:: INCLUDE "data/pokedex/entries/kadabra.asm"
-
-
-SECTION "Pokedex Entries 065-128", ROMX
-
-PokedexEntries2::
-AlakazamPokedexEntry:: INCLUDE "data/pokedex/entries/alakazam.asm"
-MachopPokedexEntry:: INCLUDE "data/pokedex/entries/machop.asm"
-MachokePokedexEntry:: INCLUDE "data/pokedex/entries/machoke.asm"
-MachampPokedexEntry:: INCLUDE "data/pokedex/entries/machamp.asm"
-BellsproutPokedexEntry:: INCLUDE "data/pokedex/entries/bellsprout.asm"
-WeepinbellPokedexEntry:: INCLUDE "data/pokedex/entries/weepinbell.asm"
-VictreebelPokedexEntry:: INCLUDE "data/pokedex/entries/victreebel.asm"
-TentacoolPokedexEntry:: INCLUDE "data/pokedex/entries/tentacool.asm"
-TentacruelPokedexEntry:: INCLUDE "data/pokedex/entries/tentacruel.asm"
-GeodudePokedexEntry:: INCLUDE "data/pokedex/entries/geodude.asm"
-GravelerPokedexEntry:: INCLUDE "data/pokedex/entries/graveler.asm"
-GolemPokedexEntry:: INCLUDE "data/pokedex/entries/golem.asm"
-PonytaPokedexEntry:: INCLUDE "data/pokedex/entries/ponyta.asm"
-RapidashPokedexEntry:: INCLUDE "data/pokedex/entries/rapidash.asm"
-SlowpokePokedexEntry:: INCLUDE "data/pokedex/entries/slowpoke.asm"
-SlowbroPokedexEntry:: INCLUDE "data/pokedex/entries/slowbro.asm"
-MagnemitePokedexEntry:: INCLUDE "data/pokedex/entries/magnemite.asm"
-MagnetonPokedexEntry:: INCLUDE "data/pokedex/entries/magneton.asm"
-FarfetchDPokedexEntry:: INCLUDE "data/pokedex/entries/farfetch_d.asm"
-DoduoPokedexEntry:: INCLUDE "data/pokedex/entries/doduo.asm"
-DodrioPokedexEntry:: INCLUDE "data/pokedex/entries/dodrio.asm"
-SeelPokedexEntry:: INCLUDE "data/pokedex/entries/seel.asm"
-DewgongPokedexEntry:: INCLUDE "data/pokedex/entries/dewgong.asm"
-GrimerPokedexEntry:: INCLUDE "data/pokedex/entries/grimer.asm"
-MukPokedexEntry:: INCLUDE "data/pokedex/entries/muk.asm"
-ShellderPokedexEntry:: INCLUDE "data/pokedex/entries/shellder.asm"
-CloysterPokedexEntry:: INCLUDE "data/pokedex/entries/cloyster.asm"
-GastlyPokedexEntry:: INCLUDE "data/pokedex/entries/gastly.asm"
-HaunterPokedexEntry:: INCLUDE "data/pokedex/entries/haunter.asm"
-GengarPokedexEntry:: INCLUDE "data/pokedex/entries/gengar.asm"
-OnixPokedexEntry:: INCLUDE "data/pokedex/entries/onix.asm"
-DrowzeePokedexEntry:: INCLUDE "data/pokedex/entries/drowzee.asm"
-HypnoPokedexEntry:: INCLUDE "data/pokedex/entries/hypno.asm"
-KrabbyPokedexEntry:: INCLUDE "data/pokedex/entries/krabby.asm"
-KinglerPokedexEntry:: INCLUDE "data/pokedex/entries/kingler.asm"
-VoltorbPokedexEntry:: INCLUDE "data/pokedex/entries/voltorb.asm"
-ElectrodePokedexEntry:: INCLUDE "data/pokedex/entries/electrode.asm"
-ExeggcutePokedexEntry:: INCLUDE "data/pokedex/entries/exeggcute.asm"
-ExeggutorPokedexEntry:: INCLUDE "data/pokedex/entries/exeggutor.asm"
-CubonePokedexEntry:: INCLUDE "data/pokedex/entries/cubone.asm"
-MarowakPokedexEntry:: INCLUDE "data/pokedex/entries/marowak.asm"
-HitmonleePokedexEntry:: INCLUDE "data/pokedex/entries/hitmonlee.asm"
-HitmonchanPokedexEntry:: INCLUDE "data/pokedex/entries/hitmonchan.asm"
-LickitungPokedexEntry:: INCLUDE "data/pokedex/entries/lickitung.asm"
-KoffingPokedexEntry:: INCLUDE "data/pokedex/entries/koffing.asm"
-WeezingPokedexEntry:: INCLUDE "data/pokedex/entries/weezing.asm"
-RhyhornPokedexEntry:: INCLUDE "data/pokedex/entries/rhyhorn.asm"
-RhydonPokedexEntry:: INCLUDE "data/pokedex/entries/rhydon.asm"
-ChanseyPokedexEntry:: INCLUDE "data/pokedex/entries/chansey.asm"
-TangelaPokedexEntry:: INCLUDE "data/pokedex/entries/tangela.asm"
-KangaskhanPokedexEntry:: INCLUDE "data/pokedex/entries/kangaskhan.asm"
-HorseaPokedexEntry:: INCLUDE "data/pokedex/entries/horsea.asm"
-SeadraPokedexEntry:: INCLUDE "data/pokedex/entries/seadra.asm"
-GoldeenPokedexEntry:: INCLUDE "data/pokedex/entries/goldeen.asm"
-SeakingPokedexEntry:: INCLUDE "data/pokedex/entries/seaking.asm"
-StaryuPokedexEntry:: INCLUDE "data/pokedex/entries/staryu.asm"
-StarmiePokedexEntry:: INCLUDE "data/pokedex/entries/starmie.asm"
-MrMimePokedexEntry:: INCLUDE "data/pokedex/entries/mr__mime.asm"
-ScytherPokedexEntry:: INCLUDE "data/pokedex/entries/scyther.asm"
-JynxPokedexEntry:: INCLUDE "data/pokedex/entries/jynx.asm"
-ElectabuzzPokedexEntry:: INCLUDE "data/pokedex/entries/electabuzz.asm"
-MagmarPokedexEntry:: INCLUDE "data/pokedex/entries/magmar.asm"
-PinsirPokedexEntry:: INCLUDE "data/pokedex/entries/pinsir.asm"
-TaurosPokedexEntry:: INCLUDE "data/pokedex/entries/tauros.asm"
-
-
-SECTION "Pokedex Entries 129-192", ROMX
-
-PokedexEntries3::
-MagikarpPokedexEntry:: INCLUDE "data/pokedex/entries/magikarp.asm"
-GyaradosPokedexEntry:: INCLUDE "data/pokedex/entries/gyarados.asm"
-LaprasPokedexEntry:: INCLUDE "data/pokedex/entries/lapras.asm"
-DittoPokedexEntry:: INCLUDE "data/pokedex/entries/ditto.asm"
-EeveePokedexEntry:: INCLUDE "data/pokedex/entries/eevee.asm"
-VaporeonPokedexEntry:: INCLUDE "data/pokedex/entries/vaporeon.asm"
-JolteonPokedexEntry:: INCLUDE "data/pokedex/entries/jolteon.asm"
-FlareonPokedexEntry:: INCLUDE "data/pokedex/entries/flareon.asm"
-PorygonPokedexEntry:: INCLUDE "data/pokedex/entries/porygon.asm"
-OmanytePokedexEntry:: INCLUDE "data/pokedex/entries/omanyte.asm"
-OmastarPokedexEntry:: INCLUDE "data/pokedex/entries/omastar.asm"
-KabutoPokedexEntry:: INCLUDE "data/pokedex/entries/kabuto.asm"
-KabutopsPokedexEntry:: INCLUDE "data/pokedex/entries/kabutops.asm"
-AerodactylPokedexEntry:: INCLUDE "data/pokedex/entries/aerodactyl.asm"
-SnorlaxPokedexEntry:: INCLUDE "data/pokedex/entries/snorlax.asm"
-ArticunoPokedexEntry:: INCLUDE "data/pokedex/entries/articuno.asm"
-ZapdosPokedexEntry:: INCLUDE "data/pokedex/entries/zapdos.asm"
-MoltresPokedexEntry:: INCLUDE "data/pokedex/entries/moltres.asm"
-DratiniPokedexEntry:: INCLUDE "data/pokedex/entries/dratini.asm"
-DragonairPokedexEntry:: INCLUDE "data/pokedex/entries/dragonair.asm"
-DragonitePokedexEntry:: INCLUDE "data/pokedex/entries/dragonite.asm"
-MewtwoPokedexEntry:: INCLUDE "data/pokedex/entries/mewtwo.asm"
-MewPokedexEntry:: INCLUDE "data/pokedex/entries/mew.asm"
-ChikoritaPokedexEntry:: INCLUDE "data/pokedex/entries/chikorita.asm"
-BayleefPokedexEntry:: INCLUDE "data/pokedex/entries/bayleef.asm"
-MeganiumPokedexEntry:: INCLUDE "data/pokedex/entries/meganium.asm"
-CyndaquilPokedexEntry:: INCLUDE "data/pokedex/entries/cyndaquil.asm"
-QuilavaPokedexEntry:: INCLUDE "data/pokedex/entries/quilava.asm"
-TyphlosionPokedexEntry:: INCLUDE "data/pokedex/entries/typhlosion.asm"
-TotodilePokedexEntry:: INCLUDE "data/pokedex/entries/totodile.asm"
-CroconawPokedexEntry:: INCLUDE "data/pokedex/entries/croconaw.asm"
-FeraligatrPokedexEntry:: INCLUDE "data/pokedex/entries/feraligatr.asm"
-SentretPokedexEntry:: INCLUDE "data/pokedex/entries/sentret.asm"
-FurretPokedexEntry:: INCLUDE "data/pokedex/entries/furret.asm"
-HoothootPokedexEntry:: INCLUDE "data/pokedex/entries/hoothoot.asm"
-NoctowlPokedexEntry:: INCLUDE "data/pokedex/entries/noctowl.asm"
-LedybaPokedexEntry:: INCLUDE "data/pokedex/entries/ledyba.asm"
-LedianPokedexEntry:: INCLUDE "data/pokedex/entries/ledian.asm"
-SpinarakPokedexEntry:: INCLUDE "data/pokedex/entries/spinarak.asm"
-AriadosPokedexEntry:: INCLUDE "data/pokedex/entries/ariados.asm"
-CrobatPokedexEntry:: INCLUDE "data/pokedex/entries/crobat.asm"
-ChinchouPokedexEntry:: INCLUDE "data/pokedex/entries/chinchou.asm"
-LanturnPokedexEntry:: INCLUDE "data/pokedex/entries/lanturn.asm"
-PichuPokedexEntry:: INCLUDE "data/pokedex/entries/pichu.asm"
-CleffaPokedexEntry:: INCLUDE "data/pokedex/entries/cleffa.asm"
-IgglybuffPokedexEntry:: INCLUDE "data/pokedex/entries/igglybuff.asm"
-TogepiPokedexEntry:: INCLUDE "data/pokedex/entries/togepi.asm"
-TogeticPokedexEntry:: INCLUDE "data/pokedex/entries/togetic.asm"
-NatuPokedexEntry:: INCLUDE "data/pokedex/entries/natu.asm"
-XatuPokedexEntry:: INCLUDE "data/pokedex/entries/xatu.asm"
-MareepPokedexEntry:: INCLUDE "data/pokedex/entries/mareep.asm"
-FlaaffyPokedexEntry:: INCLUDE "data/pokedex/entries/flaaffy.asm"
-AmpharosPokedexEntry:: INCLUDE "data/pokedex/entries/ampharos.asm"
-BellossomPokedexEntry:: INCLUDE "data/pokedex/entries/bellossom.asm"
-MarillPokedexEntry:: INCLUDE "data/pokedex/entries/marill.asm"
-AzumarillPokedexEntry:: INCLUDE "data/pokedex/entries/azumarill.asm"
-SudowoodoPokedexEntry:: INCLUDE "data/pokedex/entries/sudowoodo.asm"
-PolitoedPokedexEntry:: INCLUDE "data/pokedex/entries/politoed.asm"
-HoppipPokedexEntry:: INCLUDE "data/pokedex/entries/hoppip.asm"
-SkiploomPokedexEntry:: INCLUDE "data/pokedex/entries/skiploom.asm"
-JumpluffPokedexEntry:: INCLUDE "data/pokedex/entries/jumpluff.asm"
-AipomPokedexEntry:: INCLUDE "data/pokedex/entries/aipom.asm"
-SunkernPokedexEntry:: INCLUDE "data/pokedex/entries/sunkern.asm"
-SunfloraPokedexEntry:: INCLUDE "data/pokedex/entries/sunflora.asm"
-
-
-SECTION "Pokedex Entries 193-251", ROMX
-
-PokedexEntries4::
-YanmaPokedexEntry:: INCLUDE "data/pokedex/entries/yanma.asm"
-WooperPokedexEntry:: INCLUDE "data/pokedex/entries/wooper.asm"
-QuagsirePokedexEntry:: INCLUDE "data/pokedex/entries/quagsire.asm"
-EspeonPokedexEntry:: INCLUDE "data/pokedex/entries/espeon.asm"
-UmbreonPokedexEntry:: INCLUDE "data/pokedex/entries/umbreon.asm"
-MurkrowPokedexEntry:: INCLUDE "data/pokedex/entries/murkrow.asm"
-SlowkingPokedexEntry:: INCLUDE "data/pokedex/entries/slowking.asm"
-MisdreavusPokedexEntry:: INCLUDE "data/pokedex/entries/misdreavus.asm"
-UnownPokedexEntry:: INCLUDE "data/pokedex/entries/unown.asm"
-WobbuffetPokedexEntry:: INCLUDE "data/pokedex/entries/wobbuffet.asm"
-GirafarigPokedexEntry:: INCLUDE "data/pokedex/entries/girafarig.asm"
-PinecoPokedexEntry:: INCLUDE "data/pokedex/entries/pineco.asm"
-ForretressPokedexEntry:: INCLUDE "data/pokedex/entries/forretress.asm"
-DunsparcePokedexEntry:: INCLUDE "data/pokedex/entries/dunsparce.asm"
-GligarPokedexEntry:: INCLUDE "data/pokedex/entries/gligar.asm"
-SteelixPokedexEntry:: INCLUDE "data/pokedex/entries/steelix.asm"
-SnubbullPokedexEntry:: INCLUDE "data/pokedex/entries/snubbull.asm"
-GranbullPokedexEntry:: INCLUDE "data/pokedex/entries/granbull.asm"
-QwilfishPokedexEntry:: INCLUDE "data/pokedex/entries/qwilfish.asm"
-ScizorPokedexEntry:: INCLUDE "data/pokedex/entries/scizor.asm"
-ShucklePokedexEntry:: INCLUDE "data/pokedex/entries/shuckle.asm"
-HeracrossPokedexEntry:: INCLUDE "data/pokedex/entries/heracross.asm"
-SneaselPokedexEntry:: INCLUDE "data/pokedex/entries/sneasel.asm"
-TeddiursaPokedexEntry:: INCLUDE "data/pokedex/entries/teddiursa.asm"
-UrsaringPokedexEntry:: INCLUDE "data/pokedex/entries/ursaring.asm"
-SlugmaPokedexEntry:: INCLUDE "data/pokedex/entries/slugma.asm"
-MagcargoPokedexEntry:: INCLUDE "data/pokedex/entries/magcargo.asm"
-SwinubPokedexEntry:: INCLUDE "data/pokedex/entries/swinub.asm"
-PiloswinePokedexEntry:: INCLUDE "data/pokedex/entries/piloswine.asm"
-CorsolaPokedexEntry:: INCLUDE "data/pokedex/entries/corsola.asm"
-RemoraidPokedexEntry:: INCLUDE "data/pokedex/entries/remoraid.asm"
-OctilleryPokedexEntry:: INCLUDE "data/pokedex/entries/octillery.asm"
-DelibirdPokedexEntry:: INCLUDE "data/pokedex/entries/delibird.asm"
-MantinePokedexEntry:: INCLUDE "data/pokedex/entries/mantine.asm"
-SkarmoryPokedexEntry:: INCLUDE "data/pokedex/entries/skarmory.asm"
-HoundourPokedexEntry:: INCLUDE "data/pokedex/entries/houndour.asm"
-HoundoomPokedexEntry:: INCLUDE "data/pokedex/entries/houndoom.asm"
-KingdraPokedexEntry:: INCLUDE "data/pokedex/entries/kingdra.asm"
-PhanpyPokedexEntry:: INCLUDE "data/pokedex/entries/phanpy.asm"
-DonphanPokedexEntry:: INCLUDE "data/pokedex/entries/donphan.asm"
-Porygon2PokedexEntry:: INCLUDE "data/pokedex/entries/porygon2.asm"
-StantlerPokedexEntry:: INCLUDE "data/pokedex/entries/stantler.asm"
-SmearglePokedexEntry:: INCLUDE "data/pokedex/entries/smeargle.asm"
-TyroguePokedexEntry:: INCLUDE "data/pokedex/entries/tyrogue.asm"
-HitmontopPokedexEntry:: INCLUDE "data/pokedex/entries/hitmontop.asm"
-SmoochumPokedexEntry:: INCLUDE "data/pokedex/entries/smoochum.asm"
-ElekidPokedexEntry:: INCLUDE "data/pokedex/entries/elekid.asm"
-MagbyPokedexEntry:: INCLUDE "data/pokedex/entries/magby.asm"
-MiltankPokedexEntry:: INCLUDE "data/pokedex/entries/miltank.asm"
-BlisseyPokedexEntry:: INCLUDE "data/pokedex/entries/blissey.asm"
-RaikouPokedexEntry:: INCLUDE "data/pokedex/entries/raikou.asm"
-EnteiPokedexEntry:: INCLUDE "data/pokedex/entries/entei.asm"
-SuicunePokedexEntry:: INCLUDE "data/pokedex/entries/suicune.asm"
-LarvitarPokedexEntry:: INCLUDE "data/pokedex/entries/larvitar.asm"
-PupitarPokedexEntry:: INCLUDE "data/pokedex/entries/pupitar.asm"
-TyranitarPokedexEntry:: INCLUDE "data/pokedex/entries/tyranitar.asm"
-LugiaPokedexEntry:: INCLUDE "data/pokedex/entries/lugia.asm"
-HoOhPokedexEntry:: INCLUDE "data/pokedex/entries/ho_oh.asm"
-CelebiPokedexEntry:: INCLUDE "data/pokedex/entries/celebi.asm"
--- a/data/pokedex/entries/abra.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; AbraPokedexEntry: ; 0x1830d5
- db "PSI@" ; species name
- dw 211, 430 ; height, weight
-
- db "It hypnotizes"
- next "itself so that it"
- next "can teleport away"
- page "when it senses"
- next "danger, even"
- next "if it is asleep.@"
--- a/data/pokedex/entries/aerodactyl.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; AerodactylPokedexEntry: ; 0x1cc576
- db "FOSSIL@" ; species name
- dw 511, 1300 ; height, weight
-
- db "In prehistoric"
- next "times, this"
- next "#MON flew"
- page "freely and"
- next "fearlessly through"
- next "the skies.@"
--- a/data/pokedex/entries/aipom.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; AipomPokedexEntry: ; 0x1cda11
- db "LONG TAIL@" ; species name
- dw 207, 250 ; height, weight
-
- db "It uses its tail"
- next "to hang on to tree"
- next "branches. It uses"
- page "its momentum to"
- next "swing from one"
- next "branch to another.@"
--- a/data/pokedex/entries/alakazam.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; AlakazamPokedexEntry: ; 0x1b8000
- db "PSI@" ; species name
- dw 411, 1060 ; height, weight
-
- db "It has an IQ of"
- next "5000. It calcu-"
- next "lates many things"
- page "in order to gain"
- next "the edge in every"
- next "battle.@"
--- a/data/pokedex/entries/ampharos.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; AmpharosPokedexEntry: ; 0x1cd626
- db "LIGHT@" ; species name
- dw 407, 1360 ; height, weight
-
- db "When it gets dark,"
- next "the light from its"
- next "bright, shiny tail"
- page "can be seen from"
- next "far away on the"
- next "ocean's surface.@"
--- a/data/pokedex/entries/arbok.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ArbokPokedexEntry: ; 0x18203d
- db "COBRA@" ; species name
- dw 1106, 1430 ; height, weight
-
- db "To intimidate"
- next "foes, it spreads"
- next "its chest wide and"
- page "makes eerie sounds"
- next "by expelling air"
- next "from its mouth.@"
--- a/data/pokedex/entries/arcanine.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ArcaninePokedexEntry: ; 0x182f1c
- db "LEGENDARY@" ; species name
- dw 603, 3420 ; height, weight
-
- db "An ancient picture"
- next "scroll shows that"
- next "people were"
- page "attracted to its"
- next "movement as it ran"
- next "through prairies.@"
--- a/data/pokedex/entries/ariados.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; AriadosPokedexEntry: ; 0x1cd083
- db "LONG LEG@" ; species name
- dw 307, 740 ; height, weight
-
- db "Rather than mak-"
- next "ing a nest in one"
- next "specific spot, it"
- page "wanders in search"
- next "of food after"
- next "darkness falls.@"
--- a/data/pokedex/entries/articuno.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ArticunoPokedexEntry: ; 0x1cc632
- db "FREEZE@" ; species name
- dw 507, 1220 ; height, weight
-
- db "Legendary bird"
- next "#MON. As it"
- next "flies through the"
- page "sky, it cools the"
- next "air, causing snow"
- next "to fall.@"
--- a/data/pokedex/entries/azumarill.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; AzumarillPokedexEntry: ; 0x1cd771
- db "AQUARABBIT@" ; species name
- dw 207, 630 ; height, weight
-
- db "The bubble-like"
- next "pattern on its"
- next "stomach helps it"
- page "camouflage itself"
- next "when it's in the"
- next "water.@"
--- a/data/pokedex/entries/bayleef.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; BayleefPokedexEntry: ; 0x1cc9e9
- db "LEAF@" ; species name
- dw 311, 350 ; height, weight
-
- db "The scent that"
- next "wafts from the"
- next "leaves on its neck"
- page "causes anyone who"
- next "smells it to"
- next "become energetic.@"
--- a/data/pokedex/entries/beedrill.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; BeedrillPokedexEntry: ; 0x181c8a
- db "POISON BEE@" ; species name
- dw 303, 650 ; height, weight
-
- db "It uses sharp,"
- next "poisonous stings"
- next "to defeat prey,"
- page "then takes the"
- next "victim back to its"
- next "nest for food.@"
--- a/data/pokedex/entries/bellossom.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; BellossomPokedexEntry: ; 0x1cd69a
- db "FLOWER@" ; species name
- dw 104, 130 ; height, weight
-
- db "When these dance"
- next "together, their"
- next "petals rub against"
- page "each other,"
- next "making pretty,"
- next "relaxing sounds.@"
--- a/data/pokedex/entries/bellsprout.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; BellsproutPokedexEntry: ; 0x1b81a1
- db "FLOWER@" ; species name
- dw 204, 90 ; height, weight
-
- db "If it notices"
- next "anything that"
- next "moves, it"
- page "immediately flings"
- next "its vine at the"
- next "object.@"
--- a/data/pokedex/entries/blastoise.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; BlastoisePokedexEntry: ; 0x1819f9
- db "SHELLFISH@" ; species name
- dw 503, 1890 ; height, weight
-
- db "It firmly plants"
- next "its feet on the"
- next "ground before"
- page "shooting water"
- next "from the jets on"
- next "its back.@"
--- a/data/pokedex/entries/blissey.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; BlisseyPokedexEntry: ; 0x1d14f7
- db "HAPPINESS@" ; species name
- dw 411, 1030 ; height, weight
-
- db "Biting into one"
- next "of the delicious"
- next "eggs that BLISSEY"
- page "provides will make"
- next "everyone around"
- next "smile with joy.@"
--- a/data/pokedex/entries/bulbasaur.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; BulbasaurPokedexEntry: ; 0x181695
- db "SEED@" ; species name
- dw 204, 150 ; height, weight
-
- db "While it is young,"
- next "it uses the"
- next "nutrients that are"
- page "stored in the"
- next "seeds on its back"
- next "in order to grow.@"
--- a/data/pokedex/entries/butterfree.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ButterfreePokedexEntry: ; 0x181b45
- db "BUTTERFLY@" ; species name
- dw 307, 710 ; height, weight
-
- db "It flits from"
- next "flower to flower,"
- next "collecting honey."
- page "It can even"
- next "identify distant"
- next "flowers in bloom.@"
--- a/data/pokedex/entries/caterpie.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CaterpiePokedexEntry: ; 0x181a60
- db "WORM@" ; species name
- dw 100, 60 ; height, weight
-
- db "It crawls into"
- next "foliage where it"
- next "camouflages itself"
- page "among leaves that"
- next "are the same color"
- next "as its body.@"
--- a/data/pokedex/entries/celebi.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CelebiPokedexEntry: ; 0x1d18cc
- db "TIMETRAVEL@" ; species name
- dw 200, 110 ; height, weight
-
- db "Revered as a"
- next "guardian of the"
- next "forest, CELEBI"
- page "appears wherever"
- next "beautiful forests"
- next "exist.@"
--- a/data/pokedex/entries/chansey.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ChanseyPokedexEntry: ; 0x1b942e
- db "EGG@" ; species name
- dw 307, 760 ; height, weight
-
- db "People try to"
- next "catch it for its"
- next "extremely"
- page "nutritious eggs,"
- next "but it rarely can"
- next "be found.@"
--- a/data/pokedex/entries/charizard.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CharizardPokedexEntry: ; 0x1818b3
- db "FLAME@" ; species name
- dw 507, 2000 ; height, weight
-
- db "It uses its wings"
- next "to fly high. The"
- next "temperature of its"
- page "fire increases as"
- next "it gains exper-"
- next "ience in battle.@"
--- a/data/pokedex/entries/charmander.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CharmanderPokedexEntry: ; 0x1817db
- db "LIZARD@" ; species name
- dw 200, 190 ; height, weight
-
- db "If it's healthy,"
- next "the flame on the"
- next "tip of its tail"
- page "will burn vigor-"
- next "ously, even if it"
- next "gets a bit wet.@"
--- a/data/pokedex/entries/charmeleon.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CharmeleonPokedexEntry: ; 0x18184a
- db "FLAME@" ; species name
- dw 307, 420 ; height, weight
-
- db "If it becomes"
- next "agitated during"
- next "battle, it spouts"
- page "intense flames,"
- next "incinerating its"
- next "surroundings.@"
--- a/data/pokedex/entries/chikorita.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ChikoritaPokedexEntry: ; 0x1cc988
- db "LEAF@" ; species name
- dw 211, 140 ; height, weight
-
- db "It loves to bask"
- next "in the sunlight."
- next "It uses the leaf"
- page "on its head to"
- next "seek out warm"
- next "places.@"
--- a/data/pokedex/entries/chinchou.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ChinchouPokedexEntry: ; 0x1cd165
- db "ANGLER@" ; species name
- dw 108, 260 ; height, weight
-
- db "Its antennae, whi-"
- next "ch evolved from a"
- next "fin, have both po-"
- page "sitive and neg-"
- next "ative charges flo-"
- next "wing through them.@"
--- a/data/pokedex/entries/clefable.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ClefablePokedexEntry: ; 0x182530
- db "FAIRY@" ; species name
- dw 403, 880 ; height, weight
-
- db "Said to live in"
- next "quiet, remote"
- next "mountains, this"
- page "type of fairy has"
- next "a strong aversion"
- next "to being seen.@"
--- a/data/pokedex/entries/clefairy.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ClefairyPokedexEntry: ; 0x1824c8
- db "FAIRY@" ; species name
- dw 200, 170 ; height, weight
-
- db "Though rarely"
- next "seen, it becomes"
- next "easier to spot,"
- page "for some reason,"
- next "on the night of a "
- next "full moon.@"
--- a/data/pokedex/entries/cleffa.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CleffaPokedexEntry: ; 0x1cd2bc
- db "STARSHAPE@" ; species name
- dw 100, 70 ; height, weight
-
- db "If the impact site"
- next "of a meteorite is"
- next "found, this"
- page "#MON is certain"
- next "to be within the"
- next "immediate area.@"
--- a/data/pokedex/entries/cloyster.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CloysterPokedexEntry: ; 0x1b8ad9
- db "BIVALVE@" ; species name
- dw 411, 2920 ; height, weight
-
- db "Even a missile"
- next "can't break the"
- next "spikes it uses to"
- page "stab opponents."
- next "They're even hard-"
- next "er than its shell.@"
--- a/data/pokedex/entries/corsola.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CorsolaPokedexEntry: ; 0x1d0c68
- db "CORAL@" ; species name
- dw 200, 110 ; height, weight
-
- db "The points on its"
- next "head absorb"
- next "nutrients from"
- page "clean water. They"
- next "cannot survive in"
- next "polluted water.@"
--- a/data/pokedex/entries/crobat.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CrobatPokedexEntry: ; 0x1cd0f5
- db "BAT@" ; species name
- dw 511, 1650 ; height, weight
-
- db "As a result of its"
- next "pursuit of faster,"
- next "yet more silent"
- page "flight, a new set"
- next "of wings grew on"
- next "its hind legs.@"
--- a/data/pokedex/entries/croconaw.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CroconawPokedexEntry: ; 0x1ccc84
- db "BIG JAW@" ; species name
- dw 307, 550 ; height, weight
-
- db "The tips of its"
- next "fangs are slanted"
- next "backward. Once"
- page "those fangs clamp"
- next "down, the prey has"
- next "no hope of escape.@"
--- a/data/pokedex/entries/cubone.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CubonePokedexEntry: ; 0x1b9068
- db "LONELY@" ; species name
- dw 104, 140 ; height, weight
-
- db "It lost its mother"
- next "after its birth."
- next "It wears its"
- page "mother's skull,"
- next "never revealing"
- next "its true face.@"
--- a/data/pokedex/entries/cyndaquil.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; CyndaquilPokedexEntry: ; 0x1ccabd
- db "FIRE MOUSE@" ; species name
- dw 108, 170 ; height, weight
-
- db "The fire that"
- next "spouts from its"
- next "back burns hottest"
- page "when it is angry."
- next "The flaring flames"
- next "intimidate foes.@"
--- a/data/pokedex/entries/delibird.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DelibirdPokedexEntry: ; 0x1d0db1
- db "DELIVERY@" ; species name
- dw 211, 350 ; height, weight
-
- db "It always carries"
- next "its food with it,"
- next "wherever it goes."
- page "If attacked, it"
- next "throws its food at"
- next "the opponent.@"
--- a/data/pokedex/entries/dewgong.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DewgongPokedexEntry: ; 0x1b8934
- db "SEA LION@" ; species name
- dw 507, 2650 ; height, weight
-
- db "It sleeps under"
- next "shallow ocean"
- next "waters during the"
- page "day, then looks"
- next "for food at night"
- next "when it's cold.@"
--- a/data/pokedex/entries/diglett.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DiglettPokedexEntry: ; 0x182b30
- db "MOLE@" ; species name
- dw 8, 20 ; height, weight
-
- db "It digs under-"
- next "ground and chews"
- next "on tree roots,"
- page "sticking its head"
- next "out only when the"
- next "sun isn't bright.@"
--- a/data/pokedex/entries/ditto.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DittoPokedexEntry: ; 0x1cc13c
- db "TRANSFORM@" ; species name
- dw 100, 90 ; height, weight
-
- db "When it encount-"
- next "ers another DITTO,"
- next "it will move"
- page "faster than normal"
- next "to duplicate that"
- next "opponent exactly.@"
--- a/data/pokedex/entries/dodrio.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DodrioPokedexEntry: ; 0x1b884a
- db "TRIPLEBIRD@" ; species name
- dw 511, 1880 ; height, weight
-
- db "An enemy that"
- next "takes its eyes off"
- next "any of the three"
- page "heads--even for a"
- next "second--will get"
- next "pecked severely.@"
--- a/data/pokedex/entries/doduo.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DoduoPokedexEntry: ; 0x1b87d7
- db "TWIN BIRD@" ; species name
- dw 407, 860 ; height, weight
-
- db "It lives on a"
- next "grassy plain where"
- next "it can see a long"
- page "way. If it sees an"
- next "enemy, it runs"
- next "away at 60 mph.@"
--- a/data/pokedex/entries/donphan.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DonphanPokedexEntry: ; 0x1d10ac
- db "ARMOR@" ; species name
- dw 307, 2650 ; height, weight
-
- db "Because this"
- next "#MON's skin is"
- next "so tough, a normal"
- page "attack won't even"
- next "leave a scratch on"
- next "it.@"
--- a/data/pokedex/entries/dragonair.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DragonairPokedexEntry: ; 0x1cc7dc
- db "DRAGON@" ; species name
- dw 1301, 360 ; height, weight
-
- db "It is called the"
- next "divine #MON."
- next "When its entire"
- page "body brightens"
- next "slightly, the"
- next "weather changes.@"
--- a/data/pokedex/entries/dragonite.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DragonitePokedexEntry: ; 0x1cc843
- db "DRAGON@" ; species name
- dw 703, 4630 ; height, weight
-
- db "It is said that"
- next "somewhere in the"
- next "ocean lies an"
- page "island where these"
- next "gather. Only they"
- next "live there.@"
--- a/data/pokedex/entries/dratini.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DratiniPokedexEntry: ; 0x1cc761
- db "DRAGON@" ; species name
- dw 511, 70 ; height, weight
-
- db "It sheds many lay-"
- next "ers of skin as it"
- next "grows larger. Dur-"
- page "ing this process,"
- next "it is protected by"
- next "a rapid waterfall.@"
--- a/data/pokedex/entries/drowzee.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DrowzeePokedexEntry: ; 0x1b8d0a
- db "HYPNOSIS@" ; species name
- dw 303, 710 ; height, weight
-
- db "When it twitches"
- next "its nose, it can"
- next "tell where someone"
- page "is sleeping and"
- next "what that person"
- next "is dreaming about.@"
--- a/data/pokedex/entries/dugtrio.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DugtrioPokedexEntry: ; 0x182b9d
- db "MOLE@" ; species name
- dw 204, 730 ; height, weight
-
- db "These DIGLETT"
- next "triplets dig over"
- next "60 miles below sea"
- page "level. No one"
- next "knows what it's"
- next "like underground.@"
--- a/data/pokedex/entries/dunsparce.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; DunsparcePokedexEntry: ; 0x1d0593
- db "LAND SNAKE@" ; species name
- dw 411, 310 ; height, weight
-
- db "It hides deep"
- next "inside caves where"
- next "no light ever"
- page "reaches it and"
- next "remains virtually"
- next "motionless there.@"
--- a/data/pokedex/entries/eevee.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; EeveePokedexEntry: ; 0x1cc1b2
- db "EVOLUTION@" ; species name
- dw 100, 140 ; height, weight
-
- db "Its ability to"
- next "evolve into many"
- next "forms allows it to"
- page "adapt smoothly"
- next "and perfectly to"
- next "any environment.@"
--- a/data/pokedex/entries/ekans.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; EkansPokedexEntry: ; 0x181fd4
- db "SNAKE@" ; species name
- dw 607, 150 ; height, weight
-
- db "It flutters the"
- next "tip of its tongue"
- next "to seek out the"
- page "scent of prey,"
- next "then swallows the"
- next "prey whole.@"
--- a/data/pokedex/entries/electabuzz.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ElectabuzzPokedexEntry: ; 0x1b992a
- db "ELECTRIC@" ; species name
- dw 307, 660 ; height, weight
-
- db "When two"
- next "ELECTABUZZ touch,"
- next "they control the"
- page "electric currents"
- next "to communicate"
- next "their feelings.@"
--- a/data/pokedex/entries/electrode.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ElectrodePokedexEntry: ; 0x1b8f19
- db "BALL@" ; species name
- dw 311, 1470 ; height, weight
-
- db "The more energy it"
- next "charges up, the"
- next "faster it gets."
- page "But this also"
- next "makes it more"
- next "likely to explode.@"
--- a/data/pokedex/entries/elekid.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ElekidPokedexEntry: ; 0x1d1398
- db "ELECTRIC@" ; species name
- dw 200, 520 ; height, weight
-
- db "It loves violent"
- next "thunder. The space"
- next "between its horns"
- page "flickers bluish-"
- next "white when it is"
- next "charging energy.@"
--- a/data/pokedex/entries/entei.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; EnteiPokedexEntry: ; 0x1d15dd
- db "VOLCANO@" ; species name
- dw 607, 4370 ; height, weight
-
- db "This brawny"
- next "#MON courses"
- next "around the earth,"
- page "spouting flames"
- next "hotter than a"
- next "volcano's magma.@"
--- a/data/pokedex/entries/espeon.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; EspeonPokedexEntry: ; 0x1d0155
- db "SUN@" ; species name
- dw 211, 580 ; height, weight
-
- db "The tip of its"
- next "forked tail"
- next "quivers when it is"
- page "predicting its"
- next "opponent's next"
- next "move.@"
--- a/data/pokedex/entries/exeggcute.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ExeggcutePokedexEntry: ; 0x1b8f84
- db "EGG@" ; species name
- dw 104, 60 ; height, weight
-
- db "If even one is"
- next "separated from the"
- next "group, the energy"
- page "bond between the"
- next "six will make them"
- next "rejoin instantly.@"
--- a/data/pokedex/entries/exeggutor.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ExeggutorPokedexEntry: ; 0x1b8ff6
- db "COCONUT@" ; species name
- dw 607, 2650 ; height, weight
-
- db "Living in a good"
- next "environment makes"
- next "it grow lots of"
- page "heads. A head that"
- next "drops off becomes"
- next "an EXEGGCUTE.@"
--- a/data/pokedex/entries/farfetch_d.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; FarfetchDPokedexEntry: ; 0x1b876c
- db "WILD DUCK@" ; species name
- dw 207, 330 ; height, weight
-
- db "In order to pre-"
- next "vent their"
- next "extinction, more"
- page "people have made"
- next "an effort to breed"
- next "these #MON.@"
--- a/data/pokedex/entries/fearow.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; FearowPokedexEntry: ; 0x181f64
- db "BEAK@" ; species name
- dw 311, 840 ; height, weight
-
- db "It uses its long"
- next "beak to attack. It"
- next "has a surprisingly"
- page "long reach, so it"
- next "must be treated"
- next "with caution.@"
--- a/data/pokedex/entries/feraligatr.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; FeraligatrPokedexEntry: ; 0x1cccf9
- db "BIG JAW@" ; species name
- dw 707, 1960 ; height, weight
-
- db "Although it has a"
- next "massive body, its"
- next "powerful hind legs"
- page "enable it to move"
- next "quickly, even on"
- next "the ground.@"
--- a/data/pokedex/entries/flaaffy.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; FlaaffyPokedexEntry: ; 0x1cd5b8
- db "WOOL@" ; species name
- dw 207, 290 ; height, weight
-
- db "Because of its"
- next "rubbery, electric-"
- next "ity-resistant"
- page "skin, it can store"
- next "lots of electric-"
- next "ity in its fur.@"
--- a/data/pokedex/entries/flareon.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; FlareonPokedexEntry: ; 0x1cc2ec
- db "FLAME@" ; species name
- dw 211, 550 ; height, weight
-
- db "Once it has stored"
- next "up enough heat,"
- next "this #MON's"
- page "body temperature"
- next "can reach up to"
- next "1700 degrees.@"
--- a/data/pokedex/entries/forretress.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ForretressPokedexEntry: ; 0x1d0524
- db "BAGWORM@" ; species name
- dw 311, 2770 ; height, weight
-
- db "Usually found"
- next "hanging on to a"
- next "fat tree trunk. It"
- page "shoots out bits of"
- next "its shell when it"
- next "sees action.@"
--- a/data/pokedex/entries/furret.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; FurretPokedexEntry: ; 0x1ccddd
- db "LONG BODY@" ; species name
- dw 511, 720 ; height, weight
-
- db "It lives in narrow"
- next "burrows that fit"
- next "its slim body. The"
- page "deeper the nests"
- next "go, the more maze-"
- next "like they become.@"
--- a/data/pokedex/entries/gastly.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GastlyPokedexEntry: ; 0x1b8b4a
- db "GAS@" ; species name
- dw 403, 2 ; height, weight
-
- db "It wraps its op-"
- next "ponent in its gas-"
- next "like body, slowly"
- page "weakening its prey"
- next "by poisoning it"
- next "through the skin.@"
--- a/data/pokedex/entries/gengar.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GengarPokedexEntry: ; 0x1b8c25
- db "SHADOW@" ; species name
- dw 411, 890 ; height, weight
-
- db "Hiding in people's"
- next "shadows at night,"
- next "it absorbs their"
- page "heat. The chill it"
- next "causes makes the"
- next "victims shake.@"
--- a/data/pokedex/entries/geodude.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GeodudePokedexEntry: ; 0x1b83a1
- db "ROCK@" ; species name
- dw 104, 440 ; height, weight
-
- db "Proud of their"
- next "sturdy bodies,"
- next "they bash against"
- page "each other in a"
- next "contest to prove"
- next "whose is harder.@"
--- a/data/pokedex/entries/girafarig.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GirafarigPokedexEntry: ; 0x1d0446
- db "LONG NECK@" ; species name
- dw 411, 910 ; height, weight
-
- db "When it is in"
- next "danger, its tail"
- next "uses some sort of"
- page "mysterious powers"
- next "to drive away the"
- next "enemy.@"
--- a/data/pokedex/entries/gligar.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GligarPokedexEntry: ; 0x1d0604
- db "FLYSCORPIO@" ; species name
- dw 307, 1430 ; height, weight
-
- db "It builds its nest"
- next "on a steep cliff."
- next "When it is done"
- page "gliding, it hops"
- next "along the ground"
- next "back to its nest.@"
--- a/data/pokedex/entries/gloom.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GloomPokedexEntry: ; 0x1828a6
- db "WEED@" ; species name
- dw 207, 190 ; height, weight
-
- db "The smell from its"
- next "drool-like syrup"
- next "and the pollen on"
- page "its petals is so"
- next "bad, it may make"
- next "opponents faint.@"
--- a/data/pokedex/entries/golbat.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GolbatPokedexEntry: ; 0x1827c4
- db "BAT@" ; species name
- dw 503, 1210 ; height, weight
-
- db "When it plunges"
- next "its fangs into its"
- next "prey, it instantly"
- page "draws and gulps"
- next "down more than ten"
- next "ounces of blood.@"
--- a/data/pokedex/entries/goldeen.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GoldeenPokedexEntry: ; 0x1b9626
- db "GOLDFISH@" ; species name
- dw 200, 330 ; height, weight
-
- db "During spawning"
- next "season, they swim"
- next "gracefully in the"
- page "water, searching"
- next "for their perfect"
- next "mate.@"
--- a/data/pokedex/entries/golduck.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GolduckPokedexEntry: ; 0x182d55
- db "DUCK@" ; species name
- dw 507, 1690 ; height, weight
-
- db "It swims grace-"
- next "fully along on the"
- next "quiet, slow-moving"
- page "rivers and lakes"
- next "of which it is so"
- next "fond.@"
--- a/data/pokedex/entries/golem.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GolemPokedexEntry: ; 0x1b8481
- db "MEGATON@" ; species name
- dw 407, 6620 ; height, weight
-
- db "Its rock-like body"
- next "is so durable,"
- next "even high-powered"
- page "dynamite blasts"
- next "fail to scratch"
- next "its rugged hide.@"
--- a/data/pokedex/entries/granbull.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GranbullPokedexEntry: ; 0x1d074a
- db "FAIRY@" ; species name
- dw 407, 1070 ; height, weight
-
- db "It can make most"
- next "any #MON run"
- next "away simply by"
- page "opening its mouth"
- next "wide to reveal its"
- next "big fangs.@"
--- a/data/pokedex/entries/graveler.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GravelerPokedexEntry: ; 0x1b840c
- db "ROCK@" ; species name
- dw 303, 2320 ; height, weight
-
- db "It travels by rol-"
- next "ling on mountain"
- next "paths. If it gains"
- page "too much speed, it"
- next "stops by running"
- next "into huge rocks.@"
--- a/data/pokedex/entries/grimer.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GrimerPokedexEntry: ; 0x1b89a2
- db "SLUDGE@" ; species name
- dw 211, 660 ; height, weight
-
- db "When two of these"
- next "#MON's bodies"
- next "are combined"
- page "together, new"
- next "poisons are"
- next "created.@"
--- a/data/pokedex/entries/growlithe.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GrowlithePokedexEntry: ; 0x182eaa
- db "PUPPY@" ; species name
- dw 204, 420 ; height, weight
-
- db "It controls a big"
- next "territory. If it"
- next "detects an unknown"
- page "smell, it roars"
- next "loudly to force"
- next "out the intruder.@"
--- a/data/pokedex/entries/gyarados.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; GyaradosPokedexEntry: ; 0x1cc065
- db "ATROCIOUS@" ; species name
- dw 2104, 5180 ; height, weight
-
- db "It appears when-"
- next "ever there is"
- next "world conflict,"
- page "burning down any"
- next "place it travels"
- next "through.@"
--- a/data/pokedex/entries/haunter.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HaunterPokedexEntry: ; 0x1b8bbd
- db "GAS@" ; species name
- dw 503, 2 ; height, weight
-
- db "It hides in the"
- next "dark, planning to"
- next "take the life of"
- page "the next living"
- next "thing that wanders"
- next "close by.@"
--- a/data/pokedex/entries/heracross.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HeracrossPokedexEntry: ; 0x1d0907
- db "SINGLEHORN@" ; species name
- dw 411, 1190 ; height, weight
-
- db "With its Herculean"
- next "powers, it can"
- next "easily throw arou-"
- page "nd an object that"
- next "is 100 times its"
- next "own weight.@"
--- a/data/pokedex/entries/hitmonchan.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HitmonchanPokedexEntry: ; 0x1b91a4
- db "PUNCHING@" ; species name
- dw 407, 1110 ; height, weight
-
- db "To increase the"
- next "strength of all"
- next "its punch moves,"
- page "it spins its arms"
- next "just before making"
- next "contact.@"
--- a/data/pokedex/entries/hitmonlee.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HitmonleePokedexEntry: ; 0x1b913f
- db "KICKING@" ; species name
- dw 411, 1100 ; height, weight
-
- db "It is also called"
- next "the Kick Master."
- next "It uses its"
- page "elastic legs to"
- next "execute every"
- next "known kick.@"
--- a/data/pokedex/entries/hitmontop.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HitmontopPokedexEntry: ; 0x1d12c0
- db "HANDSTAND@" ; species name
- dw 407, 1060 ; height, weight
-
- db "After doing a"
- next "handstand to"
- next "throw off the"
- page "opponent's timing,"
- next "it presents its"
- next "fancy kick moves.@"
--- a/data/pokedex/entries/ho_oh.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HoOhPokedexEntry: ; 0x1d185d
- db "RAINBOW@" ; species name
- dw 1206, 4390 ; height, weight
-
- db "It will reveal"
- next "itself before a"
- next "pure-hearted"
- page "trainer by shining"
- next "its bright rain-"
- next "bow-colored wings.@"
--- a/data/pokedex/entries/hoothoot.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HoothootPokedexEntry: ; 0x1cce58
- db "OWL@" ; species name
- dw 204, 470 ; height, weight
-
- db "It begins to hoot"
- next "at the same time"
- next "every day. Some"
- page "trainers use them"
- next "in place of"
- next "clocks.@"
--- a/data/pokedex/entries/hoppip.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HoppipPokedexEntry: ; 0x1cd8b5
- db "COTTONWEED@" ; species name
- dw 104, 10 ; height, weight
-
- db "It can be carried"
- next "away on even the"
- next "gentlest breeze."
- page "It may even float"
- next "all the way to the"
- next "next town.@"
--- a/data/pokedex/entries/horsea.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HorseaPokedexEntry: ; 0x1b9553
- db "DRAGON@" ; species name
- dw 104, 180 ; height, weight
-
- db "When they're in a"
- next "safe location,"
- next "they can be seen"
- page "playfully tangling"
- next "their tails"
- next "together.@"
--- a/data/pokedex/entries/houndoom.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HoundoomPokedexEntry: ; 0x1d0f66
- db "DARK@" ; species name
- dw 407, 770 ; height, weight
-
- db "The pungent-"
- next "smelling flame"
- next "that shoots from"
- page "its mouth results"
- next "from toxins burn-"
- next "ing in its body.@"
--- a/data/pokedex/entries/houndour.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HoundourPokedexEntry: ; 0x1d0eff
- db "DARK@" ; species name
- dw 200, 240 ; height, weight
-
- db "Around dawn, its"
- next "ominous howl"
- next "echoes through the"
- page "area to announce"
- next "that this is its"
- next "territory.@"
--- a/data/pokedex/entries/hypno.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; HypnoPokedexEntry: ; 0x1b8d80
- db "HYPNOSIS@" ; species name
- dw 503, 1670 ; height, weight
-
- db "The longer it"
- next "swings its"
- next "pendulum, the"
- page "longer the effects"
- next "of its hypnosis"
- next "last.@"
--- a/data/pokedex/entries/igglybuff.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; IgglybuffPokedexEntry: ; 0x1cd32c
- db "BALLOON@" ; species name
- dw 100, 20 ; height, weight
-
- db "Instead of walking"
- next "with its short"
- next "legs, it moves"
- page "around by bouncing"
- next "on its soft,"
- next "tender body.@"
--- a/data/pokedex/entries/ivysaur.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; IvysaurPokedexEntry: ; 0x181702
- db "SEED@" ; species name
- dw 303, 290 ; height, weight
-
- db "The bulb on its"
- next "back grows as it"
- next "absorbs nutrients."
- page "The bulb gives off"
- next "a pleasant aroma"
- next "when it blooms.@"
--- a/data/pokedex/entries/jigglypuff.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; JigglypuffPokedexEntry: ; 0x182673
- db "BALLOON@" ; species name
- dw 108, 120 ; height, weight
-
- db "It rolls its cute"
- next "eyes as it sings a"
- next "soothing lullaby."
- page "Its gentle song"
- next "puts anyone who"
- next "hears it to sleep.@"
--- a/data/pokedex/entries/jolteon.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; JolteonPokedexEntry: ; 0x1cc28b
- db "LIGHTNING@" ; species name
- dw 207, 540 ; height, weight
-
- db "The negatively"
- next "charged ions"
- next "generated in its"
- page "fur create a"
- next "constant sparking"
- next "noise.@"
--- a/data/pokedex/entries/jumpluff.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; JumpluffPokedexEntry: ; 0x1cd998
- db "COTTONWEED@" ; species name
- dw 207, 70 ; height, weight
-
- db "Even in the fierc-"
- next "est wind, it can"
- next "control its fluff"
- page "to make its way to"
- next "any place in the"
- next "world it wants.@"
--- a/data/pokedex/entries/jynx.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; JynxPokedexEntry: ; 0x1b98c5
- db "HUMANSHAPE@" ; species name
- dw 407, 900 ; height, weight
-
- db "It has several"
- next "different cry pat-"
- next "terns, each of"
- page "which seems to"
- next "have its own"
- next "meaning.@"
--- a/data/pokedex/entries/kabuto.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KabutoPokedexEntry: ; 0x1cc497
- db "SHELLFISH@" ; species name
- dw 108, 250 ; height, weight
-
- db "Three hundred"
- next "million years ago,"
- next "it hid on the sea"
- page "floor. It also has"
- next "eyes on its back"
- next "that glow.@"
--- a/data/pokedex/entries/kabutops.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KabutopsPokedexEntry: ; 0x1cc507
- db "SHELLFISH@" ; species name
- dw 403, 890 ; height, weight
-
- db "It was able to"
- next "swim quickly thro-"
- next "ugh the water by"
- page "compactly folding"
- next "up its razor-sharp"
- next "sickles.@"
--- a/data/pokedex/entries/kadabra.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KadabraPokedexEntry: ; 0x18313c
- db "PSI@" ; species name
- dw 403, 1250 ; height, weight
-
- db "When it closes its"
- next "eyes, twice as"
- next "many alpha parti-"
- page "cles come out of"
- next "the surface of its"
- next "body.@"
--- a/data/pokedex/entries/kakuna.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KakunaPokedexEntry: ; 0x181c23
- db "COCOON@" ; species name
- dw 200, 220 ; height, weight
-
- db "Nearly incapable"
- next "of movement, it"
- next "leans against"
- page "stout trees while"
- next "waiting for its"
- next "evolution.@"
--- a/data/pokedex/entries/kangaskhan.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KangaskhanPokedexEntry: ; 0x1b94f6
- db "PARENT@" ; species name
- dw 703, 1760 ; height, weight
-
- db "To avoid"
- next "crushing the"
- next "baby it carries in"
- page "its pouch, it"
- next "always sleeps"
- next "standing up.@"
--- a/data/pokedex/entries/kingdra.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KingdraPokedexEntry: ; 0x1d0fd1
- db "DRAGON@" ; species name
- dw 511, 3350 ; height, weight
-
- db "It stores energy"
- next "by sleeping at"
- next "underwater depths"
- page "at which no other"
- next "life forms can"
- next "survive.@"
--- a/data/pokedex/entries/kingler.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KinglerPokedexEntry: ; 0x1b8e45
- db "PINCER@" ; species name
- dw 403, 1320 ; height, weight
-
- db "Its oversized claw"
- next "is very powerful,"
- next "but when it's not"
- page "in battle, the"
- next "claw just gets in"
- next "the way.@"
--- a/data/pokedex/entries/koffing.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KoffingPokedexEntry: ; 0x1b9276
- db "POISON GAS@" ; species name
- dw 200, 20 ; height, weight
-
- db "If one gets close"
- next "enough to it when"
- next "it expels poison-"
- page "ous gas, the gas"
- next "swirling inside it"
- next "can be seen.@"
--- a/data/pokedex/entries/krabby.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; KrabbyPokedexEntry: ; 0x1b8ddd
- db "RIVER CRAB@" ; species name
- dw 104, 140 ; height, weight
-
- db "If it is unable"
- next "to find food, it"
- next "will absorb"
- page "nutrients by"
- next "swallowing a"
- next "mouthful of sand.@"
--- a/data/pokedex/entries/lanturn.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; LanturnPokedexEntry: ; 0x1cd1de
- db "LIGHT@" ; species name
- dw 311, 500 ; height, weight
-
- db "This #MON uses"
- next "the bright part of"
- next "its body, which"
- page "changed from a"
- next "dorsal fin, to"
- next "lure prey.@"
--- a/data/pokedex/entries/lapras.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; LaprasPokedexEntry: ; 0x1cc0cd
- db "TRANSPORT@" ; species name
- dw 802, 4850 ; height, weight
-
- db "This gentle"
- next "#MON loves to"
- next "give people rides"
- page "and provides a ve-"
- next "ry comfortable way"
- next "to get around.@"
--- a/data/pokedex/entries/larvitar.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; LarvitarPokedexEntry: ; 0x1d169c
- db "ROCK SKIN@" ; species name
- dw 200, 1590 ; height, weight
-
- db "Born deep under-"
- next "ground, this"
- next "#MON becomes a"
- page "pupa after eating"
- next "enough dirt to"
- next "make a mountain.@"
--- a/data/pokedex/entries/ledian.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; LedianPokedexEntry: ; 0x1ccfa0
- db "FIVE STAR@" ; species name
- dw 407, 780 ; height, weight
-
- db "In the daytime"
- next "when it gets warm,"
- next "it curls up inside"
- page "a big leaf and"
- next "drifts off into"
- next "a deep slumber.@"
--- a/data/pokedex/entries/ledyba.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; LedybaPokedexEntry: ; 0x1ccf2c
- db "FIVE STAR@" ; species name
- dw 303, 240 ; height, weight
-
- db "It is timid and"
- next "clusters together"
- next "with others. The"
- page "fluid secreted by"
- next "its feet indicates"
- next "its location.@"
--- a/data/pokedex/entries/lickitung.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; LickitungPokedexEntry: ; 0x1b9210
- db "LICKING@" ; species name
- dw 311, 1440 ; height, weight
-
- db "It has a tongue"
- next "that is over 6'6''"
- next "long. It uses this"
- page "long tongue to"
- next "lick its body"
- next "clean.@"
--- a/data/pokedex/entries/lugia.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; LugiaPokedexEntry: ; 0x1d17e9
- db "DIVING@" ; species name
- dw 1701, 4760 ; height, weight
-
- db "It has an incred-"
- next "ible ability to"
- next "calm raging sto-"
- page "rms. It is said"
- next "that LUGIA appears"
- next "when storms start.@"
--- a/data/pokedex/entries/machamp.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MachampPokedexEntry: ; 0x1b8133
- db "SUPERPOWER@" ; species name
- dw 503, 2870 ; height, weight
-
- db "With four arms"
- next "that react more"
- next "quickly than it"
- page "can think, it can"
- next "execute many"
- next "punches at once.@"
--- a/data/pokedex/entries/machoke.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MachokePokedexEntry: ; 0x1b80cb
- db "SUPERPOWER@" ; species name
- dw 411, 1550 ; height, weight
-
- db "This tough #MON"
- next "always stays in"
- next "the zone. Its"
- page "muscles become"
- next "thicker after"
- next "every battle.@"
--- a/data/pokedex/entries/machop.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MachopPokedexEntry: ; 0x1b8065
- db "SUPERPOWER@" ; species name
- dw 207, 430 ; height, weight
-
- db "It trains by"
- next "lifting rocks in"
- next "the mountains. It"
- page "can even pick up a"
- next "GRAVELER with"
- next "ease.@"
--- a/data/pokedex/entries/magby.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MagbyPokedexEntry: ; 0x1d140e
- db "LIVE COAL@" ; species name
- dw 204, 470 ; height, weight
-
- db "It naturally spits"
- next "an 1100-degree"
- next "flame. It is said"
- page "when many appear,"
- next "it heralds a"
- next "volcanic eruption.@"
--- a/data/pokedex/entries/magcargo.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MagcargoPokedexEntry: ; 0x1d0b21
- db "LAVA@" ; species name
- dw 207, 1210 ; height, weight
-
- db "Its body is as hot"
- next "as lava and is"
- next "always billowing."
- page "Flames will"
- next "occasionally burst"
- next "from its shell.@"
--- a/data/pokedex/entries/magikarp.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MagikarpPokedexEntry: ; 0x1cc000
- db "FISH@" ; species name
- dw 211, 220 ; height, weight
-
- db "This weak and"
- next "pathetic #MON"
- next "gets easily pushed"
- page "along rivers when"
- next "there are strong"
- next "currents.@"
--- a/data/pokedex/entries/magmar.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MagmarPokedexEntry: ; 0x1b9994
- db "SPITFIRE@" ; species name
- dw 403, 980 ; height, weight
-
- db "It moves more"
- next "frequently in hot"
- next "areas. It can heal"
- page "itself by dipping"
- next "its wound into"
- next "lava.@"
--- a/data/pokedex/entries/magnemite.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MagnemitePokedexEntry: ; 0x1b869d
- db "MAGNET@" ; species name
- dw 100, 130 ; height, weight
-
- db "The electricity"
- next "emitted by the"
- next "units on each side"
- page "of its body cause"
- next "it to become a"
- next "strong magnet.@"
--- a/data/pokedex/entries/magneton.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MagnetonPokedexEntry: ; 0x1b870a
- db "MAGNET@" ; species name
- dw 303, 1320 ; height, weight
-
- db "When many"
- next "MAGNETON gather"
- next "together, the"
- page "resulting magnetic"
- next "storm disrupts"
- next "radio waves.@"
--- a/data/pokedex/entries/mankey.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MankeyPokedexEntry: ; 0x182dbd
- db "PIG MONKEY@" ; species name
- dw 108, 620 ; height, weight
-
- db "It lives in groups"
- next "in the treetops."
- next "If it loses sight"
- page "of its group, it"
- next "becomes infuriated"
- next "by its loneliness.@"
--- a/data/pokedex/entries/mantine.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MantinePokedexEntry: ; 0x1d0e25
- db "KITE@" ; species name
- dw 611, 4850 ; height, weight
-
- db "It swims along"
- next "freely, eating"
- next "things that swim"
- page "into its mouth."
- next "Its whole body is"
- next "very coarse.@"
--- a/data/pokedex/entries/mareep.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MareepPokedexEntry: ; 0x1cd551
- db "WOOL@" ; species name
- dw 200, 170 ; height, weight
-
- db "It stores lots of"
- next "air in its soft"
- next "fur, allowing it"
- page "to stay cool in"
- next "summer and warm"
- next "in winter.@"
--- a/data/pokedex/entries/marill.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MarillPokedexEntry: ; 0x1cd705
- db "AQUAMOUSE@" ; species name
- dw 104, 190 ; height, weight
-
- db "The fur on its"
- next "body naturally"
- next "repels water. It"
- page "can stay dry, even"
- next "when it plays in"
- next "the water.@"
--- a/data/pokedex/entries/marowak.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MarowakPokedexEntry: ; 0x1b90d2
- db "BONEKEEPER@" ; species name
- dw 303, 990 ; height, weight
-
- db "Somewhere in the"
- next "world is a ceme-"
- next "tery just for"
- page "MAROWAK. It gets"
- next "its bones from"
- next "those graves.@"
--- a/data/pokedex/entries/meganium.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MeganiumPokedexEntry: ; 0x1cca54
- db "HERB@" ; species name
- dw 511, 2220 ; height, weight
-
- db "Anyone who stands"
- next "beside it becomes"
- next "refreshed, just as"
- page "if they were"
- next "relaxing in a"
- next "sunny forest.@"
--- a/data/pokedex/entries/meowth.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MeowthPokedexEntry: ; 0x182c08
- db "SCRATCHCAT@" ; species name
- dw 104, 90 ; height, weight
-
- db "It loves things"
- next "that sparkle. When"
- next "it sees a shiny"
- page "object, the gold"
- next "coin on its head"
- next "shines too.@"
--- a/data/pokedex/entries/metapod.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MetapodPokedexEntry: ; 0x181ace
- db "COCOON@" ; species name
- dw 204, 220 ; height, weight
-
- db "This is its pre-"
- next "evolved form. At"
- next "this stage, it can"
- page "only harden, so it"
- next "remains motionless"
- next "to avoid attack.@"
--- a/data/pokedex/entries/mew.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MewPokedexEntry: ; 0x1cc915
- db "NEW SPECIE@" ; species name
- dw 104, 90 ; height, weight
-
- db "Because it can"
- next "learn any move,"
- next "some people began"
- page "research to see if"
- next "it is the ancestor"
- next "of all #MON.@"
--- a/data/pokedex/entries/mewtwo.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MewtwoPokedexEntry: ; 0x1cc8ae
- db "GENETIC@" ; species name
- dw 607, 2690 ; height, weight
-
- db "Said to rest qui-"
- next "etly in an"
- next "undiscovered cave,"
- page "this #MON was"
- next "created solely for"
- next "battling.@"
--- a/data/pokedex/entries/miltank.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MiltankPokedexEntry: ; 0x1d1482
- db "MILK COW@" ; species name
- dw 311, 1660 ; height, weight
-
- db "In order to milk a"
- next "MILTANK, one must"
- next "have a knack for"
- page "rhythmically pull-"
- next "ing up and down"
- next "on its udders.@"
--- a/data/pokedex/entries/misdreavus.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MisdreavusPokedexEntry: ; 0x1d0301
- db "SCREECH@" ; species name
- dw 204, 20 ; height, weight
-
- db "It loves to watch"
- next "people it's scar-"
- next "ed. It frightens"
- page "them by screaming"
- next "loudly or appear-"
- next "ing suddenly.@"
--- a/data/pokedex/entries/moltres.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MoltresPokedexEntry: ; 0x1cc706
- db "FLAME@" ; species name
- dw 607, 1320 ; height, weight
-
- db "Legendary bird"
- next "#MON. It is"
- next "said to migrate"
- page "from the south"
- next "along with the"
- next "spring.@"
--- a/data/pokedex/entries/mr__mime.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MrMimePokedexEntry: ; 0x1b97ea
- db "BARRIER@" ; species name
- dw 403, 1200 ; height, weight
-
- db "It uses the"
- next "mysterious"
- next "power it has in"
- page "its fingers to"
- next "solidify air into"
- next "an invisible wall.@"
--- a/data/pokedex/entries/muk.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MukPokedexEntry: ; 0x1b89fc
- db "SLUDGE@" ; species name
- dw 311, 660 ; height, weight
-
- db "As it moves, a"
- next "very strong poison"
- next "leaks from it,"
- page "making the ground"
- next "there barren for"
- next "three years.@"
--- a/data/pokedex/entries/murkrow.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; MurkrowPokedexEntry: ; 0x1d021e
- db "DARKNESS@" ; species name
- dw 108, 50 ; height, weight
-
- db "It hides any shiny"
- next "object it finds in"
- next "a secret location."
- page "MURKROW and"
- next "MEOWTH loot one"
- next "another's stashes.@"
--- a/data/pokedex/entries/natu.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NatuPokedexEntry: ; 0x1cd47d
- db "LITTLE BIRD@" ; species name
- dw 8, 40 ; height, weight
-
- db "It is extremely"
- next "good at climbing"
- next "tree trunks and"
- page "likes to eat the"
- next "new sprouts on"
- next "the trees.@"
--- a/data/pokedex/entries/nidoking.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NidokingPokedexEntry: ; 0x182463
- db "DRILL@" ; species name
- dw 407, 1370 ; height, weight
-
- db "It uses its thick"
- next "arms, legs and"
- next "tail to attack"
- page "forcefully. Melee"
- next "combat is its"
- next "specialty.@"
--- a/data/pokedex/entries/nidoqueen.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NidoqueenPokedexEntry: ; 0x18232e
- db "DRILL@" ; species name
- dw 403, 1320 ; height, weight
-
- db "The hard scales"
- next "that cover its"
- next "strong body serve"
- page "as excellent"
- next "protection from"
- next "any attack.@"
--- a/data/pokedex/entries/nidoran_f.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NidoranFPokedexEntry: ; 0x18224b
- db "POISON PIN@" ; species name
- dw 104, 150 ; height, weight
-
- db "Small and very"
- next "docile, it pro-"
- next "tects itself with"
- page "its small, poison-"
- next "ous horn when"
- next "attacked.@"
--- a/data/pokedex/entries/nidoran_m.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NidoranMPokedexEntry: ; 0x182392
- db "POISON PIN@" ; species name
- dw 108, 200 ; height, weight
-
- db "It constantly"
- next "moves its large"
- next "ears in many"
- page "directions in"
- next "order to detect"
- next "danger right away.@"
--- a/data/pokedex/entries/nidorina.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NidorinaPokedexEntry: ; 0x1822b6
- db "POISON PIN@" ; species name
- dw 207, 440 ; height, weight
-
- db "It has a docile"
- next "nature. If it is"
- next "threatened with"
- page "attack, it raises"
- next "the barbs that are"
- next "all over its body.@"
--- a/data/pokedex/entries/nidorino.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NidorinoPokedexEntry: ; 0x1823fd
- db "POISON PIN@" ; species name
- dw 211, 430 ; height, weight
-
- db "It is easily"
- next "agitated and uses"
- next "its horn for"
- page "offense as soon as"
- next "it notices an"
- next "attacker.@"
--- a/data/pokedex/entries/ninetales.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NinetalesPokedexEntry: ; 0x18260c
- db "FOX@" ; species name
- dw 307, 440 ; height, weight
-
- db "It is said to live"
- next "a thousand years,"
- next "and each of its"
- page "tails is loaded"
- next "with supernatural"
- next "powers.@"
--- a/data/pokedex/entries/noctowl.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; NoctowlPokedexEntry: ; 0x1cceb9
- db "OWL@" ; species name
- dw 503, 900 ; height, weight
-
- db "Its extremely soft"
- next "feathers make no"
- next "sound in flight."
- page "It silently sneaks"
- next "up on prey without"
- next "being detected.@"
--- a/data/pokedex/entries/octillery.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; OctilleryPokedexEntry: ; 0x1d0d42
- db "JET@" ; species name
- dw 211, 630 ; height, weight
-
- db "Its instinct is to"
- next "bury itself in"
- next "holes. It often"
- page "steals the nesting"
- next "holes of others to"
- next "sleep in them.@"
--- a/data/pokedex/entries/oddish.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; OddishPokedexEntry: ; 0x182836
- db "WEED@" ; species name
- dw 108, 120 ; height, weight
-
- db "During the day, it"
- next "stays in the cold"
- next "underground to"
- page "avoid the sun."
- next "It grows by bath-"
- next "ing in moonlight.@"
--- a/data/pokedex/entries/omanyte.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; OmanytePokedexEntry: ; 0x1cc3c1
- db "SPIRAL@" ; species name
- dw 104, 170 ; height, weight
-
- db "In prehistoric"
- next "times, it swam on"
- next "the sea floor,"
- page "eating plankton."
- next "Its fossils are"
- next "sometimes found.@"
--- a/data/pokedex/entries/omastar.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; OmastarPokedexEntry: ; 0x1cc42e
- db "SPIRAL@" ; species name
- dw 303, 770 ; height, weight
-
- db "Its heavy shell"
- next "allowed it to"
- next "reach only nearby"
- page "food. This could"
- next "be the reason it"
- next "is extinct.@"
--- a/data/pokedex/entries/onix.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; OnixPokedexEntry: ; 0x1b8c98
- db "ROCK SNAKE@" ; species name
- dw 2810, 4630 ; height, weight
-
- db "As it digs through"
- next "the ground, it"
- next "absorbs many hard"
- page "objects. This is"
- next "what makes its"
- next "body so solid.@"
--- a/data/pokedex/entries/paras.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ParasPokedexEntry: ; 0x18297f
- db "MUSHROOM@" ; species name
- dw 100, 120 ; height, weight
-
- db "The tochukaso"
- next "growing on this"
- next "#MON's back"
- page "orders it to"
- next "extract juice from"
- next "tree trunks.@"
--- a/data/pokedex/entries/parasect.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ParasectPokedexEntry: ; 0x1829e2
- db "MUSHROOM@" ; species name
- dw 303, 650 ; height, weight
-
- db "When nothing's"
- next "left to extract"
- next "from the bug, the"
- page "mushrooms on its"
- next "back leave spores"
- next "on the bug's egg.@"
--- a/data/pokedex/entries/persian.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PersianPokedexEntry: ; 0x182c78
- db "CLASSY CAT@" ; species name
- dw 303, 710 ; height, weight
-
- db "Behind its lithe,"
- next "elegant appearance"
- next "lies a barbaric"
- page "side. It will tear"
- next "apart its prey on"
- next "a mere whim.@"
--- a/data/pokedex/entries/phanpy.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PhanpyPokedexEntry: ; 0x1d1038
- db "LONG NOSE@" ; species name
- dw 108, 740 ; height, weight
-
- db "During the desert-"
- next "ed morning hours,"
- next "it comes ashore"
- page "where it deftly"
- next "uses its trunk to"
- next "take a shower.@"
--- a/data/pokedex/entries/pichu.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PichuPokedexEntry: ; 0x1cd243
- db "TINY MOUSE@" ; species name
- dw 100, 40 ; height, weight
-
- db "It is unskilled at"
- next "storing electric"
- next "power. Any kind of"
- page "shock causes it to"
- next "discharge energy"
- next "spontaneously.@"
--- a/data/pokedex/entries/pidgeot.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PidgeotPokedexEntry: ; 0x181dd7
- db "BIRD@" ; species name
- dw 411, 870 ; height, weight
-
- db "Its outstanding"
- next "vision allows it"
- next "to spot splashing"
- page "MAGIKARP, even"
- next "while flying at"
- next "3300 feet.@"
--- a/data/pokedex/entries/pidgeotto.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PidgeottoPokedexEntry: ; 0x181d75
- db "BIRD@" ; species name
- dw 307, 660 ; height, weight
-
- db "It slowly flies in"
- next "a circular pat-"
- next "tern, all the"
- page "while keeping a"
- next "sharp lookout for"
- next "prey.@"
--- a/data/pokedex/entries/pidgey.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PidgeyPokedexEntry: ; 0x181cfa
- db "TINY BIRD@" ; species name
- dw 100, 40 ; height, weight
-
- db "It rapidly flaps"
- next "its wings in the"
- next "grass, stirring up"
- page "a dust cloud that"
- next "drives insect prey"
- next "out into the open.@"
--- a/data/pokedex/entries/pikachu.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PikachuPokedexEntry: ; 0x1820ad
- db "MOUSE@" ; species name
- dw 104, 130 ; height, weight
-
- db "When it is anger-"
- next "ed, it immediately"
- next "discharges the"
- page "energy stored in"
- next "the pouches in its"
- next "cheeks.@"
--- a/data/pokedex/entries/piloswine.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PiloswinePokedexEntry: ; 0x1d0c01
- db "SWINE@" ; species name
- dw 307, 1230 ; height, weight
-
- db "Although its legs"
- next "are short, its"
- next "rugged hooves"
- page "prevent it from"
- next "slipping, even on"
- next "icy ground.@"
--- a/data/pokedex/entries/pineco.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PinecoPokedexEntry: ; 0x1d04b0
- db "BAGWORM@" ; species name
- dw 200, 160 ; height, weight
-
- db "It spits out a"
- next "fluid that it uses"
- next "to glue tree bark"
- page "to its body. The"
- next "fluid hardens when"
- next "it touches air.@"
--- a/data/pokedex/entries/pinsir.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PinsirPokedexEntry: ; 0x1b99fb
- db "STAGBEETLE@" ; species name
- dw 411, 1210 ; height, weight
-
- db "When the tempera-"
- next "ture drops at"
- next "night, it sleeps"
- page "on treetops or"
- next "among roots where"
- next "it is well hidden.@"
--- a/data/pokedex/entries/politoed.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PolitoedPokedexEntry: ; 0x1cd84b
- db "FROG@" ; species name
- dw 307, 750 ; height, weight
-
- db "When it expands"
- next "its throat to"
- next "croak out a tune,"
- page "nearby POLIWAG and"
- next "POLIWHIRL gather"
- next "immediately.@"
--- a/data/pokedex/entries/poliwag.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PoliwagPokedexEntry: ; 0x182f91
- db "TADPOLE@" ; species name
- dw 200, 270 ; height, weight
-
- db "The swirl on its"
- next "belly is its"
- next "insides showing"
- page "through the skin."
- next "It looks clearer"
- next "after it eats.@"
--- a/data/pokedex/entries/poliwhirl.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PoliwhirlPokedexEntry: ; 0x182ffd
- db "TADPOLE@" ; species name
- dw 303, 440 ; height, weight
-
- db "Though it is"
- next "skilled at walk-"
- next "ing, it prefers to"
- page "live underwater"
- next "where there is"
- next "less danger.@"
--- a/data/pokedex/entries/poliwrath.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PoliwrathPokedexEntry: ; 0x183066
- db "TADPOLE@" ; species name
- dw 403, 1190 ; height, weight
-
- db "It can use its"
- next "well-developed"
- next "arms and legs to"
- page "run on the surface"
- next "of the water for a"
- next "split second.@"
--- a/data/pokedex/entries/ponyta.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PonytaPokedexEntry: ; 0x1b84f2
- db "FIRE HORSE@" ; species name
- dw 303, 660 ; height, weight
-
- db "Training by"
- next "jumping over grass"
- next "that grows longer"
- page "every day has made"
- next "it a world-class"
- next "jumper.@"
--- a/data/pokedex/entries/porygon.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PorygonPokedexEntry: ; 0x1cc353
- db "VIRTUAL@" ; species name
- dw 207, 800 ; height, weight
-
- db "An artificial"
- next "#MON created"
- next "due to extensive"
- page "research, it can"
- next "perform only what"
- next "is in its program.@"
--- a/data/pokedex/entries/porygon2.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; Porygon2PokedexEntry: ; 0x1d110c
- db "VIRTUAL@" ; species name
- dw 200, 720 ; height, weight
-
- db "This manmade"
- next "#MON evolved"
- next "from the latest"
- page "technology. It"
- next "may have unprog-"
- next "rammed reactions.@"
--- a/data/pokedex/entries/primeape.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PrimeapePokedexEntry: ; 0x182e39
- db "PIG MONKEY@" ; species name
- dw 303, 710 ; height, weight
-
- db "It will beat up"
- next "anyone who makes"
- next "it mad, even if it"
- page "has to chase them"
- next "until the end of"
- next "the world.@"
--- a/data/pokedex/entries/psyduck.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PsyduckPokedexEntry: ; 0x182cee
- db "DUCK@" ; species name
- dw 207, 430 ; height, weight
-
- db "The only time it"
- next "can use its psy-"
- next "chic power is when"
- page "its sleeping brain"
- next "cells happen to"
- next "wake.@"
--- a/data/pokedex/entries/pupitar.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; PupitarPokedexEntry: ; 0x1d1709
- db "HARD SHELL@" ; species name
- dw 311, 3350 ; height, weight
-
- db "It will not stay"
- next "still, even while"
- next "it's a pupa. It"
- page "already has arms"
- next "and legs under its"
- next "solid shell.@"
--- a/data/pokedex/entries/quagsire.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; QuagsirePokedexEntry: ; 0x1d00dd
- db "WATER FISH@" ; species name
- dw 407, 1650 ; height, weight
-
- db "Its body is always"
- next "slimy. It often"
- next "bangs its head on"
- page "the river bottom"
- next "as it swims but"
- next "seems not to care.@"
--- a/data/pokedex/entries/quilava.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; QuilavaPokedexEntry: ; 0x1ccb33
- db "VOLCANO@" ; species name
- dw 211, 420 ; height, weight
-
- db "Before battle, it"
- next "turns its back on"
- next "its opponent to"
- page "demonstrate how"
- next "ferociously its"
- next "fire blazes.@"
--- a/data/pokedex/entries/qwilfish.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; QwilfishPokedexEntry: ; 0x1d07b1
- db "BALLOON@" ; species name
- dw 108, 90 ; height, weight
-
- db "When faced with a"
- next "larger opponent,"
- next "it swallows as"
- page "much water as it"
- next "can to match the"
- next "opponent's size.@"
--- a/data/pokedex/entries/raichu.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; RaichuPokedexEntry: ; 0x182117
- db "MOUSE@" ; species name
- dw 207, 660 ; height, weight
-
- db "If its electric"
- next "pouches run empty,"
- next "it raises its tail"
- page "to gather electri-"
- next "city from the"
- next "atmosphere.@"
--- a/data/pokedex/entries/raikou.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; RaikouPokedexEntry: ; 0x1d156b
- db "THUNDER@" ; species name
- dw 603, 3920 ; height, weight
-
- db "This rough #MON"
- next "stores energy"
- next "inside its body,"
- page "then sweeps across"
- next "the land, shooting"
- next "off electricity.@"
--- a/data/pokedex/entries/rapidash.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; RapidashPokedexEntry: ; 0x1b855e
- db "FIRE HORSE@" ; species name
- dw 507, 2090 ; height, weight
-
- db "It just loves to"
- next "gallop. The faster"
- next "it goes, the long-"
- page "er the swaying"
- next "flames of its mane"
- next "will become.@"
--- a/data/pokedex/entries/raticate.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; RaticatePokedexEntry: ; 0x181ea3
- db "RAT@" ; species name
- dw 204, 410 ; height, weight
-
- db "The webs on its"
- next "hind legs enable"
- next "it to cross"
- page "rivers. It search-"
- next "es wide areas for"
- next "food.@"
--- a/data/pokedex/entries/rattata.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; RattataPokedexEntry: ; 0x181e3d
- db "RAT@" ; species name
- dw 100, 80 ; height, weight
-
- db "This #MON's"
- next "impressive vital-"
- next "ity allows it to"
- page "live anywhere. It"
- next "also multiplies"
- next "very quickly.@"
--- a/data/pokedex/entries/remoraid.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; RemoraidPokedexEntry: ; 0x1d0cd3
- db "JET@" ; species name
- dw 200, 260 ; height, weight
-
- db "To escape from an"
- next "attacker, it may"
- next "shoot water out of"
- page "its mouth, then"
- next "use that force to"
- next "swim backward.@"
--- a/data/pokedex/entries/rhydon.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; RhydonPokedexEntry: ; 0x1b93c5
- db "DRILL@" ; species name
- dw 603, 2650 ; height, weight
-
- db "By lightly spin-"
- next "ning its drill-"
- next "like horn, it can"
- page "easily shatter"
- next "even a diamond in"
- next "the rough.@"
--- a/data/pokedex/entries/rhyhorn.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; RhyhornPokedexEntry: ; 0x1b935d
- db "SPIKES@" ; species name
- dw 303, 2540 ; height, weight
-
- db "It can remember"
- next "only one thing at"
- next "a time. Once it"
- page "starts rushing, it"
- next "forgets why it"
- next "started.@"
--- a/data/pokedex/entries/sandshrew.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SandshrewPokedexEntry: ; 0x182184
- db "MOUSE@" ; species name
- dw 200, 260 ; height, weight
-
- db "It prefers dry,"
- next "sandy places"
- next "because it uses"
- page "the sand to"
- next "protect itself"
- next "when threatened.@"
--- a/data/pokedex/entries/sandslash.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SandslashPokedexEntry: ; 0x1821e7
- db "MOUSE@" ; species name
- dw 303, 650 ; height, weight
-
- db "Adept at climbing"
- next "trees, it rolls"
- next "into a spiny ball,"
- page "then attacks its"
- next "enemies from"
- next "above.@"
--- a/data/pokedex/entries/scizor.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ScizorPokedexEntry: ; 0x1d0821
- db "SCISSORS@" ; species name
- dw 511, 2600 ; height, weight
-
- db "This #MON's"
- next "pincers, which"
- next "contain steel, can"
- page "crush any hard"
- next "object it gets a"
- next "hold of into bits.@"
--- a/data/pokedex/entries/scyther.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ScytherPokedexEntry: ; 0x1b9851
- db "MANTIS@" ; species name
- dw 411, 1230 ; height, weight
-
- db "It's very proud of"
- next "its speed. It"
- next "moves so fast that"
- page "its opponent does"
- next "not even know what"
- next "knocked it down.@"
--- a/data/pokedex/entries/seadra.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SeadraPokedexEntry: ; 0x1b95b8
- db "DRAGON@" ; species name
- dw 311, 550 ; height, weight
-
- db "The male raises"
- next "the young. If it"
- next "is approached, it"
- page "uses its toxic"
- next "spikes to fend off"
- next "the intruder.@"
--- a/data/pokedex/entries/seaking.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SeakingPokedexEntry: ; 0x1b9690
- db "GOLDFISH@" ; species name
- dw 403, 860 ; height, weight
-
- db "When autumn comes,"
- next "the males patrol"
- next "the area around"
- page "their nests in"
- next "order to protect"
- next "their offspring.@"
--- a/data/pokedex/entries/seel.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SeelPokedexEntry: ; 0x1b88bf
- db "SEA LION@" ; species name
- dw 307, 1980 ; height, weight
-
- db "The light blue fur"
- next "that covers it"
- next "keeps it protected"
- page "against the cold."
- next "It loves iceberg-"
- next "filled oceans.@"
--- a/data/pokedex/entries/sentret.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SentretPokedexEntry: ; 0x1ccd6b
- db "SCOUT@" ; species name
- dw 207, 130 ; height, weight
-
- db "When acting as a"
- next "lookout, it warns"
- next "others of danger"
- page "by screeching and"
- next "hitting the ground"
- next "with its tail.@"
--- a/data/pokedex/entries/shellder.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ShellderPokedexEntry: ; 0x1b8a68
- db "BIVALVE@" ; species name
- dw 100, 90 ; height, weight
-
- db "Clamping on to an"
- next "opponent reveals"
- next "its vulnerable"
- page "parts, so it uses"
- next "this move only as"
- next "a last resort.@"
--- a/data/pokedex/entries/shuckle.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ShucklePokedexEntry: ; 0x1d088e
- db "MOLD@" ; species name
- dw 200, 450 ; height, weight
-
- db "The fluid secreted"
- next "by its toes carves"
- next "holes in rocks for"
- page "nesting and can be"
- next "mixed with BERRIES"
- next "to make a drink.@"
--- a/data/pokedex/entries/skarmory.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SkarmoryPokedexEntry: ; 0x1d0e8c
- db "ARMOR BIRD@" ; species name
- dw 507, 1110 ; height, weight
-
- db "The feathers that"
- next "it sheds are very"
- next "sharp. It is said"
- page "that people once"
- next "used the feathers"
- next "as swords.@"
--- a/data/pokedex/entries/skiploom.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SkiploomPokedexEntry: ; 0x1cd928
- db "COTTONWEED@" ; species name
- dw 200, 20 ; height, weight
-
- db "As soon as it"
- next "rains, it closes"
- next "its flower and"
- page "hides in the shade"
- next "of a tree to avoid"
- next "getting wet.@"
--- a/data/pokedex/entries/slowbro.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SlowbroPokedexEntry: ; 0x1b8635
- db "HERMITCRAB@" ; species name
- dw 503, 1730 ; height, weight
-
- db "An attached"
- next "SHELLDER won't let"
- next "go because of the"
- page "tasty flavor that"
- next "oozes out of its"
- next "tail.@"
--- a/data/pokedex/entries/slowking.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SlowkingPokedexEntry: ; 0x1d0292
- db "ROYAL@" ; species name
- dw 607, 1750 ; height, weight
-
- db "Every time it ya-"
- next "wns, SHELLDER"
- next "injects more poi-"
- page "son into it. The"
- next "poison makes it"
- next "more intelligent.@"
--- a/data/pokedex/entries/slowpoke.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SlowpokePokedexEntry: ; 0x1b85d3
- db "DOPEY@" ; species name
- dw 311, 790 ; height, weight
-
- db "It is always so"
- next "absent-minded that"
- next "it won't react,"
- page "even if its"
- next "flavorful tail is"
- next "bitten.@"
--- a/data/pokedex/entries/slugma.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SlugmaPokedexEntry: ; 0x1d0ab8
- db "LAVA@" ; species name
- dw 204, 770 ; height, weight
-
- db "These group to-"
- next "gether in areas"
- next "that are hotter"
- page "than normal. If it"
- next "cools off, its"
- next "skin hardens.@"
--- a/data/pokedex/entries/smeargle.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SmearglePokedexEntry: ; 0x1d11e0
- db "PAINTER@" ; species name
- dw 311, 1280 ; height, weight
-
- db "The color of the"
- next "mysterious fluid"
- next "secreted from its"
- page "tail is predeter-"
- next "mined for each"
- next "SMEARGLE.@"
--- a/data/pokedex/entries/smoochum.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SmoochumPokedexEntry: ; 0x1d132b
- db "KISS@" ; species name
- dw 104, 130 ; height, weight
-
- db "The sensitivity of"
- next "its lips develops"
- next "most quickly."
- page "It uses them to"
- next "try to identify"
- next "unknown objects.@"
--- a/data/pokedex/entries/sneasel.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SneaselPokedexEntry: ; 0x1d097a
- db "SHARP CLAW@" ; species name
- dw 211, 620 ; height, weight
-
- db "This cunning"
- next "#MON hides"
- next "under the cover"
- page "of darkness,"
- next "waiting to attack"
- next "its prey.@"
--- a/data/pokedex/entries/snorlax.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SnorlaxPokedexEntry: ; 0x1cc5cf
- db "SLEEPING@" ; species name
- dw 611, 10140 ; height, weight
-
- db "This #MON's"
- next "stomach is so"
- next "strong, even"
- page "eating moldy or"
- next "rotten food will"
- next "not affect it.@"
--- a/data/pokedex/entries/snubbull.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SnubbullPokedexEntry: ; 0x1d06e0
- db "FAIRY@" ; species name
- dw 200, 170 ; height, weight
-
- db "In truth, it is a"
- next "cowardly #MON."
- next "It growls eagerly"
- page "in order to hide"
- next "its fear from its"
- next "opponent.@"
--- a/data/pokedex/entries/spearow.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SpearowPokedexEntry: ; 0x181f03
- db "TINY BIRD@" ; species name
- dw 100, 40 ; height, weight
-
- db "To protect its"
- next "territory, it"
- next "flies around"
- page "ceaselessly,"
- next "making high-"
- next "pitched cries.@"
--- a/data/pokedex/entries/spinarak.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SpinarakPokedexEntry: ; 0x1cd012
- db "STRINGSPIT@" ; species name
- dw 108, 190 ; height, weight
-
- db "If prey becomes"
- next "ensnared in its"
- next "nest of spun"
- page "string, it waits"
- next "motionlessly until"
- next "it becomes dark.@"
--- a/data/pokedex/entries/squirtle.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SquirtlePokedexEntry: ; 0x181926
- db "TINYTURTLE@" ; species name
- dw 108, 200 ; height, weight
-
- db "When it feels"
- next "threatened, it"
- next "draws its legs"
- page "inside its shell"
- next "and sprays water"
- next "from its mouth.@"
--- a/data/pokedex/entries/stantler.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; StantlerPokedexEntry: ; 0x1d1174
- db "BIG HORN@" ; species name
- dw 407, 1570 ; height, weight
-
- db "The round balls"
- next "found on the"
- next "fallen antlers can"
- page "be ground into a"
- next "powder that aids"
- next "in sleeping.@"
--- a/data/pokedex/entries/starmie.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; StarmiePokedexEntry: ; 0x1b9776
- db "MYSTERIOUS@" ; species name
- dw 307, 1760 ; height, weight
-
- db "It is said that it"
- next "uses the seven-"
- next "colored core of"
- page "its body to send"
- next "electric waves"
- next "into outer space.@"
--- a/data/pokedex/entries/staryu.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; StaryuPokedexEntry: ; 0x1b9702
- db "STARSHAPE@" ; species name
- dw 207, 760 ; height, weight
-
- db "When the stars"
- next "twinkle at night,"
- next "it floats up from"
- page "the sea floor, and"
- next "its body's center"
- next "core flickers.@"
--- a/data/pokedex/entries/steelix.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SteelixPokedexEntry: ; 0x1d067c
- db "IRON SNAKE@" ; species name
- dw 3002, 8820 ; height, weight
-
- db "The many small"
- next "metal particles"
- next "that cover this"
- page "#MON's body"
- next "reflect bright"
- next "light well.@"
--- a/data/pokedex/entries/sudowoodo.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SudowoodoPokedexEntry: ; 0x1cd7d9
- db "IMITATION@" ; species name
- dw 311, 840 ; height, weight
-
- db "If a tree branch"
- next "shakes when there"
- next "is no wind, it's a"
- page "SUDOWOODO, not a"
- next "tree. It hides"
- next "from the rain.@"
--- a/data/pokedex/entries/suicune.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SuicunePokedexEntry: ; 0x1d1642
- db "AURORA@" ; species name
- dw 607, 4120 ; height, weight
-
- db "This divine"
- next "#MON blows"
- next "around the world,"
- page "always in search"
- next "of a pure"
- next "reservoir.@"
--- a/data/pokedex/entries/sunflora.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SunfloraPokedexEntry: ; 0x1cdaef
- db "SUN@" ; species name
- dw 207, 190 ; height, weight
-
- db "As the hot season"
- next "approaches, the"
- next "petals on this"
- page "#MON's face"
- next "become more vivid"
- next "and lively.@"
--- a/data/pokedex/entries/sunkern.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SunkernPokedexEntry: ; 0x1cda87
- db "SEED@" ; species name
- dw 100, 40 ; height, weight
-
- db "It is very weak."
- next "Its only means of"
- next "defense is to"
- page "shake its leaves"
- next "desperately at its"
- next "attacker.@"
--- a/data/pokedex/entries/swinub.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; SwinubPokedexEntry: ; 0x1d0b8d
- db "PIG@" ; species name
- dw 104, 140 ; height, weight
-
- db "It uses the tip of"
- next "its nose to dig"
- next "for food. Its nose"
- page "is so tough that"
- next "even frozen ground"
- next "poses no problem.@"
--- a/data/pokedex/entries/tangela.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TangelaPokedexEntry: ; 0x1b948c
- db "VINE@" ; species name
- dw 303, 770 ; height, weight
-
- db "During battle, it"
- next "constantly moves"
- next "the vines that"
- page "cover its body in"
- next "order to annoy its"
- next "opponent.@"
--- a/data/pokedex/entries/tauros.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TaurosPokedexEntry: ; 0x1b9a6f
- db "WILD BULL@" ; species name
- dw 407, 1950 ; height, weight
-
- db "These violent"
- next "#MON fight"
- next "with other mem-"
- page "bers of their herd"
- next "in order to prove"
- next "their strength.@"
--- a/data/pokedex/entries/teddiursa.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TeddiursaPokedexEntry: ; 0x1d09da
- db "LITTLE BEAR@" ; species name
- dw 200, 190 ; height, weight
-
- db "It always licks"
- next "honey. Its palm"
- next "tastes sweet"
- page "because of all the"
- next "honey it has"
- next "absorbed.@"
--- a/data/pokedex/entries/tentacool.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TentacoolPokedexEntry: ; 0x1b82d1
- db "JELLYFISH@" ; species name
- dw 211, 1000 ; height, weight
-
- db "As it floats along"
- next "on the waves, it"
- next "uses its toxic"
- page "feelers to stab"
- next "anything it"
- next "touches.@"
--- a/data/pokedex/entries/tentacruel.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TentacruelPokedexEntry: ; 0x1b8337
- db "JELLYFISH@" ; species name
- dw 503, 1210 ; height, weight
-
- db "When its 80 feel-"
- next "ers absorb water,"
- next "it stretches to"
- page "become like a net"
- next "to entangle its"
- next "prey.@"
--- a/data/pokedex/entries/togepi.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TogepiPokedexEntry: ; 0x1cd396
- db "SPIKE BALL@" ; species name
- dw 100, 30 ; height, weight
-
- db "It is considered"
- next "to be a symbol of"
- next "good luck. Its"
- page "shell is said to"
- next "be filled with"
- next "happiness.@"
--- a/data/pokedex/entries/togetic.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TogeticPokedexEntry: ; 0x1cd402
- db "HAPPINESS@" ; species name
- dw 200, 70 ; height, weight
-
- db "Although it does"
- next "not flap its wings"
- next "very much, it can"
- page "stay up in the air"
- next "as it tags along"
- next "after its trainer.@"
--- a/data/pokedex/entries/totodile.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TotodilePokedexEntry: ; 0x1ccc14
- db "BIG JAW@" ; species name
- dw 200, 210 ; height, weight
-
- db "This rough critter"
- next "chomps at any"
- next "moving object it"
- page "sees. Turning your"
- next "back on it is not"
- next "recommended.@"
--- a/data/pokedex/entries/typhlosion.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TyphlosionPokedexEntry: ; 0x1ccba0
- db "VOLCANO@" ; species name
- dw 507, 1750 ; height, weight
-
- db "When heat from its"
- next "body causes the"
- next "air around it to"
- page "shimmer, this is a"
- next "sign that it is"
- next "ready to battle.@"
--- a/data/pokedex/entries/tyranitar.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TyranitarPokedexEntry: ; 0x1d177b
- db "ARMOR@" ; species name
- dw 607, 4450 ; height, weight
-
- db "In just one of its"
- next "mighty hands, it"
- next "has the power to"
- page "make the ground"
- next "shake and moun-"
- next "tains crumble.@"
--- a/data/pokedex/entries/tyrogue.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; TyroguePokedexEntry: ; 0x1d124b
- db "SCUFFLE@" ; species name
- dw 204, 460 ; height, weight
-
- db "To brush up on its"
- next "fighting skills,"
- next "it will challenge"
- page "anyone. It has a"
- next "very strong com-"
- next "petitive spirit.@"
--- a/data/pokedex/entries/umbreon.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; UmbreonPokedexEntry: ; 0x1d01af
- db "MOONLIGHT@" ; species name
- dw 303, 600 ; height, weight
-
- db "On the night of a"
- next "full moon, or when"
- next "it gets excited,"
- page "the ring patterns"
- next "on its body glow"
- next "yellow.@"
--- a/data/pokedex/entries/unown.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; UnownPokedexEntry: ; 0x1d0373
- db "SYMBOL@" ; species name
- dw 108, 110 ; height, weight
-
- db "Because different"
- next "types of UNOWN"
- next "exist, it is said"
- page "that they must"
- next "have a variety of"
- next "abilities.@"
--- a/data/pokedex/entries/ursaring.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; UrsaringPokedexEntry: ; 0x1d0a41
- db "HIBERNANT@" ; species name
- dw 511, 2770 ; height, weight
-
- db "Although it has a"
- next "large body, it is"
- next "quite skilled at"
- page "climbing trees. It"
- next "eats and sleeps in"
- next "the treetops.@"
--- a/data/pokedex/entries/vaporeon.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; VaporeonPokedexEntry: ; 0x1cc224
- db "BUBBLE JET@" ; species name
- dw 303, 640 ; height, weight
-
- db "As it uses the"
- next "fins on the tip"
- next "of its tail to"
- page "swim, it blends"
- next "with the water"
- next "perfectly.@"
--- a/data/pokedex/entries/venomoth.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; VenomothPokedexEntry: ; 0x182abf
- db "POISONMOTH@" ; species name
- dw 411, 280 ; height, weight
-
- db "The scales it"
- next "scatters will"
- next "paralyze anyone"
- page "who touches them,"
- next "making that person"
- next "unable to stand.@"
--- a/data/pokedex/entries/venonat.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; VenonatPokedexEntry: ; 0x182a53
- db "INSECT@" ; species name
- dw 303, 660 ; height, weight
-
- db "The small bugs it"
- next "eats appear only"
- next "at night, so it"
- page "sleeps in a hole"
- next "in a tree until"
- next "night falls.@"
--- a/data/pokedex/entries/venusaur.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; VenusaurPokedexEntry: ; 0x181773
- db "SEED@" ; species name
- dw 607, 2210 ; height, weight
-
- db "As it warms it-"
- next "self and absorbs"
- next "the sunlight, its"
- page "flower petals"
- next "release a pleasant"
- next "fragrance.@"
--- a/data/pokedex/entries/victreebel.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; VictreebelPokedexEntry: ; 0x1b826e
- db "FLYCATCHER@" ; species name
- dw 507, 340 ; height, weight
-
- db "Once ingested into"
- next "this #MON's"
- next "body, even the"
- page "hardest object"
- next "will melt into"
- next "nothing.@"
--- a/data/pokedex/entries/vileplume.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; VileplumePokedexEntry: ; 0x182918
- db "FLOWER@" ; species name
- dw 311, 410 ; height, weight
-
- db "By shaking its big"
- next "petals, it scat-"
- next "ters toxic pollen"
- page "into the air,"
- next "turning the air"
- next "yellow.@"
--- a/data/pokedex/entries/voltorb.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; VoltorbPokedexEntry: ; 0x1b8eb0
- db "BALL@" ; species name
- dw 108, 230 ; height, weight
-
- db "During the study"
- next "of this #MON,"
- next "it was discovered"
- page "that its compo-"
- next "nents are not"
- next "found in nature.@"
--- a/data/pokedex/entries/vulpix.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; VulpixPokedexEntry: ; 0x18259b
- db "FOX@" ; species name
- dw 200, 220 ; height, weight
-
- db "As its body grows"
- next "larger, its six"
- next "warm tails become"
- page "more beautiful,"
- next "with a more luxur-"
- next "ious coat of fur.@"
--- a/data/pokedex/entries/wartortle.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; WartortlePokedexEntry: ; 0x181993
- db "TURTLE@" ; species name
- dw 303, 500 ; height, weight
-
- db "Its long, furry"
- next "tail is a symbol"
- next "of longevity,"
- page "making it quite"
- next "popular among"
- next "older people.@"
--- a/data/pokedex/entries/weedle.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; WeedlePokedexEntry: ; 0x181bb4
- db "HAIRY BUG@" ; species name
- dw 100, 70 ; height, weight
-
- db "The barb on top of"
- next "its head secretes"
- next "a strong poison."
- page "It uses this toxic"
- next "barb to protect"
- next "itself.@"
--- a/data/pokedex/entries/weepinbell.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; WeepinbellPokedexEntry: ; 0x1b81fd
- db "FLYCATCHER@" ; species name
- dw 303, 140 ; height, weight
-
- db "When it's hungry,"
- next "it swings its"
- next "razor-sharp"
- page "leaves, slicing up"
- next "any unlucky object"
- next "nearby for food.@"
--- a/data/pokedex/entries/weezing.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; WeezingPokedexEntry: ; 0x1b92ec
- db "POISON GAS@" ; species name
- dw 311, 210 ; height, weight
-
- db "When it inhales"
- next "poisonous gases"
- next "from garbage, its"
- page "body expands, and"
- next "its insides smell"
- next "much worse.@"
--- a/data/pokedex/entries/wigglytuff.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; WigglytuffPokedexEntry: ; 0x1826e9
- db "BALLOON@" ; species name
- dw 303, 260 ; height, weight
-
- db "The rich, fluffy"
- next "fur that covers"
- next "its body feels so"
- page "good that anyone"
- next "who feels it can't"
- next "stop touching it.@"
--- a/data/pokedex/entries/wobbuffet.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; WobbuffetPokedexEntry: ; 0x1d03dd
- db "PATIENT@" ; species name
- dw 403, 630 ; height, weight
-
- db "In order to con-"
- next "ceal its black"
- next "tail, it lives in"
- page "a dark cave and"
- next "only moves about"
- next "at night.@"
--- a/data/pokedex/entries/wooper.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; WooperPokedexEntry: ; 0x1d0078
- db "WATER FISH@" ; species name
- dw 104, 190 ; height, weight
-
- db "A mucous"
- next "membrane covers"
- next "its body. Touching"
- page "it barehanded will"
- next "cause a shooting"
- next "pain.@"
--- a/data/pokedex/entries/xatu.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; XatuPokedexEntry: ; 0x1cd4e9
- db "MYSTIC@" ; species name
- dw 411, 330 ; height, weight
-
- db "Once it begins to"
- next "meditate at sun-"
- next "rise, the entire"
- page "day will pass"
- next "before it will"
- next "move again.@"
--- a/data/pokedex/entries/yanma.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; YanmaPokedexEntry: ; 0x1d0000
- db "CLEAR WING@" ; species name
- dw 311, 840 ; height, weight
-
- db "It can see in all"
- next "directions without"
- next "moving its big"
- page "eyes, helping it"
- next "spot attackers and"
- next "food right away.@"
--- a/data/pokedex/entries/zapdos.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ZapdosPokedexEntry: ; 0x1cc697
- db "ELECTRIC@" ; species name
- dw 503, 1160 ; height, weight
-
- db "Legendary bird"
- next "#MON. They say"
- next "lightning caused"
- page "by the flapping of"
- next "its wings causes"
- next "summer storms.@"
--- a/data/pokedex/entries/zubat.asm
+++ /dev/null
@@ -1,10 +1,0 @@
-; ZubatPokedexEntry: ; 0x18275d
- db "BAT@" ; species name
- dw 207, 170 ; height, weight
-
- db "During the day, it"
- next "gathers with"
- next "others and hangs"
- page "from the ceilings"
- next "of old buildings"
- next "and caves.@"
--- a/data/pokedex/entry_pointers.asm
+++ /dev/null
@@ -1,254 +1,0 @@
-PokedexDataPointerTable: ; 0x44378
-; entries correspond to constants/pokemon_constants.asm
- dw BulbasaurPokedexEntry
- dw IvysaurPokedexEntry
- dw VenusaurPokedexEntry
- dw CharmanderPokedexEntry
- dw CharmeleonPokedexEntry
- dw CharizardPokedexEntry
- dw SquirtlePokedexEntry
- dw WartortlePokedexEntry
- dw BlastoisePokedexEntry
- dw CaterpiePokedexEntry
- dw MetapodPokedexEntry
- dw ButterfreePokedexEntry
- dw WeedlePokedexEntry
- dw KakunaPokedexEntry
- dw BeedrillPokedexEntry
- dw PidgeyPokedexEntry
- dw PidgeottoPokedexEntry
- dw PidgeotPokedexEntry
- dw RattataPokedexEntry
- dw RaticatePokedexEntry
- dw SpearowPokedexEntry
- dw FearowPokedexEntry
- dw EkansPokedexEntry
- dw ArbokPokedexEntry
- dw PikachuPokedexEntry
- dw RaichuPokedexEntry
- dw SandshrewPokedexEntry
- dw SandslashPokedexEntry
- dw NidoranFPokedexEntry
- dw NidorinaPokedexEntry
- dw NidoqueenPokedexEntry
- dw NidoranMPokedexEntry
- dw NidorinoPokedexEntry
- dw NidokingPokedexEntry
- dw ClefairyPokedexEntry
- dw ClefablePokedexEntry
- dw VulpixPokedexEntry
- dw NinetalesPokedexEntry
- dw JigglypuffPokedexEntry
- dw WigglytuffPokedexEntry
- dw ZubatPokedexEntry
- dw GolbatPokedexEntry
- dw OddishPokedexEntry
- dw GloomPokedexEntry
- dw VileplumePokedexEntry
- dw ParasPokedexEntry
- dw ParasectPokedexEntry
- dw VenonatPokedexEntry
- dw VenomothPokedexEntry
- dw DiglettPokedexEntry
- dw DugtrioPokedexEntry
- dw MeowthPokedexEntry
- dw PersianPokedexEntry
- dw PsyduckPokedexEntry
- dw GolduckPokedexEntry
- dw MankeyPokedexEntry
- dw PrimeapePokedexEntry
- dw GrowlithePokedexEntry
- dw ArcaninePokedexEntry
- dw PoliwagPokedexEntry
- dw PoliwhirlPokedexEntry
- dw PoliwrathPokedexEntry
- dw AbraPokedexEntry
- dw KadabraPokedexEntry
- dw AlakazamPokedexEntry
- dw MachopPokedexEntry
- dw MachokePokedexEntry
- dw MachampPokedexEntry
- dw BellsproutPokedexEntry
- dw WeepinbellPokedexEntry
- dw VictreebelPokedexEntry
- dw TentacoolPokedexEntry
- dw TentacruelPokedexEntry
- dw GeodudePokedexEntry
- dw GravelerPokedexEntry
- dw GolemPokedexEntry
- dw PonytaPokedexEntry
- dw RapidashPokedexEntry
- dw SlowpokePokedexEntry
- dw SlowbroPokedexEntry
- dw MagnemitePokedexEntry
- dw MagnetonPokedexEntry
- dw FarfetchDPokedexEntry
- dw DoduoPokedexEntry
- dw DodrioPokedexEntry
- dw SeelPokedexEntry
- dw DewgongPokedexEntry
- dw GrimerPokedexEntry
- dw MukPokedexEntry
- dw ShellderPokedexEntry
- dw CloysterPokedexEntry
- dw GastlyPokedexEntry
- dw HaunterPokedexEntry
- dw GengarPokedexEntry
- dw OnixPokedexEntry
- dw DrowzeePokedexEntry
- dw HypnoPokedexEntry
- dw KrabbyPokedexEntry
- dw KinglerPokedexEntry
- dw VoltorbPokedexEntry
- dw ElectrodePokedexEntry
- dw ExeggcutePokedexEntry
- dw ExeggutorPokedexEntry
- dw CubonePokedexEntry
- dw MarowakPokedexEntry
- dw HitmonleePokedexEntry
- dw HitmonchanPokedexEntry
- dw LickitungPokedexEntry
- dw KoffingPokedexEntry
- dw WeezingPokedexEntry
- dw RhyhornPokedexEntry
- dw RhydonPokedexEntry
- dw ChanseyPokedexEntry
- dw TangelaPokedexEntry
- dw KangaskhanPokedexEntry
- dw HorseaPokedexEntry
- dw SeadraPokedexEntry
- dw GoldeenPokedexEntry
- dw SeakingPokedexEntry
- dw StaryuPokedexEntry
- dw StarmiePokedexEntry
- dw MrMimePokedexEntry
- dw ScytherPokedexEntry
- dw JynxPokedexEntry
- dw ElectabuzzPokedexEntry
- dw MagmarPokedexEntry
- dw PinsirPokedexEntry
- dw TaurosPokedexEntry
- dw MagikarpPokedexEntry
- dw GyaradosPokedexEntry
- dw LaprasPokedexEntry
- dw DittoPokedexEntry
- dw EeveePokedexEntry
- dw VaporeonPokedexEntry
- dw JolteonPokedexEntry
- dw FlareonPokedexEntry
- dw PorygonPokedexEntry
- dw OmanytePokedexEntry
- dw OmastarPokedexEntry
- dw KabutoPokedexEntry
- dw KabutopsPokedexEntry
- dw AerodactylPokedexEntry
- dw SnorlaxPokedexEntry
- dw ArticunoPokedexEntry
- dw ZapdosPokedexEntry
- dw MoltresPokedexEntry
- dw DratiniPokedexEntry
- dw DragonairPokedexEntry
- dw DragonitePokedexEntry
- dw MewtwoPokedexEntry
- dw MewPokedexEntry
- dw ChikoritaPokedexEntry
- dw BayleefPokedexEntry
- dw MeganiumPokedexEntry
- dw CyndaquilPokedexEntry
- dw QuilavaPokedexEntry
- dw TyphlosionPokedexEntry
- dw TotodilePokedexEntry
- dw CroconawPokedexEntry
- dw FeraligatrPokedexEntry
- dw SentretPokedexEntry
- dw FurretPokedexEntry
- dw HoothootPokedexEntry
- dw NoctowlPokedexEntry
- dw LedybaPokedexEntry
- dw LedianPokedexEntry
- dw SpinarakPokedexEntry
- dw AriadosPokedexEntry
- dw CrobatPokedexEntry
- dw ChinchouPokedexEntry
- dw LanturnPokedexEntry
- dw PichuPokedexEntry
- dw CleffaPokedexEntry
- dw IgglybuffPokedexEntry
- dw TogepiPokedexEntry
- dw TogeticPokedexEntry
- dw NatuPokedexEntry
- dw XatuPokedexEntry
- dw MareepPokedexEntry
- dw FlaaffyPokedexEntry
- dw AmpharosPokedexEntry
- dw BellossomPokedexEntry
- dw MarillPokedexEntry
- dw AzumarillPokedexEntry
- dw SudowoodoPokedexEntry
- dw PolitoedPokedexEntry
- dw HoppipPokedexEntry
- dw SkiploomPokedexEntry
- dw JumpluffPokedexEntry
- dw AipomPokedexEntry
- dw SunkernPokedexEntry
- dw SunfloraPokedexEntry
- dw YanmaPokedexEntry
- dw WooperPokedexEntry
- dw QuagsirePokedexEntry
- dw EspeonPokedexEntry
- dw UmbreonPokedexEntry
- dw MurkrowPokedexEntry
- dw SlowkingPokedexEntry
- dw MisdreavusPokedexEntry
- dw UnownPokedexEntry
- dw WobbuffetPokedexEntry
- dw GirafarigPokedexEntry
- dw PinecoPokedexEntry
- dw ForretressPokedexEntry
- dw DunsparcePokedexEntry
- dw GligarPokedexEntry
- dw SteelixPokedexEntry
- dw SnubbullPokedexEntry
- dw GranbullPokedexEntry
- dw QwilfishPokedexEntry
- dw ScizorPokedexEntry
- dw ShucklePokedexEntry
- dw HeracrossPokedexEntry
- dw SneaselPokedexEntry
- dw TeddiursaPokedexEntry
- dw UrsaringPokedexEntry
- dw SlugmaPokedexEntry
- dw MagcargoPokedexEntry
- dw SwinubPokedexEntry
- dw PiloswinePokedexEntry
- dw CorsolaPokedexEntry
- dw RemoraidPokedexEntry
- dw OctilleryPokedexEntry
- dw DelibirdPokedexEntry
- dw MantinePokedexEntry
- dw SkarmoryPokedexEntry
- dw HoundourPokedexEntry
- dw HoundoomPokedexEntry
- dw KingdraPokedexEntry
- dw PhanpyPokedexEntry
- dw DonphanPokedexEntry
- dw Porygon2PokedexEntry
- dw StantlerPokedexEntry
- dw SmearglePokedexEntry
- dw TyroguePokedexEntry
- dw HitmontopPokedexEntry
- dw SmoochumPokedexEntry
- dw ElekidPokedexEntry
- dw MagbyPokedexEntry
- dw MiltankPokedexEntry
- dw BlisseyPokedexEntry
- dw RaikouPokedexEntry
- dw EnteiPokedexEntry
- dw SuicunePokedexEntry
- dw LarvitarPokedexEntry
- dw PupitarPokedexEntry
- dw TyranitarPokedexEntry
- dw LugiaPokedexEntry
- dw HoOhPokedexEntry
- dw CelebiPokedexEntry
-; 0x4456e
--- a/data/pokedex/order_alpha.asm
+++ /dev/null
@@ -1,255 +1,0 @@
-; Every Pokémon sorted alphabetically by name.
-
-AlphabeticalPokedexOrder: ; 0x40c65
- 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
- db CHIKORITA
- db CHINCHOU
- db CLEFABLE
- 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 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 FLAREON
- db FORRETRESS
- db FURRET
- db GASTLY
- db GENGAR
- 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 IGGLYBUFF
- db IVYSAUR
- db JIGGLYPUFF
- db JOLTEON
- db JUMPLUFF
- db JYNX
- db KABUTO
- db KABUTOPS
- db KADABRA
- db KAKUNA
- db KANGASKHAN
- db KINGDRA
- db KINGLER
- 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 MAGNEMITE
- db MAGNETON
- db MANKEY
- db MANTINE
- db MAREEP
- db MARILL
- db MAROWAK
- db MEGANIUM
- db MEOWTH
- db METAPOD
- db MEW
- db MEWTWO
- db MILTANK
- db MISDREAVUS
- db MOLTRES
- db MR__MIME
- db MUK
- db MURKROW
- db NATU
- db NIDOKING
- db NIDOQUEEN
- db NIDORAN_F
- db NIDORAN_M
- db NIDORINA
- db NIDORINO
- db NINETALES
- db NOCTOWL
- 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 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 RATICATE
- db RATTATA
- db REMORAID
- db RHYDON
- 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 SMEARGLE
- db SMOOCHUM
- db SNEASEL
- 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 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
-; 0x40d60
--- a/data/pokedex/order_new.asm
+++ /dev/null
@@ -1,255 +1,0 @@
-; Every Pokémon sorted in New Pokédex Order.
-
-NewPokedexOrder: ; 0x40d60
- db CHIKORITA
- 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 CLEFABLE
- db IGGLYBUFF
- db JIGGLYPUFF
- 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 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 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 WEEZING
- db GRIMER
- db MUK
- 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 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 MILTANK
- db MAGBY
- db MAGMAR
- db SMOOCHUM
- db JYNX
- db ELEKID
- db ELECTABUZZ
- db MR__MIME
- db SMEARGLE
- db FARFETCH_D
- 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 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 PHANPY
- db DONPHAN
- db MANTINE
- db SKARMORY
- db DODUO
- db DODRIO
- db PONYTA
- db RAPIDASH
- db CUBONE
- db MAROWAK
- db KANGASKHAN
- db RHYHORN
- db RHYDON
- db MURKROW
- db HOUNDOUR
- db HOUNDOOM
- db SLUGMA
- 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 BULBASAUR
- db IVYSAUR
- db VENUSAUR
- db CHARMANDER
- db CHARMELEON
- db CHARIZARD
- db SQUIRTLE
- db WARTORTLE
- db BLASTOISE
- db ARTICUNO
- db ZAPDOS
- 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
-; 0x40e5b
--- /dev/null
+++ b/data/pokemon/base_stats.asm
@@ -1,0 +1,252 @@
+BaseData::
+INCLUDE "data/pokemon/base_stats/bulbasaur.asm"
+INCLUDE "data/pokemon/base_stats/ivysaur.asm"
+INCLUDE "data/pokemon/base_stats/venusaur.asm"
+INCLUDE "data/pokemon/base_stats/charmander.asm"
+INCLUDE "data/pokemon/base_stats/charmeleon.asm"
+INCLUDE "data/pokemon/base_stats/charizard.asm"
+INCLUDE "data/pokemon/base_stats/squirtle.asm"
+INCLUDE "data/pokemon/base_stats/wartortle.asm"
+INCLUDE "data/pokemon/base_stats/blastoise.asm"
+INCLUDE "data/pokemon/base_stats/caterpie.asm"
+INCLUDE "data/pokemon/base_stats/metapod.asm"
+INCLUDE "data/pokemon/base_stats/butterfree.asm"
+INCLUDE "data/pokemon/base_stats/weedle.asm"
+INCLUDE "data/pokemon/base_stats/kakuna.asm"
+INCLUDE "data/pokemon/base_stats/beedrill.asm"
+INCLUDE "data/pokemon/base_stats/pidgey.asm"
+INCLUDE "data/pokemon/base_stats/pidgeotto.asm"
+INCLUDE "data/pokemon/base_stats/pidgeot.asm"
+INCLUDE "data/pokemon/base_stats/rattata.asm"
+INCLUDE "data/pokemon/base_stats/raticate.asm"
+INCLUDE "data/pokemon/base_stats/spearow.asm"
+INCLUDE "data/pokemon/base_stats/fearow.asm"
+INCLUDE "data/pokemon/base_stats/ekans.asm"
+INCLUDE "data/pokemon/base_stats/arbok.asm"
+INCLUDE "data/pokemon/base_stats/pikachu.asm"
+INCLUDE "data/pokemon/base_stats/raichu.asm"
+INCLUDE "data/pokemon/base_stats/sandshrew.asm"
+INCLUDE "data/pokemon/base_stats/sandslash.asm"
+INCLUDE "data/pokemon/base_stats/nidoran_f.asm"
+INCLUDE "data/pokemon/base_stats/nidorina.asm"
+INCLUDE "data/pokemon/base_stats/nidoqueen.asm"
+INCLUDE "data/pokemon/base_stats/nidoran_m.asm"
+INCLUDE "data/pokemon/base_stats/nidorino.asm"
+INCLUDE "data/pokemon/base_stats/nidoking.asm"
+INCLUDE "data/pokemon/base_stats/clefairy.asm"
+INCLUDE "data/pokemon/base_stats/clefable.asm"
+INCLUDE "data/pokemon/base_stats/vulpix.asm"
+INCLUDE "data/pokemon/base_stats/ninetales.asm"
+INCLUDE "data/pokemon/base_stats/jigglypuff.asm"
+INCLUDE "data/pokemon/base_stats/wigglytuff.asm"
+INCLUDE "data/pokemon/base_stats/zubat.asm"
+INCLUDE "data/pokemon/base_stats/golbat.asm"
+INCLUDE "data/pokemon/base_stats/oddish.asm"
+INCLUDE "data/pokemon/base_stats/gloom.asm"
+INCLUDE "data/pokemon/base_stats/vileplume.asm"
+INCLUDE "data/pokemon/base_stats/paras.asm"
+INCLUDE "data/pokemon/base_stats/parasect.asm"
+INCLUDE "data/pokemon/base_stats/venonat.asm"
+INCLUDE "data/pokemon/base_stats/venomoth.asm"
+INCLUDE "data/pokemon/base_stats/diglett.asm"
+INCLUDE "data/pokemon/base_stats/dugtrio.asm"
+INCLUDE "data/pokemon/base_stats/meowth.asm"
+INCLUDE "data/pokemon/base_stats/persian.asm"
+INCLUDE "data/pokemon/base_stats/psyduck.asm"
+INCLUDE "data/pokemon/base_stats/golduck.asm"
+INCLUDE "data/pokemon/base_stats/mankey.asm"
+INCLUDE "data/pokemon/base_stats/primeape.asm"
+INCLUDE "data/pokemon/base_stats/growlithe.asm"
+INCLUDE "data/pokemon/base_stats/arcanine.asm"
+INCLUDE "data/pokemon/base_stats/poliwag.asm"
+INCLUDE "data/pokemon/base_stats/poliwhirl.asm"
+INCLUDE "data/pokemon/base_stats/poliwrath.asm"
+INCLUDE "data/pokemon/base_stats/abra.asm"
+INCLUDE "data/pokemon/base_stats/kadabra.asm"
+INCLUDE "data/pokemon/base_stats/alakazam.asm"
+INCLUDE "data/pokemon/base_stats/machop.asm"
+INCLUDE "data/pokemon/base_stats/machoke.asm"
+INCLUDE "data/pokemon/base_stats/machamp.asm"
+INCLUDE "data/pokemon/base_stats/bellsprout.asm"
+INCLUDE "data/pokemon/base_stats/weepinbell.asm"
+INCLUDE "data/pokemon/base_stats/victreebel.asm"
+INCLUDE "data/pokemon/base_stats/tentacool.asm"
+INCLUDE "data/pokemon/base_stats/tentacruel.asm"
+INCLUDE "data/pokemon/base_stats/geodude.asm"
+INCLUDE "data/pokemon/base_stats/graveler.asm"
+INCLUDE "data/pokemon/base_stats/golem.asm"
+INCLUDE "data/pokemon/base_stats/ponyta.asm"
+INCLUDE "data/pokemon/base_stats/rapidash.asm"
+INCLUDE "data/pokemon/base_stats/slowpoke.asm"
+INCLUDE "data/pokemon/base_stats/slowbro.asm"
+INCLUDE "data/pokemon/base_stats/magnemite.asm"
+INCLUDE "data/pokemon/base_stats/magneton.asm"
+INCLUDE "data/pokemon/base_stats/farfetch_d.asm"
+INCLUDE "data/pokemon/base_stats/doduo.asm"
+INCLUDE "data/pokemon/base_stats/dodrio.asm"
+INCLUDE "data/pokemon/base_stats/seel.asm"
+INCLUDE "data/pokemon/base_stats/dewgong.asm"
+INCLUDE "data/pokemon/base_stats/grimer.asm"
+INCLUDE "data/pokemon/base_stats/muk.asm"
+INCLUDE "data/pokemon/base_stats/shellder.asm"
+INCLUDE "data/pokemon/base_stats/cloyster.asm"
+INCLUDE "data/pokemon/base_stats/gastly.asm"
+INCLUDE "data/pokemon/base_stats/haunter.asm"
+INCLUDE "data/pokemon/base_stats/gengar.asm"
+INCLUDE "data/pokemon/base_stats/onix.asm"
+INCLUDE "data/pokemon/base_stats/drowzee.asm"
+INCLUDE "data/pokemon/base_stats/hypno.asm"
+INCLUDE "data/pokemon/base_stats/krabby.asm"
+INCLUDE "data/pokemon/base_stats/kingler.asm"
+INCLUDE "data/pokemon/base_stats/voltorb.asm"
+INCLUDE "data/pokemon/base_stats/electrode.asm"
+INCLUDE "data/pokemon/base_stats/exeggcute.asm"
+INCLUDE "data/pokemon/base_stats/exeggutor.asm"
+INCLUDE "data/pokemon/base_stats/cubone.asm"
+INCLUDE "data/pokemon/base_stats/marowak.asm"
+INCLUDE "data/pokemon/base_stats/hitmonlee.asm"
+INCLUDE "data/pokemon/base_stats/hitmonchan.asm"
+INCLUDE "data/pokemon/base_stats/lickitung.asm"
+INCLUDE "data/pokemon/base_stats/koffing.asm"
+INCLUDE "data/pokemon/base_stats/weezing.asm"
+INCLUDE "data/pokemon/base_stats/rhyhorn.asm"
+INCLUDE "data/pokemon/base_stats/rhydon.asm"
+INCLUDE "data/pokemon/base_stats/chansey.asm"
+INCLUDE "data/pokemon/base_stats/tangela.asm"
+INCLUDE "data/pokemon/base_stats/kangaskhan.asm"
+INCLUDE "data/pokemon/base_stats/horsea.asm"
+INCLUDE "data/pokemon/base_stats/seadra.asm"
+INCLUDE "data/pokemon/base_stats/goldeen.asm"
+INCLUDE "data/pokemon/base_stats/seaking.asm"
+INCLUDE "data/pokemon/base_stats/staryu.asm"
+INCLUDE "data/pokemon/base_stats/starmie.asm"
+INCLUDE "data/pokemon/base_stats/mr__mime.asm"
+INCLUDE "data/pokemon/base_stats/scyther.asm"
+INCLUDE "data/pokemon/base_stats/jynx.asm"
+INCLUDE "data/pokemon/base_stats/electabuzz.asm"
+INCLUDE "data/pokemon/base_stats/magmar.asm"
+INCLUDE "data/pokemon/base_stats/pinsir.asm"
+INCLUDE "data/pokemon/base_stats/tauros.asm"
+INCLUDE "data/pokemon/base_stats/magikarp.asm"
+INCLUDE "data/pokemon/base_stats/gyarados.asm"
+INCLUDE "data/pokemon/base_stats/lapras.asm"
+INCLUDE "data/pokemon/base_stats/ditto.asm"
+INCLUDE "data/pokemon/base_stats/eevee.asm"
+INCLUDE "data/pokemon/base_stats/vaporeon.asm"
+INCLUDE "data/pokemon/base_stats/jolteon.asm"
+INCLUDE "data/pokemon/base_stats/flareon.asm"
+INCLUDE "data/pokemon/base_stats/porygon.asm"
+INCLUDE "data/pokemon/base_stats/omanyte.asm"
+INCLUDE "data/pokemon/base_stats/omastar.asm"
+INCLUDE "data/pokemon/base_stats/kabuto.asm"
+INCLUDE "data/pokemon/base_stats/kabutops.asm"
+INCLUDE "data/pokemon/base_stats/aerodactyl.asm"
+INCLUDE "data/pokemon/base_stats/snorlax.asm"
+INCLUDE "data/pokemon/base_stats/articuno.asm"
+INCLUDE "data/pokemon/base_stats/zapdos.asm"
+INCLUDE "data/pokemon/base_stats/moltres.asm"
+INCLUDE "data/pokemon/base_stats/dratini.asm"
+INCLUDE "data/pokemon/base_stats/dragonair.asm"
+INCLUDE "data/pokemon/base_stats/dragonite.asm"
+INCLUDE "data/pokemon/base_stats/mewtwo.asm"
+INCLUDE "data/pokemon/base_stats/mew.asm"
+INCLUDE "data/pokemon/base_stats/chikorita.asm"
+INCLUDE "data/pokemon/base_stats/bayleef.asm"
+INCLUDE "data/pokemon/base_stats/meganium.asm"
+INCLUDE "data/pokemon/base_stats/cyndaquil.asm"
+INCLUDE "data/pokemon/base_stats/quilava.asm"
+INCLUDE "data/pokemon/base_stats/typhlosion.asm"
+INCLUDE "data/pokemon/base_stats/totodile.asm"
+INCLUDE "data/pokemon/base_stats/croconaw.asm"
+INCLUDE "data/pokemon/base_stats/feraligatr.asm"
+INCLUDE "data/pokemon/base_stats/sentret.asm"
+INCLUDE "data/pokemon/base_stats/furret.asm"
+INCLUDE "data/pokemon/base_stats/hoothoot.asm"
+INCLUDE "data/pokemon/base_stats/noctowl.asm"
+INCLUDE "data/pokemon/base_stats/ledyba.asm"
+INCLUDE "data/pokemon/base_stats/ledian.asm"
+INCLUDE "data/pokemon/base_stats/spinarak.asm"
+INCLUDE "data/pokemon/base_stats/ariados.asm"
+INCLUDE "data/pokemon/base_stats/crobat.asm"
+INCLUDE "data/pokemon/base_stats/chinchou.asm"
+INCLUDE "data/pokemon/base_stats/lanturn.asm"
+INCLUDE "data/pokemon/base_stats/pichu.asm"
+INCLUDE "data/pokemon/base_stats/cleffa.asm"
+INCLUDE "data/pokemon/base_stats/igglybuff.asm"
+INCLUDE "data/pokemon/base_stats/togepi.asm"
+INCLUDE "data/pokemon/base_stats/togetic.asm"
+INCLUDE "data/pokemon/base_stats/natu.asm"
+INCLUDE "data/pokemon/base_stats/xatu.asm"
+INCLUDE "data/pokemon/base_stats/mareep.asm"
+INCLUDE "data/pokemon/base_stats/flaaffy.asm"
+INCLUDE "data/pokemon/base_stats/ampharos.asm"
+INCLUDE "data/pokemon/base_stats/bellossom.asm"
+INCLUDE "data/pokemon/base_stats/marill.asm"
+INCLUDE "data/pokemon/base_stats/azumarill.asm"
+INCLUDE "data/pokemon/base_stats/sudowoodo.asm"
+INCLUDE "data/pokemon/base_stats/politoed.asm"
+INCLUDE "data/pokemon/base_stats/hoppip.asm"
+INCLUDE "data/pokemon/base_stats/skiploom.asm"
+INCLUDE "data/pokemon/base_stats/jumpluff.asm"
+INCLUDE "data/pokemon/base_stats/aipom.asm"
+INCLUDE "data/pokemon/base_stats/sunkern.asm"
+INCLUDE "data/pokemon/base_stats/sunflora.asm"
+INCLUDE "data/pokemon/base_stats/yanma.asm"
+INCLUDE "data/pokemon/base_stats/wooper.asm"
+INCLUDE "data/pokemon/base_stats/quagsire.asm"
+INCLUDE "data/pokemon/base_stats/espeon.asm"
+INCLUDE "data/pokemon/base_stats/umbreon.asm"
+INCLUDE "data/pokemon/base_stats/murkrow.asm"
+INCLUDE "data/pokemon/base_stats/slowking.asm"
+INCLUDE "data/pokemon/base_stats/misdreavus.asm"
+INCLUDE "data/pokemon/base_stats/unown.asm"
+INCLUDE "data/pokemon/base_stats/wobbuffet.asm"
+INCLUDE "data/pokemon/base_stats/girafarig.asm"
+INCLUDE "data/pokemon/base_stats/pineco.asm"
+INCLUDE "data/pokemon/base_stats/forretress.asm"
+INCLUDE "data/pokemon/base_stats/dunsparce.asm"
+INCLUDE "data/pokemon/base_stats/gligar.asm"
+INCLUDE "data/pokemon/base_stats/steelix.asm"
+INCLUDE "data/pokemon/base_stats/snubbull.asm"
+INCLUDE "data/pokemon/base_stats/granbull.asm"
+INCLUDE "data/pokemon/base_stats/qwilfish.asm"
+INCLUDE "data/pokemon/base_stats/scizor.asm"
+INCLUDE "data/pokemon/base_stats/shuckle.asm"
+INCLUDE "data/pokemon/base_stats/heracross.asm"
+INCLUDE "data/pokemon/base_stats/sneasel.asm"
+INCLUDE "data/pokemon/base_stats/teddiursa.asm"
+INCLUDE "data/pokemon/base_stats/ursaring.asm"
+INCLUDE "data/pokemon/base_stats/slugma.asm"
+INCLUDE "data/pokemon/base_stats/magcargo.asm"
+INCLUDE "data/pokemon/base_stats/swinub.asm"
+INCLUDE "data/pokemon/base_stats/piloswine.asm"
+INCLUDE "data/pokemon/base_stats/corsola.asm"
+INCLUDE "data/pokemon/base_stats/remoraid.asm"
+INCLUDE "data/pokemon/base_stats/octillery.asm"
+INCLUDE "data/pokemon/base_stats/delibird.asm"
+INCLUDE "data/pokemon/base_stats/mantine.asm"
+INCLUDE "data/pokemon/base_stats/skarmory.asm"
+INCLUDE "data/pokemon/base_stats/houndour.asm"
+INCLUDE "data/pokemon/base_stats/houndoom.asm"
+INCLUDE "data/pokemon/base_stats/kingdra.asm"
+INCLUDE "data/pokemon/base_stats/phanpy.asm"
+INCLUDE "data/pokemon/base_stats/donphan.asm"
+INCLUDE "data/pokemon/base_stats/porygon2.asm"
+INCLUDE "data/pokemon/base_stats/stantler.asm"
+INCLUDE "data/pokemon/base_stats/smeargle.asm"
+INCLUDE "data/pokemon/base_stats/tyrogue.asm"
+INCLUDE "data/pokemon/base_stats/hitmontop.asm"
+INCLUDE "data/pokemon/base_stats/smoochum.asm"
+INCLUDE "data/pokemon/base_stats/elekid.asm"
+INCLUDE "data/pokemon/base_stats/magby.asm"
+INCLUDE "data/pokemon/base_stats/miltank.asm"
+INCLUDE "data/pokemon/base_stats/blissey.asm"
+INCLUDE "data/pokemon/base_stats/raikou.asm"
+INCLUDE "data/pokemon/base_stats/entei.asm"
+INCLUDE "data/pokemon/base_stats/suicune.asm"
+INCLUDE "data/pokemon/base_stats/larvitar.asm"
+INCLUDE "data/pokemon/base_stats/pupitar.asm"
+INCLUDE "data/pokemon/base_stats/tyranitar.asm"
+INCLUDE "data/pokemon/base_stats/lugia.asm"
+INCLUDE "data/pokemon/base_stats/ho_oh.asm"
+INCLUDE "data/pokemon/base_stats/celebi.asm"
--- /dev/null
+++ b/data/pokemon/base_stats/abra.asm
@@ -1,0 +1,22 @@
+ db ABRA ; 063
+
+ db 25, 20, 15, 90, 105, 55
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 200 ; catch rate
+ db 73 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/abra/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/aerodactyl.asm
@@ -1,0 +1,22 @@
+ db AERODACTYL ; 142
+
+ db 80, 105, 65, 130, 60, 75
+ ; hp atk def spd sat sdf
+
+ db ROCK, FLYING
+ db 45 ; catch rate
+ db 202 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/aerodactyl/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/aipom.asm
@@ -1,0 +1,22 @@
+ db AIPOM ; 190
+
+ db 55, 70, 55, 85, 40, 55
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 94 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/aipom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, STRENGTH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/alakazam.asm
@@ -1,0 +1,22 @@
+ db ALAKAZAM ; 065
+
+ db 55, 50, 45, 120, 135, 85
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 50 ; catch rate
+ db 186 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/alakazam/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ampharos.asm
@@ -1,0 +1,22 @@
+ db AMPHAROS ; 181
+
+ db 90, 75, 75, 55, 115, 90
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 45 ; catch rate
+ db 194 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ampharos/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/arbok.asm
@@ -1,0 +1,22 @@
+ db ARBOK ; 024
+
+ db 60, 85, 69, 80, 65, 79
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 90 ; catch rate
+ db 147 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/arbok/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/arcanine.asm
@@ -1,0 +1,22 @@
+ db ARCANINE ; 059
+
+ db 90, 110, 80, 95, 100, 80
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 75 ; catch rate
+ db 213 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/arcanine/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ariados.asm
@@ -1,0 +1,22 @@
+ db ARIADOS ; 168
+
+ db 70, 90, 70, 40, 60, 60
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 90 ; catch rate
+ db 134 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ariados/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/articuno.asm
@@ -1,0 +1,22 @@
+ db ARTICUNO ; 144
+
+ db 90, 85, 100, 85, 95, 125
+ ; hp atk def spd sat sdf
+
+ db ICE, FLYING
+ db 3 ; catch rate
+ db 215 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/articuno/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/azumarill.asm
@@ -1,0 +1,22 @@
+ db AZUMARILL ; 184
+
+ db 100, 50, 80, 50, 50, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 75 ; catch rate
+ db 153 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/azumarill/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMPHIBIAN, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/bayleef.asm
@@ -1,0 +1,22 @@
+ db BAYLEEF ; 153
+
+ db 60, 62, 80, 60, 63, 80
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 141 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/bayleef/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/beedrill.asm
@@ -1,0 +1,22 @@
+ db BEEDRILL ; 015
+
+ db 65, 80, 40, 75, 45, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 45 ; catch rate
+ db 159 ; base exp
+ db NO_ITEM ; item 1
+ db POISON_BARB ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/beedrill/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, FURY_CUTTER, CUT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/bellossom.asm
@@ -1,0 +1,22 @@
+ db BELLOSSOM ; 182
+
+ db 75, 80, 85, 50, 90, 100
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 184 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/bellossom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/bellsprout.asm
@@ -1,0 +1,22 @@
+ db BELLSPROUT ; 069
+
+ db 50, 75, 35, 40, 70, 30
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 255 ; catch rate
+ db 84 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/bellsprout/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/blastoise.asm
@@ -1,0 +1,22 @@
+ db BLASTOISE ; 009
+
+ db 79, 83, 100, 78, 85, 105
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 210 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/blastoise/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/blissey.asm
@@ -1,0 +1,22 @@
+ db BLISSEY ; 242
+
+ db 255, 10, 10, 55, 75, 135
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 30 ; catch rate
+ db 255 ; base exp
+ db NO_ITEM ; item 1
+ db LUCKY_EGG ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/blissey/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/bulbasaur.asm
@@ -1,0 +1,22 @@
+ db BULBASAUR ; 001
+
+ db 45, 49, 49, 45, 65, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 64 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/bulbasaur/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/butterfree.asm
@@ -1,0 +1,22 @@
+ db BUTTERFREE ; 012
+
+ db 60, 45, 50, 70, 80, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 45 ; catch rate
+ db 160 ; base exp
+ db NO_ITEM ; item 1
+ db SILVERPOWDER ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/butterfree/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/caterpie.asm
@@ -1,0 +1,22 @@
+ db CATERPIE ; 010
+
+ db 45, 30, 35, 45, 20, 20
+ ; hp atk def spd sat sdf
+
+ db BUG, BUG
+ db 255 ; catch rate
+ db 53 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/caterpie/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/celebi.asm
@@ -1,0 +1,22 @@
+ db CELEBI ; 251
+
+ db 100, 100, 100, 100, 100, 100
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, GRASS
+ db 45 ; catch rate
+ db 64 ; base exp
+ db NO_ITEM ; item 1
+ db MIRACLEBERRY ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/celebi/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/chansey.asm
@@ -1,0 +1,22 @@
+ db CHANSEY ; 113
+
+ db 250, 05, 05, 50, 35, 105
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 30 ; catch rate
+ db 255 ; base exp
+ db NO_ITEM ; item 1
+ db LUCKY_EGG ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/chansey/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/charizard.asm
@@ -1,0 +1,22 @@
+ db CHARIZARD ; 006
+
+ db 78, 84, 78, 100, 109, 85
+ ; hp atk def spd sat sdf
+
+ db FIRE, FLYING
+ db 45 ; catch rate
+ db 209 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/charizard/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, CUT, FLY, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/charmander.asm
@@ -1,0 +1,22 @@
+ db CHARMANDER ; 004
+
+ db 39, 52, 43, 65, 60, 50
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 65 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/charmander/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/charmeleon.asm
@@ -1,0 +1,22 @@
+ db CHARMELEON ; 005
+
+ db 58, 64, 58, 80, 80, 65
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 142 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/charmeleon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/chikorita.asm
@@ -1,0 +1,22 @@
+ db CHIKORITA ; 152
+
+ db 45, 49, 65, 45, 49, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 64 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/chikorita/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/chinchou.asm
@@ -1,0 +1,22 @@
+ db CHINCHOU ; 170
+
+ db 75, 38, 38, 67, 56, 56
+ ; hp atk def spd sat sdf
+
+ db WATER, ELECTRIC
+ db 190 ; catch rate
+ db 90 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/chinchou/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/clefable.asm
@@ -1,0 +1,22 @@
+ db CLEFABLE ; 036
+
+ db 95, 70, 73, 60, 85, 90
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 25 ; catch rate
+ db 129 ; base exp
+ db MYSTERYBERRY ; item 1
+ db MOON_STONE ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/clefable/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/clefairy.asm
@@ -1,0 +1,22 @@
+ db CLEFAIRY ; 035
+
+ db 70, 45, 48, 35, 60, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 150 ; catch rate
+ db 68 ; base exp
+ db MYSTERYBERRY ; item 1
+ db MOON_STONE ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/clefairy/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/cleffa.asm
@@ -1,0 +1,22 @@
+ db CLEFFA ; 173
+
+ db 50, 25, 28, 15, 45, 55
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 150 ; catch rate
+ db 37 ; base exp
+ db MYSTERYBERRY ; item 1
+ db MOON_STONE ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/cleffa/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/cloyster.asm
@@ -1,0 +1,22 @@
+ db CLOYSTER ; 091
+
+ db 50, 95, 180, 70, 85, 45
+ ; hp atk def spd sat sdf
+
+ db WATER, ICE
+ db 60 ; catch rate
+ db 203 ; base exp
+ db PEARL ; item 1
+ db BIG_PEARL ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/cloyster/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/corsola.asm
@@ -1,0 +1,22 @@
+ db CORSOLA ; 222
+
+ db 55, 55, 85, 35, 65, 85
+ ; hp atk def spd sat sdf
+
+ db WATER, ROCK
+ db 60 ; catch rate
+ db 113 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/corsola/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/crobat.asm
@@ -1,0 +1,22 @@
+ db CROBAT ; 169
+
+ db 85, 90, 80, 130, 70, 80
+ ; hp atk def spd sat sdf
+
+ db POISON, FLYING
+ db 90 ; catch rate
+ db 204 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/crobat/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/croconaw.asm
@@ -1,0 +1,22 @@
+ db CROCONAW ; 159
+
+ db 65, 80, 80, 58, 59, 63
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 143 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/croconaw/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/cubone.asm
@@ -1,0 +1,22 @@
+ db CUBONE ; 104
+
+ db 50, 50, 95, 35, 40, 50
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 190 ; catch rate
+ db 87 ; base exp
+ db NO_ITEM ; item 1
+ db THICK_CLUB ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/cubone/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/cyndaquil.asm
@@ -1,0 +1,22 @@
+ db CYNDAQUIL ; 155
+
+ db 39, 52, 43, 65, 60, 50
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 65 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/cyndaquil/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/delibird.asm
@@ -1,0 +1,22 @@
+ db DELIBIRD ; 225
+
+ db 45, 55, 45, 75, 65, 45
+ ; hp atk def spd sat sdf
+
+ db ICE, FLYING
+ db 45 ; catch rate
+ db 183 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/delibird/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLY, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/dewgong.asm
@@ -1,0 +1,22 @@
+ db DEWGONG ; 087
+
+ db 90, 70, 80, 70, 70, 95
+ ; hp atk def spd sat sdf
+
+ db WATER, ICE
+ db 75 ; catch rate
+ db 176 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dewgong/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/diglett.asm
@@ -1,0 +1,22 @@
+ db DIGLETT ; 050
+
+ db 10, 55, 25, 95, 35, 45
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 255 ; catch rate
+ db 81 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/diglett/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ditto.asm
@@ -1,0 +1,22 @@
+ db DITTO ; 132
+
+ db 48, 48, 48, 48, 48, 48
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 35 ; catch rate
+ db 61 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ditto/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn LADIES_MAN, LADIES_MAN ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/dodrio.asm
@@ -1,0 +1,22 @@
+ db DODRIO ; 085
+
+ db 60, 110, 70, 100, 60, 60
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 45 ; catch rate
+ db 158 ; base exp
+ db NO_ITEM ; item 1
+ db SHARP_BEAK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dodrio/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/doduo.asm
@@ -1,0 +1,22 @@
+ db DODUO ; 084
+
+ db 35, 85, 45, 75, 35, 35
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 190 ; catch rate
+ db 96 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/doduo/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/donphan.asm
@@ -1,0 +1,22 @@
+ db DONPHAN ; 232
+
+ db 90, 120, 120, 50, 60, 60
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 60 ; catch rate
+ db 189 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/donphan/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/dragonair.asm
@@ -1,0 +1,22 @@
+ db DRAGONAIR ; 148
+
+ db 61, 84, 65, 70, 70, 70
+ ; hp atk def spd sat sdf
+
+ db DRAGON, DRAGON
+ db 45 ; catch rate
+ db 144 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dragonair/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/dragonite.asm
@@ -1,0 +1,22 @@
+ db DRAGONITE ; 149
+
+ db 91, 134, 95, 80, 100, 100
+ ; hp atk def spd sat sdf
+
+ db DRAGON, FLYING
+ db 45 ; catch rate
+ db 218 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dragonite/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/dratini.asm
@@ -1,0 +1,22 @@
+ db DRATINI ; 147
+
+ db 41, 64, 45, 50, 50, 50
+ ; hp atk def spd sat sdf
+
+ db DRAGON, DRAGON
+ db 45 ; catch rate
+ db 67 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dratini/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/drowzee.asm
@@ -1,0 +1,22 @@
+ db DROWZEE ; 096
+
+ db 60, 48, 45, 42, 43, 90
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 190 ; catch rate
+ db 102 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/drowzee/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/dugtrio.asm
@@ -1,0 +1,22 @@
+ db DUGTRIO ; 051
+
+ db 35, 80, 50, 120, 50, 70
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 50 ; catch rate
+ db 153 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dugtrio/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/dunsparce.asm
@@ -1,0 +1,22 @@
+ db DUNSPARCE ; 206
+
+ db 100, 70, 70, 45, 65, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 190 ; catch rate
+ db 75 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dunsparce/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/eevee.asm
@@ -1,0 +1,22 @@
+ db EEVEE ; 133
+
+ db 55, 55, 50, 55, 45, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 92 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/eevee/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ekans.asm
@@ -1,0 +1,22 @@
+ db EKANS ; 023
+
+ db 35, 60, 44, 55, 40, 54
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 255 ; catch rate
+ db 62 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ekans/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/electabuzz.asm
@@ -1,0 +1,22 @@
+ db ELECTABUZZ ; 125
+
+ db 65, 83, 57, 105, 95, 85
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 45 ; catch rate
+ db 156 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/electabuzz/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/electrode.asm
@@ -1,0 +1,22 @@
+ db ELECTRODE ; 101
+
+ db 60, 50, 70, 140, 80, 80
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 60 ; catch rate
+ db 150 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/electrode/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/elekid.asm
@@ -1,0 +1,22 @@
+ db ELEKID ; 239
+
+ db 45, 63, 37, 95, 65, 55
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 45 ; catch rate
+ db 106 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/elekid/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/entei.asm
@@ -1,0 +1,22 @@
+ db ENTEI ; 244
+
+ db 115, 115, 85, 100, 90, 75
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 3 ; catch rate
+ db 217 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/entei/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/espeon.asm
@@ -1,0 +1,22 @@
+ db ESPEON ; 196
+
+ db 65, 65, 60, 110, 130, 95
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 45 ; catch rate
+ db 197 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/espeon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/exeggcute.asm
@@ -1,0 +1,22 @@
+ db EXEGGCUTE ; 102
+
+ db 60, 40, 80, 40, 60, 45
+ ; hp atk def spd sat sdf
+
+ db GRASS, PSYCHIC
+ db 90 ; catch rate
+ db 98 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/exeggcute/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/exeggutor.asm
@@ -1,0 +1,22 @@
+ db EXEGGUTOR ; 103
+
+ db 95, 95, 85, 55, 125, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, PSYCHIC
+ db 45 ; catch rate
+ db 212 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/exeggutor/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/farfetch_d.asm
@@ -1,0 +1,22 @@
+ db FARFETCH_D ; 083
+
+ db 52, 65, 55, 60, 58, 62
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 45 ; catch rate
+ db 94 ; base exp
+ db NO_ITEM ; item 1
+ db STICK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/farfetch_d/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/fearow.asm
@@ -1,0 +1,22 @@
+ db FEAROW ; 022
+
+ db 65, 90, 65, 100, 61, 61
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 90 ; catch rate
+ db 162 ; base exp
+ db NO_ITEM ; item 1
+ db SHARP_BEAK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/fearow/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/feraligatr.asm
@@ -1,0 +1,22 @@
+ db FERALIGATR ; 160
+
+ db 85, 105, 100, 78, 79, 83
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 210 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/feraligatr/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/flaaffy.asm
@@ -1,0 +1,22 @@
+ db FLAAFFY ; 180
+
+ db 70, 55, 55, 45, 80, 60
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 120 ; catch rate
+ db 117 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/flaaffy/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/flareon.asm
@@ -1,0 +1,22 @@
+ db FLAREON ; 136
+
+ db 65, 130, 60, 65, 95, 110
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 198 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/flareon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/forretress.asm
@@ -1,0 +1,22 @@
+ db FORRETRESS ; 205
+
+ db 75, 90, 140, 40, 60, 60
+ ; hp atk def spd sat sdf
+
+ db BUG, STEEL
+ db 75 ; catch rate
+ db 118 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/forretress/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/furret.asm
@@ -1,0 +1,22 @@
+ db FURRET ; 162
+
+ db 85, 76, 64, 90, 45, 55
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 90 ; catch rate
+ db 116 ; base exp
+ db BERRY ; item 1
+ db GOLD_BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/furret/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/gastly.asm
@@ -1,0 +1,22 @@
+ db GASTLY ; 092
+
+ db 30, 35, 30, 80, 100, 35
+ ; hp atk def spd sat sdf
+
+ db GHOST, POISON
+ db 190 ; catch rate
+ db 95 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gastly/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/gengar.asm
@@ -1,0 +1,22 @@
+ db GENGAR ; 094
+
+ db 60, 65, 60, 110, 130, 75
+ ; hp atk def spd sat sdf
+
+ db GHOST, POISON
+ db 45 ; catch rate
+ db 190 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gengar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, STRENGTH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/geodude.asm
@@ -1,0 +1,22 @@
+ db GEODUDE ; 074
+
+ db 40, 80, 100, 20, 30, 30
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 255 ; catch rate
+ db 86 ; base exp
+ db NO_ITEM ; item 1
+ db EVERSTONE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/geodude/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/girafarig.asm
@@ -1,0 +1,22 @@
+ db GIRAFARIG ; 203
+
+ db 70, 80, 65, 85, 90, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, PSYCHIC
+ db 60 ; catch rate
+ db 149 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/girafarig/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/gligar.asm
@@ -1,0 +1,22 @@
+ db GLIGAR ; 207
+
+ db 65, 75, 105, 85, 35, 65
+ ; hp atk def spd sat sdf
+
+ db GROUND, FLYING
+ db 60 ; catch rate
+ db 108 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gligar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/gloom.asm
@@ -1,0 +1,22 @@
+ db GLOOM ; 044
+
+ db 60, 65, 70, 40, 85, 75
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 120 ; catch rate
+ db 132 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gloom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/golbat.asm
@@ -1,0 +1,22 @@
+ db GOLBAT ; 042
+
+ db 75, 80, 70, 90, 65, 75
+ ; hp atk def spd sat sdf
+
+ db POISON, FLYING
+ db 90 ; catch rate
+ db 171 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/golbat/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/goldeen.asm
@@ -1,0 +1,22 @@
+ db GOLDEEN ; 118
+
+ db 45, 67, 60, 63, 35, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 225 ; catch rate
+ db 111 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/goldeen/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/golduck.asm
@@ -1,0 +1,22 @@
+ db GOLDUCK ; 055
+
+ db 80, 82, 78, 85, 95, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 75 ; catch rate
+ db 174 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/golduck/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, FURY_CUTTER, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/golem.asm
@@ -1,0 +1,22 @@
+ db GOLEM ; 076
+
+ db 80, 110, 130, 45, 55, 65
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 45 ; catch rate
+ db 177 ; base exp
+ db NO_ITEM ; item 1
+ db EVERSTONE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/golem/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/granbull.asm
@@ -1,0 +1,22 @@
+ db GRANBULL ; 210
+
+ db 90, 120, 75, 45, 60, 60
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 75 ; catch rate
+ db 178 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/granbull/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FIELD, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/graveler.asm
@@ -1,0 +1,22 @@
+ db GRAVELER ; 075
+
+ db 55, 95, 115, 35, 45, 45
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 120 ; catch rate
+ db 134 ; base exp
+ db NO_ITEM ; item 1
+ db EVERSTONE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/graveler/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/grimer.asm
@@ -1,0 +1,22 @@
+ db GRIMER ; 088
+
+ db 80, 80, 50, 25, 40, 50
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 190 ; catch rate
+ db 90 ; base exp
+ db NO_ITEM ; item 1
+ db NUGGET ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/grimer/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/growlithe.asm
@@ -1,0 +1,22 @@
+ db GROWLITHE ; 058
+
+ db 55, 70, 45, 60, 70, 50
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 190 ; catch rate
+ db 91 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/growlithe/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/gyarados.asm
@@ -1,0 +1,22 @@
+ db GYARADOS ; 130
+
+ db 95, 125, 79, 81, 60, 100
+ ; hp atk def spd sat sdf
+
+ db WATER, FLYING
+ db 45 ; catch rate
+ db 214 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 5 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gyarados/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FISH, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/haunter.asm
@@ -1,0 +1,22 @@
+ db HAUNTER ; 093
+
+ db 45, 50, 45, 95, 115, 55
+ ; hp atk def spd sat sdf
+
+ db GHOST, POISON
+ db 90 ; catch rate
+ db 126 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/haunter/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/heracross.asm
@@ -1,0 +1,22 @@
+ db HERACROSS ; 214
+
+ db 80, 125, 75, 85, 40, 95
+ ; hp atk def spd sat sdf
+
+ db BUG, FIGHTING
+ db 45 ; catch rate
+ db 200 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/heracross/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/hitmonchan.asm
@@ -1,0 +1,22 @@
+ db HITMONCHAN ; 107
+
+ db 50, 105, 79, 76, 35, 110
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 45 ; catch rate
+ db 140 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hitmonchan/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/hitmonlee.asm
@@ -1,0 +1,22 @@
+ db HITMONLEE ; 106
+
+ db 50, 120, 53, 87, 35, 110
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 45 ; catch rate
+ db 139 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hitmonlee/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/hitmontop.asm
@@ -1,0 +1,22 @@
+ db HITMONTOP ; 237
+
+ db 50, 95, 95, 70, 35, 110
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 45 ; catch rate
+ db 138 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hitmontop/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ho_oh.asm
@@ -1,0 +1,22 @@
+ db HO_OH ; 250
+
+ db 106, 130, 90, 90, 110, 154
+ ; hp atk def spd sat sdf
+
+ db FIRE, FLYING
+ db 3 ; catch rate
+ db 220 ; base exp
+ db SACRED_ASH ; item 1
+ db SACRED_ASH ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ho_oh/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/hoothoot.asm
@@ -1,0 +1,22 @@
+ db HOOTHOOT ; 163
+
+ db 60, 30, 30, 50, 36, 56
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 255 ; catch rate
+ db 58 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hoothoot/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/hoppip.asm
@@ -1,0 +1,22 @@
+ db HOPPIP ; 187
+
+ db 35, 35, 40, 50, 35, 55
+ ; hp atk def spd sat sdf
+
+ db GRASS, FLYING
+ db 255 ; catch rate
+ db 74 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hoppip/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FAIRY, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/horsea.asm
@@ -1,0 +1,22 @@
+ db HORSEA ; 116
+
+ db 30, 40, 70, 60, 70, 25
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 225 ; catch rate
+ db 83 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/horsea/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/houndoom.asm
@@ -1,0 +1,22 @@
+ db HOUNDOOM ; 229
+
+ db 75, 90, 50, 95, 110, 80
+ ; hp atk def spd sat sdf
+
+ db DARK, FIRE
+ db 45 ; catch rate
+ db 204 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/houndoom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/houndour.asm
@@ -1,0 +1,22 @@
+ db HOUNDOUR ; 228
+
+ db 45, 60, 30, 65, 80, 50
+ ; hp atk def spd sat sdf
+
+ db DARK, FIRE
+ db 120 ; catch rate
+ db 114 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/houndour/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/hypno.asm
@@ -1,0 +1,22 @@
+ db HYPNO ; 097
+
+ db 85, 73, 70, 67, 73, 115
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 75 ; catch rate
+ db 165 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hypno/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/igglybuff.asm
@@ -1,0 +1,22 @@
+ db IGGLYBUFF ; 174
+
+ db 90, 30, 15, 15, 40, 20
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 170 ; catch rate
+ db 39 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/igglybuff/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ivysaur.asm
@@ -1,0 +1,22 @@
+ db IVYSAUR ; 002
+
+ db 60, 62, 63, 60, 80, 80
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 141 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ivysaur/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/jigglypuff.asm
@@ -1,0 +1,22 @@
+ db JIGGLYPUFF ; 039
+
+ db 115, 45, 20, 20, 45, 25
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 170 ; catch rate
+ db 76 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/jigglypuff/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/jolteon.asm
@@ -1,0 +1,22 @@
+ db JOLTEON ; 135
+
+ db 65, 65, 60, 130, 110, 95
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 45 ; catch rate
+ db 197 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/jolteon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/jumpluff.asm
@@ -1,0 +1,22 @@
+ db JUMPLUFF ; 189
+
+ db 75, 55, 70, 110, 55, 85
+ ; hp atk def spd sat sdf
+
+ db GRASS, FLYING
+ db 45 ; catch rate
+ db 176 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/jumpluff/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FAIRY, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/jynx.asm
@@ -1,0 +1,22 @@
+ db JYNX ; 124
+
+ db 65, 50, 35, 95, 115, 95
+ ; hp atk def spd sat sdf
+
+ db ICE, PSYCHIC
+ db 45 ; catch rate
+ db 137 ; base exp
+ db ICE_BERRY ; item 1
+ db ICE_BERRY ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/jynx/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/kabuto.asm
@@ -1,0 +1,22 @@
+ db KABUTO ; 140
+
+ db 30, 80, 90, 55, 55, 45
+ ; hp atk def spd sat sdf
+
+ db ROCK, WATER
+ db 45 ; catch rate
+ db 119 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 30 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kabuto/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/kabutops.asm
@@ -1,0 +1,22 @@
+ db KABUTOPS ; 141
+
+ db 60, 115, 105, 80, 65, 70
+ ; hp atk def spd sat sdf
+
+ db ROCK, WATER
+ db 45 ; catch rate
+ db 201 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 30 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kabutops/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/kadabra.asm
@@ -1,0 +1,22 @@
+ db KADABRA ; 064
+
+ db 40, 35, 30, 105, 120, 70
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 100 ; catch rate
+ db 145 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kadabra/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/kakuna.asm
@@ -1,0 +1,22 @@
+ db KAKUNA ; 014
+
+ db 45, 25, 50, 35, 25, 25
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 120 ; catch rate
+ db 71 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kakuna/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/kangaskhan.asm
@@ -1,0 +1,22 @@
+ db KANGASKHAN ; 115
+
+ db 105, 95, 80, 90, 40, 80
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 175 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kangaskhan/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/kingdra.asm
@@ -1,0 +1,22 @@
+ db KINGDRA ; 230
+
+ db 75, 95, 95, 85, 95, 95
+ ; hp atk def spd sat sdf
+
+ db WATER, DRAGON
+ db 45 ; catch rate
+ db 207 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kingdra/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/kingler.asm
@@ -1,0 +1,22 @@
+ db KINGLER ; 099
+
+ db 55, 130, 115, 75, 50, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 60 ; catch rate
+ db 206 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kingler/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/koffing.asm
@@ -1,0 +1,22 @@
+ db KOFFING ; 109
+
+ db 40, 65, 95, 35, 60, 45
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 190 ; catch rate
+ db 114 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/koffing/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/krabby.asm
@@ -1,0 +1,22 @@
+ db KRABBY ; 098
+
+ db 30, 105, 90, 50, 25, 25
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 225 ; catch rate
+ db 115 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/krabby/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/lanturn.asm
@@ -1,0 +1,22 @@
+ db LANTURN ; 171
+
+ db 125, 58, 58, 67, 76, 76
+ ; hp atk def spd sat sdf
+
+ db WATER, ELECTRIC
+ db 75 ; catch rate
+ db 156 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/lanturn/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/lapras.asm
@@ -1,0 +1,22 @@
+ db LAPRAS ; 131
+
+ db 130, 85, 80, 60, 85, 95
+ ; hp atk def spd sat sdf
+
+ db WATER, ICE
+ db 45 ; catch rate
+ db 219 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/lapras/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, WHIRLPOOL, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/larvitar.asm
@@ -1,0 +1,22 @@
+ db LARVITAR ; 246
+
+ db 50, 64, 50, 41, 45, 50
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 45 ; catch rate
+ db 67 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/larvitar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ledian.asm
@@ -1,0 +1,22 @@
+ db LEDIAN ; 166
+
+ db 55, 35, 50, 85, 55, 110
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 90 ; catch rate
+ db 134 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ledian/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ledyba.asm
@@ -1,0 +1,22 @@
+ db LEDYBA ; 165
+
+ db 40, 20, 30, 55, 40, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 255 ; catch rate
+ db 54 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ledyba/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/lickitung.asm
@@ -1,0 +1,22 @@
+ db LICKITUNG ; 108
+
+ db 90, 55, 75, 30, 60, 75
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 127 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/lickitung/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/lugia.asm
@@ -1,0 +1,22 @@
+ db LUGIA ; 249
+
+ db 106, 90, 130, 110, 90, 154
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, FLYING
+ db 3 ; catch rate
+ db 220 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/lugia/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/machamp.asm
@@ -1,0 +1,22 @@
+ db MACHAMP ; 068
+
+ db 90, 130, 80, 55, 65, 85
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 45 ; catch rate
+ db 193 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/machamp/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/machoke.asm
@@ -1,0 +1,22 @@
+ db MACHOKE ; 067
+
+ db 80, 100, 70, 45, 50, 60
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 90 ; catch rate
+ db 146 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/machoke/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/machop.asm
@@ -1,0 +1,22 @@
+ db MACHOP ; 066
+
+ db 70, 80, 50, 35, 35, 35
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 180 ; catch rate
+ db 88 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/machop/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/magby.asm
@@ -1,0 +1,22 @@
+ db MAGBY ; 240
+
+ db 45, 75, 37, 83, 70, 55
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 117 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magby/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/magcargo.asm
@@ -1,0 +1,22 @@
+ db MAGCARGO ; 219
+
+ db 50, 50, 120, 30, 80, 80
+ ; hp atk def spd sat sdf
+
+ db FIRE, ROCK
+ db 75 ; catch rate
+ db 154 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magcargo/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/magikarp.asm
@@ -1,0 +1,22 @@
+ db MAGIKARP ; 129
+
+ db 20, 10, 55, 80, 15, 20
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 255 ; catch rate
+ db 20 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 5 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magikarp/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FISH, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/magmar.asm
@@ -1,0 +1,22 @@
+ db MAGMAR ; 126
+
+ db 65, 95, 57, 93, 100, 85
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 167 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magmar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/magnemite.asm
@@ -1,0 +1,22 @@
+ db MAGNEMITE ; 081
+
+ db 25, 35, 70, 45, 95, 55
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, STEEL
+ db 190 ; catch rate
+ db 89 ; base exp
+ db NO_ITEM ; item 1
+ db METAL_COAT ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magnemite/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/magneton.asm
@@ -1,0 +1,22 @@
+ db MAGNETON ; 082
+
+ db 50, 60, 95, 70, 120, 70
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, STEEL
+ db 60 ; catch rate
+ db 161 ; base exp
+ db NO_ITEM ; item 1
+ db METAL_COAT ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magneton/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/mankey.asm
@@ -1,0 +1,22 @@
+ db MANKEY ; 056
+
+ db 40, 80, 35, 70, 35, 45
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 190 ; catch rate
+ db 74 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mankey/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/mantine.asm
@@ -1,0 +1,22 @@
+ db MANTINE ; 226
+
+ db 65, 40, 70, 70, 80, 140
+ ; hp atk def spd sat sdf
+
+ db WATER, FLYING
+ db 25 ; catch rate
+ db 168 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mantine/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/mareep.asm
@@ -1,0 +1,22 @@
+ db MAREEP ; 179
+
+ db 55, 40, 40, 35, 65, 45
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 235 ; catch rate
+ db 59 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mareep/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/marill.asm
@@ -1,0 +1,22 @@
+ db MARILL ; 183
+
+ db 70, 20, 50, 40, 20, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 58 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/marill/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMPHIBIAN, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/marowak.asm
@@ -1,0 +1,22 @@
+ db MAROWAK ; 105
+
+ db 60, 80, 110, 45, 50, 80
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 75 ; catch rate
+ db 124 ; base exp
+ db NO_ITEM ; item 1
+ db THICK_CLUB ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/marowak/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/meganium.asm
@@ -1,0 +1,22 @@
+ db MEGANIUM ; 154
+
+ db 80, 82, 100, 80, 83, 100
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 208 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/meganium/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/meowth.asm
@@ -1,0 +1,22 @@
+ db MEOWTH ; 052
+
+ db 40, 45, 35, 90, 40, 40
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 255 ; catch rate
+ db 69 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/meowth/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/metapod.asm
@@ -1,0 +1,22 @@
+ db METAPOD ; 011
+
+ db 50, 20, 55, 30, 25, 25
+ ; hp atk def spd sat sdf
+
+ db BUG, BUG
+ db 120 ; catch rate
+ db 72 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/metapod/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/mew.asm
@@ -1,0 +1,22 @@
+ db MEW ; 151
+
+ db 100, 100, 100, 100, 100, 100
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 45 ; catch rate
+ db 64 ; base exp
+ db NO_ITEM ; item 1
+ db MIRACLEBERRY ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mew/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, FLY, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/mewtwo.asm
@@ -1,0 +1,22 @@
+ db MEWTWO ; 150
+
+ db 106, 110, 90, 130, 154, 90
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 3 ; catch rate
+ db 220 ; base exp
+ db NO_ITEM ; item 1
+ db BERSERK_GENE ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mewtwo/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, THUNDERPUNCH, DREAM_EATER, DETECT, REST, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/miltank.asm
@@ -1,0 +1,22 @@
+ db MILTANK ; 241
+
+ db 95, 80, 105, 100, 40, 70
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 200 ; base exp
+ db MOOMOO_MILK ; item 1
+ db MOOMOO_MILK ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/miltank/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/misdreavus.asm
@@ -1,0 +1,22 @@
+ db MISDREAVUS ; 200
+
+ db 60, 60, 60, 85, 85, 85
+ ; hp atk def spd sat sdf
+
+ db GHOST, GHOST
+ db 45 ; catch rate
+ db 147 ; base exp
+ db NO_ITEM ; item 1
+ db SPELL_TAG ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/misdreavus/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/moltres.asm
@@ -1,0 +1,22 @@
+ db MOLTRES ; 146
+
+ db 90, 100, 90, 90, 125, 85
+ ; hp atk def spd sat sdf
+
+ db FIRE, FLYING
+ db 3 ; catch rate
+ db 217 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/moltres/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, STEEL_WING, FLY, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/mr__mime.asm
@@ -1,0 +1,22 @@
+ db MR__MIME ; 122
+
+ db 40, 45, 65, 90, 100, 120
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 45 ; catch rate
+ db 136 ; base exp
+ db NO_ITEM ; item 1
+ db MYSTERYBERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mr__mime/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/muk.asm
@@ -1,0 +1,22 @@
+ db MUK ; 089
+
+ db 105, 105, 75, 50, 65, 100
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 75 ; catch rate
+ db 157 ; base exp
+ db NO_ITEM ; item 1
+ db NUGGET ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/muk/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/murkrow.asm
@@ -1,0 +1,22 @@
+ db MURKROW ; 198
+
+ db 60, 85, 42, 91, 85, 42
+ ; hp atk def spd sat sdf
+
+ db DARK, FLYING
+ db 30 ; catch rate
+ db 107 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/murkrow/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/natu.asm
@@ -1,0 +1,22 @@
+ db NATU ; 177
+
+ db 40, 50, 45, 70, 70, 45
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, FLYING
+ db 190 ; catch rate
+ db 73 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/natu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/nidoking.asm
@@ -1,0 +1,22 @@
+ db NIDOKING ; 034
+
+ db 81, 92, 77, 85, 85, 75
+ ; hp atk def spd sat sdf
+
+ db POISON, GROUND
+ db 45 ; catch rate
+ db 195 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidoking/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/nidoqueen.asm
@@ -1,0 +1,22 @@
+ db NIDOQUEEN ; 031
+
+ db 90, 82, 87, 76, 75, 85
+ ; hp atk def spd sat sdf
+
+ db POISON, GROUND
+ db 45 ; catch rate
+ db 194 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidoqueen/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/nidoran_f.asm
@@ -1,0 +1,22 @@
+ db NIDORAN_F ; 029
+
+ db 55, 47, 52, 41, 40, 40
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 235 ; catch rate
+ db 59 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidoran_f/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/nidoran_m.asm
@@ -1,0 +1,22 @@
+ db NIDORAN_M ; 032
+
+ db 46, 57, 40, 50, 40, 40
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 235 ; catch rate
+ db 60 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidoran_m/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/nidorina.asm
@@ -1,0 +1,22 @@
+ db NIDORINA ; 030
+
+ db 70, 62, 67, 56, 55, 55
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 120 ; catch rate
+ db 117 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidorina/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/nidorino.asm
@@ -1,0 +1,22 @@
+ db NIDORINO ; 033
+
+ db 61, 72, 57, 65, 55, 55
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 120 ; catch rate
+ db 118 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidorino/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ninetales.asm
@@ -1,0 +1,22 @@
+ db NINETALES ; 038
+
+ db 73, 76, 75, 100, 81, 100
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 75 ; catch rate
+ db 178 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ninetales/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/noctowl.asm
@@ -1,0 +1,22 @@
+ db NOCTOWL ; 164
+
+ db 100, 50, 50, 70, 76, 96
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 90 ; catch rate
+ db 162 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/noctowl/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/octillery.asm
@@ -1,0 +1,22 @@
+ db OCTILLERY ; 224
+
+ db 75, 105, 75, 45, 105, 75
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 75 ; catch rate
+ db 164 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/octillery/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/oddish.asm
@@ -1,0 +1,22 @@
+ db ODDISH ; 043
+
+ db 45, 50, 55, 30, 75, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 255 ; catch rate
+ db 78 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/oddish/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/omanyte.asm
@@ -1,0 +1,22 @@
+ db OMANYTE ; 138
+
+ db 35, 40, 100, 35, 90, 55
+ ; hp atk def spd sat sdf
+
+ db ROCK, WATER
+ db 45 ; catch rate
+ db 120 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 30 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/omanyte/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/omastar.asm
@@ -1,0 +1,22 @@
+ db OMASTAR ; 139
+
+ db 70, 60, 125, 55, 115, 70
+ ; hp atk def spd sat sdf
+
+ db ROCK, WATER
+ db 45 ; catch rate
+ db 199 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 30 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/omastar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/onix.asm
@@ -1,0 +1,22 @@
+ db ONIX ; 095
+
+ db 35, 45, 160, 70, 30, 45
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 45 ; catch rate
+ db 108 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/onix/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/paras.asm
@@ -1,0 +1,22 @@
+ db PARAS ; 046
+
+ db 35, 70, 55, 25, 45, 55
+ ; hp atk def spd sat sdf
+
+ db BUG, GRASS
+ db 190 ; catch rate
+ db 70 ; base exp
+ db TINYMUSHROOM ; item 1
+ db BIG_MUSHROOM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/paras/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/parasect.asm
@@ -1,0 +1,22 @@
+ db PARASECT ; 047
+
+ db 60, 95, 80, 30, 60, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, GRASS
+ db 75 ; catch rate
+ db 128 ; base exp
+ db TINYMUSHROOM ; item 1
+ db BIG_MUSHROOM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/parasect/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/persian.asm
@@ -1,0 +1,22 @@
+ db PERSIAN ; 053
+
+ db 65, 70, 60, 115, 65, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 90 ; catch rate
+ db 148 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/persian/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/phanpy.asm
@@ -1,0 +1,22 @@
+ db PHANPY ; 231
+
+ db 90, 60, 60, 40, 40, 40
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 120 ; catch rate
+ db 124 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/phanpy/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/pichu.asm
@@ -1,0 +1,22 @@
+ db PICHU ; 172
+
+ db 20, 40, 15, 60, 35, 35
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 190 ; catch rate
+ db 42 ; base exp
+ db NO_ITEM ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pichu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/pidgeot.asm
@@ -1,0 +1,22 @@
+ db PIDGEOT ; 018
+
+ db 83, 80, 75, 91, 70, 70
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 45 ; catch rate
+ db 172 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pidgeot/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/pidgeotto.asm
@@ -1,0 +1,22 @@
+ db PIDGEOTTO ; 017
+
+ db 63, 60, 55, 71, 50, 50
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 120 ; catch rate
+ db 113 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pidgeotto/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/pidgey.asm
@@ -1,0 +1,22 @@
+ db PIDGEY ; 016
+
+ db 40, 45, 40, 56, 35, 35
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 255 ; catch rate
+ db 55 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pidgey/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/pikachu.asm
@@ -1,0 +1,22 @@
+ db PIKACHU ; 025
+
+ db 35, 55, 30, 90, 50, 40
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 190 ; catch rate
+ db 82 ; base exp
+ db NO_ITEM ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pikachu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, STRENGTH, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/piloswine.asm
@@ -1,0 +1,22 @@
+ db PILOSWINE ; 221
+
+ db 100, 100, 80, 50, 60, 60
+ ; hp atk def spd sat sdf
+
+ db ICE, GROUND
+ db 75 ; catch rate
+ db 160 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/piloswine/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/pineco.asm
@@ -1,0 +1,22 @@
+ db PINECO ; 204
+
+ db 50, 65, 90, 15, 35, 35
+ ; hp atk def spd sat sdf
+
+ db BUG, BUG
+ db 190 ; catch rate
+ db 60 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pineco/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/pinsir.asm
@@ -1,0 +1,22 @@
+ db PINSIR ; 127
+
+ db 65, 125, 100, 85, 55, 70
+ ; hp atk def spd sat sdf
+
+ db BUG, BUG
+ db 45 ; catch rate
+ db 200 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pinsir/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/politoed.asm
@@ -1,0 +1,22 @@
+ db POLITOED ; 186
+
+ db 90, 75, 75, 70, 90, 100
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 185 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/politoed/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/poliwag.asm
@@ -1,0 +1,22 @@
+ db POLIWAG ; 060
+
+ db 40, 50, 40, 90, 40, 40
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 255 ; catch rate
+ db 77 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/poliwag/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/poliwhirl.asm
@@ -1,0 +1,22 @@
+ db POLIWHIRL ; 061
+
+ db 65, 65, 65, 90, 50, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 120 ; catch rate
+ db 131 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/poliwhirl/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/poliwrath.asm
@@ -1,0 +1,22 @@
+ db POLIWRATH ; 062
+
+ db 90, 85, 95, 70, 70, 90
+ ; hp atk def spd sat sdf
+
+ db WATER, FIGHTING
+ db 45 ; catch rate
+ db 185 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/poliwrath/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ponyta.asm
@@ -1,0 +1,22 @@
+ db PONYTA ; 077
+
+ db 50, 85, 55, 90, 65, 65
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 190 ; catch rate
+ db 152 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ponyta/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/porygon.asm
@@ -1,0 +1,22 @@
+ db PORYGON ; 137
+
+ db 65, 60, 70, 40, 85, 75
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 130 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/porygon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/porygon2.asm
@@ -1,0 +1,22 @@
+ db PORYGON2 ; 233
+
+ db 85, 80, 90, 60, 105, 95
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 180 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/porygon2/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/primeape.asm
@@ -1,0 +1,22 @@
+ db PRIMEAPE ; 057
+
+ db 65, 105, 60, 95, 60, 70
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 75 ; catch rate
+ db 149 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/primeape/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/psyduck.asm
@@ -1,0 +1,22 @@
+ db PSYDUCK ; 054
+
+ db 50, 52, 48, 55, 65, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 80 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/psyduck/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/pupitar.asm
@@ -1,0 +1,22 @@
+ db PUPITAR ; 247
+
+ db 70, 84, 70, 51, 65, 70
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 45 ; catch rate
+ db 144 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pupitar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/quagsire.asm
@@ -1,0 +1,22 @@
+ db QUAGSIRE ; 195
+
+ db 95, 85, 85, 35, 65, 65
+ ; hp atk def spd sat sdf
+
+ db WATER, GROUND
+ db 90 ; catch rate
+ db 137 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/quagsire/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/quilava.asm
@@ -1,0 +1,22 @@
+ db QUILAVA ; 156
+
+ db 58, 64, 58, 80, 80, 65
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 142 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/quilava/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/qwilfish.asm
@@ -1,0 +1,22 @@
+ db QWILFISH ; 211
+
+ db 65, 95, 75, 85, 55, 55
+ ; hp atk def spd sat sdf
+
+ db WATER, POISON
+ db 45 ; catch rate
+ db 100 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/qwilfish/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/raichu.asm
@@ -1,0 +1,22 @@
+ db RAICHU ; 026
+
+ db 60, 90, 55, 100, 90, 80
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 75 ; catch rate
+ db 122 ; base exp
+ db NO_ITEM ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/raichu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, STRENGTH, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/raikou.asm
@@ -1,0 +1,22 @@
+ db RAIKOU ; 243
+
+ db 90, 85, 75, 115, 115, 100
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 3 ; catch rate
+ db 216 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/raikou/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/rapidash.asm
@@ -1,0 +1,22 @@
+ db RAPIDASH ; 078
+
+ db 65, 100, 70, 105, 80, 80
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 60 ; catch rate
+ db 192 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/rapidash/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/raticate.asm
@@ -1,0 +1,22 @@
+ db RATICATE ; 020
+
+ db 55, 81, 60, 97, 50, 70
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 90 ; catch rate
+ db 116 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/raticate/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, CUT, STRENGTH, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/rattata.asm
@@ -1,0 +1,22 @@
+ db RATTATA ; 019
+
+ db 30, 56, 35, 72, 25, 35
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 255 ; catch rate
+ db 57 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/rattata/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/remoraid.asm
@@ -1,0 +1,22 @@
+ db REMORAID ; 223
+
+ db 35, 65, 35, 65, 65, 35
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 78 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/remoraid/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/rhydon.asm
@@ -1,0 +1,22 @@
+ db RHYDON ; 112
+
+ db 105, 130, 120, 40, 45, 45
+ ; hp atk def spd sat sdf
+
+ db GROUND, ROCK
+ db 60 ; catch rate
+ db 204 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/rhydon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/rhyhorn.asm
@@ -1,0 +1,22 @@
+ db RHYHORN ; 111
+
+ db 80, 85, 95, 25, 30, 30
+ ; hp atk def spd sat sdf
+
+ db GROUND, ROCK
+ db 120 ; catch rate
+ db 135 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/rhyhorn/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/sandshrew.asm
@@ -1,0 +1,22 @@
+ db SANDSHREW ; 027
+
+ db 50, 75, 85, 40, 20, 30
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 255 ; catch rate
+ db 93 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sandshrew/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/sandslash.asm
@@ -1,0 +1,22 @@
+ db SANDSLASH ; 028
+
+ db 75, 100, 110, 65, 45, 55
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 90 ; catch rate
+ db 163 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sandslash/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/scizor.asm
@@ -1,0 +1,22 @@
+ db SCIZOR ; 212
+
+ db 70, 130, 100, 65, 55, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, STEEL
+ db 25 ; catch rate
+ db 200 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/scizor/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/scyther.asm
@@ -1,0 +1,22 @@
+ db SCYTHER ; 123
+
+ db 70, 110, 80, 105, 55, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 45 ; catch rate
+ db 187 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/scyther/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/seadra.asm
@@ -1,0 +1,22 @@
+ db SEADRA ; 117
+
+ db 55, 65, 95, 85, 95, 45
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 75 ; catch rate
+ db 155 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/seadra/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/seaking.asm
@@ -1,0 +1,22 @@
+ db SEAKING ; 119
+
+ db 80, 92, 65, 68, 65, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 60 ; catch rate
+ db 170 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/seaking/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/seel.asm
@@ -1,0 +1,22 @@
+ db SEEL ; 086
+
+ db 65, 45, 55, 45, 45, 70
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 100 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/seel/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/sentret.asm
@@ -1,0 +1,22 @@
+ db SENTRET ; 161
+
+ db 35, 46, 34, 20, 35, 45
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 255 ; catch rate
+ db 57 ; base exp
+ db NO_ITEM ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sentret/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/shellder.asm
@@ -1,0 +1,22 @@
+ db SHELLDER ; 090
+
+ db 30, 65, 100, 40, 45, 25
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 97 ; base exp
+ db PEARL ; item 1
+ db BIG_PEARL ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/shellder/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/shuckle.asm
@@ -1,0 +1,22 @@
+ db SHUCKLE ; 213
+
+ db 20, 10, 230, 05, 10, 230
+ ; hp atk def spd sat sdf
+
+ db BUG, ROCK
+ db 190 ; catch rate
+ db 80 ; base exp
+ db BERRY ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/shuckle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/skarmory.asm
@@ -1,0 +1,22 @@
+ db SKARMORY ; 227
+
+ db 65, 80, 140, 70, 40, 70
+ ; hp atk def spd sat sdf
+
+ db STEEL, FLYING
+ db 25 ; catch rate
+ db 168 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/skarmory/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/skiploom.asm
@@ -1,0 +1,22 @@
+ db SKIPLOOM ; 188
+
+ db 55, 45, 50, 80, 45, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, FLYING
+ db 120 ; catch rate
+ db 136 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/skiploom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FAIRY, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/slowbro.asm
@@ -1,0 +1,22 @@
+ db SLOWBRO ; 080
+
+ db 95, 75, 110, 30, 100, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, PSYCHIC
+ db 75 ; catch rate
+ db 164 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/slowbro/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/slowking.asm
@@ -1,0 +1,22 @@
+ db SLOWKING ; 199
+
+ db 95, 75, 80, 30, 100, 110
+ ; hp atk def spd sat sdf
+
+ db WATER, PSYCHIC
+ db 70 ; catch rate
+ db 164 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/slowking/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/slowpoke.asm
@@ -1,0 +1,22 @@
+ db SLOWPOKE ; 079
+
+ db 90, 65, 65, 15, 40, 40
+ ; hp atk def spd sat sdf
+
+ db WATER, PSYCHIC
+ db 190 ; catch rate
+ db 99 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/slowpoke/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/slugma.asm
@@ -1,0 +1,22 @@
+ db SLUGMA ; 218
+
+ db 40, 40, 40, 20, 70, 40
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 190 ; catch rate
+ db 78 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/slugma/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/smeargle.asm
@@ -1,0 +1,22 @@
+ db SMEARGLE ; 235
+
+ db 55, 20, 35, 75, 20, 45
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 106 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/smeargle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/smoochum.asm
@@ -1,0 +1,22 @@
+ db SMOOCHUM ; 238
+
+ db 45, 30, 15, 65, 85, 65
+ ; hp atk def spd sat sdf
+
+ db ICE, PSYCHIC
+ db 45 ; catch rate
+ db 87 ; base exp
+ db ICE_BERRY ; item 1
+ db ICE_BERRY ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/smoochum/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/sneasel.asm
@@ -1,0 +1,22 @@
+ db SNEASEL ; 215
+
+ db 55, 95, 55, 115, 35, 75
+ ; hp atk def spd sat sdf
+
+ db DARK, ICE
+ db 60 ; catch rate
+ db 132 ; base exp
+ db NO_ITEM ; item 1
+ db QUICK_CLAW ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sneasel/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/snorlax.asm
@@ -1,0 +1,22 @@
+ db SNORLAX ; 143
+
+ db 160, 110, 65, 30, 65, 110
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 25 ; catch rate
+ db 154 ; base exp
+ db LEFTOVERS ; item 1
+ db LEFTOVERS ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/snorlax/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/snubbull.asm
@@ -1,0 +1,22 @@
+ db SNUBBULL ; 209
+
+ db 60, 80, 50, 30, 40, 40
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 190 ; catch rate
+ db 63 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/snubbull/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FIELD, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/spearow.asm
@@ -1,0 +1,22 @@
+ db SPEAROW ; 021
+
+ db 40, 60, 30, 70, 31, 31
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 255 ; catch rate
+ db 58 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/spearow/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/spinarak.asm
@@ -1,0 +1,22 @@
+ db SPINARAK ; 167
+
+ db 40, 60, 40, 30, 40, 40
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 255 ; catch rate
+ db 54 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/spinarak/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/squirtle.asm
@@ -1,0 +1,22 @@
+ db SQUIRTLE ; 007
+
+ db 44, 48, 65, 43, 50, 64
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 66 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/squirtle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/stantler.asm
@@ -1,0 +1,22 @@
+ db STANTLER ; 234
+
+ db 73, 95, 62, 85, 85, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 165 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/stantler/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/starmie.asm
@@ -1,0 +1,22 @@
+ db STARMIE ; 121
+
+ db 60, 75, 85, 115, 100, 85
+ ; hp atk def spd sat sdf
+
+ db WATER, PSYCHIC
+ db 60 ; catch rate
+ db 207 ; base exp
+ db STARDUST ; item 1
+ db STAR_PIECE ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/starmie/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/staryu.asm
@@ -1,0 +1,22 @@
+ db STARYU ; 120
+
+ db 30, 45, 55, 85, 70, 55
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 225 ; catch rate
+ db 106 ; base exp
+ db STARDUST ; item 1
+ db STAR_PIECE ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/staryu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/steelix.asm
@@ -1,0 +1,22 @@
+ db STEELIX ; 208
+
+ db 75, 85, 200, 30, 55, 65
+ ; hp atk def spd sat sdf
+
+ db STEEL, GROUND
+ db 25 ; catch rate
+ db 196 ; base exp
+ db NO_ITEM ; item 1
+ db METAL_COAT ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/steelix/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/sudowoodo.asm
@@ -1,0 +1,22 @@
+ db SUDOWOODO ; 185
+
+ db 70, 100, 115, 30, 30, 65
+ ; hp atk def spd sat sdf
+
+ db ROCK, ROCK
+ db 65 ; catch rate
+ db 135 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sudowoodo/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/suicune.asm
@@ -1,0 +1,22 @@
+ db SUICUNE ; 245
+
+ db 100, 75, 115, 85, 90, 115
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 3 ; catch rate
+ db 215 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/suicune/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/sunflora.asm
@@ -1,0 +1,22 @@
+ db SUNFLORA ; 192
+
+ db 75, 75, 55, 30, 105, 85
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 120 ; catch rate
+ db 146 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sunflora/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/sunkern.asm
@@ -1,0 +1,22 @@
+ db SUNKERN ; 191
+
+ db 30, 30, 30, 30, 30, 30
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 235 ; catch rate
+ db 52 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sunkern/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/swinub.asm
@@ -1,0 +1,22 @@
+ db SWINUB ; 220
+
+ db 50, 50, 40, 50, 30, 30
+ ; hp atk def spd sat sdf
+
+ db ICE, GROUND
+ db 225 ; catch rate
+ db 78 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/swinub/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/tangela.asm
@@ -1,0 +1,22 @@
+ db TANGELA ; 114
+
+ db 65, 55, 115, 60, 100, 40
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 166 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tangela/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/tauros.asm
@@ -1,0 +1,22 @@
+ db TAUROS ; 128
+
+ db 75, 100, 95, 110, 40, 70
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 211 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tauros/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/teddiursa.asm
@@ -1,0 +1,22 @@
+ db TEDDIURSA ; 216
+
+ db 60, 80, 50, 40, 50, 50
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 120 ; catch rate
+ db 124 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/teddiursa/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/tentacool.asm
@@ -1,0 +1,22 @@
+ db TENTACOOL ; 072
+
+ db 40, 40, 35, 70, 50, 100
+ ; hp atk def spd sat sdf
+
+ db WATER, POISON
+ db 190 ; catch rate
+ db 105 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tentacool/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/tentacruel.asm
@@ -1,0 +1,22 @@
+ db TENTACRUEL ; 073
+
+ db 80, 70, 65, 100, 80, 120
+ ; hp atk def spd sat sdf
+
+ db WATER, POISON
+ db 60 ; catch rate
+ db 205 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tentacruel/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/togepi.asm
@@ -1,0 +1,22 @@
+ db TOGEPI ; 175
+
+ db 35, 20, 65, 20, 40, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 190 ; catch rate
+ db 74 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/togepi/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, FLASH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/togetic.asm
@@ -1,0 +1,22 @@
+ db TOGETIC ; 176
+
+ db 55, 40, 85, 40, 80, 105
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 75 ; catch rate
+ db 114 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/togetic/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AVIAN, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLASH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/totodile.asm
@@ -1,0 +1,22 @@
+ db TOTODILE ; 158
+
+ db 50, 65, 64, 43, 44, 48
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 66 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/totodile/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/typhlosion.asm
@@ -1,0 +1,22 @@
+ db TYPHLOSION ; 157
+
+ db 78, 84, 78, 100, 109, 85
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 209 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/typhlosion/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/tyranitar.asm
@@ -1,0 +1,22 @@
+ db TYRANITAR ; 248
+
+ db 100, 134, 110, 61, 95, 100
+ ; hp atk def spd sat sdf
+
+ db ROCK, DARK
+ db 45 ; catch rate
+ db 218 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tyranitar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/tyrogue.asm
@@ -1,0 +1,22 @@
+ db TYROGUE ; 236
+
+ db 35, 35, 35, 35, 35, 35
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 75 ; catch rate
+ db 91 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tyrogue/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/umbreon.asm
@@ -1,0 +1,22 @@
+ db UMBREON ; 197
+
+ db 95, 65, 110, 65, 60, 130
+ ; hp atk def spd sat sdf
+
+ db DARK, DARK
+ db 45 ; catch rate
+ db 197 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/umbreon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/unown.asm
@@ -1,0 +1,22 @@
+ db UNOWN ; 201
+
+ db 48, 72, 48, 48, 72, 48
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 225 ; catch rate
+ db 61 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/unown_a/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/ursaring.asm
@@ -1,0 +1,22 @@
+ db URSARING ; 217
+
+ db 90, 130, 75, 55, 75, 75
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 60 ; catch rate
+ db 189 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ursaring/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/vaporeon.asm
@@ -1,0 +1,22 @@
+ db VAPOREON ; 134
+
+ db 130, 65, 60, 65, 110, 95
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 196 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/vaporeon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/venomoth.asm
@@ -1,0 +1,22 @@
+ db VENOMOTH ; 049
+
+ db 70, 65, 60, 90, 90, 75
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 75 ; catch rate
+ db 138 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/venomoth/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/venonat.asm
@@ -1,0 +1,22 @@
+ db VENONAT ; 048
+
+ db 60, 55, 50, 45, 40, 55
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 190 ; catch rate
+ db 75 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/venonat/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/venusaur.asm
@@ -1,0 +1,22 @@
+ db VENUSAUR ; 003
+
+ db 80, 82, 83, 80, 100, 100
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 208 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/venusaur/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/victreebel.asm
@@ -1,0 +1,22 @@
+ db VICTREEBEL ; 071
+
+ db 80, 105, 65, 70, 100, 60
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 191 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/victreebel/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/vileplume.asm
@@ -1,0 +1,22 @@
+ db VILEPLUME ; 045
+
+ db 75, 80, 85, 50, 100, 90
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 184 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/vileplume/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/voltorb.asm
@@ -1,0 +1,22 @@
+ db VOLTORB ; 100
+
+ db 40, 30, 50, 100, 55, 55
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 190 ; catch rate
+ db 103 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/voltorb/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/vulpix.asm
@@ -1,0 +1,22 @@
+ db VULPIX ; 037
+
+ db 38, 41, 40, 65, 50, 65
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 190 ; catch rate
+ db 63 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/vulpix/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/wartortle.asm
@@ -1,0 +1,22 @@
+ db WARTORTLE ; 008
+
+ db 59, 63, 80, 58, 65, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 143 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/wartortle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/weedle.asm
@@ -1,0 +1,22 @@
+ db WEEDLE ; 013
+
+ db 40, 35, 30, 50, 20, 20
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 255 ; catch rate
+ db 52 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/weedle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/weepinbell.asm
@@ -1,0 +1,22 @@
+ db WEEPINBELL ; 070
+
+ db 65, 90, 50, 55, 85, 45
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 120 ; catch rate
+ db 151 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/weepinbell/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/weezing.asm
@@ -1,0 +1,22 @@
+ db WEEZING ; 110
+
+ db 65, 90, 120, 60, 85, 70
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 60 ; catch rate
+ db 173 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/weezing/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/wigglytuff.asm
@@ -1,0 +1,22 @@
+ db WIGGLYTUFF ; 040
+
+ db 140, 70, 45, 45, 75, 50
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 50 ; catch rate
+ db 109 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/wigglytuff/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/wobbuffet.asm
@@ -1,0 +1,22 @@
+ db WOBBUFFET ; 202
+
+ db 190, 33, 58, 33, 33, 58
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 45 ; catch rate
+ db 177 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/wobbuffet/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/wooper.asm
@@ -1,0 +1,22 @@
+ db WOOPER ; 194
+
+ db 55, 45, 45, 15, 25, 25
+ ; hp atk def spd sat sdf
+
+ db WATER, GROUND
+ db 255 ; catch rate
+ db 52 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/wooper/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, ICE_BEAM
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/xatu.asm
@@ -1,0 +1,22 @@
+ db XATU ; 178
+
+ db 65, 75, 70, 95, 95, 70
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, FLYING
+ db 75 ; catch rate
+ db 171 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/xatu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLY, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/yanma.asm
@@ -1,0 +1,22 @@
+ db YANMA ; 193
+
+ db 65, 65, 45, 95, 75, 45
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 75 ; catch rate
+ db 147 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/yanma/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLASH
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/zapdos.asm
@@ -1,0 +1,22 @@
+ db ZAPDOS ; 145
+
+ db 90, 90, 85, 100, 125, 90
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, FLYING
+ db 3 ; catch rate
+ db 216 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/zapdos/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, FLASH, THUNDERBOLT
+ ; end
--- /dev/null
+++ b/data/pokemon/base_stats/zubat.asm
@@ -1,0 +1,22 @@
+ db ZUBAT ; 041
+
+ db 40, 45, 35, 55, 30, 40
+ ; hp atk def spd sat sdf
+
+ db POISON, FLYING
+ db 255 ; catch rate
+ db 54 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/zubat/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
+ ; end
--- /dev/null
+++ b/data/pokemon/cry_headers.asm
@@ -1,0 +1,259 @@
+CryHeaders:: ; f2787
+; entries correspond to constants/pokemon_constants.asm
+; index, pitch, length
+BulbasaurCryHeader: cry_header CRY_BULBASAUR, $080, $081
+IvysaurCryHeader: cry_header CRY_BULBASAUR, $020, $100
+VenusaurCryHeader: cry_header CRY_BULBASAUR, $000, $140
+CharmanderCryHeader: cry_header CRY_CHARMANDER, $060, $0c0
+CharmeleonCryHeader: cry_header CRY_CHARMANDER, $020, $0c0
+CharizardCryHeader: cry_header CRY_CHARMANDER, $000, $100
+SquirtleCryHeader: cry_header CRY_SQUIRTLE, $060, $0c0
+WartortleCryHeader: cry_header CRY_SQUIRTLE, $020, $0c0
+BlastoiseCryHeader: cry_header CRY_BLASTOISE, $000, $100
+CaterpieCryHeader: cry_header CRY_CATERPIE, $080, $0a0
+MetapodCryHeader: cry_header CRY_METAPOD, $0cc, $081
+ButterfreeCryHeader: cry_header CRY_CATERPIE, $077, $0c0
+WeedleCryHeader: cry_header CRY_WEEDLE, $0ee, $081
+KakunaCryHeader: cry_header CRY_BLASTOISE, $0ff, $081
+BeedrillCryHeader: cry_header CRY_BLASTOISE, $060, $100
+PidgeyCryHeader: cry_header CRY_PIDGEY, $0df, $084
+PidgeottoCryHeader: cry_header CRY_PIDGEOTTO, $028, $140
+PidgeotCryHeader: cry_header CRY_PIDGEOTTO, $011, $17f
+RattataCryHeader: cry_header CRY_RATTATA, $000, $100
+RaticateCryHeader: cry_header CRY_RATTATA, $020, $17f
+SpearowCryHeader: cry_header CRY_SPEAROW, $000, $100
+FearowCryHeader: cry_header CRY_FEAROW, $040, $120
+EkansCryHeader: cry_header CRY_EKANS, $012, $0c0
+ArbokCryHeader: cry_header CRY_EKANS, $0e0, $090
+PikachuCryHeader: cry_header CRY_BULBASAUR, $0ee, $081
+RaichuCryHeader: cry_header CRY_RAICHU, $0ee, $088
+SandshrewCryHeader: cry_header CRY_NIDORAN_M, $020, $0c0
+SandslashCryHeader: cry_header CRY_NIDORAN_M, $0ff, $17f
+NidoranFCryHeader: cry_header CRY_NIDORAN_F, $000, $100
+NidorinaCryHeader: cry_header CRY_NIDORAN_F, $02c, $160
+NidoqueenCryHeader: cry_header CRY_NIDOQUEEN, $000, $100
+NidoranMCryHeader: cry_header CRY_NIDORAN_M, $000, $100
+NidorinoCryHeader: cry_header CRY_NIDORAN_M, $02c, $140
+NidokingCryHeader: cry_header CRY_RAICHU, $000, $100
+ClefairyCryHeader: cry_header CRY_CLEFAIRY, $0cc, $081
+ClefableCryHeader: cry_header CRY_CLEFAIRY, $0aa, $0a0
+VulpixCryHeader: cry_header CRY_VULPIX, $04f, $090
+NinetalesCryHeader: cry_header CRY_VULPIX, $088, $0e0
+JigglypuffCryHeader: cry_header CRY_PIDGEY, $0ff, $0b5
+WigglytuffCryHeader: cry_header CRY_PIDGEY, $068, $0e0
+ZubatCryHeader: cry_header CRY_SQUIRTLE, $0e0, $100
+GolbatCryHeader: cry_header CRY_SQUIRTLE, $0fa, $100
+OddishCryHeader: cry_header CRY_ODDISH, $0dd, $081
+GloomCryHeader: cry_header CRY_ODDISH, $0aa, $0c0
+VileplumeCryHeader: cry_header CRY_VILEPLUME, $022, $17f
+ParasCryHeader: cry_header CRY_PARAS, $020, $160
+ParasectCryHeader: cry_header CRY_PARAS, $042, $17f
+VenonatCryHeader: cry_header CRY_VENONAT, $044, $0c0
+VenomothCryHeader: cry_header CRY_VENONAT, $029, $100
+DiglettCryHeader: cry_header CRY_DIGLETT, $0aa, $081
+DugtrioCryHeader: cry_header CRY_DIGLETT, $02a, $090
+MeowthCryHeader: cry_header CRY_CLEFAIRY, $077, $090
+PersianCryHeader: cry_header CRY_CLEFAIRY, $099, $17f
+PsyduckCryHeader: cry_header CRY_PSYDUCK, $020, $0e0
+GolduckCryHeader: cry_header CRY_PSYDUCK, $0ff, $0c0
+MankeyCryHeader: cry_header CRY_NIDOQUEEN, $0dd, $0e0
+PrimeapeCryHeader: cry_header CRY_NIDOQUEEN, $0af, $0c0
+GrowlitheCryHeader: cry_header CRY_GROWLITHE, $020, $0c0
+ArcanineCryHeader: cry_header CRY_WEEDLE, $000, $100
+PoliwagCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
+PoliwhirlCryHeader: cry_header CRY_PIDGEY, $077, $0e0
+PoliwrathCryHeader: cry_header CRY_PIDGEY, $000, $17f
+AbraCryHeader: cry_header CRY_METAPOD, $0c0, $081
+KadabraCryHeader: cry_header CRY_METAPOD, $0a8, $140
+AlakazamCryHeader: cry_header CRY_METAPOD, $098, $17f
+MachopCryHeader: cry_header CRY_GROWLITHE, $0ee, $081
+MachokeCryHeader: cry_header CRY_GROWLITHE, $048, $0e0
+MachampCryHeader: cry_header CRY_GROWLITHE, $008, $140
+BellsproutCryHeader: cry_header CRY_PSYDUCK, $055, $081
+WeepinbellCryHeader: cry_header CRY_WEEPINBELL, $044, $0a0
+VictreebelCryHeader: cry_header CRY_WEEPINBELL, $066, $14c
+TentacoolCryHeader: cry_header CRY_VENONAT, $000, $100
+TentacruelCryHeader: cry_header CRY_VENONAT, $0ee, $17f
+GeodudeCryHeader: cry_header CRY_VULPIX, $0f0, $090
+GravelerCryHeader: cry_header CRY_VULPIX, $000, $100
+GolemCryHeader: cry_header CRY_GOLEM, $0e0, $0c0
+PonytaCryHeader: cry_header CRY_WEEPINBELL, $000, $100
+RapidashCryHeader: cry_header CRY_WEEPINBELL, $020, $140
+SlowpokeCryHeader: cry_header CRY_SLOWPOKE, $000, $100
+SlowbroCryHeader: cry_header CRY_GROWLITHE, $000, $100
+MagnemiteCryHeader: cry_header CRY_METAPOD, $080, $0e0
+MagnetonCryHeader: cry_header CRY_METAPOD, $020, $140
+FarfetchDCryHeader: cry_header CRY_SPEAROW, $0dd, $081
+DoduoCryHeader: cry_header CRY_DIGLETT, $0bb, $081
+DodrioCryHeader: cry_header CRY_DIGLETT, $099, $0a0
+SeelCryHeader: cry_header CRY_SEEL, $088, $140
+DewgongCryHeader: cry_header CRY_SEEL, $023, $17f
+GrimerCryHeader: cry_header CRY_GRIMER, $000, $100
+MukCryHeader: cry_header CRY_MUK, $0ef, $17f
+ShellderCryHeader: cry_header CRY_FEAROW, $000, $100
+CloysterCryHeader: cry_header CRY_FEAROW, $06f, $160
+GastlyCryHeader: cry_header CRY_METAPOD, $000, $100
+HaunterCryHeader: cry_header CRY_METAPOD, $030, $0c0
+GengarCryHeader: cry_header CRY_MUK, $000, $17f
+OnixCryHeader: cry_header CRY_EKANS, $0ff, $140
+DrowzeeCryHeader: cry_header CRY_DROWZEE, $088, $0a0
+HypnoCryHeader: cry_header CRY_DROWZEE, $0ee, $0c0
+KrabbyCryHeader: cry_header CRY_KRABBY, $020, $160
+KinglerCryHeader: cry_header CRY_KRABBY, $0ee, $160
+VoltorbCryHeader: cry_header CRY_VOLTORB, $0ed, $100
+ElectrodeCryHeader: cry_header CRY_VOLTORB, $0a8, $110
+ExeggcuteCryHeader: cry_header CRY_DIGLETT, $000, $100
+ExeggutorCryHeader: cry_header CRY_DROWZEE, $000, $100
+CuboneCryHeader: cry_header CRY_CLEFAIRY, $000, $100
+MarowakCryHeader: cry_header CRY_ODDISH, $04f, $0e0
+HitmonleeCryHeader: cry_header CRY_GOLEM, $080, $140
+HitmonchanCryHeader: cry_header CRY_SEEL, $0ee, $140
+LickitungCryHeader: cry_header CRY_SEEL, $000, $100
+KoffingCryHeader: cry_header CRY_GOLEM, $0e6, $15d
+WeezingCryHeader: cry_header CRY_GOLEM, $0ff, $17f
+RhyhornCryHeader: cry_header CRY_CHARMANDER, $000, $100
+RhydonCryHeader: cry_header CRY_RHYDON, $000, $100
+ChanseyCryHeader: cry_header CRY_PIDGEOTTO, $00a, $140
+TangelaCryHeader: cry_header CRY_GOLEM, $000, $100
+KangaskhanCryHeader: cry_header CRY_KANGASKHAN, $000, $100
+HorseaCryHeader: cry_header CRY_CLEFAIRY, $099, $090
+SeadraCryHeader: cry_header CRY_CLEFAIRY, $03c, $081
+GoldeenCryHeader: cry_header CRY_CATERPIE, $080, $0c0
+SeakingCryHeader: cry_header CRY_CATERPIE, $010, $17f
+StaryuCryHeader: cry_header CRY_PARAS, $002, $0a0
+StarmieCryHeader: cry_header CRY_PARAS, $000, $100
+MrMimeCryHeader: cry_header CRY_KRABBY, $008, $0c0
+ScytherCryHeader: cry_header CRY_CATERPIE, $000, $100
+JynxCryHeader: cry_header CRY_DROWZEE, $0ff, $17f
+ElectabuzzCryHeader: cry_header CRY_VOLTORB, $08f, $17f
+MagmarCryHeader: cry_header CRY_CHARMANDER, $0ff, $0b0
+PinsirCryHeader: cry_header CRY_PIDGEOTTO, $000, $100
+TaurosCryHeader: cry_header CRY_SQUIRTLE, $011, $0c0
+MagikarpCryHeader: cry_header CRY_EKANS, $080, $080
+GyaradosCryHeader: cry_header CRY_EKANS, $000, $100
+LaprasCryHeader: cry_header CRY_LAPRAS, $000, $100
+DittoCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
+EeveeCryHeader: cry_header CRY_VENONAT, $088, $0e0
+VaporeonCryHeader: cry_header CRY_VENONAT, $0aa, $17f
+JolteonCryHeader: cry_header CRY_VENONAT, $03d, $100
+FlareonCryHeader: cry_header CRY_VENONAT, $010, $0a0
+PorygonCryHeader: cry_header CRY_WEEPINBELL, $0aa, $17f
+OmanyteCryHeader: cry_header CRY_GROWLITHE, $0f0, $081
+OmastarCryHeader: cry_header CRY_GROWLITHE, $0ff, $0c0
+KabutoCryHeader: cry_header CRY_CATERPIE, $0bb, $0c0
+KabutopsCryHeader: cry_header CRY_FEAROW, $0ee, $081
+AerodactylCryHeader: cry_header CRY_VILEPLUME, $020, $170
+SnorlaxCryHeader: cry_header CRY_GRIMER, $055, $081
+ArticunoCryHeader: cry_header CRY_RAICHU, $080, $0c0
+ZapdosCryHeader: cry_header CRY_FEAROW, $0ff, $100
+MoltresCryHeader: cry_header CRY_RAICHU, $0f8, $0c0
+DratiniCryHeader: cry_header CRY_BULBASAUR, $060, $0c0
+DragonairCryHeader: cry_header CRY_BULBASAUR, $040, $100
+DragoniteCryHeader: cry_header CRY_BULBASAUR, $03c, $140
+MewtwoCryHeader: cry_header CRY_PARAS, $099, $17f
+MewCryHeader: cry_header CRY_PARAS, $0ee, $17f
+ChikoritaCryHeader: cry_header CRY_CHIKORITA, -$010, $0b0
+BayleefCryHeader: cry_header CRY_CHIKORITA, -$022, $120
+MeganiumCryHeader: cry_header CRY_CHIKORITA, -$0b7, $200
+CyndaquilCryHeader: cry_header CRY_CYNDAQUIL, $347, $080
+QuilavaCryHeader: cry_header CRY_CYNDAQUIL, $321, $120
+TyphlosionCryHeader: cry_header CRY_TYPHLOSION, $f00, $0d4
+TotodileCryHeader: cry_header CRY_TOTODILE, $46c, $0e8
+CroconawCryHeader: cry_header CRY_TOTODILE, $440, $110
+FeraligatrCryHeader: cry_header CRY_TOTODILE, $3fc, $180
+SentretCryHeader: cry_header CRY_SENTRET, $08a, $0b8
+FurretCryHeader: cry_header CRY_SENTRET, $06b, $102
+HoothootCryHeader: cry_header CRY_HOOTHOOT, $091, $0d8
+NoctowlCryHeader: cry_header CRY_HOOTHOOT, $000, $1a0
+LedybaCryHeader: cry_header CRY_LEDYBA, $000, $0de
+LedianCryHeader: cry_header CRY_LEDYBA, -$096, $138
+SpinarakCryHeader: cry_header CRY_SPINARAK, $011, $200
+AriadosCryHeader: cry_header CRY_SPINARAK, -$0ae, $1e2
+CrobatCryHeader: cry_header CRY_SQUIRTLE, -$010, $140
+ChinchouCryHeader: cry_header CRY_CYNDAQUIL, $3c9, $140
+LanturnCryHeader: cry_header CRY_CYNDAQUIL, $2d0, $110
+PichuCryHeader: cry_header CRY_PICHU, $000, $140
+CleffaCryHeader: cry_header CRY_CLEFFA, $061, $091
+IgglybuffCryHeader: cry_header CRY_CHIKORITA, $0e8, $0e8
+TogepiCryHeader: cry_header CRY_TOGEPI, $010, $100
+TogeticCryHeader: cry_header CRY_TOGETIC, $03b, $038
+NatuCryHeader: cry_header CRY_NATU, -$067, $100
+XatuCryHeader: cry_header CRY_NATU, -$0a7, $168
+MareepCryHeader: cry_header CRY_MAREEP, $022, $0d8
+FlaaffyCryHeader: cry_header CRY_MAREEP, -$007, $180
+AmpharosCryHeader: cry_header CRY_AMPHAROS, -$07c, $0e8
+BellossomCryHeader: cry_header CRY_CLEFFA, $084, $150
+MarillCryHeader: cry_header CRY_MARILL, $11b, $120
+AzumarillCryHeader: cry_header CRY_MARILL, $0b6, $180
+SudowoodoCryHeader: cry_header CRY_CLEFFA, $f40, $180
+PolitoedCryHeader: cry_header CRY_CLEFFA, -$2a3, $1c8
+HoppipCryHeader: cry_header CRY_CLEFFA, $03b, $0c8
+SkiploomCryHeader: cry_header CRY_CLEFFA, $027, $138
+JumpluffCryHeader: cry_header CRY_CLEFFA, $000, $180
+AipomCryHeader: cry_header CRY_AIPOM, -$051, $0e8
+SunkernCryHeader: cry_header CRY_MARILL, $12b, $0b8
+SunfloraCryHeader: cry_header CRY_SUNFLORA, -$020, $180
+YanmaCryHeader: cry_header CRY_TOTODILE, $031, $0c8
+WooperCryHeader: cry_header CRY_WOOPER, $093, $0af
+QuagsireCryHeader: cry_header CRY_WOOPER, -$0c6, $140
+EspeonCryHeader: cry_header CRY_AIPOM, $0a2, $140
+UmbreonCryHeader: cry_header CRY_VENONAT, -$0e9, $0f0
+MurkrowCryHeader: cry_header CRY_MARILL, -$01f, $180
+SlowkingCryHeader: cry_header CRY_SLOWKING, $104, $200
+MisdreavusCryHeader: cry_header CRY_HOOTHOOT, $130, $0e8
+UnownCryHeader: cry_header CRY_HOOTHOOT, $162, $100
+WobbuffetCryHeader: cry_header CRY_AMPHAROS, $27b, $144
+GirafarigCryHeader: cry_header CRY_GIRAFARIG, $041, $200
+PinecoCryHeader: cry_header CRY_SLOWKING, $080, $100
+ForretressCryHeader: cry_header CRY_SLOWKING, $000, $180
+DunsparceCryHeader: cry_header CRY_DUNSPARCE, $1c4, $100
+GligarCryHeader: cry_header CRY_GLIGAR, -$102, $100
+SteelixCryHeader: cry_header CRY_TYPHLOSION, $0ef, $0f7
+SnubbullCryHeader: cry_header CRY_DUNSPARCE, $112, $0e8
+GranbullCryHeader: cry_header CRY_DUNSPARCE, $000, $180
+QwilfishCryHeader: cry_header CRY_SLOWKING, $160, $0e0
+ScizorCryHeader: cry_header CRY_AMPHAROS, $000, $160
+ShuckleCryHeader: cry_header CRY_DUNSPARCE, $290, $0a8
+HeracrossCryHeader: cry_header CRY_AMPHAROS, $035, $0e0
+SneaselCryHeader: cry_header CRY_WOOPER, $053, $0af
+TeddiursaCryHeader: cry_header CRY_TEDDIURSA, $7a2, $06e
+UrsaringCryHeader: cry_header CRY_TEDDIURSA, $640, $0d8
+SlugmaCryHeader: cry_header CRY_SLUGMA, -$1d8, $140
+MagcargoCryHeader: cry_header CRY_MAGCARGO, -$20d, $1c0
+SwinubCryHeader: cry_header CRY_CYNDAQUIL, $1fe, $140
+PiloswineCryHeader: cry_header CRY_MAGCARGO, -$109, $100
+CorsolaCryHeader: cry_header CRY_MAGCARGO, $0a1, $0e8
+RemoraidCryHeader: cry_header CRY_SUNFLORA, $00d, $100
+OctilleryCryHeader: cry_header CRY_TOTODILE, $000, $180
+DelibirdCryHeader: cry_header CRY_TEDDIURSA, $002, $06a
+MantineCryHeader: cry_header CRY_MANTINE, -$0be, $0f0
+SkarmoryCryHeader: cry_header CRY_AMPHAROS, $8a9, $180
+HoundourCryHeader: cry_header CRY_CYNDAQUIL, $039, $140
+HoundoomCryHeader: cry_header CRY_TOTODILE, -$10a, $100
+KingdraCryHeader: cry_header CRY_SLUGMA, $2fb, $100
+PhanpyCryHeader: cry_header CRY_SENTRET, $048, $230
+DonphanCryHeader: cry_header CRY_DONPHAN, $000, $1a0
+Porygon2CryHeader: cry_header CRY_GIRAFARIG, $073, $240
+StantlerCryHeader: cry_header CRY_AIPOM, -$160, $180
+SmeargleCryHeader: cry_header CRY_PICHU, -$21a, $1f0
+TyrogueCryHeader: cry_header CRY_AIPOM, $02c, $108
+HitmontopCryHeader: cry_header CRY_SLUGMA, $000, $100
+SmoochumCryHeader: cry_header CRY_MARILL, $068, $100
+ElekidCryHeader: cry_header CRY_SUNFLORA, -$2d8, $0b4
+MagbyCryHeader: cry_header CRY_TEDDIURSA, $176, $03a
+MiltankCryHeader: cry_header CRY_GLIGAR, -$1cd, $1a0
+BlisseyCryHeader: cry_header CRY_SLOWKING, $293, $140
+RaikouCryHeader: cry_header CRY_RAIKOU, $22e, $120
+EnteiCryHeader: cry_header CRY_ENTEI, $000, $1a0
+SuicuneCryHeader: cry_header CRY_MAGCARGO, $000, $180
+LarvitarCryHeader: cry_header CRY_RAIKOU, $05f, $0d0
+PupitarCryHeader: cry_header CRY_SPINARAK, -$1db, $150
+TyranitarCryHeader: cry_header CRY_RAIKOU, -$100, $180
+LugiaCryHeader: cry_header CRY_TYPHLOSION, $000, $100
+HoOhCryHeader: cry_header CRY_AIPOM, $000, $180
+CelebiCryHeader: cry_header CRY_ENTEI, $14a, $111
+CryHeader252: cry_header CRY_NIDORAN_M, 0, 0
+CryHeader253: cry_header CRY_NIDORAN_M, 0, 0
+CryHeader254: cry_header CRY_NIDORAN_M, 0, 0
+CryHeader255: cry_header CRY_NIDORAN_M, 0, 0
+; f2d81
--- /dev/null
+++ b/data/pokemon/dex_entries.asm
@@ -1,0 +1,272 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Pokedex Entries 001-064", ROMX
+
+PokedexEntries1::
+BulbasaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bulbasaur.asm"
+IvysaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ivysaur.asm"
+VenusaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/venusaur.asm"
+CharmanderPokedexEntry:: INCLUDE "data/pokemon/dex_entries/charmander.asm"
+CharmeleonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/charmeleon.asm"
+CharizardPokedexEntry:: INCLUDE "data/pokemon/dex_entries/charizard.asm"
+SquirtlePokedexEntry:: INCLUDE "data/pokemon/dex_entries/squirtle.asm"
+WartortlePokedexEntry:: INCLUDE "data/pokemon/dex_entries/wartortle.asm"
+BlastoisePokedexEntry:: INCLUDE "data/pokemon/dex_entries/blastoise.asm"
+CaterpiePokedexEntry:: INCLUDE "data/pokemon/dex_entries/caterpie.asm"
+MetapodPokedexEntry:: INCLUDE "data/pokemon/dex_entries/metapod.asm"
+ButterfreePokedexEntry:: INCLUDE "data/pokemon/dex_entries/butterfree.asm"
+WeedlePokedexEntry:: INCLUDE "data/pokemon/dex_entries/weedle.asm"
+KakunaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kakuna.asm"
+BeedrillPokedexEntry:: INCLUDE "data/pokemon/dex_entries/beedrill.asm"
+PidgeyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pidgey.asm"
+PidgeottoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pidgeotto.asm"
+PidgeotPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pidgeot.asm"
+RattataPokedexEntry:: INCLUDE "data/pokemon/dex_entries/rattata.asm"
+RaticatePokedexEntry:: INCLUDE "data/pokemon/dex_entries/raticate.asm"
+SpearowPokedexEntry:: INCLUDE "data/pokemon/dex_entries/spearow.asm"
+FearowPokedexEntry:: INCLUDE "data/pokemon/dex_entries/fearow.asm"
+EkansPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ekans.asm"
+ArbokPokedexEntry:: INCLUDE "data/pokemon/dex_entries/arbok.asm"
+PikachuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pikachu.asm"
+RaichuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/raichu.asm"
+SandshrewPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sandshrew.asm"
+SandslashPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sandslash.asm"
+NidoranFPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidoran_f.asm"
+NidorinaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidorina.asm"
+NidoqueenPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidoqueen.asm"
+NidoranMPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidoran_m.asm"
+NidorinoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidorino.asm"
+NidokingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidoking.asm"
+ClefairyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/clefairy.asm"
+ClefablePokedexEntry:: INCLUDE "data/pokemon/dex_entries/clefable.asm"
+VulpixPokedexEntry:: INCLUDE "data/pokemon/dex_entries/vulpix.asm"
+NinetalesPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ninetales.asm"
+JigglypuffPokedexEntry:: INCLUDE "data/pokemon/dex_entries/jigglypuff.asm"
+WigglytuffPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wigglytuff.asm"
+ZubatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/zubat.asm"
+GolbatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/golbat.asm"
+OddishPokedexEntry:: INCLUDE "data/pokemon/dex_entries/oddish.asm"
+GloomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gloom.asm"
+VileplumePokedexEntry:: INCLUDE "data/pokemon/dex_entries/vileplume.asm"
+ParasPokedexEntry:: INCLUDE "data/pokemon/dex_entries/paras.asm"
+ParasectPokedexEntry:: INCLUDE "data/pokemon/dex_entries/parasect.asm"
+VenonatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/venonat.asm"
+VenomothPokedexEntry:: INCLUDE "data/pokemon/dex_entries/venomoth.asm"
+DiglettPokedexEntry:: INCLUDE "data/pokemon/dex_entries/diglett.asm"
+DugtrioPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dugtrio.asm"
+MeowthPokedexEntry:: INCLUDE "data/pokemon/dex_entries/meowth.asm"
+PersianPokedexEntry:: INCLUDE "data/pokemon/dex_entries/persian.asm"
+PsyduckPokedexEntry:: INCLUDE "data/pokemon/dex_entries/psyduck.asm"
+GolduckPokedexEntry:: INCLUDE "data/pokemon/dex_entries/golduck.asm"
+MankeyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/mankey.asm"
+PrimeapePokedexEntry:: INCLUDE "data/pokemon/dex_entries/primeape.asm"
+GrowlithePokedexEntry:: INCLUDE "data/pokemon/dex_entries/growlithe.asm"
+ArcaninePokedexEntry:: INCLUDE "data/pokemon/dex_entries/arcanine.asm"
+PoliwagPokedexEntry:: INCLUDE "data/pokemon/dex_entries/poliwag.asm"
+PoliwhirlPokedexEntry:: INCLUDE "data/pokemon/dex_entries/poliwhirl.asm"
+PoliwrathPokedexEntry:: INCLUDE "data/pokemon/dex_entries/poliwrath.asm"
+AbraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/abra.asm"
+KadabraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kadabra.asm"
+
+
+SECTION "Pokedex Entries 065-128", ROMX
+
+PokedexEntries2::
+AlakazamPokedexEntry:: INCLUDE "data/pokemon/dex_entries/alakazam.asm"
+MachopPokedexEntry:: INCLUDE "data/pokemon/dex_entries/machop.asm"
+MachokePokedexEntry:: INCLUDE "data/pokemon/dex_entries/machoke.asm"
+MachampPokedexEntry:: INCLUDE "data/pokemon/dex_entries/machamp.asm"
+BellsproutPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bellsprout.asm"
+WeepinbellPokedexEntry:: INCLUDE "data/pokemon/dex_entries/weepinbell.asm"
+VictreebelPokedexEntry:: INCLUDE "data/pokemon/dex_entries/victreebel.asm"
+TentacoolPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tentacool.asm"
+TentacruelPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tentacruel.asm"
+GeodudePokedexEntry:: INCLUDE "data/pokemon/dex_entries/geodude.asm"
+GravelerPokedexEntry:: INCLUDE "data/pokemon/dex_entries/graveler.asm"
+GolemPokedexEntry:: INCLUDE "data/pokemon/dex_entries/golem.asm"
+PonytaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ponyta.asm"
+RapidashPokedexEntry:: INCLUDE "data/pokemon/dex_entries/rapidash.asm"
+SlowpokePokedexEntry:: INCLUDE "data/pokemon/dex_entries/slowpoke.asm"
+SlowbroPokedexEntry:: INCLUDE "data/pokemon/dex_entries/slowbro.asm"
+MagnemitePokedexEntry:: INCLUDE "data/pokemon/dex_entries/magnemite.asm"
+MagnetonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magneton.asm"
+FarfetchDPokedexEntry:: INCLUDE "data/pokemon/dex_entries/farfetch_d.asm"
+DoduoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/doduo.asm"
+DodrioPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dodrio.asm"
+SeelPokedexEntry:: INCLUDE "data/pokemon/dex_entries/seel.asm"
+DewgongPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dewgong.asm"
+GrimerPokedexEntry:: INCLUDE "data/pokemon/dex_entries/grimer.asm"
+MukPokedexEntry:: INCLUDE "data/pokemon/dex_entries/muk.asm"
+ShellderPokedexEntry:: INCLUDE "data/pokemon/dex_entries/shellder.asm"
+CloysterPokedexEntry:: INCLUDE "data/pokemon/dex_entries/cloyster.asm"
+GastlyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gastly.asm"
+HaunterPokedexEntry:: INCLUDE "data/pokemon/dex_entries/haunter.asm"
+GengarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gengar.asm"
+OnixPokedexEntry:: INCLUDE "data/pokemon/dex_entries/onix.asm"
+DrowzeePokedexEntry:: INCLUDE "data/pokemon/dex_entries/drowzee.asm"
+HypnoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hypno.asm"
+KrabbyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/krabby.asm"
+KinglerPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kingler.asm"
+VoltorbPokedexEntry:: INCLUDE "data/pokemon/dex_entries/voltorb.asm"
+ElectrodePokedexEntry:: INCLUDE "data/pokemon/dex_entries/electrode.asm"
+ExeggcutePokedexEntry:: INCLUDE "data/pokemon/dex_entries/exeggcute.asm"
+ExeggutorPokedexEntry:: INCLUDE "data/pokemon/dex_entries/exeggutor.asm"
+CubonePokedexEntry:: INCLUDE "data/pokemon/dex_entries/cubone.asm"
+MarowakPokedexEntry:: INCLUDE "data/pokemon/dex_entries/marowak.asm"
+HitmonleePokedexEntry:: INCLUDE "data/pokemon/dex_entries/hitmonlee.asm"
+HitmonchanPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hitmonchan.asm"
+LickitungPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lickitung.asm"
+KoffingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/koffing.asm"
+WeezingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/weezing.asm"
+RhyhornPokedexEntry:: INCLUDE "data/pokemon/dex_entries/rhyhorn.asm"
+RhydonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/rhydon.asm"
+ChanseyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/chansey.asm"
+TangelaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tangela.asm"
+KangaskhanPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kangaskhan.asm"
+HorseaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/horsea.asm"
+SeadraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/seadra.asm"
+GoldeenPokedexEntry:: INCLUDE "data/pokemon/dex_entries/goldeen.asm"
+SeakingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/seaking.asm"
+StaryuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/staryu.asm"
+StarmiePokedexEntry:: INCLUDE "data/pokemon/dex_entries/starmie.asm"
+MrMimePokedexEntry:: INCLUDE "data/pokemon/dex_entries/mr__mime.asm"
+ScytherPokedexEntry:: INCLUDE "data/pokemon/dex_entries/scyther.asm"
+JynxPokedexEntry:: INCLUDE "data/pokemon/dex_entries/jynx.asm"
+ElectabuzzPokedexEntry:: INCLUDE "data/pokemon/dex_entries/electabuzz.asm"
+MagmarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magmar.asm"
+PinsirPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pinsir.asm"
+TaurosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tauros.asm"
+
+
+SECTION "Pokedex Entries 129-192", ROMX
+
+PokedexEntries3::
+MagikarpPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magikarp.asm"
+GyaradosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gyarados.asm"
+LaprasPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lapras.asm"
+DittoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ditto.asm"
+EeveePokedexEntry:: INCLUDE "data/pokemon/dex_entries/eevee.asm"
+VaporeonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/vaporeon.asm"
+JolteonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/jolteon.asm"
+FlareonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/flareon.asm"
+PorygonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/porygon.asm"
+OmanytePokedexEntry:: INCLUDE "data/pokemon/dex_entries/omanyte.asm"
+OmastarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/omastar.asm"
+KabutoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kabuto.asm"
+KabutopsPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kabutops.asm"
+AerodactylPokedexEntry:: INCLUDE "data/pokemon/dex_entries/aerodactyl.asm"
+SnorlaxPokedexEntry:: INCLUDE "data/pokemon/dex_entries/snorlax.asm"
+ArticunoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/articuno.asm"
+ZapdosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/zapdos.asm"
+MoltresPokedexEntry:: INCLUDE "data/pokemon/dex_entries/moltres.asm"
+DratiniPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dratini.asm"
+DragonairPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dragonair.asm"
+DragonitePokedexEntry:: INCLUDE "data/pokemon/dex_entries/dragonite.asm"
+MewtwoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/mewtwo.asm"
+MewPokedexEntry:: INCLUDE "data/pokemon/dex_entries/mew.asm"
+ChikoritaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/chikorita.asm"
+BayleefPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bayleef.asm"
+MeganiumPokedexEntry:: INCLUDE "data/pokemon/dex_entries/meganium.asm"
+CyndaquilPokedexEntry:: INCLUDE "data/pokemon/dex_entries/cyndaquil.asm"
+QuilavaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/quilava.asm"
+TyphlosionPokedexEntry:: INCLUDE "data/pokemon/dex_entries/typhlosion.asm"
+TotodilePokedexEntry:: INCLUDE "data/pokemon/dex_entries/totodile.asm"
+CroconawPokedexEntry:: INCLUDE "data/pokemon/dex_entries/croconaw.asm"
+FeraligatrPokedexEntry:: INCLUDE "data/pokemon/dex_entries/feraligatr.asm"
+SentretPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sentret.asm"
+FurretPokedexEntry:: INCLUDE "data/pokemon/dex_entries/furret.asm"
+HoothootPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hoothoot.asm"
+NoctowlPokedexEntry:: INCLUDE "data/pokemon/dex_entries/noctowl.asm"
+LedybaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ledyba.asm"
+LedianPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ledian.asm"
+SpinarakPokedexEntry:: INCLUDE "data/pokemon/dex_entries/spinarak.asm"
+AriadosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ariados.asm"
+CrobatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/crobat.asm"
+ChinchouPokedexEntry:: INCLUDE "data/pokemon/dex_entries/chinchou.asm"
+LanturnPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lanturn.asm"
+PichuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pichu.asm"
+CleffaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/cleffa.asm"
+IgglybuffPokedexEntry:: INCLUDE "data/pokemon/dex_entries/igglybuff.asm"
+TogepiPokedexEntry:: INCLUDE "data/pokemon/dex_entries/togepi.asm"
+TogeticPokedexEntry:: INCLUDE "data/pokemon/dex_entries/togetic.asm"
+NatuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/natu.asm"
+XatuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/xatu.asm"
+MareepPokedexEntry:: INCLUDE "data/pokemon/dex_entries/mareep.asm"
+FlaaffyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/flaaffy.asm"
+AmpharosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ampharos.asm"
+BellossomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bellossom.asm"
+MarillPokedexEntry:: INCLUDE "data/pokemon/dex_entries/marill.asm"
+AzumarillPokedexEntry:: INCLUDE "data/pokemon/dex_entries/azumarill.asm"
+SudowoodoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sudowoodo.asm"
+PolitoedPokedexEntry:: INCLUDE "data/pokemon/dex_entries/politoed.asm"
+HoppipPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hoppip.asm"
+SkiploomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/skiploom.asm"
+JumpluffPokedexEntry:: INCLUDE "data/pokemon/dex_entries/jumpluff.asm"
+AipomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/aipom.asm"
+SunkernPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sunkern.asm"
+SunfloraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sunflora.asm"
+
+
+SECTION "Pokedex Entries 193-251", ROMX
+
+PokedexEntries4::
+YanmaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/yanma.asm"
+WooperPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wooper.asm"
+QuagsirePokedexEntry:: INCLUDE "data/pokemon/dex_entries/quagsire.asm"
+EspeonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/espeon.asm"
+UmbreonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/umbreon.asm"
+MurkrowPokedexEntry:: INCLUDE "data/pokemon/dex_entries/murkrow.asm"
+SlowkingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/slowking.asm"
+MisdreavusPokedexEntry:: INCLUDE "data/pokemon/dex_entries/misdreavus.asm"
+UnownPokedexEntry:: INCLUDE "data/pokemon/dex_entries/unown.asm"
+WobbuffetPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wobbuffet.asm"
+GirafarigPokedexEntry:: INCLUDE "data/pokemon/dex_entries/girafarig.asm"
+PinecoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pineco.asm"
+ForretressPokedexEntry:: INCLUDE "data/pokemon/dex_entries/forretress.asm"
+DunsparcePokedexEntry:: INCLUDE "data/pokemon/dex_entries/dunsparce.asm"
+GligarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gligar.asm"
+SteelixPokedexEntry:: INCLUDE "data/pokemon/dex_entries/steelix.asm"
+SnubbullPokedexEntry:: INCLUDE "data/pokemon/dex_entries/snubbull.asm"
+GranbullPokedexEntry:: INCLUDE "data/pokemon/dex_entries/granbull.asm"
+QwilfishPokedexEntry:: INCLUDE "data/pokemon/dex_entries/qwilfish.asm"
+ScizorPokedexEntry:: INCLUDE "data/pokemon/dex_entries/scizor.asm"
+ShucklePokedexEntry:: INCLUDE "data/pokemon/dex_entries/shuckle.asm"
+HeracrossPokedexEntry:: INCLUDE "data/pokemon/dex_entries/heracross.asm"
+SneaselPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sneasel.asm"
+TeddiursaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/teddiursa.asm"
+UrsaringPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ursaring.asm"
+SlugmaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/slugma.asm"
+MagcargoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magcargo.asm"
+SwinubPokedexEntry:: INCLUDE "data/pokemon/dex_entries/swinub.asm"
+PiloswinePokedexEntry:: INCLUDE "data/pokemon/dex_entries/piloswine.asm"
+CorsolaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/corsola.asm"
+RemoraidPokedexEntry:: INCLUDE "data/pokemon/dex_entries/remoraid.asm"
+OctilleryPokedexEntry:: INCLUDE "data/pokemon/dex_entries/octillery.asm"
+DelibirdPokedexEntry:: INCLUDE "data/pokemon/dex_entries/delibird.asm"
+MantinePokedexEntry:: INCLUDE "data/pokemon/dex_entries/mantine.asm"
+SkarmoryPokedexEntry:: INCLUDE "data/pokemon/dex_entries/skarmory.asm"
+HoundourPokedexEntry:: INCLUDE "data/pokemon/dex_entries/houndour.asm"
+HoundoomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/houndoom.asm"
+KingdraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kingdra.asm"
+PhanpyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/phanpy.asm"
+DonphanPokedexEntry:: INCLUDE "data/pokemon/dex_entries/donphan.asm"
+Porygon2PokedexEntry:: INCLUDE "data/pokemon/dex_entries/porygon2.asm"
+StantlerPokedexEntry:: INCLUDE "data/pokemon/dex_entries/stantler.asm"
+SmearglePokedexEntry:: INCLUDE "data/pokemon/dex_entries/smeargle.asm"
+TyroguePokedexEntry:: INCLUDE "data/pokemon/dex_entries/tyrogue.asm"
+HitmontopPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hitmontop.asm"
+SmoochumPokedexEntry:: INCLUDE "data/pokemon/dex_entries/smoochum.asm"
+ElekidPokedexEntry:: INCLUDE "data/pokemon/dex_entries/elekid.asm"
+MagbyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magby.asm"
+MiltankPokedexEntry:: INCLUDE "data/pokemon/dex_entries/miltank.asm"
+BlisseyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/blissey.asm"
+RaikouPokedexEntry:: INCLUDE "data/pokemon/dex_entries/raikou.asm"
+EnteiPokedexEntry:: INCLUDE "data/pokemon/dex_entries/entei.asm"
+SuicunePokedexEntry:: INCLUDE "data/pokemon/dex_entries/suicune.asm"
+LarvitarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/larvitar.asm"
+PupitarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pupitar.asm"
+TyranitarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tyranitar.asm"
+LugiaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lugia.asm"
+HoOhPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ho_oh.asm"
+CelebiPokedexEntry:: INCLUDE "data/pokemon/dex_entries/celebi.asm"
--- /dev/null
+++ b/data/pokemon/dex_entries/abra.asm
@@ -1,0 +1,10 @@
+; AbraPokedexEntry: ; 0x1830d5
+ db "PSI@" ; species name
+ dw 211, 430 ; height, weight
+
+ db "It hypnotizes"
+ next "itself so that it"
+ next "can teleport away"
+ page "when it senses"
+ next "danger, even"
+ next "if it is asleep.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/aerodactyl.asm
@@ -1,0 +1,10 @@
+; AerodactylPokedexEntry: ; 0x1cc576
+ db "FOSSIL@" ; species name
+ dw 511, 1300 ; height, weight
+
+ db "In prehistoric"
+ next "times, this"
+ next "#MON flew"
+ page "freely and"
+ next "fearlessly through"
+ next "the skies.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/aipom.asm
@@ -1,0 +1,10 @@
+; AipomPokedexEntry: ; 0x1cda11
+ db "LONG TAIL@" ; species name
+ dw 207, 250 ; height, weight
+
+ db "It uses its tail"
+ next "to hang on to tree"
+ next "branches. It uses"
+ page "its momentum to"
+ next "swing from one"
+ next "branch to another.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/alakazam.asm
@@ -1,0 +1,10 @@
+; AlakazamPokedexEntry: ; 0x1b8000
+ db "PSI@" ; species name
+ dw 411, 1060 ; height, weight
+
+ db "It has an IQ of"
+ next "5000. It calcu-"
+ next "lates many things"
+ page "in order to gain"
+ next "the edge in every"
+ next "battle.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ampharos.asm
@@ -1,0 +1,10 @@
+; AmpharosPokedexEntry: ; 0x1cd626
+ db "LIGHT@" ; species name
+ dw 407, 1360 ; height, weight
+
+ db "When it gets dark,"
+ next "the light from its"
+ next "bright, shiny tail"
+ page "can be seen from"
+ next "far away on the"
+ next "ocean's surface.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/arbok.asm
@@ -1,0 +1,10 @@
+; ArbokPokedexEntry: ; 0x18203d
+ db "COBRA@" ; species name
+ dw 1106, 1430 ; height, weight
+
+ db "To intimidate"
+ next "foes, it spreads"
+ next "its chest wide and"
+ page "makes eerie sounds"
+ next "by expelling air"
+ next "from its mouth.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/arcanine.asm
@@ -1,0 +1,10 @@
+; ArcaninePokedexEntry: ; 0x182f1c
+ db "LEGENDARY@" ; species name
+ dw 603, 3420 ; height, weight
+
+ db "An ancient picture"
+ next "scroll shows that"
+ next "people were"
+ page "attracted to its"
+ next "movement as it ran"
+ next "through prairies.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ariados.asm
@@ -1,0 +1,10 @@
+; AriadosPokedexEntry: ; 0x1cd083
+ db "LONG LEG@" ; species name
+ dw 307, 740 ; height, weight
+
+ db "Rather than mak-"
+ next "ing a nest in one"
+ next "specific spot, it"
+ page "wanders in search"
+ next "of food after"
+ next "darkness falls.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/articuno.asm
@@ -1,0 +1,10 @@
+; ArticunoPokedexEntry: ; 0x1cc632
+ db "FREEZE@" ; species name
+ dw 507, 1220 ; height, weight
+
+ db "Legendary bird"
+ next "#MON. As it"
+ next "flies through the"
+ page "sky, it cools the"
+ next "air, causing snow"
+ next "to fall.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/azumarill.asm
@@ -1,0 +1,10 @@
+; AzumarillPokedexEntry: ; 0x1cd771
+ db "AQUARABBIT@" ; species name
+ dw 207, 630 ; height, weight
+
+ db "The bubble-like"
+ next "pattern on its"
+ next "stomach helps it"
+ page "camouflage itself"
+ next "when it's in the"
+ next "water.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/bayleef.asm
@@ -1,0 +1,10 @@
+; BayleefPokedexEntry: ; 0x1cc9e9
+ db "LEAF@" ; species name
+ dw 311, 350 ; height, weight
+
+ db "The scent that"
+ next "wafts from the"
+ next "leaves on its neck"
+ page "causes anyone who"
+ next "smells it to"
+ next "become energetic.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/beedrill.asm
@@ -1,0 +1,10 @@
+; BeedrillPokedexEntry: ; 0x181c8a
+ db "POISON BEE@" ; species name
+ dw 303, 650 ; height, weight
+
+ db "It uses sharp,"
+ next "poisonous stings"
+ next "to defeat prey,"
+ page "then takes the"
+ next "victim back to its"
+ next "nest for food.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/bellossom.asm
@@ -1,0 +1,10 @@
+; BellossomPokedexEntry: ; 0x1cd69a
+ db "FLOWER@" ; species name
+ dw 104, 130 ; height, weight
+
+ db "When these dance"
+ next "together, their"
+ next "petals rub against"
+ page "each other,"
+ next "making pretty,"
+ next "relaxing sounds.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/bellsprout.asm
@@ -1,0 +1,10 @@
+; BellsproutPokedexEntry: ; 0x1b81a1
+ db "FLOWER@" ; species name
+ dw 204, 90 ; height, weight
+
+ db "If it notices"
+ next "anything that"
+ next "moves, it"
+ page "immediately flings"
+ next "its vine at the"
+ next "object.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/blastoise.asm
@@ -1,0 +1,10 @@
+; BlastoisePokedexEntry: ; 0x1819f9
+ db "SHELLFISH@" ; species name
+ dw 503, 1890 ; height, weight
+
+ db "It firmly plants"
+ next "its feet on the"
+ next "ground before"
+ page "shooting water"
+ next "from the jets on"
+ next "its back.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/blissey.asm
@@ -1,0 +1,10 @@
+; BlisseyPokedexEntry: ; 0x1d14f7
+ db "HAPPINESS@" ; species name
+ dw 411, 1030 ; height, weight
+
+ db "Biting into one"
+ next "of the delicious"
+ next "eggs that BLISSEY"
+ page "provides will make"
+ next "everyone around"
+ next "smile with joy.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/bulbasaur.asm
@@ -1,0 +1,10 @@
+; BulbasaurPokedexEntry: ; 0x181695
+ db "SEED@" ; species name
+ dw 204, 150 ; height, weight
+
+ db "While it is young,"
+ next "it uses the"
+ next "nutrients that are"
+ page "stored in the"
+ next "seeds on its back"
+ next "in order to grow.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/butterfree.asm
@@ -1,0 +1,10 @@
+; ButterfreePokedexEntry: ; 0x181b45
+ db "BUTTERFLY@" ; species name
+ dw 307, 710 ; height, weight
+
+ db "It flits from"
+ next "flower to flower,"
+ next "collecting honey."
+ page "It can even"
+ next "identify distant"
+ next "flowers in bloom.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/caterpie.asm
@@ -1,0 +1,10 @@
+; CaterpiePokedexEntry: ; 0x181a60
+ db "WORM@" ; species name
+ dw 100, 60 ; height, weight
+
+ db "It crawls into"
+ next "foliage where it"
+ next "camouflages itself"
+ page "among leaves that"
+ next "are the same color"
+ next "as its body.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/celebi.asm
@@ -1,0 +1,10 @@
+; CelebiPokedexEntry: ; 0x1d18cc
+ db "TIMETRAVEL@" ; species name
+ dw 200, 110 ; height, weight
+
+ db "Revered as a"
+ next "guardian of the"
+ next "forest, CELEBI"
+ page "appears wherever"
+ next "beautiful forests"
+ next "exist.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/chansey.asm
@@ -1,0 +1,10 @@
+; ChanseyPokedexEntry: ; 0x1b942e
+ db "EGG@" ; species name
+ dw 307, 760 ; height, weight
+
+ db "People try to"
+ next "catch it for its"
+ next "extremely"
+ page "nutritious eggs,"
+ next "but it rarely can"
+ next "be found.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/charizard.asm
@@ -1,0 +1,10 @@
+; CharizardPokedexEntry: ; 0x1818b3
+ db "FLAME@" ; species name
+ dw 507, 2000 ; height, weight
+
+ db "It uses its wings"
+ next "to fly high. The"
+ next "temperature of its"
+ page "fire increases as"
+ next "it gains exper-"
+ next "ience in battle.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/charmander.asm
@@ -1,0 +1,10 @@
+; CharmanderPokedexEntry: ; 0x1817db
+ db "LIZARD@" ; species name
+ dw 200, 190 ; height, weight
+
+ db "If it's healthy,"
+ next "the flame on the"
+ next "tip of its tail"
+ page "will burn vigor-"
+ next "ously, even if it"
+ next "gets a bit wet.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/charmeleon.asm
@@ -1,0 +1,10 @@
+; CharmeleonPokedexEntry: ; 0x18184a
+ db "FLAME@" ; species name
+ dw 307, 420 ; height, weight
+
+ db "If it becomes"
+ next "agitated during"
+ next "battle, it spouts"
+ page "intense flames,"
+ next "incinerating its"
+ next "surroundings.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/chikorita.asm
@@ -1,0 +1,10 @@
+; ChikoritaPokedexEntry: ; 0x1cc988
+ db "LEAF@" ; species name
+ dw 211, 140 ; height, weight
+
+ db "It loves to bask"
+ next "in the sunlight."
+ next "It uses the leaf"
+ page "on its head to"
+ next "seek out warm"
+ next "places.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/chinchou.asm
@@ -1,0 +1,10 @@
+; ChinchouPokedexEntry: ; 0x1cd165
+ db "ANGLER@" ; species name
+ dw 108, 260 ; height, weight
+
+ db "Its antennae, whi-"
+ next "ch evolved from a"
+ next "fin, have both po-"
+ page "sitive and neg-"
+ next "ative charges flo-"
+ next "wing through them.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/clefable.asm
@@ -1,0 +1,10 @@
+; ClefablePokedexEntry: ; 0x182530
+ db "FAIRY@" ; species name
+ dw 403, 880 ; height, weight
+
+ db "Said to live in"
+ next "quiet, remote"
+ next "mountains, this"
+ page "type of fairy has"
+ next "a strong aversion"
+ next "to being seen.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/clefairy.asm
@@ -1,0 +1,10 @@
+; ClefairyPokedexEntry: ; 0x1824c8
+ db "FAIRY@" ; species name
+ dw 200, 170 ; height, weight
+
+ db "Though rarely"
+ next "seen, it becomes"
+ next "easier to spot,"
+ page "for some reason,"
+ next "on the night of a "
+ next "full moon.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/cleffa.asm
@@ -1,0 +1,10 @@
+; CleffaPokedexEntry: ; 0x1cd2bc
+ db "STARSHAPE@" ; species name
+ dw 100, 70 ; height, weight
+
+ db "If the impact site"
+ next "of a meteorite is"
+ next "found, this"
+ page "#MON is certain"
+ next "to be within the"
+ next "immediate area.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/cloyster.asm
@@ -1,0 +1,10 @@
+; CloysterPokedexEntry: ; 0x1b8ad9
+ db "BIVALVE@" ; species name
+ dw 411, 2920 ; height, weight
+
+ db "Even a missile"
+ next "can't break the"
+ next "spikes it uses to"
+ page "stab opponents."
+ next "They're even hard-"
+ next "er than its shell.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/corsola.asm
@@ -1,0 +1,10 @@
+; CorsolaPokedexEntry: ; 0x1d0c68
+ db "CORAL@" ; species name
+ dw 200, 110 ; height, weight
+
+ db "The points on its"
+ next "head absorb"
+ next "nutrients from"
+ page "clean water. They"
+ next "cannot survive in"
+ next "polluted water.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/crobat.asm
@@ -1,0 +1,10 @@
+; CrobatPokedexEntry: ; 0x1cd0f5
+ db "BAT@" ; species name
+ dw 511, 1650 ; height, weight
+
+ db "As a result of its"
+ next "pursuit of faster,"
+ next "yet more silent"
+ page "flight, a new set"
+ next "of wings grew on"
+ next "its hind legs.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/croconaw.asm
@@ -1,0 +1,10 @@
+; CroconawPokedexEntry: ; 0x1ccc84
+ db "BIG JAW@" ; species name
+ dw 307, 550 ; height, weight
+
+ db "The tips of its"
+ next "fangs are slanted"
+ next "backward. Once"
+ page "those fangs clamp"
+ next "down, the prey has"
+ next "no hope of escape.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/cubone.asm
@@ -1,0 +1,10 @@
+; CubonePokedexEntry: ; 0x1b9068
+ db "LONELY@" ; species name
+ dw 104, 140 ; height, weight
+
+ db "It lost its mother"
+ next "after its birth."
+ next "It wears its"
+ page "mother's skull,"
+ next "never revealing"
+ next "its true face.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/cyndaquil.asm
@@ -1,0 +1,10 @@
+; CyndaquilPokedexEntry: ; 0x1ccabd
+ db "FIRE MOUSE@" ; species name
+ dw 108, 170 ; height, weight
+
+ db "The fire that"
+ next "spouts from its"
+ next "back burns hottest"
+ page "when it is angry."
+ next "The flaring flames"
+ next "intimidate foes.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/delibird.asm
@@ -1,0 +1,10 @@
+; DelibirdPokedexEntry: ; 0x1d0db1
+ db "DELIVERY@" ; species name
+ dw 211, 350 ; height, weight
+
+ db "It always carries"
+ next "its food with it,"
+ next "wherever it goes."
+ page "If attacked, it"
+ next "throws its food at"
+ next "the opponent.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/dewgong.asm
@@ -1,0 +1,10 @@
+; DewgongPokedexEntry: ; 0x1b8934
+ db "SEA LION@" ; species name
+ dw 507, 2650 ; height, weight
+
+ db "It sleeps under"
+ next "shallow ocean"
+ next "waters during the"
+ page "day, then looks"
+ next "for food at night"
+ next "when it's cold.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/diglett.asm
@@ -1,0 +1,10 @@
+; DiglettPokedexEntry: ; 0x182b30
+ db "MOLE@" ; species name
+ dw 8, 20 ; height, weight
+
+ db "It digs under-"
+ next "ground and chews"
+ next "on tree roots,"
+ page "sticking its head"
+ next "out only when the"
+ next "sun isn't bright.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ditto.asm
@@ -1,0 +1,10 @@
+; DittoPokedexEntry: ; 0x1cc13c
+ db "TRANSFORM@" ; species name
+ dw 100, 90 ; height, weight
+
+ db "When it encount-"
+ next "ers another DITTO,"
+ next "it will move"
+ page "faster than normal"
+ next "to duplicate that"
+ next "opponent exactly.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/dodrio.asm
@@ -1,0 +1,10 @@
+; DodrioPokedexEntry: ; 0x1b884a
+ db "TRIPLEBIRD@" ; species name
+ dw 511, 1880 ; height, weight
+
+ db "An enemy that"
+ next "takes its eyes off"
+ next "any of the three"
+ page "heads--even for a"
+ next "second--will get"
+ next "pecked severely.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/doduo.asm
@@ -1,0 +1,10 @@
+; DoduoPokedexEntry: ; 0x1b87d7
+ db "TWIN BIRD@" ; species name
+ dw 407, 860 ; height, weight
+
+ db "It lives on a"
+ next "grassy plain where"
+ next "it can see a long"
+ page "way. If it sees an"
+ next "enemy, it runs"
+ next "away at 60 mph.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/donphan.asm
@@ -1,0 +1,10 @@
+; DonphanPokedexEntry: ; 0x1d10ac
+ db "ARMOR@" ; species name
+ dw 307, 2650 ; height, weight
+
+ db "Because this"
+ next "#MON's skin is"
+ next "so tough, a normal"
+ page "attack won't even"
+ next "leave a scratch on"
+ next "it.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/dragonair.asm
@@ -1,0 +1,10 @@
+; DragonairPokedexEntry: ; 0x1cc7dc
+ db "DRAGON@" ; species name
+ dw 1301, 360 ; height, weight
+
+ db "It is called the"
+ next "divine #MON."
+ next "When its entire"
+ page "body brightens"
+ next "slightly, the"
+ next "weather changes.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/dragonite.asm
@@ -1,0 +1,10 @@
+; DragonitePokedexEntry: ; 0x1cc843
+ db "DRAGON@" ; species name
+ dw 703, 4630 ; height, weight
+
+ db "It is said that"
+ next "somewhere in the"
+ next "ocean lies an"
+ page "island where these"
+ next "gather. Only they"
+ next "live there.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/dratini.asm
@@ -1,0 +1,10 @@
+; DratiniPokedexEntry: ; 0x1cc761
+ db "DRAGON@" ; species name
+ dw 511, 70 ; height, weight
+
+ db "It sheds many lay-"
+ next "ers of skin as it"
+ next "grows larger. Dur-"
+ page "ing this process,"
+ next "it is protected by"
+ next "a rapid waterfall.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/drowzee.asm
@@ -1,0 +1,10 @@
+; DrowzeePokedexEntry: ; 0x1b8d0a
+ db "HYPNOSIS@" ; species name
+ dw 303, 710 ; height, weight
+
+ db "When it twitches"
+ next "its nose, it can"
+ next "tell where someone"
+ page "is sleeping and"
+ next "what that person"
+ next "is dreaming about.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/dugtrio.asm
@@ -1,0 +1,10 @@
+; DugtrioPokedexEntry: ; 0x182b9d
+ db "MOLE@" ; species name
+ dw 204, 730 ; height, weight
+
+ db "These DIGLETT"
+ next "triplets dig over"
+ next "60 miles below sea"
+ page "level. No one"
+ next "knows what it's"
+ next "like underground.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/dunsparce.asm
@@ -1,0 +1,10 @@
+; DunsparcePokedexEntry: ; 0x1d0593
+ db "LAND SNAKE@" ; species name
+ dw 411, 310 ; height, weight
+
+ db "It hides deep"
+ next "inside caves where"
+ next "no light ever"
+ page "reaches it and"
+ next "remains virtually"
+ next "motionless there.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/eevee.asm
@@ -1,0 +1,10 @@
+; EeveePokedexEntry: ; 0x1cc1b2
+ db "EVOLUTION@" ; species name
+ dw 100, 140 ; height, weight
+
+ db "Its ability to"
+ next "evolve into many"
+ next "forms allows it to"
+ page "adapt smoothly"
+ next "and perfectly to"
+ next "any environment.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ekans.asm
@@ -1,0 +1,10 @@
+; EkansPokedexEntry: ; 0x181fd4
+ db "SNAKE@" ; species name
+ dw 607, 150 ; height, weight
+
+ db "It flutters the"
+ next "tip of its tongue"
+ next "to seek out the"
+ page "scent of prey,"
+ next "then swallows the"
+ next "prey whole.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/electabuzz.asm
@@ -1,0 +1,10 @@
+; ElectabuzzPokedexEntry: ; 0x1b992a
+ db "ELECTRIC@" ; species name
+ dw 307, 660 ; height, weight
+
+ db "When two"
+ next "ELECTABUZZ touch,"
+ next "they control the"
+ page "electric currents"
+ next "to communicate"
+ next "their feelings.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/electrode.asm
@@ -1,0 +1,10 @@
+; ElectrodePokedexEntry: ; 0x1b8f19
+ db "BALL@" ; species name
+ dw 311, 1470 ; height, weight
+
+ db "The more energy it"
+ next "charges up, the"
+ next "faster it gets."
+ page "But this also"
+ next "makes it more"
+ next "likely to explode.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/elekid.asm
@@ -1,0 +1,10 @@
+; ElekidPokedexEntry: ; 0x1d1398
+ db "ELECTRIC@" ; species name
+ dw 200, 520 ; height, weight
+
+ db "It loves violent"
+ next "thunder. The space"
+ next "between its horns"
+ page "flickers bluish-"
+ next "white when it is"
+ next "charging energy.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/entei.asm
@@ -1,0 +1,10 @@
+; EnteiPokedexEntry: ; 0x1d15dd
+ db "VOLCANO@" ; species name
+ dw 607, 4370 ; height, weight
+
+ db "This brawny"
+ next "#MON courses"
+ next "around the earth,"
+ page "spouting flames"
+ next "hotter than a"
+ next "volcano's magma.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/espeon.asm
@@ -1,0 +1,10 @@
+; EspeonPokedexEntry: ; 0x1d0155
+ db "SUN@" ; species name
+ dw 211, 580 ; height, weight
+
+ db "The tip of its"
+ next "forked tail"
+ next "quivers when it is"
+ page "predicting its"
+ next "opponent's next"
+ next "move.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/exeggcute.asm
@@ -1,0 +1,10 @@
+; ExeggcutePokedexEntry: ; 0x1b8f84
+ db "EGG@" ; species name
+ dw 104, 60 ; height, weight
+
+ db "If even one is"
+ next "separated from the"
+ next "group, the energy"
+ page "bond between the"
+ next "six will make them"
+ next "rejoin instantly.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/exeggutor.asm
@@ -1,0 +1,10 @@
+; ExeggutorPokedexEntry: ; 0x1b8ff6
+ db "COCONUT@" ; species name
+ dw 607, 2650 ; height, weight
+
+ db "Living in a good"
+ next "environment makes"
+ next "it grow lots of"
+ page "heads. A head that"
+ next "drops off becomes"
+ next "an EXEGGCUTE.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/farfetch_d.asm
@@ -1,0 +1,10 @@
+; FarfetchDPokedexEntry: ; 0x1b876c
+ db "WILD DUCK@" ; species name
+ dw 207, 330 ; height, weight
+
+ db "In order to pre-"
+ next "vent their"
+ next "extinction, more"
+ page "people have made"
+ next "an effort to breed"
+ next "these #MON.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/fearow.asm
@@ -1,0 +1,10 @@
+; FearowPokedexEntry: ; 0x181f64
+ db "BEAK@" ; species name
+ dw 311, 840 ; height, weight
+
+ db "It uses its long"
+ next "beak to attack. It"
+ next "has a surprisingly"
+ page "long reach, so it"
+ next "must be treated"
+ next "with caution.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/feraligatr.asm
@@ -1,0 +1,10 @@
+; FeraligatrPokedexEntry: ; 0x1cccf9
+ db "BIG JAW@" ; species name
+ dw 707, 1960 ; height, weight
+
+ db "Although it has a"
+ next "massive body, its"
+ next "powerful hind legs"
+ page "enable it to move"
+ next "quickly, even on"
+ next "the ground.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/flaaffy.asm
@@ -1,0 +1,10 @@
+; FlaaffyPokedexEntry: ; 0x1cd5b8
+ db "WOOL@" ; species name
+ dw 207, 290 ; height, weight
+
+ db "Because of its"
+ next "rubbery, electric-"
+ next "ity-resistant"
+ page "skin, it can store"
+ next "lots of electric-"
+ next "ity in its fur.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/flareon.asm
@@ -1,0 +1,10 @@
+; FlareonPokedexEntry: ; 0x1cc2ec
+ db "FLAME@" ; species name
+ dw 211, 550 ; height, weight
+
+ db "Once it has stored"
+ next "up enough heat,"
+ next "this #MON's"
+ page "body temperature"
+ next "can reach up to"
+ next "1700 degrees.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/forretress.asm
@@ -1,0 +1,10 @@
+; ForretressPokedexEntry: ; 0x1d0524
+ db "BAGWORM@" ; species name
+ dw 311, 2770 ; height, weight
+
+ db "Usually found"
+ next "hanging on to a"
+ next "fat tree trunk. It"
+ page "shoots out bits of"
+ next "its shell when it"
+ next "sees action.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/furret.asm
@@ -1,0 +1,10 @@
+; FurretPokedexEntry: ; 0x1ccddd
+ db "LONG BODY@" ; species name
+ dw 511, 720 ; height, weight
+
+ db "It lives in narrow"
+ next "burrows that fit"
+ next "its slim body. The"
+ page "deeper the nests"
+ next "go, the more maze-"
+ next "like they become.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/gastly.asm
@@ -1,0 +1,10 @@
+; GastlyPokedexEntry: ; 0x1b8b4a
+ db "GAS@" ; species name
+ dw 403, 2 ; height, weight
+
+ db "It wraps its op-"
+ next "ponent in its gas-"
+ next "like body, slowly"
+ page "weakening its prey"
+ next "by poisoning it"
+ next "through the skin.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/gengar.asm
@@ -1,0 +1,10 @@
+; GengarPokedexEntry: ; 0x1b8c25
+ db "SHADOW@" ; species name
+ dw 411, 890 ; height, weight
+
+ db "Hiding in people's"
+ next "shadows at night,"
+ next "it absorbs their"
+ page "heat. The chill it"
+ next "causes makes the"
+ next "victims shake.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/geodude.asm
@@ -1,0 +1,10 @@
+; GeodudePokedexEntry: ; 0x1b83a1
+ db "ROCK@" ; species name
+ dw 104, 440 ; height, weight
+
+ db "Proud of their"
+ next "sturdy bodies,"
+ next "they bash against"
+ page "each other in a"
+ next "contest to prove"
+ next "whose is harder.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/girafarig.asm
@@ -1,0 +1,10 @@
+; GirafarigPokedexEntry: ; 0x1d0446
+ db "LONG NECK@" ; species name
+ dw 411, 910 ; height, weight
+
+ db "When it is in"
+ next "danger, its tail"
+ next "uses some sort of"
+ page "mysterious powers"
+ next "to drive away the"
+ next "enemy.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/gligar.asm
@@ -1,0 +1,10 @@
+; GligarPokedexEntry: ; 0x1d0604
+ db "FLYSCORPIO@" ; species name
+ dw 307, 1430 ; height, weight
+
+ db "It builds its nest"
+ next "on a steep cliff."
+ next "When it is done"
+ page "gliding, it hops"
+ next "along the ground"
+ next "back to its nest.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/gloom.asm
@@ -1,0 +1,10 @@
+; GloomPokedexEntry: ; 0x1828a6
+ db "WEED@" ; species name
+ dw 207, 190 ; height, weight
+
+ db "The smell from its"
+ next "drool-like syrup"
+ next "and the pollen on"
+ page "its petals is so"
+ next "bad, it may make"
+ next "opponents faint.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/golbat.asm
@@ -1,0 +1,10 @@
+; GolbatPokedexEntry: ; 0x1827c4
+ db "BAT@" ; species name
+ dw 503, 1210 ; height, weight
+
+ db "When it plunges"
+ next "its fangs into its"
+ next "prey, it instantly"
+ page "draws and gulps"
+ next "down more than ten"
+ next "ounces of blood.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/goldeen.asm
@@ -1,0 +1,10 @@
+; GoldeenPokedexEntry: ; 0x1b9626
+ db "GOLDFISH@" ; species name
+ dw 200, 330 ; height, weight
+
+ db "During spawning"
+ next "season, they swim"
+ next "gracefully in the"
+ page "water, searching"
+ next "for their perfect"
+ next "mate.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/golduck.asm
@@ -1,0 +1,10 @@
+; GolduckPokedexEntry: ; 0x182d55
+ db "DUCK@" ; species name
+ dw 507, 1690 ; height, weight
+
+ db "It swims grace-"
+ next "fully along on the"
+ next "quiet, slow-moving"
+ page "rivers and lakes"
+ next "of which it is so"
+ next "fond.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/golem.asm
@@ -1,0 +1,10 @@
+; GolemPokedexEntry: ; 0x1b8481
+ db "MEGATON@" ; species name
+ dw 407, 6620 ; height, weight
+
+ db "Its rock-like body"
+ next "is so durable,"
+ next "even high-powered"
+ page "dynamite blasts"
+ next "fail to scratch"
+ next "its rugged hide.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/granbull.asm
@@ -1,0 +1,10 @@
+; GranbullPokedexEntry: ; 0x1d074a
+ db "FAIRY@" ; species name
+ dw 407, 1070 ; height, weight
+
+ db "It can make most"
+ next "any #MON run"
+ next "away simply by"
+ page "opening its mouth"
+ next "wide to reveal its"
+ next "big fangs.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/graveler.asm
@@ -1,0 +1,10 @@
+; GravelerPokedexEntry: ; 0x1b840c
+ db "ROCK@" ; species name
+ dw 303, 2320 ; height, weight
+
+ db "It travels by rol-"
+ next "ling on mountain"
+ next "paths. If it gains"
+ page "too much speed, it"
+ next "stops by running"
+ next "into huge rocks.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/grimer.asm
@@ -1,0 +1,10 @@
+; GrimerPokedexEntry: ; 0x1b89a2
+ db "SLUDGE@" ; species name
+ dw 211, 660 ; height, weight
+
+ db "When two of these"
+ next "#MON's bodies"
+ next "are combined"
+ page "together, new"
+ next "poisons are"
+ next "created.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/growlithe.asm
@@ -1,0 +1,10 @@
+; GrowlithePokedexEntry: ; 0x182eaa
+ db "PUPPY@" ; species name
+ dw 204, 420 ; height, weight
+
+ db "It controls a big"
+ next "territory. If it"
+ next "detects an unknown"
+ page "smell, it roars"
+ next "loudly to force"
+ next "out the intruder.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/gyarados.asm
@@ -1,0 +1,10 @@
+; GyaradosPokedexEntry: ; 0x1cc065
+ db "ATROCIOUS@" ; species name
+ dw 2104, 5180 ; height, weight
+
+ db "It appears when-"
+ next "ever there is"
+ next "world conflict,"
+ page "burning down any"
+ next "place it travels"
+ next "through.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/haunter.asm
@@ -1,0 +1,10 @@
+; HaunterPokedexEntry: ; 0x1b8bbd
+ db "GAS@" ; species name
+ dw 503, 2 ; height, weight
+
+ db "It hides in the"
+ next "dark, planning to"
+ next "take the life of"
+ page "the next living"
+ next "thing that wanders"
+ next "close by.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/heracross.asm
@@ -1,0 +1,10 @@
+; HeracrossPokedexEntry: ; 0x1d0907
+ db "SINGLEHORN@" ; species name
+ dw 411, 1190 ; height, weight
+
+ db "With its Herculean"
+ next "powers, it can"
+ next "easily throw arou-"
+ page "nd an object that"
+ next "is 100 times its"
+ next "own weight.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/hitmonchan.asm
@@ -1,0 +1,10 @@
+; HitmonchanPokedexEntry: ; 0x1b91a4
+ db "PUNCHING@" ; species name
+ dw 407, 1110 ; height, weight
+
+ db "To increase the"
+ next "strength of all"
+ next "its punch moves,"
+ page "it spins its arms"
+ next "just before making"
+ next "contact.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/hitmonlee.asm
@@ -1,0 +1,10 @@
+; HitmonleePokedexEntry: ; 0x1b913f
+ db "KICKING@" ; species name
+ dw 411, 1100 ; height, weight
+
+ db "It is also called"
+ next "the Kick Master."
+ next "It uses its"
+ page "elastic legs to"
+ next "execute every"
+ next "known kick.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/hitmontop.asm
@@ -1,0 +1,10 @@
+; HitmontopPokedexEntry: ; 0x1d12c0
+ db "HANDSTAND@" ; species name
+ dw 407, 1060 ; height, weight
+
+ db "After doing a"
+ next "handstand to"
+ next "throw off the"
+ page "opponent's timing,"
+ next "it presents its"
+ next "fancy kick moves.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ho_oh.asm
@@ -1,0 +1,10 @@
+; HoOhPokedexEntry: ; 0x1d185d
+ db "RAINBOW@" ; species name
+ dw 1206, 4390 ; height, weight
+
+ db "It will reveal"
+ next "itself before a"
+ next "pure-hearted"
+ page "trainer by shining"
+ next "its bright rain-"
+ next "bow-colored wings.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/hoothoot.asm
@@ -1,0 +1,10 @@
+; HoothootPokedexEntry: ; 0x1cce58
+ db "OWL@" ; species name
+ dw 204, 470 ; height, weight
+
+ db "It begins to hoot"
+ next "at the same time"
+ next "every day. Some"
+ page "trainers use them"
+ next "in place of"
+ next "clocks.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/hoppip.asm
@@ -1,0 +1,10 @@
+; HoppipPokedexEntry: ; 0x1cd8b5
+ db "COTTONWEED@" ; species name
+ dw 104, 10 ; height, weight
+
+ db "It can be carried"
+ next "away on even the"
+ next "gentlest breeze."
+ page "It may even float"
+ next "all the way to the"
+ next "next town.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/horsea.asm
@@ -1,0 +1,10 @@
+; HorseaPokedexEntry: ; 0x1b9553
+ db "DRAGON@" ; species name
+ dw 104, 180 ; height, weight
+
+ db "When they're in a"
+ next "safe location,"
+ next "they can be seen"
+ page "playfully tangling"
+ next "their tails"
+ next "together.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/houndoom.asm
@@ -1,0 +1,10 @@
+; HoundoomPokedexEntry: ; 0x1d0f66
+ db "DARK@" ; species name
+ dw 407, 770 ; height, weight
+
+ db "The pungent-"
+ next "smelling flame"
+ next "that shoots from"
+ page "its mouth results"
+ next "from toxins burn-"
+ next "ing in its body.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/houndour.asm
@@ -1,0 +1,10 @@
+; HoundourPokedexEntry: ; 0x1d0eff
+ db "DARK@" ; species name
+ dw 200, 240 ; height, weight
+
+ db "Around dawn, its"
+ next "ominous howl"
+ next "echoes through the"
+ page "area to announce"
+ next "that this is its"
+ next "territory.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/hypno.asm
@@ -1,0 +1,10 @@
+; HypnoPokedexEntry: ; 0x1b8d80
+ db "HYPNOSIS@" ; species name
+ dw 503, 1670 ; height, weight
+
+ db "The longer it"
+ next "swings its"
+ next "pendulum, the"
+ page "longer the effects"
+ next "of its hypnosis"
+ next "last.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/igglybuff.asm
@@ -1,0 +1,10 @@
+; IgglybuffPokedexEntry: ; 0x1cd32c
+ db "BALLOON@" ; species name
+ dw 100, 20 ; height, weight
+
+ db "Instead of walking"
+ next "with its short"
+ next "legs, it moves"
+ page "around by bouncing"
+ next "on its soft,"
+ next "tender body.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ivysaur.asm
@@ -1,0 +1,10 @@
+; IvysaurPokedexEntry: ; 0x181702
+ db "SEED@" ; species name
+ dw 303, 290 ; height, weight
+
+ db "The bulb on its"
+ next "back grows as it"
+ next "absorbs nutrients."
+ page "The bulb gives off"
+ next "a pleasant aroma"
+ next "when it blooms.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/jigglypuff.asm
@@ -1,0 +1,10 @@
+; JigglypuffPokedexEntry: ; 0x182673
+ db "BALLOON@" ; species name
+ dw 108, 120 ; height, weight
+
+ db "It rolls its cute"
+ next "eyes as it sings a"
+ next "soothing lullaby."
+ page "Its gentle song"
+ next "puts anyone who"
+ next "hears it to sleep.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/jolteon.asm
@@ -1,0 +1,10 @@
+; JolteonPokedexEntry: ; 0x1cc28b
+ db "LIGHTNING@" ; species name
+ dw 207, 540 ; height, weight
+
+ db "The negatively"
+ next "charged ions"
+ next "generated in its"
+ page "fur create a"
+ next "constant sparking"
+ next "noise.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/jumpluff.asm
@@ -1,0 +1,10 @@
+; JumpluffPokedexEntry: ; 0x1cd998
+ db "COTTONWEED@" ; species name
+ dw 207, 70 ; height, weight
+
+ db "Even in the fierc-"
+ next "est wind, it can"
+ next "control its fluff"
+ page "to make its way to"
+ next "any place in the"
+ next "world it wants.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/jynx.asm
@@ -1,0 +1,10 @@
+; JynxPokedexEntry: ; 0x1b98c5
+ db "HUMANSHAPE@" ; species name
+ dw 407, 900 ; height, weight
+
+ db "It has several"
+ next "different cry pat-"
+ next "terns, each of"
+ page "which seems to"
+ next "have its own"
+ next "meaning.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/kabuto.asm
@@ -1,0 +1,10 @@
+; KabutoPokedexEntry: ; 0x1cc497
+ db "SHELLFISH@" ; species name
+ dw 108, 250 ; height, weight
+
+ db "Three hundred"
+ next "million years ago,"
+ next "it hid on the sea"
+ page "floor. It also has"
+ next "eyes on its back"
+ next "that glow.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/kabutops.asm
@@ -1,0 +1,10 @@
+; KabutopsPokedexEntry: ; 0x1cc507
+ db "SHELLFISH@" ; species name
+ dw 403, 890 ; height, weight
+
+ db "It was able to"
+ next "swim quickly thro-"
+ next "ugh the water by"
+ page "compactly folding"
+ next "up its razor-sharp"
+ next "sickles.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/kadabra.asm
@@ -1,0 +1,10 @@
+; KadabraPokedexEntry: ; 0x18313c
+ db "PSI@" ; species name
+ dw 403, 1250 ; height, weight
+
+ db "When it closes its"
+ next "eyes, twice as"
+ next "many alpha parti-"
+ page "cles come out of"
+ next "the surface of its"
+ next "body.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/kakuna.asm
@@ -1,0 +1,10 @@
+; KakunaPokedexEntry: ; 0x181c23
+ db "COCOON@" ; species name
+ dw 200, 220 ; height, weight
+
+ db "Nearly incapable"
+ next "of movement, it"
+ next "leans against"
+ page "stout trees while"
+ next "waiting for its"
+ next "evolution.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/kangaskhan.asm
@@ -1,0 +1,10 @@
+; KangaskhanPokedexEntry: ; 0x1b94f6
+ db "PARENT@" ; species name
+ dw 703, 1760 ; height, weight
+
+ db "To avoid"
+ next "crushing the"
+ next "baby it carries in"
+ page "its pouch, it"
+ next "always sleeps"
+ next "standing up.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/kingdra.asm
@@ -1,0 +1,10 @@
+; KingdraPokedexEntry: ; 0x1d0fd1
+ db "DRAGON@" ; species name
+ dw 511, 3350 ; height, weight
+
+ db "It stores energy"
+ next "by sleeping at"
+ next "underwater depths"
+ page "at which no other"
+ next "life forms can"
+ next "survive.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/kingler.asm
@@ -1,0 +1,10 @@
+; KinglerPokedexEntry: ; 0x1b8e45
+ db "PINCER@" ; species name
+ dw 403, 1320 ; height, weight
+
+ db "Its oversized claw"
+ next "is very powerful,"
+ next "but when it's not"
+ page "in battle, the"
+ next "claw just gets in"
+ next "the way.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/koffing.asm
@@ -1,0 +1,10 @@
+; KoffingPokedexEntry: ; 0x1b9276
+ db "POISON GAS@" ; species name
+ dw 200, 20 ; height, weight
+
+ db "If one gets close"
+ next "enough to it when"
+ next "it expels poison-"
+ page "ous gas, the gas"
+ next "swirling inside it"
+ next "can be seen.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/krabby.asm
@@ -1,0 +1,10 @@
+; KrabbyPokedexEntry: ; 0x1b8ddd
+ db "RIVER CRAB@" ; species name
+ dw 104, 140 ; height, weight
+
+ db "If it is unable"
+ next "to find food, it"
+ next "will absorb"
+ page "nutrients by"
+ next "swallowing a"
+ next "mouthful of sand.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/lanturn.asm
@@ -1,0 +1,10 @@
+; LanturnPokedexEntry: ; 0x1cd1de
+ db "LIGHT@" ; species name
+ dw 311, 500 ; height, weight
+
+ db "This #MON uses"
+ next "the bright part of"
+ next "its body, which"
+ page "changed from a"
+ next "dorsal fin, to"
+ next "lure prey.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/lapras.asm
@@ -1,0 +1,10 @@
+; LaprasPokedexEntry: ; 0x1cc0cd
+ db "TRANSPORT@" ; species name
+ dw 802, 4850 ; height, weight
+
+ db "This gentle"
+ next "#MON loves to"
+ next "give people rides"
+ page "and provides a ve-"
+ next "ry comfortable way"
+ next "to get around.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/larvitar.asm
@@ -1,0 +1,10 @@
+; LarvitarPokedexEntry: ; 0x1d169c
+ db "ROCK SKIN@" ; species name
+ dw 200, 1590 ; height, weight
+
+ db "Born deep under-"
+ next "ground, this"
+ next "#MON becomes a"
+ page "pupa after eating"
+ next "enough dirt to"
+ next "make a mountain.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ledian.asm
@@ -1,0 +1,10 @@
+; LedianPokedexEntry: ; 0x1ccfa0
+ db "FIVE STAR@" ; species name
+ dw 407, 780 ; height, weight
+
+ db "In the daytime"
+ next "when it gets warm,"
+ next "it curls up inside"
+ page "a big leaf and"
+ next "drifts off into"
+ next "a deep slumber.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ledyba.asm
@@ -1,0 +1,10 @@
+; LedybaPokedexEntry: ; 0x1ccf2c
+ db "FIVE STAR@" ; species name
+ dw 303, 240 ; height, weight
+
+ db "It is timid and"
+ next "clusters together"
+ next "with others. The"
+ page "fluid secreted by"
+ next "its feet indicates"
+ next "its location.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/lickitung.asm
@@ -1,0 +1,10 @@
+; LickitungPokedexEntry: ; 0x1b9210
+ db "LICKING@" ; species name
+ dw 311, 1440 ; height, weight
+
+ db "It has a tongue"
+ next "that is over 6'6''"
+ next "long. It uses this"
+ page "long tongue to"
+ next "lick its body"
+ next "clean.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/lugia.asm
@@ -1,0 +1,10 @@
+; LugiaPokedexEntry: ; 0x1d17e9
+ db "DIVING@" ; species name
+ dw 1701, 4760 ; height, weight
+
+ db "It has an incred-"
+ next "ible ability to"
+ next "calm raging sto-"
+ page "rms. It is said"
+ next "that LUGIA appears"
+ next "when storms start.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/machamp.asm
@@ -1,0 +1,10 @@
+; MachampPokedexEntry: ; 0x1b8133
+ db "SUPERPOWER@" ; species name
+ dw 503, 2870 ; height, weight
+
+ db "With four arms"
+ next "that react more"
+ next "quickly than it"
+ page "can think, it can"
+ next "execute many"
+ next "punches at once.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/machoke.asm
@@ -1,0 +1,10 @@
+; MachokePokedexEntry: ; 0x1b80cb
+ db "SUPERPOWER@" ; species name
+ dw 411, 1550 ; height, weight
+
+ db "This tough #MON"
+ next "always stays in"
+ next "the zone. Its"
+ page "muscles become"
+ next "thicker after"
+ next "every battle.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/machop.asm
@@ -1,0 +1,10 @@
+; MachopPokedexEntry: ; 0x1b8065
+ db "SUPERPOWER@" ; species name
+ dw 207, 430 ; height, weight
+
+ db "It trains by"
+ next "lifting rocks in"
+ next "the mountains. It"
+ page "can even pick up a"
+ next "GRAVELER with"
+ next "ease.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/magby.asm
@@ -1,0 +1,10 @@
+; MagbyPokedexEntry: ; 0x1d140e
+ db "LIVE COAL@" ; species name
+ dw 204, 470 ; height, weight
+
+ db "It naturally spits"
+ next "an 1100-degree"
+ next "flame. It is said"
+ page "when many appear,"
+ next "it heralds a"
+ next "volcanic eruption.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/magcargo.asm
@@ -1,0 +1,10 @@
+; MagcargoPokedexEntry: ; 0x1d0b21
+ db "LAVA@" ; species name
+ dw 207, 1210 ; height, weight
+
+ db "Its body is as hot"
+ next "as lava and is"
+ next "always billowing."
+ page "Flames will"
+ next "occasionally burst"
+ next "from its shell.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/magikarp.asm
@@ -1,0 +1,10 @@
+; MagikarpPokedexEntry: ; 0x1cc000
+ db "FISH@" ; species name
+ dw 211, 220 ; height, weight
+
+ db "This weak and"
+ next "pathetic #MON"
+ next "gets easily pushed"
+ page "along rivers when"
+ next "there are strong"
+ next "currents.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/magmar.asm
@@ -1,0 +1,10 @@
+; MagmarPokedexEntry: ; 0x1b9994
+ db "SPITFIRE@" ; species name
+ dw 403, 980 ; height, weight
+
+ db "It moves more"
+ next "frequently in hot"
+ next "areas. It can heal"
+ page "itself by dipping"
+ next "its wound into"
+ next "lava.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/magnemite.asm
@@ -1,0 +1,10 @@
+; MagnemitePokedexEntry: ; 0x1b869d
+ db "MAGNET@" ; species name
+ dw 100, 130 ; height, weight
+
+ db "The electricity"
+ next "emitted by the"
+ next "units on each side"
+ page "of its body cause"
+ next "it to become a"
+ next "strong magnet.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/magneton.asm
@@ -1,0 +1,10 @@
+; MagnetonPokedexEntry: ; 0x1b870a
+ db "MAGNET@" ; species name
+ dw 303, 1320 ; height, weight
+
+ db "When many"
+ next "MAGNETON gather"
+ next "together, the"
+ page "resulting magnetic"
+ next "storm disrupts"
+ next "radio waves.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/mankey.asm
@@ -1,0 +1,10 @@
+; MankeyPokedexEntry: ; 0x182dbd
+ db "PIG MONKEY@" ; species name
+ dw 108, 620 ; height, weight
+
+ db "It lives in groups"
+ next "in the treetops."
+ next "If it loses sight"
+ page "of its group, it"
+ next "becomes infuriated"
+ next "by its loneliness.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/mantine.asm
@@ -1,0 +1,10 @@
+; MantinePokedexEntry: ; 0x1d0e25
+ db "KITE@" ; species name
+ dw 611, 4850 ; height, weight
+
+ db "It swims along"
+ next "freely, eating"
+ next "things that swim"
+ page "into its mouth."
+ next "Its whole body is"
+ next "very coarse.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/mareep.asm
@@ -1,0 +1,10 @@
+; MareepPokedexEntry: ; 0x1cd551
+ db "WOOL@" ; species name
+ dw 200, 170 ; height, weight
+
+ db "It stores lots of"
+ next "air in its soft"
+ next "fur, allowing it"
+ page "to stay cool in"
+ next "summer and warm"
+ next "in winter.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/marill.asm
@@ -1,0 +1,10 @@
+; MarillPokedexEntry: ; 0x1cd705
+ db "AQUAMOUSE@" ; species name
+ dw 104, 190 ; height, weight
+
+ db "The fur on its"
+ next "body naturally"
+ next "repels water. It"
+ page "can stay dry, even"
+ next "when it plays in"
+ next "the water.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/marowak.asm
@@ -1,0 +1,10 @@
+; MarowakPokedexEntry: ; 0x1b90d2
+ db "BONEKEEPER@" ; species name
+ dw 303, 990 ; height, weight
+
+ db "Somewhere in the"
+ next "world is a ceme-"
+ next "tery just for"
+ page "MAROWAK. It gets"
+ next "its bones from"
+ next "those graves.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/meganium.asm
@@ -1,0 +1,10 @@
+; MeganiumPokedexEntry: ; 0x1cca54
+ db "HERB@" ; species name
+ dw 511, 2220 ; height, weight
+
+ db "Anyone who stands"
+ next "beside it becomes"
+ next "refreshed, just as"
+ page "if they were"
+ next "relaxing in a"
+ next "sunny forest.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/meowth.asm
@@ -1,0 +1,10 @@
+; MeowthPokedexEntry: ; 0x182c08
+ db "SCRATCHCAT@" ; species name
+ dw 104, 90 ; height, weight
+
+ db "It loves things"
+ next "that sparkle. When"
+ next "it sees a shiny"
+ page "object, the gold"
+ next "coin on its head"
+ next "shines too.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/metapod.asm
@@ -1,0 +1,10 @@
+; MetapodPokedexEntry: ; 0x181ace
+ db "COCOON@" ; species name
+ dw 204, 220 ; height, weight
+
+ db "This is its pre-"
+ next "evolved form. At"
+ next "this stage, it can"
+ page "only harden, so it"
+ next "remains motionless"
+ next "to avoid attack.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/mew.asm
@@ -1,0 +1,10 @@
+; MewPokedexEntry: ; 0x1cc915
+ db "NEW SPECIE@" ; species name
+ dw 104, 90 ; height, weight
+
+ db "Because it can"
+ next "learn any move,"
+ next "some people began"
+ page "research to see if"
+ next "it is the ancestor"
+ next "of all #MON.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/mewtwo.asm
@@ -1,0 +1,10 @@
+; MewtwoPokedexEntry: ; 0x1cc8ae
+ db "GENETIC@" ; species name
+ dw 607, 2690 ; height, weight
+
+ db "Said to rest qui-"
+ next "etly in an"
+ next "undiscovered cave,"
+ page "this #MON was"
+ next "created solely for"
+ next "battling.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/miltank.asm
@@ -1,0 +1,10 @@
+; MiltankPokedexEntry: ; 0x1d1482
+ db "MILK COW@" ; species name
+ dw 311, 1660 ; height, weight
+
+ db "In order to milk a"
+ next "MILTANK, one must"
+ next "have a knack for"
+ page "rhythmically pull-"
+ next "ing up and down"
+ next "on its udders.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/misdreavus.asm
@@ -1,0 +1,10 @@
+; MisdreavusPokedexEntry: ; 0x1d0301
+ db "SCREECH@" ; species name
+ dw 204, 20 ; height, weight
+
+ db "It loves to watch"
+ next "people it's scar-"
+ next "ed. It frightens"
+ page "them by screaming"
+ next "loudly or appear-"
+ next "ing suddenly.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/moltres.asm
@@ -1,0 +1,10 @@
+; MoltresPokedexEntry: ; 0x1cc706
+ db "FLAME@" ; species name
+ dw 607, 1320 ; height, weight
+
+ db "Legendary bird"
+ next "#MON. It is"
+ next "said to migrate"
+ page "from the south"
+ next "along with the"
+ next "spring.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/mr__mime.asm
@@ -1,0 +1,10 @@
+; MrMimePokedexEntry: ; 0x1b97ea
+ db "BARRIER@" ; species name
+ dw 403, 1200 ; height, weight
+
+ db "It uses the"
+ next "mysterious"
+ next "power it has in"
+ page "its fingers to"
+ next "solidify air into"
+ next "an invisible wall.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/muk.asm
@@ -1,0 +1,10 @@
+; MukPokedexEntry: ; 0x1b89fc
+ db "SLUDGE@" ; species name
+ dw 311, 660 ; height, weight
+
+ db "As it moves, a"
+ next "very strong poison"
+ next "leaks from it,"
+ page "making the ground"
+ next "there barren for"
+ next "three years.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/murkrow.asm
@@ -1,0 +1,10 @@
+; MurkrowPokedexEntry: ; 0x1d021e
+ db "DARKNESS@" ; species name
+ dw 108, 50 ; height, weight
+
+ db "It hides any shiny"
+ next "object it finds in"
+ next "a secret location."
+ page "MURKROW and"
+ next "MEOWTH loot one"
+ next "another's stashes.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/natu.asm
@@ -1,0 +1,10 @@
+; NatuPokedexEntry: ; 0x1cd47d
+ db "LITTLE BIRD@" ; species name
+ dw 8, 40 ; height, weight
+
+ db "It is extremely"
+ next "good at climbing"
+ next "tree trunks and"
+ page "likes to eat the"
+ next "new sprouts on"
+ next "the trees.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/nidoking.asm
@@ -1,0 +1,10 @@
+; NidokingPokedexEntry: ; 0x182463
+ db "DRILL@" ; species name
+ dw 407, 1370 ; height, weight
+
+ db "It uses its thick"
+ next "arms, legs and"
+ next "tail to attack"
+ page "forcefully. Melee"
+ next "combat is its"
+ next "specialty.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/nidoqueen.asm
@@ -1,0 +1,10 @@
+; NidoqueenPokedexEntry: ; 0x18232e
+ db "DRILL@" ; species name
+ dw 403, 1320 ; height, weight
+
+ db "The hard scales"
+ next "that cover its"
+ next "strong body serve"
+ page "as excellent"
+ next "protection from"
+ next "any attack.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/nidoran_f.asm
@@ -1,0 +1,10 @@
+; NidoranFPokedexEntry: ; 0x18224b
+ db "POISON PIN@" ; species name
+ dw 104, 150 ; height, weight
+
+ db "Small and very"
+ next "docile, it pro-"
+ next "tects itself with"
+ page "its small, poison-"
+ next "ous horn when"
+ next "attacked.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/nidoran_m.asm
@@ -1,0 +1,10 @@
+; NidoranMPokedexEntry: ; 0x182392
+ db "POISON PIN@" ; species name
+ dw 108, 200 ; height, weight
+
+ db "It constantly"
+ next "moves its large"
+ next "ears in many"
+ page "directions in"
+ next "order to detect"
+ next "danger right away.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/nidorina.asm
@@ -1,0 +1,10 @@
+; NidorinaPokedexEntry: ; 0x1822b6
+ db "POISON PIN@" ; species name
+ dw 207, 440 ; height, weight
+
+ db "It has a docile"
+ next "nature. If it is"
+ next "threatened with"
+ page "attack, it raises"
+ next "the barbs that are"
+ next "all over its body.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/nidorino.asm
@@ -1,0 +1,10 @@
+; NidorinoPokedexEntry: ; 0x1823fd
+ db "POISON PIN@" ; species name
+ dw 211, 430 ; height, weight
+
+ db "It is easily"
+ next "agitated and uses"
+ next "its horn for"
+ page "offense as soon as"
+ next "it notices an"
+ next "attacker.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ninetales.asm
@@ -1,0 +1,10 @@
+; NinetalesPokedexEntry: ; 0x18260c
+ db "FOX@" ; species name
+ dw 307, 440 ; height, weight
+
+ db "It is said to live"
+ next "a thousand years,"
+ next "and each of its"
+ page "tails is loaded"
+ next "with supernatural"
+ next "powers.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/noctowl.asm
@@ -1,0 +1,10 @@
+; NoctowlPokedexEntry: ; 0x1cceb9
+ db "OWL@" ; species name
+ dw 503, 900 ; height, weight
+
+ db "Its extremely soft"
+ next "feathers make no"
+ next "sound in flight."
+ page "It silently sneaks"
+ next "up on prey without"
+ next "being detected.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/octillery.asm
@@ -1,0 +1,10 @@
+; OctilleryPokedexEntry: ; 0x1d0d42
+ db "JET@" ; species name
+ dw 211, 630 ; height, weight
+
+ db "Its instinct is to"
+ next "bury itself in"
+ next "holes. It often"
+ page "steals the nesting"
+ next "holes of others to"
+ next "sleep in them.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/oddish.asm
@@ -1,0 +1,10 @@
+; OddishPokedexEntry: ; 0x182836
+ db "WEED@" ; species name
+ dw 108, 120 ; height, weight
+
+ db "During the day, it"
+ next "stays in the cold"
+ next "underground to"
+ page "avoid the sun."
+ next "It grows by bath-"
+ next "ing in moonlight.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/omanyte.asm
@@ -1,0 +1,10 @@
+; OmanytePokedexEntry: ; 0x1cc3c1
+ db "SPIRAL@" ; species name
+ dw 104, 170 ; height, weight
+
+ db "In prehistoric"
+ next "times, it swam on"
+ next "the sea floor,"
+ page "eating plankton."
+ next "Its fossils are"
+ next "sometimes found.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/omastar.asm
@@ -1,0 +1,10 @@
+; OmastarPokedexEntry: ; 0x1cc42e
+ db "SPIRAL@" ; species name
+ dw 303, 770 ; height, weight
+
+ db "Its heavy shell"
+ next "allowed it to"
+ next "reach only nearby"
+ page "food. This could"
+ next "be the reason it"
+ next "is extinct.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/onix.asm
@@ -1,0 +1,10 @@
+; OnixPokedexEntry: ; 0x1b8c98
+ db "ROCK SNAKE@" ; species name
+ dw 2810, 4630 ; height, weight
+
+ db "As it digs through"
+ next "the ground, it"
+ next "absorbs many hard"
+ page "objects. This is"
+ next "what makes its"
+ next "body so solid.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/paras.asm
@@ -1,0 +1,10 @@
+; ParasPokedexEntry: ; 0x18297f
+ db "MUSHROOM@" ; species name
+ dw 100, 120 ; height, weight
+
+ db "The tochukaso"
+ next "growing on this"
+ next "#MON's back"
+ page "orders it to"
+ next "extract juice from"
+ next "tree trunks.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/parasect.asm
@@ -1,0 +1,10 @@
+; ParasectPokedexEntry: ; 0x1829e2
+ db "MUSHROOM@" ; species name
+ dw 303, 650 ; height, weight
+
+ db "When nothing's"
+ next "left to extract"
+ next "from the bug, the"
+ page "mushrooms on its"
+ next "back leave spores"
+ next "on the bug's egg.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/persian.asm
@@ -1,0 +1,10 @@
+; PersianPokedexEntry: ; 0x182c78
+ db "CLASSY CAT@" ; species name
+ dw 303, 710 ; height, weight
+
+ db "Behind its lithe,"
+ next "elegant appearance"
+ next "lies a barbaric"
+ page "side. It will tear"
+ next "apart its prey on"
+ next "a mere whim.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/phanpy.asm
@@ -1,0 +1,10 @@
+; PhanpyPokedexEntry: ; 0x1d1038
+ db "LONG NOSE@" ; species name
+ dw 108, 740 ; height, weight
+
+ db "During the desert-"
+ next "ed morning hours,"
+ next "it comes ashore"
+ page "where it deftly"
+ next "uses its trunk to"
+ next "take a shower.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/pichu.asm
@@ -1,0 +1,10 @@
+; PichuPokedexEntry: ; 0x1cd243
+ db "TINY MOUSE@" ; species name
+ dw 100, 40 ; height, weight
+
+ db "It is unskilled at"
+ next "storing electric"
+ next "power. Any kind of"
+ page "shock causes it to"
+ next "discharge energy"
+ next "spontaneously.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/pidgeot.asm
@@ -1,0 +1,10 @@
+; PidgeotPokedexEntry: ; 0x181dd7
+ db "BIRD@" ; species name
+ dw 411, 870 ; height, weight
+
+ db "Its outstanding"
+ next "vision allows it"
+ next "to spot splashing"
+ page "MAGIKARP, even"
+ next "while flying at"
+ next "3300 feet.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/pidgeotto.asm
@@ -1,0 +1,10 @@
+; PidgeottoPokedexEntry: ; 0x181d75
+ db "BIRD@" ; species name
+ dw 307, 660 ; height, weight
+
+ db "It slowly flies in"
+ next "a circular pat-"
+ next "tern, all the"
+ page "while keeping a"
+ next "sharp lookout for"
+ next "prey.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/pidgey.asm
@@ -1,0 +1,10 @@
+; PidgeyPokedexEntry: ; 0x181cfa
+ db "TINY BIRD@" ; species name
+ dw 100, 40 ; height, weight
+
+ db "It rapidly flaps"
+ next "its wings in the"
+ next "grass, stirring up"
+ page "a dust cloud that"
+ next "drives insect prey"
+ next "out into the open.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/pikachu.asm
@@ -1,0 +1,10 @@
+; PikachuPokedexEntry: ; 0x1820ad
+ db "MOUSE@" ; species name
+ dw 104, 130 ; height, weight
+
+ db "When it is anger-"
+ next "ed, it immediately"
+ next "discharges the"
+ page "energy stored in"
+ next "the pouches in its"
+ next "cheeks.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/piloswine.asm
@@ -1,0 +1,10 @@
+; PiloswinePokedexEntry: ; 0x1d0c01
+ db "SWINE@" ; species name
+ dw 307, 1230 ; height, weight
+
+ db "Although its legs"
+ next "are short, its"
+ next "rugged hooves"
+ page "prevent it from"
+ next "slipping, even on"
+ next "icy ground.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/pineco.asm
@@ -1,0 +1,10 @@
+; PinecoPokedexEntry: ; 0x1d04b0
+ db "BAGWORM@" ; species name
+ dw 200, 160 ; height, weight
+
+ db "It spits out a"
+ next "fluid that it uses"
+ next "to glue tree bark"
+ page "to its body. The"
+ next "fluid hardens when"
+ next "it touches air.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/pinsir.asm
@@ -1,0 +1,10 @@
+; PinsirPokedexEntry: ; 0x1b99fb
+ db "STAGBEETLE@" ; species name
+ dw 411, 1210 ; height, weight
+
+ db "When the tempera-"
+ next "ture drops at"
+ next "night, it sleeps"
+ page "on treetops or"
+ next "among roots where"
+ next "it is well hidden.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/politoed.asm
@@ -1,0 +1,10 @@
+; PolitoedPokedexEntry: ; 0x1cd84b
+ db "FROG@" ; species name
+ dw 307, 750 ; height, weight
+
+ db "When it expands"
+ next "its throat to"
+ next "croak out a tune,"
+ page "nearby POLIWAG and"
+ next "POLIWHIRL gather"
+ next "immediately.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/poliwag.asm
@@ -1,0 +1,10 @@
+; PoliwagPokedexEntry: ; 0x182f91
+ db "TADPOLE@" ; species name
+ dw 200, 270 ; height, weight
+
+ db "The swirl on its"
+ next "belly is its"
+ next "insides showing"
+ page "through the skin."
+ next "It looks clearer"
+ next "after it eats.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/poliwhirl.asm
@@ -1,0 +1,10 @@
+; PoliwhirlPokedexEntry: ; 0x182ffd
+ db "TADPOLE@" ; species name
+ dw 303, 440 ; height, weight
+
+ db "Though it is"
+ next "skilled at walk-"
+ next "ing, it prefers to"
+ page "live underwater"
+ next "where there is"
+ next "less danger.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/poliwrath.asm
@@ -1,0 +1,10 @@
+; PoliwrathPokedexEntry: ; 0x183066
+ db "TADPOLE@" ; species name
+ dw 403, 1190 ; height, weight
+
+ db "It can use its"
+ next "well-developed"
+ next "arms and legs to"
+ page "run on the surface"
+ next "of the water for a"
+ next "split second.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ponyta.asm
@@ -1,0 +1,10 @@
+; PonytaPokedexEntry: ; 0x1b84f2
+ db "FIRE HORSE@" ; species name
+ dw 303, 660 ; height, weight
+
+ db "Training by"
+ next "jumping over grass"
+ next "that grows longer"
+ page "every day has made"
+ next "it a world-class"
+ next "jumper.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/porygon.asm
@@ -1,0 +1,10 @@
+; PorygonPokedexEntry: ; 0x1cc353
+ db "VIRTUAL@" ; species name
+ dw 207, 800 ; height, weight
+
+ db "An artificial"
+ next "#MON created"
+ next "due to extensive"
+ page "research, it can"
+ next "perform only what"
+ next "is in its program.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/porygon2.asm
@@ -1,0 +1,10 @@
+; Porygon2PokedexEntry: ; 0x1d110c
+ db "VIRTUAL@" ; species name
+ dw 200, 720 ; height, weight
+
+ db "This manmade"
+ next "#MON evolved"
+ next "from the latest"
+ page "technology. It"
+ next "may have unprog-"
+ next "rammed reactions.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/primeape.asm
@@ -1,0 +1,10 @@
+; PrimeapePokedexEntry: ; 0x182e39
+ db "PIG MONKEY@" ; species name
+ dw 303, 710 ; height, weight
+
+ db "It will beat up"
+ next "anyone who makes"
+ next "it mad, even if it"
+ page "has to chase them"
+ next "until the end of"
+ next "the world.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/psyduck.asm
@@ -1,0 +1,10 @@
+; PsyduckPokedexEntry: ; 0x182cee
+ db "DUCK@" ; species name
+ dw 207, 430 ; height, weight
+
+ db "The only time it"
+ next "can use its psy-"
+ next "chic power is when"
+ page "its sleeping brain"
+ next "cells happen to"
+ next "wake.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/pupitar.asm
@@ -1,0 +1,10 @@
+; PupitarPokedexEntry: ; 0x1d1709
+ db "HARD SHELL@" ; species name
+ dw 311, 3350 ; height, weight
+
+ db "It will not stay"
+ next "still, even while"
+ next "it's a pupa. It"
+ page "already has arms"
+ next "and legs under its"
+ next "solid shell.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/quagsire.asm
@@ -1,0 +1,10 @@
+; QuagsirePokedexEntry: ; 0x1d00dd
+ db "WATER FISH@" ; species name
+ dw 407, 1650 ; height, weight
+
+ db "Its body is always"
+ next "slimy. It often"
+ next "bangs its head on"
+ page "the river bottom"
+ next "as it swims but"
+ next "seems not to care.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/quilava.asm
@@ -1,0 +1,10 @@
+; QuilavaPokedexEntry: ; 0x1ccb33
+ db "VOLCANO@" ; species name
+ dw 211, 420 ; height, weight
+
+ db "Before battle, it"
+ next "turns its back on"
+ next "its opponent to"
+ page "demonstrate how"
+ next "ferociously its"
+ next "fire blazes.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/qwilfish.asm
@@ -1,0 +1,10 @@
+; QwilfishPokedexEntry: ; 0x1d07b1
+ db "BALLOON@" ; species name
+ dw 108, 90 ; height, weight
+
+ db "When faced with a"
+ next "larger opponent,"
+ next "it swallows as"
+ page "much water as it"
+ next "can to match the"
+ next "opponent's size.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/raichu.asm
@@ -1,0 +1,10 @@
+; RaichuPokedexEntry: ; 0x182117
+ db "MOUSE@" ; species name
+ dw 207, 660 ; height, weight
+
+ db "If its electric"
+ next "pouches run empty,"
+ next "it raises its tail"
+ page "to gather electri-"
+ next "city from the"
+ next "atmosphere.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/raikou.asm
@@ -1,0 +1,10 @@
+; RaikouPokedexEntry: ; 0x1d156b
+ db "THUNDER@" ; species name
+ dw 603, 3920 ; height, weight
+
+ db "This rough #MON"
+ next "stores energy"
+ next "inside its body,"
+ page "then sweeps across"
+ next "the land, shooting"
+ next "off electricity.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/rapidash.asm
@@ -1,0 +1,10 @@
+; RapidashPokedexEntry: ; 0x1b855e
+ db "FIRE HORSE@" ; species name
+ dw 507, 2090 ; height, weight
+
+ db "It just loves to"
+ next "gallop. The faster"
+ next "it goes, the long-"
+ page "er the swaying"
+ next "flames of its mane"
+ next "will become.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/raticate.asm
@@ -1,0 +1,10 @@
+; RaticatePokedexEntry: ; 0x181ea3
+ db "RAT@" ; species name
+ dw 204, 410 ; height, weight
+
+ db "The webs on its"
+ next "hind legs enable"
+ next "it to cross"
+ page "rivers. It search-"
+ next "es wide areas for"
+ next "food.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/rattata.asm
@@ -1,0 +1,10 @@
+; RattataPokedexEntry: ; 0x181e3d
+ db "RAT@" ; species name
+ dw 100, 80 ; height, weight
+
+ db "This #MON's"
+ next "impressive vital-"
+ next "ity allows it to"
+ page "live anywhere. It"
+ next "also multiplies"
+ next "very quickly.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/remoraid.asm
@@ -1,0 +1,10 @@
+; RemoraidPokedexEntry: ; 0x1d0cd3
+ db "JET@" ; species name
+ dw 200, 260 ; height, weight
+
+ db "To escape from an"
+ next "attacker, it may"
+ next "shoot water out of"
+ page "its mouth, then"
+ next "use that force to"
+ next "swim backward.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/rhydon.asm
@@ -1,0 +1,10 @@
+; RhydonPokedexEntry: ; 0x1b93c5
+ db "DRILL@" ; species name
+ dw 603, 2650 ; height, weight
+
+ db "By lightly spin-"
+ next "ning its drill-"
+ next "like horn, it can"
+ page "easily shatter"
+ next "even a diamond in"
+ next "the rough.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/rhyhorn.asm
@@ -1,0 +1,10 @@
+; RhyhornPokedexEntry: ; 0x1b935d
+ db "SPIKES@" ; species name
+ dw 303, 2540 ; height, weight
+
+ db "It can remember"
+ next "only one thing at"
+ next "a time. Once it"
+ page "starts rushing, it"
+ next "forgets why it"
+ next "started.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/sandshrew.asm
@@ -1,0 +1,10 @@
+; SandshrewPokedexEntry: ; 0x182184
+ db "MOUSE@" ; species name
+ dw 200, 260 ; height, weight
+
+ db "It prefers dry,"
+ next "sandy places"
+ next "because it uses"
+ page "the sand to"
+ next "protect itself"
+ next "when threatened.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/sandslash.asm
@@ -1,0 +1,10 @@
+; SandslashPokedexEntry: ; 0x1821e7
+ db "MOUSE@" ; species name
+ dw 303, 650 ; height, weight
+
+ db "Adept at climbing"
+ next "trees, it rolls"
+ next "into a spiny ball,"
+ page "then attacks its"
+ next "enemies from"
+ next "above.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/scizor.asm
@@ -1,0 +1,10 @@
+; ScizorPokedexEntry: ; 0x1d0821
+ db "SCISSORS@" ; species name
+ dw 511, 2600 ; height, weight
+
+ db "This #MON's"
+ next "pincers, which"
+ next "contain steel, can"
+ page "crush any hard"
+ next "object it gets a"
+ next "hold of into bits.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/scyther.asm
@@ -1,0 +1,10 @@
+; ScytherPokedexEntry: ; 0x1b9851
+ db "MANTIS@" ; species name
+ dw 411, 1230 ; height, weight
+
+ db "It's very proud of"
+ next "its speed. It"
+ next "moves so fast that"
+ page "its opponent does"
+ next "not even know what"
+ next "knocked it down.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/seadra.asm
@@ -1,0 +1,10 @@
+; SeadraPokedexEntry: ; 0x1b95b8
+ db "DRAGON@" ; species name
+ dw 311, 550 ; height, weight
+
+ db "The male raises"
+ next "the young. If it"
+ next "is approached, it"
+ page "uses its toxic"
+ next "spikes to fend off"
+ next "the intruder.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/seaking.asm
@@ -1,0 +1,10 @@
+; SeakingPokedexEntry: ; 0x1b9690
+ db "GOLDFISH@" ; species name
+ dw 403, 860 ; height, weight
+
+ db "When autumn comes,"
+ next "the males patrol"
+ next "the area around"
+ page "their nests in"
+ next "order to protect"
+ next "their offspring.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/seel.asm
@@ -1,0 +1,10 @@
+; SeelPokedexEntry: ; 0x1b88bf
+ db "SEA LION@" ; species name
+ dw 307, 1980 ; height, weight
+
+ db "The light blue fur"
+ next "that covers it"
+ next "keeps it protected"
+ page "against the cold."
+ next "It loves iceberg-"
+ next "filled oceans.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/sentret.asm
@@ -1,0 +1,10 @@
+; SentretPokedexEntry: ; 0x1ccd6b
+ db "SCOUT@" ; species name
+ dw 207, 130 ; height, weight
+
+ db "When acting as a"
+ next "lookout, it warns"
+ next "others of danger"
+ page "by screeching and"
+ next "hitting the ground"
+ next "with its tail.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/shellder.asm
@@ -1,0 +1,10 @@
+; ShellderPokedexEntry: ; 0x1b8a68
+ db "BIVALVE@" ; species name
+ dw 100, 90 ; height, weight
+
+ db "Clamping on to an"
+ next "opponent reveals"
+ next "its vulnerable"
+ page "parts, so it uses"
+ next "this move only as"
+ next "a last resort.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/shuckle.asm
@@ -1,0 +1,10 @@
+; ShucklePokedexEntry: ; 0x1d088e
+ db "MOLD@" ; species name
+ dw 200, 450 ; height, weight
+
+ db "The fluid secreted"
+ next "by its toes carves"
+ next "holes in rocks for"
+ page "nesting and can be"
+ next "mixed with BERRIES"
+ next "to make a drink.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/skarmory.asm
@@ -1,0 +1,10 @@
+; SkarmoryPokedexEntry: ; 0x1d0e8c
+ db "ARMOR BIRD@" ; species name
+ dw 507, 1110 ; height, weight
+
+ db "The feathers that"
+ next "it sheds are very"
+ next "sharp. It is said"
+ page "that people once"
+ next "used the feathers"
+ next "as swords.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/skiploom.asm
@@ -1,0 +1,10 @@
+; SkiploomPokedexEntry: ; 0x1cd928
+ db "COTTONWEED@" ; species name
+ dw 200, 20 ; height, weight
+
+ db "As soon as it"
+ next "rains, it closes"
+ next "its flower and"
+ page "hides in the shade"
+ next "of a tree to avoid"
+ next "getting wet.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/slowbro.asm
@@ -1,0 +1,10 @@
+; SlowbroPokedexEntry: ; 0x1b8635
+ db "HERMITCRAB@" ; species name
+ dw 503, 1730 ; height, weight
+
+ db "An attached"
+ next "SHELLDER won't let"
+ next "go because of the"
+ page "tasty flavor that"
+ next "oozes out of its"
+ next "tail.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/slowking.asm
@@ -1,0 +1,10 @@
+; SlowkingPokedexEntry: ; 0x1d0292
+ db "ROYAL@" ; species name
+ dw 607, 1750 ; height, weight
+
+ db "Every time it ya-"
+ next "wns, SHELLDER"
+ next "injects more poi-"
+ page "son into it. The"
+ next "poison makes it"
+ next "more intelligent.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/slowpoke.asm
@@ -1,0 +1,10 @@
+; SlowpokePokedexEntry: ; 0x1b85d3
+ db "DOPEY@" ; species name
+ dw 311, 790 ; height, weight
+
+ db "It is always so"
+ next "absent-minded that"
+ next "it won't react,"
+ page "even if its"
+ next "flavorful tail is"
+ next "bitten.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/slugma.asm
@@ -1,0 +1,10 @@
+; SlugmaPokedexEntry: ; 0x1d0ab8
+ db "LAVA@" ; species name
+ dw 204, 770 ; height, weight
+
+ db "These group to-"
+ next "gether in areas"
+ next "that are hotter"
+ page "than normal. If it"
+ next "cools off, its"
+ next "skin hardens.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/smeargle.asm
@@ -1,0 +1,10 @@
+; SmearglePokedexEntry: ; 0x1d11e0
+ db "PAINTER@" ; species name
+ dw 311, 1280 ; height, weight
+
+ db "The color of the"
+ next "mysterious fluid"
+ next "secreted from its"
+ page "tail is predeter-"
+ next "mined for each"
+ next "SMEARGLE.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/smoochum.asm
@@ -1,0 +1,10 @@
+; SmoochumPokedexEntry: ; 0x1d132b
+ db "KISS@" ; species name
+ dw 104, 130 ; height, weight
+
+ db "The sensitivity of"
+ next "its lips develops"
+ next "most quickly."
+ page "It uses them to"
+ next "try to identify"
+ next "unknown objects.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/sneasel.asm
@@ -1,0 +1,10 @@
+; SneaselPokedexEntry: ; 0x1d097a
+ db "SHARP CLAW@" ; species name
+ dw 211, 620 ; height, weight
+
+ db "This cunning"
+ next "#MON hides"
+ next "under the cover"
+ page "of darkness,"
+ next "waiting to attack"
+ next "its prey.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/snorlax.asm
@@ -1,0 +1,10 @@
+; SnorlaxPokedexEntry: ; 0x1cc5cf
+ db "SLEEPING@" ; species name
+ dw 611, 10140 ; height, weight
+
+ db "This #MON's"
+ next "stomach is so"
+ next "strong, even"
+ page "eating moldy or"
+ next "rotten food will"
+ next "not affect it.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/snubbull.asm
@@ -1,0 +1,10 @@
+; SnubbullPokedexEntry: ; 0x1d06e0
+ db "FAIRY@" ; species name
+ dw 200, 170 ; height, weight
+
+ db "In truth, it is a"
+ next "cowardly #MON."
+ next "It growls eagerly"
+ page "in order to hide"
+ next "its fear from its"
+ next "opponent.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/spearow.asm
@@ -1,0 +1,10 @@
+; SpearowPokedexEntry: ; 0x181f03
+ db "TINY BIRD@" ; species name
+ dw 100, 40 ; height, weight
+
+ db "To protect its"
+ next "territory, it"
+ next "flies around"
+ page "ceaselessly,"
+ next "making high-"
+ next "pitched cries.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/spinarak.asm
@@ -1,0 +1,10 @@
+; SpinarakPokedexEntry: ; 0x1cd012
+ db "STRINGSPIT@" ; species name
+ dw 108, 190 ; height, weight
+
+ db "If prey becomes"
+ next "ensnared in its"
+ next "nest of spun"
+ page "string, it waits"
+ next "motionlessly until"
+ next "it becomes dark.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/squirtle.asm
@@ -1,0 +1,10 @@
+; SquirtlePokedexEntry: ; 0x181926
+ db "TINYTURTLE@" ; species name
+ dw 108, 200 ; height, weight
+
+ db "When it feels"
+ next "threatened, it"
+ next "draws its legs"
+ page "inside its shell"
+ next "and sprays water"
+ next "from its mouth.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/stantler.asm
@@ -1,0 +1,10 @@
+; StantlerPokedexEntry: ; 0x1d1174
+ db "BIG HORN@" ; species name
+ dw 407, 1570 ; height, weight
+
+ db "The round balls"
+ next "found on the"
+ next "fallen antlers can"
+ page "be ground into a"
+ next "powder that aids"
+ next "in sleeping.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/starmie.asm
@@ -1,0 +1,10 @@
+; StarmiePokedexEntry: ; 0x1b9776
+ db "MYSTERIOUS@" ; species name
+ dw 307, 1760 ; height, weight
+
+ db "It is said that it"
+ next "uses the seven-"
+ next "colored core of"
+ page "its body to send"
+ next "electric waves"
+ next "into outer space.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/staryu.asm
@@ -1,0 +1,10 @@
+; StaryuPokedexEntry: ; 0x1b9702
+ db "STARSHAPE@" ; species name
+ dw 207, 760 ; height, weight
+
+ db "When the stars"
+ next "twinkle at night,"
+ next "it floats up from"
+ page "the sea floor, and"
+ next "its body's center"
+ next "core flickers.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/steelix.asm
@@ -1,0 +1,10 @@
+; SteelixPokedexEntry: ; 0x1d067c
+ db "IRON SNAKE@" ; species name
+ dw 3002, 8820 ; height, weight
+
+ db "The many small"
+ next "metal particles"
+ next "that cover this"
+ page "#MON's body"
+ next "reflect bright"
+ next "light well.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/sudowoodo.asm
@@ -1,0 +1,10 @@
+; SudowoodoPokedexEntry: ; 0x1cd7d9
+ db "IMITATION@" ; species name
+ dw 311, 840 ; height, weight
+
+ db "If a tree branch"
+ next "shakes when there"
+ next "is no wind, it's a"
+ page "SUDOWOODO, not a"
+ next "tree. It hides"
+ next "from the rain.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/suicune.asm
@@ -1,0 +1,10 @@
+; SuicunePokedexEntry: ; 0x1d1642
+ db "AURORA@" ; species name
+ dw 607, 4120 ; height, weight
+
+ db "This divine"
+ next "#MON blows"
+ next "around the world,"
+ page "always in search"
+ next "of a pure"
+ next "reservoir.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/sunflora.asm
@@ -1,0 +1,10 @@
+; SunfloraPokedexEntry: ; 0x1cdaef
+ db "SUN@" ; species name
+ dw 207, 190 ; height, weight
+
+ db "As the hot season"
+ next "approaches, the"
+ next "petals on this"
+ page "#MON's face"
+ next "become more vivid"
+ next "and lively.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/sunkern.asm
@@ -1,0 +1,10 @@
+; SunkernPokedexEntry: ; 0x1cda87
+ db "SEED@" ; species name
+ dw 100, 40 ; height, weight
+
+ db "It is very weak."
+ next "Its only means of"
+ next "defense is to"
+ page "shake its leaves"
+ next "desperately at its"
+ next "attacker.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/swinub.asm
@@ -1,0 +1,10 @@
+; SwinubPokedexEntry: ; 0x1d0b8d
+ db "PIG@" ; species name
+ dw 104, 140 ; height, weight
+
+ db "It uses the tip of"
+ next "its nose to dig"
+ next "for food. Its nose"
+ page "is so tough that"
+ next "even frozen ground"
+ next "poses no problem.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/tangela.asm
@@ -1,0 +1,10 @@
+; TangelaPokedexEntry: ; 0x1b948c
+ db "VINE@" ; species name
+ dw 303, 770 ; height, weight
+
+ db "During battle, it"
+ next "constantly moves"
+ next "the vines that"
+ page "cover its body in"
+ next "order to annoy its"
+ next "opponent.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/tauros.asm
@@ -1,0 +1,10 @@
+; TaurosPokedexEntry: ; 0x1b9a6f
+ db "WILD BULL@" ; species name
+ dw 407, 1950 ; height, weight
+
+ db "These violent"
+ next "#MON fight"
+ next "with other mem-"
+ page "bers of their herd"
+ next "in order to prove"
+ next "their strength.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/teddiursa.asm
@@ -1,0 +1,10 @@
+; TeddiursaPokedexEntry: ; 0x1d09da
+ db "LITTLE BEAR@" ; species name
+ dw 200, 190 ; height, weight
+
+ db "It always licks"
+ next "honey. Its palm"
+ next "tastes sweet"
+ page "because of all the"
+ next "honey it has"
+ next "absorbed.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/tentacool.asm
@@ -1,0 +1,10 @@
+; TentacoolPokedexEntry: ; 0x1b82d1
+ db "JELLYFISH@" ; species name
+ dw 211, 1000 ; height, weight
+
+ db "As it floats along"
+ next "on the waves, it"
+ next "uses its toxic"
+ page "feelers to stab"
+ next "anything it"
+ next "touches.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/tentacruel.asm
@@ -1,0 +1,10 @@
+; TentacruelPokedexEntry: ; 0x1b8337
+ db "JELLYFISH@" ; species name
+ dw 503, 1210 ; height, weight
+
+ db "When its 80 feel-"
+ next "ers absorb water,"
+ next "it stretches to"
+ page "become like a net"
+ next "to entangle its"
+ next "prey.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/togepi.asm
@@ -1,0 +1,10 @@
+; TogepiPokedexEntry: ; 0x1cd396
+ db "SPIKE BALL@" ; species name
+ dw 100, 30 ; height, weight
+
+ db "It is considered"
+ next "to be a symbol of"
+ next "good luck. Its"
+ page "shell is said to"
+ next "be filled with"
+ next "happiness.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/togetic.asm
@@ -1,0 +1,10 @@
+; TogeticPokedexEntry: ; 0x1cd402
+ db "HAPPINESS@" ; species name
+ dw 200, 70 ; height, weight
+
+ db "Although it does"
+ next "not flap its wings"
+ next "very much, it can"
+ page "stay up in the air"
+ next "as it tags along"
+ next "after its trainer.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/totodile.asm
@@ -1,0 +1,10 @@
+; TotodilePokedexEntry: ; 0x1ccc14
+ db "BIG JAW@" ; species name
+ dw 200, 210 ; height, weight
+
+ db "This rough critter"
+ next "chomps at any"
+ next "moving object it"
+ page "sees. Turning your"
+ next "back on it is not"
+ next "recommended.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/typhlosion.asm
@@ -1,0 +1,10 @@
+; TyphlosionPokedexEntry: ; 0x1ccba0
+ db "VOLCANO@" ; species name
+ dw 507, 1750 ; height, weight
+
+ db "When heat from its"
+ next "body causes the"
+ next "air around it to"
+ page "shimmer, this is a"
+ next "sign that it is"
+ next "ready to battle.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/tyranitar.asm
@@ -1,0 +1,10 @@
+; TyranitarPokedexEntry: ; 0x1d177b
+ db "ARMOR@" ; species name
+ dw 607, 4450 ; height, weight
+
+ db "In just one of its"
+ next "mighty hands, it"
+ next "has the power to"
+ page "make the ground"
+ next "shake and moun-"
+ next "tains crumble.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/tyrogue.asm
@@ -1,0 +1,10 @@
+; TyroguePokedexEntry: ; 0x1d124b
+ db "SCUFFLE@" ; species name
+ dw 204, 460 ; height, weight
+
+ db "To brush up on its"
+ next "fighting skills,"
+ next "it will challenge"
+ page "anyone. It has a"
+ next "very strong com-"
+ next "petitive spirit.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/umbreon.asm
@@ -1,0 +1,10 @@
+; UmbreonPokedexEntry: ; 0x1d01af
+ db "MOONLIGHT@" ; species name
+ dw 303, 600 ; height, weight
+
+ db "On the night of a"
+ next "full moon, or when"
+ next "it gets excited,"
+ page "the ring patterns"
+ next "on its body glow"
+ next "yellow.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/unown.asm
@@ -1,0 +1,10 @@
+; UnownPokedexEntry: ; 0x1d0373
+ db "SYMBOL@" ; species name
+ dw 108, 110 ; height, weight
+
+ db "Because different"
+ next "types of UNOWN"
+ next "exist, it is said"
+ page "that they must"
+ next "have a variety of"
+ next "abilities.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/ursaring.asm
@@ -1,0 +1,10 @@
+; UrsaringPokedexEntry: ; 0x1d0a41
+ db "HIBERNANT@" ; species name
+ dw 511, 2770 ; height, weight
+
+ db "Although it has a"
+ next "large body, it is"
+ next "quite skilled at"
+ page "climbing trees. It"
+ next "eats and sleeps in"
+ next "the treetops.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/vaporeon.asm
@@ -1,0 +1,10 @@
+; VaporeonPokedexEntry: ; 0x1cc224
+ db "BUBBLE JET@" ; species name
+ dw 303, 640 ; height, weight
+
+ db "As it uses the"
+ next "fins on the tip"
+ next "of its tail to"
+ page "swim, it blends"
+ next "with the water"
+ next "perfectly.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/venomoth.asm
@@ -1,0 +1,10 @@
+; VenomothPokedexEntry: ; 0x182abf
+ db "POISONMOTH@" ; species name
+ dw 411, 280 ; height, weight
+
+ db "The scales it"
+ next "scatters will"
+ next "paralyze anyone"
+ page "who touches them,"
+ next "making that person"
+ next "unable to stand.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/venonat.asm
@@ -1,0 +1,10 @@
+; VenonatPokedexEntry: ; 0x182a53
+ db "INSECT@" ; species name
+ dw 303, 660 ; height, weight
+
+ db "The small bugs it"
+ next "eats appear only"
+ next "at night, so it"
+ page "sleeps in a hole"
+ next "in a tree until"
+ next "night falls.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/venusaur.asm
@@ -1,0 +1,10 @@
+; VenusaurPokedexEntry: ; 0x181773
+ db "SEED@" ; species name
+ dw 607, 2210 ; height, weight
+
+ db "As it warms it-"
+ next "self and absorbs"
+ next "the sunlight, its"
+ page "flower petals"
+ next "release a pleasant"
+ next "fragrance.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/victreebel.asm
@@ -1,0 +1,10 @@
+; VictreebelPokedexEntry: ; 0x1b826e
+ db "FLYCATCHER@" ; species name
+ dw 507, 340 ; height, weight
+
+ db "Once ingested into"
+ next "this #MON's"
+ next "body, even the"
+ page "hardest object"
+ next "will melt into"
+ next "nothing.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/vileplume.asm
@@ -1,0 +1,10 @@
+; VileplumePokedexEntry: ; 0x182918
+ db "FLOWER@" ; species name
+ dw 311, 410 ; height, weight
+
+ db "By shaking its big"
+ next "petals, it scat-"
+ next "ters toxic pollen"
+ page "into the air,"
+ next "turning the air"
+ next "yellow.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/voltorb.asm
@@ -1,0 +1,10 @@
+; VoltorbPokedexEntry: ; 0x1b8eb0
+ db "BALL@" ; species name
+ dw 108, 230 ; height, weight
+
+ db "During the study"
+ next "of this #MON,"
+ next "it was discovered"
+ page "that its compo-"
+ next "nents are not"
+ next "found in nature.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/vulpix.asm
@@ -1,0 +1,10 @@
+; VulpixPokedexEntry: ; 0x18259b
+ db "FOX@" ; species name
+ dw 200, 220 ; height, weight
+
+ db "As its body grows"
+ next "larger, its six"
+ next "warm tails become"
+ page "more beautiful,"
+ next "with a more luxur-"
+ next "ious coat of fur.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/wartortle.asm
@@ -1,0 +1,10 @@
+; WartortlePokedexEntry: ; 0x181993
+ db "TURTLE@" ; species name
+ dw 303, 500 ; height, weight
+
+ db "Its long, furry"
+ next "tail is a symbol"
+ next "of longevity,"
+ page "making it quite"
+ next "popular among"
+ next "older people.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/weedle.asm
@@ -1,0 +1,10 @@
+; WeedlePokedexEntry: ; 0x181bb4
+ db "HAIRY BUG@" ; species name
+ dw 100, 70 ; height, weight
+
+ db "The barb on top of"
+ next "its head secretes"
+ next "a strong poison."
+ page "It uses this toxic"
+ next "barb to protect"
+ next "itself.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/weepinbell.asm
@@ -1,0 +1,10 @@
+; WeepinbellPokedexEntry: ; 0x1b81fd
+ db "FLYCATCHER@" ; species name
+ dw 303, 140 ; height, weight
+
+ db "When it's hungry,"
+ next "it swings its"
+ next "razor-sharp"
+ page "leaves, slicing up"
+ next "any unlucky object"
+ next "nearby for food.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/weezing.asm
@@ -1,0 +1,10 @@
+; WeezingPokedexEntry: ; 0x1b92ec
+ db "POISON GAS@" ; species name
+ dw 311, 210 ; height, weight
+
+ db "When it inhales"
+ next "poisonous gases"
+ next "from garbage, its"
+ page "body expands, and"
+ next "its insides smell"
+ next "much worse.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/wigglytuff.asm
@@ -1,0 +1,10 @@
+; WigglytuffPokedexEntry: ; 0x1826e9
+ db "BALLOON@" ; species name
+ dw 303, 260 ; height, weight
+
+ db "The rich, fluffy"
+ next "fur that covers"
+ next "its body feels so"
+ page "good that anyone"
+ next "who feels it can't"
+ next "stop touching it.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/wobbuffet.asm
@@ -1,0 +1,10 @@
+; WobbuffetPokedexEntry: ; 0x1d03dd
+ db "PATIENT@" ; species name
+ dw 403, 630 ; height, weight
+
+ db "In order to con-"
+ next "ceal its black"
+ next "tail, it lives in"
+ page "a dark cave and"
+ next "only moves about"
+ next "at night.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/wooper.asm
@@ -1,0 +1,10 @@
+; WooperPokedexEntry: ; 0x1d0078
+ db "WATER FISH@" ; species name
+ dw 104, 190 ; height, weight
+
+ db "A mucous"
+ next "membrane covers"
+ next "its body. Touching"
+ page "it barehanded will"
+ next "cause a shooting"
+ next "pain.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/xatu.asm
@@ -1,0 +1,10 @@
+; XatuPokedexEntry: ; 0x1cd4e9
+ db "MYSTIC@" ; species name
+ dw 411, 330 ; height, weight
+
+ db "Once it begins to"
+ next "meditate at sun-"
+ next "rise, the entire"
+ page "day will pass"
+ next "before it will"
+ next "move again.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/yanma.asm
@@ -1,0 +1,10 @@
+; YanmaPokedexEntry: ; 0x1d0000
+ db "CLEAR WING@" ; species name
+ dw 311, 840 ; height, weight
+
+ db "It can see in all"
+ next "directions without"
+ next "moving its big"
+ page "eyes, helping it"
+ next "spot attackers and"
+ next "food right away.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/zapdos.asm
@@ -1,0 +1,10 @@
+; ZapdosPokedexEntry: ; 0x1cc697
+ db "ELECTRIC@" ; species name
+ dw 503, 1160 ; height, weight
+
+ db "Legendary bird"
+ next "#MON. They say"
+ next "lightning caused"
+ page "by the flapping of"
+ next "its wings causes"
+ next "summer storms.@"
--- /dev/null
+++ b/data/pokemon/dex_entries/zubat.asm
@@ -1,0 +1,10 @@
+; ZubatPokedexEntry: ; 0x18275d
+ db "BAT@" ; species name
+ dw 207, 170 ; height, weight
+
+ db "During the day, it"
+ next "gathers with"
+ next "others and hangs"
+ page "from the ceilings"
+ next "of old buildings"
+ next "and caves.@"
--- /dev/null
+++ b/data/pokemon/dex_entry_pointers.asm
@@ -1,0 +1,254 @@
+PokedexDataPointerTable: ; 0x44378
+; entries correspond to constants/pokemon_constants.asm
+ dw BulbasaurPokedexEntry
+ dw IvysaurPokedexEntry
+ dw VenusaurPokedexEntry
+ dw CharmanderPokedexEntry
+ dw CharmeleonPokedexEntry
+ dw CharizardPokedexEntry
+ dw SquirtlePokedexEntry
+ dw WartortlePokedexEntry
+ dw BlastoisePokedexEntry
+ dw CaterpiePokedexEntry
+ dw MetapodPokedexEntry
+ dw ButterfreePokedexEntry
+ dw WeedlePokedexEntry
+ dw KakunaPokedexEntry
+ dw BeedrillPokedexEntry
+ dw PidgeyPokedexEntry
+ dw PidgeottoPokedexEntry
+ dw PidgeotPokedexEntry
+ dw RattataPokedexEntry
+ dw RaticatePokedexEntry
+ dw SpearowPokedexEntry
+ dw FearowPokedexEntry
+ dw EkansPokedexEntry
+ dw ArbokPokedexEntry
+ dw PikachuPokedexEntry
+ dw RaichuPokedexEntry
+ dw SandshrewPokedexEntry
+ dw SandslashPokedexEntry
+ dw NidoranFPokedexEntry
+ dw NidorinaPokedexEntry
+ dw NidoqueenPokedexEntry
+ dw NidoranMPokedexEntry
+ dw NidorinoPokedexEntry
+ dw NidokingPokedexEntry
+ dw ClefairyPokedexEntry
+ dw ClefablePokedexEntry
+ dw VulpixPokedexEntry
+ dw NinetalesPokedexEntry
+ dw JigglypuffPokedexEntry
+ dw WigglytuffPokedexEntry
+ dw ZubatPokedexEntry
+ dw GolbatPokedexEntry
+ dw OddishPokedexEntry
+ dw GloomPokedexEntry
+ dw VileplumePokedexEntry
+ dw ParasPokedexEntry
+ dw ParasectPokedexEntry
+ dw VenonatPokedexEntry
+ dw VenomothPokedexEntry
+ dw DiglettPokedexEntry
+ dw DugtrioPokedexEntry
+ dw MeowthPokedexEntry
+ dw PersianPokedexEntry
+ dw PsyduckPokedexEntry
+ dw GolduckPokedexEntry
+ dw MankeyPokedexEntry
+ dw PrimeapePokedexEntry
+ dw GrowlithePokedexEntry
+ dw ArcaninePokedexEntry
+ dw PoliwagPokedexEntry
+ dw PoliwhirlPokedexEntry
+ dw PoliwrathPokedexEntry
+ dw AbraPokedexEntry
+ dw KadabraPokedexEntry
+ dw AlakazamPokedexEntry
+ dw MachopPokedexEntry
+ dw MachokePokedexEntry
+ dw MachampPokedexEntry
+ dw BellsproutPokedexEntry
+ dw WeepinbellPokedexEntry
+ dw VictreebelPokedexEntry
+ dw TentacoolPokedexEntry
+ dw TentacruelPokedexEntry
+ dw GeodudePokedexEntry
+ dw GravelerPokedexEntry
+ dw GolemPokedexEntry
+ dw PonytaPokedexEntry
+ dw RapidashPokedexEntry
+ dw SlowpokePokedexEntry
+ dw SlowbroPokedexEntry
+ dw MagnemitePokedexEntry
+ dw MagnetonPokedexEntry
+ dw FarfetchDPokedexEntry
+ dw DoduoPokedexEntry
+ dw DodrioPokedexEntry
+ dw SeelPokedexEntry
+ dw DewgongPokedexEntry
+ dw GrimerPokedexEntry
+ dw MukPokedexEntry
+ dw ShellderPokedexEntry
+ dw CloysterPokedexEntry
+ dw GastlyPokedexEntry
+ dw HaunterPokedexEntry
+ dw GengarPokedexEntry
+ dw OnixPokedexEntry
+ dw DrowzeePokedexEntry
+ dw HypnoPokedexEntry
+ dw KrabbyPokedexEntry
+ dw KinglerPokedexEntry
+ dw VoltorbPokedexEntry
+ dw ElectrodePokedexEntry
+ dw ExeggcutePokedexEntry
+ dw ExeggutorPokedexEntry
+ dw CubonePokedexEntry
+ dw MarowakPokedexEntry
+ dw HitmonleePokedexEntry
+ dw HitmonchanPokedexEntry
+ dw LickitungPokedexEntry
+ dw KoffingPokedexEntry
+ dw WeezingPokedexEntry
+ dw RhyhornPokedexEntry
+ dw RhydonPokedexEntry
+ dw ChanseyPokedexEntry
+ dw TangelaPokedexEntry
+ dw KangaskhanPokedexEntry
+ dw HorseaPokedexEntry
+ dw SeadraPokedexEntry
+ dw GoldeenPokedexEntry
+ dw SeakingPokedexEntry
+ dw StaryuPokedexEntry
+ dw StarmiePokedexEntry
+ dw MrMimePokedexEntry
+ dw ScytherPokedexEntry
+ dw JynxPokedexEntry
+ dw ElectabuzzPokedexEntry
+ dw MagmarPokedexEntry
+ dw PinsirPokedexEntry
+ dw TaurosPokedexEntry
+ dw MagikarpPokedexEntry
+ dw GyaradosPokedexEntry
+ dw LaprasPokedexEntry
+ dw DittoPokedexEntry
+ dw EeveePokedexEntry
+ dw VaporeonPokedexEntry
+ dw JolteonPokedexEntry
+ dw FlareonPokedexEntry
+ dw PorygonPokedexEntry
+ dw OmanytePokedexEntry
+ dw OmastarPokedexEntry
+ dw KabutoPokedexEntry
+ dw KabutopsPokedexEntry
+ dw AerodactylPokedexEntry
+ dw SnorlaxPokedexEntry
+ dw ArticunoPokedexEntry
+ dw ZapdosPokedexEntry
+ dw MoltresPokedexEntry
+ dw DratiniPokedexEntry
+ dw DragonairPokedexEntry
+ dw DragonitePokedexEntry
+ dw MewtwoPokedexEntry
+ dw MewPokedexEntry
+ dw ChikoritaPokedexEntry
+ dw BayleefPokedexEntry
+ dw MeganiumPokedexEntry
+ dw CyndaquilPokedexEntry
+ dw QuilavaPokedexEntry
+ dw TyphlosionPokedexEntry
+ dw TotodilePokedexEntry
+ dw CroconawPokedexEntry
+ dw FeraligatrPokedexEntry
+ dw SentretPokedexEntry
+ dw FurretPokedexEntry
+ dw HoothootPokedexEntry
+ dw NoctowlPokedexEntry
+ dw LedybaPokedexEntry
+ dw LedianPokedexEntry
+ dw SpinarakPokedexEntry
+ dw AriadosPokedexEntry
+ dw CrobatPokedexEntry
+ dw ChinchouPokedexEntry
+ dw LanturnPokedexEntry
+ dw PichuPokedexEntry
+ dw CleffaPokedexEntry
+ dw IgglybuffPokedexEntry
+ dw TogepiPokedexEntry
+ dw TogeticPokedexEntry
+ dw NatuPokedexEntry
+ dw XatuPokedexEntry
+ dw MareepPokedexEntry
+ dw FlaaffyPokedexEntry
+ dw AmpharosPokedexEntry
+ dw BellossomPokedexEntry
+ dw MarillPokedexEntry
+ dw AzumarillPokedexEntry
+ dw SudowoodoPokedexEntry
+ dw PolitoedPokedexEntry
+ dw HoppipPokedexEntry
+ dw SkiploomPokedexEntry
+ dw JumpluffPokedexEntry
+ dw AipomPokedexEntry
+ dw SunkernPokedexEntry
+ dw SunfloraPokedexEntry
+ dw YanmaPokedexEntry
+ dw WooperPokedexEntry
+ dw QuagsirePokedexEntry
+ dw EspeonPokedexEntry
+ dw UmbreonPokedexEntry
+ dw MurkrowPokedexEntry
+ dw SlowkingPokedexEntry
+ dw MisdreavusPokedexEntry
+ dw UnownPokedexEntry
+ dw WobbuffetPokedexEntry
+ dw GirafarigPokedexEntry
+ dw PinecoPokedexEntry
+ dw ForretressPokedexEntry
+ dw DunsparcePokedexEntry
+ dw GligarPokedexEntry
+ dw SteelixPokedexEntry
+ dw SnubbullPokedexEntry
+ dw GranbullPokedexEntry
+ dw QwilfishPokedexEntry
+ dw ScizorPokedexEntry
+ dw ShucklePokedexEntry
+ dw HeracrossPokedexEntry
+ dw SneaselPokedexEntry
+ dw TeddiursaPokedexEntry
+ dw UrsaringPokedexEntry
+ dw SlugmaPokedexEntry
+ dw MagcargoPokedexEntry
+ dw SwinubPokedexEntry
+ dw PiloswinePokedexEntry
+ dw CorsolaPokedexEntry
+ dw RemoraidPokedexEntry
+ dw OctilleryPokedexEntry
+ dw DelibirdPokedexEntry
+ dw MantinePokedexEntry
+ dw SkarmoryPokedexEntry
+ dw HoundourPokedexEntry
+ dw HoundoomPokedexEntry
+ dw KingdraPokedexEntry
+ dw PhanpyPokedexEntry
+ dw DonphanPokedexEntry
+ dw Porygon2PokedexEntry
+ dw StantlerPokedexEntry
+ dw SmearglePokedexEntry
+ dw TyroguePokedexEntry
+ dw HitmontopPokedexEntry
+ dw SmoochumPokedexEntry
+ dw ElekidPokedexEntry
+ dw MagbyPokedexEntry
+ dw MiltankPokedexEntry
+ dw BlisseyPokedexEntry
+ dw RaikouPokedexEntry
+ dw EnteiPokedexEntry
+ dw SuicunePokedexEntry
+ dw LarvitarPokedexEntry
+ dw PupitarPokedexEntry
+ dw TyranitarPokedexEntry
+ dw LugiaPokedexEntry
+ dw HoOhPokedexEntry
+ dw CelebiPokedexEntry
+; 0x4456e
--- /dev/null
+++ b/data/pokemon/dex_order_alpha.asm
@@ -1,0 +1,255 @@
+; Every Pokémon sorted alphabetically by name.
+
+AlphabeticalPokedexOrder: ; 0x40c65
+ 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
+ db CHIKORITA
+ db CHINCHOU
+ db CLEFABLE
+ 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 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 FLAREON
+ db FORRETRESS
+ db FURRET
+ db GASTLY
+ db GENGAR
+ 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 IGGLYBUFF
+ db IVYSAUR
+ db JIGGLYPUFF
+ db JOLTEON
+ db JUMPLUFF
+ db JYNX
+ db KABUTO
+ db KABUTOPS
+ db KADABRA
+ db KAKUNA
+ db KANGASKHAN
+ db KINGDRA
+ db KINGLER
+ 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 MAGNEMITE
+ db MAGNETON
+ db MANKEY
+ db MANTINE
+ db MAREEP
+ db MARILL
+ db MAROWAK
+ db MEGANIUM
+ db MEOWTH
+ db METAPOD
+ db MEW
+ db MEWTWO
+ db MILTANK
+ db MISDREAVUS
+ db MOLTRES
+ db MR__MIME
+ db MUK
+ db MURKROW
+ db NATU
+ db NIDOKING
+ db NIDOQUEEN
+ db NIDORAN_F
+ db NIDORAN_M
+ db NIDORINA
+ db NIDORINO
+ db NINETALES
+ db NOCTOWL
+ 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 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 RATICATE
+ db RATTATA
+ db REMORAID
+ db RHYDON
+ 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 SMEARGLE
+ db SMOOCHUM
+ db SNEASEL
+ 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 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
+; 0x40d60
--- /dev/null
+++ b/data/pokemon/dex_order_new.asm
@@ -1,0 +1,255 @@
+; Every Pokémon sorted in New Pokédex Order.
+
+NewPokedexOrder: ; 0x40d60
+ db CHIKORITA
+ 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 CLEFABLE
+ db IGGLYBUFF
+ db JIGGLYPUFF
+ 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 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 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 WEEZING
+ db GRIMER
+ db MUK
+ 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 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 MILTANK
+ db MAGBY
+ db MAGMAR
+ db SMOOCHUM
+ db JYNX
+ db ELEKID
+ db ELECTABUZZ
+ db MR__MIME
+ db SMEARGLE
+ db FARFETCH_D
+ 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 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 PHANPY
+ db DONPHAN
+ db MANTINE
+ db SKARMORY
+ db DODUO
+ db DODRIO
+ db PONYTA
+ db RAPIDASH
+ db CUBONE
+ db MAROWAK
+ db KANGASKHAN
+ db RHYHORN
+ db RHYDON
+ db MURKROW
+ db HOUNDOUR
+ db HOUNDOOM
+ db SLUGMA
+ 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 BULBASAUR
+ db IVYSAUR
+ db VENUSAUR
+ db CHARMANDER
+ db CHARMELEON
+ db CHARIZARD
+ db SQUIRTLE
+ db WARTORTLE
+ db BLASTOISE
+ db ARTICUNO
+ db ZAPDOS
+ 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
+; 0x40e5b
--- /dev/null
+++ b/data/pokemon/egg_move_pointers.asm
@@ -1,0 +1,257 @@
+EggMovePointers:: ; 0x23b11
+ dw BulbasaurEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw CharmanderEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw SquirtleEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw PidgeyEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw RattataEggMoves
+ dw NoEggMoves
+ dw SpearowEggMoves
+ dw NoEggMoves
+ dw EkansEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw SandshrewEggMoves
+ dw NoEggMoves
+ dw NidoranFEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NidoranMEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw VulpixEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw ZubatEggMoves
+ dw NoEggMoves
+ dw OddishEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw ParasEggMoves
+ dw NoEggMoves
+ dw VenonatEggMoves
+ dw NoEggMoves
+ dw DiglettEggMoves
+ dw NoEggMoves
+ dw MeowthEggMoves
+ dw NoEggMoves
+ dw PsyduckEggMoves
+ dw NoEggMoves
+ dw MankeyEggMoves
+ dw NoEggMoves
+ dw GrowlitheEggMoves
+ dw NoEggMoves
+ dw PoliwagEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw AbraEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw MachopEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw BellsproutEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw TentacoolEggMoves
+ dw NoEggMoves
+ dw GeodudeEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw PonytaEggMoves
+ dw NoEggMoves
+ dw SlowpokeEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw FarfetchDEggMoves
+ dw DoduoEggMoves
+ dw NoEggMoves
+ dw SeelEggMoves
+ dw NoEggMoves
+ dw GrimerEggMoves
+ dw NoEggMoves
+ dw ShellderEggMoves
+ dw NoEggMoves
+ dw GastlyEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw OnixEggMoves
+ dw DrowzeeEggMoves
+ dw NoEggMoves
+ dw KrabbyEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw ExeggcuteEggMoves
+ dw NoEggMoves
+ dw CuboneEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw LickitungEggMoves
+ dw KoffingEggMoves
+ dw NoEggMoves
+ dw RhyhornEggMoves
+ dw NoEggMoves
+ dw ChanseyEggMoves
+ dw TangelaEggMoves
+ dw KangaskhanEggMoves
+ dw HorseaEggMoves
+ dw NoEggMoves
+ dw GoldeenEggMoves
+ dw NoEggMoves
+if _CRYSTAL
+ dw NoEggMoves
+else
+ dw StaryuEggMoves
+endc
+ dw NoEggMoves
+ dw MrMimeEggMoves
+ dw ScytherEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw PinsirEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw LaprasEggMoves
+ dw NoEggMoves
+ dw EeveeEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw OmanyteEggMoves
+ dw NoEggMoves
+ dw KabutoEggMoves
+ dw NoEggMoves
+ dw AerodactylEggMoves
+ dw SnorlaxEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw DratiniEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw ChikoritaEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw CyndaquilEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw TotodileEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw SentretEggMoves
+ dw NoEggMoves
+ dw HoothootEggMoves
+ dw NoEggMoves
+ dw LedybaEggMoves
+ dw NoEggMoves
+ dw SpinarakEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw ChinchouEggMoves
+ dw NoEggMoves
+ dw PichuEggMoves
+ dw CleffaEggMoves
+ dw IgglybuffEggMoves
+ dw TogepiEggMoves
+ dw NoEggMoves
+ dw NatuEggMoves
+ dw NoEggMoves
+ dw MareepEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw MarillEggMoves
+ dw NoEggMoves
+ dw SudowoodoEggMoves
+ dw NoEggMoves
+ dw HoppipEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw AipomEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw YanmaEggMoves
+ dw WooperEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw MurkrowEggMoves
+ dw NoEggMoves
+ dw MisdreavusEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw GirafarigEggMoves
+ dw PinecoEggMoves
+ dw NoEggMoves
+ dw DunsparceEggMoves
+ dw GligarEggMoves
+ dw NoEggMoves
+ dw SnubbullEggMoves
+ dw NoEggMoves
+ dw QwilfishEggMoves
+ dw NoEggMoves
+ dw ShuckleEggMoves
+ dw HeracrossEggMoves
+ dw SneaselEggMoves
+ dw TeddiursaEggMoves
+ dw NoEggMoves
+ dw SlugmaEggMoves
+ dw NoEggMoves
+ dw SwinubEggMoves
+ dw NoEggMoves
+ dw CorsolaEggMoves
+ dw RemoraidEggMoves
+ dw NoEggMoves
+ dw DelibirdEggMoves
+ dw MantineEggMoves
+ dw SkarmoryEggMoves
+ dw HoundourEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw PhanpyEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw StantlerEggMoves
+ dw NoEggMoves
+ dw TyrogueEggMoves
+ dw NoEggMoves
+ dw SmoochumEggMoves
+ dw ElekidEggMoves
+ dw MagbyEggMoves
+ dw MiltankEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw LarvitarEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+ dw NoEggMoves
+; 0x23d07
--- /dev/null
+++ b/data/pokemon/egg_moves.asm
@@ -1,0 +1,870 @@
+INCLUDE "includes.asm"
+
+
+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.
+
+; Staryu's egg moves were removed in Crystal, because Staryu is genderless
+; and can only breed with Ditto.
+
+
+INCLUDE "data/pokemon/egg_move_pointers.asm"
+
+
+EggMoves::
+
+BulbasaurEggMoves:
+ db LIGHT_SCREEN
+ db SKULL_BASH
+ db SAFEGUARD
+if !_CRYSTAL
+ db CHARM
+endc
+ db RAZOR_WIND
+ db PETAL_DANCE
+ db $ff
+
+CharmanderEggMoves:
+ db BELLY_DRUM
+ db ANCIENTPOWER
+ db ROCK_SLIDE
+ db BITE
+ db OUTRAGE
+ db BEAT_UP
+ db $ff
+
+SquirtleEggMoves:
+ db MIRROR_COAT
+ db HAZE
+ db MIST
+ db CONFUSION
+ db FORESIGHT
+ db FLAIL
+ db $ff
+
+PidgeyEggMoves:
+ db PURSUIT
+ db FAINT_ATTACK
+ db FORESIGHT
+if !_CRYSTAL
+ db STEEL_WING
+endc
+ db $ff
+
+RattataEggMoves:
+ db SCREECH
+ db FLAME_WHEEL
+ db FURY_SWIPES
+ db BITE
+ db COUNTER
+ db REVERSAL
+ db $ff
+
+SpearowEggMoves:
+ db FAINT_ATTACK
+ db FALSE_SWIPE
+ db SCARY_FACE
+ db QUICK_ATTACK
+ db TRI_ATTACK
+ db $ff
+
+EkansEggMoves:
+ db PURSUIT
+ db SLAM
+ db SPITE
+ db BEAT_UP
+if _CRYSTAL
+ db CRUNCH
+endc
+ db $ff
+
+SandshrewEggMoves:
+ db FLAIL
+ db SAFEGUARD
+ db COUNTER
+ db RAPID_SPIN
+if _CRYSTAL
+ db METAL_CLAW
+endc
+ db $ff
+
+NidoranFEggMoves:
+ db SUPERSONIC
+ db DISABLE
+ db TAKE_DOWN
+ db FOCUS_ENERGY
+ db CHARM
+ db COUNTER
+ db BEAT_UP
+ db $ff
+
+NidoranMEggMoves:
+ db SUPERSONIC
+ db DISABLE
+ db TAKE_DOWN
+ db CONFUSION
+ db AMNESIA
+ db COUNTER
+ db BEAT_UP
+ db $ff
+
+VulpixEggMoves:
+ db FAINT_ATTACK
+ db HYPNOSIS
+ db FLAIL
+ db SPITE
+ db DISABLE
+ db $ff
+
+ZubatEggMoves:
+ db QUICK_ATTACK
+ db PURSUIT
+ db FAINT_ATTACK
+ db GUST
+ db WHIRLWIND
+ db $ff
+
+OddishEggMoves:
+ db SWORDS_DANCE
+ db RAZOR_LEAF
+ db FLAIL
+ db SYNTHESIS
+if !_CRYSTAL
+ db CHARM
+endc
+ db $ff
+
+ParasEggMoves:
+ db FALSE_SWIPE
+ db SCREECH
+ db COUNTER
+ db PSYBEAM
+ db FLAIL
+if !_CRYSTAL
+ db SWEET_SCENT
+endc
+ db LIGHT_SCREEN
+ db PURSUIT
+ db $ff
+
+VenonatEggMoves:
+ db BATON_PASS
+ db SCREECH
+ db GIGA_DRAIN
+ db $ff
+
+DiglettEggMoves:
+ db FAINT_ATTACK
+ db SCREECH
+ db ANCIENTPOWER
+ db PURSUIT
+ db BEAT_UP
+ db $ff
+
+MeowthEggMoves:
+ db SPITE
+ db CHARM
+ db HYPNOSIS
+ db AMNESIA
+ db $ff
+
+PsyduckEggMoves:
+ db ICE_BEAM
+ db HYPNOSIS
+ db PSYBEAM
+ db FORESIGHT
+ db LIGHT_SCREEN
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+if _CRYSTAL
+ db CROSS_CHOP
+endc
+ db $ff
+
+MankeyEggMoves:
+ db ROCK_SLIDE
+ db FORESIGHT
+ db MEDITATE
+ db COUNTER
+ db REVERSAL
+ db BEAT_UP
+ db $ff
+
+GrowlitheEggMoves:
+ db BODY_SLAM
+ db SAFEGUARD
+ db CRUNCH
+ db THRASH
+ db FIRE_SPIN
+ db $ff
+
+PoliwagEggMoves:
+ db MIST
+ db SPLASH
+ db BUBBLEBEAM
+ db HAZE
+ db MIND_READER
+ db $ff
+
+AbraEggMoves:
+ db LIGHT_SCREEN
+ db ENCORE
+ db BARRIER
+ db $ff
+
+MachopEggMoves:
+ db LIGHT_SCREEN
+ db MEDITATE
+ db ROLLING_KICK
+ db ENCORE
+ db $ff
+
+BellsproutEggMoves:
+ db SWORDS_DANCE
+ db ENCORE
+ db REFLECT
+ db SYNTHESIS
+ db LEECH_LIFE
+ db $ff
+
+TentacoolEggMoves:
+ db AURORA_BEAM
+ db MIRROR_COAT
+ db RAPID_SPIN
+ db HAZE
+ db SAFEGUARD
+ db $ff
+
+GeodudeEggMoves:
+ db MEGA_PUNCH
+ db ROCK_SLIDE
+ db $ff
+
+PonytaEggMoves:
+ db FLAME_WHEEL
+ db THRASH
+ db DOUBLE_KICK
+ db HYPNOSIS
+ db CHARM
+ db QUICK_ATTACK
+ db $ff
+
+SlowpokeEggMoves:
+ db SAFEGUARD
+ db BELLY_DRUM
+ db FUTURE_SIGHT
+ db STOMP
+ db $ff
+
+FarfetchDEggMoves:
+if !_CRYSTAL
+ db STEEL_WING
+endc
+ db FORESIGHT
+ db MIRROR_MOVE
+ db GUST
+ db QUICK_ATTACK
+ db FLAIL
+ db $ff
+
+DoduoEggMoves:
+ db QUICK_ATTACK
+ db SUPERSONIC
+ db HAZE
+ db FAINT_ATTACK
+ db FLAIL
+ db $ff
+
+SeelEggMoves:
+ db LICK
+ db PERISH_SONG
+ db DISABLE
+ db PECK
+ db SLAM
+ db ENCORE
+ db $ff
+
+GrimerEggMoves:
+ db HAZE
+ db MEAN_LOOK
+ db LICK
+ db $ff
+
+ShellderEggMoves:
+ db BUBBLEBEAM
+ db TAKE_DOWN
+ db BARRIER
+ db RAPID_SPIN
+ db SCREECH
+ db $ff
+
+GastlyEggMoves:
+ db PSYWAVE
+ db PERISH_SONG
+ db HAZE
+ db $ff
+
+OnixEggMoves:
+ db ROCK_SLIDE
+ db FLAIL
+ db $ff
+
+DrowzeeEggMoves:
+ db LIGHT_SCREEN
+ db BARRIER
+ db $ff
+
+KrabbyEggMoves:
+ db DIG
+ db HAZE
+ db AMNESIA
+ db FLAIL
+ db SLAM
+ db $ff
+
+ExeggcuteEggMoves:
+ db SYNTHESIS
+ db MOONLIGHT
+ db REFLECT
+ db MEGA_DRAIN
+ db ANCIENTPOWER
+ db $ff
+
+CuboneEggMoves:
+ db ROCK_SLIDE
+ db ANCIENTPOWER
+ db BELLY_DRUM
+ db SCREECH
+ db SKULL_BASH
+ db PERISH_SONG
+if _CRYSTAL
+ db SWORDS_DANCE
+endc
+ db $ff
+
+LickitungEggMoves:
+ db BELLY_DRUM
+ db MAGNITUDE
+ db BODY_SLAM
+ db $ff
+
+KoffingEggMoves:
+ db SCREECH
+ db PSYWAVE
+ db PSYBEAM
+ db DESTINY_BOND
+ db PAIN_SPLIT
+ db $ff
+
+RhyhornEggMoves:
+ db CRUNCH
+ db REVERSAL
+ db ROCK_SLIDE
+ db THRASH
+ db PURSUIT
+ db COUNTER
+ db MAGNITUDE
+ db $ff
+
+ChanseyEggMoves:
+ db PRESENT
+ db METRONOME
+ db HEAL_BELL
+ db $ff
+
+TangelaEggMoves:
+ db FLAIL
+ db CONFUSION
+ db MEGA_DRAIN
+ db REFLECT
+ db AMNESIA
+ db $ff
+
+KangaskhanEggMoves:
+ db STOMP
+ db FORESIGHT
+ db FOCUS_ENERGY
+ db SAFEGUARD
+ db DISABLE
+ db $ff
+
+HorseaEggMoves:
+ db FLAIL
+ db AURORA_BEAM
+ db OCTAZOOKA
+ db DISABLE
+ db SPLASH
+ db DRAGON_RAGE
+ db $ff
+
+GoldeenEggMoves:
+ db PSYBEAM
+ db HAZE
+ db HYDRO_PUMP
+ db $ff
+
+if !_CRYSTAL
+StaryuEggMoves:
+ db AURORA_BEAM
+ db BARRIER
+ db SUPERSONIC
+ db $ff
+endc
+
+MrMimeEggMoves:
+ db FUTURE_SIGHT
+ db HYPNOSIS
+ db MIMIC
+ db $ff
+
+ScytherEggMoves:
+ db COUNTER
+ db SAFEGUARD
+ db BATON_PASS
+ db RAZOR_WIND
+ db REVERSAL
+ db LIGHT_SCREEN
+ db $ff
+
+PinsirEggMoves:
+ db FURY_ATTACK
+ db FLAIL
+ db $ff
+
+LaprasEggMoves:
+ db AURORA_BEAM
+ db FORESIGHT
+ db $ff
+
+EeveeEggMoves:
+ db FLAIL
+ db CHARM
+ db $ff
+
+OmanyteEggMoves:
+ db BUBBLEBEAM
+ db AURORA_BEAM
+ db SLAM
+ db SUPERSONIC
+ db HAZE
+ db $ff
+
+KabutoEggMoves:
+ db BUBBLEBEAM
+ db AURORA_BEAM
+ db RAPID_SPIN
+ db DIG
+ db FLAIL
+ db $ff
+
+AerodactylEggMoves:
+ db WHIRLWIND
+ db PURSUIT
+ db FORESIGHT
+if !_CRYSTAL
+ db STEEL_WING
+endc
+ db $ff
+
+SnorlaxEggMoves:
+ db LICK
+if !_CRYSTAL
+ db CHARM
+endc
+ db $ff
+
+DratiniEggMoves:
+ db LIGHT_SCREEN
+ db MIST
+ db HAZE
+ db SUPERSONIC
+ db $ff
+
+ChikoritaEggMoves:
+ db VINE_WHIP
+ db LEECH_SEED
+ db COUNTER
+ db ANCIENTPOWER
+ db FLAIL
+ db SWORDS_DANCE
+ db $ff
+
+CyndaquilEggMoves:
+ db FURY_SWIPES
+ db QUICK_ATTACK
+ db REVERSAL
+ db THRASH
+ db FORESIGHT
+if _CRYSTAL
+ db SUBMISSION
+endc
+ db $ff
+
+TotodileEggMoves:
+ db CRUNCH
+ db THRASH
+ db HYDRO_PUMP
+ db ANCIENTPOWER
+ db RAZOR_WIND
+ db ROCK_SLIDE
+ db $ff
+
+SentretEggMoves:
+ db DOUBLE_EDGE
+ db PURSUIT
+ db SLASH
+ db FOCUS_ENERGY
+ db REVERSAL
+ db $ff
+
+HoothootEggMoves:
+ db MIRROR_MOVE
+ db SUPERSONIC
+ db FAINT_ATTACK
+ db WING_ATTACK
+ db WHIRLWIND
+if _CRYSTAL
+ db SKY_ATTACK
+endc
+ db $ff
+
+LedybaEggMoves:
+ db PSYBEAM
+ db BIDE
+ db LIGHT_SCREEN
+ db $ff
+
+SpinarakEggMoves:
+ db PSYBEAM
+ db DISABLE
+ db SONICBOOM
+ db BATON_PASS
+ db PURSUIT
+ db $ff
+
+ChinchouEggMoves:
+ db FLAIL
+ db SUPERSONIC
+ db SCREECH
+ db $ff
+
+PichuEggMoves:
+ db REVERSAL
+ db BIDE
+ db PRESENT
+ db ENCORE
+ db DOUBLESLAP
+ db $ff
+
+CleffaEggMoves:
+ db PRESENT
+ db METRONOME
+ db AMNESIA
+ db BELLY_DRUM
+ db SPLASH
+ db MIMIC
+ db $ff
+
+IgglybuffEggMoves:
+ db PERISH_SONG
+ db PRESENT
+ db FAINT_ATTACK
+ db $ff
+
+TogepiEggMoves:
+ db PRESENT
+ db MIRROR_MOVE
+ db PECK
+ db FORESIGHT
+ db FUTURE_SIGHT
+ db $ff
+
+NatuEggMoves:
+ db HAZE
+ db DRILL_PECK
+ db QUICK_ATTACK
+ db FAINT_ATTACK
+ db STEEL_WING
+ db $ff
+
+MareepEggMoves:
+ db THUNDERBOLT
+ db TAKE_DOWN
+ db BODY_SLAM
+ db SAFEGUARD
+ db SCREECH
+ db REFLECT
+ db $ff
+
+MarillEggMoves:
+ db LIGHT_SCREEN
+ db PRESENT
+ db AMNESIA
+ db FUTURE_SIGHT
+ db BELLY_DRUM
+ db PERISH_SONG
+ db SUPERSONIC
+ db FORESIGHT
+ db $ff
+
+SudowoodoEggMoves:
+ db SELFDESTRUCT
+ db $ff
+
+HoppipEggMoves:
+ db CONFUSION
+ db GROWL
+ db ENCORE
+ db DOUBLE_EDGE
+ db REFLECT
+ db AMNESIA
+ db PAY_DAY
+ db $ff
+
+AipomEggMoves:
+ db COUNTER
+ db SCREECH
+ db PURSUIT
+ db AGILITY
+ db SPITE
+ db SLAM
+ db DOUBLESLAP
+ db BEAT_UP
+ db $ff
+
+YanmaEggMoves:
+ db WHIRLWIND
+ db REVERSAL
+ db LEECH_LIFE
+ db $ff
+
+WooperEggMoves:
+ db BODY_SLAM
+ db ANCIENTPOWER
+ db SAFEGUARD
+ db $ff
+
+MurkrowEggMoves:
+ db WHIRLWIND
+ db DRILL_PECK
+ db QUICK_ATTACK
+ db MIRROR_MOVE
+ db WING_ATTACK
+if _CRYSTAL
+ db SKY_ATTACK
+endc
+ db $ff
+
+MisdreavusEggMoves:
+ db SCREECH
+ db DESTINY_BOND
+ db $ff
+
+GirafarigEggMoves:
+ db TAKE_DOWN
+ db AMNESIA
+ db FORESIGHT
+ db FUTURE_SIGHT
+ db BEAT_UP
+ db $ff
+
+PinecoEggMoves:
+ db REFLECT
+ db PIN_MISSILE
+ db FLAIL
+ db SWIFT
+ db $ff
+
+DunsparceEggMoves:
+ db BIDE
+ db ANCIENTPOWER
+ db ROCK_SLIDE
+ db BITE
+ db RAGE
+ db $ff
+
+GligarEggMoves:
+ db METAL_CLAW
+ db WING_ATTACK
+ db RAZOR_WIND
+ db COUNTER
+ db $ff
+
+SnubbullEggMoves:
+ db METRONOME
+ db FAINT_ATTACK
+ db REFLECT
+ db PRESENT
+ db CRUNCH
+ db HEAL_BELL
+ db LICK
+ db LEER
+ db $ff
+
+QwilfishEggMoves:
+ db FLAIL
+ db HAZE
+ db BUBBLEBEAM
+ db SUPERSONIC
+ db $ff
+
+ShuckleEggMoves:
+ db SWEET_SCENT
+ db $ff
+
+HeracrossEggMoves:
+ db HARDEN
+ db BIDE
+ db FLAIL
+ db $ff
+
+SneaselEggMoves:
+ db COUNTER
+ db SPITE
+ db FORESIGHT
+ db REFLECT
+ db BITE
+ db $ff
+
+TeddiursaEggMoves:
+ db CRUNCH
+ db TAKE_DOWN
+ db SEISMIC_TOSS
+ db FOCUS_ENERGY
+ db COUNTER
+if _CRYSTAL
+ db METAL_CLAW
+endc
+ db $ff
+
+SlugmaEggMoves:
+ db ACID_ARMOR
+ db $ff
+
+SwinubEggMoves:
+ db TAKE_DOWN
+ db BITE
+ db BODY_SLAM
+ db ROCK_SLIDE
+ db ANCIENTPOWER
+ db $ff
+
+CorsolaEggMoves:
+ db ROCK_SLIDE
+ db SAFEGUARD
+ db SCREECH
+ db MIST
+ db AMNESIA
+ db $ff
+
+RemoraidEggMoves:
+ db AURORA_BEAM
+ db OCTAZOOKA
+ db SUPERSONIC
+ db HAZE
+ db SCREECH
+ db $ff
+
+DelibirdEggMoves:
+ db AURORA_BEAM
+ db QUICK_ATTACK
+ db FUTURE_SIGHT
+ db SPLASH
+ db RAPID_SPIN
+ db $ff
+
+MantineEggMoves:
+ db TWISTER
+ db HYDRO_PUMP
+ db HAZE
+ db SLAM
+ db $ff
+
+SkarmoryEggMoves:
+ db DRILL_PECK
+ db PURSUIT
+ db WHIRLWIND
+if _CRYSTAL
+ db SKY_ATTACK
+endc
+ db $ff
+
+HoundourEggMoves:
+ db FIRE_SPIN
+ db RAGE
+ db PURSUIT
+ db COUNTER
+ db SPITE
+ db REVERSAL
+ db BEAT_UP
+ db $ff
+
+PhanpyEggMoves:
+ db FOCUS_ENERGY
+ db BODY_SLAM
+ db ANCIENTPOWER
+if _CRYSTAL
+ db WATER_GUN
+endc
+ db $ff
+
+StantlerEggMoves:
+ db REFLECT
+ db SPITE
+ db DISABLE
+ db LIGHT_SCREEN
+ db BITE
+ db $ff
+
+TyrogueEggMoves:
+ db RAPID_SPIN
+ db HI_JUMP_KICK
+ db MACH_PUNCH
+ db MIND_READER
+ db $ff
+
+SmoochumEggMoves:
+if !_CRYSTAL
+ db LOVELY_KISS
+endc
+ db MEDITATE
+ db $ff
+
+ElekidEggMoves:
+ db KARATE_CHOP
+ db BARRIER
+ db ROLLING_KICK
+ db MEDITATE
+if _CRYSTAL
+ db CROSS_CHOP
+endc
+ db $ff
+
+MagbyEggMoves:
+ db KARATE_CHOP
+ db MEGA_PUNCH
+ db BARRIER
+ db SCREECH
+if _CRYSTAL
+ db CROSS_CHOP
+endc
+ db $ff
+
+MiltankEggMoves:
+ db PRESENT
+ db REVERSAL
+ db SEISMIC_TOSS
+ db $ff
+
+LarvitarEggMoves:
+ db PURSUIT
+ db STOMP
+ db OUTRAGE
+ db FOCUS_ENERGY
+ db ANCIENTPOWER
+ db $ff
+
+NoEggMoves:
+ db $ff
--- /dev/null
+++ b/data/pokemon/evos_attacks.asm
@@ -1,0 +1,3398 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Evolutions and Attacks", ROMX
+
+
+INCLUDE "data/pokemon/evos_attacks_pointers.asm"
+
+
+EvosAttacks::
+
+BulbasaurEvosAttacks:
+ db EVOLVE_LEVEL, 16, IVYSAUR
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, GROWL
+ db 7, LEECH_SEED
+ db 10, VINE_WHIP
+ db 15, POISONPOWDER
+ db 15, SLEEP_POWDER
+ db 20, RAZOR_LEAF
+ db 25, SWEET_SCENT
+ db 32, GROWTH
+ db 39, SYNTHESIS
+ db 46, SOLARBEAM
+ db 0 ; no more level-up moves
+
+IvysaurEvosAttacks:
+ db EVOLVE_LEVEL, 32, VENUSAUR
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, LEECH_SEED
+ db 4, GROWL
+ db 7, LEECH_SEED
+ db 10, VINE_WHIP
+ db 15, POISONPOWDER
+ db 15, SLEEP_POWDER
+ db 22, RAZOR_LEAF
+ db 29, SWEET_SCENT
+ db 38, GROWTH
+ db 47, SYNTHESIS
+ db 56, SOLARBEAM
+ db 0 ; no more level-up moves
+
+VenusaurEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, LEECH_SEED
+ db 1, VINE_WHIP
+ db 4, GROWL
+ db 7, LEECH_SEED
+ db 10, VINE_WHIP
+ db 15, POISONPOWDER
+ db 15, SLEEP_POWDER
+ db 22, RAZOR_LEAF
+ db 29, SWEET_SCENT
+ db 41, GROWTH
+ db 53, SYNTHESIS
+ db 65, SOLARBEAM
+ db 0 ; no more level-up moves
+
+CharmanderEvosAttacks:
+ db EVOLVE_LEVEL, 16, CHARMELEON
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 7, EMBER
+ db 13, SMOKESCREEN
+ db 19, RAGE
+ db 25, SCARY_FACE
+ db 31, FLAMETHROWER
+ db 37, SLASH
+ db 43, DRAGON_RAGE
+ db 49, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+CharmeleonEvosAttacks:
+ db EVOLVE_LEVEL, 36, CHARIZARD
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 1, EMBER
+ db 7, EMBER
+ db 13, SMOKESCREEN
+ db 20, RAGE
+ db 27, SCARY_FACE
+ db 34, FLAMETHROWER
+ db 41, SLASH
+ db 48, DRAGON_RAGE
+ db 55, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+CharizardEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 1, EMBER
+ db 1, SMOKESCREEN
+ db 7, EMBER
+ db 13, SMOKESCREEN
+ db 20, RAGE
+ db 27, SCARY_FACE
+ db 34, FLAMETHROWER
+ db 36, WING_ATTACK
+ db 44, SLASH
+ db 54, DRAGON_RAGE
+ db 64, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+SquirtleEvosAttacks:
+ db EVOLVE_LEVEL, 16, WARTORTLE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, TAIL_WHIP
+ db 7, BUBBLE
+ db 10, WITHDRAW
+ db 13, WATER_GUN
+ db 18, BITE
+ db 23, RAPID_SPIN
+ db 28, PROTECT
+ db 33, RAIN_DANCE
+ db 40, SKULL_BASH
+ db 47, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+WartortleEvosAttacks:
+ db EVOLVE_LEVEL, 36, BLASTOISE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 1, BUBBLE
+ db 4, TAIL_WHIP
+ db 7, BUBBLE
+ db 10, WITHDRAW
+ db 13, WATER_GUN
+ db 19, BITE
+ db 25, RAPID_SPIN
+ db 31, PROTECT
+ db 37, RAIN_DANCE
+ db 45, SKULL_BASH
+ db 53, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+BlastoiseEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 1, BUBBLE
+ db 1, WITHDRAW
+ db 4, TAIL_WHIP
+ db 7, BUBBLE
+ db 10, WITHDRAW
+ db 13, WATER_GUN
+ db 19, BITE
+ db 25, RAPID_SPIN
+ db 31, PROTECT
+ db 42, RAIN_DANCE
+ db 55, SKULL_BASH
+ db 68, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+CaterpieEvosAttacks:
+ db EVOLVE_LEVEL, 7, METAPOD
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, STRING_SHOT
+ db 0 ; no more level-up moves
+
+MetapodEvosAttacks:
+ db EVOLVE_LEVEL, 10, BUTTERFREE
+ db 0 ; no more evolutions
+ db 1, HARDEN
+ db 7, HARDEN
+ db 0 ; no more level-up moves
+
+ButterfreeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONFUSION
+ db 10, CONFUSION
+ db 13, POISONPOWDER
+ db 14, STUN_SPORE
+ db 15, SLEEP_POWDER
+ db 18, SUPERSONIC
+ db 23, WHIRLWIND
+ db 28, GUST
+ db 34, PSYBEAM
+ db 40, SAFEGUARD
+ db 0 ; no more level-up moves
+
+WeedleEvosAttacks:
+ db EVOLVE_LEVEL, 7, KAKUNA
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 1, STRING_SHOT
+ db 0 ; no more level-up moves
+
+KakunaEvosAttacks:
+ db EVOLVE_LEVEL, 10, BEEDRILL
+ db 0 ; no more evolutions
+ db 1, HARDEN
+ db 7, HARDEN
+ db 0 ; no more level-up moves
+
+BeedrillEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, FURY_ATTACK
+ db 10, FURY_ATTACK
+ db 15, FOCUS_ENERGY
+ db 20, TWINEEDLE
+ db 25, RAGE
+ db 30, PURSUIT
+ db 35, PIN_MISSILE
+ db 40, AGILITY
+ db 0 ; no more level-up moves
+
+PidgeyEvosAttacks:
+ db EVOLVE_LEVEL, 18, PIDGEOTTO
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 5, SAND_ATTACK
+ db 9, GUST
+ db 15, QUICK_ATTACK
+ db 21, WHIRLWIND
+ db 29, WING_ATTACK
+ db 37, AGILITY
+ db 47, MIRROR_MOVE
+ db 0 ; no more level-up moves
+
+PidgeottoEvosAttacks:
+ db EVOLVE_LEVEL, 36, PIDGEOT
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SAND_ATTACK
+ db 1, GUST
+ db 5, SAND_ATTACK
+ db 9, GUST
+ db 15, QUICK_ATTACK
+ db 23, WHIRLWIND
+ db 33, WING_ATTACK
+ db 43, AGILITY
+ db 55, MIRROR_MOVE
+ db 0 ; no more level-up moves
+
+PidgeotEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SAND_ATTACK
+ db 1, GUST
+ db 1, QUICK_ATTACK
+ db 5, SAND_ATTACK
+ db 9, GUST
+ db 15, QUICK_ATTACK
+ db 23, WHIRLWIND
+ db 33, WING_ATTACK
+ db 46, AGILITY
+ db 61, MIRROR_MOVE
+ db 0 ; no more level-up moves
+
+RattataEvosAttacks:
+ db EVOLVE_LEVEL, 20, RATICATE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 7, QUICK_ATTACK
+ db 13, HYPER_FANG
+ db 20, FOCUS_ENERGY
+ db 27, PURSUIT
+ db 34, SUPER_FANG
+ db 0 ; no more level-up moves
+
+RaticateEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 1, QUICK_ATTACK
+ db 7, QUICK_ATTACK
+ db 13, HYPER_FANG
+ db 20, SCARY_FACE
+ db 30, PURSUIT
+ db 40, SUPER_FANG
+ db 0 ; no more level-up moves
+
+SpearowEvosAttacks:
+ db EVOLVE_LEVEL, 20, FEAROW
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, GROWL
+ db 7, LEER
+ db 13, FURY_ATTACK
+ db 25, PURSUIT
+ db 31, MIRROR_MOVE
+ db 37, DRILL_PECK
+ db 43, AGILITY
+ db 0 ; no more level-up moves
+
+FearowEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, GROWL
+ db 1, LEER
+ db 1, FURY_ATTACK
+ db 7, LEER
+ db 13, FURY_ATTACK
+ db 26, PURSUIT
+ db 32, MIRROR_MOVE
+ db 40, DRILL_PECK
+ db 47, AGILITY
+ db 0 ; no more level-up moves
+
+EkansEvosAttacks:
+ db EVOLVE_LEVEL, 22, ARBOK
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 9, POISON_STING
+ db 15, BITE
+ db 23, GLARE
+ db 29, SCREECH
+ db 37, ACID
+ db 43, HAZE
+ db 0 ; no more level-up moves
+
+ArbokEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 1, POISON_STING
+ db 1, BITE
+ db 9, POISON_STING
+ db 15, BITE
+ db 25, GLARE
+ db 33, SCREECH
+ db 43, ACID
+ db 51, HAZE
+ db 0 ; no more level-up moves
+
+PikachuEvosAttacks:
+ db EVOLVE_ITEM, THUNDERSTONE, RAICHU
+ db 0 ; no more evolutions
+ db 1, THUNDERSHOCK
+ db 1, GROWL
+ db 6, TAIL_WHIP
+ db 8, THUNDER_WAVE
+ db 11, QUICK_ATTACK
+ db 15, DOUBLE_TEAM
+ db 20, SLAM
+ db 26, THUNDERBOLT
+ db 33, AGILITY
+ db 41, THUNDER
+ db 50, LIGHT_SCREEN
+ db 0 ; no more level-up moves
+
+RaichuEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, THUNDERSHOCK
+ db 1, TAIL_WHIP
+ db 1, QUICK_ATTACK
+ db 1, THUNDERBOLT
+ db 0 ; no more level-up moves
+
+SandshrewEvosAttacks:
+ db EVOLVE_LEVEL, 22, SANDSLASH
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 6, DEFENSE_CURL
+ db 11, SAND_ATTACK
+ db 17, POISON_STING
+ db 23, SLASH
+ db 30, SWIFT
+ db 37, FURY_SWIPES
+ db 45, SANDSTORM
+ db 0 ; no more level-up moves
+
+SandslashEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, DEFENSE_CURL
+ db 1, SAND_ATTACK
+ db 6, DEFENSE_CURL
+ db 11, SAND_ATTACK
+ db 17, POISON_STING
+ db 24, SLASH
+ db 33, SWIFT
+ db 42, FURY_SWIPES
+ db 52, SANDSTORM
+ db 0 ; no more level-up moves
+
+NidoranFEvosAttacks:
+ db EVOLVE_LEVEL, 16, NIDORINA
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, TACKLE
+ db 8, SCRATCH
+ db 12, DOUBLE_KICK
+ db 17, POISON_STING
+ db 23, TAIL_WHIP
+ db 30, BITE
+ db 38, FURY_SWIPES
+ db 0 ; no more level-up moves
+
+NidorinaEvosAttacks:
+ db EVOLVE_ITEM, MOON_STONE, NIDOQUEEN
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, TACKLE
+ db 8, SCRATCH
+ db 12, DOUBLE_KICK
+ db 19, POISON_STING
+ db 27, TAIL_WHIP
+ db 36, BITE
+ db 46, FURY_SWIPES
+ db 0 ; no more level-up moves
+
+NidoqueenEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCRATCH
+ db 1, DOUBLE_KICK
+ db 1, TAIL_WHIP
+ db 23, BODY_SLAM
+ db 0 ; no more level-up moves
+
+NidoranMEvosAttacks:
+ db EVOLVE_LEVEL, 16, NIDORINO
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, TACKLE
+ db 8, HORN_ATTACK
+ db 12, DOUBLE_KICK
+ db 17, POISON_STING
+ db 23, FOCUS_ENERGY
+ db 30, FURY_ATTACK
+ db 38, HORN_DRILL
+ db 0 ; no more level-up moves
+
+NidorinoEvosAttacks:
+ db EVOLVE_ITEM, MOON_STONE, NIDOKING
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, TACKLE
+ db 8, HORN_ATTACK
+ db 12, DOUBLE_KICK
+ db 19, POISON_STING
+ db 27, FOCUS_ENERGY
+ db 36, FURY_ATTACK
+ db 46, HORN_DRILL
+ db 0 ; no more level-up moves
+
+NidokingEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, HORN_ATTACK
+ db 1, DOUBLE_KICK
+ db 1, POISON_STING
+ db 23, THRASH
+ db 0 ; no more level-up moves
+
+ClefairyEvosAttacks:
+ db EVOLVE_ITEM, MOON_STONE, CLEFABLE
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, GROWL
+ db 4, ENCORE
+ db 8, SING
+ db 13, DOUBLESLAP
+ db 19, MINIMIZE
+ db 26, DEFENSE_CURL
+ db 34, METRONOME
+ db 43, MOONLIGHT
+ db 53, LIGHT_SCREEN
+ db 0 ; no more level-up moves
+
+ClefableEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SING
+ db 1, DOUBLESLAP
+ db 1, METRONOME
+ db 1, MOONLIGHT
+ db 0 ; no more level-up moves
+
+VulpixEvosAttacks:
+ db EVOLVE_ITEM, FIRE_STONE, NINETALES
+ db 0 ; no more evolutions
+ db 1, EMBER
+ db 1, TAIL_WHIP
+ db 7, QUICK_ATTACK
+ db 13, ROAR
+ db 19, CONFUSE_RAY
+ db 25, SAFEGUARD
+ db 31, FLAMETHROWER
+ db 37, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+NinetalesEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, EMBER
+ db 1, QUICK_ATTACK
+ db 1, CONFUSE_RAY
+ db 1, SAFEGUARD
+ db 43, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+JigglypuffEvosAttacks:
+ db EVOLVE_ITEM, MOON_STONE, WIGGLYTUFF
+ db 0 ; no more evolutions
+ db 1, SING
+ db 4, DEFENSE_CURL
+ db 9, POUND
+ db 14, DISABLE
+ db 19, ROLLOUT
+ db 24, DOUBLESLAP
+ db 29, REST
+ db 34, BODY_SLAM
+ db 39, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+WigglytuffEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SING
+ db 1, DISABLE
+ db 1, DEFENSE_CURL
+ db 1, DOUBLESLAP
+ db 0 ; no more level-up moves
+
+ZubatEvosAttacks:
+ db EVOLVE_LEVEL, 22, GOLBAT
+ db 0 ; no more evolutions
+ db 1, LEECH_LIFE
+ db 6, SUPERSONIC
+ db 12, BITE
+ db 19, CONFUSE_RAY
+ db 27, WING_ATTACK
+ db 36, MEAN_LOOK
+ db 46, HAZE
+ db 0 ; no more level-up moves
+
+GolbatEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, CROBAT
+ db 0 ; no more evolutions
+ db 1, SCREECH
+ db 1, LEECH_LIFE
+ db 1, SUPERSONIC
+ db 6, SUPERSONIC
+ db 12, BITE
+ db 19, CONFUSE_RAY
+ db 30, WING_ATTACK
+ db 42, MEAN_LOOK
+ db 55, HAZE
+ db 0 ; no more level-up moves
+
+OddishEvosAttacks:
+ db EVOLVE_LEVEL, 21, GLOOM
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 7, SWEET_SCENT
+ db 14, POISONPOWDER
+ db 16, STUN_SPORE
+ db 18, SLEEP_POWDER
+ db 23, ACID
+ db 32, MOONLIGHT
+ db 39, PETAL_DANCE
+ db 0 ; no more level-up moves
+
+GloomEvosAttacks:
+ db EVOLVE_ITEM, LEAF_STONE, VILEPLUME
+ db EVOLVE_ITEM, SUN_STONE, BELLOSSOM
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 1, SWEET_SCENT
+ db 1, POISONPOWDER
+ db 7, SWEET_SCENT
+ db 14, POISONPOWDER
+ db 16, STUN_SPORE
+ db 18, SLEEP_POWDER
+ db 24, ACID
+ db 35, MOONLIGHT
+ db 44, PETAL_DANCE
+ db 0 ; no more level-up moves
+
+VileplumeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 1, SWEET_SCENT
+ db 1, STUN_SPORE
+ db 1, PETAL_DANCE
+ db 0 ; no more level-up moves
+
+ParasEvosAttacks:
+ db EVOLVE_LEVEL, 24, PARASECT
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 7, STUN_SPORE
+ db 13, POISONPOWDER
+ db 19, LEECH_LIFE
+ db 25, SPORE
+ db 31, SLASH
+ db 37, GROWTH
+ db 43, GIGA_DRAIN
+ db 0 ; no more level-up moves
+
+ParasectEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, STUN_SPORE
+ db 1, POISONPOWDER
+ db 7, STUN_SPORE
+ db 13, POISONPOWDER
+ db 19, LEECH_LIFE
+ db 28, SPORE
+ db 37, SLASH
+ db 46, GROWTH
+ db 55, GIGA_DRAIN
+ db 0 ; no more level-up moves
+
+VenonatEvosAttacks:
+ db EVOLVE_LEVEL, 31, VENOMOTH
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DISABLE
+ db 1, FORESIGHT
+ db 9, SUPERSONIC
+ db 17, CONFUSION
+ db 20, POISONPOWDER
+ db 25, LEECH_LIFE
+ db 28, STUN_SPORE
+ db 33, PSYBEAM
+ db 36, SLEEP_POWDER
+ db 41, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+VenomothEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DISABLE
+ db 1, FORESIGHT
+ db 1, SUPERSONIC
+ db 9, SUPERSONIC
+ db 17, CONFUSION
+ db 20, POISONPOWDER
+ db 25, LEECH_LIFE
+ db 28, STUN_SPORE
+ db 31, GUST
+ db 36, PSYBEAM
+ db 42, SLEEP_POWDER
+ db 52, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+DiglettEvosAttacks:
+ db EVOLVE_LEVEL, 26, DUGTRIO
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 5, GROWL
+ db 9, MAGNITUDE
+ db 17, DIG
+ db 25, SAND_ATTACK
+ db 33, SLASH
+ db 41, EARTHQUAKE
+ db 49, FISSURE
+ db 0 ; no more level-up moves
+
+DugtrioEvosAttacks:
+ db 0 ; no more evolutions
+if _CRYSTAL
+ db 1, TRI_ATTACK
+endc
+ db 1, SCRATCH
+ db 1, GROWL
+ db 1, MAGNITUDE
+ db 5, GROWL
+ db 9, MAGNITUDE
+ db 17, DIG
+ db 25, SAND_ATTACK
+ db 37, SLASH
+ db 49, EARTHQUAKE
+ db 61, FISSURE
+ db 0 ; no more level-up moves
+
+MeowthEvosAttacks:
+ db EVOLVE_LEVEL, 28, PERSIAN
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 11, BITE
+ db 20, PAY_DAY
+ db 28, FAINT_ATTACK
+ db 35, SCREECH
+ db 41, FURY_SWIPES
+ db 46, SLASH
+ db 0 ; no more level-up moves
+
+PersianEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 1, BITE
+ db 11, BITE
+ db 20, PAY_DAY
+ db 29, FAINT_ATTACK
+ db 38, SCREECH
+ db 46, FURY_SWIPES
+ db 53, SLASH
+ db 0 ; no more level-up moves
+
+PsyduckEvosAttacks:
+ db EVOLVE_LEVEL, 33, GOLDUCK
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 5, TAIL_WHIP
+ db 10, DISABLE
+ db 16, CONFUSION
+ db 23, SCREECH
+ db 31, PSYCH_UP
+ db 40, FURY_SWIPES
+ db 50, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+GolduckEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, TAIL_WHIP
+ db 1, DISABLE
+ db 1, CONFUSION
+ db 5, TAIL_WHIP
+ db 10, DISABLE
+ db 16, CONFUSION
+ db 23, SCREECH
+ db 31, PSYCH_UP
+ db 44, FURY_SWIPES
+ db 58, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+MankeyEvosAttacks:
+ db EVOLVE_LEVEL, 28, PRIMEAPE
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 9, LOW_KICK
+ db 15, KARATE_CHOP
+ db 21, FURY_SWIPES
+ db 27, FOCUS_ENERGY
+ db 33, SEISMIC_TOSS
+ db 39, CROSS_CHOP
+ db 45, SCREECH
+ db 51, THRASH
+ db 0 ; no more level-up moves
+
+PrimeapeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 1, LOW_KICK
+ db 1, RAGE
+ db 9, LOW_KICK
+ db 15, KARATE_CHOP
+ db 21, FURY_SWIPES
+ db 27, FOCUS_ENERGY
+ db 28, RAGE
+ db 36, SEISMIC_TOSS
+ db 45, CROSS_CHOP
+ db 54, SCREECH
+ db 63, THRASH
+ db 0 ; no more level-up moves
+
+GrowlitheEvosAttacks:
+ db EVOLVE_ITEM, FIRE_STONE, ARCANINE
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, ROAR
+ db 9, EMBER
+ db 18, LEER
+ db 26, TAKE_DOWN
+ db 34, FLAME_WHEEL
+ db 42, AGILITY
+ db 50, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+ArcanineEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ROAR
+ db 1, LEER
+ db 1, TAKE_DOWN
+ db 1, FLAME_WHEEL
+ db 50, EXTREMESPEED
+ db 0 ; no more level-up moves
+
+PoliwagEvosAttacks:
+ db EVOLVE_LEVEL, 25, POLIWHIRL
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 7, HYPNOSIS
+ db 13, WATER_GUN
+ db 19, DOUBLESLAP
+ db 25, RAIN_DANCE
+ db 31, BODY_SLAM
+ db 37, BELLY_DRUM
+ db 43, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+PoliwhirlEvosAttacks:
+ db EVOLVE_ITEM, WATER_STONE, POLIWRATH
+ db EVOLVE_TRADE, KINGS_ROCK, POLITOED
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, HYPNOSIS
+ db 1, WATER_GUN
+ db 7, HYPNOSIS
+ db 13, WATER_GUN
+ db 19, DOUBLESLAP
+ db 27, RAIN_DANCE
+ db 35, BODY_SLAM
+ db 43, BELLY_DRUM
+ db 51, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+PoliwrathEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, HYPNOSIS
+ db 1, DOUBLESLAP
+ db 1, SUBMISSION
+ db 35, SUBMISSION
+ db 51, MIND_READER
+ db 0 ; no more level-up moves
+
+AbraEvosAttacks:
+ db EVOLVE_LEVEL, 16, KADABRA
+ db 0 ; no more evolutions
+ db 1, TELEPORT
+ db 0 ; no more level-up moves
+
+KadabraEvosAttacks:
+ db EVOLVE_TRADE, $ff, ALAKAZAM
+ db 0 ; no more evolutions
+ db 1, TELEPORT
+ db 1, KINESIS
+ db 1, CONFUSION
+ db 16, CONFUSION
+ db 18, DISABLE
+ db 21, PSYBEAM
+ db 26, RECOVER
+ db 31, FUTURE_SIGHT
+ db 38, PSYCHIC_M
+ db 45, REFLECT
+ db 0 ; no more level-up moves
+
+AlakazamEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TELEPORT
+ db 1, KINESIS
+ db 1, CONFUSION
+ db 16, CONFUSION
+ db 18, DISABLE
+ db 21, PSYBEAM
+ db 26, RECOVER
+ db 31, FUTURE_SIGHT
+ db 38, PSYCHIC_M
+ db 45, REFLECT
+ db 0 ; no more level-up moves
+
+MachopEvosAttacks:
+ db EVOLVE_LEVEL, 28, MACHOKE
+ db 0 ; no more evolutions
+ db 1, LOW_KICK
+ db 1, LEER
+ db 7, FOCUS_ENERGY
+ db 13, KARATE_CHOP
+ db 19, SEISMIC_TOSS
+ db 25, FORESIGHT
+ db 31, VITAL_THROW
+ db 37, CROSS_CHOP
+ db 43, SCARY_FACE
+ db 49, SUBMISSION
+ db 0 ; no more level-up moves
+
+MachokeEvosAttacks:
+ db EVOLVE_TRADE, $ff, MACHAMP
+ db 0 ; no more evolutions
+ db 1, LOW_KICK
+ db 1, LEER
+ db 1, FOCUS_ENERGY
+ db 8, FOCUS_ENERGY
+ db 15, KARATE_CHOP
+ db 19, SEISMIC_TOSS
+ db 25, FORESIGHT
+ db 34, VITAL_THROW
+ db 43, CROSS_CHOP
+ db 52, SCARY_FACE
+ db 61, SUBMISSION
+ db 0 ; no more level-up moves
+
+MachampEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LOW_KICK
+ db 1, LEER
+ db 1, FOCUS_ENERGY
+ db 8, FOCUS_ENERGY
+ db 15, KARATE_CHOP
+ db 19, SEISMIC_TOSS
+ db 25, FORESIGHT
+ db 34, VITAL_THROW
+ db 43, CROSS_CHOP
+ db 52, SCARY_FACE
+ db 61, SUBMISSION
+ db 0 ; no more level-up moves
+
+BellsproutEvosAttacks:
+ db EVOLVE_LEVEL, 21, WEEPINBELL
+ db 0 ; no more evolutions
+ db 1, VINE_WHIP
+ db 6, GROWTH
+ db 11, WRAP
+ db 15, SLEEP_POWDER
+ db 17, POISONPOWDER
+ db 19, STUN_SPORE
+ db 23, ACID
+ db 30, SWEET_SCENT
+ db 37, RAZOR_LEAF
+ db 45, SLAM
+ db 0 ; no more level-up moves
+
+WeepinbellEvosAttacks:
+ db EVOLVE_ITEM, LEAF_STONE, VICTREEBEL
+ db 0 ; no more evolutions
+ db 1, VINE_WHIP
+ db 1, GROWTH
+ db 1, WRAP
+ db 6, GROWTH
+ db 11, WRAP
+ db 15, SLEEP_POWDER
+ db 17, POISONPOWDER
+ db 19, STUN_SPORE
+ db 24, ACID
+ db 33, SWEET_SCENT
+ db 42, RAZOR_LEAF
+ db 54, SLAM
+ db 0 ; no more level-up moves
+
+VictreebelEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, VINE_WHIP
+ db 1, SLEEP_POWDER
+ db 1, SWEET_SCENT
+ db 1, RAZOR_LEAF
+ db 0 ; no more level-up moves
+
+TentacoolEvosAttacks:
+ db EVOLVE_LEVEL, 30, TENTACRUEL
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 6, SUPERSONIC
+ db 12, CONSTRICT
+ db 19, ACID
+ db 25, BUBBLEBEAM
+ db 30, WRAP
+ db 36, BARRIER
+ db 43, SCREECH
+ db 49, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+TentacruelEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 1, SUPERSONIC
+ db 1, CONSTRICT
+ db 6, SUPERSONIC
+ db 12, CONSTRICT
+ db 19, ACID
+ db 25, BUBBLEBEAM
+ db 30, WRAP
+ db 38, BARRIER
+ db 47, SCREECH
+ db 55, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+GeodudeEvosAttacks:
+ db EVOLVE_LEVEL, 25, GRAVELER
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 6, DEFENSE_CURL
+ db 11, ROCK_THROW
+ db 16, MAGNITUDE
+ db 21, SELFDESTRUCT
+ db 26, HARDEN
+ db 31, ROLLOUT
+ db 36, EARTHQUAKE
+ db 41, EXPLOSION
+ db 0 ; no more level-up moves
+
+GravelerEvosAttacks:
+ db EVOLVE_TRADE, $ff, GOLEM
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DEFENSE_CURL
+ db 1, ROCK_THROW
+ db 6, DEFENSE_CURL
+ db 11, ROCK_THROW
+ db 16, MAGNITUDE
+ db 21, SELFDESTRUCT
+ db 27, HARDEN
+ db 34, ROLLOUT
+ db 41, EARTHQUAKE
+ db 48, EXPLOSION
+ db 0 ; no more level-up moves
+
+GolemEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DEFENSE_CURL
+ db 1, ROCK_THROW
+ db 1, MAGNITUDE
+ db 6, DEFENSE_CURL
+ db 11, ROCK_THROW
+ db 16, MAGNITUDE
+ db 21, SELFDESTRUCT
+ db 27, HARDEN
+ db 34, ROLLOUT
+ db 41, EARTHQUAKE
+ db 48, EXPLOSION
+ db 0 ; no more level-up moves
+
+PonytaEvosAttacks:
+ db EVOLVE_LEVEL, 40, RAPIDASH
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, GROWL
+ db 8, TAIL_WHIP
+ db 13, EMBER
+ db 19, STOMP
+ db 26, FIRE_SPIN
+ db 34, TAKE_DOWN
+ db 43, AGILITY
+ db 53, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+RapidashEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, TAIL_WHIP
+ db 1, EMBER
+ db 4, GROWL
+ db 8, TAIL_WHIP
+ db 13, EMBER
+ db 19, STOMP
+ db 26, FIRE_SPIN
+ db 34, TAKE_DOWN
+ db 40, FURY_ATTACK
+ db 47, AGILITY
+ db 61, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+SlowpokeEvosAttacks:
+ db EVOLVE_LEVEL, 37, SLOWBRO
+ db EVOLVE_TRADE, KINGS_ROCK, SLOWKING
+ db 0 ; no more evolutions
+ db 1, CURSE
+ db 1, TACKLE
+ db 6, GROWL
+ db 15, WATER_GUN
+ db 20, CONFUSION
+ db 29, DISABLE
+ db 34, HEADBUTT
+ db 43, AMNESIA
+ db 48, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+SlowbroEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CURSE
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, WATER_GUN
+ db 6, GROWL
+ db 15, WATER_GUN
+ db 20, CONFUSION
+ db 29, DISABLE
+ db 34, HEADBUTT
+ db 37, WITHDRAW
+ db 46, AMNESIA
+ db 54, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+MagnemiteEvosAttacks:
+ db EVOLVE_LEVEL, 30, MAGNETON
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 6, THUNDERSHOCK
+ db 11, SUPERSONIC
+ db 16, SONICBOOM
+ db 21, THUNDER_WAVE
+ db 27, LOCK_ON
+ db 33, SWIFT
+ db 39, SCREECH
+ db 45, ZAP_CANNON
+ db 0 ; no more level-up moves
+
+MagnetonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, THUNDERSHOCK
+ db 1, SUPERSONIC
+ db 1, SONICBOOM
+ db 6, THUNDERSHOCK
+ db 11, SUPERSONIC
+ 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
+
+FarfetchDEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 7, SAND_ATTACK
+ db 13, LEER
+ db 19, FURY_ATTACK
+ db 25, SWORDS_DANCE
+ db 31, AGILITY
+ db 37, SLASH
+ db 44, FALSE_SWIPE
+ db 0 ; no more level-up moves
+
+DoduoEvosAttacks:
+ db EVOLVE_LEVEL, 31, DODRIO
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, GROWL
+ db 9, PURSUIT
+ db 13, FURY_ATTACK
+ db 21, TRI_ATTACK
+ db 25, RAGE
+ db 33, DRILL_PECK
+ db 37, AGILITY
+ db 0 ; no more level-up moves
+
+DodrioEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, GROWL
+ db 1, PURSUIT
+ db 1, FURY_ATTACK
+ db 9, PURSUIT
+ db 13, FURY_ATTACK
+ db 21, TRI_ATTACK
+ db 25, RAGE
+ db 38, DRILL_PECK
+ db 47, AGILITY
+ db 0 ; no more level-up moves
+
+SeelEvosAttacks:
+ db EVOLVE_LEVEL, 34, DEWGONG
+ db 0 ; no more evolutions
+ db 1, HEADBUTT
+ db 5, GROWL
+ db 16, AURORA_BEAM
+ db 21, REST
+ db 32, TAKE_DOWN
+ db 37, ICE_BEAM
+ db 48, SAFEGUARD
+ db 0 ; no more level-up moves
+
+DewgongEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HEADBUTT
+ db 1, GROWL
+ db 1, AURORA_BEAM
+ db 5, GROWL
+ db 16, AURORA_BEAM
+ db 21, REST
+ db 32, TAKE_DOWN
+ db 43, ICE_BEAM
+ db 60, SAFEGUARD
+ db 0 ; no more level-up moves
+
+GrimerEvosAttacks:
+ db EVOLVE_LEVEL, 38, MUK
+ db 0 ; no more evolutions
+ db 1, POISON_GAS
+ db 1, POUND
+ db 5, HARDEN
+ db 10, DISABLE
+ db 16, SLUDGE
+ db 23, MINIMIZE
+ db 31, SCREECH
+ db 40, ACID_ARMOR
+ db 50, SLUDGE_BOMB
+ db 0 ; no more level-up moves
+
+MukEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_GAS
+ db 1, POUND
+ db 1, HARDEN
+ db 33, HARDEN
+ db 37, DISABLE
+ db 45, SLUDGE
+ db 23, MINIMIZE
+ db 31, SCREECH
+ db 45, ACID_ARMOR
+ db 60, SLUDGE_BOMB
+ db 0 ; no more level-up moves
+
+ShellderEvosAttacks:
+ db EVOLVE_ITEM, WATER_STONE, CLOYSTER
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, WITHDRAW
+ db 9, SUPERSONIC
+ db 17, AURORA_BEAM
+ db 25, PROTECT
+ db 33, LEER
+ db 41, CLAMP
+ db 49, ICE_BEAM
+ db 0 ; no more level-up moves
+
+CloysterEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WITHDRAW
+ 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
+
+GastlyEvosAttacks:
+ db EVOLVE_LEVEL, 25, HAUNTER
+ db 0 ; no more evolutions
+ db 1, HYPNOSIS
+ db 1, LICK
+ db 8, SPITE
+ db 13, MEAN_LOOK
+ db 16, CURSE
+ db 21, NIGHT_SHADE
+ db 28, CONFUSE_RAY
+ db 33, DREAM_EATER
+ db 36, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+HaunterEvosAttacks:
+ db EVOLVE_TRADE, $ff, GENGAR
+ db 0 ; no more evolutions
+ db 1, HYPNOSIS
+ db 1, LICK
+ db 1, SPITE
+ db 8, SPITE
+ db 13, MEAN_LOOK
+ db 16, CURSE
+ db 21, NIGHT_SHADE
+ db 31, CONFUSE_RAY
+ db 39, DREAM_EATER
+ db 48, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+GengarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HYPNOSIS
+ db 1, LICK
+ db 1, SPITE
+ db 8, SPITE
+ db 13, MEAN_LOOK
+ db 16, CURSE
+ db 21, NIGHT_SHADE
+ db 31, CONFUSE_RAY
+ db 39, DREAM_EATER
+ db 48, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+OnixEvosAttacks:
+ db EVOLVE_TRADE, METAL_COAT, STEELIX
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCREECH
+ db 10, BIND
+ db 14, ROCK_THROW
+ db 23, HARDEN
+ db 27, RAGE
+ db 36, SANDSTORM
+ db 40, SLAM
+ db 0 ; no more level-up moves
+
+DrowzeeEvosAttacks:
+ db EVOLVE_LEVEL, 26, HYPNO
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, HYPNOSIS
+ db 10, DISABLE
+ db 18, CONFUSION
+ db 25, HEADBUTT
+ db 31, POISON_GAS
+ db 36, MEDITATE
+ db 40, PSYCHIC_M
+ db 43, PSYCH_UP
+ db 45, FUTURE_SIGHT
+ db 0 ; no more level-up moves
+
+HypnoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, HYPNOSIS
+ db 1, DISABLE
+ db 1, CONFUSION
+ db 10, DISABLE
+ db 18, CONFUSION
+ db 25, HEADBUTT
+ db 33, POISON_GAS
+ db 40, MEDITATE
+ db 49, PSYCHIC_M
+ db 55, PSYCH_UP
+ db 60, FUTURE_SIGHT
+ db 0 ; no more level-up moves
+
+KrabbyEvosAttacks:
+ db EVOLVE_LEVEL, 28, KINGLER
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 5, LEER
+ db 12, VICEGRIP
+ db 16, HARDEN
+ db 23, STOMP
+ db 27, GUILLOTINE
+ db 34, PROTECT
+ db 41, CRABHAMMER
+ db 0 ; no more level-up moves
+
+KinglerEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, LEER
+ db 1, VICEGRIP
+ db 5, LEER
+ db 12, VICEGRIP
+ db 16, HARDEN
+ db 23, STOMP
+ db 27, GUILLOTINE
+ db 38, PROTECT
+ db 49, CRABHAMMER
+ db 0 ; no more level-up moves
+
+VoltorbEvosAttacks:
+ db EVOLVE_LEVEL, 30, ELECTRODE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 9, SCREECH
+ db 17, SONICBOOM
+ db 23, SELFDESTRUCT
+ db 29, ROLLOUT
+ db 33, LIGHT_SCREEN
+ db 37, SWIFT
+ db 39, EXPLOSION
+ db 41, MIRROR_COAT
+ db 0 ; no more level-up moves
+
+ElectrodeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCREECH
+ db 1, SONICBOOM
+ db 1, SELFDESTRUCT
+ db 9, SCREECH
+ db 17, SONICBOOM
+ db 23, SELFDESTRUCT
+ db 29, ROLLOUT
+ db 34, LIGHT_SCREEN
+ db 40, SWIFT
+ db 44, EXPLOSION
+ db 48, MIRROR_COAT
+ db 0 ; no more level-up moves
+
+ExeggcuteEvosAttacks:
+ db EVOLVE_ITEM, LEAF_STONE, EXEGGUTOR
+ db 0 ; no more evolutions
+ db 1, BARRAGE
+ db 1, HYPNOSIS
+ db 7, REFLECT
+ db 13, LEECH_SEED
+ db 19, CONFUSION
+ db 25, STUN_SPORE
+ db 31, POISONPOWDER
+ db 37, SLEEP_POWDER
+ db 43, SOLARBEAM
+ db 0 ; no more level-up moves
+
+ExeggutorEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BARRAGE
+ db 1, HYPNOSIS
+ db 1, CONFUSION
+ db 19, STOMP
+ db 31, EGG_BOMB
+ db 0 ; no more level-up moves
+
+CuboneEvosAttacks:
+ db EVOLVE_LEVEL, 28, MAROWAK
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 5, TAIL_WHIP
+ db 9, BONE_CLUB
+ db 13, HEADBUTT
+ db 17, LEER
+ db 21, FOCUS_ENERGY
+ db 25, BONEMERANG
+ db 29, RAGE
+ db 33, FALSE_SWIPE
+ db 37, THRASH
+ db 41, BONE_RUSH
+ db 0 ; no more level-up moves
+
+MarowakEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, TAIL_WHIP
+ db 1, BONE_CLUB
+ db 1, HEADBUTT
+ db 5, TAIL_WHIP
+ db 9, BONE_CLUB
+ db 13, HEADBUTT
+ db 17, LEER
+ db 21, FOCUS_ENERGY
+ db 25, BONEMERANG
+ db 32, RAGE
+ db 39, FALSE_SWIPE
+ db 46, THRASH
+ db 53, BONE_RUSH
+ db 0 ; no more level-up moves
+
+HitmonleeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, DOUBLE_KICK
+ db 6, MEDITATE
+ db 11, ROLLING_KICK
+ db 16, JUMP_KICK
+ db 21, FOCUS_ENERGY
+ db 26, HI_JUMP_KICK
+ db 31, MIND_READER
+ db 36, FORESIGHT
+ db 41, ENDURE
+ db 46, MEGA_KICK
+ db 51, REVERSAL
+ db 0 ; no more level-up moves
+
+HitmonchanEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, COMET_PUNCH
+ db 7, AGILITY
+ db 13, PURSUIT
+ db 26, THUNDERPUNCH
+ db 26, ICE_PUNCH
+ db 26, FIRE_PUNCH
+ db 32, MACH_PUNCH
+ db 38, MEGA_PUNCH
+ db 44, DETECT
+ db 50, COUNTER
+ db 0 ; no more level-up moves
+
+LickitungEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LICK
+ db 7, SUPERSONIC
+ db 13, DEFENSE_CURL
+ db 19, STOMP
+ db 25, WRAP
+ db 31, DISABLE
+ db 37, SLAM
+ db 43, SCREECH
+ db 0 ; no more level-up moves
+
+KoffingEvosAttacks:
+ db EVOLVE_LEVEL, 35, WEEZING
+ db 0 ; no more evolutions
+ db 1, POISON_GAS
+ db 1, TACKLE
+ db 9, SMOG
+ db 17, SELFDESTRUCT
+ db 21, SLUDGE
+ db 25, SMOKESCREEN
+ db 33, HAZE
+ db 41, EXPLOSION
+ db 45, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+WeezingEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_GAS
+ db 1, TACKLE
+ db 1, SMOG
+ db 1, SELFDESTRUCT
+ db 9, SMOG
+ db 17, SELFDESTRUCT
+ db 21, SLUDGE
+ db 25, SMOKESCREEN
+ db 33, HAZE
+ db 44, EXPLOSION
+ db 51, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+RhyhornEvosAttacks:
+ db EVOLVE_LEVEL, 42, RHYDON
+ db 0 ; no more evolutions
+ db 1, HORN_ATTACK
+ db 1, TAIL_WHIP
+ db 13, STOMP
+ db 19, FURY_ATTACK
+ db 31, SCARY_FACE
+ db 37, HORN_DRILL
+ db 49, TAKE_DOWN
+ db 55, EARTHQUAKE
+ db 0 ; no more level-up moves
+
+RhydonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HORN_ATTACK
+ db 1, TAIL_WHIP
+ db 1, STOMP
+ db 1, FURY_ATTACK
+ db 13, STOMP
+ db 19, FURY_ATTACK
+ db 31, SCARY_FACE
+ db 37, HORN_DRILL
+ db 54, TAKE_DOWN
+ db 65, EARTHQUAKE
+ db 0 ; no more level-up moves
+
+ChanseyEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, BLISSEY
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 5, GROWL
+ db 9, TAIL_WHIP
+ db 13, SOFTBOILED
+ db 17, DOUBLESLAP
+ db 23, MINIMIZE
+ db 29, SING
+ db 35, EGG_BOMB
+ db 41, DEFENSE_CURL
+ db 49, LIGHT_SCREEN
+ db 57, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+TangelaEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONSTRICT
+ db 4, SLEEP_POWDER
+ db 10, ABSORB
+ db 13, POISONPOWDER
+ db 19, VINE_WHIP
+ db 25, BIND
+ db 31, MEGA_DRAIN
+ db 34, STUN_SPORE
+ db 40, SLAM
+ db 46, GROWTH
+ db 0 ; no more level-up moves
+
+KangaskhanEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, COMET_PUNCH
+ db 7, LEER
+ db 13, BITE
+ db 19, TAIL_WHIP
+ db 25, MEGA_PUNCH
+ db 31, RAGE
+ db 37, ENDURE
+ db 43, DIZZY_PUNCH
+ db 49, REVERSAL
+ db 0 ; no more level-up moves
+
+HorseaEvosAttacks:
+ db EVOLVE_LEVEL, 32, SEADRA
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 8, SMOKESCREEN
+ db 15, LEER
+ db 22, WATER_GUN
+ db 29, TWISTER
+ db 36, AGILITY
+ db 43, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+SeadraEvosAttacks:
+ db EVOLVE_TRADE, DRAGON_SCALE, KINGDRA
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, SMOKESCREEN
+ db 1, LEER
+ db 1, WATER_GUN
+ db 8, SMOKESCREEN
+ db 15, LEER
+ db 22, WATER_GUN
+ db 29, TWISTER
+ db 40, AGILITY
+ db 51, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+GoldeenEvosAttacks:
+ db EVOLVE_LEVEL, 33, SEAKING
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, TAIL_WHIP
+ db 10, SUPERSONIC
+ db 15, HORN_ATTACK
+ db 24, FLAIL
+ db 29, FURY_ATTACK
+ db 38, WATERFALL
+ db 43, HORN_DRILL
+ db 52, AGILITY
+ db 0 ; no more level-up moves
+
+SeakingEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, TAIL_WHIP
+ db 1, TAIL_WHIP
+ db 10, SUPERSONIC
+ db 15, HORN_ATTACK
+ db 24, FLAIL
+ db 29, FURY_ATTACK
+ db 41, WATERFALL
+ db 49, HORN_DRILL
+ db 61, AGILITY
+ db 0 ; no more level-up moves
+
+StaryuEvosAttacks:
+ db EVOLVE_ITEM, WATER_STONE, STARMIE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, HARDEN
+ db 7, WATER_GUN
+ db 13, RAPID_SPIN
+ db 19, RECOVER
+ db 25, SWIFT
+ db 31, BUBBLEBEAM
+ db 37, MINIMIZE
+ db 43, LIGHT_SCREEN
+ db 50, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+StarmieEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, RAPID_SPIN
+ db 1, RECOVER
+ db 1, BUBBLEBEAM
+ db 37, CONFUSE_RAY
+ db 0 ; no more level-up moves
+
+MrMimeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BARRIER
+ db 6, CONFUSION
+ db 11, SUBSTITUTE
+ db 16, MEDITATE
+ db 21, DOUBLESLAP
+ db 26, LIGHT_SCREEN
+ db 26, REFLECT
+ db 31, ENCORE
+ db 36, PSYBEAM
+ db 41, BATON_PASS
+ db 46, SAFEGUARD
+ db 0 ; no more level-up moves
+
+ScytherEvosAttacks:
+ db EVOLVE_TRADE, METAL_COAT, SCIZOR
+ db 0 ; no more evolutions
+ db 1, QUICK_ATTACK
+ db 1, LEER
+ db 6, FOCUS_ENERGY
+ db 12, PURSUIT
+ db 18, FALSE_SWIPE
+ db 24, AGILITY
+ db 30, WING_ATTACK
+ db 36, SLASH
+ db 42, SWORDS_DANCE
+ db 48, DOUBLE_TEAM
+ db 0 ; no more level-up moves
+
+JynxEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, LICK
+ db 1, LOVELY_KISS
+ db 1, POWDER_SNOW
+ db 9, LOVELY_KISS
+ db 13, POWDER_SNOW
+ db 21, DOUBLESLAP
+ db 25, ICE_PUNCH
+ db 35, MEAN_LOOK
+ db 41, BODY_SLAM
+ db 51, PERISH_SONG
+ db 57, BLIZZARD
+ db 0 ; no more level-up moves
+
+ElectabuzzEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, QUICK_ATTACK
+ db 1, LEER
+ db 1, THUNDERPUNCH
+ db 9, THUNDERPUNCH
+ db 17, LIGHT_SCREEN
+ db 25, SWIFT
+ db 36, SCREECH
+ db 47, THUNDERBOLT
+ db 58, THUNDER
+ db 0 ; no more level-up moves
+
+MagmarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, EMBER
+ db 1, LEER
+ db 1, SMOG
+ db 1, FIRE_PUNCH
+ db 7, LEER
+ db 13, SMOG
+ db 19, FIRE_PUNCH
+ db 25, SMOKESCREEN
+ db 33, SUNNY_DAY
+ db 41, FLAMETHROWER
+ db 49, CONFUSE_RAY
+ db 57, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+PinsirEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, VICEGRIP
+ db 7, FOCUS_ENERGY
+ db 13, BIND
+ db 19, SEISMIC_TOSS
+ db 25, HARDEN
+ db 31, GUILLOTINE
+ db 37, SUBMISSION
+ db 43, SWORDS_DANCE
+ db 0 ; no more level-up moves
+
+TaurosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, TAIL_WHIP
+ db 8, RAGE
+ db 13, HORN_ATTACK
+ db 19, SCARY_FACE
+ db 26, PURSUIT
+ db 34, REST
+ db 43, THRASH
+ db 53, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+MagikarpEvosAttacks:
+ db EVOLVE_LEVEL, 20, GYARADOS
+ db 0 ; no more evolutions
+ db 1, SPLASH
+ db 15, TACKLE
+ db 30, FLAIL
+ db 0 ; no more level-up moves
+
+GyaradosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, THRASH
+ db 20, BITE
+ db 25, DRAGON_RAGE
+ db 30, LEER
+ db 35, TWISTER
+ db 40, HYDRO_PUMP
+ db 45, RAIN_DANCE
+ db 50, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+LaprasEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, GROWL
+ db 1, SING
+ db 8, MIST
+ db 15, BODY_SLAM
+ db 22, CONFUSE_RAY
+ db 29, PERISH_SONG
+ db 36, ICE_BEAM
+ db 43, RAIN_DANCE
+ db 50, SAFEGUARD
+ db 57, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+DittoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TRANSFORM
+ db 0 ; no more level-up moves
+
+EeveeEvosAttacks:
+ db EVOLVE_ITEM, THUNDERSTONE, JOLTEON
+ db EVOLVE_ITEM, WATER_STONE, VAPOREON
+ db EVOLVE_ITEM, FIRE_STONE, FLAREON
+ db EVOLVE_HAPPINESS, TR_MORNDAY, ESPEON
+ db EVOLVE_HAPPINESS, TR_NITE, UMBREON
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ 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
+
+VaporeonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, WATER_GUN
+ db 23, QUICK_ATTACK
+ db 30, BITE
+ db 36, AURORA_BEAM
+ db 42, HAZE
+ db 47, ACID_ARMOR
+ db 52, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+JolteonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, THUNDERSHOCK
+ db 23, QUICK_ATTACK
+ db 30, DOUBLE_KICK
+ db 36, PIN_MISSILE
+ db 42, THUNDER_WAVE
+ db 47, AGILITY
+ db 52, THUNDER
+ db 0 ; no more level-up moves
+
+FlareonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, EMBER
+ db 23, QUICK_ATTACK
+ db 30, BITE
+ db 36, FIRE_SPIN
+ db 42, SMOG
+ db 47, LEER
+ db 52, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+PorygonEvosAttacks:
+ db EVOLVE_TRADE, UP_GRADE, PORYGON2
+ db 0 ; no more evolutions
+ db 1, CONVERSION2
+ db 1, TACKLE
+ db 1, CONVERSION
+ db 9, AGILITY
+ db 12, PSYBEAM
+ db 20, RECOVER
+ db 24, SHARPEN
+ db 32, LOCK_ON
+ db 36, TRI_ATTACK
+ db 44, ZAP_CANNON
+ db 0 ; no more level-up moves
+
+OmanyteEvosAttacks:
+ db EVOLVE_LEVEL, 40, OMASTAR
+ db 0 ; no more evolutions
+ db 1, CONSTRICT
+ db 1, WITHDRAW
+ db 13, BITE
+ db 19, WATER_GUN
+ db 31, LEER
+ db 37, PROTECT
+ db 49, ANCIENTPOWER
+ db 55, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+OmastarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONSTRICT
+ db 1, WITHDRAW
+ db 1, BITE
+ db 13, BITE
+ db 19, WATER_GUN
+ db 31, LEER
+ db 37, PROTECT
+ db 40, SPIKE_CANNON
+ db 54, ANCIENTPOWER
+ db 65, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+KabutoEvosAttacks:
+ db EVOLVE_LEVEL, 40, KABUTOPS
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, HARDEN
+ db 10, ABSORB
+ db 19, LEER
+ db 28, SAND_ATTACK
+ db 37, ENDURE
+ db 46, MEGA_DRAIN
+ db 55, ANCIENTPOWER
+ db 0 ; no more level-up moves
+
+KabutopsEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, HARDEN
+ db 1, ABSORB
+ db 10, ABSORB
+ db 19, LEER
+ db 28, SAND_ATTACK
+ db 37, ENDURE
+ db 40, SLASH
+ db 51, MEGA_DRAIN
+ db 65, ANCIENTPOWER
+ db 0 ; no more level-up moves
+
+AerodactylEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WING_ATTACK
+ db 8, AGILITY
+ db 15, BITE
+ db 22, SUPERSONIC
+ db 29, ANCIENTPOWER
+ db 36, SCARY_FACE
+ db 43, TAKE_DOWN
+ db 50, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+SnorlaxEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 8, AMNESIA
+ db 15, DEFENSE_CURL
+ db 22, BELLY_DRUM
+ db 29, HEADBUTT
+ db 36, SNORE
+ db 36, REST
+ db 43, BODY_SLAM
+ db 50, ROLLOUT
+ db 57, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+ArticunoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, GUST
+ db 1, POWDER_SNOW
+ db 13, MIST
+ db 25, AGILITY
+ db 37, MIND_READER
+ db 49, ICE_BEAM
+ db 61, REFLECT
+ db 73, BLIZZARD
+ db 0 ; no more level-up moves
+
+ZapdosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, THUNDERSHOCK
+ db 13, THUNDER_WAVE
+ db 25, AGILITY
+ db 37, DETECT
+ db 49, DRILL_PECK
+ db 61, LIGHT_SCREEN
+ db 73, THUNDER
+ db 0 ; no more level-up moves
+
+MoltresEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WING_ATTACK
+ db 1, EMBER
+ db 13, FIRE_SPIN
+ db 25, AGILITY
+ db 37, ENDURE
+ db 49, FLAMETHROWER
+ db 61, SAFEGUARD
+ db 73, SKY_ATTACK
+ db 0 ; no more level-up moves
+
+DratiniEvosAttacks:
+ db EVOLVE_LEVEL, 30, DRAGONAIR
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 8, THUNDER_WAVE
+ db 15, TWISTER
+ db 22, DRAGON_RAGE
+ db 29, SLAM
+ db 36, AGILITY
+ db 43, SAFEGUARD
+ db 50, OUTRAGE
+ db 57, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+DragonairEvosAttacks:
+ db EVOLVE_LEVEL, 55, DRAGONITE
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 1, THUNDER_WAVE
+ db 1, TWISTER
+ db 8, THUNDER_WAVE
+ db 15, TWISTER
+ db 22, DRAGON_RAGE
+ db 29, SLAM
+ db 38, AGILITY
+ db 47, SAFEGUARD
+ db 56, OUTRAGE
+ db 65, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+DragoniteEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 1, THUNDER_WAVE
+ db 1, TWISTER
+ db 8, THUNDER_WAVE
+ db 15, TWISTER
+ db 22, DRAGON_RAGE
+ db 29, SLAM
+ db 38, AGILITY
+ db 47, SAFEGUARD
+ db 55, WING_ATTACK
+ db 61, OUTRAGE
+ db 75, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+MewtwoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONFUSION
+ db 1, DISABLE
+ db 11, BARRIER
+ db 22, SWIFT
+ db 33, PSYCH_UP
+ db 44, FUTURE_SIGHT
+ db 55, MIST
+ db 66, PSYCHIC_M
+ db 77, AMNESIA
+ db 88, RECOVER
+ db 99, SAFEGUARD
+ db 0 ; no more level-up moves
+
+MewEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 10, TRANSFORM
+ db 20, MEGA_PUNCH
+ db 30, METRONOME
+ db 40, PSYCHIC_M
+ db 50, ANCIENTPOWER
+ db 0 ; no more level-up moves
+
+ChikoritaEvosAttacks:
+ db EVOLVE_LEVEL, 16, BAYLEEF
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 8, RAZOR_LEAF
+ db 12, REFLECT
+ db 15, POISONPOWDER
+ db 22, SYNTHESIS
+ db 29, BODY_SLAM
+ db 36, LIGHT_SCREEN
+ db 43, SAFEGUARD
+ db 50, SOLARBEAM
+ db 0 ; no more level-up moves
+
+BayleefEvosAttacks:
+ db EVOLVE_LEVEL, 32, MEGANIUM
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, RAZOR_LEAF
+ db 1, REFLECT
+ db 8, RAZOR_LEAF
+ db 12, REFLECT
+ db 15, POISONPOWDER
+ db 23, SYNTHESIS
+ db 31, BODY_SLAM
+ db 39, LIGHT_SCREEN
+ db 47, SAFEGUARD
+ db 55, SOLARBEAM
+ db 0 ; no more level-up moves
+
+MeganiumEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, RAZOR_LEAF
+ db 1, REFLECT
+ db 8, RAZOR_LEAF
+ db 12, REFLECT
+ db 15, POISONPOWDER
+ db 23, SYNTHESIS
+ db 31, BODY_SLAM
+ db 41, LIGHT_SCREEN
+ db 51, SAFEGUARD
+ db 61, SOLARBEAM
+ db 0 ; no more level-up moves
+
+CyndaquilEvosAttacks:
+ db EVOLVE_LEVEL, 14, QUILAVA
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, LEER
+ db 6, SMOKESCREEN
+ db 12, EMBER
+ db 19, QUICK_ATTACK
+ db 27, FLAME_WHEEL
+ db 36, SWIFT
+ db 46, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+QuilavaEvosAttacks:
+ db EVOLVE_LEVEL, 36, TYPHLOSION
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, LEER
+ db 1, SMOKESCREEN
+ db 6, SMOKESCREEN
+ db 12, EMBER
+ db 21, QUICK_ATTACK
+ db 31, FLAME_WHEEL
+ db 42, SWIFT
+ db 54, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+TyphlosionEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, LEER
+ db 1, SMOKESCREEN
+ db 1, EMBER
+ db 6, SMOKESCREEN
+ db 12, EMBER
+ db 21, QUICK_ATTACK
+ db 31, FLAME_WHEEL
+ db 45, SWIFT
+ db 60, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+TotodileEvosAttacks:
+ db EVOLVE_LEVEL, 18, CROCONAW
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 7, RAGE
+ db 13, WATER_GUN
+ db 20, BITE
+ db 27, SCARY_FACE
+ db 35, SLASH
+ db 43, SCREECH
+ db 52, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+CroconawEvosAttacks:
+ db EVOLVE_LEVEL, 30, FERALIGATR
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 1, RAGE
+ db 7, RAGE
+ db 13, WATER_GUN
+ db 21, BITE
+ db 28, SCARY_FACE
+ db 37, SLASH
+ db 45, SCREECH
+ db 55, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+FeraligatrEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 1, RAGE
+ db 1, WATER_GUN
+ db 7, RAGE
+ db 13, WATER_GUN
+ db 21, BITE
+ db 28, SCARY_FACE
+ db 38, SLASH
+ db 47, SCREECH
+ db 58, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+SentretEvosAttacks:
+ db EVOLVE_LEVEL, 15, FURRET
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 5, DEFENSE_CURL
+ db 11, QUICK_ATTACK
+ db 17, FURY_SWIPES
+ db 25, SLAM
+ db 33, REST
+ db 41, AMNESIA
+ db 0 ; no more level-up moves
+
+FurretEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, DEFENSE_CURL
+ db 1, QUICK_ATTACK
+ db 5, DEFENSE_CURL
+ db 11, QUICK_ATTACK
+ db 18, FURY_SWIPES
+ db 28, SLAM
+ db 38, REST
+ db 48, AMNESIA
+ db 0 ; no more level-up moves
+
+HoothootEvosAttacks:
+ db EVOLVE_LEVEL, 20, NOCTOWL
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 6, FORESIGHT
+ db 11, PECK
+ db 16, HYPNOSIS
+ db 22, REFLECT
+ db 28, TAKE_DOWN
+ db 34, CONFUSION
+ db 48, DREAM_EATER
+ db 0 ; no more level-up moves
+
+NoctowlEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, FORESIGHT
+ db 1, PECK
+ db 6, FORESIGHT
+ db 11, PECK
+ db 16, HYPNOSIS
+ db 25, REFLECT
+ db 33, TAKE_DOWN
+ db 41, CONFUSION
+ db 57, DREAM_EATER
+ db 0 ; no more level-up moves
+
+LedybaEvosAttacks:
+ db EVOLVE_LEVEL, 18, LEDIAN
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 8, SUPERSONIC
+ db 15, COMET_PUNCH
+ db 22, LIGHT_SCREEN
+ db 22, REFLECT
+ db 22, SAFEGUARD
+ db 29, BATON_PASS
+ db 36, SWIFT
+ db 43, AGILITY
+ db 50, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+LedianEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SUPERSONIC
+ db 8, SUPERSONIC
+ db 15, COMET_PUNCH
+ db 24, LIGHT_SCREEN
+ db 24, REFLECT
+ db 24, SAFEGUARD
+ db 33, BATON_PASS
+ db 42, SWIFT
+ db 51, AGILITY
+ db 60, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+SpinarakEvosAttacks:
+ db EVOLVE_LEVEL, 22, ARIADOS
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 1, STRING_SHOT
+ db 6, SCARY_FACE
+ db 11, CONSTRICT
+ db 17, NIGHT_SHADE
+ 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
+
+AriadosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 1, STRING_SHOT
+ db 1, SCARY_FACE
+ db 1, CONSTRICT
+ db 6, SCARY_FACE
+ db 11, CONSTRICT
+ db 17, NIGHT_SHADE
+ 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
+
+CrobatEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCREECH
+ db 1, LEECH_LIFE
+ db 1, SUPERSONIC
+ db 6, SUPERSONIC
+ db 12, BITE
+ db 19, CONFUSE_RAY
+ db 30, WING_ATTACK
+ db 42, MEAN_LOOK
+ db 55, HAZE
+ db 0 ; no more level-up moves
+
+ChinchouEvosAttacks:
+ db EVOLVE_LEVEL, 27, LANTURN
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, THUNDER_WAVE
+ db 5, SUPERSONIC
+ db 13, FLAIL
+ db 17, WATER_GUN
+ db 25, SPARK
+ db 29, CONFUSE_RAY
+ db 37, TAKE_DOWN
+ db 41, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+LanturnEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, THUNDER_WAVE
+ db 1, SUPERSONIC
+ db 5, SUPERSONIC
+ db 13, FLAIL
+ db 17, WATER_GUN
+ db 25, SPARK
+ db 33, CONFUSE_RAY
+ db 45, TAKE_DOWN
+ db 53, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+PichuEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, PIKACHU
+ db 0 ; no more evolutions
+ db 1, THUNDERSHOCK
+ db 1, CHARM
+ db 6, TAIL_WHIP
+ db 8, THUNDER_WAVE
+ db 11, SWEET_KISS
+ db 0 ; no more level-up moves
+
+CleffaEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, CLEFAIRY
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, CHARM
+ db 4, ENCORE
+ db 8, SING
+ db 13, SWEET_KISS
+ db 0 ; no more level-up moves
+
+IgglybuffEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, JIGGLYPUFF
+ db 0 ; no more evolutions
+ db 1, SING
+ db 1, CHARM
+ db 4, DEFENSE_CURL
+ db 9, POUND
+ db 14, SWEET_KISS
+ db 0 ; no more level-up moves
+
+TogepiEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, TOGETIC
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, CHARM
+ db 7, METRONOME
+ db 18, SWEET_KISS
+ db 25, ENCORE
+ db 31, SAFEGUARD
+ db 38, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+TogeticEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, CHARM
+ db 7, METRONOME
+ db 18, SWEET_KISS
+ db 25, ENCORE
+ db 31, SAFEGUARD
+ db 38, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+NatuEvosAttacks:
+ db EVOLVE_LEVEL, 25, XATU
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, LEER
+ db 10, NIGHT_SHADE
+ db 20, TELEPORT
+ db 30, FUTURE_SIGHT
+ db 40, CONFUSE_RAY
+ db 50, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+XatuEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, LEER
+ db 1, NIGHT_SHADE
+ db 10, NIGHT_SHADE
+ db 20, TELEPORT
+ db 35, FUTURE_SIGHT
+ db 50, CONFUSE_RAY
+ db 65, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+MareepEvosAttacks:
+ db EVOLVE_LEVEL, 15, FLAAFFY
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 9, THUNDERSHOCK
+ db 16, THUNDER_WAVE
+ db 23, COTTON_SPORE
+ db 30, LIGHT_SCREEN
+ db 37, THUNDER
+ db 0 ; no more level-up moves
+
+FlaaffyEvosAttacks:
+ db EVOLVE_LEVEL, 30, AMPHAROS
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, THUNDERSHOCK
+ db 9, THUNDERSHOCK
+ db 18, THUNDER_WAVE
+ db 27, COTTON_SPORE
+ db 36, LIGHT_SCREEN
+ db 45, THUNDER
+ db 0 ; no more level-up moves
+
+AmpharosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, THUNDERSHOCK
+ db 1, THUNDER_WAVE
+ db 9, THUNDERSHOCK
+ db 18, THUNDER_WAVE
+ db 27, COTTON_SPORE
+ db 30, THUNDERPUNCH
+ db 42, LIGHT_SCREEN
+ db 57, THUNDER
+ db 0 ; no more level-up moves
+
+BellossomEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 1, SWEET_SCENT
+ db 1, STUN_SPORE
+ db 1, PETAL_DANCE
+ db 55, SOLARBEAM
+ db 0 ; no more level-up moves
+
+MarillEvosAttacks:
+ db EVOLVE_LEVEL, 18, AZUMARILL
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 3, DEFENSE_CURL
+ db 6, TAIL_WHIP
+ db 10, WATER_GUN
+ db 15, ROLLOUT
+ db 21, BUBBLEBEAM
+ db 28, DOUBLE_EDGE
+ db 36, RAIN_DANCE
+ db 0 ; no more level-up moves
+
+AzumarillEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DEFENSE_CURL
+ db 1, TAIL_WHIP
+ db 1, WATER_GUN
+ db 3, DEFENSE_CURL
+ db 6, TAIL_WHIP
+ db 10, WATER_GUN
+ db 15, ROLLOUT
+ db 25, BUBBLEBEAM
+ db 36, DOUBLE_EDGE
+ db 48, RAIN_DANCE
+ db 0 ; no more level-up moves
+
+SudowoodoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ROCK_THROW
+ db 1, MIMIC
+ db 10, FLAIL
+ db 19, LOW_KICK
+ db 28, ROCK_SLIDE
+ db 37, FAINT_ATTACK
+ db 46, SLAM
+ db 0 ; no more level-up moves
+
+PolitoedEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, HYPNOSIS
+ db 1, DOUBLESLAP
+ db 1, PERISH_SONG
+ db 35, PERISH_SONG
+ db 51, SWAGGER
+ db 0 ; no more level-up moves
+
+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
+ db 15, STUN_SPORE
+ db 17, SLEEP_POWDER
+ db 20, LEECH_SEED
+ db 25, COTTON_SPORE
+ db 30, MEGA_DRAIN
+ db 0 ; no more level-up moves
+
+SkiploomEvosAttacks:
+ db EVOLVE_LEVEL, 27, JUMPLUFF
+ db 0 ; no more evolutions
+ db 1, SPLASH
+ 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
+ db 15, STUN_SPORE
+ db 17, SLEEP_POWDER
+ db 22, LEECH_SEED
+ db 29, COTTON_SPORE
+ db 36, MEGA_DRAIN
+ db 0 ; no more level-up moves
+
+JumpluffEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SPLASH
+ 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
+ db 15, STUN_SPORE
+ db 17, SLEEP_POWDER
+ db 22, LEECH_SEED
+ db 33, COTTON_SPORE
+ db 44, MEGA_DRAIN
+ db 0 ; no more level-up moves
+
+AipomEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, TAIL_WHIP
+ db 6, SAND_ATTACK
+ db 12, BATON_PASS
+ db 19, FURY_SWIPES
+ db 27, SWIFT
+ db 36, SCREECH
+ db 46, AGILITY
+ db 0 ; no more level-up moves
+
+SunkernEvosAttacks:
+ db EVOLVE_ITEM, SUN_STONE, SUNFLORA
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 4, GROWTH
+ db 10, MEGA_DRAIN
+ db 19, SUNNY_DAY
+ db 31, SYNTHESIS
+ db 46, GIGA_DRAIN
+ db 0 ; no more level-up moves
+
+SunfloraEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 1, POUND
+ db 4, GROWTH
+ db 10, RAZOR_LEAF
+ db 19, SUNNY_DAY
+ db 31, PETAL_DANCE
+ db 46, SOLARBEAM
+ db 0 ; no more level-up moves
+
+YanmaEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, FORESIGHT
+ db 7, QUICK_ATTACK
+ db 13, DOUBLE_TEAM
+ 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
+
+WooperEvosAttacks:
+ db EVOLVE_LEVEL, 20, QUAGSIRE
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, TAIL_WHIP
+ db 11, SLAM
+ db 21, AMNESIA
+ db 31, EARTHQUAKE
+ db 41, RAIN_DANCE
+ db 51, MIST
+ db 51, HAZE
+ db 0 ; no more level-up moves
+
+QuagsireEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, TAIL_WHIP
+ db 11, SLAM
+ db 23, AMNESIA
+ db 35, EARTHQUAKE
+ db 47, RAIN_DANCE
+ db 59, MIST
+ db 59, HAZE
+ db 0 ; no more level-up moves
+
+EspeonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, CONFUSION
+ db 23, QUICK_ATTACK
+ db 30, SWIFT
+ db 36, PSYBEAM
+ db 42, PSYCH_UP
+ db 47, PSYCHIC_M
+ db 52, MORNING_SUN
+ db 0 ; no more level-up moves
+
+UmbreonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, PURSUIT
+ db 23, QUICK_ATTACK
+ db 30, CONFUSE_RAY
+ db 36, FAINT_ATTACK
+ db 42, MEAN_LOOK
+ db 47, SCREECH
+ db 52, MOONLIGHT
+ db 0 ; no more level-up moves
+
+MurkrowEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 11, PURSUIT
+ db 16, HAZE
+ db 26, NIGHT_SHADE
+ db 31, FAINT_ATTACK
+ db 41, MEAN_LOOK
+ db 0 ; no more level-up moves
+
+SlowkingEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CURSE
+ db 1, TACKLE
+ db 6, GROWL
+ db 15, WATER_GUN
+ db 20, CONFUSION
+ db 29, DISABLE
+ db 34, HEADBUTT
+ db 43, SWAGGER
+ db 48, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+MisdreavusEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, PSYWAVE
+ db 6, SPITE
+ db 12, CONFUSE_RAY
+ db 19, MEAN_LOOK
+ db 27, PSYBEAM
+ db 36, PAIN_SPLIT
+ db 46, PERISH_SONG
+ db 0 ; no more level-up moves
+
+UnownEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HIDDEN_POWER
+ db 0 ; no more level-up moves
+
+WobbuffetEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, COUNTER
+ db 1, MIRROR_COAT
+ db 1, SAFEGUARD
+ db 1, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+GirafarigEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, CONFUSION
+ db 1, STOMP
+ db 7, CONFUSION
+ db 13, STOMP
+ db 20, AGILITY
+ db 30, BATON_PASS
+ db 41, PSYBEAM
+ db 54, CRUNCH
+ db 0 ; no more level-up moves
+
+PinecoEvosAttacks:
+ db EVOLVE_LEVEL, 31, FORRETRESS
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, PROTECT
+ db 8, SELFDESTRUCT
+ db 15, TAKE_DOWN
+ db 22, RAPID_SPIN
+ db 29, BIDE
+ db 36, EXPLOSION
+ db 43, SPIKES
+ db 50, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+ForretressEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, PROTECT
+ db 1, SELFDESTRUCT
+ db 8, SELFDESTRUCT
+ db 15, TAKE_DOWN
+ db 22, RAPID_SPIN
+ db 29, BIDE
+ db 39, EXPLOSION
+ db 49, SPIKES
+ db 59, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+DunsparceEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, RAGE
+ db 5, DEFENSE_CURL
+ db 13, GLARE
+ db 18, SPITE
+ db 26, PURSUIT
+ db 30, SCREECH
+ db 38, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+GligarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 6, SAND_ATTACK
+ db 13, HARDEN
+ db 20, QUICK_ATTACK
+ db 28, FAINT_ATTACK
+ db 36, SLASH
+ db 44, SCREECH
+ db 52, GUILLOTINE
+ db 0 ; no more level-up moves
+
+SteelixEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCREECH
+ db 10, BIND
+ db 14, ROCK_THROW
+ db 23, HARDEN
+ db 27, RAGE
+ db 36, SANDSTORM
+ db 40, SLAM
+ db 49, CRUNCH
+ db 0 ; no more level-up moves
+
+SnubbullEvosAttacks:
+ db EVOLVE_LEVEL, 23, GRANBULL
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCARY_FACE
+ db 4, TAIL_WHIP
+ db 8, CHARM
+ db 13, BITE
+ db 19, LICK
+ db 26, ROAR
+ db 34, RAGE
+ db 43, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+GranbullEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCARY_FACE
+ db 4, TAIL_WHIP
+ db 8, CHARM
+ db 13, BITE
+ db 19, LICK
+ db 28, ROAR
+ db 38, RAGE
+ db 51, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+QwilfishEvosAttacks:
+ db 0 ; no more evolutions
+if _CRYSTAL
+ db 1, SPIKES
+endc
+ db 1, TACKLE
+ db 1, POISON_STING
+ db 10, HARDEN
+ db 10, MINIMIZE
+ db 19, WATER_GUN
+ db 28, PIN_MISSILE
+ db 37, TAKE_DOWN
+ db 46, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+ScizorEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, QUICK_ATTACK
+ db 1, LEER
+ db 6, FOCUS_ENERGY
+ db 12, PURSUIT
+ db 18, FALSE_SWIPE
+ db 24, AGILITY
+ db 30, METAL_CLAW
+ db 36, SLASH
+ db 42, SWORDS_DANCE
+ db 48, DOUBLE_TEAM
+ db 0 ; no more level-up moves
+
+ShuckleEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONSTRICT
+ db 1, WITHDRAW
+ db 9, WRAP
+ db 14, ENCORE
+ db 23, SAFEGUARD
+ db 28, BIDE
+ db 37, REST
+ db 0 ; no more level-up moves
+
+HeracrossEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, LEER
+ db 6, HORN_ATTACK
+ db 12, ENDURE
+ db 19, FURY_ATTACK
+ db 27, COUNTER
+ db 35, TAKE_DOWN
+ db 44, REVERSAL
+ db 54, MEGAHORN
+ db 0 ; no more level-up moves
+
+SneaselEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 9, QUICK_ATTACK
+ db 17, SCREECH
+ db 25, FAINT_ATTACK
+ db 33, FURY_SWIPES
+ 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:
+ db EVOLVE_LEVEL, 30, URSARING
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 8, LICK
+ db 15, FURY_SWIPES
+ db 22, FAINT_ATTACK
+ db 29, REST
+ db 36, SLASH
+ db 43, SNORE
+ db 50, THRASH
+ db 0 ; no more level-up moves
+
+UrsaringEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 1, LICK
+ db 1, FURY_SWIPES
+ db 8, LICK
+ db 15, FURY_SWIPES
+ db 22, FAINT_ATTACK
+ db 29, REST
+ db 39, SLASH
+ db 49, SNORE
+ db 59, THRASH
+ db 0 ; no more level-up moves
+
+SlugmaEvosAttacks:
+ db EVOLVE_LEVEL, 38, MAGCARGO
+ db 0 ; no more evolutions
+ db 1, SMOG
+ db 8, EMBER
+ db 15, ROCK_THROW
+ db 22, HARDEN
+ db 29, AMNESIA
+ db 36, FLAMETHROWER
+ db 43, ROCK_SLIDE
+ db 50, BODY_SLAM
+ db 0 ; no more level-up moves
+
+MagcargoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SMOG
+ db 1, EMBER
+ db 1, ROCK_THROW
+ db 8, EMBER
+ db 15, ROCK_THROW
+ db 22, HARDEN
+ db 29, AMNESIA
+ db 36, FLAMETHROWER
+ db 48, ROCK_SLIDE
+ db 60, BODY_SLAM
+ db 0 ; no more level-up moves
+
+SwinubEvosAttacks:
+ db EVOLVE_LEVEL, 33, PILOSWINE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 10, POWDER_SNOW
+ db 19, ENDURE
+ db 28, TAKE_DOWN
+ db 37, MIST
+ db 46, BLIZZARD
+if _CRYSTAL
+ db 55, AMNESIA
+endc
+ db 0 ; no more level-up moves
+
+PiloswineEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HORN_ATTACK
+ db 1, POWDER_SNOW
+ db 1, ENDURE
+ db 10, POWDER_SNOW
+ db 19, ENDURE
+ db 28, TAKE_DOWN
+ db 33, FURY_ATTACK
+ db 42, MIST
+ db 56, BLIZZARD
+if _CRYSTAL
+ db 70, AMNESIA
+endc
+ db 0 ; no more level-up moves
+
+CorsolaEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 7, HARDEN
+ db 13, BUBBLE
+ db 19, RECOVER
+ db 25, BUBBLEBEAM
+ db 31, SPIKE_CANNON
+ db 37, MIRROR_COAT
+ db 43, ANCIENTPOWER
+ db 0 ; no more level-up moves
+
+RemoraidEvosAttacks:
+ db EVOLVE_LEVEL, 25, OCTILLERY
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 11, LOCK_ON
+ db 22, PSYBEAM
+ db 22, AURORA_BEAM
+ db 22, BUBBLEBEAM
+ db 33, FOCUS_ENERGY
+ db 44, ICE_BEAM
+ db 55, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+OctilleryEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 11, CONSTRICT
+ db 22, PSYBEAM
+ db 22, AURORA_BEAM
+ db 22, BUBBLEBEAM
+ db 25, OCTAZOOKA
+ db 38, FOCUS_ENERGY
+ db 54, ICE_BEAM
+ db 70, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+DelibirdEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PRESENT
+ db 0 ; no more level-up moves
+
+MantineEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, BUBBLE
+ db 10, SUPERSONIC
+ db 18, BUBBLEBEAM
+ db 25, TAKE_DOWN
+ db 32, AGILITY
+ db 40, WING_ATTACK
+ db 49, CONFUSE_RAY
+ db 0 ; no more level-up moves
+
+SkarmoryEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, PECK
+ db 13, SAND_ATTACK
+ db 19, SWIFT
+ db 25, AGILITY
+ db 37, FURY_ATTACK
+ db 49, STEEL_WING
+ db 0 ; no more level-up moves
+
+HoundourEvosAttacks:
+ db EVOLVE_LEVEL, 24, HOUNDOOM
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, EMBER
+ db 7, ROAR
+ db 13, SMOG
+ db 20, BITE
+ db 27, FAINT_ATTACK
+ db 35, FLAMETHROWER
+ db 43, CRUNCH
+ db 0 ; no more level-up moves
+
+HoundoomEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, EMBER
+ db 7, ROAR
+ db 13, SMOG
+ db 20, BITE
+ db 30, FAINT_ATTACK
+ db 41, FLAMETHROWER
+ db 52, CRUNCH
+ db 0 ; no more level-up moves
+
+KingdraEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, SMOKESCREEN
+ db 1, LEER
+ db 1, WATER_GUN
+ db 8, SMOKESCREEN
+ db 15, LEER
+ db 22, WATER_GUN
+ db 29, TWISTER
+ db 40, AGILITY
+ db 51, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+PhanpyEvosAttacks:
+ db EVOLVE_LEVEL, 25, DONPHAN
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 9, DEFENSE_CURL
+ db 17, FLAIL
+ db 25, TAKE_DOWN
+ db 33, ROLLOUT
+ db 41, ENDURE
+ db 49, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+DonphanEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HORN_ATTACK
+ db 1, GROWL
+ db 9, DEFENSE_CURL
+ db 17, FLAIL
+ db 25, FURY_ATTACK
+ db 33, ROLLOUT
+ db 41, RAPID_SPIN
+ db 49, EARTHQUAKE
+ db 0 ; no more level-up moves
+
+Porygon2EvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONVERSION2
+ db 1, TACKLE
+ db 1, CONVERSION
+ db 9, AGILITY
+ db 12, PSYBEAM
+ db 20, RECOVER
+ db 24, DEFENSE_CURL
+ db 32, LOCK_ON
+ db 36, TRI_ATTACK
+ db 44, ZAP_CANNON
+ db 0 ; no more level-up moves
+
+StantlerEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 8, LEER
+ db 15, HYPNOSIS
+ db 23, STOMP
+ db 31, SAND_ATTACK
+ db 40, TAKE_DOWN
+ db 49, CONFUSE_RAY
+ db 0 ; no more level-up moves
+
+SmeargleEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SKETCH
+ db 11, SKETCH
+ db 21, SKETCH
+ db 31, SKETCH
+ db 41, SKETCH
+ db 51, SKETCH
+ db 61, SKETCH
+ db 71, SKETCH
+ db 81, SKETCH
+ db 91, SKETCH
+ db 0 ; no more level-up moves
+
+TyrogueEvosAttacks:
+ db EVOLVE_STAT, 20, ATK_LT_DEF, HITMONCHAN
+ db EVOLVE_STAT, 20, ATK_GT_DEF, HITMONLEE
+ db EVOLVE_STAT, 20, ATK_EQ_DEF, HITMONTOP
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 0 ; no more level-up moves
+
+HitmontopEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ROLLING_KICK
+ db 7, FOCUS_ENERGY
+ db 13, PURSUIT
+ db 19, QUICK_ATTACK
+ db 25, RAPID_SPIN
+ db 31, COUNTER
+ db 37, AGILITY
+ db 43, DETECT
+ db 49, TRIPLE_KICK
+ db 0 ; no more level-up moves
+
+SmoochumEvosAttacks:
+ db EVOLVE_LEVEL, 30, JYNX
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, LICK
+ db 9, SWEET_KISS
+ db 13, POWDER_SNOW
+ db 21, CONFUSION
+ db 25, SING
+ db 33, MEAN_LOOK
+ db 37, PSYCHIC_M
+ db 45, PERISH_SONG
+ db 49, BLIZZARD
+ db 0 ; no more level-up moves
+
+ElekidEvosAttacks:
+ db EVOLVE_LEVEL, 30, ELECTABUZZ
+ db 0 ; no more evolutions
+ db 1, QUICK_ATTACK
+ db 1, LEER
+ db 9, THUNDERPUNCH
+ db 17, LIGHT_SCREEN
+ db 25, SWIFT
+ db 33, SCREECH
+ db 41, THUNDERBOLT
+ db 49, THUNDER
+ db 0 ; no more level-up moves
+
+MagbyEvosAttacks:
+ db EVOLVE_LEVEL, 30, MAGMAR
+ db 0 ; no more evolutions
+ db 1, EMBER
+ db 7, LEER
+ db 13, SMOG
+ db 19, FIRE_PUNCH
+ db 25, SMOKESCREEN
+ db 31, SUNNY_DAY
+ db 37, FLAMETHROWER
+ db 43, CONFUSE_RAY
+ db 49, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+MiltankEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, GROWL
+ db 8, DEFENSE_CURL
+ db 13, STOMP
+ db 19, MILK_DRINK
+ db 26, BIDE
+ db 34, ROLLOUT
+ db 43, BODY_SLAM
+ db 53, HEAL_BELL
+ db 0 ; no more level-up moves
+
+BlisseyEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 4, GROWL
+ db 7, TAIL_WHIP
+ db 10, SOFTBOILED
+ db 13, DOUBLESLAP
+ db 18, MINIMIZE
+ db 23, SING
+ db 28, EGG_BOMB
+ db 33, DEFENSE_CURL
+ db 40, LIGHT_SCREEN
+ db 47, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+RaikouEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 11, THUNDERSHOCK
+ db 21, ROAR
+ db 31, QUICK_ATTACK
+ db 41, SPARK
+ db 51, REFLECT
+ db 61, CRUNCH
+ db 71, THUNDER
+ db 0 ; no more level-up moves
+
+EnteiEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 11, EMBER
+ db 21, ROAR
+ db 31, FIRE_SPIN
+ db 41, STOMP
+ db 51, FLAMETHROWER
+ db 61, SWAGGER
+ db 71, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+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
+ db 0 ; no more level-up moves
+
+LarvitarEvosAttacks:
+ db EVOLVE_LEVEL, 30, PUPITAR
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 8, SANDSTORM
+ db 15, SCREECH
+ db 22, ROCK_SLIDE
+ db 29, THRASH
+ db 36, SCARY_FACE
+ db 43, CRUNCH
+ db 50, EARTHQUAKE
+ db 57, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+PupitarEvosAttacks:
+ db EVOLVE_LEVEL, 55, TYRANITAR
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 1, SANDSTORM
+ db 1, SCREECH
+ db 8, SANDSTORM
+ db 15, SCREECH
+ db 22, ROCK_SLIDE
+ db 29, THRASH
+ db 38, SCARY_FACE
+ db 47, CRUNCH
+ db 56, EARTHQUAKE
+ db 65, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+TyranitarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 1, SANDSTORM
+ db 1, SCREECH
+ db 8, SANDSTORM
+ db 15, SCREECH
+ db 22, ROCK_SLIDE
+ db 29, THRASH
+ db 38, SCARY_FACE
+ db 47, CRUNCH
+ db 61, EARTHQUAKE
+ db 75, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+LugiaEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, AEROBLAST
+ db 11, SAFEGUARD
+ db 22, GUST
+ db 33, RECOVER
+ db 44, HYDRO_PUMP
+ db 55, RAIN_DANCE
+ db 66, SWIFT
+ db 77, WHIRLWIND
+ db 88, ANCIENTPOWER
+ db 99, FUTURE_SIGHT
+ db 0 ; no more level-up moves
+
+HoOhEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SACRED_FIRE
+ db 11, SAFEGUARD
+ db 22, GUST
+ db 33, RECOVER
+ db 44, FIRE_BLAST
+ db 55, SUNNY_DAY
+ db 66, SWIFT
+ db 77, WHIRLWIND
+ db 88, ANCIENTPOWER
+ db 99, FUTURE_SIGHT
+ db 0 ; no more level-up moves
+
+CelebiEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LEECH_SEED
+ db 1, CONFUSION
+ db 1, RECOVER
+ db 1, HEAL_BELL
+ db 10, SAFEGUARD
+ db 20, ANCIENTPOWER
+ db 30, FUTURE_SIGHT
+ db 40, BATON_PASS
+ db 50, PERISH_SONG
+ db 0 ; no more level-up moves
--- /dev/null
+++ b/data/pokemon/evos_attacks_pointers.asm
@@ -1,0 +1,255 @@
+; Evolutions and attacks are grouped together since they're both checked at level-up.
+
+EvosAttacksPointers:: ; 0x425b1
+ dw BulbasaurEvosAttacks
+ dw IvysaurEvosAttacks
+ dw VenusaurEvosAttacks
+ dw CharmanderEvosAttacks
+ dw CharmeleonEvosAttacks
+ dw CharizardEvosAttacks
+ dw SquirtleEvosAttacks
+ dw WartortleEvosAttacks
+ dw BlastoiseEvosAttacks
+ dw CaterpieEvosAttacks
+ dw MetapodEvosAttacks
+ dw ButterfreeEvosAttacks
+ dw WeedleEvosAttacks
+ dw KakunaEvosAttacks
+ dw BeedrillEvosAttacks
+ dw PidgeyEvosAttacks
+ dw PidgeottoEvosAttacks
+ dw PidgeotEvosAttacks
+ dw RattataEvosAttacks
+ dw RaticateEvosAttacks
+ dw SpearowEvosAttacks
+ dw FearowEvosAttacks
+ dw EkansEvosAttacks
+ dw ArbokEvosAttacks
+ dw PikachuEvosAttacks
+ dw RaichuEvosAttacks
+ dw SandshrewEvosAttacks
+ dw SandslashEvosAttacks
+ dw NidoranFEvosAttacks
+ dw NidorinaEvosAttacks
+ dw NidoqueenEvosAttacks
+ dw NidoranMEvosAttacks
+ dw NidorinoEvosAttacks
+ dw NidokingEvosAttacks
+ dw ClefairyEvosAttacks
+ dw ClefableEvosAttacks
+ dw VulpixEvosAttacks
+ dw NinetalesEvosAttacks
+ dw JigglypuffEvosAttacks
+ dw WigglytuffEvosAttacks
+ dw ZubatEvosAttacks
+ dw GolbatEvosAttacks
+ dw OddishEvosAttacks
+ dw GloomEvosAttacks
+ dw VileplumeEvosAttacks
+ dw ParasEvosAttacks
+ dw ParasectEvosAttacks
+ dw VenonatEvosAttacks
+ dw VenomothEvosAttacks
+ dw DiglettEvosAttacks
+ dw DugtrioEvosAttacks
+ dw MeowthEvosAttacks
+ dw PersianEvosAttacks
+ dw PsyduckEvosAttacks
+ dw GolduckEvosAttacks
+ dw MankeyEvosAttacks
+ dw PrimeapeEvosAttacks
+ dw GrowlitheEvosAttacks
+ dw ArcanineEvosAttacks
+ dw PoliwagEvosAttacks
+ dw PoliwhirlEvosAttacks
+ dw PoliwrathEvosAttacks
+ dw AbraEvosAttacks
+ dw KadabraEvosAttacks
+ dw AlakazamEvosAttacks
+ dw MachopEvosAttacks
+ dw MachokeEvosAttacks
+ dw MachampEvosAttacks
+ dw BellsproutEvosAttacks
+ dw WeepinbellEvosAttacks
+ dw VictreebelEvosAttacks
+ dw TentacoolEvosAttacks
+ dw TentacruelEvosAttacks
+ dw GeodudeEvosAttacks
+ dw GravelerEvosAttacks
+ dw GolemEvosAttacks
+ dw PonytaEvosAttacks
+ dw RapidashEvosAttacks
+ dw SlowpokeEvosAttacks
+ dw SlowbroEvosAttacks
+ dw MagnemiteEvosAttacks
+ dw MagnetonEvosAttacks
+ dw FarfetchDEvosAttacks
+ dw DoduoEvosAttacks
+ dw DodrioEvosAttacks
+ dw SeelEvosAttacks
+ dw DewgongEvosAttacks
+ dw GrimerEvosAttacks
+ dw MukEvosAttacks
+ dw ShellderEvosAttacks
+ dw CloysterEvosAttacks
+ dw GastlyEvosAttacks
+ dw HaunterEvosAttacks
+ dw GengarEvosAttacks
+ dw OnixEvosAttacks
+ dw DrowzeeEvosAttacks
+ dw HypnoEvosAttacks
+ dw KrabbyEvosAttacks
+ dw KinglerEvosAttacks
+ dw VoltorbEvosAttacks
+ dw ElectrodeEvosAttacks
+ dw ExeggcuteEvosAttacks
+ dw ExeggutorEvosAttacks
+ dw CuboneEvosAttacks
+ dw MarowakEvosAttacks
+ dw HitmonleeEvosAttacks
+ dw HitmonchanEvosAttacks
+ dw LickitungEvosAttacks
+ dw KoffingEvosAttacks
+ dw WeezingEvosAttacks
+ dw RhyhornEvosAttacks
+ dw RhydonEvosAttacks
+ dw ChanseyEvosAttacks
+ dw TangelaEvosAttacks
+ dw KangaskhanEvosAttacks
+ dw HorseaEvosAttacks
+ dw SeadraEvosAttacks
+ dw GoldeenEvosAttacks
+ dw SeakingEvosAttacks
+ dw StaryuEvosAttacks
+ dw StarmieEvosAttacks
+ dw MrMimeEvosAttacks
+ dw ScytherEvosAttacks
+ dw JynxEvosAttacks
+ dw ElectabuzzEvosAttacks
+ dw MagmarEvosAttacks
+ dw PinsirEvosAttacks
+ dw TaurosEvosAttacks
+ dw MagikarpEvosAttacks
+ dw GyaradosEvosAttacks
+ dw LaprasEvosAttacks
+ dw DittoEvosAttacks
+ dw EeveeEvosAttacks
+ dw VaporeonEvosAttacks
+ dw JolteonEvosAttacks
+ dw FlareonEvosAttacks
+ dw PorygonEvosAttacks
+ dw OmanyteEvosAttacks
+ dw OmastarEvosAttacks
+ dw KabutoEvosAttacks
+ dw KabutopsEvosAttacks
+ dw AerodactylEvosAttacks
+ dw SnorlaxEvosAttacks
+ dw ArticunoEvosAttacks
+ dw ZapdosEvosAttacks
+ dw MoltresEvosAttacks
+ dw DratiniEvosAttacks
+ dw DragonairEvosAttacks
+ dw DragoniteEvosAttacks
+ dw MewtwoEvosAttacks
+ dw MewEvosAttacks
+ dw ChikoritaEvosAttacks
+ dw BayleefEvosAttacks
+ dw MeganiumEvosAttacks
+ dw CyndaquilEvosAttacks
+ dw QuilavaEvosAttacks
+ dw TyphlosionEvosAttacks
+ dw TotodileEvosAttacks
+ dw CroconawEvosAttacks
+ dw FeraligatrEvosAttacks
+ dw SentretEvosAttacks
+ dw FurretEvosAttacks
+ dw HoothootEvosAttacks
+ dw NoctowlEvosAttacks
+ dw LedybaEvosAttacks
+ dw LedianEvosAttacks
+ dw SpinarakEvosAttacks
+ dw AriadosEvosAttacks
+ dw CrobatEvosAttacks
+ dw ChinchouEvosAttacks
+ dw LanturnEvosAttacks
+ dw PichuEvosAttacks
+ dw CleffaEvosAttacks
+ dw IgglybuffEvosAttacks
+ dw TogepiEvosAttacks
+ dw TogeticEvosAttacks
+ dw NatuEvosAttacks
+ dw XatuEvosAttacks
+ dw MareepEvosAttacks
+ dw FlaaffyEvosAttacks
+ dw AmpharosEvosAttacks
+ dw BellossomEvosAttacks
+ dw MarillEvosAttacks
+ dw AzumarillEvosAttacks
+ dw SudowoodoEvosAttacks
+ dw PolitoedEvosAttacks
+ dw HoppipEvosAttacks
+ dw SkiploomEvosAttacks
+ dw JumpluffEvosAttacks
+ dw AipomEvosAttacks
+ dw SunkernEvosAttacks
+ dw SunfloraEvosAttacks
+ dw YanmaEvosAttacks
+ dw WooperEvosAttacks
+ dw QuagsireEvosAttacks
+ dw EspeonEvosAttacks
+ dw UmbreonEvosAttacks
+ dw MurkrowEvosAttacks
+ dw SlowkingEvosAttacks
+ dw MisdreavusEvosAttacks
+ dw UnownEvosAttacks
+ dw WobbuffetEvosAttacks
+ dw GirafarigEvosAttacks
+ dw PinecoEvosAttacks
+ dw ForretressEvosAttacks
+ dw DunsparceEvosAttacks
+ dw GligarEvosAttacks
+ dw SteelixEvosAttacks
+ dw SnubbullEvosAttacks
+ dw GranbullEvosAttacks
+ dw QwilfishEvosAttacks
+ dw ScizorEvosAttacks
+ dw ShuckleEvosAttacks
+ dw HeracrossEvosAttacks
+ dw SneaselEvosAttacks
+ dw TeddiursaEvosAttacks
+ dw UrsaringEvosAttacks
+ dw SlugmaEvosAttacks
+ dw MagcargoEvosAttacks
+ dw SwinubEvosAttacks
+ dw PiloswineEvosAttacks
+ dw CorsolaEvosAttacks
+ dw RemoraidEvosAttacks
+ dw OctilleryEvosAttacks
+ dw DelibirdEvosAttacks
+ dw MantineEvosAttacks
+ dw SkarmoryEvosAttacks
+ dw HoundourEvosAttacks
+ dw HoundoomEvosAttacks
+ dw KingdraEvosAttacks
+ dw PhanpyEvosAttacks
+ dw DonphanEvosAttacks
+ dw Porygon2EvosAttacks
+ dw StantlerEvosAttacks
+ dw SmeargleEvosAttacks
+ dw TyrogueEvosAttacks
+ dw HitmontopEvosAttacks
+ dw SmoochumEvosAttacks
+ dw ElekidEvosAttacks
+ dw MagbyEvosAttacks
+ dw MiltankEvosAttacks
+ dw BlisseyEvosAttacks
+ dw RaikouEvosAttacks
+ dw EnteiEvosAttacks
+ dw SuicuneEvosAttacks
+ dw LarvitarEvosAttacks
+ dw PupitarEvosAttacks
+ dw TyranitarEvosAttacks
+ dw LugiaEvosAttacks
+ dw HoOhEvosAttacks
+ dw CelebiEvosAttacks
+; 0x427a7
--- /dev/null
+++ b/data/pokemon/menu_icons.asm
@@ -1,0 +1,255 @@
+; party menu icons
+
+MonMenuIcons: ; 8eac4
+ db ICON_BULBASAUR ; BULBASAUR
+ db ICON_BULBASAUR ; IVYSAUR
+ db ICON_BULBASAUR ; VENUSAUR
+ db ICON_CHARMANDER ; CHARMANDER
+ db ICON_CHARMANDER ; CHARMELEON
+ db ICON_BIGMON ; CHARIZARD
+ db ICON_SQUIRTLE ; SQUIRTLE
+ db ICON_SQUIRTLE ; WARTORTLE
+ db ICON_SQUIRTLE ; BLASTOISE
+ db ICON_CATERPILLAR ; CATERPIE
+ db ICON_CATERPILLAR ; METAPOD
+ db ICON_MOTH ; BUTTERFREE
+ db ICON_CATERPILLAR ; WEEDLE
+ db ICON_CATERPILLAR ; KAKUNA
+ db ICON_BUG ; BEEDRILL
+ db ICON_BIRD ; PIDGEY
+ db ICON_BIRD ; PIDGEOTTO
+ db ICON_BIRD ; PIDGEOT
+ db ICON_FOX ; RATTATA
+ db ICON_FOX ; RATICATE
+ db ICON_BIRD ; SPEAROW
+ db ICON_BIRD ; FEAROW
+ db ICON_SERPENT ; EKANS
+ db ICON_SERPENT ; ARBOK
+ db ICON_PIKACHU ; PIKACHU
+ db ICON_PIKACHU ; RAICHU
+ db ICON_MONSTER ; SANDSHREW
+ db ICON_MONSTER ; SANDSLASH
+ db ICON_FOX ; NIDORAN_F
+ db ICON_FOX ; NIDORINA
+ db ICON_MONSTER ; NIDOQUEEN
+ db ICON_FOX ; NIDORAN_M
+ db ICON_FOX ; NIDORINO
+ db ICON_MONSTER ; NIDOKING
+ db ICON_CLEFAIRY ; CLEFAIRY
+ db ICON_CLEFAIRY ; CLEFABLE
+ db ICON_FOX ; VULPIX
+ db ICON_FOX ; NINETALES
+ db ICON_JIGGLYPUFF ; JIGGLYPUFF
+ db ICON_JIGGLYPUFF ; WIGGLYTUFF
+ db ICON_BAT ; ZUBAT
+ db ICON_BAT ; GOLBAT
+ db ICON_ODDISH ; ODDISH
+ db ICON_ODDISH ; GLOOM
+ db ICON_ODDISH ; VILEPLUME
+ db ICON_BUG ; PARAS
+ db ICON_BUG ; PARASECT
+ db ICON_CATERPILLAR ; VENONAT
+ db ICON_MOTH ; VENOMOTH
+ db ICON_DIGLETT ; DIGLETT
+ db ICON_DIGLETT ; DUGTRIO
+ db ICON_FOX ; MEOWTH
+ db ICON_FOX ; PERSIAN
+ db ICON_MONSTER ; PSYDUCK
+ db ICON_MONSTER ; GOLDUCK
+ db ICON_FIGHTER ; MANKEY
+ db ICON_FIGHTER ; PRIMEAPE
+ db ICON_FOX ; GROWLITHE
+ db ICON_FOX ; ARCANINE
+ db ICON_POLIWAG ; POLIWAG
+ db ICON_POLIWAG ; POLIWHIRL
+ db ICON_POLIWAG ; POLIWRATH
+ db ICON_HUMANSHAPE ; ABRA
+ db ICON_HUMANSHAPE ; KADABRA
+ db ICON_HUMANSHAPE ; ALAKAZAM
+ db ICON_FIGHTER ; MACHOP
+ db ICON_FIGHTER ; MACHOKE
+ db ICON_FIGHTER ; MACHAMP
+ db ICON_ODDISH ; BELLSPROUT
+ db ICON_ODDISH ; WEEPINBELL
+ db ICON_ODDISH ; VICTREEBEL
+ db ICON_JELLYFISH ; TENTACOOL
+ db ICON_JELLYFISH ; TENTACRUEL
+ db ICON_GEODUDE ; GEODUDE
+ db ICON_GEODUDE ; GRAVELER
+ db ICON_GEODUDE ; GOLEM
+ db ICON_EQUINE ; PONYTA
+ db ICON_EQUINE ; RAPIDASH
+ db ICON_SLOWPOKE ; SLOWPOKE
+ db ICON_SLOWPOKE ; SLOWBRO
+ db ICON_VOLTORB ; MAGNEMITE
+ db ICON_VOLTORB ; MAGNETON
+ db ICON_BIRD ; FARFETCH_D
+ db ICON_BIRD ; DODUO
+ db ICON_BIRD ; DODRIO
+ db ICON_LAPRAS ; SEEL
+ db ICON_LAPRAS ; DEWGONG
+ db ICON_BLOB ; GRIMER
+ db ICON_BLOB ; MUK
+ db ICON_SHELL ; SHELLDER
+ db ICON_SHELL ; CLOYSTER
+ db ICON_GHOST ; GASTLY
+ db ICON_GHOST ; HAUNTER
+ db ICON_GHOST ; GENGAR
+ db ICON_SERPENT ; ONIX
+ db ICON_HUMANSHAPE ; DROWZEE
+ db ICON_HUMANSHAPE ; HYPNO
+ db ICON_SHELL ; KRABBY
+ db ICON_SHELL ; KINGLER
+ db ICON_VOLTORB ; VOLTORB
+ db ICON_VOLTORB ; ELECTRODE
+ db ICON_ODDISH ; EXEGGCUTE
+ db ICON_ODDISH ; EXEGGUTOR
+ db ICON_MONSTER ; CUBONE
+ db ICON_MONSTER ; MAROWAK
+ db ICON_FIGHTER ; HITMONLEE
+ db ICON_FIGHTER ; HITMONCHAN
+ db ICON_MONSTER ; LICKITUNG
+ db ICON_BLOB ; KOFFING
+ db ICON_BLOB ; WEEZING
+ db ICON_EQUINE ; RHYHORN
+ db ICON_MONSTER ; RHYDON
+ db ICON_CLEFAIRY ; CHANSEY
+ db ICON_ODDISH ; TANGELA
+ db ICON_MONSTER ; KANGASKHAN
+ db ICON_FISH ; HORSEA
+ db ICON_FISH ; SEADRA
+ db ICON_FISH ; GOLDEEN
+ db ICON_FISH ; SEAKING
+ db ICON_STARYU ; STARYU
+ db ICON_STARYU ; STARMIE
+ db ICON_HUMANSHAPE ; MR__MIME
+ db ICON_BUG ; SCYTHER
+ db ICON_HUMANSHAPE ; JYNX
+ db ICON_HUMANSHAPE ; ELECTABUZZ
+ db ICON_HUMANSHAPE ; MAGMAR
+ db ICON_BUG ; PINSIR
+ db ICON_EQUINE ; TAUROS
+ db ICON_FISH ; MAGIKARP
+ db ICON_GYARADOS ; GYARADOS
+ db ICON_LAPRAS ; LAPRAS
+ db ICON_BLOB ; DITTO
+ db ICON_FOX ; EEVEE
+ db ICON_FOX ; VAPOREON
+ db ICON_FOX ; JOLTEON
+ db ICON_FOX ; FLAREON
+ db ICON_VOLTORB ; PORYGON
+ db ICON_SHELL ; OMANYTE
+ db ICON_SHELL ; OMASTAR
+ db ICON_SHELL ; KABUTO
+ db ICON_SHELL ; KABUTOPS
+ db ICON_BIRD ; AERODACTYL
+ db ICON_SNORLAX ; SNORLAX
+ db ICON_BIRD ; ARTICUNO
+ db ICON_BIRD ; ZAPDOS
+ db ICON_BIRD ; MOLTRES
+ db ICON_SERPENT ; DRATINI
+ db ICON_SERPENT ; DRAGONAIR
+ db ICON_BIGMON ; DRAGONITE
+ db ICON_HUMANSHAPE ; MEWTWO
+ db ICON_HUMANSHAPE ; MEW
+ db ICON_ODDISH ; CHIKORITA
+ db ICON_ODDISH ; BAYLEEF
+ db ICON_ODDISH ; MEGANIUM
+ db ICON_FOX ; CYNDAQUIL
+ db ICON_FOX ; QUILAVA
+ db ICON_FOX ; TYPHLOSION
+ db ICON_MONSTER ; TOTODILE
+ db ICON_MONSTER ; CROCONAW
+ db ICON_MONSTER ; FERALIGATR
+ db ICON_FOX ; SENTRET
+ db ICON_FOX ; FURRET
+ db ICON_BIRD ; HOOTHOOT
+ db ICON_BIRD ; NOCTOWL
+ db ICON_BUG ; LEDYBA
+ db ICON_BUG ; LEDIAN
+ db ICON_BUG ; SPINARAK
+ db ICON_BUG ; ARIADOS
+ db ICON_BAT ; CROBAT
+ db ICON_FISH ; CHINCHOU
+ db ICON_FISH ; LANTURN
+ db ICON_PIKACHU ; PICHU
+ db ICON_CLEFAIRY ; CLEFFA
+ db ICON_JIGGLYPUFF ; IGGLYBUFF
+ db ICON_CLEFAIRY ; TOGEPI
+ db ICON_BIRD ; TOGETIC
+ db ICON_BIRD ; NATU
+ db ICON_BIRD ; XATU
+ db ICON_FOX ; MAREEP
+ db ICON_MONSTER ; FLAAFFY
+ db ICON_MONSTER ; AMPHAROS
+ db ICON_ODDISH ; BELLOSSOM
+ db ICON_JIGGLYPUFF ; MARILL
+ db ICON_JIGGLYPUFF ; AZUMARILL
+ db ICON_SUDOWOODO ; SUDOWOODO
+ db ICON_POLIWAG ; POLITOED
+ db ICON_ODDISH ; HOPPIP
+ db ICON_ODDISH ; SKIPLOOM
+ db ICON_ODDISH ; JUMPLUFF
+ db ICON_MONSTER ; AIPOM
+ db ICON_ODDISH ; SUNKERN
+ db ICON_ODDISH ; SUNFLORA
+ db ICON_BUG ; YANMA
+ db ICON_MONSTER ; WOOPER
+ db ICON_MONSTER ; QUAGSIRE
+ db ICON_FOX ; ESPEON
+ db ICON_FOX ; UMBREON
+ db ICON_BIRD ; MURKROW
+ db ICON_SLOWPOKE ; SLOWKING
+ db ICON_GHOST ; MISDREAVUS
+ db ICON_UNOWN ; UNOWN
+ db ICON_GHOST ; WOBBUFFET
+ db ICON_EQUINE ; GIRAFARIG
+ db ICON_BUG ; PINECO
+ db ICON_BUG ; FORRETRESS
+ db ICON_SERPENT ; DUNSPARCE
+ db ICON_BUG ; GLIGAR
+ db ICON_SERPENT ; STEELIX
+ db ICON_MONSTER ; SNUBBULL
+ db ICON_MONSTER ; GRANBULL
+ db ICON_FISH ; QWILFISH
+ db ICON_BUG ; SCIZOR
+ db ICON_BUG ; SHUCKLE
+ db ICON_BUG ; HERACROSS
+ db ICON_FOX ; SNEASEL
+ db ICON_MONSTER ; TEDDIURSA
+ db ICON_MONSTER ; URSARING
+ db ICON_BLOB ; SLUGMA
+ db ICON_BLOB ; MAGCARGO
+ db ICON_EQUINE ; SWINUB
+ db ICON_EQUINE ; PILOSWINE
+ db ICON_SHELL ; CORSOLA
+ db ICON_FISH ; REMORAID
+ db ICON_FISH ; OCTILLERY
+ db ICON_MONSTER ; DELIBIRD
+ db ICON_FISH ; MANTINE
+ db ICON_BIRD ; SKARMORY
+ db ICON_FOX ; HOUNDOUR
+ db ICON_FOX ; HOUNDOOM
+ db ICON_BIGMON ; KINGDRA
+ db ICON_EQUINE ; PHANPY
+ db ICON_EQUINE ; DONPHAN
+ db ICON_VOLTORB ; PORYGON2
+ db ICON_EQUINE ; STANTLER
+ db ICON_MONSTER ; SMEARGLE
+ db ICON_FIGHTER ; TYROGUE
+ db ICON_FIGHTER ; HITMONTOP
+ db ICON_HUMANSHAPE ; SMOOCHUM
+ db ICON_HUMANSHAPE ; ELEKID
+ db ICON_HUMANSHAPE ; MAGBY
+ db ICON_EQUINE ; MILTANK
+ db ICON_CLEFAIRY ; BLISSEY
+ db ICON_FOX ; RAIKOU
+ db ICON_FOX ; ENTEI
+ db ICON_FOX ; SUICUNE
+ db ICON_MONSTER ; LARVITAR
+ db ICON_MONSTER ; PUPITAR
+ db ICON_MONSTER ; TYRANITAR
+ db ICON_LUGIA ; LUGIA
+ db ICON_HO_OH ; HO_OH
+ db ICON_HUMANSHAPE ; CELEBI
+; 8ebbf
--- /dev/null
+++ b/data/pokemon/pokemon_names.asm
@@ -1,0 +1,257 @@
+PokemonNames::
+ db "BULBASAUR@"
+ db "IVYSAUR@@@"
+ db "VENUSAUR@@"
+ db "CHARMANDER"
+ db "CHARMELEON"
+ db "CHARIZARD@"
+ db "SQUIRTLE@@"
+ db "WARTORTLE@"
+ db "BLASTOISE@"
+ db "CATERPIE@@"
+ db "METAPOD@@@"
+ db "BUTTERFREE"
+ db "WEEDLE@@@@"
+ db "KAKUNA@@@@"
+ db "BEEDRILL@@"
+ db "PIDGEY@@@@"
+ db "PIDGEOTTO@"
+ db "PIDGEOT@@@"
+ db "RATTATA@@@"
+ db "RATICATE@@"
+ db "SPEAROW@@@"
+ db "FEAROW@@@@"
+ db "EKANS@@@@@"
+ db "ARBOK@@@@@"
+ db "PIKACHU@@@"
+ db "RAICHU@@@@"
+ db "SANDSHREW@"
+ db "SANDSLASH@"
+ db "NIDORAN♀@@"
+ db "NIDORINA@@"
+ db "NIDOQUEEN@"
+ db "NIDORAN♂@@"
+ db "NIDORINO@@"
+ db "NIDOKING@@"
+ db "CLEFAIRY@@"
+ db "CLEFABLE@@"
+ db "VULPIX@@@@"
+ db "NINETALES@"
+ db "JIGGLYPUFF"
+ db "WIGGLYTUFF"
+ db "ZUBAT@@@@@"
+ db "GOLBAT@@@@"
+ db "ODDISH@@@@"
+ db "GLOOM@@@@@"
+ db "VILEPLUME@"
+ db "PARAS@@@@@"
+ db "PARASECT@@"
+ db "VENONAT@@@"
+ db "VENOMOTH@@"
+ db "DIGLETT@@@"
+ db "DUGTRIO@@@"
+ db "MEOWTH@@@@"
+ db "PERSIAN@@@"
+ db "PSYDUCK@@@"
+ db "GOLDUCK@@@"
+ db "MANKEY@@@@"
+ db "PRIMEAPE@@"
+ db "GROWLITHE@"
+ db "ARCANINE@@"
+ db "POLIWAG@@@"
+ db "POLIWHIRL@"
+ db "POLIWRATH@"
+ db "ABRA@@@@@@"
+ db "KADABRA@@@"
+ db "ALAKAZAM@@"
+ db "MACHOP@@@@"
+ db "MACHOKE@@@"
+ db "MACHAMP@@@"
+ db "BELLSPROUT"
+ db "WEEPINBELL"
+ db "VICTREEBEL"
+ db "TENTACOOL@"
+ db "TENTACRUEL"
+ db "GEODUDE@@@"
+ db "GRAVELER@@"
+ db "GOLEM@@@@@"
+ db "PONYTA@@@@"
+ db "RAPIDASH@@"
+ db "SLOWPOKE@@"
+ db "SLOWBRO@@@"
+ db "MAGNEMITE@"
+ db "MAGNETON@@"
+ db "FARFETCH'D"
+ db "DODUO@@@@@"
+ db "DODRIO@@@@"
+ db "SEEL@@@@@@"
+ db "DEWGONG@@@"
+ db "GRIMER@@@@"
+ db "MUK@@@@@@@"
+ db "SHELLDER@@"
+ db "CLOYSTER@@"
+ db "GASTLY@@@@"
+ db "HAUNTER@@@"
+ db "GENGAR@@@@"
+ db "ONIX@@@@@@"
+ db "DROWZEE@@@"
+ db "HYPNO@@@@@"
+ db "KRABBY@@@@"
+ db "KINGLER@@@"
+ db "VOLTORB@@@"
+ db "ELECTRODE@"
+ db "EXEGGCUTE@"
+ db "EXEGGUTOR@"
+ db "CUBONE@@@@"
+ db "MAROWAK@@@"
+ db "HITMONLEE@"
+ db "HITMONCHAN"
+ db "LICKITUNG@"
+ db "KOFFING@@@"
+ db "WEEZING@@@"
+ db "RHYHORN@@@"
+ db "RHYDON@@@@"
+ db "CHANSEY@@@"
+ db "TANGELA@@@"
+ db "KANGASKHAN"
+ db "HORSEA@@@@"
+ db "SEADRA@@@@"
+ db "GOLDEEN@@@"
+ db "SEAKING@@@"
+ db "STARYU@@@@"
+ db "STARMIE@@@"
+ db "MR.MIME@@@"
+ db "SCYTHER@@@"
+ db "JYNX@@@@@@"
+ db "ELECTABUZZ"
+ db "MAGMAR@@@@"
+ db "PINSIR@@@@"
+ db "TAUROS@@@@"
+ db "MAGIKARP@@"
+ db "GYARADOS@@"
+ db "LAPRAS@@@@"
+ db "DITTO@@@@@"
+ db "EEVEE@@@@@"
+ db "VAPOREON@@"
+ db "JOLTEON@@@"
+ db "FLAREON@@@"
+ db "PORYGON@@@"
+ db "OMANYTE@@@"
+ db "OMASTAR@@@"
+ db "KABUTO@@@@"
+ db "KABUTOPS@@"
+ db "AERODACTYL"
+ db "SNORLAX@@@"
+ db "ARTICUNO@@"
+ db "ZAPDOS@@@@"
+ db "MOLTRES@@@"
+ db "DRATINI@@@"
+ db "DRAGONAIR@"
+ db "DRAGONITE@"
+ db "MEWTWO@@@@"
+ db "MEW@@@@@@@"
+ db "CHIKORITA@"
+ db "BAYLEEF@@@"
+ db "MEGANIUM@@"
+ db "CYNDAQUIL@"
+ db "QUILAVA@@@"
+ db "TYPHLOSION"
+ db "TOTODILE@@"
+ db "CROCONAW@@"
+ db "FERALIGATR"
+ db "SENTRET@@@"
+ db "FURRET@@@@"
+ db "HOOTHOOT@@"
+ db "NOCTOWL@@@"
+ db "LEDYBA@@@@"
+ db "LEDIAN@@@@"
+ db "SPINARAK@@"
+ db "ARIADOS@@@"
+ db "CROBAT@@@@"
+ db "CHINCHOU@@"
+ db "LANTURN@@@"
+ db "PICHU@@@@@"
+ db "CLEFFA@@@@"
+ db "IGGLYBUFF@"
+ db "TOGEPI@@@@"
+ db "TOGETIC@@@"
+ db "NATU@@@@@@"
+ db "XATU@@@@@@"
+ db "MAREEP@@@@"
+ db "FLAAFFY@@@"
+ db "AMPHAROS@@"
+ db "BELLOSSOM@"
+ db "MARILL@@@@"
+ db "AZUMARILL@"
+ db "SUDOWOODO@"
+ db "POLITOED@@"
+ db "HOPPIP@@@@"
+ db "SKIPLOOM@@"
+ db "JUMPLUFF@@"
+ db "AIPOM@@@@@"
+ db "SUNKERN@@@"
+ db "SUNFLORA@@"
+ db "YANMA@@@@@"
+ db "WOOPER@@@@"
+ db "QUAGSIRE@@"
+ db "ESPEON@@@@"
+ db "UMBREON@@@"
+ db "MURKROW@@@"
+ db "SLOWKING@@"
+ db "MISDREAVUS"
+ db "UNOWN@@@@@"
+ db "WOBBUFFET@"
+ db "GIRAFARIG@"
+ db "PINECO@@@@"
+ db "FORRETRESS"
+ db "DUNSPARCE@"
+ db "GLIGAR@@@@"
+ db "STEELIX@@@"
+ db "SNUBBULL@@"
+ db "GRANBULL@@"
+ db "QWILFISH@@"
+ db "SCIZOR@@@@"
+ db "SHUCKLE@@@"
+ db "HERACROSS@"
+ db "SNEASEL@@@"
+ db "TEDDIURSA@"
+ db "URSARING@@"
+ db "SLUGMA@@@@"
+ db "MAGCARGO@@"
+ db "SWINUB@@@@"
+ db "PILOSWINE@"
+ db "CORSOLA@@@"
+ db "REMORAID@@"
+ db "OCTILLERY@"
+ db "DELIBIRD@@"
+ db "MANTINE@@@"
+ db "SKARMORY@@"
+ db "HOUNDOUR@@"
+ db "HOUNDOOM@@"
+ db "KINGDRA@@@"
+ db "PHANPY@@@@"
+ db "DONPHAN@@@"
+ db "PORYGON2@@"
+ db "STANTLER@@"
+ db "SMEARGLE@@"
+ db "TYROGUE@@@"
+ db "HITMONTOP@"
+ db "SMOOCHUM@@"
+ db "ELEKID@@@@"
+ db "MAGBY@@@@@"
+ db "MILTANK@@@"
+ db "BLISSEY@@@"
+ db "RAIKOU@@@@"
+ db "ENTEI@@@@@"
+ db "SUICUNE@@@"
+ db "LARVITAR@@"
+ db "PUPITAR@@@"
+ db "TYRANITAR@"
+ db "LUGIA@@@@@"
+ db "HO-OH@@@@@"
+ db "CELEBI@@@@"
+ db "?????@@@@@"
+ db "EGG@@@@@@@"
+ db "?????@@@@@"
+ db "?????@@@@@"
+ db "?????@@@@@"
--- a/data/pokemon_names.asm
+++ /dev/null
@@ -1,257 +1,0 @@
-PokemonNames::
- db "BULBASAUR@"
- db "IVYSAUR@@@"
- db "VENUSAUR@@"
- db "CHARMANDER"
- db "CHARMELEON"
- db "CHARIZARD@"
- db "SQUIRTLE@@"
- db "WARTORTLE@"
- db "BLASTOISE@"
- db "CATERPIE@@"
- db "METAPOD@@@"
- db "BUTTERFREE"
- db "WEEDLE@@@@"
- db "KAKUNA@@@@"
- db "BEEDRILL@@"
- db "PIDGEY@@@@"
- db "PIDGEOTTO@"
- db "PIDGEOT@@@"
- db "RATTATA@@@"
- db "RATICATE@@"
- db "SPEAROW@@@"
- db "FEAROW@@@@"
- db "EKANS@@@@@"
- db "ARBOK@@@@@"
- db "PIKACHU@@@"
- db "RAICHU@@@@"
- db "SANDSHREW@"
- db "SANDSLASH@"
- db "NIDORAN♀@@"
- db "NIDORINA@@"
- db "NIDOQUEEN@"
- db "NIDORAN♂@@"
- db "NIDORINO@@"
- db "NIDOKING@@"
- db "CLEFAIRY@@"
- db "CLEFABLE@@"
- db "VULPIX@@@@"
- db "NINETALES@"
- db "JIGGLYPUFF"
- db "WIGGLYTUFF"
- db "ZUBAT@@@@@"
- db "GOLBAT@@@@"
- db "ODDISH@@@@"
- db "GLOOM@@@@@"
- db "VILEPLUME@"
- db "PARAS@@@@@"
- db "PARASECT@@"
- db "VENONAT@@@"
- db "VENOMOTH@@"
- db "DIGLETT@@@"
- db "DUGTRIO@@@"
- db "MEOWTH@@@@"
- db "PERSIAN@@@"
- db "PSYDUCK@@@"
- db "GOLDUCK@@@"
- db "MANKEY@@@@"
- db "PRIMEAPE@@"
- db "GROWLITHE@"
- db "ARCANINE@@"
- db "POLIWAG@@@"
- db "POLIWHIRL@"
- db "POLIWRATH@"
- db "ABRA@@@@@@"
- db "KADABRA@@@"
- db "ALAKAZAM@@"
- db "MACHOP@@@@"
- db "MACHOKE@@@"
- db "MACHAMP@@@"
- db "BELLSPROUT"
- db "WEEPINBELL"
- db "VICTREEBEL"
- db "TENTACOOL@"
- db "TENTACRUEL"
- db "GEODUDE@@@"
- db "GRAVELER@@"
- db "GOLEM@@@@@"
- db "PONYTA@@@@"
- db "RAPIDASH@@"
- db "SLOWPOKE@@"
- db "SLOWBRO@@@"
- db "MAGNEMITE@"
- db "MAGNETON@@"
- db "FARFETCH'D"
- db "DODUO@@@@@"
- db "DODRIO@@@@"
- db "SEEL@@@@@@"
- db "DEWGONG@@@"
- db "GRIMER@@@@"
- db "MUK@@@@@@@"
- db "SHELLDER@@"
- db "CLOYSTER@@"
- db "GASTLY@@@@"
- db "HAUNTER@@@"
- db "GENGAR@@@@"
- db "ONIX@@@@@@"
- db "DROWZEE@@@"
- db "HYPNO@@@@@"
- db "KRABBY@@@@"
- db "KINGLER@@@"
- db "VOLTORB@@@"
- db "ELECTRODE@"
- db "EXEGGCUTE@"
- db "EXEGGUTOR@"
- db "CUBONE@@@@"
- db "MAROWAK@@@"
- db "HITMONLEE@"
- db "HITMONCHAN"
- db "LICKITUNG@"
- db "KOFFING@@@"
- db "WEEZING@@@"
- db "RHYHORN@@@"
- db "RHYDON@@@@"
- db "CHANSEY@@@"
- db "TANGELA@@@"
- db "KANGASKHAN"
- db "HORSEA@@@@"
- db "SEADRA@@@@"
- db "GOLDEEN@@@"
- db "SEAKING@@@"
- db "STARYU@@@@"
- db "STARMIE@@@"
- db "MR.MIME@@@"
- db "SCYTHER@@@"
- db "JYNX@@@@@@"
- db "ELECTABUZZ"
- db "MAGMAR@@@@"
- db "PINSIR@@@@"
- db "TAUROS@@@@"
- db "MAGIKARP@@"
- db "GYARADOS@@"
- db "LAPRAS@@@@"
- db "DITTO@@@@@"
- db "EEVEE@@@@@"
- db "VAPOREON@@"
- db "JOLTEON@@@"
- db "FLAREON@@@"
- db "PORYGON@@@"
- db "OMANYTE@@@"
- db "OMASTAR@@@"
- db "KABUTO@@@@"
- db "KABUTOPS@@"
- db "AERODACTYL"
- db "SNORLAX@@@"
- db "ARTICUNO@@"
- db "ZAPDOS@@@@"
- db "MOLTRES@@@"
- db "DRATINI@@@"
- db "DRAGONAIR@"
- db "DRAGONITE@"
- db "MEWTWO@@@@"
- db "MEW@@@@@@@"
- db "CHIKORITA@"
- db "BAYLEEF@@@"
- db "MEGANIUM@@"
- db "CYNDAQUIL@"
- db "QUILAVA@@@"
- db "TYPHLOSION"
- db "TOTODILE@@"
- db "CROCONAW@@"
- db "FERALIGATR"
- db "SENTRET@@@"
- db "FURRET@@@@"
- db "HOOTHOOT@@"
- db "NOCTOWL@@@"
- db "LEDYBA@@@@"
- db "LEDIAN@@@@"
- db "SPINARAK@@"
- db "ARIADOS@@@"
- db "CROBAT@@@@"
- db "CHINCHOU@@"
- db "LANTURN@@@"
- db "PICHU@@@@@"
- db "CLEFFA@@@@"
- db "IGGLYBUFF@"
- db "TOGEPI@@@@"
- db "TOGETIC@@@"
- db "NATU@@@@@@"
- db "XATU@@@@@@"
- db "MAREEP@@@@"
- db "FLAAFFY@@@"
- db "AMPHAROS@@"
- db "BELLOSSOM@"
- db "MARILL@@@@"
- db "AZUMARILL@"
- db "SUDOWOODO@"
- db "POLITOED@@"
- db "HOPPIP@@@@"
- db "SKIPLOOM@@"
- db "JUMPLUFF@@"
- db "AIPOM@@@@@"
- db "SUNKERN@@@"
- db "SUNFLORA@@"
- db "YANMA@@@@@"
- db "WOOPER@@@@"
- db "QUAGSIRE@@"
- db "ESPEON@@@@"
- db "UMBREON@@@"
- db "MURKROW@@@"
- db "SLOWKING@@"
- db "MISDREAVUS"
- db "UNOWN@@@@@"
- db "WOBBUFFET@"
- db "GIRAFARIG@"
- db "PINECO@@@@"
- db "FORRETRESS"
- db "DUNSPARCE@"
- db "GLIGAR@@@@"
- db "STEELIX@@@"
- db "SNUBBULL@@"
- db "GRANBULL@@"
- db "QWILFISH@@"
- db "SCIZOR@@@@"
- db "SHUCKLE@@@"
- db "HERACROSS@"
- db "SNEASEL@@@"
- db "TEDDIURSA@"
- db "URSARING@@"
- db "SLUGMA@@@@"
- db "MAGCARGO@@"
- db "SWINUB@@@@"
- db "PILOSWINE@"
- db "CORSOLA@@@"
- db "REMORAID@@"
- db "OCTILLERY@"
- db "DELIBIRD@@"
- db "MANTINE@@@"
- db "SKARMORY@@"
- db "HOUNDOUR@@"
- db "HOUNDOOM@@"
- db "KINGDRA@@@"
- db "PHANPY@@@@"
- db "DONPHAN@@@"
- db "PORYGON2@@"
- db "STANTLER@@"
- db "SMEARGLE@@"
- db "TYROGUE@@@"
- db "HITMONTOP@"
- db "SMOOCHUM@@"
- db "ELEKID@@@@"
- db "MAGBY@@@@@"
- db "MILTANK@@@"
- db "BLISSEY@@@"
- db "RAIKOU@@@@"
- db "ENTEI@@@@@"
- db "SUICUNE@@@"
- db "LARVITAR@@"
- db "PUPITAR@@@"
- db "TYRANITAR@"
- db "LUGIA@@@@@"
- db "HO-OH@@@@@"
- db "CELEBI@@@@"
- db "?????@@@@@"
- db "EGG@@@@@@@"
- db "?????@@@@@"
- db "?????@@@@@"
- db "?????@@@@@"
--- /dev/null
+++ b/data/sgb_border_map.asm
@@ -1,0 +1,29 @@
+
+ db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
+ db $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $54, $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54
+ db $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54
+ db $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54, $20, $54, $07, $14, $08, $14, $09, $14, $0a, $14, $0b, $14, $0c, $14, $0d, $14, $07, $14, $07, $14, $18, $14, $09, $14, $1a, $14, $1b, $14, $0d, $14, $0c, $14, $1c, $14, $29, $14, $07, $14, $20, $14, $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54
+ db $31, $14, $32, $14, $07, $14, $07, $14, $32, $54, $36, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $27, $10, $32, $14, $07, $54, $07, $54, $32, $54, $31, $54
+ db $05, $14, $06, $14, $07, $14, $07, $54, $06, $54, $1f, $10, $37, $10, $06, $14, $07, $14, $07, $54, $06, $54, $05, $54
+ db $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $1f, $10, $37, $10, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54
+ db $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $1f, $10, $37, $10, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54
+ db $33, $14, $34, $14, $35, $14, $35, $54, $34, $54, $1f, $10, $37, $10, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54
+ db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
+ db $02, $54, $01, $54, $07, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $01, $14, $02, $14
+ db $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14
+ db $22, $54, $21, $54, $20, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $20, $14, $21, $14, $22, $14
+ db $32, $54, $31, $54, $30, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $30, $14, $31, $14, $32, $14
+ db $06, $54, $05, $54, $04, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $04, $14, $05, $14, $06, $14
+ db $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14
+ db $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14
+ db $34, $54, $33, $54, $07, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $33, $14, $34, $14
+ db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
+ db $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $1f, $10, $37, $10, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54
+ db $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $1f, $10, $37, $10, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54
+ db $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $1f, $10, $37, $10, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54
+ db $31, $14, $32, $14, $07, $14, $07, $14, $32, $54, $1f, $10, $37, $10, $32, $14, $07, $54, $07, $54, $32, $54, $31, $54
+ db $05, $14, $06, $14, $07, $14, $07, $54, $06, $54, $2e, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2d, $10, $06, $14, $07, $14, $07, $54, $06, $54, $05, $54
+ db $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $39, $14, $0e, $14, $09, $14, $0f, $14, $28, $14, $07, $14, $19, $14, $0c, $14, $1c, $14, $29, $14, $2a, $14, $2b, $14, $2c, $14, $39, $14, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54
+ db $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54
+ db $33, $14, $34, $14, $35, $14, $35, $54, $34, $54, $24, $54, $07, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54
+ db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $20, $14, $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54, $20, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
--- a/data/spawn_points.asm
+++ /dev/null
@@ -1,41 +1,0 @@
-spawn: MACRO
-; map, y, x
- map \1
- db \2, \3
-ENDM
-
-SpawnPoints: ; 0x152ab
-; entries correspond to SPAWN_* constants
-
- spawn KRISS_HOUSE_2F, 3, 3
- spawn VIRIDIAN_POKECENTER_1F, 5, 3
-
- spawn PALLET_TOWN, 5, 6
- spawn VIRIDIAN_CITY, 23, 26
- spawn PEWTER_CITY, 13, 26
- spawn CERULEAN_CITY, 19, 22
- spawn ROUTE_10_NORTH, 11, 2
- spawn VERMILION_CITY, 9, 6
- spawn LAVENDER_TOWN, 5, 6
- spawn SAFFRON_CITY, 9, 30
- spawn CELADON_CITY, 29, 10
- spawn FUCHSIA_CITY, 19, 28
- spawn CINNABAR_ISLAND, 11, 12
- spawn ROUTE_23, 9, 6
-
- spawn NEW_BARK_TOWN, 13, 6
- spawn CHERRYGROVE_CITY, 29, 4
- spawn VIOLET_CITY, 31, 26
- spawn ROUTE_32, 11, 74
- spawn AZALEA_TOWN, 15, 10
- spawn CIANWOOD_CITY, 23, 44
- spawn GOLDENROD_CITY, 15, 28
- spawn OLIVINE_CITY, 13, 22
- spawn ECRUTEAK_CITY, 23, 28
- spawn MAHOGANY_TOWN, 15, 14
- spawn LAKE_OF_RAGE, 21, 29
- spawn BLACKTHORN_CITY, 21, 30
- spawn SILVER_CAVE_OUTSIDE, 23, 20
- spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
- spawn N_A, -1, -1
-; 1531f
--- /dev/null
+++ b/data/text_buffers.asm
@@ -1,0 +1,9 @@
+StringBufferPointers:: ; 24000
+; entries correspond to arguments for text_buffer (TX_STRINGBUFFER)
+ dw StringBuffer3 ; 0
+ dw StringBuffer4 ; 1
+ dw StringBuffer5 ; 2
+ dw StringBuffer2 ; 3
+ dw StringBuffer1 ; 4
+ dw EnemyMonNick ; 5
+ dw BattleMonNick ; 6
--- /dev/null
+++ b/data/trainers/encounter_music.asm
@@ -1,0 +1,75 @@
+; What music plays when a trainer notices you
+
+TrainerEncounterMusic::
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+ db MUSIC_HIKER_ENCOUNTER ; none
+ db MUSIC_YOUNGSTER_ENCOUNTER ; falkner
+ db MUSIC_LASS_ENCOUNTER ; whitney
+ db MUSIC_YOUNGSTER_ENCOUNTER ; bugsy
+ db MUSIC_OFFICER_ENCOUNTER ; morty
+ db MUSIC_OFFICER_ENCOUNTER ; pryce
+ db MUSIC_LASS_ENCOUNTER ; jasmine
+ db MUSIC_OFFICER_ENCOUNTER ; chuck
+ db MUSIC_BEAUTY_ENCOUNTER ; clair
+ db MUSIC_RIVAL_ENCOUNTER ; rival1
+ db MUSIC_HIKER_ENCOUNTER ; pokemon_prof
+ db MUSIC_HIKER_ENCOUNTER ; will
+ db MUSIC_HIKER_ENCOUNTER ; cal
+ db MUSIC_OFFICER_ENCOUNTER ; bruno
+ db MUSIC_HIKER_ENCOUNTER ; karen
+ db MUSIC_HIKER_ENCOUNTER ; koga
+ db MUSIC_OFFICER_ENCOUNTER ; champion
+ db MUSIC_YOUNGSTER_ENCOUNTER ; brock
+ db MUSIC_LASS_ENCOUNTER ; misty
+ db MUSIC_OFFICER_ENCOUNTER ; lt_surge
+ db MUSIC_ROCKET_ENCOUNTER ; scientist
+ db MUSIC_OFFICER_ENCOUNTER ; erika
+ db MUSIC_YOUNGSTER_ENCOUNTER ; youngster
+ db MUSIC_YOUNGSTER_ENCOUNTER ; schoolboy
+ db MUSIC_YOUNGSTER_ENCOUNTER ; bird_keeper
+ db MUSIC_LASS_ENCOUNTER ; lass
+ db MUSIC_LASS_ENCOUNTER ; janine
+ db MUSIC_HIKER_ENCOUNTER ; cooltrainerm
+ db MUSIC_BEAUTY_ENCOUNTER ; cooltrainerf
+ db MUSIC_BEAUTY_ENCOUNTER ; beauty
+ db MUSIC_POKEMANIAC_ENCOUNTER ; pokemaniac
+ db MUSIC_ROCKET_ENCOUNTER ; gruntm
+ db MUSIC_HIKER_ENCOUNTER ; gentleman
+ db MUSIC_BEAUTY_ENCOUNTER ; skier
+ db MUSIC_BEAUTY_ENCOUNTER ; teacher
+ db MUSIC_BEAUTY_ENCOUNTER ; sabrina
+ db MUSIC_YOUNGSTER_ENCOUNTER ; bug_catcher
+ db MUSIC_HIKER_ENCOUNTER ; fisher
+ db MUSIC_HIKER_ENCOUNTER ; swimmerm
+ db MUSIC_BEAUTY_ENCOUNTER ; swimmerf
+ db MUSIC_HIKER_ENCOUNTER ; sailor
+ db MUSIC_POKEMANIAC_ENCOUNTER ; super_nerd
+ db MUSIC_RIVAL_ENCOUNTER ; rival2
+ db MUSIC_HIKER_ENCOUNTER ; guitarist
+ db MUSIC_HIKER_ENCOUNTER ; hiker
+ db MUSIC_HIKER_ENCOUNTER ; biker
+ db MUSIC_OFFICER_ENCOUNTER ; blaine
+ db MUSIC_POKEMANIAC_ENCOUNTER ; burglar
+ db MUSIC_HIKER_ENCOUNTER ; firebreather
+ db MUSIC_POKEMANIAC_ENCOUNTER ; juggler
+ db MUSIC_HIKER_ENCOUNTER ; blackbelt_t
+ db MUSIC_ROCKET_ENCOUNTER ; executivem
+ db MUSIC_YOUNGSTER_ENCOUNTER ; psychic_t
+ db MUSIC_LASS_ENCOUNTER ; picnicker
+ db MUSIC_YOUNGSTER_ENCOUNTER ; camper
+ db MUSIC_ROCKET_ENCOUNTER ; executivef
+ db MUSIC_SAGE_ENCOUNTER ; sage
+ db MUSIC_SAGE_ENCOUNTER ; medium
+ db MUSIC_HIKER_ENCOUNTER ; boarder
+ db MUSIC_HIKER_ENCOUNTER ; pokefanm
+ db MUSIC_KIMONO_ENCOUNTER ; kimono_girl
+ db MUSIC_LASS_ENCOUNTER ; twins
+ db MUSIC_BEAUTY_ENCOUNTER ; pokefanf
+ db MUSIC_HIKER_ENCOUNTER ; red
+ db MUSIC_RIVAL_ENCOUNTER ; blue
+ db MUSIC_HIKER_ENCOUNTER ; officer
+ db MUSIC_ROCKET_ENCOUNTER ; gruntf
+ db MUSIC_HIKER_ENCOUNTER ; mysticalman
+ db MUSIC_HIKER_ENCOUNTER
+ db MUSIC_HIKER_ENCOUNTER
+ db MUSIC_HIKER_ENCOUNTER
--- /dev/null
+++ b/data/trainers/gendered_trainers.asm
@@ -1,0 +1,40 @@
+MaleTrainers: ; 4e95d
+ db BURGLAR
+ db YOUNGSTER
+ db SCHOOLBOY
+ db BIRD_KEEPER
+ db POKEMANIAC
+ db GENTLEMAN
+ db BUG_CATCHER
+ db FISHER
+ db SWIMMERM
+ db SAILOR
+ db SUPER_NERD
+ db GUITARIST
+ db HIKER
+ db FIREBREATHER
+ db BLACKBELT_T
+ db PSYCHIC_T
+ db CAMPER
+ db COOLTRAINERM
+ db BOARDER
+ db JUGGLER
+ db POKEFANM
+ db OFFICER
+ db SAGE
+ db BIKER
+ db SCIENTIST
+MaleTrainersEnd
+
+FemaleTrainers: ; 4e976
+ db MEDIUM
+ db LASS
+ db BEAUTY
+ db SKIER
+ db TEACHER
+ db SWIMMERF
+ db PICNICKER
+ db KIMONO_GIRL
+ db POKEFANF
+ db COOLTRAINERF
+FemaleTrainersEnd
--- /dev/null
+++ b/data/trainers/parties.asm
@@ -1,0 +1,8829 @@
+Trainers:
+
+; All trainers follow a basic structure:
+ ; Name
+ ; String in format "TEXT@"
+ ; Type
+ ; TRAINERTYPE_NORMAL: level, species
+ ; TRAINERTYPE_MOVES: level, species, moves
+ ; TRAINERTYPE_ITEM: level, species, item
+ ; TRAINERTYPE_ITEM_MOVES: level, species, item, moves
+ ; Party
+ ; Up to six monsters following the data type
+ ; $ff
+
+
+FalknerGroup:
+; ================================
+; ================
+
+ ; FALKNER (1)
+ db "FALKNER@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 7, PIDGEY
+ db TACKLE
+ db MUD_SLAP
+ db 0
+ db 0
+
+ db 9, PIDGEOTTO
+ db TACKLE
+ db MUD_SLAP
+ db GUST
+ db 0
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+WhitneyGroup:
+; ================================
+; ================
+
+ ; WHITNEY (1)
+ db "WHITNEY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 18, CLEFAIRY
+ db DOUBLESLAP
+ db MIMIC
+ db ENCORE
+ db METRONOME
+
+ db 20, MILTANK
+ db ROLLOUT
+ db ATTRACT
+ db STOMP
+ db MILK_DRINK
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BugsyGroup:
+; ================================
+; ================
+
+ ; BUGSY (1)
+ db "BUGSY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 14, METAPOD
+ db TACKLE
+ db STRING_SHOT
+ db HARDEN
+ db 0
+
+ db 14, KAKUNA
+ db POISON_STING
+ db STRING_SHOT
+ db HARDEN
+ db 0
+
+ db 16, SCYTHER
+ db QUICK_ATTACK
+ db LEER
+ db FURY_CUTTER
+ db 0
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+MortyGroup:
+; ================================
+; ================
+
+ ; MORTY (1)
+ db "MORTY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 21, GASTLY
+ db LICK
+ db SPITE
+ db MEAN_LOOK
+ db CURSE
+
+ db 21, HAUNTER
+ db HYPNOSIS
+ db MIMIC
+ db CURSE
+ db NIGHT_SHADE
+
+ db 25, GENGAR
+ db HYPNOSIS
+ db SHADOW_BALL
+ db MEAN_LOOK
+ db DREAM_EATER
+
+ db 23, HAUNTER
+ db SPITE
+ db MEAN_LOOK
+ db MIMIC
+ db NIGHT_SHADE
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+PryceGroup:
+; ================================
+; ================
+
+ ; PRYCE (1)
+ db "PRYCE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 27, SEEL
+ db HEADBUTT
+ db ICY_WIND
+ db AURORA_BEAM
+ db REST
+
+ db 29, DEWGONG
+ db HEADBUTT
+ db ICY_WIND
+ db AURORA_BEAM
+ db REST
+
+ db 31, PILOSWINE
+ db ICY_WIND
+ db FURY_ATTACK
+ db MIST
+ db BLIZZARD
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+JasmineGroup:
+; ================================
+; ================
+
+ ; JASMINE (1)
+ db "JASMINE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, MAGNEMITE
+ db THUNDERBOLT
+ db SUPERSONIC
+ db SONICBOOM
+ db THUNDER_WAVE
+
+ db 30, MAGNEMITE
+ db THUNDERBOLT
+ db SUPERSONIC
+ db SONICBOOM
+ db THUNDER_WAVE
+
+ db 35, STEELIX
+ db SCREECH
+ db SUNNY_DAY
+ db ROCK_THROW
+ db IRON_TAIL
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+ChuckGroup:
+; ================================
+; ================
+
+ ; CHUCK (1)
+ db "CHUCK@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 27, PRIMEAPE
+ db LEER
+ db RAGE
+ db KARATE_CHOP
+ db FURY_SWIPES
+
+ db 30, POLIWRATH
+ db HYPNOSIS
+ db MIND_READER
+ db SURF
+ db DYNAMICPUNCH
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+ClairGroup:
+; ================================
+; ================
+
+ ; CLAIR (1)
+ db "CLAIR@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 37, DRAGONAIR
+ db THUNDER_WAVE
+ db SURF
+ db SLAM
+ db DRAGONBREATH
+
+ db 37, DRAGONAIR
+ db THUNDER_WAVE
+ db THUNDERBOLT
+ db SLAM
+ db DRAGONBREATH
+
+ db 37, DRAGONAIR
+ db THUNDER_WAVE
+ db ICE_BEAM
+ db SLAM
+ db DRAGONBREATH
+
+ db 40, KINGDRA
+ db SMOKESCREEN
+ db SURF
+ db HYPER_BEAM
+ db DRAGONBREATH
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+Rival1Group:
+; ================================
+; ================
+
+ ; RIVAL1 (1)
+ db "?@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 5, CHIKORITA
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (2)
+ db "?@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 5, CYNDAQUIL
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (3)
+ db "?@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 5, TOTODILE
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (4)
+ db "?@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 12, GASTLY
+ db 14, ZUBAT
+ db 16, BAYLEEF
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (5)
+ db "?@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 12, GASTLY
+ db 14, ZUBAT
+ db 16, QUILAVA
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (6)
+ db "?@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 12, GASTLY
+ db 14, ZUBAT
+ db 16, CROCONAW
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (7)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 20, HAUNTER
+ db LICK
+ db SPITE
+ db MEAN_LOOK
+ db CURSE
+
+ db 18, MAGNEMITE
+ db TACKLE
+ db THUNDERSHOCK
+ db SUPERSONIC
+ db SONICBOOM
+
+ db 20, ZUBAT
+ db LEECH_LIFE
+ db SUPERSONIC
+ db BITE
+ db CONFUSE_RAY
+
+ db 22, BAYLEEF
+ db GROWL
+ db REFLECT
+ db RAZOR_LEAF
+ db POISONPOWDER
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (8)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 20, HAUNTER
+ db LICK
+ db SPITE
+ db MEAN_LOOK
+ db CURSE
+
+ db 18, MAGNEMITE
+ db TACKLE
+ db THUNDERSHOCK
+ db SUPERSONIC
+ db SONICBOOM
+
+ db 20, ZUBAT
+ db LEECH_LIFE
+ db SUPERSONIC
+ db BITE
+ db CONFUSE_RAY
+
+ db 22, QUILAVA
+ db LEER
+ db SMOKESCREEN
+ db EMBER
+ db QUICK_ATTACK
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (9)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 20, HAUNTER
+ db LICK
+ db SPITE
+ db MEAN_LOOK
+ db CURSE
+
+ db 18, MAGNEMITE
+ db TACKLE
+ db THUNDERSHOCK
+ db SUPERSONIC
+ db SONICBOOM
+
+ db 20, ZUBAT
+ db LEECH_LIFE
+ db SUPERSONIC
+ db BITE
+ db CONFUSE_RAY
+
+ db 22, CROCONAW
+ db LEER
+ db RAGE
+ db WATER_GUN
+ db BITE
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (10)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 28, MAGNEMITE
+ db TACKLE
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+
+ db 30, HAUNTER
+ db LICK
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+
+ db 32, SNEASEL
+ db LEER
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+
+ db 32, MEGANIUM
+ db REFLECT
+ db RAZOR_LEAF
+ db POISONPOWDER
+ db BODY_SLAM
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (11)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 28, MAGNEMITE
+ db TACKLE
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+
+ db 30, HAUNTER
+ db LICK
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+
+ db 32, SNEASEL
+ db LEER
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+
+ db 32, QUILAVA
+ db SMOKESCREEN
+ db EMBER
+ db QUICK_ATTACK
+ db FLAME_WHEEL
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (12)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 28, MAGNEMITE
+ db TACKLE
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+
+ db 30, HAUNTER
+ db LICK
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+
+ db 32, SNEASEL
+ db LEER
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+
+ db 32, FERALIGATR
+ db RAGE
+ db WATER_GUN
+ db BITE
+ db SCARY_FACE
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (13)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 34, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 36, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 35, MAGNETON
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 35, HAUNTER
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 35, KADABRA
+ db DISABLE
+ db PSYBEAM
+ db RECOVER
+ db FUTURE_SIGHT
+
+ db 38, MEGANIUM
+ db REFLECT
+ db RAZOR_LEAF
+ db POISONPOWDER
+ db BODY_SLAM
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (14)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 34, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 36, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 35, MAGNETON
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 35, HAUNTER
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 35, KADABRA
+ db DISABLE
+ db PSYBEAM
+ db RECOVER
+ db FUTURE_SIGHT
+
+ db 38, TYPHLOSION
+ db SMOKESCREEN
+ db EMBER
+ db QUICK_ATTACK
+ db FLAME_WHEEL
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL1 (15)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 34, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 36, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 34, MAGNETON
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 35, HAUNTER
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 35, KADABRA
+ db DISABLE
+ db PSYBEAM
+ db RECOVER
+ db FUTURE_SIGHT
+
+ db 38, FERALIGATR
+ db RAGE
+ db WATER_GUN
+ db SCARY_FACE
+ db SLASH
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+PokemonProfGroup:
+; ================================
+; ================
+; ================================
+
+
+WillGroup:
+; ================================
+; ================
+
+ ; WILL (1)
+ db "WILL@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 40, XATU
+ db QUICK_ATTACK
+ db FUTURE_SIGHT
+ db CONFUSE_RAY
+ db PSYCHIC_M
+
+ db 41, JYNX
+ db DOUBLESLAP
+ db LOVELY_KISS
+ db ICE_PUNCH
+ db PSYCHIC_M
+
+ db 41, EXEGGUTOR
+ db REFLECT
+ db LEECH_SEED
+ db EGG_BOMB
+ db PSYCHIC_M
+
+ db 41, SLOWBRO
+ db CURSE
+ db AMNESIA
+ db BODY_SLAM
+ db PSYCHIC_M
+
+ db 42, XATU
+ db QUICK_ATTACK
+ db FUTURE_SIGHT
+ db CONFUSE_RAY
+ db PSYCHIC_M
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+PKMNTrainerGroup:
+; ================================
+; ================
+
+ ; CAL (1)
+ db "CAL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, CHIKORITA
+ db 10, CYNDAQUIL
+ db 10, TOTODILE
+
+ db $ff ; end
+
+; ================
+
+ ; CAL (2)
+ db "CAL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, BAYLEEF
+ db 30, QUILAVA
+ db 30, CROCONAW
+
+ db $ff ; end
+
+; ================
+
+ ; CAL (3)
+ db "CAL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 50, MEGANIUM
+ db 50, TYPHLOSION
+ db 50, FERALIGATR
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BrunoGroup:
+; ================================
+; ================
+
+ ; BRUNO (1)
+ db "BRUNO@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 42, HITMONTOP
+ db PURSUIT
+ db QUICK_ATTACK
+ db DIG
+ db DETECT
+
+ db 42, HITMONLEE
+ db SWAGGER
+ db DOUBLE_KICK
+ db HI_JUMP_KICK
+ db FORESIGHT
+
+ db 42, HITMONCHAN
+ db THUNDERPUNCH
+ db ICE_PUNCH
+ db FIRE_PUNCH
+ db MACH_PUNCH
+
+ db 43, ONIX
+ db BIND
+ db EARTHQUAKE
+ db SANDSTORM
+ db ROCK_SLIDE
+
+ db 46, MACHAMP
+ db ROCK_SLIDE
+ db FORESIGHT
+ db VITAL_THROW
+ db CROSS_CHOP
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+KarenGroup:
+; ================================
+; ================
+
+ ; KAREN (1)
+ db "KAREN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 42, UMBREON
+ db SAND_ATTACK
+ db CONFUSE_RAY
+ db FAINT_ATTACK
+ db MEAN_LOOK
+
+ db 42, VILEPLUME
+ db STUN_SPORE
+ db ACID
+ db MOONLIGHT
+ db PETAL_DANCE
+
+ db 45, GENGAR
+ db LICK
+ db SPITE
+ db CURSE
+ db DESTINY_BOND
+
+ db 44, MURKROW
+ db QUICK_ATTACK
+ db WHIRLWIND
+ db PURSUIT
+ db FAINT_ATTACK
+
+ db 47, HOUNDOOM
+ db ROAR
+ db PURSUIT
+ db FLAMETHROWER
+ db CRUNCH
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+KogaGroup:
+; ================================
+; ================
+
+ ; KOGA (1)
+ db "KOGA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 40, ARIADOS
+ db DOUBLE_TEAM
+ db SPIDER_WEB
+ db BATON_PASS
+ db GIGA_DRAIN
+
+ db 41, VENOMOTH
+ db SUPERSONIC
+ db GUST
+ db PSYCHIC_M
+ db TOXIC
+
+ db 43, FORRETRESS
+ db PROTECT
+ db SWIFT
+ db EXPLOSION
+ db SPIKES
+
+ db 42, MUK
+ db MINIMIZE
+ db ACID_ARMOR
+ db SLUDGE_BOMB
+ db TOXIC
+
+ db 44, CROBAT
+ db DOUBLE_TEAM
+ db QUICK_ATTACK
+ db WING_ATTACK
+ db TOXIC
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+ChampionGroup:
+; ================================
+; ================
+
+ ; CHAMPION (1)
+ db "LANCE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 44, GYARADOS
+ db FLAIL
+ db RAIN_DANCE
+ db SURF
+ db HYPER_BEAM
+
+ db 47, DRAGONITE
+ db THUNDER_WAVE
+ db TWISTER
+ db THUNDER
+ db HYPER_BEAM
+
+ db 47, DRAGONITE
+ db THUNDER_WAVE
+ db TWISTER
+ db BLIZZARD
+ db HYPER_BEAM
+
+ db 46, AERODACTYL
+ db WING_ATTACK
+ db ANCIENTPOWER
+ db ROCK_SLIDE
+ db HYPER_BEAM
+
+ db 46, CHARIZARD
+ db FLAMETHROWER
+ db WING_ATTACK
+ db SLASH
+ db HYPER_BEAM
+
+ db 50, DRAGONITE
+ db FIRE_BLAST
+ db SAFEGUARD
+ db OUTRAGE
+ db HYPER_BEAM
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BrockGroup:
+; ================================
+; ================
+
+ ; BROCK (1)
+ db "BROCK@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 41, GRAVELER
+ db DEFENSE_CURL
+ db ROCK_SLIDE
+ db ROLLOUT
+ db EARTHQUAKE
+
+ db 41, RHYHORN
+ db FURY_ATTACK
+ db SCARY_FACE
+ db EARTHQUAKE
+ db HORN_DRILL
+
+ db 42, OMASTAR
+ db BITE
+ db SURF
+ db PROTECT
+ db SPIKE_CANNON
+
+ db 44, ONIX
+ db BIND
+ db ROCK_SLIDE
+ db BIDE
+ db SANDSTORM
+
+ db 42, KABUTOPS
+ db SLASH
+ db SURF
+ db ENDURE
+ db GIGA_DRAIN
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+MistyGroup:
+; ================================
+; ================
+
+ ; MISTY (1)
+ db "MISTY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 42, GOLDUCK
+ db SURF
+ db DISABLE
+ db PSYCH_UP
+ db PSYCHIC_M
+
+ db 42, QUAGSIRE
+ db SURF
+ db AMNESIA
+ db EARTHQUAKE
+ db RAIN_DANCE
+
+ db 44, LAPRAS
+ db SURF
+ db PERISH_SONG
+ db BLIZZARD
+ db RAIN_DANCE
+
+ db 47, STARMIE
+ db SURF
+ db CONFUSE_RAY
+ db RECOVER
+ db ICE_BEAM
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+LtSurgeGroup:
+; ================================
+; ================
+
+ ; LT_SURGE (1)
+ db "LT.SURGE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 44, RAICHU
+ db THUNDER_WAVE
+ db QUICK_ATTACK
+ db THUNDERBOLT
+ db THUNDER
+
+ db 40, ELECTRODE
+ db SCREECH
+ db DOUBLE_TEAM
+ db SWIFT
+ db EXPLOSION
+
+ db 40, MAGNETON
+ db LOCK_ON
+ db DOUBLE_TEAM
+ db SWIFT
+ db ZAP_CANNON
+
+ db 40, ELECTRODE
+ db SCREECH
+ db DOUBLE_TEAM
+ db SWIFT
+ db EXPLOSION
+
+ db 46, ELECTABUZZ
+ db QUICK_ATTACK
+ db THUNDERPUNCH
+ db LIGHT_SCREEN
+ db THUNDER
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+ScientistGroup:
+; ================================
+; ================
+
+ ; SCIENTIST (1)
+ db "ROSS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, KOFFING
+ db 22, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; SCIENTIST (2)
+ db "MITCH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, DITTO
+
+ db $ff ; end
+
+; ================
+
+ ; SCIENTIST (3)
+ db "JED@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, MAGNEMITE
+ db 20, MAGNEMITE
+ db 20, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+
+ ; SCIENTIST (4)
+ db "MARC@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, MAGNEMITE
+ db 27, MAGNEMITE
+ db 27, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+
+ ; SCIENTIST (5)
+ db "RICH@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, PORYGON
+ db CONVERSION
+ db CONVERSION2
+ db RECOVER
+ db TRI_ATTACK
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+ErikaGroup:
+; ================================
+; ================
+
+ ; ERIKA (1)
+ db "ERIKA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 42, TANGELA
+ db VINE_WHIP
+ db BIND
+ db GIGA_DRAIN
+ db SLEEP_POWDER
+
+ db 41, JUMPLUFF
+ db MEGA_DRAIN
+ db LEECH_SEED
+ db COTTON_SPORE
+ db GIGA_DRAIN
+
+ db 46, VICTREEBEL
+ db SUNNY_DAY
+ db SYNTHESIS
+ db ACID
+ db RAZOR_LEAF
+
+ db 46, BELLOSSOM
+ db SUNNY_DAY
+ db SYNTHESIS
+ db PETAL_DANCE
+ db SOLARBEAM
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+YoungsterGroup:
+; ================================
+; ================
+
+ ; YOUNGSTER (1)
+ db "JOEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 4, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (2)
+ db "MIKEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 2, PIDGEY
+ db 4, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (3)
+ db "ALBERT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 6, RATTATA
+ db 8, ZUBAT
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (4)
+ db "GORDON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, WOOPER
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (5)
+ db "SAMUEL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 7, RATTATA
+ db 10, SANDSHREW
+ db 8, SPEAROW
+ db 8, SPEAROW
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (6)
+ db "IAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, MANKEY
+ db 12, DIGLETT
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (7)
+ db "JOEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (8)
+ db "JOEY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 21, RATICATE
+ db TAIL_WHIP
+ db QUICK_ATTACK
+ db HYPER_FANG
+ db SCARY_FACE
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (9)
+ db "WARREN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, FEAROW
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (10)
+ db "JIMMY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, RATICATE
+ db 33, ARBOK
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (11)
+ db "OWEN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, GROWLITHE
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (12)
+ db "JASON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, SANDSLASH
+ db 33, CROBAT
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (13)
+ db "JOEY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, RATICATE
+ db TAIL_WHIP
+ db QUICK_ATTACK
+ db HYPER_FANG
+ db PURSUIT
+
+ db $ff ; end
+
+; ================
+
+ ; YOUNGSTER (14)
+ db "JOEY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 37, RATICATE
+ db HYPER_BEAM
+ db QUICK_ATTACK
+ db HYPER_FANG
+ db PURSUIT
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+SchoolboyGroup:
+; ================================
+; ================
+
+ ; SCHOOLBOY (1)
+ db "JACK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 12, ODDISH
+ db 15, VOLTORB
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (2)
+ db "KIPP@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, VOLTORB
+ db 27, MAGNEMITE
+ db 31, VOLTORB
+ db 31, MAGNETON
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (3)
+ db "ALAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, TANGELA
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (4)
+ db "JOHNNY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, BELLSPROUT
+ db 31, WEEPINBELL
+ db 33, VICTREEBEL
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (5)
+ db "DANNY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, JYNX
+ db 31, ELECTABUZZ
+ db 31, MAGMAR
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (6)
+ db "TOMMY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, XATU
+ db 34, ALAKAZAM
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (7)
+ db "DUDLEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, ODDISH
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (8)
+ db "JOE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, TANGELA
+ db 33, VAPOREON
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (9)
+ db "BILLY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, PARAS
+ db 27, PARAS
+ db 27, POLIWHIRL
+ db 35, DITTO
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (10)
+ db "CHAD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, MR__MIME
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (11)
+ db "NATE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, LEDIAN
+ db 32, EXEGGUTOR
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (12)
+ db "RICKY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, AIPOM
+ db 32, DITTO
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (13)
+ db "JACK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 14, ODDISH
+ db 17, VOLTORB
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (14)
+ db "JACK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, GLOOM
+ db 31, ELECTRODE
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (15)
+ db "ALAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, TANGELA
+ db 17, YANMA
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (16)
+ db "ALAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, NATU
+ db 22, TANGELA
+ db 20, QUAGSIRE
+ db 25, YANMA
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (17)
+ db "CHAD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, MR__MIME
+ db 19, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (18)
+ db "CHAD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, MR__MIME
+ db 31, MAGNETON
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (19)
+ db "JACK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, GLOOM
+ db 33, GROWLITHE
+ db 33, ELECTRODE
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (20)
+ db "JACK@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 35, ELECTRODE
+ db SCREECH
+ db SONICBOOM
+ db ROLLOUT
+ db LIGHT_SCREEN
+
+ db 35, GROWLITHE
+ db SUNNY_DAY
+ db LEER
+ db TAKE_DOWN
+ db FLAME_WHEEL
+
+ db 37, VILEPLUME
+ db SOLARBEAM
+ db SLEEP_POWDER
+ db ACID
+ db MOONLIGHT
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (21)
+ db "ALAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, NATU
+ db 27, TANGELA
+ db 30, QUAGSIRE
+ db 30, YANMA
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (22)
+ db "ALAN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 35, XATU
+ db PECK
+ db NIGHT_SHADE
+ db SWIFT
+ db FUTURE_SIGHT
+
+ db 32, TANGELA
+ db POISONPOWDER
+ db VINE_WHIP
+ db BIND
+ db MEGA_DRAIN
+
+ db 32, YANMA
+ db QUICK_ATTACK
+ db DOUBLE_TEAM
+ db SONICBOOM
+ db SUPERSONIC
+
+ db 35, QUAGSIRE
+ db TAIL_WHIP
+ db SLAM
+ db AMNESIA
+ db EARTHQUAKE
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (23)
+ db "CHAD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, MR__MIME
+ db 34, MAGNETON
+
+ db $ff ; end
+
+; ================
+
+ ; SCHOOLBOY (24)
+ db "CHAD@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 34, MR__MIME
+ db PSYCHIC_M
+ db LIGHT_SCREEN
+ db REFLECT
+ db ENCORE
+
+ db 38, MAGNETON
+ db ZAP_CANNON
+ db THUNDER_WAVE
+ db LOCK_ON
+ db SWIFT
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BirdKeeperGroup:
+; ================================
+; ================
+
+ ; BIRD_KEEPER (1)
+ db "ROD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 7, PIDGEY
+ db 7, PIDGEY
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (2)
+ db "ABE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, SPEAROW
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (3)
+ db "BRYAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 12, PIDGEY
+ db 14, PIDGEOTTO
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (4)
+ db "THEO@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, PIDGEY
+ db 15, PIDGEY
+ db 19, PIDGEY
+ db 15, PIDGEY
+ db 15, PIDGEY
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (5)
+ db "TOBY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, DODUO
+ db 16, DODUO
+ db 17, DODUO
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (6)
+ db "DENIS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, SPEAROW
+ db 20, FEAROW
+ db 18, SPEAROW
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (7)
+ db "VANCE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, PIDGEOTTO
+ db 25, PIDGEOTTO
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (8)
+ db "HANK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 12, PIDGEY
+ db 34, PIDGEOT
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (9)
+ db "ROY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, FEAROW
+ db 35, FEAROW
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (10)
+ db "BORIS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, DODUO
+ db 28, DODUO
+ db 32, DODRIO
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (11)
+ db "BOB@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, NOCTOWL
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (12)
+ db "JOSE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 36, FARFETCH_D
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (13)
+ db "PETER@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 6, PIDGEY
+ db 6, PIDGEY
+ db 8, SPEAROW
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (14)
+ db "JOSE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, FARFETCH_D
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (15)
+ db "PERRY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, FARFETCH_D
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (16)
+ db "BRET@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, PIDGEOTTO
+ db 32, FEAROW
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (17)
+ db "JOSE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 40, FARFETCH_D
+ db FURY_ATTACK
+ db DETECT
+ db FLY
+ db SLASH
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (18)
+ db "VANCE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, PIDGEOTTO
+ db 32, PIDGEOTTO
+
+ db $ff ; end
+
+; ================
+
+ ; BIRD_KEEPER (19)
+ db "VANCE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 38, PIDGEOT
+ db TOXIC
+ db QUICK_ATTACK
+ db WHIRLWIND
+ db FLY
+
+ db 38, PIDGEOT
+ db SWIFT
+ db DETECT
+ db STEEL_WING
+ db FLY
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+LassGroup:
+; ================================
+; ================
+
+ ; LASS (1)
+ db "CARRIE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 18, SNUBBULL
+ db SCARY_FACE
+ db CHARM
+ db BITE
+ db LICK
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (2)
+ db "BRIDGET@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, JIGGLYPUFF
+ db 15, JIGGLYPUFF
+ db 15, JIGGLYPUFF
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (3)
+ db "ALICE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, GLOOM
+ db 34, ARBOK
+ db 30, GLOOM
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (4)
+ db "KRISE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 12, ODDISH
+ db 15, CUBONE
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (5)
+ db "CONNIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 21, MARILL
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (6)
+ db "LINDA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, BULBASAUR
+ db 32, IVYSAUR
+ db 34, VENUSAUR
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (7)
+ db "LAURA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, GLOOM
+ db 31, PIDGEOTTO
+ db 31, BELLOSSOM
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (8)
+ db "SHANNON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, PARAS
+ db 29, PARAS
+ db 32, PARASECT
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (9)
+ db "MICHELLE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, SKIPLOOM
+ db 33, HOPPIP
+ db 34, JUMPLUFF
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (10)
+ db "DANA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 18, FLAAFFY
+ db TACKLE
+ db GROWL
+ db THUNDERSHOCK
+ db THUNDER_WAVE
+
+ db 18, PSYDUCK
+ db SCRATCH
+ db TAIL_WHIP
+ db DISABLE
+ db CONFUSION
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (11)
+ db "ELLEN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, WIGGLYTUFF
+ db 34, GRANBULL
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (12)
+ db "CONNIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 21, MARILL
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (13)
+ db "CONNIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 21, MARILL
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (14)
+ db "DANA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 21, FLAAFFY
+ db TACKLE
+ db GROWL
+ db THUNDERSHOCK
+ db THUNDER_WAVE
+
+ db 21, PSYDUCK
+ db SCRATCH
+ db TAIL_WHIP
+ db DISABLE
+ db CONFUSION
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (15)
+ db "DANA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 29, PSYDUCK
+ db SCRATCH
+ db DISABLE
+ db CONFUSION
+ db SCREECH
+
+ db 29, AMPHAROS
+ db TACKLE
+ db THUNDERSHOCK
+ db THUNDER_WAVE
+ db COTTON_SPORE
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (16)
+ db "DANA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 32, PSYDUCK
+ db SCRATCH
+ db DISABLE
+ db CONFUSION
+ db SCREECH
+
+ db 32, AMPHAROS
+ db TACKLE
+ db THUNDERPUNCH
+ db THUNDER_WAVE
+ db COTTON_SPORE
+
+ db $ff ; end
+
+; ================
+
+ ; LASS (17)
+ db "DANA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 36, AMPHAROS
+ db SWIFT
+ db THUNDERPUNCH
+ db THUNDER_WAVE
+ db COTTON_SPORE
+
+ db 36, GOLDUCK
+ db DISABLE
+ db SURF
+ db PSYCHIC_M
+ db SCREECH
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+JanineGroup:
+; ================================
+; ================
+
+ ; JANINE (1)
+ db "JANINE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 36, CROBAT
+ db SCREECH
+ db SUPERSONIC
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 36, WEEZING
+ db SMOG
+ db SLUDGE_BOMB
+ db TOXIC
+ db EXPLOSION
+
+ db 36, WEEZING
+ db SMOG
+ db SLUDGE_BOMB
+ db TOXIC
+ db EXPLOSION
+
+ db 33, ARIADOS
+ db SCARY_FACE
+ db GIGA_DRAIN
+ db STRING_SHOT
+ db NIGHT_SHADE
+
+ db 39, VENOMOTH
+ db FORESIGHT
+ db DOUBLE_TEAM
+ db GUST
+ db PSYCHIC_M
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+CooltrainerMGroup:
+; ================================
+; ================
+
+ ; COOLTRAINERM (1)
+ db "NICK@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 26, CHARMANDER
+ db EMBER
+ db SMOKESCREEN
+ db RAGE
+ db SCARY_FACE
+
+ db 26, SQUIRTLE
+ db WITHDRAW
+ db WATER_GUN
+ db BITE
+ db CURSE
+
+ db 26, BULBASAUR
+ db LEECH_SEED
+ db POISONPOWDER
+ db SLEEP_POWDER
+ db RAZOR_LEAF
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (2)
+ db "AARON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, IVYSAUR
+ db 24, CHARMELEON
+ db 24, WARTORTLE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (3)
+ db "PAUL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, DRATINI
+ db 34, DRATINI
+ db 34, DRATINI
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (4)
+ db "CODY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, HORSEA
+ db 36, SEADRA
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (5)
+ db "MIKE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 37, DRAGONAIR
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (6)
+ db "GAVEN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 35, VICTREEBEL
+ db WRAP
+ db TOXIC
+ db ACID
+ db RAZOR_LEAF
+
+ db 35, KINGLER
+ db BUBBLEBEAM
+ db STOMP
+ db GUILLOTINE
+ db PROTECT
+
+ db 35, FLAREON
+ db SAND_ATTACK
+ db QUICK_ATTACK
+ db BITE
+ db FIRE_SPIN
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (7)
+ db "GAVEN@"
+ db TRAINERTYPE_ITEM_MOVES
+
+ ; party
+
+ db 39, VICTREEBEL, NO_ITEM
+ db GIGA_DRAIN
+ db TOXIC
+ db SLUDGE_BOMB
+ db RAZOR_LEAF
+
+ db 39, KINGLER, KINGS_ROCK
+ db SURF
+ db STOMP
+ db GUILLOTINE
+ db BLIZZARD
+
+ db 39, FLAREON, NO_ITEM
+ db FLAMETHROWER
+ db QUICK_ATTACK
+ db BITE
+ db FIRE_SPIN
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (8)
+ db "RYAN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 25, PIDGEOT
+ db SAND_ATTACK
+ db QUICK_ATTACK
+ db WHIRLWIND
+ db WING_ATTACK
+
+ db 27, ELECTABUZZ
+ db THUNDERPUNCH
+ db LIGHT_SCREEN
+ db SWIFT
+ db SCREECH
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (9)
+ db "JAKE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 33, PARASECT
+ db LEECH_LIFE
+ db SPORE
+ db SLASH
+ db SWORDS_DANCE
+
+ db 35, GOLDUCK
+ db CONFUSION
+ db SCREECH
+ db PSYCH_UP
+ db FURY_SWIPES
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (10)
+ db "GAVEN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 32, VICTREEBEL
+ db WRAP
+ db TOXIC
+ db ACID
+ db RAZOR_LEAF
+
+ db 32, KINGLER
+ db BUBBLEBEAM
+ db STOMP
+ db GUILLOTINE
+ db PROTECT
+
+ db 32, FLAREON
+ db SAND_ATTACK
+ db QUICK_ATTACK
+ db BITE
+ db FIRE_SPIN
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (11)
+ db "BLAKE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 33, MAGNETON
+ db THUNDERBOLT
+ db SUPERSONIC
+ db SWIFT
+ db SCREECH
+
+ db 31, QUAGSIRE
+ db WATER_GUN
+ db SLAM
+ db AMNESIA
+ db EARTHQUAKE
+
+ db 31, EXEGGCUTE
+ db LEECH_SEED
+ db CONFUSION
+ db SLEEP_POWDER
+ db SOLARBEAM
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (12)
+ db "BRIAN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 35, SANDSLASH
+ db SAND_ATTACK
+ db POISON_STING
+ db SLASH
+ db SWIFT
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (13)
+ db "ERICK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, BULBASAUR
+ db 10, CHARMANDER
+ db 10, SQUIRTLE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (14)
+ db "ANDY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, BULBASAUR
+ db 10, CHARMANDER
+ db 10, SQUIRTLE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (15)
+ db "TYLER@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, BULBASAUR
+ db 10, CHARMANDER
+ db 10, SQUIRTLE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (16)
+ db "SEAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, FLAREON
+ db 35, TANGELA
+ db 35, TAUROS
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (17)
+ db "KEVIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 38, RHYHORN
+ db 35, CHARMELEON
+ db 35, WARTORTLE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (18)
+ db "STEVE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 14, BULBASAUR
+ db 14, CHARMANDER
+ db 14, SQUIRTLE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (19)
+ db "ALLEN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 27, CHARMELEON
+ db EMBER
+ db SMOKESCREEN
+ db RAGE
+ db SCARY_FACE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERM (20)
+ db "DARIN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 37, DRAGONAIR
+ db WRAP
+ db SURF
+ db DRAGON_RAGE
+ db SLAM
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+CooltrainerFGroup:
+; ================================
+; ================
+
+ ; COOLTRAINERF (1)
+ db "GWEN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, EEVEE
+ db 22, FLAREON
+ db 22, VAPOREON
+ db 22, JOLTEON
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (2)
+ db "LOIS@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 25, SKIPLOOM
+ db SYNTHESIS
+ db POISONPOWDER
+ db MEGA_DRAIN
+ db LEECH_SEED
+
+ db 25, NINETALES
+ db EMBER
+ db QUICK_ATTACK
+ db CONFUSE_RAY
+ db SAFEGUARD
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (3)
+ db "FRAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 37, SEADRA
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (4)
+ db "LOLA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, DRATINI
+ db 36, DRAGONAIR
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (5)
+ db "KATE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, SHELLDER
+ db 28, CLOYSTER
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (6)
+ db "IRENE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, GOLDEEN
+ db 24, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (7)
+ db "KELLY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, MARILL
+ db 24, WARTORTLE
+ db 24, WARTORTLE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (8)
+ db "JOYCE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 36, PIKACHU
+ db QUICK_ATTACK
+ db DOUBLE_TEAM
+ db THUNDERBOLT
+ db THUNDER
+
+ db 32, BLASTOISE
+ db BITE
+ db CURSE
+ db SURF
+ db RAIN_DANCE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (9)
+ db "BETH@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 36, RAPIDASH
+ db STOMP
+ db FIRE_SPIN
+ db FURY_ATTACK
+ db AGILITY
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (10)
+ db "REENA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, STARMIE
+ db 33, NIDOQUEEN
+ db 31, STARMIE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (11)
+ db "MEGAN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 32, BULBASAUR
+ db GROWL
+ db LEECH_SEED
+ db POISONPOWDER
+ db RAZOR_LEAF
+
+ db 32, IVYSAUR
+ db GROWL
+ db LEECH_SEED
+ db POISONPOWDER
+ db RAZOR_LEAF
+
+ db 32, VENUSAUR
+ db BODY_SLAM
+ db SLEEP_POWDER
+ db RAZOR_LEAF
+ db SWEET_SCENT
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (12)
+ db "BETH@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 39, RAPIDASH
+ db STOMP
+ db FIRE_SPIN
+ db FURY_ATTACK
+ db AGILITY
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (13)
+ db "CAROL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, ELECTRODE
+ db 35, STARMIE
+ db 35, NINETALES
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (14)
+ db "QUINN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 38, IVYSAUR
+ db 38, STARMIE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (15)
+ db "EMMA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, POLIWHIRL
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (16)
+ db "CYBIL@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 25, BUTTERFREE
+ db CONFUSION
+ db SLEEP_POWDER
+ db WHIRLWIND
+ db GUST
+
+ db 25, BELLOSSOM
+ db ABSORB
+ db STUN_SPORE
+ db ACID
+ db SOLARBEAM
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (17)
+ db "JENN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, STARYU
+ db 26, STARMIE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (18)
+ db "BETH@"
+ db TRAINERTYPE_ITEM_MOVES
+
+ ; party
+
+ db 43, RAPIDASH, FOCUS_BAND
+ db STOMP
+ db FIRE_SPIN
+ db FURY_ATTACK
+ db FIRE_BLAST
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (19)
+ db "REENA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, STARMIE
+ db 36, NIDOQUEEN
+ db 34, STARMIE
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (20)
+ db "REENA@"
+ db TRAINERTYPE_ITEM_MOVES
+
+ ; party
+
+ db 38, STARMIE, NO_ITEM
+ db DOUBLE_TEAM
+ db PSYCHIC_M
+ db WATERFALL
+ db CONFUSE_RAY
+
+ db 40, NIDOQUEEN, PINK_BOW
+ db EARTHQUAKE
+ db DOUBLE_KICK
+ db TOXIC
+ db BODY_SLAM
+
+ db 38, STARMIE, NO_ITEM
+ db BLIZZARD
+ db PSYCHIC_M
+ db WATERFALL
+ db RECOVER
+
+ db $ff ; end
+
+; ================
+
+ ; COOLTRAINERF (21)
+ db "CARA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 33, HORSEA
+ db SMOKESCREEN
+ db LEER
+ db WHIRLPOOL
+ db TWISTER
+
+ db 33, HORSEA
+ db SMOKESCREEN
+ db LEER
+ db WHIRLPOOL
+ db TWISTER
+
+ db 35, SEADRA
+ db SWIFT
+ db LEER
+ db WATERFALL
+ db TWISTER
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BeautyGroup:
+; ================================
+; ================
+
+ ; BEAUTY (1)
+ db "VICTORIA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, SENTRET
+ db 13, SENTRET
+ db 17, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (2)
+ db "SAMANTHA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 16, MEOWTH
+ db SCRATCH
+ db GROWL
+ db BITE
+ db PAY_DAY
+
+ db 16, MEOWTH
+ db SCRATCH
+ db GROWL
+ db BITE
+ db SLASH
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (3)
+ db "JULIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (4)
+ db "JACLYN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (5)
+ db "BRENDA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, FURRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (6)
+ db "CASSIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, VILEPLUME
+ db 34, BUTTERFREE
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (7)
+ db "CAROLINE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, MARILL
+ db 32, SEEL
+ db 30, MARILL
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (8)
+ db "CARLENE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (9)
+ db "JESSICA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (10)
+ db "RACHAEL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (11)
+ db "ANGELICA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (12)
+ db "KENDRA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (13)
+ db "VERONICA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (14)
+ db "JULIA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, PARAS
+ db 32, EXEGGCUTE
+ db 35, PARASECT
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (15)
+ db "THERESA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, SENTRET
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (16)
+ db "VALERIE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 17, HOPPIP
+ db SYNTHESIS
+ db TAIL_WHIP
+ db TACKLE
+ db POISONPOWDER
+
+ db 17, SKIPLOOM
+ db SYNTHESIS
+ db TAIL_WHIP
+ db TACKLE
+ db STUN_SPORE
+
+ db $ff ; end
+
+; ================
+
+ ; BEAUTY (17)
+ db "OLIVIA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, CORSOLA
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+PokemaniacGroup:
+; ================================
+; ================
+
+ ; POKEMANIAC (1)
+ db "LARRY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, SLOWPOKE
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (2)
+ db "ANDREW@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, MAROWAK
+ db 24, MAROWAK
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (3)
+ db "CALVIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, KANGASKHAN
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (4)
+ db "SHANE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, NIDORINA
+ db 16, NIDORINO
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (5)
+ db "BEN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, SLOWBRO
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (6)
+ db "BRENT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, LICKITUNG
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (7)
+ db "RON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, NIDOKING
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (8)
+ db "ETHAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, RHYHORN
+ db 31, RHYDON
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (9)
+ db "BRENT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, KANGASKHAN
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (10)
+ db "BRENT@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 36, PORYGON
+ db RECOVER
+ db PSYCHIC_M
+ db CONVERSION2
+ db TRI_ATTACK
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (11)
+ db "ISSAC@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 12, LICKITUNG
+ db LICK
+ db SUPERSONIC
+ db CUT
+ db 0
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (12)
+ db "DONALD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, SLOWPOKE
+ db 10, SLOWPOKE
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (13)
+ db "ZACH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, RHYHORN
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (14)
+ db "BRENT@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 41, CHANSEY
+ db ROLLOUT
+ db ATTRACT
+ db EGG_BOMB
+ db SOFTBOILED
+
+ db $ff ; end
+
+; ================
+
+ ; POKEMANIAC (15)
+ db "MILLER@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, NIDOKING
+ db 17, NIDOQUEEN
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+GruntMGroup:
+; ================================
+; ================
+
+ ; GRUNTM (1)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 14, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (2)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 7, RATTATA
+ db 9, ZUBAT
+ db 9, ZUBAT
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (3)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, RATICATE
+ db 24, RATICATE
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (4)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, GRIMER
+ db 23, GRIMER
+ db 25, MUK
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (5)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 21, RATTATA
+ db 21, RATTATA
+ db 23, RATTATA
+ db 23, RATTATA
+ db 23, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (6)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, ZUBAT
+ db 26, ZUBAT
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (7)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, KOFFING
+ db 23, GRIMER
+ db 23, ZUBAT
+ db 23, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (8)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, WEEZING
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (9)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, RATICATE
+ db 26, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (10)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, ZUBAT
+ db 24, GOLBAT
+ db 22, GRIMER
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (11)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, MUK
+ db 23, KOFFING
+ db 25, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (12)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, HOUNDOUR
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (13)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (14)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, RATICATE
+ db 24, GOLBAT
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (15)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, GRIMER
+ db 23, WEEZING
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (16)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, RATTATA
+ db 16, RATTATA
+ db 16, RATTATA
+ db 16, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (17)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, GOLBAT
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (18)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, RATTATA
+ db 17, ZUBAT
+ db 17, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (19)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, VENONAT
+ db 18, VENONAT
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (20)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, DROWZEE
+ db 19, ZUBAT
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (21)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, ZUBAT
+ db 17, GRIMER
+ db 18, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (22)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 36, GOLBAT
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (23)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (24)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, KOFFING
+ db 25, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (25)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, KOFFING
+ db 24, MUK
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (26)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, RATTATA
+ db 15, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (27)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, ZUBAT
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (28)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, RATICATE
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (29)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, RATTATA
+ db 9, RATTATA
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (30)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, GOLBAT
+ db 25, GOLBAT
+ db 30, ARBOK
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTM (31)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, GOLBAT
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+GentlemanGroup:
+; ================================
+; ================
+
+ ; GENTLEMAN (1)
+ db "PRESTON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, GROWLITHE
+ db 18, GROWLITHE
+
+ db $ff ; end
+
+; ================
+
+ ; GENTLEMAN (2)
+ db "EDWARD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, PERSIAN
+
+ db $ff ; end
+
+; ================
+
+ ; GENTLEMAN (3)
+ db "GREGORY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 37, PIKACHU
+ db 33, FLAAFFY
+
+ db $ff ; end
+
+; ================
+
+ ; GENTLEMAN (4)
+ db "VIRGIL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, PONYTA
+
+ db $ff ; end
+
+; ================
+
+ ; GENTLEMAN (5)
+ db "ALFRED@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, NOCTOWL
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+SkierGroup:
+; ================================
+; ================
+
+ ; SKIER (1)
+ db "ROXANNE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, JYNX
+
+ db $ff ; end
+
+; ================
+
+ ; SKIER (2)
+ db "CLARISSA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, DEWGONG
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+TeacherGroup:
+; ================================
+; ================
+
+ ; TEACHER (1)
+ db "COLETTE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 36, CLEFAIRY
+
+ db $ff ; end
+
+; ================
+
+ ; TEACHER (2)
+ db "HILLARY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, AIPOM
+ db 36, CUBONE
+
+ db $ff ; end
+
+; ================
+
+ ; TEACHER (3)
+ db "SHIRLEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, JIGGLYPUFF
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+SabrinaGroup:
+; ================================
+; ================
+
+ ; SABRINA (1)
+ db "SABRINA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 46, ESPEON
+ db SAND_ATTACK
+ db QUICK_ATTACK
+ db SWIFT
+ db PSYCHIC_M
+
+ db 46, MR__MIME
+ db BARRIER
+ db REFLECT
+ db BATON_PASS
+ db PSYCHIC_M
+
+ db 48, ALAKAZAM
+ db RECOVER
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+ db REFLECT
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BugCatcherGroup:
+; ================================
+; ================
+
+ ; BUG_CATCHER (1)
+ db "DON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 3, CATERPIE
+ db 3, CATERPIE
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (2)
+ db "ROB@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, BEEDRILL
+ db 32, BUTTERFREE
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (3)
+ db "ED@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, BEEDRILL
+ db 30, BEEDRILL
+ db 30, BEEDRILL
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (4)
+ db "WADE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 2, CATERPIE
+ db 2, CATERPIE
+ db 3, WEEDLE
+ db 2, CATERPIE
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (5)
+ db "BENNY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 7, WEEDLE
+ db 9, KAKUNA
+ db 12, BEEDRILL
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (6)
+ db "AL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 12, CATERPIE
+ db 12, WEEDLE
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (7)
+ db "JOSH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 13, PARAS
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (8)
+ db "ARNIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, VENONAT
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (9)
+ db "KEN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, ARIADOS
+ db 32, PINSIR
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (10)
+ db "WADE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, METAPOD
+ db 9, METAPOD
+ db 10, KAKUNA
+ db 9, METAPOD
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (11)
+ db "WADE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 14, BUTTERFREE
+ db 14, BUTTERFREE
+ db 15, BEEDRILL
+ db 14, BUTTERFREE
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (12)
+ db "DOUG@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, ARIADOS
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (13)
+ db "ARNIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, VENONAT
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (14)
+ db "ARNIE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 28, VENOMOTH
+ db DISABLE
+ db SUPERSONIC
+ db CONFUSION
+ db LEECH_LIFE
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (15)
+ db "WADE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 24, BUTTERFREE
+ db CONFUSION
+ db POISONPOWDER
+ db SUPERSONIC
+ db WHIRLWIND
+
+ db 24, BUTTERFREE
+ db CONFUSION
+ db STUN_SPORE
+ db SUPERSONIC
+ db WHIRLWIND
+
+ db 25, BEEDRILL
+ db FURY_ATTACK
+ db FOCUS_ENERGY
+ db TWINEEDLE
+ db RAGE
+
+ db 24, BUTTERFREE
+ db CONFUSION
+ db SLEEP_POWDER
+ db SUPERSONIC
+ db WHIRLWIND
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (16)
+ db "WADE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, BUTTERFREE
+ db CONFUSION
+ db POISONPOWDER
+ db SUPERSONIC
+ db GUST
+
+ db 30, BUTTERFREE
+ db CONFUSION
+ db STUN_SPORE
+ db SUPERSONIC
+ db GUST
+
+ db 32, BEEDRILL
+ db FURY_ATTACK
+ db PURSUIT
+ db TWINEEDLE
+ db DOUBLE_TEAM
+
+ db 34, BUTTERFREE
+ db PSYBEAM
+ db SLEEP_POWDER
+ db GUST
+ db WHIRLWIND
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (17)
+ db "ARNIE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 36, VENOMOTH
+ db GUST
+ db SUPERSONIC
+ db PSYBEAM
+ db LEECH_LIFE
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (18)
+ db "ARNIE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 40, VENOMOTH
+ db GUST
+ db SUPERSONIC
+ db PSYCHIC_M
+ db TOXIC
+
+ db $ff ; end
+
+; ================
+
+ ; BUG_CATCHER (19)
+ db "WAYNE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 8, LEDYBA
+ db 10, PARAS
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+FisherGroup:
+; ================================
+; ================
+
+ ; FISHER (1)
+ db "JUSTIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 5, MAGIKARP
+ db 5, MAGIKARP
+ db 15, MAGIKARP
+ db 5, MAGIKARP
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (2)
+ db "RALPH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, GOLDEEN
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (3)
+ db "ARNOLD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, TENTACRUEL
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (4)
+ db "KYLE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, SEAKING
+ db 31, POLIWHIRL
+ db 31, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (5)
+ db "HENRY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 8, POLIWAG
+ db 8, POLIWAG
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (6)
+ db "MARVIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, MAGIKARP
+ db 10, GYARADOS
+ db 15, MAGIKARP
+ db 15, GYARADOS
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (7)
+ db "TULLY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, QWILFISH
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (8)
+ db "ANDRE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, GYARADOS
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (9)
+ db "RAYMOND@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, MAGIKARP
+ db 22, MAGIKARP
+ db 22, MAGIKARP
+ db 22, MAGIKARP
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (10)
+ db "WILTON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, GOLDEEN
+ db 23, GOLDEEN
+ db 25, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (11)
+ db "EDGAR@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 25, REMORAID
+ db LOCK_ON
+ db PSYBEAM
+ db AURORA_BEAM
+ db BUBBLEBEAM
+
+ db 25, REMORAID
+ db LOCK_ON
+ db PSYBEAM
+ db AURORA_BEAM
+ db BUBBLEBEAM
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (12)
+ db "JONAH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, SHELLDER
+ db 29, OCTILLERY
+ db 25, REMORAID
+ db 29, CLOYSTER
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (13)
+ db "MARTIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, REMORAID
+ db 32, REMORAID
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (14)
+ db "STEPHEN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, MAGIKARP
+ db 25, MAGIKARP
+ db 31, QWILFISH
+ db 31, TENTACRUEL
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (15)
+ db "BARNEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, GYARADOS
+ db 30, GYARADOS
+ db 30, GYARADOS
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (16)
+ db "RALPH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, GOLDEEN
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (17)
+ db "RALPH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, QWILFISH
+ db 19, GOLDEEN
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (18)
+ db "TULLY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, QWILFISH
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (19)
+ db "TULLY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, GOLDEEN
+ db 32, GOLDEEN
+ db 32, QWILFISH
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (20)
+ db "WILTON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, GOLDEEN
+ db 29, GOLDEEN
+ db 32, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (21)
+ db "SCOTT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, QWILFISH
+ db 30, QWILFISH
+ db 34, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (22)
+ db "WILTON@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 34, SEAKING
+ db SUPERSONIC
+ db WATERFALL
+ db FLAIL
+ db FURY_ATTACK
+
+ db 34, SEAKING
+ db SUPERSONIC
+ db WATERFALL
+ db FLAIL
+ db FURY_ATTACK
+
+ db 38, REMORAID
+ db PSYBEAM
+ db AURORA_BEAM
+ db BUBBLEBEAM
+ db HYPER_BEAM
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (23)
+ db "RALPH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, QWILFISH
+ db 32, GOLDEEN
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (24)
+ db "RALPH@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 35, QWILFISH
+ db TOXIC
+ db MINIMIZE
+ db SURF
+ db PIN_MISSILE
+
+ db 39, SEAKING
+ db ENDURE
+ db FLAIL
+ db FURY_ATTACK
+ db WATERFALL
+
+ db $ff ; end
+
+; ================
+
+ ; FISHER (25)
+ db "TULLY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 34, SEAKING
+ db SUPERSONIC
+ db RAIN_DANCE
+ db WATERFALL
+ db FURY_ATTACK
+
+ db 34, SEAKING
+ db SUPERSONIC
+ db RAIN_DANCE
+ db WATERFALL
+ db FURY_ATTACK
+
+ db 37, QWILFISH
+ db ROLLOUT
+ db SURF
+ db PIN_MISSILE
+ db TAKE_DOWN
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+SwimmerMGroup:
+; ================================
+; ================
+
+ ; SWIMMERM (1)
+ db "HAROLD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, REMORAID
+ db 30, SEADRA
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (2)
+ db "SIMON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, TENTACOOL
+ db 20, TENTACOOL
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (3)
+ db "RANDALL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, SHELLDER
+ db 20, WARTORTLE
+ db 18, SHELLDER
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (4)
+ db "CHARLIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 21, SHELLDER
+ db 19, TENTACOOL
+ db 19, TENTACRUEL
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (5)
+ db "GEORGE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, TENTACOOL
+ db 17, TENTACOOL
+ db 16, TENTACOOL
+ db 19, STARYU
+ db 17, TENTACOOL
+ db 19, REMORAID
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (6)
+ db "BERKE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, QWILFISH
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (7)
+ db "KIRK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, GYARADOS
+ db 20, GYARADOS
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (8)
+ db "MATHEW@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, KRABBY
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (9)
+ db "HAL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, SEEL
+ db 25, DEWGONG
+ db 24, SEEL
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (10)
+ db "PATON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, PILOSWINE
+ db 26, PILOSWINE
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (11)
+ db "DARYL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, SHELLDER
+ db 25, CLOYSTER
+ db 24, SHELLDER
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (12)
+ db "WALTER@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, HORSEA
+ db 15, HORSEA
+ db 20, SEADRA
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (13)
+ db "TONY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 13, STARYU
+ db 18, STARMIE
+ db 16, HORSEA
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (14)
+ db "JEROME@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, SEADRA
+ db 28, TENTACOOL
+ db 30, TENTACRUEL
+ db 28, GOLDEEN
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (15)
+ db "TUCKER@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, SHELLDER
+ db 34, CLOYSTER
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (16)
+ db "RICK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 13, STARYU
+ db 18, STARMIE
+ db 16, HORSEA
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (17)
+ db "CAMERON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, MARILL
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (18)
+ db "SETH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, QUAGSIRE
+ db 29, OCTILLERY
+ db 32, QUAGSIRE
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (19)
+ db "JAMES@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 13, STARYU
+ db 18, STARMIE
+ db 16, HORSEA
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (20)
+ db "LEWIS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 13, STARYU
+ db 18, STARMIE
+ db 16, HORSEA
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERM (21)
+ db "PARKER@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, HORSEA
+ db 32, HORSEA
+ db 35, SEADRA
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+SwimmerFGroup:
+; ================================
+; ================
+
+ ; SWIMMERF (1)
+ db "ELAINE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 21, STARYU
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (2)
+ db "PAULA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, STARYU
+ db 19, SHELLDER
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (3)
+ db "KAYLEE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, GOLDEEN
+ db 20, GOLDEEN
+ db 20, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (4)
+ db "SUSIE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 20, PSYDUCK
+ db SCRATCH
+ db TAIL_WHIP
+ db DISABLE
+ db CONFUSION
+
+ db 22, GOLDEEN
+ db PECK
+ db TAIL_WHIP
+ db SUPERSONIC
+ db HORN_ATTACK
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (5)
+ db "DENISE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, SEEL
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (6)
+ db "KARA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, STARYU
+ db 20, STARMIE
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (7)
+ db "WENDY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 21, HORSEA
+ db BUBBLE
+ db SMOKESCREEN
+ db LEER
+ db WATER_GUN
+
+ db 21, HORSEA
+ db DRAGON_RAGE
+ db SMOKESCREEN
+ db LEER
+ db WATER_GUN
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (8)
+ db "LISA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, JYNX
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (9)
+ db "JILL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, DEWGONG
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (10)
+ db "MARY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (11)
+ db "KATIE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, DEWGONG
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (12)
+ db "DAWN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (13)
+ db "TARA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (14)
+ db "NICOLE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, MARILL
+ db 29, MARILL
+ db 32, LAPRAS
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (15)
+ db "LORI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, STARMIE
+ db 32, STARMIE
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (16)
+ db "JODY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (17)
+ db "NIKKI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, SEEL
+ db 28, SEEL
+ db 28, SEEL
+ db 28, DEWGONG
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (18)
+ db "DIANA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 37, GOLDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; SWIMMERF (19)
+ db "BRIANA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, SEAKING
+ db 35, SEAKING
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+SailorGroup:
+; ================================
+; ================
+
+ ; SAILOR (1)
+ db "EUGENE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, POLIWHIRL
+ db 17, RATICATE
+ db 19, KRABBY
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (2)
+ db "HUEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, POLIWAG
+ db 18, POLIWHIRL
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (3)
+ db "TERRELL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, POLIWHIRL
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (4)
+ db "KENT@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 18, KRABBY
+ db BUBBLE
+ db LEER
+ db VICEGRIP
+ db HARDEN
+
+ db 20, KRABBY
+ db BUBBLEBEAM
+ db LEER
+ db VICEGRIP
+ db HARDEN
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (5)
+ db "ERNEST@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, MACHOP
+ db 18, MACHOP
+ db 18, POLIWHIRL
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (6)
+ db "JEFF@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, RATICATE
+ db 32, RATICATE
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (7)
+ db "GARRETT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, KINGLER
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (8)
+ db "KENNETH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, MACHOP
+ db 28, MACHOP
+ db 28, POLIWRATH
+ db 28, MACHOP
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (9)
+ db "STANLY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, MACHOP
+ db 33, MACHOKE
+ db 26, PSYDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (10)
+ db "HARRY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, WOOPER
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (11)
+ db "HUEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, POLIWHIRL
+ db 28, POLIWHIRL
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (12)
+ db "HUEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, POLIWHIRL
+ db 34, POLIWRATH
+
+ db $ff ; end
+
+; ================
+
+ ; SAILOR (13)
+ db "HUEY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 38, POLITOED
+ db WHIRLPOOL
+ db RAIN_DANCE
+ db BODY_SLAM
+ db PERISH_SONG
+
+ db 38, POLIWRATH
+ db SURF
+ db STRENGTH
+ db ICE_PUNCH
+ db SUBMISSION
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+SuperNerdGroup:
+; ================================
+; ================
+
+ ; SUPER_NERD (1)
+ db "STAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, GRIMER
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (2)
+ db "ERIC@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 11, GRIMER
+ db 11, GRIMER
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (3)
+ db "GREGG@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, MAGNEMITE
+ db 20, MAGNEMITE
+ db 20, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (4)
+ db "JAY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, KOFFING
+ db 22, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (5)
+ db "DAVE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, DITTO
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (6)
+ db "SAM@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, GRIMER
+ db 34, MUK
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (7)
+ db "TOM@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, MAGNEMITE
+ db 32, MAGNEMITE
+ db 32, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (8)
+ db "PAT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 36, PORYGON
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (9)
+ db "SHAWN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, MAGNEMITE
+ db 33, MUK
+ db 31, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (10)
+ db "TERU@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 7, MAGNEMITE
+ db 11, VOLTORB
+ db 7, MAGNEMITE
+ db 9, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (11)
+ db "RUSS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, MAGNEMITE
+ db 27, MAGNEMITE
+ db 27, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (12)
+ db "NORTON@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, PORYGON
+ db CONVERSION
+ db CONVERSION2
+ db RECOVER
+ db TRI_ATTACK
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (13)
+ db "HUGH@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 39, SEADRA
+ db SMOKESCREEN
+ db TWISTER
+ db SURF
+ db WATERFALL
+
+ db $ff ; end
+
+; ================
+
+ ; SUPER_NERD (14)
+ db "MARKUS@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 19, SLOWPOKE
+ db CURSE
+ db WATER_GUN
+ db GROWL
+ db STRENGTH
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+Rival2Group:
+; ================================
+; ================
+
+ ; RIVAL2 (1)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 41, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 42, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 41, MAGNETON
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 43, GENGAR
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 43, ALAKAZAM
+ db DISABLE
+ db RECOVER
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+
+ db 45, MEGANIUM
+ db RAZOR_LEAF
+ db POISONPOWDER
+ db BODY_SLAM
+ db LIGHT_SCREEN
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL2 (2)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 41, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 42, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 41, MAGNETON
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 43, GENGAR
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 43, ALAKAZAM
+ db DISABLE
+ db RECOVER
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+
+ db 45, TYPHLOSION
+ db SMOKESCREEN
+ db QUICK_ATTACK
+ db FLAME_WHEEL
+ db SWIFT
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL2 (3)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 41, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 42, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 41, MAGNETON
+ db THUNDERSHOCK
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 43, GENGAR
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 43, ALAKAZAM
+ db DISABLE
+ db RECOVER
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+
+ db 45, FERALIGATR
+ db RAGE
+ db WATER_GUN
+ db SCARY_FACE
+ db SLASH
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL2 (4)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 45, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 48, CROBAT
+ db TOXIC
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 45, MAGNETON
+ db THUNDER
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 46, GENGAR
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 46, ALAKAZAM
+ db RECOVER
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+ db REFLECT
+
+ db 50, MEGANIUM
+ db GIGA_DRAIN
+ db BODY_SLAM
+ db LIGHT_SCREEN
+ db SAFEGUARD
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL2 (5)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 45, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 48, CROBAT
+ db TOXIC
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 45, MAGNETON
+ db THUNDER
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 46, GENGAR
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 46, ALAKAZAM
+ db RECOVER
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+ db REFLECT
+
+ db 50, TYPHLOSION
+ db SMOKESCREEN
+ db QUICK_ATTACK
+ db FIRE_BLAST
+ db SWIFT
+
+ db $ff ; end
+
+; ================
+
+ ; RIVAL2 (6)
+ db "?@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 45, SNEASEL
+ db QUICK_ATTACK
+ db SCREECH
+ db FAINT_ATTACK
+ db FURY_CUTTER
+
+ db 48, CROBAT
+ db TOXIC
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db 45, MAGNETON
+ db THUNDER
+ db SONICBOOM
+ db THUNDER_WAVE
+ db SWIFT
+
+ db 46, GENGAR
+ db MEAN_LOOK
+ db CURSE
+ db SHADOW_BALL
+ db CONFUSE_RAY
+
+ db 46, ALAKAZAM
+ db RECOVER
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+ db REFLECT
+
+ db 50, FERALIGATR
+ db SURF
+ db RAIN_DANCE
+ db SLASH
+ db SCREECH
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+GuitaristGroup:
+; ================================
+; ================
+
+ ; GUITARIST (1)
+ db "CLYDE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, ELECTABUZZ
+
+ db $ff ; end
+
+; ================
+
+ ; GUITARIST (2)
+ db "VINCENT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, MAGNEMITE
+ db 33, VOLTORB
+ db 32, MAGNEMITE
+ db 32, MAGNEMITE
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+HikerGroup:
+; ================================
+; ================
+
+ ; HIKER (1)
+ db "ANTHONY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, GEODUDE
+ db 18, MACHAMP
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (2)
+ db "RUSSELL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 4, GEODUDE
+ db 6, GEODUDE
+ db 8, GEODUDE
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (3)
+ db "PHILLIP@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, GEODUDE
+ db 23, GEODUDE
+ db 23, GRAVELER
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (4)
+ db "LEONARD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, GEODUDE
+ db 25, MACHOP
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (5)
+ db "ANTHONY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 11, GEODUDE
+ db 11, MACHOP
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (6)
+ db "BENJAMIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 14, DIGLETT
+ db 14, GEODUDE
+ db 16, DUGTRIO
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (7)
+ db "ERIK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, MACHOP
+ db 27, GRAVELER
+ db 27, MACHOP
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (8)
+ db "MICHAEL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, GEODUDE
+ db 25, GRAVELER
+ db 25, GOLEM
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (9)
+ db "PARRY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, ONIX
+ db 33, SWINUB
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (10)
+ db "TIMOTHY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 27, DIGLETT
+ db MAGNITUDE
+ db DIG
+ db SAND_ATTACK
+ db SLASH
+
+ db 27, DUGTRIO
+ db MAGNITUDE
+ db DIG
+ db SAND_ATTACK
+ db SLASH
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (11)
+ db "BAILEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 13, GEODUDE
+ db 13, GEODUDE
+ db 13, GEODUDE
+ db 13, GEODUDE
+ db 13, GEODUDE
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (12)
+ db "ANTHONY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, GRAVELER
+ db 27, GRAVELER
+ db 29, MACHOKE
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (13)
+ db "TIM@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, GRAVELER
+ db 31, GRAVELER
+ db 31, GRAVELER
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (14)
+ db "NOLAND@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, SANDSLASH
+ db 33, GOLEM
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (15)
+ db "SIDNEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, DUGTRIO
+ db 32, ONIX
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (16)
+ db "KENNY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, SANDSLASH
+ db 29, GRAVELER
+ db 31, GOLEM
+ db 29, GRAVELER
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (17)
+ db "JIM@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, MACHAMP
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (18)
+ db "DANIEL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 11, ONIX
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (19)
+ db "PARRY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 35, PILOSWINE
+ db EARTHQUAKE
+ db BLIZZARD
+ db REST
+ db TAKE_DOWN
+
+ db 35, DUGTRIO
+ db MAGNITUDE
+ db DIG
+ db MUD_SLAP
+ db SLASH
+
+ db 38, STEELIX
+ db DIG
+ db IRON_TAIL
+ db SANDSTORM
+ db SLAM
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (20)
+ db "PARRY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, ONIX
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (21)
+ db "ANTHONY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, GRAVELER
+ db 30, GRAVELER
+ db 32, MACHOKE
+
+ db $ff ; end
+
+; ================
+
+ ; HIKER (22)
+ db "ANTHONY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 34, GRAVELER
+ db MAGNITUDE
+ db SELFDESTRUCT
+ db DEFENSE_CURL
+ db ROLLOUT
+
+ db 36, GOLEM
+ db MAGNITUDE
+ db SELFDESTRUCT
+ db DEFENSE_CURL
+ db ROLLOUT
+
+ db 34, MACHOKE
+ db KARATE_CHOP
+ db VITAL_THROW
+ db HEADBUTT
+ db DIG
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BikerGroup:
+; ================================
+; ================
+
+ ; BIKER (1)
+ db "BENNY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, KOFFING
+ db 20, KOFFING
+ db 20, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; BIKER (2)
+ db "KAZU@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, KOFFING
+ db 20, KOFFING
+ db 20, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; BIKER (3)
+ db "DWAYNE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, KOFFING
+ db 28, KOFFING
+ db 29, KOFFING
+ db 30, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; BIKER (4)
+ db "HARRIS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, FLAREON
+
+ db $ff ; end
+
+; ================
+
+ ; BIKER (5)
+ db "ZEKE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, KOFFING
+ db 32, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; BIKER (6)
+ db "CHARLES@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, KOFFING
+ db 30, CHARMELEON
+ db 30, WEEZING
+
+ db $ff ; end
+
+; ================
+
+ ; BIKER (7)
+ db "RILEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, WEEZING
+
+ db $ff ; end
+
+; ================
+
+ ; BIKER (8)
+ db "JOEL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, MAGMAR
+ db 32, MAGMAR
+
+ db $ff ; end
+
+; ================
+
+ ; BIKER (9)
+ db "GLENN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, KOFFING
+ db 30, MAGMAR
+ db 32, WEEZING
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BlaineGroup:
+; ================================
+; ================
+
+ ; BLAINE (1)
+ db "BLAINE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 45, MAGCARGO
+ db CURSE
+ db SMOG
+ db FLAMETHROWER
+ db ROCK_SLIDE
+
+ db 45, MAGMAR
+ db THUNDERPUNCH
+ db FIRE_PUNCH
+ db SUNNY_DAY
+ db CONFUSE_RAY
+
+ db 50, RAPIDASH
+ db QUICK_ATTACK
+ db FIRE_SPIN
+ db FURY_ATTACK
+ db FIRE_BLAST
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BurglarGroup:
+; ================================
+; ================
+
+ ; BURGLAR (1)
+ db "DUNCAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, KOFFING
+ db 25, MAGMAR
+ db 23, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; BURGLAR (2)
+ db "EDDIE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 26, GROWLITHE
+ db ROAR
+ db EMBER
+ db LEER
+ db TAKE_DOWN
+
+ db 24, KOFFING
+ db TACKLE
+ db SMOG
+ db SLUDGE
+ db SMOKESCREEN
+
+ db $ff ; end
+
+; ================
+
+ ; BURGLAR (3)
+ db "COREY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, KOFFING
+ db 28, MAGMAR
+ db 25, KOFFING
+ db 30, KOFFING
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+FirebreatherGroup:
+; ================================
+; ================
+
+ ; FIREBREATHER (1)
+ db "OTIS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, MAGMAR
+ db 32, WEEZING
+ db 29, MAGMAR
+
+ db $ff ; end
+
+; ================
+
+ ; FIREBREATHER (2)
+ db "DICK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, CHARMELEON
+
+ db $ff ; end
+
+; ================
+
+ ; FIREBREATHER (3)
+ db "NED@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, KOFFING
+ db 16, GROWLITHE
+ db 15, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; FIREBREATHER (4)
+ db "BURT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, KOFFING
+ db 32, SLUGMA
+
+ db $ff ; end
+
+; ================
+
+ ; FIREBREATHER (5)
+ db "BILL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 6, KOFFING
+ db 6, KOFFING
+
+ db $ff ; end
+
+; ================
+
+ ; FIREBREATHER (6)
+ db "WALT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 11, MAGMAR
+ db 13, MAGMAR
+
+ db $ff ; end
+
+; ================
+
+ ; FIREBREATHER (7)
+ db "RAY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, VULPIX
+
+ db $ff ; end
+
+; ================
+
+ ; FIREBREATHER (8)
+ db "LYLE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, KOFFING
+ db 31, FLAREON
+ db 28, KOFFING
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+JugglerGroup:
+; ================================
+; ================
+
+ ; JUGGLER (1)
+ db "IRWIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 2, VOLTORB
+ db 6, VOLTORB
+ db 10, VOLTORB
+ db 14, VOLTORB
+
+ db $ff ; end
+
+; ================
+
+ ; JUGGLER (2)
+ db "FRITZ@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, MR__MIME
+ db 29, MAGMAR
+ db 29, MACHOKE
+
+ db $ff ; end
+
+; ================
+
+ ; JUGGLER (3)
+ db "HORTON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, ELECTRODE
+ db 33, ELECTRODE
+ db 33, ELECTRODE
+ db 33, ELECTRODE
+
+ db $ff ; end
+
+; ================
+
+ ; JUGGLER (4)
+ db "IRWIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 6, VOLTORB
+ db 10, VOLTORB
+ db 14, VOLTORB
+ db 18, VOLTORB
+
+ db $ff ; end
+
+; ================
+
+ ; JUGGLER (5)
+ db "IRWIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, VOLTORB
+ db 22, VOLTORB
+ db 26, VOLTORB
+ db 30, ELECTRODE
+
+ db $ff ; end
+
+; ================
+
+ ; JUGGLER (6)
+ db "IRWIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, VOLTORB
+ db 22, VOLTORB
+ db 26, VOLTORB
+ db 30, ELECTRODE
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BlackbeltGroup:
+; ================================
+; ================
+
+ ; BLACKBELT_T (1)
+ db "KENJI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 27, ONIX
+ db 30, HITMONLEE
+ db 27, ONIX
+ db 32, MACHOKE
+
+ db $ff ; end
+
+; ================
+
+ ; BLACKBELT_T (2)
+ db "YOSHI@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 27, HITMONLEE
+ db DOUBLE_KICK
+ db MEDITATE
+ db JUMP_KICK
+ db FOCUS_ENERGY
+
+ db $ff ; end
+
+; ================
+
+ ; BLACKBELT_T (3)
+ db "KENJI@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 33, ONIX
+ db BIND
+ db ROCK_THROW
+ db TOXIC
+ db DIG
+
+ db 38, MACHAMP
+ db HEADBUTT
+ db SWAGGER
+ db THUNDERPUNCH
+ db VITAL_THROW
+
+ db 33, STEELIX
+ db EARTHQUAKE
+ db ROCK_THROW
+ db IRON_TAIL
+ db SANDSTORM
+
+ db 36, HITMONLEE
+ db DOUBLE_TEAM
+ db HI_JUMP_KICK
+ db MUD_SLAP
+ db SWIFT
+
+ db $ff ; end
+
+; ================
+
+ ; BLACKBELT_T (4)
+ db "LAO@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 27, HITMONCHAN
+ db COMET_PUNCH
+ db THUNDERPUNCH
+ db ICE_PUNCH
+ db FIRE_PUNCH
+
+ db $ff ; end
+
+; ================
+
+ ; BLACKBELT_T (5)
+ db "NOB@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 25, MACHOP
+ db LEER
+ db FOCUS_ENERGY
+ db KARATE_CHOP
+ db SEISMIC_TOSS
+
+ db 25, MACHOKE
+ db LEER
+ db KARATE_CHOP
+ db SEISMIC_TOSS
+ db ROCK_SLIDE
+
+ db $ff ; end
+
+; ================
+
+ ; BLACKBELT_T (6)
+ db "KIYO@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, HITMONLEE
+ db 34, HITMONCHAN
+
+ db $ff ; end
+
+; ================
+
+ ; BLACKBELT_T (7)
+ db "LUNG@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, MANKEY
+ db 23, MANKEY
+ db 25, PRIMEAPE
+
+ db $ff ; end
+
+; ================
+
+ ; BLACKBELT_T (8)
+ db "KENJI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 28, MACHOKE
+
+ db $ff ; end
+
+; ================
+
+ ; BLACKBELT_T (9)
+ db "WAI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, MACHOKE
+ db 32, MACHOKE
+ db 34, MACHOKE
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+ExecutiveMGroup:
+; ================================
+; ================
+
+ ; EXECUTIVEM (1)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 33, HOUNDOUR
+ db EMBER
+ db ROAR
+ db BITE
+ db FAINT_ATTACK
+
+ db 33, KOFFING
+ db TACKLE
+ db SLUDGE
+ db SMOKESCREEN
+ db HAZE
+
+ db 35, HOUNDOOM
+ db EMBER
+ db SMOG
+ db BITE
+ db FAINT_ATTACK
+
+ db $ff ; end
+
+; ================
+
+ ; EXECUTIVEM (2)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 36, GOLBAT
+ db LEECH_LIFE
+ db BITE
+ db CONFUSE_RAY
+ db WING_ATTACK
+
+ db $ff ; end
+
+; ================
+
+ ; EXECUTIVEM (3)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, KOFFING
+ db TACKLE
+ db SELFDESTRUCT
+ db SLUDGE
+ db SMOKESCREEN
+
+ db 30, KOFFING
+ db TACKLE
+ db SELFDESTRUCT
+ db SLUDGE
+ db SMOKESCREEN
+
+ db 30, KOFFING
+ db TACKLE
+ db SELFDESTRUCT
+ db SLUDGE
+ db SMOKESCREEN
+
+ db 32, WEEZING
+ db TACKLE
+ db EXPLOSION
+ db SLUDGE
+ db SMOKESCREEN
+
+ db 30, KOFFING
+ db TACKLE
+ db SELFDESTRUCT
+ db SLUDGE
+ db SMOKESCREEN
+
+ db 30, KOFFING
+ db TACKLE
+ db SMOG
+ db SLUDGE
+ db SMOKESCREEN
+
+ db $ff ; end
+
+; ================
+
+ ; EXECUTIVEM (4)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, ZUBAT
+ db 24, RATICATE
+ db 22, KOFFING
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+PsychicGroup:
+; ================================
+; ================
+
+ ; PSYCHIC_T (1)
+ db "NATHAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, GIRAFARIG
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (2)
+ db "FRANKLIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 37, KADABRA
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (3)
+ db "HERMAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, EXEGGCUTE
+ db 30, EXEGGCUTE
+ db 30, EXEGGUTOR
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (4)
+ db "FIDEL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, XATU
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (5)
+ db "GREG@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 17, DROWZEE
+ db HYPNOSIS
+ db DISABLE
+ db DREAM_EATER
+ db 0
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (6)
+ db "NORMAN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 17, SLOWPOKE
+ db TACKLE
+ db GROWL
+ db WATER_GUN
+ db 0
+
+ db 20, SLOWPOKE
+ db CURSE
+ db BODY_SLAM
+ db WATER_GUN
+ db CONFUSION
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (7)
+ db "MARK@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 13, ABRA
+ db TELEPORT
+ db FLASH
+ db 0
+ db 0
+
+ db 13, ABRA
+ db TELEPORT
+ db FLASH
+ db 0
+ db 0
+
+ db 15, KADABRA
+ db TELEPORT
+ db KINESIS
+ db CONFUSION
+ db 0
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (8)
+ db "PHIL@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 24, NATU
+ db LEER
+ db NIGHT_SHADE
+ db FUTURE_SIGHT
+ db CONFUSE_RAY
+
+ db 26, KADABRA
+ db DISABLE
+ db PSYBEAM
+ db RECOVER
+ db FUTURE_SIGHT
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (9)
+ db "RICHARD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 36, ESPEON
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (10)
+ db "GILBERT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, STARMIE
+ db 30, EXEGGCUTE
+ db 34, GIRAFARIG
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (11)
+ db "JARED@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, MR__MIME
+ db 32, EXEGGCUTE
+ db 35, EXEGGCUTE
+
+ db $ff ; end
+
+; ================
+
+ ; PSYCHIC_T (12)
+ db "RODNEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 29, DROWZEE
+ db 33, HYPNO
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+PicnickerGroup:
+; ================================
+; ================
+
+ ; PICNICKER (1)
+ db "LIZ@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, NIDORAN_F
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (2)
+ db "GINA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, HOPPIP
+ db 9, HOPPIP
+ db 12, BULBASAUR
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (3)
+ db "BROOKE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 16, PIKACHU
+ db THUNDERSHOCK
+ db GROWL
+ db QUICK_ATTACK
+ db DOUBLE_TEAM
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (4)
+ db "KIM@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, VULPIX
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (5)
+ db "CINDY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 36, NIDOQUEEN
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (6)
+ db "HOPE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, FLAAFFY
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (7)
+ db "SHARON@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, FURRET
+ db 33, RAPIDASH
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (8)
+ db "DEBRA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, SEAKING
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (9)
+ db "GINA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 14, HOPPIP
+ db 14, HOPPIP
+ db 17, IVYSAUR
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (10)
+ db "ERIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, PONYTA
+ db 16, PONYTA
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (11)
+ db "LIZ@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, WEEPINBELL
+ db 15, NIDORINA
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (12)
+ db "LIZ@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 19, WEEPINBELL
+ db 19, NIDORINO
+ db 21, NIDOQUEEN
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (13)
+ db "HEIDI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, SKIPLOOM
+ db 32, SKIPLOOM
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (14)
+ db "EDNA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, NIDORINA
+ db 34, RAICHU
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (15)
+ db "GINA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, SKIPLOOM
+ db 26, SKIPLOOM
+ db 29, IVYSAUR
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (16)
+ db "TIFFANY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 31, CLEFAIRY
+ db ENCORE
+ db SING
+ db DOUBLESLAP
+ db MINIMIZE
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (17)
+ db "TIFFANY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 37, CLEFAIRY
+ db ENCORE
+ db DOUBLESLAP
+ db MINIMIZE
+ db METRONOME
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (18)
+ db "ERIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, PONYTA
+ db 32, PONYTA
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (19)
+ db "TANYA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 37, EXEGGUTOR
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (20)
+ db "TIFFANY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 20, CLEFAIRY
+ db ENCORE
+ db SING
+ db DOUBLESLAP
+ db MINIMIZE
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (21)
+ db "ERIN@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 36, PONYTA
+ db DOUBLE_TEAM
+ db STOMP
+ db FIRE_SPIN
+ db SUNNY_DAY
+
+ db 34, RAICHU
+ db SWIFT
+ db MUD_SLAP
+ db QUICK_ATTACK
+ db THUNDERBOLT
+
+ db 36, PONYTA
+ db DOUBLE_TEAM
+ db STOMP
+ db FIRE_SPIN
+ db SUNNY_DAY
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (22)
+ db "LIZ@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, WEEPINBELL
+ db 26, NIDORINO
+ db 26, NIDOQUEEN
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (23)
+ db "LIZ@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 30, WEEPINBELL
+ db SLEEP_POWDER
+ db POISONPOWDER
+ db STUN_SPORE
+ db SLUDGE_BOMB
+
+ db 32, NIDOKING
+ db EARTHQUAKE
+ db DOUBLE_KICK
+ db POISON_STING
+ db IRON_TAIL
+
+ db 32, NIDOQUEEN
+ db EARTHQUAKE
+ db DOUBLE_KICK
+ db TAIL_WHIP
+ db BODY_SLAM
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (24)
+ db "GINA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, SKIPLOOM
+ db 30, SKIPLOOM
+ db 32, IVYSAUR
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (25)
+ db "GINA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 33, JUMPLUFF
+ db STUN_SPORE
+ db SUNNY_DAY
+ db LEECH_SEED
+ db COTTON_SPORE
+
+ db 33, JUMPLUFF
+ db SUNNY_DAY
+ db SLEEP_POWDER
+ db LEECH_SEED
+ db COTTON_SPORE
+
+ db 38, VENUSAUR
+ db SOLARBEAM
+ db RAZOR_LEAF
+ db HEADBUTT
+ db MUD_SLAP
+
+ db $ff ; end
+
+; ================
+
+ ; PICNICKER (26)
+ db "TIFFANY@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 43, CLEFAIRY
+ db METRONOME
+ db ENCORE
+ db MOONLIGHT
+ db MINIMIZE
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+CamperGroup:
+; ================================
+; ================
+
+ ; CAMPER (1)
+ db "ROLAND@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, NIDORAN_M
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (2)
+ db "TODD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 14, PSYDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (3)
+ db "IVAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, DIGLETT
+ db 10, ZUBAT
+ db 14, DIGLETT
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (4)
+ db "ELLIOT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 13, SANDSHREW
+ db 15, MARILL
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (5)
+ db "BARRY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 36, NIDOKING
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (6)
+ db "LLOYD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, NIDOKING
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (7)
+ db "DEAN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, GOLDUCK
+ db 31, SANDSLASH
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (8)
+ db "SID@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, DUGTRIO
+ db 29, PRIMEAPE
+ db 29, POLIWRATH
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (9)
+ db "HARVEY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, NIDORINO
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (10)
+ db "DALE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 15, NIDORINO
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (11)
+ db "TED@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, MANKEY
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (12)
+ db "TODD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, GEODUDE
+ db 17, GEODUDE
+ db 23, PSYDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (13)
+ db "TODD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 23, GEODUDE
+ db 23, GEODUDE
+ db 26, PSYDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (14)
+ db "THOMAS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, GRAVELER
+ db 36, GRAVELER
+ db 40, GOLBAT
+ db 42, GOLDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (15)
+ db "LEROY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, GRAVELER
+ db 36, GRAVELER
+ db 40, GOLBAT
+ db 42, GOLDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (16)
+ db "DAVID@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, GRAVELER
+ db 36, GRAVELER
+ db 40, GOLBAT
+ db 42, GOLDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (17)
+ db "JOHN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 33, GRAVELER
+ db 36, GRAVELER
+ db 40, GOLBAT
+ db 42, GOLDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (18)
+ db "JERRY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 37, SANDSLASH
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (19)
+ db "SPENCER@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, SANDSHREW
+ db 17, SANDSLASH
+ db 19, ZUBAT
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (20)
+ db "TODD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, GRAVELER
+ db 30, GRAVELER
+ db 30, SLUGMA
+ db 32, PSYDUCK
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (21)
+ db "TODD@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 33, GRAVELER
+ db SELFDESTRUCT
+ db ROCK_THROW
+ db HARDEN
+ db MAGNITUDE
+
+ db 33, GRAVELER
+ db SELFDESTRUCT
+ db ROCK_THROW
+ db HARDEN
+ db MAGNITUDE
+
+ db 36, MAGCARGO
+ db ROCK_THROW
+ db HARDEN
+ db AMNESIA
+ db FLAMETHROWER
+
+ db 34, GOLDUCK
+ db DISABLE
+ db PSYCHIC_M
+ db SURF
+ db PSYCH_UP
+
+ db $ff ; end
+
+; ================
+
+ ; CAMPER (22)
+ db "QUENTIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 30, FEAROW
+ db 30, PRIMEAPE
+ db 30, TAUROS
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+ExecutiveFGroup:
+; ================================
+; ================
+
+ ; EXECUTIVEF (1)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 32, ARBOK
+ db WRAP
+ db POISON_STING
+ db BITE
+ db GLARE
+
+ db 32, VILEPLUME
+ db ABSORB
+ db SWEET_SCENT
+ db SLEEP_POWDER
+ db ACID
+
+ db 32, MURKROW
+ db PECK
+ db PURSUIT
+ db HAZE
+ db NIGHT_SHADE
+
+ db $ff ; end
+
+; ================
+
+ ; EXECUTIVEF (2)
+ db "EXECUTIVE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 23, ARBOK
+ db WRAP
+ db LEER
+ db POISON_STING
+ db BITE
+
+ db 23, GLOOM
+ db ABSORB
+ db SWEET_SCENT
+ db SLEEP_POWDER
+ db ACID
+
+ db 25, MURKROW
+ db PECK
+ db PURSUIT
+ db HAZE
+ db 0
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+SageGroup:
+; ================================
+; ================
+
+ ; SAGE (1)
+ db "CHOW@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 3, BELLSPROUT
+ db 3, BELLSPROUT
+ db 3, BELLSPROUT
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (2)
+ db "NICO@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 3, BELLSPROUT
+ db 3, BELLSPROUT
+ db 3, BELLSPROUT
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (3)
+ db "JIN@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 6, BELLSPROUT
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (4)
+ db "TROY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 7, BELLSPROUT
+ db 7, HOOTHOOT
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (5)
+ db "JEFFREY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 22, HAUNTER
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (6)
+ db "PING@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 16, GASTLY
+ db 16, GASTLY
+ db 16, GASTLY
+ db 16, GASTLY
+ db 16, GASTLY
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (7)
+ db "EDMOND@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 3, BELLSPROUT
+ db 3, BELLSPROUT
+ db 3, BELLSPROUT
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (8)
+ db "NEAL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 6, BELLSPROUT
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (9)
+ db "LI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 7, BELLSPROUT
+ db 7, BELLSPROUT
+ db 10, HOOTHOOT
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (10)
+ db "GAKU@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, NOCTOWL
+ db 32, FLAREON
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (11)
+ db "MASA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, NOCTOWL
+ db 32, JOLTEON
+
+ db $ff ; end
+
+; ================
+
+ ; SAGE (12)
+ db "KOJI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 32, NOCTOWL
+ db 32, VAPOREON
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+MediumGroup:
+; ================================
+; ================
+
+ ; MEDIUM (1)
+ db "MARTHA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 18, GASTLY
+ db 20, HAUNTER
+ db 20, GASTLY
+
+ db $ff ; end
+
+; ================
+
+ ; MEDIUM (2)
+ db "GRACE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, HAUNTER
+ db 20, HAUNTER
+
+ db $ff ; end
+
+; ================
+
+ ; MEDIUM (3)
+ db "BETHANY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, HAUNTER
+
+ db $ff ; end
+
+; ================
+
+ ; MEDIUM (4)
+ db "MARGRET@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, HAUNTER
+
+ db $ff ; end
+
+; ================
+
+ ; MEDIUM (5)
+ db "ETHEL@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, HAUNTER
+
+ db $ff ; end
+
+; ================
+
+ ; MEDIUM (6)
+ db "REBECCA@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, DROWZEE
+ db 35, HYPNO
+
+ db $ff ; end
+
+; ================
+
+ ; MEDIUM (7)
+ db "DORIS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 34, SLOWPOKE
+ db 36, SLOWBRO
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BoarderGroup:
+; ================================
+; ================
+
+ ; BOARDER (1)
+ db "RONALD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, SEEL
+ db 25, DEWGONG
+ db 24, SEEL
+
+ db $ff ; end
+
+; ================
+
+ ; BOARDER (2)
+ db "BRAD@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, SWINUB
+ db 26, SWINUB
+
+ db $ff ; end
+
+; ================
+
+ ; BOARDER (3)
+ db "DOUGLAS@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 24, SHELLDER
+ db 25, CLOYSTER
+ db 24, SHELLDER
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+PokefanMGroup:
+; ================================
+; ================
+
+ ; POKEFANM (1)
+ db "WILLIAM@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 14, RAICHU, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (2)
+ db "DEREK@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 17, PIKACHU, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (3)
+ db "ROBERT@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 33, QUAGSIRE, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (4)
+ db "JOSHUA@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 23, PIKACHU, BERRY
+ db 23, PIKACHU, BERRY
+ db 23, PIKACHU, BERRY
+ db 23, PIKACHU, BERRY
+ db 23, PIKACHU, BERRY
+ db 23, PIKACHU, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (5)
+ db "CARTER@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 29, BULBASAUR, BERRY
+ db 29, CHARMANDER, BERRY
+ db 29, SQUIRTLE, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (6)
+ db "TREVOR@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 33, PSYDUCK, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (7)
+ db "BRANDON@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 13, SNUBBULL, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (8)
+ db "JEREMY@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 28, MEOWTH, BERRY
+ db 28, MEOWTH, BERRY
+ db 28, MEOWTH, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (9)
+ db "COLIN@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 32, DELIBIRD, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (10)
+ db "DEREK@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 19, PIKACHU, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (11)
+ db "DEREK@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 36, PIKACHU, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (12)
+ db "ALEX@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 29, NIDOKING, BERRY
+ db 29, SLOWKING, BERRY
+ db 29, SEAKING, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (13)
+ db "REX@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 35, PHANPY, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANM (14)
+ db "ALLAN@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 35, TEDDIURSA, BERRY
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+KimonoGirlGroup:
+; ================================
+; ================
+
+ ; KIMONO_GIRL (1)
+ db "NAOKO@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 20, SKIPLOOM
+ db 20, VULPIX
+ db 18, SKIPLOOM
+
+ db $ff ; end
+
+; ================
+
+ ; KIMONO_GIRL (2)
+ db "NAOKO@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, FLAREON
+
+ db $ff ; end
+
+; ================
+
+ ; KIMONO_GIRL (3)
+ db "SAYO@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, ESPEON
+
+ db $ff ; end
+
+; ================
+
+ ; KIMONO_GIRL (4)
+ db "ZUKI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, UMBREON
+
+ db $ff ; end
+
+; ================
+
+ ; KIMONO_GIRL (5)
+ db "KUNI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, VAPOREON
+
+ db $ff ; end
+
+; ================
+
+ ; KIMONO_GIRL (6)
+ db "MIKI@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, JOLTEON
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+TwinsGroup:
+; ================================
+; ================
+
+ ; TWINS (1)
+ db "AMY & MAY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, SPINARAK
+ db 10, LEDYBA
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (2)
+ db "ANN & ANNE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 16, CLEFAIRY
+ db GROWL
+ db ENCORE
+ db DOUBLESLAP
+ db METRONOME
+
+ db 16, JIGGLYPUFF
+ db SING
+ db DEFENSE_CURL
+ db POUND
+ db DISABLE
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (3)
+ db "ANN & ANNE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 16, JIGGLYPUFF
+ db SING
+ db DEFENSE_CURL
+ db POUND
+ db DISABLE
+
+ db 16, CLEFAIRY
+ db GROWL
+ db ENCORE
+ db DOUBLESLAP
+ db METRONOME
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (4)
+ db "AMY & MAY@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 10, LEDYBA
+ db 10, SPINARAK
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (5)
+ db "JO & ZOE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, VICTREEBEL
+ db 35, VILEPLUME
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (6)
+ db "JO & ZOE@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 35, VILEPLUME
+ db 35, VICTREEBEL
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (7)
+ db "MEG & PEG@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, TEDDIURSA
+ db 31, PHANPY
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (8)
+ db "MEG & PEG@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 31, PHANPY
+ db 31, TEDDIURSA
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (9)
+ db "LEA & PIA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 35, DRATINI
+ db THUNDER_WAVE
+ db TWISTER
+ db FLAMETHROWER
+ db HEADBUTT
+
+ db 35, DRATINI
+ db THUNDER_WAVE
+ db TWISTER
+ db ICE_BEAM
+ db HEADBUTT
+
+ db $ff ; end
+
+; ================
+
+ ; TWINS (10)
+ db "LEA & PIA@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 38, DRATINI
+ db THUNDER_WAVE
+ db TWISTER
+ db ICE_BEAM
+ db HEADBUTT
+
+ db 38, DRATINI
+ db THUNDER_WAVE
+ db TWISTER
+ db FLAMETHROWER
+ db HEADBUTT
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+PokefanFGroup:
+; ================================
+; ================
+
+ ; POKEFANF (1)
+ db "BEVERLY@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 14, SNUBBULL, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANF (2)
+ db "RUTH@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 17, PIKACHU, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANF (3)
+ db "BEVERLY@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 18, SNUBBULL, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANF (4)
+ db "BEVERLY@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 30, GRANBULL, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANF (5)
+ db "GEORGIA@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 23, SENTRET, BERRY
+ db 23, SENTRET, BERRY
+ db 23, SENTRET, BERRY
+ db 28, FURRET, BERRY
+ db 23, SENTRET, BERRY
+
+ db $ff ; end
+
+; ================
+
+ ; POKEFANF (6)
+ db "JAIME@"
+ db TRAINERTYPE_ITEM
+
+ ; party
+ db 16, MEOWTH, BERRY
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+RedGroup:
+; ================================
+; ================
+
+ ; RED (1)
+ db "RED@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 81, PIKACHU
+ db CHARM
+ db QUICK_ATTACK
+ db THUNDERBOLT
+ db THUNDER
+
+ db 73, ESPEON
+ db MUD_SLAP
+ db REFLECT
+ db SWIFT
+ db PSYCHIC_M
+
+ db 75, SNORLAX
+ db AMNESIA
+ db SNORE
+ db REST
+ db BODY_SLAM
+
+ db 77, VENUSAUR
+ db SUNNY_DAY
+ db GIGA_DRAIN
+ db SYNTHESIS
+ db SOLARBEAM
+
+ db 77, CHARIZARD
+ db FLAMETHROWER
+ db WING_ATTACK
+ db SLASH
+ db FIRE_SPIN
+
+ db 77, BLASTOISE
+ db RAIN_DANCE
+ db SURF
+ db BLIZZARD
+ db WHIRLPOOL
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+BlueGroup:
+; ================================
+; ================
+
+ ; BLUE (1)
+ db "BLUE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 56, PIDGEOT
+ db QUICK_ATTACK
+ db WHIRLWIND
+ db WING_ATTACK
+ db MIRROR_MOVE
+
+ db 54, ALAKAZAM
+ db DISABLE
+ db RECOVER
+ db PSYCHIC_M
+ db REFLECT
+
+ db 56, RHYDON
+ db FURY_ATTACK
+ db SANDSTORM
+ db ROCK_SLIDE
+ db EARTHQUAKE
+
+ db 58, GYARADOS
+ db TWISTER
+ db HYDRO_PUMP
+ db RAIN_DANCE
+ db HYPER_BEAM
+
+ db 58, EXEGGUTOR
+ db SUNNY_DAY
+ db LEECH_SEED
+ db EGG_BOMB
+ db SOLARBEAM
+
+ db 58, ARCANINE
+ db ROAR
+ db SWIFT
+ db FLAMETHROWER
+ db EXTREMESPEED
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+OfficerGroup:
+; ================================
+; ================
+
+ ; OFFICER (1)
+ db "KEITH@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 17, GROWLITHE
+
+ db $ff ; end
+
+; ================
+
+ ; OFFICER (2)
+ db "DIRK@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 14, GROWLITHE
+ db 14, GROWLITHE
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+GruntFGroup:
+; ================================
+; ================
+
+ ; GRUNTF (1)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 9, ZUBAT
+ db 11, EKANS
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTF (2)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 26, ARBOK
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTF (3)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 25, GLOOM
+ db 25, GLOOM
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTF (4)
+ db "GRUNT@"
+ db TRAINERTYPE_NORMAL
+
+ ; party
+ db 21, EKANS
+ db 23, ODDISH
+ db 21, EKANS
+ db 24, GLOOM
+
+ db $ff ; end
+
+; ================
+
+ ; GRUNTF (5)
+ db "GRUNT@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 18, EKANS
+ db WRAP
+ db LEER
+ db POISON_STING
+ db BITE
+
+ db 18, GLOOM
+ db ABSORB
+ db SWEET_SCENT
+ db STUN_SPORE
+ db SLEEP_POWDER
+
+ db $ff ; end
+
+; ================
+; ================================
+
+
+MysticalmanGroup:
+; ================================
+; ================
+
+ ; MYSTICALMAN (1)
+ db "EUSINE@"
+ db TRAINERTYPE_MOVES
+
+ ; party
+
+ db 23, DROWZEE
+ db DREAM_EATER
+ db HYPNOSIS
+ db DISABLE
+ db CONFUSION
+
+ db 23, HAUNTER
+ db LICK
+ db HYPNOSIS
+ db MEAN_LOOK
+ db CURSE
+
+ db 25, ELECTRODE
+ db SCREECH
+ db SONICBOOM
+ db THUNDER
+ db ROLLOUT
+
+ db $ff ; end
+
+; ================
+; ================================
--- /dev/null
+++ b/data/trainers/party_pointers.asm
@@ -1,0 +1,70 @@
+; Each trainer class has its own group. See trainers.asm.
+
+TrainerGroups: ; 0x39999
+ dw FalknerGroup
+ dw WhitneyGroup
+ dw BugsyGroup
+ dw MortyGroup
+ dw PryceGroup
+ dw JasmineGroup
+ dw ChuckGroup
+ dw ClairGroup
+ dw Rival1Group
+ dw PokemonProfGroup
+ dw WillGroup
+ dw PKMNTrainerGroup
+ dw BrunoGroup
+ dw KarenGroup
+ dw KogaGroup
+ dw ChampionGroup
+ dw BrockGroup
+ dw MistyGroup
+ dw LtSurgeGroup
+ dw ScientistGroup
+ dw ErikaGroup
+ dw YoungsterGroup
+ dw SchoolboyGroup
+ dw BirdKeeperGroup
+ dw LassGroup
+ dw JanineGroup
+ dw CooltrainerMGroup
+ dw CooltrainerFGroup
+ dw BeautyGroup
+ dw PokemaniacGroup
+ dw GruntMGroup
+ dw GentlemanGroup
+ dw SkierGroup
+ dw TeacherGroup
+ dw SabrinaGroup
+ dw BugCatcherGroup
+ dw FisherGroup
+ dw SwimmerMGroup
+ dw SwimmerFGroup
+ dw SailorGroup
+ dw SuperNerdGroup
+ dw Rival2Group
+ dw GuitaristGroup
+ dw HikerGroup
+ dw BikerGroup
+ dw BlaineGroup
+ dw BurglarGroup
+ dw FirebreatherGroup
+ dw JugglerGroup
+ dw BlackbeltGroup
+ dw ExecutiveMGroup
+ dw PsychicGroup
+ dw PicnickerGroup
+ dw CamperGroup
+ dw ExecutiveFGroup
+ dw SageGroup
+ dw MediumGroup
+ dw BoarderGroup
+ dw PokefanMGroup
+ dw KimonoGirlGroup
+ dw TwinsGroup
+ dw PokefanFGroup
+ dw RedGroup
+ dw BlueGroup
+ dw OfficerGroup
+ dw GruntFGroup
+ dw MysticalmanGroup
--- /dev/null
+++ b/data/trainers/trainer_attributes.asm
@@ -1,0 +1,406 @@
+TrainerClassAttributes: ; 3959c
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+
+; Falkner
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Whitney
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Bugsy
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Morty
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Pryce
+ db HYPER_POTION, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Jasmine
+ db HYPER_POTION, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Chuck
+ db FULL_HEAL, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Clair
+ db FULL_HEAL, HYPER_POTION ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Rival1
+ db 0, 0 ; items
+ db 15 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Pokemon Prof
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_AGGRESSIVE + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Will
+ db MAX_POTION, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Cal
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Bruno
+ db MAX_POTION, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Karen
+ db FULL_HEAL, MAX_POTION ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Koga
+ db FULL_HEAL, FULL_RESTORE ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Champion
+ db FULL_HEAL, FULL_RESTORE ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Brock
+ db HYPER_POTION, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Misty
+ db FULL_HEAL, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Lt Surge
+ db HYPER_POTION, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Scientist
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Erika
+ db HYPER_POTION, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Youngster
+ db 0, 0 ; items
+ db 4 ; base reward
+ dw AI_BASIC + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Schoolboy
+ db 0, 0 ; items
+ db 8 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_OFTEN
+
+; Bird Keeper
+ db 0, 0 ; items
+ db 6 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Lass
+ db 0, 0 ; items
+ db 6 ; base reward
+ dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_OFTEN
+
+; Janine
+ db DIRE_HIT, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Cooltrainerm
+ db 0, 0 ; items
+ db 12 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Cooltrainerf
+ db 0, 0 ; items
+ db 12 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Beauty
+ db 0, 0 ; items
+ db 22 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Pokemaniac
+ db 0, 0 ; items
+ db 15 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_OFFENSIVE + AI_AGGRESSIVE + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Gruntm
+ db 0, 0 ; items
+ db 10 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Gentleman
+ db 0, 0 ; items
+ db 18 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_AGGRESSIVE + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Skier
+ db 0, 0 ; items
+ db 18 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Teacher
+ db 0, 0 ; items
+ db 18 ; base reward
+ dw AI_BASIC + AI_OPPORTUNIST + AI_AGGRESSIVE + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Sabrina
+ db HYPER_POTION, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Bug Catcher
+ db 0, 0 ; items
+ db 4 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Fisher
+ db 0, 0 ; items
+ db 10 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_OFTEN
+
+; Swimmerm
+ db 0, 0 ; items
+ db 2 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OFFENSIVE + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Swimmerf
+ db 0, 0 ; items
+ db 5 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Sailor
+ db 0, 0 ; items
+ db 10 ; base reward
+ dw AI_BASIC + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Super Nerd
+ db 0, 0 ; items
+ db 8 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Rival2
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Guitarist
+ db 0, 0 ; items
+ db 8 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Hiker
+ db 0, 0 ; items
+ db 8 ; base reward
+ dw AI_BASIC + AI_OFFENSIVE + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Biker
+ db 0, 0 ; items
+ db 8 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Blaine
+ db MAX_POTION, FULL_HEAL ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Burglar
+ db 0, 0 ; items
+ db 22 ; base reward
+ dw AI_BASIC + AI_OFFENSIVE + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Firebreather
+ db 0, 0 ; items
+ db 12 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Juggler
+ db 0, 0 ; items
+ db 10 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Blackbelt T
+ db 0, 0 ; items
+ db 6 ; base reward
+ dw AI_BASIC + AI_OFFENSIVE + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Executivem
+ db 0, 0 ; items
+ db 18 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Psychic T
+ db 0, 0 ; items
+ db 8 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Picnicker
+ db 0, 0 ; items
+ db 5 ; base reward
+ dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Camper
+ db 0, 0 ; items
+ db 5 ; base reward
+ dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Executivef
+ db 0, 0 ; items
+ db 18 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Sage
+ db 0, 0 ; items
+ db 8 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Medium
+ db 0, 0 ; items
+ db 10 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Boarder
+ db 0, 0 ; items
+ db 18 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Pokefanm
+ db 0, 0 ; items
+ db 20 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Kimono Girl
+ db 0, 0 ; items
+ db 18 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Twins
+ db 0, 0 ; items
+ db 5 ; base reward
+ dw NO_AI
+ dw CONTEXT_USE + SWITCH_OFTEN
+
+; Pokefanf
+ db 0, 0 ; items
+ db 20 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Red
+ db FULL_RESTORE, FULL_RESTORE ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Blue
+ db FULL_RESTORE, FULL_RESTORE ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Officer
+ db 0, 0 ; items
+ db 10 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_STATUS
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Gruntf
+ db 0, 0 ; items
+ db 10 ; base reward
+ dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Mysticalman
+ db 0, 0 ; items
+ db 25 ; base reward
+ dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+ dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; 39771
--- /dev/null
+++ b/data/trainers/trainer_class_names.asm
@@ -1,0 +1,69 @@
+TrainerClassNames:: ; 2c1ef
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "RIVAL@"
+ db "#MON PROF.@"
+ db "ELITE FOUR@"
+ db "<PKMN> TRAINER@"
+ db "ELITE FOUR@"
+ db "ELITE FOUR@"
+ db "ELITE FOUR@"
+ db "CHAMPION@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "SCIENTIST@"
+ db "LEADER@"
+ db "YOUNGSTER@"
+ db "SCHOOLBOY@"
+ db "BIRD KEEPER@"
+ db "LASS@"
+ db "LEADER@"
+ db "COOLTRAINER@"
+ db "COOLTRAINER@"
+ db "BEAUTY@"
+ db "#MANIAC@"
+ db "ROCKET@"
+ db "GENTLEMAN@"
+ db "SKIER@"
+ db "TEACHER@"
+ db "LEADER@"
+ db "BUG CATCHER@"
+ db "FISHER@"
+ db "SWIMMER♂@"
+ db "SWIMMER♀@"
+ db "SAILOR@"
+ db "SUPER NERD@"
+ db "RIVAL@"
+ db "GUITARIST@"
+ db "HIKER@"
+ db "BIKER@"
+ db "LEADER@"
+ db "BURGLAR@"
+ db "FIREBREATHER@"
+ db "JUGGLER@"
+ db "BLACKBELT@"
+ db "ROCKET@"
+ db "PSYCHIC@"
+ db "PICNICKER@"
+ db "CAMPER@"
+ db "ROCKET@"
+ db "SAGE@"
+ db "MEDIUM@"
+ db "BOARDER@"
+ db "#FAN@"
+ db "KIMONO GIRL@"
+ db "TWINS@"
+ db "#FAN@"
+ db "<PKMN> TRAINER@"
+ db "LEADER@"
+ db "OFFICER@"
+ db "ROCKET@"
+ db "MYSTICALMAN@"
--- /dev/null
+++ b/data/trainers/trainer_dvs.asm
@@ -1,0 +1,93 @@
+GetTrainerDVs: ; 270c4
+; Return the DVs of OtherTrainerClass in bc
+
+ push hl
+ ld a, [OtherTrainerClass]
+ dec a
+ ld c, a
+ ld b, 0
+
+ ld hl, TrainerClassDVs
+ add hl, bc
+ add hl, bc
+
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+
+ pop hl
+ ret
+; 270d6
+
+TrainerClassDVs: ; 270d6
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+ ; Atk Spd
+ ; Def Spc
+ db $9A, $77 ; falkner
+ db $88, $88 ; bugsy
+ db $98, $88 ; whitney
+ db $98, $88 ; morty
+ db $98, $88 ; pryce
+ db $98, $88 ; jasmine
+ db $98, $88 ; chuck
+ db $7C, $DD ; clair
+ db $DD, $DD ; rival1
+ db $98, $88 ; pokemon prof
+ db $DC, $DD ; will
+ db $DC, $DD ; cal
+ db $DC, $DD ; bruno
+ db $7F, $DF ; karen
+ db $DC, $DD ; koga
+ db $DC, $DD ; champion
+ db $98, $88 ; brock
+ db $78, $88 ; misty
+ db $98, $88 ; lt surge
+ db $98, $88 ; scientist
+ db $78, $88 ; erika
+ db $98, $88 ; youngster
+ db $98, $88 ; schoolboy
+ db $98, $88 ; bird keeper
+ db $58, $88 ; lass
+ db $98, $88 ; janine
+ db $D8, $C8 ; cooltrainerm
+ db $7C, $C8 ; cooltrainerf
+ db $69, $C8 ; beauty
+ db $98, $88 ; pokemaniac
+ db $D8, $A8 ; gruntm
+ db $98, $88 ; gentleman
+ db $98, $88 ; skier
+ db $68, $88 ; teacher
+ db $7D, $87 ; sabrina
+ db $98, $88 ; bug catcher
+ db $98, $88 ; fisher
+ db $98, $88 ; swimmerm
+ db $78, $88 ; swimmerf
+ db $98, $88 ; sailor
+ db $98, $88 ; super nerd
+ db $98, $88 ; rival2
+ db $98, $88 ; guitarist
+ db $A8, $88 ; hiker
+ db $98, $88 ; biker
+ db $98, $88 ; blaine
+ db $98, $88 ; burglar
+ db $98, $88 ; firebreather
+ db $98, $88 ; juggler
+ db $98, $88 ; blackbelt
+ db $D8, $A8 ; executivem
+ db $98, $88 ; psychic
+ db $6A, $A8 ; picnicker
+ db $98, $88 ; camper
+ db $7E, $A8 ; executivef
+ db $98, $88 ; sage
+ db $78, $88 ; medium
+ db $98, $88 ; boarder
+ db $98, $88 ; pokefanm
+ db $68, $8A ; kimono girl
+ db $68, $A8 ; twins
+ db $6D, $88 ; pokefanf
+ db $FD, $DE ; red
+ db $9D, $DD ; blue
+ db $98, $88 ; officer
+ db $7E, $A8 ; gruntf
+ db $98, $88 ; mysticalman
+; 2715c
--- /dev/null
+++ b/data/unown_words.asm
@@ -1,0 +1,67 @@
+unownword: macro
+x = 1
+ rept STRLEN(\1)
+ db STRSUB(\1, x, 1) - $40
+x = x + 1
+ endr
+ db -1
+endm
+
+UnownWords: ; fba5a
+; entries correspond to Unown forms
+ dw UnownWord1
+ dw UnownWord1
+ dw UnownWord2
+ dw UnownWord3
+ dw UnownWord4
+ dw UnownWord5
+ dw UnownWord6
+ dw UnownWord7
+ dw UnownWord8
+ dw UnownWord9
+ dw UnownWord10
+ dw UnownWord11
+ dw UnownWord12
+ dw UnownWord13
+ dw UnownWord14
+ dw UnownWord15
+ dw UnownWord16
+ dw UnownWord17
+ dw UnownWord18
+ dw UnownWord19
+ dw UnownWord20
+ dw UnownWord21
+ dw UnownWord22
+ dw UnownWord23
+ dw UnownWord24
+ dw UnownWord25
+ dw UnownWord26
+; fba90
+
+UnownWord1: unownword "ANGRY"
+UnownWord2: unownword "BEAR"
+UnownWord3: unownword "CHASE"
+UnownWord4: unownword "DIRECT"
+UnownWord5: unownword "ENGAGE"
+UnownWord6: unownword "FIND"
+UnownWord7: unownword "GIVE"
+UnownWord8: unownword "HELP"
+UnownWord9: unownword "INCREASE"
+UnownWord10: unownword "JOIN"
+UnownWord11: unownword "KEEP"
+UnownWord12: unownword "LAUGH"
+UnownWord13: unownword "MAKE"
+UnownWord14: unownword "NUZZLE"
+UnownWord15: unownword "OBSERVE"
+UnownWord16: unownword "PERFORM"
+UnownWord17: unownword "QUICKEN"
+UnownWord18: unownword "REASSURE"
+UnownWord19: unownword "SEARCH"
+UnownWord20: unownword "TELL"
+UnownWord21: unownword "UNDO"
+UnownWord22: unownword "VANISH"
+UnownWord23: unownword "WANT"
+UnownWord24: unownword "XXXXX"
+UnownWord25: unownword "YIELD"
+UnownWord26: unownword "ZOOM"
+; fbb32
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -1,11 +1,62 @@
# Bugs and Glitches
+## Contents
+
+- [Thick Club and Light Ball can decrease damage done with boosted (Special) Attack](#thick-club-and-light-ball-can-decrease-damage-done-with-boosted-special-attack)
+- [Metal Powder can increase damage taken with boosted (Special) Defense](#metal-powder-can-increase-damage-taken-with-boosted-special-defense)
+- [Belly Drum sharply boosts Attack even with under 50% HP](#belly-drum-sharply-boosts-attack-even-with-under-50-hp)
+- [Moves that lower Defense can do so after breaking a Substitute](#moves-that-lower-defense-can-do-so-after-breaking-a-substitute)
+- [Counter and Mirror Coat still work if the opponent uses an item](#counter-and-mirror-coat-still-work-if-the-opponent-uses-an-item)
+- [A Disabled but PP Up–enhanced move may not trigger Struggle](#a-disabled-but-pp-upenhanced-move-may-not-trigger-struggle)
+- [A Pokémon that fainted from Pursuit will have its old status condition when revived](#a-pokémon-that-fainted-from-pursuit-will-have-its-old-status-condition-when-revived)
+- [Lock-On and Mind Reader don't always bypass Fly and Dig](#lock-on-and-mind-reader-dont-always-bypass-fly-and-dig)
+- [Beat Up can desynchronize link battles](#beat-up-can-desynchronize-link-battles)
+- [Present damage is incorrect in link battles](#present-damage-is-incorrect-in-link-battles)
+- ["Smart" AI encourages Mean Look if its own Pokémon is badly poisoned](#smart-ai-encourages-mean-look-if-its-own-pokémon-is-badly-poisoned)
+- [AI makes a false assumption about `CheckTypeMatchup`](#ai-makes-a-false-assumption-about-checktypematchup)
+- [NPC use of Full Heal or Full Restore does not cure Nightmare status](#npc-use-of-full-heal-or-full-restore-does-not-cure-nightmare-status)
+- [HP bar animation is slow for high HP](#hp-bar-animation-is-slow-for-high-hp)
+- [HP bar animation off-by-one error for low HP](#hp-bar-animation-off-by-one-error-for-low-hp)
+- [Experience underflow for level 1 Pokémon with Medium-Slow growth rate](#experience-underflow-for-level-1-pokémon-with-medium-slow-growth-rate)
+- [Five-digit experience gain is printed incorrectly](#five-digit-experience-gain-is-printed-incorrectly)
+- [BRN/PSN/PAR do not affect catch rate](#brnpsnpar-do-not-affect-catch-rate)
+- [Moon Ball does not boost catch rate](#moon-ball-does-not-boost-catch-rate)
+- [Love Ball boosts catch rate for the wrong gender](#love-ball-boosts-catch-rate-for-the-wrong-gender)
+- [Fast Ball only boosts catch rate for three Pokémon](#fast-ball-only-boosts-catch-rate-for-three-pokémon)
+- [Dragon Scale, not Dragon Fang, boosts Dragon-type moves](#dragon-scale-not-dragon-fang-boosts-dragon-type-moves)
+- [Daisy's grooming doesn't always increase happiness](#daisys-grooming-doesnt-always-increase-happiness)
+- [Magikarp in Lake of Rage are shorter, not longer](#magikarp-in-lake-of-rage-are-shorter-not-longer)
+- [Magikarp lengths can be miscalculated](#magikarp-lengths-can-be-miscalculated)
+- [Battle transitions fail to account for the enemy's level](#battle-transitions-fail-to-account-for-the-enemys-level)
+- [Slot machine payout sound effects cut each other off](#slot-machine-payout-sound-effects-cut-each-other-off)
+- [Team Rocket battle music is not used for Executives or Scientists](#team-rocket-battle-music-is-not-used-for-executives-or-scientists)
+- [No bump noise if standing on tile `$3E`](#no-bump-noise-if-standing-on-tile-3e)
+- [Playing Entei's Pokédex cry can distort Raikou's and Suicune's](#playing-enteis-pokédex-cry-can-distort-raikous-and-suicunes)
+- [In-battle “`…`” ellipsis is too high](#in-battle--ellipsis-is-too-high)
+- [Two tiles in the `port` tileset are drawn incorrectly](#two-tiles-in-the-port-tileset-are-drawn-incorrectly)
+- [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks)
+- [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map)
+- [`Function6ec1` does not correctly limit object movement](#function6ec1-does-not-correctly-limit-object-movement)
+- [`CheckOwnMon` only checks the first five letters of OT names](#checkownmon-only-checks-the-first-five-letters-of-ot-names)
+- [Catching a Transformed Pokémon always catches a Ditto](#catching-a-transformed-pokémon-always-catches-a-ditto)
+- [Using a Park Ball in normal battles has a corrupt animation](#using-a-park-ball-in-normal-battles-has-a-corrupt-animation)
+- [`HELD_CATCH_CHANCE` has no effect](#held_catch_chance-has-no-effect)
+- [Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly](#only-the-first-three-evosattacks-evolution-entries-can-have-stone-compatibility-reported-correctly)
+- [`ScriptCall` can overflow `wScriptStack` and crash](#scriptcall-can-overflow-wscriptstack-and-crash)
+- [`LoadSpriteGFX` does not limit the capacity of `UsedSprites`](#loadspritegfx-does-not-limit-the-capacity-of-usedsprites)
+- [`ChooseWildEncounter` doesn't really validate the wild Pokémon species](#choosewildencounter-doesnt-really-validate-the-wild-pokémon-species)
+- [`TryObjectEvent` arbitrary code execution](#tryobjectevent-arbitrary-code-execution)
+- [`Special_CheckBugContestContestantFlag` can read beyond its data table](#special_checkbugcontestcontestantflag-can-read-beyond-its-data-table)
+- [`ClearWRAM` only clears WRAM bank 1](#clearwram-only-clears-wram-bank-1)
+- [`GetForestTreeFrame` works, but it's still bad](#getforesttreeframe-works-but-its-still-bad)
+
+
## Thick Club and Light Ball can decrease damage done with boosted (Special) Attack
([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=450))
-This is a bug with `SpeciesItemBoost` in [battle/effect_commands.asm](battle/effect_commands.asm):
+This is a bug with `SpeciesItemBoost` in [battle/effect_commands.asm](/battle/effect_commands.asm):
```asm
; Double the stat
@@ -39,7 +90,7 @@
([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=450))
-This is a bug with `DittoMetalPowder` in [battle/effect_commands.asm](battle/effect_commands.asm):
+This is a bug with `DittoMetalPowder` in [battle/effect_commands.asm](/battle/effect_commands.asm):
```asm
ld a, c
@@ -95,7 +146,7 @@
([Video](https://www.youtube.com/watch?v=zuCLMikWo4Y))
-This is a bug with `BattleCommand_BellyDrum` in [battle/effect_commands.asm](battle/effect_commands.asm):
+This is a bug with `BattleCommand_BellyDrum` in [battle/effect_commands.asm](/battle/effect_commands.asm):
```asm
BattleCommand_BellyDrum: ; 37c1a
@@ -129,11 +180,256 @@
```
+## Moves that lower Defense can do so after breaking a Substitute
+
+([Video](https://www.youtube.com/watch?v=OGwKPRJLaaI))
+
+This bug affects Acid, Iron Tail, and Rock Smash.
+
+This is a bug with `DefenseDownHit` in [battle/moves/move_effects.asm](/battle/moves/move_effects.asm):
+
+```asm
+DefenseDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ hittarget
+ failuretext
+ checkfaint
+ criticaltext
+ supereffectivetext
+ checkdestinybond
+ buildopponentrage
+ effectchance ; bug: duplicate effectchance shouldn't be here
+ defensedown
+ statdownmessage
+ endmove
+```
+
+**Fix:** Delete the second `effectchance`.
+
+
+## Counter and Mirror Coat still work if the opponent uses an item
+
+([Video](https://www.youtube.com/watch?v=uRYyzKRatFk))
+
+*To do:* Identify specific code causing this bug and fix it.
+
+
+## A Disabled but PP Up–enhanced move may not trigger Struggle
+
+([Video](https://www.youtube.com/watch?v=1v9x4SgMggs))
+
+This is a bug with `CheckPlayerHasUsableMoves` in [battle/core.asm](/battle/core.asm):
+
+```asm
+.done
+ ; Bug: this will result in a move with PP Up confusing the game.
+ ; Replace with "and $3f" to fix.
+ and a
+ ret nz
+
+.force_struggle
+ ld hl, BattleText_PkmnHasNoMovesLeft
+ call StdBattleTextBox
+ ld c, 60
+ call DelayFrames
+ xor a
+ ret
+```
+
+**Fix:** Change `and a` to `and $3f`.
+
+
+## A Pokémon that fainted from Pursuit will have its old status condition when revived
+
+([Video](https://www.youtube.com/watch?v=tiRvw-Nb2ME))
+
+*To do:* Identify specific code causing this bug and fix it.
+
+
+## Lock-On and Mind Reader don't always bypass Fly and Dig
+
+This bug affects Attract, Curse, Foresight, Mean Look, Mimic, Nightmare, Spider Web, Transform, and stat-lowering effects of moves like String Shot or Bubble during the semi-invulnerable turn of Fly or Dig.
+
+This is a bug with `CheckHiddenOpponent` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+
+```asm
+CheckHiddenOpponent: ; 37daa
+; BUG: This routine should account for Lock-On and Mind Reader.
+ ld a, BATTLE_VARS_SUBSTATUS3_OPP
+ call GetBattleVar
+ and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
+ ret
+```
+
+*To do:* Fix this bug.
+
+
+## Beat Up can desynchronize link battles
+
+([Video](https://www.youtube.com/watch?v=202-iAsrIa8))
+
+This is a bug with `BattleCommand_BeatUp` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+
+```asm
+.got_mon
+ ld a, [wd002]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld a, MON_HP
+ call GetBeatupMonLocation
+ ld a, [hli]
+ or [hl]
+ jp z, .beatup_fail ; fainted
+ ld a, [wd002]
+ ld c, a
+ ld a, [CurBattleMon]
+ ; BUG: this can desynchronize link battles
+ ; Change "cp [hl]" to "cp c" to fix
+ cp [hl]
+ ld hl, BattleMonStatus
+ jr z, .active_mon
+ ld a, MON_STATUS
+ call GetBeatupMonLocation
+.active_mon
+ ld a, [hl]
+ and a
+ jp nz, .beatup_fail
+```
+
+**Fix:** Change `cp [hl]` to `cp c`.
+
+
+## Present damage is incorrect in link battles
+
+([Video](https://www.youtube.com/watch?v=XJaQoKtrEuw))
+
+This bug existed for all battles in Gold and Silver, and was only fixed for single-player battles in Crystal to preserve link compatibility.
+
+This is a bug with `BattleCommand_Present` in [battle/effects/present.asm](/battle/effects/present.asm):
+
+```asm
+BattleCommand_Present: ; 37874
+; present
+
+ ld a, [wLinkMode]
+ cp LINK_COLOSSEUM
+ jr z, .colosseum_skippush
+ push bc
+ push de
+.colosseum_skippush
+
+ call BattleCommand_Stab
+
+ ld a, [wLinkMode]
+ cp LINK_COLOSSEUM
+ jr z, .colosseum_skippop
+ pop de
+ pop bc
+.colosseum_skippop
+```
+
+**Fix:**
+
+```asm
+BattleCommand_Present: ; 37874
+; present
+
+ push bc
+ push de
+ call BattleCommand_Stab
+ pop de
+ pop bc
+```
+
+
+## "Smart" AI encourages Mean Look if its own Pokémon is badly poisoned
+
+([Video](https://www.youtube.com/watch?v=cygMO-zHTls))
+
+This is a bug with `AI_Smart_MeanLook` in [battle/ai/scoring.asm](/battle/ai/scoring.asm):
+
+```asm
+; 80% chance to greatly encourage this move if the enemy is badly poisoned (buggy).
+; Should check PlayerSubStatus5 instead.
+ ld a, [EnemySubStatus5]
+ bit SUBSTATUS_TOXIC, a
+ jr nz, .asm_38e26
+```
+
+**Fix:** Change `EnemySubStatus5` to `PlayerSubStatus5`.
+
+
+## AI makes a false assumption about `CheckTypeMatchup`
+
+In [battle/effect_commands.asm](/battle/effect_commands.asm):
+
+```asm
+BattleCheckTypeMatchup: ; 347c8
+ ld hl, EnemyMonType1
+ ld a, [hBattleTurn]
+ and a
+ jr z, CheckTypeMatchup
+ ld hl, BattleMonType1
+CheckTypeMatchup: ; 347d3
+; There is an incorrect assumption about this function made in the AI related code: when
+; the AI calls CheckTypeMatchup (not BattleCheckTypeMatchup), it assumes that placing the
+; offensive type in a will make this function do the right thing. Since a is overwritten,
+; this assumption is incorrect. A simple fix would be to load the move type for the
+; current move into a in BattleCheckTypeMatchup, before falling through, which is
+; consistent with how the rest of the code assumes this code works like.
+ push hl
+ push de
+ push bc
+ ld a, BATTLE_VARS_MOVE_TYPE
+ call GetBattleVar
+ ld d, a
+```
+
+*To do:* Fix this bug.
+
+
+## NPC use of Full Heal or Full Restore does not cure Nightmare status
+
+([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=322))
+
+This is a bug with `AI_HealStatus` in [battle/ai/items.asm](/battle/ai/items.asm):
+
+```asm
+AI_HealStatus: ; 384e0
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Status
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ xor a
+ ld [hl], a
+ ld [EnemyMonStatus], a
+ ; Bug: this should reset SUBSTATUS_NIGHTMARE too
+ ; Uncomment the lines below to fix
+ ; ld hl, EnemySubStatus1
+ ; res SUBSTATUS_NIGHTMARE, [hl]
+ ld hl, EnemySubStatus5
+ res SUBSTATUS_TOXIC, [hl]
+ ret
+; 384f7
+```
+
+**Fix:** Uncomment `ld hl, EnemySubStatus1` and `res SUBSTATUS_NIGHTMARE, [hl]`.
+
+
## HP bar animation is slow for high HP
([Video](https://www.youtube.com/watch?v=SE-BfsFgZVM))
-This is a bug with `LongAnim_UpdateVariables` in [engine/anim_hp_bar.asm](engine/anim_hp_bar.asm):
+This is a bug with `LongAnim_UpdateVariables` in [engine/anim_hp_bar.asm](/engine/anim_hp_bar.asm):
```asm
; This routine is buggy. The result from ComputeHPBarPixels is stored
@@ -161,7 +457,7 @@
([Video](https://www.youtube.com/watch?v=9KyNVIZxJvI))
-This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/anim_hp_bar.asm](engine/anim_hp_bar.asm):
+This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/anim_hp_bar.asm](/engine/anim_hp_bar.asm):
```asm
ld b, 0
@@ -189,7 +485,7 @@
This can bring Pokémon straight from level 1 to 100 by gaining just a few experience points.
-This is a bug with `CalcExpAtLevel` in [main.asm](main.asm):
+This is a bug with `CalcExpAtLevel` in [main.asm](/main.asm):
```asm
CalcExpAtLevel: ; 50e47
@@ -235,7 +531,7 @@
([Video](https://www.youtube.com/watch?v=o54VjpAEoO8))
-This is a bug with `Text_ABoostedStringBuffer2ExpPoints` and `Text_StringBuffer2ExpPoints` in [text/common_2.asm](text/common_2.asm):
+This is a bug with `Text_ABoostedStringBuffer2ExpPoints` and `Text_StringBuffer2ExpPoints` in [text/common_2.asm](/text/common_2.asm):
```asm
Text_ABoostedStringBuffer2ExpPoints::
@@ -257,129 +553,9 @@
**Fix:** Change both `deciram StringBuffer2, 2, 4` to `deciram StringBuffer2, 2, 5`.
-## NPC use of Full Heal or Full Restore does not cure Nightmare status
-
-([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=322))
-
-This is a bug with `AI_HealStatus` in [battle/ai/items.asm](battle/ai/items.asm):
-
-```asm
-AI_HealStatus: ; 384e0
- ld a, [CurOTMon]
- ld hl, OTPartyMon1Status
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- xor a
- ld [hl], a
- ld [EnemyMonStatus], a
- ; Bug: this should reset SUBSTATUS_NIGHTMARE too
- ; Uncomment the lines below to fix
- ; ld hl, EnemySubStatus1
- ; res SUBSTATUS_NIGHTMARE, [hl]
- ld hl, EnemySubStatus5
- res SUBSTATUS_TOXIC, [hl]
- ret
-; 384f7
-```
-
-**Fix:** Uncomment `ld hl, EnemySubStatus1` and `res SUBSTATUS_NIGHTMARE, [hl]`.
-
-
-## "Smart" AI encourages Mean Look if its own Pokémon is badly poisoned
-
-([Video](https://www.youtube.com/watch?v=cygMO-zHTls))
-
-This is a bug with `AI_Smart_MeanLook` in [battle/ai/scoring.asm](battle/ai/scoring.asm):
-
-```asm
-; 80% chance to greatly encourage this move if the enemy is badly poisoned (buggy).
-; Should check PlayerSubStatus5 instead.
- ld a, [EnemySubStatus5]
- bit SUBSTATUS_TOXIC, a
- jr nz, .asm_38e26
-```
-
-**Fix:** Change `EnemySubStatus5` to `PlayerSubStatus5`.
-
-
-## A Disabled, PP Up–enhanced move may not trigger automatic Struggling
-
-([Video](https://www.youtube.com/watch?v=1v9x4SgMggs))
-
-This is a bug with `CheckPlayerHasUsableMoves` in [battle/core.asm](battle/core.asm):
-
-```asm
-.done
- ; Bug: this will result in a move with PP Up confusing the game.
- ; Replace with "and $3f" to fix.
- and a
- ret nz
-
-.force_struggle
- ld hl, BattleText_PkmnHasNoMovesLeft
- call StdBattleTextBox
- ld c, 60
- call DelayFrames
- xor a
- ret
-```
-
-**Fix:** Change `and a` to `and $3f`.
-
-
-## Counter and Mirror Coat still work if the opponent uses an item
-
-([Video](https://www.youtube.com/watch?v=uRYyzKRatFk))
-
-*To do:* Identify specific code causing this bug and fix it.
-
-
-## Present damage is incorrect in link battles
-
-([Video](https://www.youtube.com/watch?v=XJaQoKtrEuw))
-
-This bug existed for all battles in Gold and Silver, and was only fixed for single-player battles in Crystal to preserve link compatibility.
-
-This is a bug with `BattleCommand_Present` in [battle/effects/present.asm](battle/effects/present.asm):
-
-```asm
-BattleCommand_Present: ; 37874
-; present
-
- ld a, [wLinkMode]
- cp LINK_COLOSSEUM
- jr z, .colosseum_skippush
- push bc
- push de
-.colosseum_skippush
-
- call BattleCommand_Stab
-
- ld a, [wLinkMode]
- cp LINK_COLOSSEUM
- jr z, .colosseum_skippop
- pop de
- pop bc
-.colosseum_skippop
-```
-
-**Fix:**
-
-```asm
-BattleCommand_Present: ; 37874
-; present
-
- push bc
- push de
- call BattleCommand_Stab
- pop de
- pop bc
-```
-
-
## BRN/PSN/PAR do not affect catch rate
-This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `PokeBall` in [items/item_effects.asm](/items/item_effects.asm):
```asm
.statuscheck
@@ -411,7 +587,7 @@
## Moon Ball does not boost catch rate
-This is a bug with `MoonBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `MoonBallMultiplier` in [items/item_effects.asm](/items/item_effects.asm):
```asm
MoonBallMultiplier:
@@ -437,7 +613,7 @@
## Love Ball boosts catch rate for the wrong gender
-This is a bug with `LoveBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `LoveBallMultiplier` in [items/item_effects.asm](/items/item_effects.asm):
```asm
LoveBallMultiplier:
@@ -459,7 +635,7 @@
## Fast Ball only boosts catch rate for three Pokémon
-This is a bug with `FastBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `FastBallMultiplier` in [items/item_effects.asm](/items/item_effects.asm):
```asm
FastBallMultiplier:
@@ -483,26 +659,9 @@
**Fix:** Change `jr nz, .next` to `jr nz, .loop`.
-## Friend Ball catches sent to the PC overwrite the wrong Pokémon's happiness
-
-This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
-
-```asm
- ld a, [CurItem]
- cp FRIEND_BALL
- jr nz, .SkipBoxMonFriendBall
- ; Bug: overwrites the happiness of the first mon in the box!
- ld a, FRIEND_BALL_HAPPINESS
- ld [sBoxMon1Happiness], a
-.SkipBoxMonFriendBall:
-```
-
-`sBoxMon1Happiness` is written *before* the Friend Ball Pokémon is deposited.
-
-
## Dragon Scale, not Dragon Fang, boosts Dragon-type moves
-This is a bug with `ItemAttributes` in [items/item_attributes.asm](items/item_attributes.asm):
+This is a bug with `ItemAttributes` in [items/item_attributes.asm](/items/item_attributes.asm):
```asm
; DRAGON FANG
@@ -517,9 +676,9 @@
**Fix:** Move `HELD_DRAGON_BOOST` to the `DRAGON FANG` attributes and `0` to `DRAGON SCALE`.
-## Daisy's massages don't always increase happiness
+## Daisy's grooming doesn't always increase happiness
-This is a bug with `MassageOrHaircut` in [event/special.asm](event/special.asm):
+This is a bug with `MassageOrHaircut` in [event/special.asm](/event/special.asm):
```asm
; Bug: Subtracting $ff from $ff fails to set c.
@@ -568,7 +727,7 @@
## Magikarp in Lake of Rage are shorter, not longer
-This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [battle/core.asm](battle/core.asm):
+This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [battle/core.asm](/battle/core.asm):
```asm
.CheckMagikarpArea:
@@ -592,11 +751,32 @@
**Fix:** Change both `jr z, .Happiness` to `jr nz, .Happiness`.
+## Magikarp lengths can be miscalculated
+
+This is a bug with `CalcMagikarpLength.BCLessThanDE` in [event/magikarp.asm](/event/magikarp.asm):
+
+```asm
+.BCLessThanDE: ; fbc9a
+; Intention: Return bc < de.
+; Reality: Return b < d.
+ ld a, b
+ cp d
+ ret c
+ ret nc ; whoops
+ ld a, c
+ cp e
+ ret
+; fbca1
+```
+
+**Fix:** Delete `ret nc`.
+
+
## Battle transitions fail to account for the enemy's level
([Video](https://www.youtube.com/watch?v=eij_1060SMc))
-This is a bug with `StartTrainerBattle_DetermineWhichAnimation` in [engine/battle_start.asm](engine/battle_start.asm):
+This is a bug with `StartTrainerBattle_DetermineWhichAnimation` in [engine/battle_start.asm](/engine/battle_start.asm):
```asm
StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
@@ -637,9 +817,61 @@
*To do:* Fix this bug.
+## Slot machine payout sound effects cut each other off
+
+([Video](https://www.youtube.com/watch?v=ojq3xqfRF6I))
+
+This is a bug with `Slots_PayoutAnim` in [engine/slot_machine.asm](/engine/slot_machine.asm):
+
+```asm
+.okay
+ ld [hl], e
+ dec hl
+ ld [hl], d
+ ld a, [wcf64]
+ and $7
+ ret z ; ret nz would be more appropriate
+ ld de, SFX_GET_COIN_FROM_SLOTS
+ call PlaySFX
+ ret
+```
+
+**Fix:** Change `ret z` to `ret nz`.
+
+
+## Team Rocket battle music is not used for Executives or Scientists
+
+This is a bug with `PlayBattleMusic` in [main.asm](/main.asm):
+
+```asm
+ ; really, they should have included admins and scientists here too...
+ ld de, MUSIC_ROCKET_BATTLE
+ cp GRUNTM
+ jr z, .done
+ cp GRUNTF
+ jr z, .done
+```
+
+**Fix:**
+
+```asm
+ ld de, MUSIC_ROCKET_BATTLE
+ cp GRUNTM
+ jr z, .done
+ cp GRUNTF
+ jr z, .done
+ cp EXECUTIVEM
+ jr z, .done
+ cp EXECUTIVEF
+ jr z, .done
+ cp SCIENTIST
+ jr z, .done
+```
+
+
## No bump noise if standing on tile `$3E`
-This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](engine/player_movement.asm):
+This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](/engine/player_movement.asm):
```asm
; Bug: Since no case is made for STANDING here, it will check
@@ -648,6 +880,8 @@
; making bumps silent.
ld a, [WalkingDirection]
+ ; cp STANDING
+ ; jr z, .not_warp
ld e, a
ld d, 0
ld hl, .EdgeWarps
@@ -659,6 +893,7 @@
ld a, 1
ld [wd041], a
ld a, [WalkingDirection]
+ ; This is in the wrong place.
cp STANDING
jr z, .not_warp
```
@@ -683,11 +918,62 @@
```
-## `LoadMetatiles` wrap around past 128 blocks
+## Playing Entei's Pokédex cry can distort Raikou's and Suicune's
-[home/map.asm](home/map.asm):
+([Video](https://www.youtube.com/watch?v=z305e4sIO24))
+The exact cause is unknown, but a workaround exists for `DexEntryScreen_MenuActionJumptable.Cry` in [engine/pokedex.asm](/engine/pokedex.asm):
+
```asm
+.Cry: ; 40340
+ call Pokedex_GetSelectedMon
+ ld a, [wd265]
+ call GetCryIndex
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+ ret
+```
+
+**Workaround:**
+
+```asm
+.Cry: ; 40340
+ ld a, [CurPartySpecies]
+ call PlayCry
+ ret
+```
+
+
+## In-battle “`…`” ellipsis is too high
+
+This is a mistake with the “`…`” tile in [gfx/battle/hp_exp_bar_border.png](/gfx/battle/hp_exp_bar_border.png):
+
+![image](/docs/images/hp_exp_bar_border.png)
+
+**Fix:** Lower the ellipsis by two pixels:
+
+![image](/docs/images/hp_exp_bar_border_fix.png)
+
+
+## Two tiles in the `port` tileset are drawn incorrectly
+
+This is a mistake with the left-hand warp carpet corner tiles in [gfx/tilesets/port.png](/gfx/tilesets/port.png):
+
+![image](/docs/images/port.png)
+
+**Fix:** Adjust them to match the right-hand corner tiles:
+
+![image](/docs/images/port_fix.png)
+
+
+## `LoadMetatiles` wraps around past 128 blocks
+
+This bug prevents you from using blocksets with more than 128 blocks.
+
+In [home/map.asm](/home/map.asm):
+
+```asm
; Set hl to the address of the current metatile data ([TilesetBlocksAddress] + (a) tiles).
; This is buggy; it wraps around past 128 blocks.
; To fix, uncomment the line below.
@@ -716,6 +1002,22 @@
*To do:* Identify specific code causing this bug and fix it.
+## `Function6ec1` does not correctly limit object movement
+
+This bug is why the Lapras in Union Cave, which uses `SPRITEMOVEDATA_LAPRAS`, is not restricted by its `1, 1` movement radius.
+
+In [engine/npc_movement.asm](/engine/npc_movement.asm):
+
+```asm
+ ld hl, OBJECT_FLAGS1
+ add hl, bc
+ bit 4, [hl] ; lost, uncomment next line to fix
+; jr nz, .resume
+```
+
+**Fix:** Uncomment `jr nz, .resume`.
+
+
## `CheckOwnMon` only checks the first five letters of OT names
([Video](https://www.youtube.com/watch?v=GVTTmReM4nQ))
@@ -722,7 +1024,7 @@
This bug can allow you to talk to Eusine in Celadon City and encounter Ho-Oh with only traded legendary beasts.
-[engine/search.asm](engine/search.asm):
+In [engine/search.asm](/engine/search.asm):
```asm
; check OT
@@ -756,9 +1058,108 @@
**Fix:** Change `rept NAME_LENGTH_JAPANESE +- 2` to `rept PLAYER_NAME_LENGTH +- 2`.
+## Catching a Transformed Pokémon always catches a Ditto
+
+This bug can affect Mew or Pokémon other than Ditto that used Transform via Mirror Move or Sketch.
+
+This is a bug with `PokeBall` in [items/item_effects.asm](/items/item_effects.asm):
+
+```asm
+ ld hl, EnemySubStatus5
+ ld a, [hl]
+ push af
+ set SUBSTATUS_TRANSFORMED, [hl]
+
+; This code is buggy. Any wild Pokémon that has Transformed will be
+; caught as a Ditto, even if it was something else like Mew.
+; To fix, do not set [TempEnemyMonSpecies] to DITTO.
+ bit SUBSTATUS_TRANSFORMED, a
+ jr nz, .ditto
+ jr .not_ditto
+
+.ditto
+ ld a, DITTO
+ ld [TempEnemyMonSpecies], a
+ jr .load_data
+
+.not_ditto
+ set SUBSTATUS_TRANSFORMED, [hl]
+ ld hl, wEnemyBackupDVs
+ ld a, [EnemyMonDVs]
+ ld [hli], a
+ ld a, [EnemyMonDVs + 1]
+ ld [hl], a
+
+.load_data
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [EnemyMonLevel]
+ ld [CurPartyLevel], a
+ callba LoadEnemyMon
+
+ pop af
+ ld [EnemySubStatus5], a
+```
+
+**Fix:**
+
+```asm
+ ld hl, EnemySubStatus5
+ ld a, [hl]
+ push af
+ set SUBSTATUS_TRANSFORMED, [hl]
+
+ bit SUBSTATUS_TRANSFORMED, a
+ jr nz, .load_data
+
+ ld hl, wEnemyBackupDVs
+ ld a, [EnemyMonDVs]
+ ld [hli], a
+ ld a, [EnemyMonDVs + 1]
+ ld [hl], a
+
+.load_data
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [EnemyMonLevel]
+ ld [CurPartyLevel], a
+ callba LoadEnemyMon
+
+ pop af
+ ld [EnemySubStatus5], a
+```
+
+
+## Using a Park Ball in normal battles has a corrupt animation
+
+([Video](https://www.youtube.com/watch?v=v1ErZdLCIyU))
+
+This is a bug with `ParkBall` in [items/item_effects.asm](/items/item_effects.asm):
+
+```asm
+.room_in_party
+ xor a
+ ld [wWildMon], a
+ ld a, [CurItem]
+ cp PARK_BALL
+ call nz, ReturnToBattle_UseBall
+```
+
+**Fix:**
+
+```asm
+.room_in_party
+ xor a
+ ld [wWildMon], a
+ ld a, [BattleType]
+ cp BATTLETYPE_CONTEST
+ call nz, ReturnToBattle_UseBall
+```
+
+
## `HELD_CATCH_CHANCE` has no effect
-This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `PokeBall` in [items/item_effects.asm](/items/item_effects.asm):
```asm
; BUG: callba overwrites a,
@@ -780,9 +1181,32 @@
**Fix:** Uncomment `ld b, a`.
+## Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly
+
+This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/party_menu.asm](/engine/party_menu.asm):
+
+```asm
+.DetermineCompatibility: ; 50268
+ ld de, StringBuffer1
+ ld a, BANK(EvosAttacksPointers)
+ ld bc, 2
+ call FarCopyBytes
+ ld hl, StringBuffer1
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, StringBuffer1
+ ld a, BANK(EvosAttacks)
+ ld bc, $a
+ call FarCopyBytes
+```
+
+**Fix:** Change `ld bc, $a` to `ld bc, $10` to support up to five Stone entries.
+
+
## `ScriptCall` can overflow `wScriptStack` and crash
-[engine/scripting.asm](engine/scripting.asm):
+In [engine/scripting.asm](/engine/scripting.asm):
```asm
ScriptCall:
@@ -820,12 +1244,12 @@
## `LoadSpriteGFX` does not limit the capacity of `UsedSprites`
-[engine/overworld.asm](engine/overworld.asm):
+In [engine/overworld.asm](/engine/overworld.asm):
```asm
LoadSpriteGFX: ; 14306
-; Bug: b is not preserved, so
-; it's useless as a next count.
+; Bug: b is not preserved, so it's useless as a next count.
+; Uncomment the lines below to fix.
ld hl, UsedSprites
ld b, SPRITE_GFX_LIST_CAPACITY
@@ -844,18 +1268,20 @@
ret
.LoadSprite:
+ ; push bc
call GetSprite
+ ; pop bc
ld a, l
ret
; 1431e
```
-`GetSprite` modifies `b`. Surround it with `push bc`/`pop bc` to fix.
+**Fix:** Uncomment `push bc` and `pop bc`.
## `ChooseWildEncounter` doesn't really validate the wild Pokémon species
-[engine/wildmons.asm](engine/wildmons.asm):
+In [engine/wildmons.asm](/engine/wildmons.asm):
```asm
ChooseWildEncounter: ; 2a14f
@@ -894,7 +1320,7 @@
## `TryObjectEvent` arbitrary code execution
-[engine/events.asm](engine/events.asm):
+In [engine/events.asm](/engine/events.asm):
```asm
; Bug: If IsInArray returns nc, data at bc will be executed as code.
@@ -922,7 +1348,7 @@
## `Special_CheckBugContestContestantFlag` can read beyond its data table
-[event/bug_contest_2.asm](event/bug_contest_2.asm):
+In [event/bug_contest_2.asm](/event/bug_contest_2.asm):
```asm
Special_CheckBugContestContestantFlag: ; 139ed
@@ -960,7 +1386,7 @@
## `ClearWRAM` only clears WRAM bank 1
-[home/init.asm](home/init.asm):
+In [home/init.asm](/home/init.asm):
```asm
ClearWRAM:: ; 25a
@@ -988,7 +1414,7 @@
## `GetForestTreeFrame` works, but it's still bad
-[tilesets/animations.asm](tilesets/animations.asm):
+In [tilesets/animations.asm](/tilesets/animations.asm):
```asm
GetForestTreeFrame: ; fc54c
--- /dev/null
+++ b/docs/effect_commands.md
@@ -1,0 +1,358 @@
+# Effect Commands
+
+Defined in [macros/scripts/effect_commands.asm](/macros/scripts/effect_commands.asm) and [battle/effect_command_pointers.asm:BattleCommandPointers](/battle/effect_command_pointers.asm).
+
+
+## `$01`: `checkturn`
+
+## `$02`: `checkobedience`
+
+## `$03`: `usedmovetext`
+
+## `$04`: `doturn`
+
+## `$05`: `critical`
+
+## `$06`: `damagestats`
+
+## `$07`: `stab`
+
+## `$08`: `damagevariation`
+
+## `$09`: `checkhit`
+
+## `$0A`: `lowersub`
+
+## `$0B`: `hittargetnosub`
+
+## `$0C`: `raisesub`
+
+## `$0D`: `failuretext`
+
+## `$0E`: `checkfaint`
+
+## `$0F`: `criticaltext`
+
+## `$10`: `supereffectivetext`
+
+## `$11`: `checkdestinybond`
+
+## `$12`: `buildopponentrage`
+
+## `$13`: `poisontarget`
+
+## `$14`: `sleeptarget`
+
+## `$15`: `draintarget`
+
+## `$16`: `eatdream`
+
+## `$17`: `burntarget`
+
+## `$18`: `freezetarget`
+
+## `$19`: `paralyzetarget`
+
+## `$1A`: `selfdestruct`
+
+## `$1B`: `mirrormove`
+
+## `$1C`: `statup`
+
+## `$1D`: `statdown`
+
+## `$1E`: `payday`
+
+## `$1F`: `conversion`
+
+## `$20`: `resetstats`
+
+## `$21`: `storeenergy`
+
+## `$22`: `unleashenergy`
+
+## `$23`: `forceswitch`
+
+## `$24`: `endloop`
+
+## `$25`: `flinchtarget`
+
+## `$26`: `ohko`
+
+## `$27`: `recoil`
+
+## `$28`: `mist`
+
+## `$29`: `focusenergy`
+
+## `$2A`: `confuse`
+
+## `$2B`: `confusetarget`
+
+## `$2C`: `heal`
+
+## `$2D`: `transform`
+
+## `$2E`: `screen`
+
+## `$2F`: `poison`
+
+## `$30`: `paralyze`
+
+## `$31`: `substitute`
+
+## `$32`: `rechargenextturn`
+
+## `$33`: `mimic`
+
+## `$34`: `metronome`
+
+## `$35`: `leechseed`
+
+## `$36`: `splash`
+
+## `$37`: `disable`
+
+## `$38`: `cleartext`
+
+## `$39`: `charge`
+
+## `$3A`: `checkcharge`
+
+## `$3B`: `traptarget`
+
+## `$3C`: `effect0x3c`
+
+## `$3D`: `rampage`
+
+## `$3E`: `checkrampage`
+
+## `$3F`: `constantdamage`
+
+## `$40`: `counter`
+
+## `$41`: `encore`
+
+## `$42`: `painsplit`
+
+## `$43`: `snore`
+
+## `$44`: `conversion2`
+
+## `$45`: `lockon`
+
+## `$46`: `sketch`
+
+## `$47`: `defrostopponent`
+
+## `$48`: `sleeptalk`
+
+## `$49`: `destinybond`
+
+## `$4A`: `spite`
+
+## `$4B`: `falseswipe`
+
+## `$4C`: `healbell`
+
+## `$4D`: `kingsrock`
+
+## `$4E`: `triplekick`
+
+## `$4F`: `kickcounter`
+
+## `$50`: `thief`
+
+## `$51`: `arenatrap`
+
+## `$52`: `nightmare`
+
+## `$53`: `defrost`
+
+## `$54`: `curse`
+
+## `$55`: `protect`
+
+## `$56`: `spikes`
+
+## `$57`: `foresight`
+
+## `$58`: `perishsong`
+
+## `$59`: `startsandstorm`
+
+## `$5A`: `endure`
+
+## `$5B`: `checkcurl`
+
+## `$5C`: `rolloutpower`
+
+## `$5D`: `effect0x5d`
+
+## `$5E`: `furycutter`
+
+## `$5F`: `attract`
+
+## `$60`: `happinesspower`
+
+## `$61`: `present`
+
+## `$62`: `damagecalc`
+
+## `$63`: `frustrationpower`
+
+## `$64`: `safeguard`
+
+## `$65`: `checksafeguard`
+
+## `$66`: `getmagnitude`
+
+## `$67`: `batonpass`
+
+## `$68`: `pursuit`
+
+## `$69`: `clearhazards`
+
+## `$6A`: `healmorn`
+
+## `$6B`: `healday`
+
+## `$6C`: `healnite`
+
+## `$6D`: `hiddenpower`
+
+## `$6E`: `startrain`
+
+## `$6F`: `startsun`
+
+## `$70`: `attackup`
+
+## `$71`: `defenseup`
+
+## `$72`: `speedup`
+
+## `$73`: `specialattackup`
+
+## `$74`: `specialdefenseup`
+
+## `$75`: `accuracyup`
+
+## `$76`: `evasionup`
+
+## `$77`: `attackup2`
+
+## `$78`: `defenseup2`
+
+## `$79`: `speedup2`
+
+## `$7A`: `specialattackup2`
+
+## `$7B`: `specialdefenseup2`
+
+## `$7C`: `accuracyup2`
+
+## `$7D`: `evasionup2`
+
+## `$7E`: `attackdown`
+
+## `$7F`: `defensedown`
+
+## `$80`: `speeddown`
+
+## `$81`: `specialattackdown`
+
+## `$82`: `specialdefensedown`
+
+## `$83`: `accuracydown`
+
+## `$84`: `evasiondown`
+
+## `$85`: `attackdown2`
+
+## `$86`: `defensedown2`
+
+## `$87`: `speeddown2`
+
+## `$88`: `specialattackdown2`
+
+## `$89`: `specialdefensedown2`
+
+## `$8A`: `accuracydown2`
+
+## `$8B`: `evasiondown2`
+
+## `$8C`: `statupmessage`
+
+## `$8D`: `statdownmessage`
+
+## `$8E`: `statupfailtext`
+
+## `$8F`: `statdownfailtext`
+
+## `$90`: `effectchance`
+
+## `$91`: `statdownanim`
+
+## `$92`: `statupanim`
+
+## `$93`: `switchturn`
+
+## `$94`: `fakeout`
+
+## `$95`: `bellydrum`
+
+## `$96`: `psychup`
+
+## `$97`: `rage`
+
+## `$98`: `doubleflyingdamage`
+
+## `$99`: `doubleundergrounddamage`
+
+## `$9A`: `mirrorcoat`
+
+## `$9B`: `checkfuturesight`
+
+## `$9C`: `futuresight`
+
+## `$9D`: `doubleminimizedamage`
+
+## `$9E`: `skipsuncharge`
+
+## `$9F`: `thunderaccuracy`
+
+## `$A0`: `teleport`
+
+## `$A1`: `beatup`
+
+## `$A2`: `ragedamage`
+
+## `$A3`: `resettypematchup`
+
+## `$A4`: `allstatsup`
+
+## `$A5`: `effect0xa5`
+
+## `$A6`: `raisesubnoanim`
+
+## `$A7`: `lowersubnoanim`
+
+## `$A8`: `effect0xa8`
+
+## `$A9`: `clearmissdamage`
+
+## `$AA`: `movedelay`
+
+## `$AB`: `hittarget`
+
+## `$AC`: `tristatuschance`
+
+## `$AD`: `supereffectivelooptext`
+
+## `$AE`: `startloop`
+
+## `$AF`: `curl`
+
+## `$FE`: `endturn`
+
+## `$FF`: `endmove`
--- a/docs/event_commands.md
+++ b/docs/event_commands.md
@@ -1,5 +1,8 @@
# Event Commands
+Defined in [macros/scripts/event.asm](/macros/scripts/event.asm) and [engine/scripting.asm:ScriptCommandTable](/engine/scripting.asm).
+
+
## `$00`: `scall` *script*
## `$01`: `farscall` *script*
binary files /dev/null b/docs/images/hp_exp_bar_border.png differ
binary files /dev/null b/docs/images/hp_exp_bar_border_fix.png differ
binary files /dev/null b/docs/images/port.png differ
binary files /dev/null b/docs/images/port_fix.png differ
--- a/docs/move_anim_commands.md
+++ b/docs/move_anim_commands.md
@@ -1,5 +1,8 @@
# Move Animation Commands
+Defined in [macros/scripts/move_anim.asm](/macros/scripts/move_anim.asm) and [battle/anims.asm:BattleAnimations](/battle/anims.asm).
+
+
## `$00`−`$EF`: `anim_wait` *length*
## `$D0`: `anim_obj` *object*, *x*, *y*, *param*
--- a/docs/movement_commands.md
+++ b/docs/movement_commands.md
@@ -1,5 +1,8 @@
# Movement Commands
+Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engine/movement.asm:MovementPointers](/engine/movement.asm).
+
+
## `$00`−`$03`: `turn_head` *direction*
## `$04`−`$07`: `turn_step` *direction*
--- a/docs/music_commands.md
+++ b/docs/music_commands.md
@@ -1,5 +1,8 @@
# Music Commands
+Defined in [macros/scripts/audio.asm](/macros/scripts/audio.asm) and [audio/engine.asm:MusicCommands](/audio/engine.asm).
+
+
## `musicheader` *n*, *index*, *address*
## `cry_header` *n*, *index*, *address*
--- a/docs/pic_animations.md
+++ b/docs/pic_animations.md
@@ -1,5 +1,8 @@
# Pic Animations
+Defined in [macros/scripts/gfx_anim.asm](/macros/scripts/gfx_anim.asm) and [battle/anim_commands.asm:BattleAnimCommands](/battle/anim_commands.asm).
+
+
Pic animations are assembled in 3 parts:
- Top-level animations:
--- a/docs/text_commands.md
+++ b/docs/text_commands.md
@@ -1,41 +1,53 @@
# Text Commands
+Defined in [macros/scripts/text.asm](/macros/scripts/text.asm) and [home/text.asm:TextCommands](/home/text.asm).
+
+
## `$00`: `text` *text*
Start writing text until `"@"`.
+
## `$4E`: `next` *text*
Move a line down.
+
## `$4F`: `line` *text*
Start writing at the bottom line.
+
## `$50`: `page` *text*
Start a new Pokédex page.
+
## `$51`: `para` *text*
Start a new paragraph.
+
## `$55`: `cont` *text*
Scroll to the next line.
+
## `$57`: `done`
End a text box.
+
## `$58`: `prompt`
Prompt the player to end a text box (initiating some other event).
+
## `$01`: `text_from_ram` *address*
Write text from a RAM address.
+
## `$02`: `text_bcd` *address*, *flags*
Write [BCD](bcd) from an address, typically RAM.
@@ -42,75 +54,93 @@
[bcd]: https://en.wikipedia.org/wiki/Binary-coded_decimal
+
## `$03`: `text_move` *address*
Move to a new tile.
+
## `$04`: `text_box` *address*, *height*, *width*
Draw a box.
+
## `$05`: `text_low`
Write text at (1, 16).
+
## `$06`: `text_waitbutton`
Wait for button press; show arrow.
+
## `$07`: `text_scroll`
Pushes text up two lines and sets the `bc` cursor to the border tile below the
first character column of the text box.
+
## `$08`: `start_asm`
Start interpreting assembly code.
+
## `$09`: `deciram` *address*, *bytes*, *digits*
Read *bytes* bytes from *address* and print them as a *digits*-digit number.
+
## `$0A`: `interpret_data`
Exit.
+
## `$0B`: `sound_dex_fanfare_50_79`
Play `SFX_DEX_FANFARE_50_79`.
+
## `$0C`: `limited_interpret_data` *number*
Print *number* `"…"`s.
+
## `$0D`: `link_wait_button`
Wait for button press; show arrow.
+
## `$0E`: `sound_dex_fanfare_20_49`
Play `SFX_DEX_FANFARE_20_49`.
+
## `$0F`: `sound_item`
Play `SFX_ITEM`.
+
## `$10`: `sound_caught_mon`
Play `SFX_CAUGHT_MON`.
+
## `$11`: `sound_dex_fanfare_80_109`
Play `SFX_DEX_FANFARE_80_109`.
+
## `$12`: `sound_fanfare`
Play `SFX_FANFARE`.
+
## `$13`: `sound_slot_machine_start`
Play `SFX_SLOT_MACHINE_START`.
+
## `$14`: `text_buffer` *id*
Write text from one of the following addresses (listed in `StringBufferPointers`):
@@ -123,9 +153,11 @@
5. `EnemyMonNick`
6. `BattleMonNick`
+
## `$15`: `current_day`
Print the weekday.
+
## `$16`: `text_jump` *address*
--- a/engine/battle_start.asm
+++ /dev/null
@@ -1,866 +1,0 @@
-Predef_StartBattle: ; 8c20f
- call .InitGFX
- ld a, [rBGP]
- ld [wBGP], a
- ld a, [rOBP0]
- ld [wOBP0], a
- ld a, [rOBP1]
- ld [wOBP1], a
- call DelayFrame
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $1
-
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call FlashyTransitionToBattle
- call DelayFrame
- jr .loop
-
-.done
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld hl, UnknBGPals
- ld bc, 8 palettes
- xor a
- call ByteFill
-
- pop af
- ld [rSVBK], a
-
- ld a, %11111111
- ld [wBGP], a
- call DmgToCgbBGPals
- call DelayFrame
- xor a
- ld [hLCDCPointer], a
- ld [hLYOverrideStart], a
- ld [hLYOverrideEnd], a
- ld [hSCY], a
-
- ld a, $1
- ld [rSVBK], a
- pop af
- ld [hVBlank], a
- call DelayFrame
- ret
-; 8c26d
-
-.InitGFX: ; 8c26d
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jr z, .mobile
- callba ReanchorBGMap_NoOAMUpdate
- call UpdateSprites
- call DelayFrame
- call .NonMobile_LoadPokeballTiles
- call BattleStart_LoadEDTile
- jr .resume
-
-.mobile
- call LoadTrainerBattlePokeballTiles
-
-.resume
- ld a, SCREEN_HEIGHT_PX
- ld [hWY], a
- call DelayFrame
- xor a
- ld [hBGMapMode], a
- ld hl, wJumptableIndex
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- call WipeLYOverrides
- ret
-; 8c2a0
-
-.NonMobile_LoadPokeballTiles: ; 8c2a0
- call LoadTrainerBattlePokeballTiles
- hlbgcoord 0, 0
- call ConvertTrainerBattlePokeballTilesTo2bpp
- ret
-; 8c2aa
-
-LoadTrainerBattlePokeballTiles:
-; Load the tiles used in the Pokeball Graphic that fills the screen
-; at the start of every Trainer battle.
- ld de, TrainerBattlePokeballTiles
- ld hl, VTiles1 tile $7e
- ld b, BANK(TrainerBattlePokeballTiles)
- ld c, 2
- call Request2bpp
-
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
-
- ld de, TrainerBattlePokeballTiles
- ld hl, VTiles4 tile $7e
- ld b, BANK(TrainerBattlePokeballTiles)
- ld c, 2
- call Request2bpp
-
- pop af
- ld [rVBK], a
- ret
-; 8c2cf
-
-ConvertTrainerBattlePokeballTilesTo2bpp: ; 8c2cf
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push hl
- ld hl, wDecompressScratch
- ld bc, $28 tiles
-
-.loop
- ld [hl], -1
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .loop
-
- pop hl
- ld de, wDecompressScratch
- ld b, BANK(ConvertTrainerBattlePokeballTilesTo2bpp) ; BANK(@)
- ld c, $28
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-; 8c2f4
-
-TrainerBattlePokeballTiles: ; 8c2f4
-INCBIN "gfx/overworld/trainer_battle_pokeball_tiles.2bpp"
-
-
-FlashyTransitionToBattle: ; 8c314
- jumptable .dw, wJumptableIndex
-; 8c323
-
-.dw ; 8c323 (23:4323)
- dw StartTrainerBattle_DetermineWhichAnimation ; 00
-
- ; Animation 1: cave
- dw StartTrainerBattle_LoadPokeBallGraphics ; 01
- dw StartTrainerBattle_SetUpBGMap ; 02
- dw StartTrainerBattle_Flash ; 03
- dw StartTrainerBattle_Flash ; 04
- dw StartTrainerBattle_Flash ; 05
- dw StartTrainerBattle_NextScene ; 06
- dw StartTrainerBattle_SetUpForWavyOutro ; 07
- dw StartTrainerBattle_SineWave ; 08
-
- ; Animation 2: cave, stronger
- dw StartTrainerBattle_LoadPokeBallGraphics ; 09
- dw StartTrainerBattle_SetUpBGMap ; 0a
- dw StartTrainerBattle_Flash ; 0b
- dw StartTrainerBattle_Flash ; 0c
- dw StartTrainerBattle_Flash ; 0d
- dw StartTrainerBattle_NextScene ; 0e
- ; There is no setup for this one
- dw StartTrainerBattle_ZoomToBlack ; 0f
-
- ; Animation 3: no cave
- dw StartTrainerBattle_LoadPokeBallGraphics ; 10
- dw StartTrainerBattle_SetUpBGMap ; 11
- dw StartTrainerBattle_Flash ; 12
- dw StartTrainerBattle_Flash ; 13
- dw StartTrainerBattle_Flash ; 14
- dw StartTrainerBattle_NextScene ; 15
- dw StartTrainerBattle_SetUpForSpinOutro ; 16
- dw StartTrainerBattle_SpinToBlack ; 17
-
- ; Animation 4: no cave, stronger
- dw StartTrainerBattle_LoadPokeBallGraphics ; 18
- dw StartTrainerBattle_SetUpBGMap ; 19
- dw StartTrainerBattle_Flash ; 1a
- dw StartTrainerBattle_Flash ; 1b
- dw StartTrainerBattle_Flash ; 1c
- dw StartTrainerBattle_NextScene ; 1d
- dw StartTrainerBattle_SetUpForRandomScatterOutro ; 1e
- dw StartTrainerBattle_SpeckleToBlack ; 1f
-
- ; All animations jump to here.
- dw StartTrainerBattle_Finish ; 20
-
-
-StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
-; The screen flashes a different number of times depending on the level of
-; your lead Pokemon relative to the opponent's.
-; BUG: BattleMonLevel and EnemyMonLevel are not set at this point, so whatever
-; values happen to be there will determine the animation.
- ld de, 0
- ld a, [BattleMonLevel]
- add 3
- ld hl, EnemyMonLevel
- cp [hl]
- jr nc, .okay
- set 0, e
-.okay
- ld a, [wPermission]
- cp CAVE
- jr z, .okay2
- cp PERM_5
- jr z, .okay2
- cp DUNGEON
- jr z, .okay2
- set 1, e
-.okay2
- ld hl, .StartingPoints
- add hl, de
- ld a, [hl]
- ld [wJumptableIndex], a
- ret
-; 8c38f (23:438f)
-
-.StartingPoints: ; 8c38f
- db 1, 9
- db 16, 24
-; 8c393
-
-StartTrainerBattle_Finish: ; 8c393 (23:4393)
- call ClearSprites
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-StartTrainerBattle_NextScene: ; 8c39c (23:439c)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-StartTrainerBattle_SetUpBGMap: ; 8c3a1 (23:43a1)
- call StartTrainerBattle_NextScene
- xor a
- ld [wcf64], a
- ld [hBGMapMode], a
- ret
-
-StartTrainerBattle_Flash: ; 8c3ab (23:43ab)
- call .DoFlashAnimation
- ret nc
- call StartTrainerBattle_NextScene
- ret
-
-.DoFlashAnimation: ; 8c3b3 (23:43b3)
- ld a, [wTimeOfDayPalset]
- cp %11111111 ; dark cave
- jr z, .done
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- srl a
- ld e, a
- ld d, 0
- ld hl, .pals
- add hl, de
- ld a, [hl]
- cp %00000001
- jr z, .done
- ld [wBGP], a
- call DmgToCgbBGPals
- and a
- ret
-
-.done
- xor a
- ld [wcf64], a
- scf
- ret
-; 8c3db (23:43db)
-
-.pals ; 8c3db
- db %11111001 ; 3321
- db %11111110 ; 3332
- db %11111111 ; 3333
- db %11111110 ; 3332
- db %11111001 ; 3321
- db %11100100 ; 3210
- db %10010000 ; 2100
- db %01000000 ; 1000
- db %00000000 ; 0000
- db %01000000 ; 1000
- db %10010000 ; 2100
- db %11100100 ; 3210
- db %00000001 ; 0001
-; 8c3e8
-
-StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8)
- callba Function5602
- ld a, $5 ; BANK(LYOverrides)
- ld [rSVBK], a
-
- call StartTrainerBattle_NextScene
-
- ld a, rSCX - $ff00
- ld [hLCDCPointer], a
- xor a
- ld [hLYOverrideStart], a
- ld a, $90
- ld [hLYOverrideEnd], a
- xor a
- ld [wcf64], a
- ld [wcf65], a
- ret
-
-StartTrainerBattle_SineWave: ; 8c408 (23:4408)
- ld a, [wcf64]
- cp $60
- jr nc, .end
- call .DoSineWave
- ret
-
-.end
- ld a, $20
- ld [wJumptableIndex], a
- ret
-
-.DoSineWave: ; 8c419 (23:4419)
- ld hl, wcf65
- ld a, [hl]
- inc [hl]
- ld hl, wcf64
- ld d, [hl]
- add [hl]
- ld [hl], a
- ld a, LYOverridesEnd - LYOverrides
- ld bc, LYOverrides
- ld e, $0
-
-.loop
- push af
- push de
- ld a, e
- call StartTrainerBattle_DrawSineWave
- ld [bc], a
- inc bc
- pop de
- ld a, e
- add $2
- ld e, a
- pop af
- dec a
- jr nz, .loop
- ret
-
-StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d)
- callba Function5602
- ld a, $5 ; BANK(LYOverrides)
- ld [rSVBK], a
- call StartTrainerBattle_NextScene
- xor a
- ld [wcf64], a
- ret
-
-spintable_entry: MACRO
- db \1
- dw .wedge\2
- dwcoord \3, \4
-ENDM
-
-; quadrants
- const_def
- const UPPER_LEFT
- const UPPER_RIGHT
- const LOWER_LEFT
- const LOWER_RIGHT
-
-StartTrainerBattle_SpinToBlack: ; 8c44f (23:444f)
- xor a
- ld [hBGMapMode], a
- ld a, [wcf64]
- ld e, a
- ld d, 0
- ld hl, .spintable
-rept 5
- add hl, de
-endr
- ld a, [hli]
- cp -1
- jr z, .end
- ld [wcf65], a
- call .load
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- ld hl, wcf64
- inc [hl]
- ret
-
-.end
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ld [hBGMapMode], a
- ld a, $20
- ld [wJumptableIndex], a
- ret
-; 8c490 (23:4490)
-
-.spintable ; 8c490
- spintable_entry UPPER_LEFT, 1, 1, 6
- spintable_entry UPPER_LEFT, 2, 0, 3
- spintable_entry UPPER_LEFT, 3, 1, 0
- spintable_entry UPPER_LEFT, 4, 5, 0
- spintable_entry UPPER_LEFT, 5, 9, 0
- spintable_entry UPPER_RIGHT, 5, 10, 0
- spintable_entry UPPER_RIGHT, 4, 14, 0
- spintable_entry UPPER_RIGHT, 3, 18, 0
- spintable_entry UPPER_RIGHT, 2, 19, 3
- spintable_entry UPPER_RIGHT, 1, 18, 6
- spintable_entry LOWER_RIGHT, 1, 18, 11
- spintable_entry LOWER_RIGHT, 2, 19, 14
- spintable_entry LOWER_RIGHT, 3, 18, 17
- spintable_entry LOWER_RIGHT, 4, 14, 17
- spintable_entry LOWER_RIGHT, 5, 10, 17
- spintable_entry LOWER_LEFT, 5, 9, 17
- spintable_entry LOWER_LEFT, 4, 5, 17
- spintable_entry LOWER_LEFT, 3, 1, 17
- spintable_entry LOWER_LEFT, 2, 0, 14
- spintable_entry LOWER_LEFT, 1, 1, 11
- db -1
-; 8c4f5
-
-.load ; 8c4f5 (23:44f5)
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.loop
- push hl
- ld a, [de]
- ld c, a
- inc de
-.loop1
- ld [hl], $ff
- ld a, [wcf65]
- bit 0, a
- jr z, .leftside
- inc hl
- jr .okay1
-.leftside
- dec hl
-.okay1
- dec c
- jr nz, .loop1
- pop hl
- ld a, [wcf65]
- bit 1, a
- ld bc, SCREEN_WIDTH
- jr z, .upper
- ld bc, -SCREEN_WIDTH
-.upper
- add hl, bc
- ld a, [de]
- inc de
- cp -1
- ret z
- and a
- jr z, .loop
- ld c, a
-.loop2
- ld a, [wcf65]
- bit 0, a
- jr z, .leftside2
- dec hl
- jr .okay2
-.leftside2
- inc hl
-.okay2
- dec c
- jr nz, .loop2
- jr .loop
-; 8c538 (23:4538)
-
-.wedge1 db 2, 3, 5, 4, 9, -1
-.wedge2 db 1, 1, 2, 2, 4, 2, 4, 2, 3, -1
-.wedge3 db 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 3, 1, 2, 1, 1, 1, 1, -1
-.wedge4 db 4, 1, 4, 0, 3, 1, 3, 0, 2, 1, 2, 0, 1, -1
-.wedge5 db 4, 0, 3, 0, 3, 0, 2, 0, 2, 0, 1, 0, 1, 0, 1, -1
-; 8c578
-
-StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578)
- callba Function5602
- ld a, $5 ; BANK(LYOverrides)
- ld [rSVBK], a
- call StartTrainerBattle_NextScene
- ld a, $10
- ld [wcf64], a
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-StartTrainerBattle_SpeckleToBlack: ; 8c58f (23:458f)
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- ld c, $c
-.loop
- push bc
- call .BlackOutRandomTile
- pop bc
- dec c
- jr nz, .loop
- ret
-
-.done
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ld [hBGMapMode], a
- ld a, $20
- ld [wJumptableIndex], a
- ret
-
-.BlackOutRandomTile: ; 8c5b8 (23:45b8)
-.y_loop
- call Random
- cp SCREEN_HEIGHT
- jr nc, .y_loop
- ld b, a
-
-.x_loop
- call Random
- cp SCREEN_WIDTH
- jr nc, .x_loop
- ld c, a
-
- hlcoord 0, -1
- ld de, SCREEN_WIDTH
- inc b
-
-.row_loop
- add hl, de
- dec b
- jr nz, .row_loop
- add hl, bc
-
-; If the tile has already been blacked out,
-; sample a new tile
- ld a, [hl]
- cp $ff
- jr z, .y_loop
- ld [hl], $ff
- ret
-
-StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
- ld a, [OtherTrainerClass]
- and a
- jp z, .nextscene ; don't need to be here if wild
-
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- inc b
- inc c
- jr .enter_loop_midway
-
-.loop
-; set all pals to 7
- ld a, [hl]
- or %00000111
- ld [hli], a
-.enter_loop_midway
- dec c
- jr nz, .loop
- dec b
- jr nz, .loop
-
- call .loadpokeballgfx ; ld a, [OtherTrainerClass] \ ld de, PokeBallTransition \ ret
- hlcoord 2, 1
-
- ld b, SCREEN_WIDTH - 4
-.loop2
- push hl
- ld c, 2
-.loop3
- push hl
- ld a, [de]
- inc de
-.loop4
-; Loading is done bit by bit
- and a
- jr z, .done
- sla a
- jr nc, .no_load
- ld [hl], $fe
-.no_load
- inc hl
- jr .loop4
-
-.done
- pop hl
- push bc
- ld bc, (SCREEN_WIDTH - 4) / 2
- add hl, bc
- pop bc
- dec c
- jr nz, .loop3
-
- pop hl
- push bc
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop2
-
- ld a, [hCGB]
- and a
- jr nz, .cgb
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- jr .nextscene
-
-.cgb
- ld hl, .daypals
- ld a, [TimeOfDayPal]
- and (1 << 2) - 1
- cp 3
- jr nz, .daytime
- ld hl, .nightpals
-.daytime
- ld a, [rSVBK]
- push af
- ld a, $5 ; WRAM5 = palettes
- ld [rSVBK], a
- call .copypals
- push hl
- ld de, UnknBGPals palette PAL_BG_TEXT
- ld bc, 1 palettes
- call CopyBytes
- pop hl
- ld de, BGPals palette PAL_BG_TEXT
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- call DelayFrame
- call BattleStart_LoadEDTile
-
-.nextscene ; 8c673 (23:4673)
- call StartTrainerBattle_NextScene
- ret
-
-.copypals ; 8c677 (23:4677)
- ld de, UnknBGPals palette PAL_BG_TEXT
- call .copy
- ld de, BGPals palette PAL_BG_TEXT
- call .copy
- ld de, UnknOBPals palette PAL_OW_TREE
- call .copy
- ld de, OBPals palette PAL_OW_TREE
- call .copy
- ld de, UnknOBPals palette PAL_OW_ROCK
- call .copy
- ld de, OBPals palette PAL_OW_ROCK
-
-.copy ; 8c698 (23:4698)
- push hl
- ld bc, 1 palettes
- call CopyBytes
- pop hl
- ret
-; 8c6a1 (23:46a1)
-
-.daypals ; 8c6a1
- RGB 31, 18, 29
- RGB 31, 11, 15
- RGB 31, 05, 05
- RGB 07, 07, 07
-; 8c6a9
-
-.nightpals ; 8c6a9
- RGB 31, 18, 29
- RGB 31, 05, 05
- RGB 31, 05, 05
- RGB 31, 05, 05
-
-.loadpokeballgfx
- ld a, [OtherTrainerClass]
- ld de, PokeBallTransition
- ret
-
-PokeBallTransition:
- db %00000011, %11000000
- db %00001111, %11110000
- db %00111100, %00111100
- db %00110000, %00001100
- db %01100000, %00000110
- db %01100011, %11000110
- db %11000110, %01100011
- db %11111100, %00111111
- db %11111100, %00111111
- db %11000110, %01100011
- db %01100011, %11000110
- db %01100000, %00000110
- db %00110000, %00001100
- db %00111100, %00111100
- db %00001111, %11110000
- db %00000011, %11000000
-
-WipeLYOverrides: ; 8c6d8
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld hl, LYOverrides
- call .wipe
- ld hl, LYOverridesBackup
- call .wipe
-
- pop af
- ld [rSVBK], a
- ret
-; 8c6ef
-
-.wipe ; 8c6ef
- xor a
- ld c, SCREEN_HEIGHT_PX
-.loop
- ld [hli], a
- dec c
- jr nz, .loop
- ret
-; 8c6f7
-
-
-StartTrainerBattle_DrawSineWave: ; 8c6f7 (23:46f7)
- and (1 << 6) - 1
- cp 1 << 5
- jr nc, .okay
- call .DoSineWave
- ld a, h
- ret
-
-.okay
- and (1 << 5) - 1
- call .DoSineWave
- ld a, h
- xor -1 ; cpl
- inc a
- ret
-
-.DoSineWave: ; 8c70c (23:470c)
- ld e, a
- ld a, d
- ld d, 0
- ld hl, .sinewave
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, 0
-.loop
- srl a
- jr nc, .skip
- add hl, de
-.skip
- sla e
- rl d
- and a
- jr nz, .loop
- ret
-; 8c728 (23:4728)
-
-.sinewave ; 8c728
- sine_wave $100
-; 8c768
-
-zoombox: macro
-; width, height, start y, start x
- db \1, \2
- dwcoord \3, \4
-endm
-
-StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768)
- callba Function5602
- ld de, .boxes
-
-.loop
- ld a, [de]
- cp -1
- jr z, .done
- inc de
- ld c, a
- ld a, [de]
- inc de
- ld b, a
- ld a, [de]
- inc de
- ld l, a
- ld a, [de]
- inc de
- ld h, a
- xor a
- ld [hBGMapMode], a
- call .Copy
- call WaitBGMap
- jr .loop
-
-.done
- ld a, $20
- ld [wJumptableIndex], a
- ret
-; 8c792 (23:4792)
-
-.boxes ; 8c792
- zoombox 4, 2, 8, 8
- zoombox 6, 4, 7, 7
- zoombox 8, 6, 6, 6
- zoombox 10, 8, 5, 5
- zoombox 12, 10, 4, 4
- zoombox 14, 12, 3, 3
- zoombox 16, 14, 2, 2
- zoombox 18, 16, 1, 1
- zoombox 20, 18, 0, 0
- db -1
-; 8c7b7
-
-.Copy: ; 8c7b7 (23:47b7)
- ld a, $ff
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- ret
-; 8c7c9 (23:47c9)
--- /dev/null
+++ b/engine/battle_transition.asm
@@ -1,0 +1,873 @@
+Predef_StartBattle: ; 8c20f
+ call .InitGFX
+ ld a, [rBGP]
+ ld [wBGP], a
+ ld a, [rOBP0]
+ ld [wOBP0], a
+ ld a, [rOBP1]
+ ld [wOBP1], a
+ call DelayFrame
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $1
+
+.loop
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done
+ call FlashyTransitionToBattle
+ call DelayFrame
+ jr .loop
+
+.done
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, UnknBGPals
+ ld bc, 8 palettes
+ xor a
+ call ByteFill
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, %11111111
+ ld [wBGP], a
+ call DmgToCgbBGPals
+ call DelayFrame
+ xor a
+ ld [hLCDCPointer], a
+ ld [hLYOverrideStart], a
+ ld [hLYOverrideEnd], a
+ ld [hSCY], a
+
+ ld a, $1
+ ld [rSVBK], a
+ pop af
+ ld [hVBlank], a
+ call DelayFrame
+ ret
+; 8c26d
+
+.InitGFX: ; 8c26d
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jr z, .mobile
+ callba ReanchorBGMap_NoOAMUpdate
+ call UpdateSprites
+ call DelayFrame
+ call .NonMobile_LoadPokeballTiles
+ call BattleStart_LoadEDTile
+ jr .resume
+
+.mobile
+ call LoadTrainerBattlePokeballTiles
+
+.resume
+ ld a, SCREEN_HEIGHT_PX
+ ld [hWY], a
+ call DelayFrame
+ xor a
+ ld [hBGMapMode], a
+ ld hl, wJumptableIndex
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ call WipeLYOverrides
+ ret
+; 8c2a0
+
+.NonMobile_LoadPokeballTiles: ; 8c2a0
+ call LoadTrainerBattlePokeballTiles
+ hlbgcoord 0, 0
+ call ConvertTrainerBattlePokeballTilesTo2bpp
+ ret
+; 8c2aa
+
+LoadTrainerBattlePokeballTiles:
+; Load the tiles used in the Pokeball Graphic that fills the screen
+; at the start of every Trainer battle.
+ ld de, TrainerBattlePokeballTiles
+ ld hl, VTiles1 tile $7e
+ ld b, BANK(TrainerBattlePokeballTiles)
+ ld c, 2
+ call Request2bpp
+
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+
+ ld de, TrainerBattlePokeballTiles
+ ld hl, VTiles4 tile $7e
+ ld b, BANK(TrainerBattlePokeballTiles)
+ ld c, 2
+ call Request2bpp
+
+ pop af
+ ld [rVBK], a
+ ret
+; 8c2cf
+
+ConvertTrainerBattlePokeballTilesTo2bpp: ; 8c2cf
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push hl
+ ld hl, wDecompressScratch
+ ld bc, $28 tiles
+
+.loop
+ ld [hl], -1
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+
+ pop hl
+ ld de, wDecompressScratch
+ ld b, BANK(ConvertTrainerBattlePokeballTilesTo2bpp) ; BANK(@)
+ ld c, $28
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+; 8c2f4
+
+TrainerBattlePokeballTiles: ; 8c2f4
+INCBIN "gfx/overworld/trainer_battle_pokeball_tiles.2bpp"
+
+
+FlashyTransitionToBattle: ; 8c314
+ jumptable .dw, wJumptableIndex
+; 8c323
+
+.dw ; 8c323 (23:4323)
+ dw StartTrainerBattle_DetermineWhichAnimation ; 00
+
+ ; Animation 1: cave
+ dw StartTrainerBattle_LoadPokeBallGraphics ; 01
+ dw StartTrainerBattle_SetUpBGMap ; 02
+ dw StartTrainerBattle_Flash ; 03
+ dw StartTrainerBattle_Flash ; 04
+ dw StartTrainerBattle_Flash ; 05
+ dw StartTrainerBattle_NextScene ; 06
+ dw StartTrainerBattle_SetUpForWavyOutro ; 07
+ dw StartTrainerBattle_SineWave ; 08
+
+ ; Animation 2: cave, stronger
+ dw StartTrainerBattle_LoadPokeBallGraphics ; 09
+ dw StartTrainerBattle_SetUpBGMap ; 0a
+ dw StartTrainerBattle_Flash ; 0b
+ dw StartTrainerBattle_Flash ; 0c
+ dw StartTrainerBattle_Flash ; 0d
+ dw StartTrainerBattle_NextScene ; 0e
+ ; There is no setup for this one
+ dw StartTrainerBattle_ZoomToBlack ; 0f
+
+ ; Animation 3: no cave
+ dw StartTrainerBattle_LoadPokeBallGraphics ; 10
+ dw StartTrainerBattle_SetUpBGMap ; 11
+ dw StartTrainerBattle_Flash ; 12
+ dw StartTrainerBattle_Flash ; 13
+ dw StartTrainerBattle_Flash ; 14
+ dw StartTrainerBattle_NextScene ; 15
+ dw StartTrainerBattle_SetUpForSpinOutro ; 16
+ dw StartTrainerBattle_SpinToBlack ; 17
+
+ ; Animation 4: no cave, stronger
+ dw StartTrainerBattle_LoadPokeBallGraphics ; 18
+ dw StartTrainerBattle_SetUpBGMap ; 19
+ dw StartTrainerBattle_Flash ; 1a
+ dw StartTrainerBattle_Flash ; 1b
+ dw StartTrainerBattle_Flash ; 1c
+ dw StartTrainerBattle_NextScene ; 1d
+ dw StartTrainerBattle_SetUpForRandomScatterOutro ; 1e
+ dw StartTrainerBattle_SpeckleToBlack ; 1f
+
+ ; All animations jump to here.
+ dw StartTrainerBattle_Finish ; 20
+
+
+StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
+; The screen flashes a different number of times depending on the level of
+; your lead Pokemon relative to the opponent's.
+; BUG: BattleMonLevel and EnemyMonLevel are not set at this point, so whatever
+; values happen to be there will determine the animation.
+ ld de, 0
+ ld a, [BattleMonLevel]
+ add 3
+ ld hl, EnemyMonLevel
+ cp [hl]
+ jr nc, .okay
+ set 0, e
+.okay
+ ld a, [wPermission]
+ cp CAVE
+ jr z, .okay2
+ cp PERM_5
+ jr z, .okay2
+ cp DUNGEON
+ jr z, .okay2
+ set 1, e
+.okay2
+ ld hl, .StartingPoints
+ add hl, de
+ ld a, [hl]
+ ld [wJumptableIndex], a
+ ret
+; 8c38f (23:438f)
+
+.StartingPoints: ; 8c38f
+ db 1, 9
+ db 16, 24
+; 8c393
+
+StartTrainerBattle_Finish: ; 8c393 (23:4393)
+ call ClearSprites
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+StartTrainerBattle_NextScene: ; 8c39c (23:439c)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+StartTrainerBattle_SetUpBGMap: ; 8c3a1 (23:43a1)
+ call StartTrainerBattle_NextScene
+ xor a
+ ld [wcf64], a
+ ld [hBGMapMode], a
+ ret
+
+StartTrainerBattle_Flash: ; 8c3ab (23:43ab)
+ call .DoFlashAnimation
+ ret nc
+ call StartTrainerBattle_NextScene
+ ret
+
+.DoFlashAnimation: ; 8c3b3 (23:43b3)
+ ld a, [wTimeOfDayPalset]
+ cp %11111111 ; dark cave
+ jr z, .done
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ srl a
+ ld e, a
+ ld d, 0
+ ld hl, .pals
+ add hl, de
+ ld a, [hl]
+ cp %00000001
+ jr z, .done
+ ld [wBGP], a
+ call DmgToCgbBGPals
+ and a
+ ret
+
+.done
+ xor a
+ ld [wcf64], a
+ scf
+ ret
+; 8c3db (23:43db)
+
+.pals ; 8c3db
+ db %11111001 ; 3321
+ db %11111110 ; 3332
+ db %11111111 ; 3333
+ db %11111110 ; 3332
+ db %11111001 ; 3321
+ db %11100100 ; 3210
+ db %10010000 ; 2100
+ db %01000000 ; 1000
+ db %00000000 ; 0000
+ db %01000000 ; 1000
+ db %10010000 ; 2100
+ db %11100100 ; 3210
+ db %00000001 ; 0001
+; 8c3e8
+
+StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8)
+ callba Function5602
+ ld a, $5 ; BANK(LYOverrides)
+ ld [rSVBK], a
+
+ call StartTrainerBattle_NextScene
+
+ ld a, rSCX - $ff00
+ ld [hLCDCPointer], a
+ xor a
+ ld [hLYOverrideStart], a
+ ld a, $90
+ ld [hLYOverrideEnd], a
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ ret
+
+StartTrainerBattle_SineWave: ; 8c408 (23:4408)
+ ld a, [wcf64]
+ cp $60
+ jr nc, .end
+ call .DoSineWave
+ ret
+
+.end
+ ld a, $20
+ ld [wJumptableIndex], a
+ ret
+
+.DoSineWave: ; 8c419 (23:4419)
+ ld hl, wcf65
+ ld a, [hl]
+ inc [hl]
+ ld hl, wcf64
+ ld d, [hl]
+ add [hl]
+ ld [hl], a
+ ld a, LYOverridesEnd - LYOverrides
+ ld bc, LYOverrides
+ ld e, $0
+
+.loop
+ push af
+ push de
+ ld a, e
+ call StartTrainerBattle_DrawSineWave
+ ld [bc], a
+ inc bc
+ pop de
+ ld a, e
+ add $2
+ ld e, a
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+
+StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d)
+ callba Function5602
+ ld a, $5 ; BANK(LYOverrides)
+ ld [rSVBK], a
+ call StartTrainerBattle_NextScene
+ xor a
+ ld [wcf64], a
+ ret
+
+StartTrainerBattle_SpinToBlack: ; 8c44f (23:444f)
+ xor a
+ ld [hBGMapMode], a
+ ld a, [wcf64]
+ ld e, a
+ ld d, 0
+ ld hl, .spintable
+rept 5
+ add hl, de
+endr
+ ld a, [hli]
+ cp -1
+ jr z, .end
+ ld [wcf65], a
+ call .load
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ ld hl, wcf64
+ inc [hl]
+ ret
+
+.end
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ xor a
+ ld [hBGMapMode], a
+ ld a, $20
+ ld [wJumptableIndex], a
+ ret
+; 8c490 (23:4490)
+
+; quadrants
+ const_def
+ const UPPER_LEFT
+ const UPPER_RIGHT
+ const LOWER_LEFT
+ const LOWER_RIGHT
+
+.spintable ; 8c490
+spintable_entry: MACRO
+ db \1
+ dw .wedge\2
+ dwcoord \3, \4
+ENDM
+ spintable_entry UPPER_LEFT, 1, 1, 6
+ spintable_entry UPPER_LEFT, 2, 0, 3
+ spintable_entry UPPER_LEFT, 3, 1, 0
+ spintable_entry UPPER_LEFT, 4, 5, 0
+ spintable_entry UPPER_LEFT, 5, 9, 0
+ spintable_entry UPPER_RIGHT, 5, 10, 0
+ spintable_entry UPPER_RIGHT, 4, 14, 0
+ spintable_entry UPPER_RIGHT, 3, 18, 0
+ spintable_entry UPPER_RIGHT, 2, 19, 3
+ spintable_entry UPPER_RIGHT, 1, 18, 6
+ spintable_entry LOWER_RIGHT, 1, 18, 11
+ spintable_entry LOWER_RIGHT, 2, 19, 14
+ spintable_entry LOWER_RIGHT, 3, 18, 17
+ spintable_entry LOWER_RIGHT, 4, 14, 17
+ spintable_entry LOWER_RIGHT, 5, 10, 17
+ spintable_entry LOWER_LEFT, 5, 9, 17
+ spintable_entry LOWER_LEFT, 4, 5, 17
+ spintable_entry LOWER_LEFT, 3, 1, 17
+ spintable_entry LOWER_LEFT, 2, 0, 14
+ spintable_entry LOWER_LEFT, 1, 1, 11
+ db -1
+; 8c4f5
+
+.load ; 8c4f5 (23:44f5)
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.loop
+ push hl
+ ld a, [de]
+ ld c, a
+ inc de
+.loop1
+ ld [hl], $ff
+ ld a, [wcf65]
+ bit 0, a
+ jr z, .leftside
+ inc hl
+ jr .okay1
+.leftside
+ dec hl
+.okay1
+ dec c
+ jr nz, .loop1
+ pop hl
+ ld a, [wcf65]
+ bit 1, a
+ ld bc, SCREEN_WIDTH
+ jr z, .upper
+ ld bc, -SCREEN_WIDTH
+.upper
+ add hl, bc
+ ld a, [de]
+ inc de
+ cp -1
+ ret z
+ and a
+ jr z, .loop
+ ld c, a
+.loop2
+ ld a, [wcf65]
+ bit 0, a
+ jr z, .leftside2
+ dec hl
+ jr .okay2
+.leftside2
+ inc hl
+.okay2
+ dec c
+ jr nz, .loop2
+ jr .loop
+; 8c538 (23:4538)
+
+.wedge1 db 2, 3, 5, 4, 9, -1
+.wedge2 db 1, 1, 2, 2, 4, 2, 4, 2, 3, -1
+.wedge3 db 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 3, 1, 2, 1, 1, 1, 1, -1
+.wedge4 db 4, 1, 4, 0, 3, 1, 3, 0, 2, 1, 2, 0, 1, -1
+.wedge5 db 4, 0, 3, 0, 3, 0, 2, 0, 2, 0, 1, 0, 1, 0, 1, -1
+; 8c578
+
+StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578)
+ callba Function5602
+ ld a, $5 ; BANK(LYOverrides)
+ ld [rSVBK], a
+ call StartTrainerBattle_NextScene
+ ld a, $10
+ ld [wcf64], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+StartTrainerBattle_SpeckleToBlack: ; 8c58f (23:458f)
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ld c, $c
+.loop
+ push bc
+ call .BlackOutRandomTile
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+.done
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ xor a
+ ld [hBGMapMode], a
+ ld a, $20
+ ld [wJumptableIndex], a
+ ret
+
+.BlackOutRandomTile: ; 8c5b8 (23:45b8)
+.y_loop
+ call Random
+ cp SCREEN_HEIGHT
+ jr nc, .y_loop
+ ld b, a
+
+.x_loop
+ call Random
+ cp SCREEN_WIDTH
+ jr nc, .x_loop
+ ld c, a
+
+ hlcoord 0, -1
+ ld de, SCREEN_WIDTH
+ inc b
+
+.row_loop
+ add hl, de
+ dec b
+ jr nz, .row_loop
+ add hl, bc
+
+; If the tile has already been blacked out,
+; sample a new tile
+ ld a, [hl]
+ cp $ff
+ jr z, .y_loop
+ ld [hl], $ff
+ ret
+
+StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
+ ld a, [OtherTrainerClass]
+ and a
+ jp z, .nextscene ; don't need to be here if wild
+
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ inc b
+ inc c
+ jr .enter_loop_midway
+
+.loop
+; set all pals to 7
+ ld a, [hl]
+ or %00000111
+ ld [hli], a
+.enter_loop_midway
+ dec c
+ jr nz, .loop
+ dec b
+ jr nz, .loop
+
+ call .loadpokeballgfx ; ld a, [OtherTrainerClass] \ ld de, PokeBallTransition \ ret
+ hlcoord 2, 1
+
+ ld b, SCREEN_WIDTH - 4
+.loop2
+ push hl
+ ld c, 2
+.loop3
+ push hl
+ ld a, [de]
+ inc de
+.loop4
+; Loading is done bit by bit
+ and a
+ jr z, .done
+ sla a
+ jr nc, .no_load
+ ld [hl], $fe
+.no_load
+ inc hl
+ jr .loop4
+
+.done
+ pop hl
+ push bc
+ ld bc, (SCREEN_WIDTH - 4) / 2
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .loop3
+
+ pop hl
+ push bc
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop2
+
+ ld a, [hCGB]
+ and a
+ jr nz, .cgb
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ jr .nextscene
+
+.cgb
+ ld hl, .daypals
+ ld a, [TimeOfDayPal]
+ and (1 << 2) - 1
+ cp 3
+ jr nz, .daytime
+ ld hl, .nightpals
+.daytime
+ ld a, [rSVBK]
+ push af
+ ld a, $5 ; WRAM5 = palettes
+ ld [rSVBK], a
+ call .copypals
+ push hl
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ ld bc, 1 palettes
+ call CopyBytes
+ pop hl
+ ld de, BGPals palette PAL_BG_TEXT
+ ld bc, 1 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ call DelayFrame
+ call BattleStart_LoadEDTile
+
+.nextscene ; 8c673 (23:4673)
+ call StartTrainerBattle_NextScene
+ ret
+
+.copypals ; 8c677 (23:4677)
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ call .copy
+ ld de, BGPals palette PAL_BG_TEXT
+ call .copy
+ ld de, UnknOBPals palette PAL_OW_TREE
+ call .copy
+ ld de, OBPals palette PAL_OW_TREE
+ call .copy
+ ld de, UnknOBPals palette PAL_OW_ROCK
+ call .copy
+ ld de, OBPals palette PAL_OW_ROCK
+
+.copy ; 8c698 (23:4698)
+ push hl
+ ld bc, 1 palettes
+ call CopyBytes
+ pop hl
+ ret
+; 8c6a1 (23:46a1)
+
+.daypals ; 8c6a1
+ RGB 31, 18, 29
+ RGB 31, 11, 15
+ RGB 31, 05, 05
+ RGB 07, 07, 07
+; 8c6a9
+
+.nightpals ; 8c6a9
+ RGB 31, 18, 29
+ RGB 31, 05, 05
+ RGB 31, 05, 05
+ RGB 31, 05, 05
+
+.loadpokeballgfx
+ ld a, [OtherTrainerClass]
+ ld de, PokeBallTransition
+ ret
+
+PokeBallTransition:
+ db %00000011, %11000000
+ db %00001111, %11110000
+ db %00111100, %00111100
+ db %00110000, %00001100
+ db %01100000, %00000110
+ db %01100011, %11000110
+ db %11000110, %01100011
+ db %11111100, %00111111
+ db %11111100, %00111111
+ db %11000110, %01100011
+ db %01100011, %11000110
+ db %01100000, %00000110
+ db %00110000, %00001100
+ db %00111100, %00111100
+ db %00001111, %11110000
+ db %00000011, %11000000
+
+WipeLYOverrides: ; 8c6d8
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, LYOverrides
+ call .wipe
+ ld hl, LYOverridesBackup
+ call .wipe
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 8c6ef
+
+.wipe ; 8c6ef
+ xor a
+ ld c, SCREEN_HEIGHT_PX
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; 8c6f7
+
+
+StartTrainerBattle_DrawSineWave: ; 8c6f7 (23:46f7)
+ and (1 << 6) - 1
+ cp 1 << 5
+ jr nc, .okay
+ call .DoSineWave
+ ld a, h
+ ret
+
+.okay
+ and (1 << 5) - 1
+ call .DoSineWave
+ ld a, h
+ xor -1 ; cpl
+ inc a
+ ret
+
+.DoSineWave: ; 8c70c (23:470c)
+ ld e, a
+ ld a, d
+ ld d, 0
+ ld hl, .sinewave
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, 0
+.loop
+ srl a
+ jr nc, .skip
+ add hl, de
+.skip
+ sla e
+ rl d
+ and a
+ jr nz, .loop
+ ret
+; 8c728 (23:4728)
+
+.sinewave ; 8c728
+ sine_wave $100
+; 8c768
+
+StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768)
+ callba Function5602
+ ld de, .boxes
+
+.loop
+ ld a, [de]
+ cp -1
+ jr z, .done
+ inc de
+ ld c, a
+ ld a, [de]
+ inc de
+ ld b, a
+ ld a, [de]
+ inc de
+ ld l, a
+ ld a, [de]
+ inc de
+ ld h, a
+ xor a
+ ld [hBGMapMode], a
+ call .Copy
+ call WaitBGMap
+ jr .loop
+
+.done
+ ld a, $20
+ ld [wJumptableIndex], a
+ ret
+; 8c792 (23:4792)
+
+.boxes ; 8c792
+zoombox: macro
+; width, height, start y, start x
+ db \1, \2
+ dwcoord \3, \4
+endm
+ zoombox 4, 2, 8, 8
+ zoombox 6, 4, 7, 7
+ zoombox 8, 6, 6, 6
+ zoombox 10, 8, 5, 5
+ zoombox 12, 10, 4, 4
+ zoombox 14, 12, 3, 3
+ zoombox 16, 14, 2, 2
+ zoombox 18, 16, 1, 1
+ zoombox 20, 18, 0, 0
+ db -1
+; 8c7b7
+
+.Copy: ; 8c7b7 (23:47b7)
+ ld a, $ff
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+; 8c7c9 (23:47c9)
+
+Function8c7c9:
+; XXX
+ ld a, $1
+ ld [hBGMapMode], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
--- /dev/null
+++ b/engine/breeding.asm
@@ -1,0 +1,993 @@
+CheckBreedmonCompatibility: ; 16e1d
+ call .CheckBreedingGroupCompatibility
+ ld c, $0
+ jp nc, .done
+ ld a, [wBreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon1DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon1DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, TEMPMON
+ ld [MonType], a
+ predef GetGender
+ jr c, .genderless
+ ld b, $1
+ jr nz, .breedmon2
+ inc b
+
+.breedmon2
+ push bc
+ ld a, [wBreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon2DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon2DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ pop bc
+ jr c, .genderless
+ ld a, $1
+ jr nz, .compare_gender
+ inc a
+
+.compare_gender
+ cp b
+ jr nz, .compute
+
+.genderless
+ ld c, $0
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .ditto1
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr nz, .done
+ jr .compute
+
+.ditto1
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .done
+
+.compute
+ call .CheckDVs
+ ld c, 255
+ jp z, .done
+ ld a, [wBreedMon2Species]
+ ld b, a
+ ld a, [wBreedMon1Species]
+ cp b
+ ld c, 254
+ jr z, .compare_ids
+ ld c, 128
+.compare_ids
+ ; Speed up
+ ld a, [wBreedMon1ID]
+ ld b, a
+ ld a, [wBreedMon2ID]
+ cp b
+ jr nz, .done
+ ld a, [wBreedMon1ID + 1]
+ ld b, a
+ ld a, [wBreedMon2ID + 1]
+ cp b
+ jr nz, .done
+ ld a, c
+ sub 77
+ ld c, a
+
+.done
+ ld a, c
+ ld [wd265], a
+ ret
+; 16ebc
+
+
+.CheckDVs: ; 16ebc (5:6ebc)
+; If Defense DVs match and the lower 3 bits of the Special DVs match,
+; avoid breeding
+ ld a, [wBreedMon1DVs]
+ and %1111
+ ld b, a
+ ld a, [wBreedMon2DVs]
+ and %1111
+ cp b
+ ret nz
+ ld a, [wBreedMon1DVs + 1]
+ and %111
+ ld b, a
+ ld a, [wBreedMon2DVs + 1]
+ and %111
+ cp b
+ ret
+; 16ed6
+
+.CheckBreedingGroupCompatibility: ; 16ed6
+; If either mon is in the No Eggs group,
+; they are not compatible.
+ ld a, [wBreedMon2Species]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ cp NO_EGGS * $11
+ jr z, .Incompatible
+
+ ld a, [wBreedMon1Species]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ cp NO_EGGS * $11
+ jr z, .Incompatible
+
+; Ditto is automatically compatible with everything.
+; If not Ditto, load the breeding groups into b/c and d/e.
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .Compatible
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ push af
+ and $f
+ ld b, a
+ pop af
+ and $f0
+ swap a
+ ld c, a
+
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .Compatible
+ ld [CurSpecies], a
+ push bc
+ call GetBaseData
+ pop bc
+ ld a, [BaseEggGroups]
+ push af
+ and $f
+ ld d, a
+ pop af
+ and $f0
+ swap a
+ ld e, a
+
+ ld a, d
+ cp b
+ jr z, .Compatible
+ cp c
+ jr z, .Compatible
+
+ ld a, e
+ cp b
+ jr z, .Compatible
+ cp c
+ jr z, .Compatible
+
+.Incompatible:
+ and a
+ ret
+
+.Compatible:
+ scf
+ ret
+; 16f3e
+
+DoEggStep:: ; 16f3e
+ ld de, PartySpecies
+ ld hl, PartyMon1Happiness
+ ld c, 0
+.loop
+ ld a, [de]
+ inc de
+ cp -1
+ ret z
+ cp EGG
+ jr nz, .next
+ dec [hl]
+ jr nz, .next
+ ld a, 1
+ and a
+ ret
+
+.next
+ push de
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ pop de
+ jr .loop
+; 16f5e
+
+OverworldHatchEgg:: ; 16f5e
+ call RefreshScreen
+ call LoadStandardMenuDataHeader
+ call HatchEggs
+ call ExitAllMenus
+ call RestartMapMusic
+ jp CloseText
+; 16f70
+
+HatchEggs: ; 16f70 (5:6f70)
+ ld de, PartySpecies
+ ld hl, PartyMon1Happiness
+ xor a
+ ld [CurPartyMon], a
+
+.loop ; 16f7a (5:6f7a)
+ ld a, [de]
+ inc de
+ cp -1
+ jp z, .done
+ push de
+ push hl
+ cp EGG
+ jp nz, .next
+ ld a, [hl]
+ and a
+ jp nz, .next
+ ld [hl], $78
+
+ push de
+
+ callba SetEggMonCaughtData
+ callba TrainerRankings_EggsHatched
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ dec a
+ call SetSeenAndCaughtMon
+
+ ld a, [CurPartySpecies]
+ cp TOGEPI
+ jr nz, .nottogepi
+ ; set the event flag for hatching togepi
+ ld de, EVENT_TOGEPI_HATCHED
+ ld b, SET_FLAG
+ call EventFlagAction
+.nottogepi
+
+ pop de
+
+ ld a, [CurPartySpecies]
+ dec de
+ ld [de], a
+ ld [wd265], a
+ ld [CurSpecies], a
+ call GetPokemonName
+ xor a
+ ld [wd26b], a
+ call GetBaseData
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ ld bc, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ push hl
+ ld bc, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ pop hl
+ push hl
+ ld bc, MON_STATUS
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ push hl
+ ld bc, MON_STAT_EXP - 1
+ add hl, bc
+ ld b, $0
+ predef CalcPkmnStats
+ pop bc
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, MON_HP
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ ld hl, MON_ID
+ add hl, bc
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [PlayerID + 1]
+ ld [hl], a
+ ld a, [CurPartyMon]
+ ld hl, PartyMonOT
+ ld bc, NAME_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ call CopyBytes
+ ld hl, .Text_HatchEgg
+ call PrintText
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ push de
+ ld hl, .Text_NicknameHatchling
+ call PrintText
+ call YesNoBox
+ pop de
+ jr c, .nonickname
+
+ ld a, $1
+ ld [wd26b], a
+ xor a
+ ld [MonType], a
+ push de
+ ld b, $0
+ callba NamingScreen
+ pop hl
+ ld de, StringBuffer1
+ call InitName
+ jr .next
+
+.nonickname
+ ld hl, StringBuffer1
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+.next ; 1707d (5:707d)
+ ld hl, CurPartyMon
+ inc [hl]
+ pop hl
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ pop de
+ jp .loop
+
+.done ; 1708a (5:708a)
+ ret
+; 1708b (5:708b)
+
+.Text_HatchEgg: ; 0x1708b
+ ; Huh? @ @
+ text_jump UnknownText_0x1c0db0
+ start_asm
+ ld hl, VramState
+ res 0, [hl]
+ push hl
+ push de
+ push bc
+ ld a, [CurPartySpecies]
+ push af
+ call EggHatch_AnimationSequence
+ ld hl, .ClearTextbox
+ call PrintText
+ pop af
+ ld [CurPartySpecies], a
+ pop bc
+ pop de
+ pop hl
+ ld hl, .CameOutOfItsEgg
+ ret
+; 170b0 (5:70b0)
+
+.ClearTextbox: ; 0x170b0
+ ;
+ text_jump UnknownText_0x1c0db8
+ db "@"
+; 0x170b5
+
+.CameOutOfItsEgg: ; 0x170b5
+ ; came out of its EGG!@ @
+ text_jump UnknownText_0x1c0dba
+ db "@"
+; 0x170ba
+
+.Text_NicknameHatchling: ; 0x170ba
+ ; Give a nickname to @ ?
+ text_jump UnknownText_0x1c0dd8
+ db "@"
+; 0x170bf
+
+InitEggMoves: ; 170bf
+ call GetHeritableMoves
+ ld d, h
+ ld e, l
+ ld b, NUM_MOVES
+.loop
+ ld a, [de]
+ and a
+ jr z, .done
+ ld hl, wEggMonMoves
+ ld c, NUM_MOVES
+.next
+ ld a, [de]
+ cp [hl]
+ jr z, .skip
+ inc hl
+ dec c
+ jr nz, .next
+ call GetEggMove
+ jr nc, .skip
+ call LoadEggMove
+
+.skip
+ inc de
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+; 170e4
+
+GetEggMove: ; 170e4
+GLOBAL EggMoves
+
+ push bc
+ ld a, [wEggMonSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, EggMovePointers
+ add hl, bc
+ add hl, bc
+ ld a, BANK(EggMovePointers)
+ call GetFarHalfword
+.loop
+ ld a, BANK(EggMoves)
+ call GetFarByte
+ cp -1
+ jr z, .reached_end
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .done_carry
+ inc hl
+ jr .loop
+
+.reached_end
+ call GetBreedmonMovePointer
+ ld b, NUM_MOVES
+.loop2
+ ld a, [de]
+ cp [hl]
+ jr z, .found_eggmove
+ inc hl
+ dec b
+ jr z, .inherit_tmhm
+ jr .loop2
+
+.found_eggmove
+ ld a, [wEggMonSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, EvosAttacksPointers
+ add hl, bc
+ add hl, bc
+ ld a, BANK(EvosAttacksPointers)
+ call GetFarHalfword
+.loop3
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ inc hl
+ and a
+ jr nz, .loop3
+.loop4
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ and a
+ jr z, .inherit_tmhm
+ inc hl
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .done_carry
+ inc hl
+ jr .loop4
+
+.inherit_tmhm
+ ld hl, TMHMMoves
+.loop5
+ ld a, BANK(TMHMMoves)
+ call GetFarByte
+ inc hl
+ and a
+ jr z, .done
+ ld b, a
+ ld a, [de]
+ cp b
+ jr nz, .loop5
+ ld [wPutativeTMHMMove], a
+ predef CanLearnTMHMMove
+ ld a, c
+ and a
+ jr z, .done
+
+.done_carry
+ pop bc
+ scf
+ ret
+
+.done
+ pop bc
+ and a
+ ret
+; 17169
+
+LoadEggMove: ; 17169
+ push de
+ push bc
+ ld a, [de]
+ ld b, a
+ ld hl, wEggMonMoves
+ ld c, NUM_MOVES
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ dec c
+ jr nz, .loop
+ ld de, wEggMonMoves
+ ld hl, wEggMonMoves + 1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+
+.done
+ dec hl
+ ld [hl], b
+ ld hl, wEggMonMoves
+ ld de, wEggMonPP
+ predef FillPP
+ pop bc
+ pop de
+ ret
+; 17197
+
+GetHeritableMoves: ; 17197
+ ld hl, wBreedMon2Moves
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .ditto1
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .ditto2
+ ld a, [wBreedMotherOrNonDitto]
+ and a
+ ret z
+ ld hl, wBreedMon1Moves
+ ret
+
+.ditto1
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [wBreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon2DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon2DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, TEMPMON
+ ld [MonType], a
+ predef GetGender
+ jr c, .inherit_mon2_moves
+ jr nz, .inherit_mon2_moves
+ jr .inherit_mon1_moves
+
+.ditto2
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [wBreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon1DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon1DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, TEMPMON
+ ld [MonType], a
+ predef GetGender
+ jr c, .inherit_mon1_moves
+ jr nz, .inherit_mon1_moves
+
+.inherit_mon2_moves
+ ld hl, wBreedMon2Moves
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+.inherit_mon1_moves
+ ld hl, wBreedMon1Moves
+ pop af
+ ld [CurPartySpecies], a
+ ret
+; 1720b
+
+GetBreedmonMovePointer: ; 1720b
+ ld hl, wBreedMon1Moves
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ ret z
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .ditto
+ ld a, [wBreedMotherOrNonDitto]
+ and a
+ ret z
+
+.ditto
+ ld hl, wBreedMon2Moves
+ ret
+; 17224
+
+
+GetEggFrontpic: ; 17224 (5:7224)
+ push de
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, BattleMonDVs
+ predef GetUnownLetter
+ pop de
+ predef_jump GetFrontpic
+
+GetHatchlingFrontpic: ; 1723c (5:723c)
+ push de
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, BattleMonDVs
+ predef GetUnownLetter
+ pop de
+ predef_jump FrontpicPredef
+
+Hatch_UpdateFrontpicBGMapCenter: ; 17254 (5:7254)
+ push af
+ call WaitTop
+ push hl
+ push bc
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ pop bc
+ pop hl
+ ld a, b
+ ld [hBGMapAddress + 1], a
+ ld a, c
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ pop af
+ call Hatch_LoadFrontpicPal
+ call SetPalettes
+ jp WaitBGMap
+
+EggHatch_DoAnimFrame: ; 1727f (5:727f)
+ push hl
+ push de
+ push bc
+ callab PlaySpriteAnimations
+ call DelayFrame
+ pop bc
+ pop de
+ pop hl
+ ret
+
+EggHatch_AnimationSequence: ; 1728f (5:728f)
+ ld a, [wd265]
+ ld [wJumptableIndex], a
+ ld a, [CurSpecies]
+ push af
+ ld de, MUSIC_NONE
+ call PlayMusic
+ callba BlankScreen
+ call DisableLCD
+ ld hl, EggHatchGFX
+ ld de, VTiles0 tile $00
+ ld bc, $20
+ ld a, BANK(EggHatchGFX)
+ call FarCopyBytes
+ callba ClearSpriteAnims
+ ld de, VTiles2 tile $00
+ ld a, [wJumptableIndex]
+ call GetHatchlingFrontpic
+ ld de, VTiles2 tile $31
+ ld a, EGG
+ call GetEggFrontpic
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic
+ call EnableLCD
+ hlcoord 7, 4
+ ld b, VBGMap0 / $100
+ ld c, $31 ; Egg tiles start here
+ ld a, EGG
+ call Hatch_UpdateFrontpicBGMapCenter
+ ld c, 80
+ call DelayFrames
+ xor a
+ ld [wcf64], a
+ ld a, [hSCX]
+ ld b, a
+.outerloop
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp 8
+ jr nc, .done
+ ld e, [hl]
+.loop
+; wobble e times
+ ld a, 2
+ ld [hSCX], a
+ ld a, -2
+ ld [wGlobalAnimXOffset], a
+ call EggHatch_DoAnimFrame
+ ld c, 2
+ call DelayFrames
+ ld a, -2
+ ld [hSCX], a
+ ld a, 2
+ ld [wGlobalAnimXOffset], a
+ call EggHatch_DoAnimFrame
+ ld c, 2
+ call DelayFrames
+ dec e
+ jr nz, .loop
+ ld c, 16
+ call DelayFrames
+ call EggHatch_CrackShell
+ jr .outerloop
+
+.done
+ ld de, SFX_EGG_HATCH
+ call PlaySFX
+ xor a
+ ld [hSCX], a
+ ld [wGlobalAnimXOffset], a
+ call ClearSprites
+ call Hatch_InitShellFragments
+ hlcoord 6, 3
+ ld b, VBGMap0 / $100
+ ld c, $00 ; Hatchling tiles start here
+ ld a, [wJumptableIndex]
+ call Hatch_UpdateFrontpicBGMapCenter
+ call Hatch_ShellFragmentLoop
+ call WaitSFX
+ ld a, [wJumptableIndex]
+ ld [CurPartySpecies], a
+ hlcoord 6, 3
+ ld d, $0
+ ld e, ANIM_MON_HATCH
+ predef AnimateFrontpic
+ pop af
+ ld [CurSpecies], a
+ ret
+
+Hatch_LoadFrontpicPal: ; 17363 (5:7363)
+ ld [PlayerHPPal], a
+ ld b, SCGB_EVOLUTION
+ ld c, $0
+ jp GetSGBLayout
+
+EggHatch_CrackShell: ; 1736d (5:736d)
+ ld a, [wcf64]
+ dec a
+ and $7
+ cp $7
+ ret z
+ srl a
+ ret nc
+ swap a
+ srl a
+ add 9 * 8 + 4
+ ld d, a
+ ld e, 11 * 8
+ ld a, SPRITE_ANIM_INDEX_EGG_CRACK
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_TILE_ID
+ add hl, bc
+ ld [hl], $0
+ ld de, SFX_EGG_CRACK
+ jp PlaySFX
+; 17393 (5:7393)
+
+EggHatchGFX: ; 17393
+INCBIN "gfx/evo/egg_hatch.2bpp"
+; 173b3
+
+Hatch_InitShellFragments: ; 173b3 (5:73b3)
+ callba ClearSpriteAnims
+ ld hl, .SpriteData
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ push bc
+
+ ld a, SPRITE_ANIM_INDEX_EGG_HATCH
+ call _InitSpriteAnimStruct
+
+ ld hl, SPRITEANIMSTRUCT_TILE_ID
+ add hl, bc
+ ld [hl], $0
+
+ pop de
+ ld a, e
+ ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ add [hl]
+ ld [hl], a
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld [hl], d
+
+ pop hl
+ jr .loop
+.done
+ ld de, SFX_EGG_HATCH
+ call PlaySFX
+ call EggHatch_DoAnimFrame
+ ret
+; 173ef (5:73ef)
+
+.SpriteData: ; 173ef
+; Probably OAM.
+ dsprite 10, 4, 9, 0, $00, $3c
+ dsprite 11, 4, 9, 0, $01, $04
+ dsprite 10, 4, 10, 0, $00, $30
+ dsprite 11, 4, 10, 0, $01, $10
+ dsprite 10, 4, 11, 0, $02, $24
+ dsprite 11, 4, 11, 0, $03, $1c
+ dsprite 10, 0, 9, 4, $00, $36
+ dsprite 12, 0, 9, 4, $01, $0a
+ dsprite 10, 0, 10, 4, $02, $2a
+ dsprite 12, 0, 10, 4, $03, $16
+ db -1
+; 17418
+
+Hatch_ShellFragmentLoop: ; 17418 (5:7418)
+ ld c, 129
+.loop
+ call EggHatch_DoAnimFrame
+ dec c
+ jr nz, .loop
+ ret
+
+Special_DayCareMon1: ; 17421
+ ld hl, DayCareMon1Text
+ call PrintText
+ ld a, [wBreedMon1Species]
+ call PlayCry
+ ld a, [wDayCareLady]
+ bit 0, a
+ jr z, DayCareMonCursor
+ call ButtonSound
+ ld hl, wBreedMon2Nick
+ call DayCareMonCompatibilityText
+ jp PrintText
+
+Special_DayCareMon2: ; 17440
+ ld hl, DayCareMon2Text
+ call PrintText
+ ld a, [wBreedMon2Species]
+ call PlayCry
+ ld a, [wDayCareMan]
+ bit 0, a
+ jr z, DayCareMonCursor
+ call ButtonSound
+ ld hl, wBreedMon1Nick
+ call DayCareMonCompatibilityText
+ jp PrintText
+
+DayCareMonCursor: ; 1745f
+ jp WaitPressAorB_BlinkCursor
+; 17462
+
+DayCareMon2Text: ; 0x17462
+ ; It's @ that was left with the DAY-CARE LADY.
+ text_jump UnknownText_0x1c0df3
+ db "@"
+; 0x17467
+
+DayCareMon1Text: ; 0x17467
+ ; It's @ that was left with the DAY-CARE MAN.
+ text_jump UnknownText_0x1c0e24
+ db "@"
+; 0x1746c
+
+DayCareMonCompatibilityText: ; 1746c
+ push bc
+ ld de, StringBuffer1
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ call CheckBreedmonCompatibility
+ pop bc
+ ld a, [wd265]
+ ld hl, .AllAlone
+ cp -1
+ jr z, .done
+ ld hl, .Incompatible
+ and a
+ jr z, .done
+ ld hl, .HighCompatibility
+ cp 230
+ jr nc, .done
+ cp 70
+ ld hl, .ModerateCompatibility
+ jr nc, .done
+ ld hl, .SlightCompatibility
+
+.done
+ ret
+; 1749c
+
+.AllAlone: ; 0x1749c
+ ; It's brimming with energy.
+ text_jump UnknownText_0x1c0e54
+ db "@"
+; 0x174a1
+
+.Incompatible: ; 0x174a1
+ ; It has no interest in @ .
+ text_jump UnknownText_0x1c0e6f
+ db "@"
+; 0x174a6
+
+.HighCompatibility: ; 0x174a6
+ ; It appears to care for @ .
+ text_jump UnknownText_0x1c0e8d
+ db "@"
+; 0x174ab
+
+.ModerateCompatibility: ; 0x174ab
+ ; It's friendly with @ .
+ text_jump UnknownText_0x1c0eac
+ db "@"
+; 0x174b0
+
+.SlightCompatibility: ; 0x174b0
+ ; It shows interest in @ .
+ text_jump UnknownText_0x1c0ec6
+ db "@"
+; 0x174b5
+
+DayCareMonPrintEmptyString: ; 174b5
+; unreferenced
+ ld hl, .string
+ ret
+; 174b9
+
+.string ; 174b9
+ db "@"
+; 174ba
+
--- a/engine/breeding/egg.asm
+++ /dev/null
@@ -1,993 +1,0 @@
-CheckBreedmonCompatibility: ; 16e1d
- call .CheckBreedingGroupCompatibility
- ld c, $0
- jp nc, .done
- ld a, [wBreedMon1Species]
- ld [CurPartySpecies], a
- ld a, [wBreedMon1DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon1DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, TEMPMON
- ld [MonType], a
- predef GetGender
- jr c, .genderless
- ld b, $1
- jr nz, .breedmon2
- inc b
-
-.breedmon2
- push bc
- ld a, [wBreedMon2Species]
- ld [CurPartySpecies], a
- ld a, [wBreedMon2DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon2DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, $3
- ld [MonType], a
- predef GetGender
- pop bc
- jr c, .genderless
- ld a, $1
- jr nz, .compare_gender
- inc a
-
-.compare_gender
- cp b
- jr nz, .compute
-
-.genderless
- ld c, $0
- ld a, [wBreedMon1Species]
- cp DITTO
- jr z, .ditto1
- ld a, [wBreedMon2Species]
- cp DITTO
- jr nz, .done
- jr .compute
-
-.ditto1
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .done
-
-.compute
- call .CheckDVs
- ld c, 255
- jp z, .done
- ld a, [wBreedMon2Species]
- ld b, a
- ld a, [wBreedMon1Species]
- cp b
- ld c, 254
- jr z, .compare_ids
- ld c, 128
-.compare_ids
- ; Speed up
- ld a, [wBreedMon1ID]
- ld b, a
- ld a, [wBreedMon2ID]
- cp b
- jr nz, .done
- ld a, [wBreedMon1ID + 1]
- ld b, a
- ld a, [wBreedMon2ID + 1]
- cp b
- jr nz, .done
- ld a, c
- sub 77
- ld c, a
-
-.done
- ld a, c
- ld [wd265], a
- ret
-; 16ebc
-
-
-.CheckDVs: ; 16ebc (5:6ebc)
-; If Defense DVs match and the lower 3 bits of the Special DVs match,
-; avoid breeding
- ld a, [wBreedMon1DVs]
- and %1111
- ld b, a
- ld a, [wBreedMon2DVs]
- and %1111
- cp b
- ret nz
- ld a, [wBreedMon1DVs + 1]
- and %111
- ld b, a
- ld a, [wBreedMon2DVs + 1]
- and %111
- cp b
- ret
-; 16ed6
-
-.CheckBreedingGroupCompatibility: ; 16ed6
-; If either mon is in the No Eggs group,
-; they are not compatible.
- ld a, [wBreedMon2Species]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseEggGroups]
- cp NO_EGGS * $11
- jr z, .Incompatible
-
- ld a, [wBreedMon1Species]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseEggGroups]
- cp NO_EGGS * $11
- jr z, .Incompatible
-
-; Ditto is automatically compatible with everything.
-; If not Ditto, load the breeding groups into b/c and d/e.
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .Compatible
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseEggGroups]
- push af
- and $f
- ld b, a
- pop af
- and $f0
- swap a
- ld c, a
-
- ld a, [wBreedMon1Species]
- cp DITTO
- jr z, .Compatible
- ld [CurSpecies], a
- push bc
- call GetBaseData
- pop bc
- ld a, [BaseEggGroups]
- push af
- and $f
- ld d, a
- pop af
- and $f0
- swap a
- ld e, a
-
- ld a, d
- cp b
- jr z, .Compatible
- cp c
- jr z, .Compatible
-
- ld a, e
- cp b
- jr z, .Compatible
- cp c
- jr z, .Compatible
-
-.Incompatible:
- and a
- ret
-
-.Compatible:
- scf
- ret
-; 16f3e
-
-DoEggStep:: ; 16f3e
- ld de, PartySpecies
- ld hl, PartyMon1Happiness
- ld c, 0
-.loop
- ld a, [de]
- inc de
- cp -1
- ret z
- cp EGG
- jr nz, .next
- dec [hl]
- jr nz, .next
- ld a, 1
- and a
- ret
-
-.next
- push de
- ld de, PARTYMON_STRUCT_LENGTH
- add hl, de
- pop de
- jr .loop
-; 16f5e
-
-OverworldHatchEgg:: ; 16f5e
- call RefreshScreen
- call LoadStandardMenuDataHeader
- call HatchEggs
- call ExitAllMenus
- call RestartMapMusic
- jp CloseText
-; 16f70
-
-HatchEggs: ; 16f70 (5:6f70)
- ld de, PartySpecies
- ld hl, PartyMon1Happiness
- xor a
- ld [CurPartyMon], a
-
-.loop ; 16f7a (5:6f7a)
- ld a, [de]
- inc de
- cp -1
- jp z, .done
- push de
- push hl
- cp EGG
- jp nz, .next
- ld a, [hl]
- and a
- jp nz, .next
- ld [hl], $78
-
- push de
-
- callba SetEggMonCaughtData
- callba TrainerRankings_EggsHatched
- ld a, [CurPartyMon]
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld a, [hl]
- ld [CurPartySpecies], a
- dec a
- call SetSeenAndCaughtMon
-
- ld a, [CurPartySpecies]
- cp TOGEPI
- jr nz, .nottogepi
- ; set the event flag for hatching togepi
- ld de, EVENT_TOGEPI_HATCHED
- ld b, SET_FLAG
- call EventFlagAction
-.nottogepi
-
- pop de
-
- ld a, [CurPartySpecies]
- dec de
- ld [de], a
- ld [wd265], a
- ld [CurSpecies], a
- call GetPokemonName
- xor a
- ld [wd26b], a
- call GetBaseData
- ld a, [CurPartyMon]
- ld hl, PartyMon1
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- push hl
- ld bc, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- push hl
- ld bc, MON_LEVEL
- add hl, bc
- ld a, [hl]
- ld [CurPartyLevel], a
- pop hl
- push hl
- ld bc, MON_STATUS
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- pop hl
- push hl
- ld bc, MON_STAT_EXP - 1
- add hl, bc
- ld b, $0
- predef CalcPkmnStats
- pop bc
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- ld hl, MON_HP
- add hl, bc
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- ld hl, MON_ID
- add hl, bc
- ld a, [PlayerID]
- ld [hli], a
- ld a, [PlayerID + 1]
- ld [hl], a
- ld a, [CurPartyMon]
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, PlayerName
- call CopyBytes
- ld hl, .Text_HatchEgg
- call PrintText
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- push de
- ld hl, .Text_NicknameHatchling
- call PrintText
- call YesNoBox
- pop de
- jr c, .nonickname
-
- ld a, $1
- ld [wd26b], a
- xor a
- ld [MonType], a
- push de
- ld b, $0
- callba NamingScreen
- pop hl
- ld de, StringBuffer1
- call InitName
- jr .next
-
-.nonickname
- ld hl, StringBuffer1
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.next ; 1707d (5:707d)
- ld hl, CurPartyMon
- inc [hl]
- pop hl
- ld de, PARTYMON_STRUCT_LENGTH
- add hl, de
- pop de
- jp .loop
-
-.done ; 1708a (5:708a)
- ret
-; 1708b (5:708b)
-
-.Text_HatchEgg: ; 0x1708b
- ; Huh? @ @
- text_jump UnknownText_0x1c0db0
- start_asm
- ld hl, VramState
- res 0, [hl]
- push hl
- push de
- push bc
- ld a, [CurPartySpecies]
- push af
- call EggHatch_AnimationSequence
- ld hl, .ClearTextbox
- call PrintText
- pop af
- ld [CurPartySpecies], a
- pop bc
- pop de
- pop hl
- ld hl, .CameOutOfItsEgg
- ret
-; 170b0 (5:70b0)
-
-.ClearTextbox: ; 0x170b0
- ;
- text_jump UnknownText_0x1c0db8
- db "@"
-; 0x170b5
-
-.CameOutOfItsEgg: ; 0x170b5
- ; came out of its EGG!@ @
- text_jump UnknownText_0x1c0dba
- db "@"
-; 0x170ba
-
-.Text_NicknameHatchling: ; 0x170ba
- ; Give a nickname to @ ?
- text_jump UnknownText_0x1c0dd8
- db "@"
-; 0x170bf
-
-InitEggMoves: ; 170bf
- call GetHeritableMoves
- ld d, h
- ld e, l
- ld b, NUM_MOVES
-.loop
- ld a, [de]
- and a
- jr z, .done
- ld hl, wEggMonMoves
- ld c, NUM_MOVES
-.next
- ld a, [de]
- cp [hl]
- jr z, .skip
- inc hl
- dec c
- jr nz, .next
- call GetEggMove
- jr nc, .skip
- call LoadEggMove
-
-.skip
- inc de
- dec b
- jr nz, .loop
-
-.done
- ret
-; 170e4
-
-GetEggMove: ; 170e4
-GLOBAL EggMoves
-
- push bc
- ld a, [wEggMonSpecies]
- dec a
- ld c, a
- ld b, 0
- ld hl, EggMovePointers
- add hl, bc
- add hl, bc
- ld a, BANK(EggMovePointers)
- call GetFarHalfword
-.loop
- ld a, BANK(EggMoves)
- call GetFarByte
- cp -1
- jr z, .reached_end
- ld b, a
- ld a, [de]
- cp b
- jr z, .done_carry
- inc hl
- jr .loop
-
-.reached_end
- call GetBreedmonMovePointer
- ld b, NUM_MOVES
-.loop2
- ld a, [de]
- cp [hl]
- jr z, .found_eggmove
- inc hl
- dec b
- jr z, .inherit_tmhm
- jr .loop2
-
-.found_eggmove
- ld a, [wEggMonSpecies]
- dec a
- ld c, a
- ld b, 0
- ld hl, EvosAttacksPointers
- add hl, bc
- add hl, bc
- ld a, BANK(EvosAttacksPointers)
- call GetFarHalfword
-.loop3
- ld a, BANK(EvosAttacks)
- call GetFarByte
- inc hl
- and a
- jr nz, .loop3
-.loop4
- ld a, BANK(EvosAttacks)
- call GetFarByte
- and a
- jr z, .inherit_tmhm
- inc hl
- ld a, BANK(EvosAttacks)
- call GetFarByte
- ld b, a
- ld a, [de]
- cp b
- jr z, .done_carry
- inc hl
- jr .loop4
-
-.inherit_tmhm
- ld hl, TMHMMoves
-.loop5
- ld a, BANK(TMHMMoves)
- call GetFarByte
- inc hl
- and a
- jr z, .done
- ld b, a
- ld a, [de]
- cp b
- jr nz, .loop5
- ld [wPutativeTMHMMove], a
- predef CanLearnTMHMMove
- ld a, c
- and a
- jr z, .done
-
-.done_carry
- pop bc
- scf
- ret
-
-.done
- pop bc
- and a
- ret
-; 17169
-
-LoadEggMove: ; 17169
- push de
- push bc
- ld a, [de]
- ld b, a
- ld hl, wEggMonMoves
- ld c, NUM_MOVES
-.loop
- ld a, [hli]
- and a
- jr z, .done
- dec c
- jr nz, .loop
- ld de, wEggMonMoves
- ld hl, wEggMonMoves + 1
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
-
-.done
- dec hl
- ld [hl], b
- ld hl, wEggMonMoves
- ld de, wEggMonPP
- predef FillPP
- pop bc
- pop de
- ret
-; 17197
-
-GetHeritableMoves: ; 17197
- ld hl, wBreedMon2Moves
- ld a, [wBreedMon1Species]
- cp DITTO
- jr z, .ditto1
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .ditto2
- ld a, [wBreedMotherOrNonDitto]
- and a
- ret z
- ld hl, wBreedMon1Moves
- ret
-
-.ditto1
- ld a, [CurPartySpecies]
- push af
- ld a, [wBreedMon2Species]
- ld [CurPartySpecies], a
- ld a, [wBreedMon2DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon2DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, TEMPMON
- ld [MonType], a
- predef GetGender
- jr c, .inherit_mon2_moves
- jr nz, .inherit_mon2_moves
- jr .inherit_mon1_moves
-
-.ditto2
- ld a, [CurPartySpecies]
- push af
- ld a, [wBreedMon1Species]
- ld [CurPartySpecies], a
- ld a, [wBreedMon1DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon1DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, TEMPMON
- ld [MonType], a
- predef GetGender
- jr c, .inherit_mon1_moves
- jr nz, .inherit_mon1_moves
-
-.inherit_mon2_moves
- ld hl, wBreedMon2Moves
- pop af
- ld [CurPartySpecies], a
- ret
-
-.inherit_mon1_moves
- ld hl, wBreedMon1Moves
- pop af
- ld [CurPartySpecies], a
- ret
-; 1720b
-
-GetBreedmonMovePointer: ; 1720b
- ld hl, wBreedMon1Moves
- ld a, [wBreedMon1Species]
- cp DITTO
- ret z
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .ditto
- ld a, [wBreedMotherOrNonDitto]
- and a
- ret z
-
-.ditto
- ld hl, wBreedMon2Moves
- ret
-; 17224
-
-
-GetEggFrontpic: ; 17224 (5:7224)
- push de
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld hl, BattleMonDVs
- predef GetUnownLetter
- pop de
- predef_jump GetFrontpic
-
-GetHatchlingFrontpic: ; 1723c (5:723c)
- push de
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld hl, BattleMonDVs
- predef GetUnownLetter
- pop de
- predef_jump FrontpicPredef
-
-Hatch_UpdateFrontpicBGMapCenter: ; 17254 (5:7254)
- push af
- call WaitTop
- push hl
- push bc
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- pop bc
- pop hl
- ld a, b
- ld [hBGMapAddress + 1], a
- ld a, c
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- pop af
- call Hatch_LoadFrontpicPal
- call SetPalettes
- jp WaitBGMap
-
-EggHatch_DoAnimFrame: ; 1727f (5:727f)
- push hl
- push de
- push bc
- callab PlaySpriteAnimations
- call DelayFrame
- pop bc
- pop de
- pop hl
- ret
-
-EggHatch_AnimationSequence: ; 1728f (5:728f)
- ld a, [wd265]
- ld [wJumptableIndex], a
- ld a, [CurSpecies]
- push af
- ld de, MUSIC_NONE
- call PlayMusic
- callba BlankScreen
- call DisableLCD
- ld hl, EggHatchGFX
- ld de, VTiles0 tile $00
- ld bc, $20
- ld a, BANK(EggHatchGFX)
- call FarCopyBytes
- callba ClearSpriteAnims
- ld de, VTiles2 tile $00
- ld a, [wJumptableIndex]
- call GetHatchlingFrontpic
- ld de, VTiles2 tile $31
- ld a, EGG
- call GetEggFrontpic
- ld de, MUSIC_EVOLUTION
- call PlayMusic
- call EnableLCD
- hlcoord 7, 4
- ld b, VBGMap0 / $100
- ld c, $31 ; Egg tiles start here
- ld a, EGG
- call Hatch_UpdateFrontpicBGMapCenter
- ld c, 80
- call DelayFrames
- xor a
- ld [wcf64], a
- ld a, [hSCX]
- ld b, a
-.outerloop
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp 8
- jr nc, .done
- ld e, [hl]
-.loop
-; wobble e times
- ld a, 2
- ld [hSCX], a
- ld a, -2
- ld [wGlobalAnimXOffset], a
- call EggHatch_DoAnimFrame
- ld c, 2
- call DelayFrames
- ld a, -2
- ld [hSCX], a
- ld a, 2
- ld [wGlobalAnimXOffset], a
- call EggHatch_DoAnimFrame
- ld c, 2
- call DelayFrames
- dec e
- jr nz, .loop
- ld c, 16
- call DelayFrames
- call EggHatch_CrackShell
- jr .outerloop
-
-.done
- ld de, SFX_EGG_HATCH
- call PlaySFX
- xor a
- ld [hSCX], a
- ld [wGlobalAnimXOffset], a
- call ClearSprites
- call Hatch_InitShellFragments
- hlcoord 6, 3
- ld b, VBGMap0 / $100
- ld c, $00 ; Hatchling tiles start here
- ld a, [wJumptableIndex]
- call Hatch_UpdateFrontpicBGMapCenter
- call Hatch_ShellFragmentLoop
- call WaitSFX
- ld a, [wJumptableIndex]
- ld [CurPartySpecies], a
- hlcoord 6, 3
- ld d, $0
- ld e, ANIM_MON_HATCH
- predef AnimateFrontpic
- pop af
- ld [CurSpecies], a
- ret
-
-Hatch_LoadFrontpicPal: ; 17363 (5:7363)
- ld [PlayerHPPal], a
- ld b, SCGB_EVOLUTION
- ld c, $0
- jp GetSGBLayout
-
-EggHatch_CrackShell: ; 1736d (5:736d)
- ld a, [wcf64]
- dec a
- and $7
- cp $7
- ret z
- srl a
- ret nc
- swap a
- srl a
- add 9 * 8 + 4
- ld d, a
- ld e, 11 * 8
- ld a, SPRITE_ANIM_INDEX_EGG_CRACK
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $0
- ld de, SFX_EGG_CRACK
- jp PlaySFX
-; 17393 (5:7393)
-
-EggHatchGFX: ; 17393
-INCBIN "gfx/evo/egg_hatch.2bpp"
-; 173b3
-
-Hatch_InitShellFragments: ; 173b3 (5:73b3)
- callba ClearSpriteAnims
- ld hl, .SpriteData
-.loop
- ld a, [hli]
- cp -1
- jr z, .done
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- push hl
- push bc
-
- ld a, SPRITE_ANIM_INDEX_EGG_HATCH
- call _InitSpriteAnimStruct
-
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $0
-
- pop de
- ld a, e
- ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
- add hl, bc
- add [hl]
- ld [hl], a
-
- ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
- add hl, bc
- ld [hl], d
-
- pop hl
- jr .loop
-.done
- ld de, SFX_EGG_HATCH
- call PlaySFX
- call EggHatch_DoAnimFrame
- ret
-; 173ef (5:73ef)
-
-.SpriteData: ; 173ef
-; Probably OAM.
- dsprite 10, 4, 9, 0, $00, $3c
- dsprite 11, 4, 9, 0, $01, $04
- dsprite 10, 4, 10, 0, $00, $30
- dsprite 11, 4, 10, 0, $01, $10
- dsprite 10, 4, 11, 0, $02, $24
- dsprite 11, 4, 11, 0, $03, $1c
- dsprite 10, 0, 9, 4, $00, $36
- dsprite 12, 0, 9, 4, $01, $0a
- dsprite 10, 0, 10, 4, $02, $2a
- dsprite 12, 0, 10, 4, $03, $16
- db -1
-; 17418
-
-Hatch_ShellFragmentLoop: ; 17418 (5:7418)
- ld c, 129
-.loop
- call EggHatch_DoAnimFrame
- dec c
- jr nz, .loop
- ret
-
-Special_DayCareMon1: ; 17421
- ld hl, DayCareMon1Text
- call PrintText
- ld a, [wBreedMon1Species]
- call PlayCry
- ld a, [wDayCareLady]
- bit 0, a
- jr z, DayCareMonCursor
- call ButtonSound
- ld hl, wBreedMon2Nick
- call DayCareMonCompatibilityText
- jp PrintText
-
-Special_DayCareMon2: ; 17440
- ld hl, DayCareMon2Text
- call PrintText
- ld a, [wBreedMon2Species]
- call PlayCry
- ld a, [wDayCareMan]
- bit 0, a
- jr z, DayCareMonCursor
- call ButtonSound
- ld hl, wBreedMon1Nick
- call DayCareMonCompatibilityText
- jp PrintText
-
-DayCareMonCursor: ; 1745f
- jp WaitPressAorB_BlinkCursor
-; 17462
-
-DayCareMon2Text: ; 0x17462
- ; It's @ that was left with the DAY-CARE LADY.
- text_jump UnknownText_0x1c0df3
- db "@"
-; 0x17467
-
-DayCareMon1Text: ; 0x17467
- ; It's @ that was left with the DAY-CARE MAN.
- text_jump UnknownText_0x1c0e24
- db "@"
-; 0x1746c
-
-DayCareMonCompatibilityText: ; 1746c
- push bc
- ld de, StringBuffer1
- ld bc, NAME_LENGTH
- call CopyBytes
- call CheckBreedmonCompatibility
- pop bc
- ld a, [wd265]
- ld hl, .AllAlone
- cp -1
- jr z, .done
- ld hl, .Incompatible
- and a
- jr z, .done
- ld hl, .HighCompatibility
- cp 230
- jr nc, .done
- cp 70
- ld hl, .ModerateCompatibility
- jr nc, .done
- ld hl, .SlightCompatibility
-
-.done
- ret
-; 1749c
-
-.AllAlone: ; 0x1749c
- ; It's brimming with energy.
- text_jump UnknownText_0x1c0e54
- db "@"
-; 0x174a1
-
-.Incompatible: ; 0x174a1
- ; It has no interest in @ .
- text_jump UnknownText_0x1c0e6f
- db "@"
-; 0x174a6
-
-.HighCompatibility: ; 0x174a6
- ; It appears to care for @ .
- text_jump UnknownText_0x1c0e8d
- db "@"
-; 0x174ab
-
-.ModerateCompatibility: ; 0x174ab
- ; It's friendly with @ .
- text_jump UnknownText_0x1c0eac
- db "@"
-; 0x174b0
-
-.SlightCompatibility: ; 0x174b0
- ; It shows interest in @ .
- text_jump UnknownText_0x1c0ec6
- db "@"
-; 0x174b5
-
-DayCareMonPrintEmptyString: ; 174b5
-; unreferenced
- ld hl, .string
- ret
-; 174b9
-
-.string ; 174b9
- db "@"
-; 174ba
-
--- a/engine/card_flip.asm
+++ b/engine/card_flip.asm
@@ -1415,7 +1415,6 @@
endc
endm
-
cardflip_cursor 11, 2, .Impossible
cardflip_cursor 12, 2, .Impossible
cardflip_cursor 13, 2, .PokeGroupPair
@@ -1665,50 +1664,7 @@
; e0c93 (38:4c93)
.palettes ; e0c93
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 25, 00
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 13, 30
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 08, 17, 30
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 08, 31, 08
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 31, 00, 00
+INCLUDE "data/palettes/card_flip.pal"
; e0cdb
CardFlipLZ03: ; e0cdb
@@ -1727,16 +1683,5 @@
INCBIN "gfx/card_flip/card_flip_2.2bpp.lz"
CardFlipTilemap: ; e110c
- db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27
- db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b
- db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d
- db $ef, $25, $04, $00, $01, $00, $01, $00, $01, $00, $01
- db $ef, $05, $14, $10, $11, $10, $11, $10, $11, $10, $11
- db $ef, $16, $24, $20, $21, $20, $21, $20, $21, $20, $21
- db $ef, $25, $04, $00, $02, $00, $02, $00, $02, $00, $02
- db $ef, $05, $14, $10, $12, $10, $12, $10, $12, $10, $12
- db $ef, $16, $24, $20, $22, $20, $22, $20, $22, $20, $22
- db $ef, $25, $04, $00, $03, $00, $03, $00, $03, $00, $03
- db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13
- db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23
+INCBIN "gfx/card_flip/card_flip.tilemap"
; e1190
--- /dev/null
+++ b/engine/caught_data.asm
@@ -1,0 +1,247 @@
+CheckPartyFullAfterContest: ; 4d9e5
+ ld a, [wContestMon]
+ and a
+ jp z, .DidntCatchAnything
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, PartyCount
+ ld a, [hl]
+ cp 6
+ jp nc, .TryAddToBox
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [wContestMon]
+ ld [hli], a
+ ld [CurSpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMon1Species
+ ld a, [PartyCount]
+ dec a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, wContestMon
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMonOT
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, wMonOrItemNameBuffer
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ call GiveANickname_YesNo
+ jr c, .Party_SkipNickname
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ xor a
+ ld [MonType], a
+ ld de, wMonOrItemNameBuffer
+ callab InitNickname
+
+.Party_SkipNickname:
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMonNicknames
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, wMonOrItemNameBuffer
+ call CopyBytes
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Level
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ call SetCaughtData
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLocation
+ call GetPartyLocation
+ ld a, [hl]
+ and $80
+ ld b, $13
+ or b
+ ld [hl], a
+ xor a
+ ld [wContestMon], a
+ and a
+ ld [ScriptVar], a
+ ret
+
+.TryAddToBox: ; 4daa3
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld hl, sBoxCount
+ ld a, [hl]
+ cp MONS_PER_BOX
+ call CloseSRAM
+ jr nc, .BoxFull
+ xor a
+ ld [CurPartyMon], a
+ ld hl, wContestMon
+ ld de, wBufferMon
+ ld bc, BOXMON_STRUCT_LENGTH
+ call CopyBytes
+ ld hl, PlayerName
+ ld de, wBufferMonOT
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ callab InsertPokemonIntoBox
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+ call GiveANickname_YesNo
+ ld hl, StringBuffer1
+ jr c, .Box_SkipNickname
+ ld a, BOXMON
+ ld [MonType], a
+ ld de, wMonOrItemNameBuffer
+ callab InitNickname
+ ld hl, wMonOrItemNameBuffer
+
+.Box_SkipNickname:
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+ ld de, sBoxMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ call CloseSRAM
+
+.BoxFull:
+ ld a, BANK(sBoxMon1Level)
+ call GetSRAMBank
+ ld a, [sBoxMon1Level]
+ ld [CurPartyLevel], a
+ call CloseSRAM
+ call SetBoxMonCaughtData
+ ld a, BANK(sBoxMon1CaughtLocation)
+ call GetSRAMBank
+ ld hl, sBoxMon1CaughtLocation
+ ld a, [hl]
+ and $80
+ ld b, $13
+ or b
+ ld [hl], a
+ call CloseSRAM
+ xor a
+ ld [wContestMon], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.DidntCatchAnything: ; 4db35
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+
+GiveANickname_YesNo: ; 4db3b
+ ld hl, TextJump_GiveANickname
+ call PrintText
+ jp YesNoBox
+
+TextJump_GiveANickname: ; 0x4db44
+ ; Give a nickname to the @ you received?
+ text_jump UnknownText_0x1c12fc
+ db "@"
+
+SetCaughtData: ; 4db49
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLevel
+ call GetPartyLocation
+SetBoxmonOrEggmonCaughtData: ; 4db53
+ ld a, [TimeOfDay]
+ inc a
+ rrca
+ rrca
+ ld b, a
+ ld a, [CurPartyLevel]
+ or b
+ ld [hli], a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ cp MAP_POKECENTER_2F
+ jr nz, .NotPokecenter2F
+ ld a, b
+ cp GROUP_POKECENTER_2F
+ jr nz, .NotPokecenter2F
+
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+
+.NotPokecenter2F:
+ call GetWorldMapLocation
+ ld b, a
+ ld a, [PlayerGender]
+ rrca
+ or b
+ ld [hl], a
+ ret
+
+SetBoxMonCaughtData: ; 4db83
+ ld a, BANK(sBoxMon1CaughtLevel)
+ call GetSRAMBank
+ ld hl, sBoxMon1CaughtLevel
+ call SetBoxmonOrEggmonCaughtData
+ call CloseSRAM
+ ret
+
+SetGiftBoxMonCaughtData: ; 4db92
+ push bc
+ ld a, BANK(sBoxMon1CaughtLevel)
+ call GetSRAMBank
+ ld hl, sBoxMon1CaughtLevel
+ pop bc
+ call SetGiftMonCaughtData
+ call CloseSRAM
+ ret
+
+SetGiftPartyMonCaughtData: ; 4dba3
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLevel
+ push bc
+ call GetPartyLocation
+ pop bc
+SetGiftMonCaughtData: ; 4dbaf
+ xor a
+ ld [hli], a
+ ld a, $7e
+ rrc b
+ or b
+ ld [hl], a
+ ret
+
+SetEggMonCaughtData: ; 4dbb8 (13:5bb8)
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1CaughtLevel
+ call GetPartyLocation
+ ld a, [CurPartyLevel]
+ push af
+ ld a, $1
+ ld [CurPartyLevel], a
+ call SetBoxmonOrEggmonCaughtData
+ pop af
+ ld [CurPartyLevel], a
+ ret
--- /dev/null
+++ b/engine/cgb_layouts.asm
@@ -1,0 +1,1071 @@
+; Replaces the functionality of sgb.asm to work with CGB hardware.
+
+CheckCGB: ; 8d55
+ ld a, [hCGB]
+ and a
+ ret
+; 8d59
+
+Predef_LoadSGBLayoutCGB: ; 8d59
+ ld a, b
+ cp SCGB_RAM
+ jr nz, .not_ram
+ ld a, [SGBPredef]
+.not_ram
+ cp SCGB_PARTY_MENU_HP_PALS
+ jp z, CGB_ApplyPartyMenuHPPals
+ call ResetBGPals
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, .dw
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .ReturnFromJumpTable
+ push de
+ jp hl
+; 8d79
+
+.ReturnFromJumpTable: ; 8d79
+ ret
+; 8d7a
+
+.dw ; 8d7a
+ dw _CGB_BattleGrayscale
+ dw _CGB_BattleColors
+ dw _CGB_PokegearPals
+ dw _CGB_StatsScreenHPPals
+ dw _CGB_Pokedex
+ dw _CGB_SlotMachine
+ dw _CGB06
+ dw _CGB07
+ dw _CGB_Diploma
+ dw _CGB_MapPals
+ dw _CGB_PartyMenu
+ dw _CGB_Evolution
+ dw _CGB0c
+ dw _CGB0d
+ dw _CGB_MoveList
+ dw _CGB0f
+ dw _CGB_PokedexSearchOption
+ dw _CGB11
+ dw _CGB_Pokepic
+ dw _CGB13
+ dw _CGB_PackPals
+ dw _CGB_TrainerCard
+ dw _CGB_PokedexUnownMode
+ dw _CGB_BillsPC
+ dw _CGB_UnownPuzzle
+ dw _CGB_GamefreakLogo ; called before copyright
+ dw _CGB_PlayerOrMonFrontpicPals
+ dw _CGB_TradeTube
+ dw _CGB_TrainerOrMonFrontpicPals
+ dw _CGB_MysteryGift
+ dw _CGB1e
+; 8db8
+
+_CGB_BattleGrayscale: ; 8db8
+ ld hl, PalPacket_9c66 + 1
+ ld de, UnknBGPals
+ ld c, 4
+ call CopyPalettes
+ ld hl, PalPacket_9c66 + 1
+ ld de, UnknBGPals palette PAL_BATTLE_BG_EXP
+ ld c, 4
+ call CopyPalettes
+ ld hl, PalPacket_9c66 + 1
+ ld de, UnknOBPals
+ ld c, 2
+ call CopyPalettes
+ jr _CGB_FinishBattleScreenLayout
+
+_CGB_BattleColors: ; 8ddb
+ ld de, UnknBGPals
+ call GetBattlemonBackpicPalettePointer
+ push hl
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER
+ call GetEnemyFrontpicPalettePointer
+ push hl
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY
+ ld a, [EnemyHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, HPBarPals
+ add hl, bc
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY_HP
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, HPBarPals
+ add hl, bc
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER_HP
+ ld hl, ExpBarPalette
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_EXP
+ ld de, UnknOBPals
+ pop hl
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_ENEMY
+ pop hl
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_PLAYER
+ ld a, SCGB_BATTLE_COLORS
+ ld [SGBPredef], a
+ call ApplyPals
+_CGB_FinishBattleScreenLayout: ; 8e23
+ call InitPartyMenuBGPal7
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, PAL_BATTLE_BG_ENEMY_HP
+ call ByteFill
+ hlcoord 0, 4, AttrMap
+ lb bc, 8, 10
+ ld a, PAL_BATTLE_BG_PLAYER
+ call FillBoxCGB
+ hlcoord 10, 0, AttrMap
+ lb bc, 7, 10
+ ld a, PAL_BATTLE_BG_ENEMY
+ call FillBoxCGB
+ hlcoord 0, 0, AttrMap
+ lb bc, 4, 10
+ ld a, PAL_BATTLE_BG_ENEMY_HP
+ call FillBoxCGB
+ hlcoord 10, 7, AttrMap
+ lb bc, 5, 10
+ ld a, PAL_BATTLE_BG_PLAYER_HP
+ call FillBoxCGB
+ hlcoord 10, 11, AttrMap
+ lb bc, 1, 9
+ ld a, PAL_BATTLE_BG_EXP
+ call FillBoxCGB
+ hlcoord 0, 12, AttrMap
+ ld bc, 6 * SCREEN_WIDTH
+ ld a, PAL_BATTLE_BG_TEXT
+ call ByteFill
+ ld hl, Palettes_979c
+ ld de, UnknOBPals palette PAL_BATTLE_OB_GRAY
+ ld bc, 6 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ call ApplyAttrMap
+ ret
+; 8e85
+
+
+InitPartyMenuBGPal7: ; 8e85
+ callba Function100dc0
+Mobile_InitPartyMenuBGPal7: ; 8e8b
+ ld hl, Palette_b311
+ jr nc, .not_mobile
+ ld hl, Palette_b309
+.not_mobile
+ ld de, UnknBGPals palette 7
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+; 8e9f
+
+InitPartyMenuBGPal0: ; 8e9f
+ callba Function100dc0
+ ld hl, Palette_b311
+ jr nc, .not_mobile
+ ld hl, Palette_b309
+.not_mobile
+ ld de, UnknBGPals palette 0
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+; 8eb9
+
+_CGB_PokegearPals: ; 8eb9
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .male
+ ld hl, FemalePokegearPals
+ jr .got_pals
+
+.male
+ ld hl, MalePokegearPals
+.got_pals
+ ld de, UnknBGPals
+ ld bc, 6 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8edb
+
+_CGB_StatsScreenHPPals: ; 8edb
+ ld de, UnknBGPals
+ ld a, [wCurHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, HPBarPals
+ add hl, bc
+ call LoadPalette_White_Col1_Col2_Black ; hp palette
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black ; mon palette
+ ld hl, ExpBarPalette
+ call LoadPalette_White_Col1_Col2_Black ; exp palette
+ ld hl, StatsScreenPagePals
+ ld de, UnknBGPals palette 3
+ ld bc, 3 palettes ; pink, green, and blue page palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call WipeAttrMap
+
+ hlcoord 0, 0, AttrMap
+ lb bc, 8, SCREEN_WIDTH
+ ld a, $1 ; mon palette
+ call FillBoxCGB
+
+ hlcoord 10, 16, AttrMap
+ ld bc, 10
+ ld a, $2 ; exp palette
+ call ByteFill
+
+ hlcoord 13, 5, AttrMap
+ lb bc, 2, 2
+ ld a, $3 ; pink page palette
+ call FillBoxCGB
+
+ hlcoord 15, 5, AttrMap
+ lb bc, 2, 2
+ ld a, $4 ; green page palette
+ call FillBoxCGB
+
+ hlcoord 17, 5, AttrMap
+ lb bc, 2, 2
+ ld a, $5 ; blue page palette
+ call FillBoxCGB
+
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8f52
+
+StatsScreenPagePals: ; 8f52
+; pink
+ RGB 31, 31, 31
+ RGB 31, 19, 31
+ RGB 31, 15, 31
+ RGB 00, 00, 00
+; green
+ RGB 31, 31, 31
+ RGB 21, 31, 14
+ RGB 17, 31, 00
+ RGB 00, 00, 00
+; blue
+ RGB 31, 31, 31
+ RGB 17, 31, 31
+ RGB 17, 31, 31
+ RGB 00, 00, 00
+; 8f6a
+
+StatsScreenPals: ; 8f6a
+; pink
+ RGB 31, 19, 31
+; green
+ RGB 21, 31, 14
+; blue
+ RGB 17, 31, 31
+; 8f70
+
+_CGB_Pokedex: ; 8f70
+ ld de, UnknBGPals
+ ld a, $1d
+ call GetPredefPal
+ call LoadHLPaletteIntoDE ; dex interface palette
+ ld a, [CurPartySpecies]
+ cp $ff
+ jr nz, .is_pokemon
+ ld hl, .PokedexQuestionMarkPalette
+ call LoadHLPaletteIntoDE ; green question mark palette
+ jr .got_palette
+
+.is_pokemon
+ call GetMonPalettePointer_
+ call LoadPalette_White_Col1_Col2_Black ; mon palette
+.got_palette
+ call WipeAttrMap
+ hlcoord 1, 1, AttrMap
+ lb bc, 7, 7
+ ld a, $1 ; green question mark palette
+ call FillBoxCGB
+ call InitPartyMenuOBPals
+ ld hl, .PokedexCursorPalette
+ ld de, UnknOBPals palette 7 ; green cursor palette
+ ld bc, 1 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8fba
+
+.PokedexQuestionMarkPalette: ; 8fba
+ RGB 11, 23, 00
+ RGB 07, 17, 00
+ RGB 06, 16, 03
+ RGB 05, 12, 01
+
+.PokedexCursorPalette: ; 8fc2
+ RGB 00, 00, 00
+ RGB 11, 23, 00
+ RGB 07, 17, 00
+ RGB 00, 00, 00
+; 8fca
+
+_CGB_BillsPC: ; 8fca
+ ld de, UnknBGPals
+ ld a, $1d
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld a, [CurPartySpecies]
+ cp $ff
+ jr nz, .GetMonPalette
+ ld hl, .BillsPCOrangePalette
+ call LoadHLPaletteIntoDE
+ jr .Resume
+
+.GetMonPalette:
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+.Resume:
+ call WipeAttrMap
+ hlcoord 1, 4, AttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call FillBoxCGB
+ call InitPartyMenuOBPals
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9009
+
+.Function9009: ; 9009
+ ld hl, .BillsPCOrangePalette
+ call LoadHLPaletteIntoDE
+ jr .asm_901a
+
+.unused
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+.asm_901a
+ call WipeAttrMap
+ hlcoord 1, 1, AttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call FillBoxCGB
+ call InitPartyMenuOBPals
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9036
+
+.BillsPCOrangePalette: ; 9036
+ RGB 31, 15, 00
+ RGB 23, 12, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+; 903e
+
+_CGB_PokedexUnownMode: ; 903e
+ ld de, UnknBGPals
+ ld a, $1d
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld a, [CurPartySpecies]
+ call GetMonPalettePointer_
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ hlcoord 7, 5, AttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call FillBoxCGB
+ call InitPartyMenuOBPals
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 906e
+
+_CGB_SlotMachine: ; 906e
+ ld hl, SlotMachinePals
+ ld de, UnknBGPals
+ ld bc, 16 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call WipeAttrMap
+ hlcoord 0, 2, AttrMap
+ lb bc, 10, 3
+ ld a, $2
+ call FillBoxCGB
+ hlcoord 17, 2, AttrMap
+ lb bc, 10, 3
+ ld a, $2
+ call FillBoxCGB
+ hlcoord 0, 4, AttrMap
+ lb bc, 6, 3
+ ld a, $3
+ call FillBoxCGB
+ hlcoord 17, 4, AttrMap
+ lb bc, 6, 3
+ ld a, $3
+ call FillBoxCGB
+ hlcoord 0, 6, AttrMap
+ lb bc, 2, 3
+ ld a, $4
+ call FillBoxCGB
+ hlcoord 17, 6, AttrMap
+ lb bc, 2, 3
+ ld a, $4
+ call FillBoxCGB
+ hlcoord 4, 2, AttrMap
+ lb bc, 2, 12
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 3, 2, AttrMap
+ lb bc, 10, 1
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 16, 2, AttrMap
+ lb bc, 10, 1
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 0, 12, AttrMap
+ ld bc, $78
+ ld a, $7
+ call ByteFill
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 90f8
+
+_CGB06: ; 90f8
+ ld hl, PalPacket_9ca6 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ ld de, UnknOBPals
+ ld a, $3c
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ hlcoord 0, 6, AttrMap
+ lb bc, 12, SCREEN_WIDTH
+ ld a, $1
+ call FillBoxCGB
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9122
+
+_CGB07: ; 9122
+ ld b, 0
+ ld hl, .Jumptable
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 912d
+
+.Jumptable: ; 912d
+ dw .Function9133
+ dw .Function9166
+ dw .Function9180
+; 9133
+
+.Function9133: ; 9133
+ ld hl, .Palette_914e
+ ld de, UnknBGPals
+ call LoadHLPaletteIntoDE
+ ld hl, .Palette_9156
+ ld de, UnknOBPals
+ ld bc, 2 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ call WipeAttrMap
+ ret
+; 914e
+
+.Palette_914e: ; 914e
+ RGB 19, 31, 19
+ RGB 18, 23, 31
+ RGB 11, 21, 28
+ RGB 04, 16, 24
+
+.Palette_9156: ; 9156
+ RGB 29, 29, 29
+ RGB 20, 19, 20
+ RGB 19, 06, 04
+ RGB 03, 04, 06
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 03, 04, 06
+; 9166
+
+.Function9166: ; 9166
+ ld de, UnknBGPals
+ ld a, $38
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+
+ ld de, UnknOBPals
+ ld a, $39
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ ret
+; 9180
+
+.Function9180: ; 9180
+ ld hl, PalPacket_9c36 + 1
+ call CopyFourPalettes
+ ld de, UnknOBPals
+ ld a, $3a
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ ret
+; 9195
+
+_CGB11: ; 9195
+ ld hl, Palettes_b789
+ ld de, UnknBGPals
+ ld bc, 5 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call ApplyPals
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 91ad
+
+_CGB_Diploma: ; 91ad
+ ld hl, DiplomaPalettes
+ ld de, UnknBGPals
+ ld bc, 16 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+
+ ld hl, PalPacket_9cb6 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 91c8
+
+_CGB_MapPals: ; 91c8
+ call LoadMapPals
+ ld a, SCGB_MAPPALS
+ ld [SGBPredef], a
+ ret
+; 91d1
+
+_CGB_PartyMenu: ; 91d1
+ ld hl, PalPacket_9c56 + 1
+ call CopyFourPalettes
+ call InitPartyMenuBGPal0
+ call InitPartyMenuBGPal7
+ call InitPartyMenuOBPals
+ call ApplyAttrMap
+ ret
+; 91e4
+
+_CGB_Evolution: ; 91e4
+ ld de, UnknBGPals
+ ld a, c
+ and a
+ jr z, .pokemon
+ ld a, $1a
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ jr .got_palette
+
+.pokemon
+ ld hl, PartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld c, l
+ ld b, h
+ ld a, [PlayerHPPal]
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld hl, Palettes_979c
+ ld de, UnknOBPals palette 2
+ ld bc, 6 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+
+.got_palette
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9228
+
+_CGB0c: ; 9228
+ ld hl, Palettes_b6f1
+ ld de, UnknBGPals
+ ld bc, 5 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ld hl, Palettes_b719
+ ld de, UnknOBPals
+ ld bc, 2 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ ld a, SCGB_DIPLOMA
+ ld [SGBPredef], a
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9251
+
+_CGB0d: ; 9251
+ ld hl, PalPacket_9cb6 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 925e
+
+_CGB_UnownPuzzle: ; 925e
+ ld hl, PalPacket_9bc6 + 1
+ call CopyFourPalettes
+ ld de, UnknOBPals
+ ld a, $4c
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(UnknOBPals)
+ ld [rSVBK], a
+ ld hl, UnknOBPals
+ ld a, $1f
+ ld [hli], a
+ ld a, $0
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 9289
+
+_CGB_TrainerCard: ; 9289
+ ld de, UnknBGPals
+ xor a ; CHRIS
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, FALKNER ; KRIS
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, BUGSY
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, WHITNEY
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, MORTY
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, CHUCK
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, JASMINE
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, PRYCE
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, $24
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+
+ ; fill screen with opposite-gender palette for the card border
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, [PlayerGender]
+ and a
+ ld a, $1 ; kris
+ jr z, .got_gender
+ ld a, $0 ; chris
+.got_gender
+ call ByteFill
+ ; fill trainer sprite area with same-gender palette
+ hlcoord 14, 1, AttrMap
+ lb bc, 7, 5
+ ld a, [PlayerGender]
+ and a
+ ld a, $0 ; chris
+ jr z, .got_gender2
+ ld a, $1 ; kris
+.got_gender2
+ call FillBoxCGB
+ ; top-right corner still uses the border's palette
+ hlcoord 18, 1, AttrMap
+ ld [hl], $1
+ hlcoord 2, 11, AttrMap
+ lb bc, 2, 4
+ ld a, $1 ; falkner
+ call FillBoxCGB
+ hlcoord 6, 11, AttrMap
+ lb bc, 2, 4
+ ld a, $2 ; bugsy
+ call FillBoxCGB
+ hlcoord 10, 11, AttrMap
+ lb bc, 2, 4
+ ld a, $3 ; whitney
+ call FillBoxCGB
+ hlcoord 14, 11, AttrMap
+ lb bc, 2, 4
+ ld a, $4 ; morty
+ call FillBoxCGB
+ hlcoord 2, 14, AttrMap
+ lb bc, 2, 4
+ ld a, $5 ; chuck
+ call FillBoxCGB
+ hlcoord 6, 14, AttrMap
+ lb bc, 2, 4
+ ld a, $6 ; jasmine
+ call FillBoxCGB
+ hlcoord 10, 14, AttrMap
+ lb bc, 2, 4
+ ld a, $7 ; pryce
+ call FillBoxCGB
+ ; clair uses kris's palette
+ ld a, [PlayerGender]
+ and a
+ push af
+ jr z, .got_gender3
+ hlcoord 14, 14, AttrMap
+ lb bc, 2, 4
+ ld a, $1
+ call FillBoxCGB
+.got_gender3
+ pop af
+ ld c, $0
+ jr nz, .got_gender4
+ inc c
+.got_gender4
+ ld a, c
+ hlcoord 18, 1, AttrMap
+ ld [hl], a
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9373
+
+_CGB_MoveList: ; 9373
+ ld de, UnknBGPals
+ ld a, $10
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld bc, HPBarPals
+ add hl, bc
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ hlcoord 11, 1, AttrMap
+ lb bc, 2, 9
+ ld a, $1
+ call FillBoxCGB
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93a6
+
+_CGB0f: ; 93a6
+ ld hl, PalPacket_9c46 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93ba
+
+_CGB_PokedexSearchOption: ; 93ba
+ ld de, UnknBGPals
+ ld a, $1d
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93d3
+
+_CGB_PackPals: ; 93d3
+; pack pals
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ jr z, .tutorial_male
+
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .tutorial_male
+
+ ld hl, .KrisPackPals
+ jr .got_gender
+
+.tutorial_male
+ ld hl, .ChrisPackPals
+
+.got_gender
+ ld de, UnknBGPals
+ ld bc, 8 palettes ; 6 palettes?
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call WipeAttrMap
+ hlcoord 0, 0, AttrMap
+ lb bc, 1, 10
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 10, 0, AttrMap
+ lb bc, 1, 10
+ ld a, $2
+ call FillBoxCGB
+ hlcoord 7, 2, AttrMap
+ lb bc, 9, 1
+ ld a, $3
+ call FillBoxCGB
+ hlcoord 0, 7, AttrMap
+ lb bc, 3, 5
+ ld a, $4
+ call FillBoxCGB
+ hlcoord 0, 3, AttrMap
+ lb bc, 3, 5
+ ld a, $5
+ call FillBoxCGB
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9439
+
+.ChrisPackPals: ; 9439
+INCLUDE "data/palettes/pack.pal"
+; 9469
+
+.KrisPackPals: ; 9469
+INCLUDE "data/palettes/pack_f.pal"
+; 9499
+
+_CGB_Pokepic: ; 9499
+ call _CGB_MapPals
+ ld de, SCREEN_WIDTH
+ hlcoord 0, 0, AttrMap
+ ld a, [wMenuBorderTopCoord]
+.loop
+ and a
+ jr z, .found_top
+ dec a
+ add hl, de
+ jr .loop
+
+.found_top
+ ld a, [wMenuBorderLeftCoord]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [wMenuBorderTopCoord]
+ ld b, a
+ ld a, [wMenuBorderBottomCoord]
+ inc a
+ sub b
+ ld b, a
+ ld a, [wMenuBorderLeftCoord]
+ ld c, a
+ ld a, [wMenuBorderRightCoord]
+ sub c
+ inc a
+ ld c, a
+ ld a, $0
+ call FillBoxCGB
+ call ApplyAttrMap
+ ret
+; 94d0
+
+_CGB13: ; 94d0
+ ld hl, PalPacket_9ba6 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ hlcoord 0, 4, AttrMap
+ lb bc, 10, SCREEN_WIDTH
+ ld a, $2
+ call FillBoxCGB
+ hlcoord 0, 6, AttrMap
+ lb bc, 6, SCREEN_WIDTH
+ ld a, $1
+ call FillBoxCGB
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 94fa
+
+_CGB_GamefreakLogo: ; 94fa
+ ld de, UnknBGPals
+ ld a, $4e
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld hl, .Palette
+ ld de, UnknOBPals
+ call LoadHLPaletteIntoDE
+ ld hl, .Palette
+ ld de, UnknOBPals palette 1
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ret
+; 9521
+
+.Palette: ; 9521
+ RGB 31, 31, 31
+ RGB 13, 11, 00
+ RGB 23, 12, 28
+ RGB 00, 00, 00
+; 9529
+
+_CGB_PlayerOrMonFrontpicPals: ; 9529
+ ld de, UnknBGPals
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ret
+; 9542
+
+_CGB1e: ; 9542
+ ld de, UnknBGPals
+ ld a, [CurPartySpecies]
+ call GetMonPalettePointer_
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 9555
+
+_CGB_TradeTube: ; 9555
+ ld hl, PalPacket_9cc6 + 1
+ call CopyFourPalettes
+ ld hl, PartyMenuOBPals
+ ld de, UnknOBPals
+ ld bc, 1 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ ld de, UnknOBPals palette 7
+ ld a, $1c
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ ret
+; 9578
+
+_CGB_TrainerOrMonFrontpicPals: ; 9578
+ ld de, UnknBGPals
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetFrontpicPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ret
+; 9591
+
+_CGB_MysteryGift: ; 9591
+ ld hl, .Palettes
+ ld de, UnknBGPals
+ ld bc, 2 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call ApplyPals
+ call WipeAttrMap
+ hlcoord 3, 7, AttrMap
+ lb bc, 8, 14
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 1, 5, AttrMap
+ lb bc, 1, 18
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 1, 16, AttrMap
+ lb bc, 1, 18
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 0, 0, AttrMap
+ lb bc, 17, 2
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 18, 5, AttrMap
+ lb bc, 12, 1
+ ld a, $1
+ call FillBoxCGB
+ call ApplyAttrMap
+ ret
+; 95e0
+
+.Palettes: ; 95e0
+ RGB 31, 31, 31
+ RGB 16, 31, 14
+ RGB 05, 14, 21
+ RGB 05, 13, 10
+
+ RGB 31, 31, 31
+ RGB 11, 21, 25
+ RGB 05, 14, 21
+ RGB 00, 03, 19
+; 95f0
--- /dev/null
+++ b/engine/check_battle_scene.asm
@@ -1,0 +1,47 @@
+CheckBattleScene: ; 4ea44
+; Return carry if battle scene is turned off.
+
+ ld a, 0
+ ld hl, wLinkMode
+ call GetFarWRAMByte
+ cp LINK_MOBILE
+ jr z, .mobile
+
+ ld a, [Options]
+ bit BATTLE_SCENE, a
+ jr nz, .off
+
+ and a
+ ret
+
+.mobile
+ ld a, [wcd2f]
+ and a
+ jr nz, .from_wram
+
+ ld a, $4
+ call GetSRAMBank
+ ld a, [$a60c]
+ ld c, a
+ call CloseSRAM
+
+ ld a, c
+ bit 0, c
+ jr z, .off
+
+ and a
+ ret
+
+.from_wram
+ ld a, $5
+ ld hl, w5_dc00
+ call GetFarWRAMByte
+ bit 0, a
+ jr z, .off
+
+ and a
+ ret
+
+.off
+ scf
+ ret
--- /dev/null
+++ b/engine/check_nick_errors.asm
@@ -1,0 +1,74 @@
+CheckNickErrors:: ; 669f
+; error-check monster nick before use
+; must be a peace offering to gamesharkers
+
+; input: de = nick location
+
+ push bc
+ push de
+ ld b, PKMN_NAME_LENGTH
+
+.checkchar
+; end of nick?
+ ld a, [de]
+ cp "@" ; terminator
+ jr z, .end
+
+; check if this char is a text command
+ ld hl, .textcommands
+ dec hl
+.loop
+; next entry
+ inc hl
+; reached end of commands table?
+ ld a, [hl]
+ cp -1
+ jr z, .done
+
+; is the current char between this value (inclusive)...
+ ld a, [de]
+ cp [hl]
+ inc hl
+ jr c, .loop
+; ...and this one?
+ cp [hl]
+ jr nc, .loop
+
+; replace it with a "?"
+ ld a, "?"
+ ld [de], a
+ jr .loop
+
+.done
+; next char
+ inc de
+; reached end of nick without finding a terminator?
+ dec b
+ jr nz, .checkchar
+
+; change nick to "?@"
+ pop de
+ push de
+ ld a, "?"
+ ld [de], a
+ inc de
+ ld a, "@"
+ ld [de], a
+.end
+; if the nick has any errors at this point it's out of our hands
+ pop de
+ pop bc
+ ret
+
+.textcommands ; 66cf
+; table defining which characters are actually text commands
+; format:
+ ; ≥ <
+ db "<START>", TX_BOX + 1
+ db "<PLAY_G>", $18 + 1
+ db $1d, "%" + 1
+ db $35, "<GREEN>" + 1
+ db "<ENEMY>", "<ENEMY>" + 1
+ db "<MOM>", "<TM>" + 1
+ db "<ROCKET>", "┘" + 1
+ db -1 ; end
--- /dev/null
+++ b/engine/check_time.asm
@@ -1,0 +1,19 @@
+CheckTime:: ; c000
+ ld a, [TimeOfDay]
+ ld hl, TimeOfDayTable
+ ld de, 2
+ call IsInArray
+ inc hl
+ ld c, [hl]
+ ret c
+
+ xor a
+ ld c, a
+ ret
+
+TimeOfDayTable: ; c012
+ db MORN_F, MORN
+ db DAY_F, DAY
+ db NITE_F, NITE
+ db NITE_F, NITE
+ db -1
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -1,5 +1,4 @@
-PALPACKET_LENGTH EQU $10
-INCLUDE "predef/sgb.asm"
+INCLUDE "engine/sgb_layouts.asm"
SHINY_ATK_BIT EQU 5
SHINY_DEF_VAL EQU 10
@@ -355,7 +354,7 @@
ld h, $0
add hl, hl
add hl, hl
- ld bc, Palettes_a8be
+ ld bc, HPBarPals
add hl, bc
ld bc, 4
ld a, $5
@@ -450,58 +449,10 @@
ret
.MailPals:
- RGB 20, 31, 11
- RGB 31, 19, 00
- RGB 31, 10, 09
- RGB 00, 00, 00
+INCLUDE "data/palettes/mail.pal"
- RGB 15, 20, 31
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
+INCLUDE "engine/cgb_layouts.asm"
- RGB 24, 17, 31
- RGB 30, 26, 00
- RGB 08, 11, 31
- RGB 00, 00, 00
-
- RGB 31, 25, 17
- RGB 31, 18, 04
- RGB 28, 12, 05
- RGB 00, 00, 00
-
- RGB 19, 26, 31
- RGB 31, 05, 08
- RGB 31, 09, 31
- RGB 00, 00, 00
-
- RGB 31, 19, 28
- RGB 31, 21, 00
- RGB 12, 22, 00
- RGB 00, 00, 00
-
- RGB 19, 17, 23
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 07, 26, 31
- RGB 26, 26, 27
- RGB 31, 11, 11
- RGB 00, 00, 00
-
- RGB 21, 31, 21
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 07, 26, 31
- RGB 31, 31, 00
- RGB 00, 21, 00
- RGB 00, 00, 00
-
-INCLUDE "predef/cgb.asm"
-
Function95f0:
; XXX
ld hl, .Palette
@@ -544,7 +495,7 @@
add hl, hl
add hl, hl
add hl, hl
- ld bc, Palettes_9df6
+ ld bc, PredefPals
add hl, bc
ret
@@ -731,7 +682,7 @@
ret
InitPartyMenuOBPals:
- ld hl, Palettes_b681
+ ld hl, PartyMenuOBPals
ld de, UnknOBPals
ld bc, 2 palettes
ld a, $5
@@ -805,7 +756,7 @@
dec c
jr nz, .loop
ld hl, Palettes_979c
- ld de, UnknOBPals + 8 * 2
+ ld de, UnknOBPals palette 2
ld bc, 2 palettes
ld a, $5
call FarCopyWRAM
@@ -812,36 +763,8 @@
ret
Palettes_979c:
- RGB 31, 31, 31
- RGB 25, 25, 25
- RGB 13, 13, 13
- RGB 00, 00, 00
+INCLUDE "data/palettes/979c.pal"
- RGB 31, 31, 31
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 25, 01
- RGB 05, 14, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 08, 12, 31
- RGB 01, 04, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 18, 07
- RGB 20, 15, 03
- RGB 00, 00, 00
-
Function97cc:
; XXX
call CheckCGB
@@ -1142,7 +1065,7 @@
call DisableLCD
ld a, %11100100
ld [rBGP], a
- ld hl, Palettes_9df6
+ ld hl, PredefPals
ld de, VTiles1
ld bc, $1000
call CopyData
@@ -1351,532 +1274,35 @@
PalPacket_9dd6: db $79, $1b, $08, $00, $0b, $ea, $ea, $ea, $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0
PalPacket_9de6: db $79, $10, $08, $00, $0b, $4c, $20, $08, $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea
-Palettes_9df6:
- RGB 31, 31, 31
- RGB 22, 25, 19
- RGB 16, 21, 30
- RGB 00, 00, 00
+PredefPals:
+INCLUDE "data/palettes/predef.pal"
- RGB 31, 31, 31
- RGB 27, 28, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 28, 19
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 24, 24
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 23, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 21, 27
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 24, 16
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 25, 30, 26
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 25, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 20, 19
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 26, 19
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 27, 28, 27
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 30, 23
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 24, 29
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 23, 29
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 25, 23, 20
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 26, 18
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 21, 18
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 25, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 22, 21, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 22, 25, 21
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 21, 22
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 20, 20
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 26, 26
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 14, 09
- RGB 15, 20, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 28, 22
- RGB 15, 20, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 07, 07, 07
- RGB 02, 03, 03
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 22, 17
- RGB 16, 14, 19
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 18, 20, 27
- RGB 11, 15, 23
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 20, 10
- RGB 26, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 25, 29
- RGB 14, 19, 25
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 27, 22, 24
- RGB 21, 15, 23
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 28, 20, 15
- RGB 21, 14, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 20, 26, 16
- RGB 09, 20, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 22, 24
- RGB 28, 15, 21
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 28, 14
- RGB 26, 20, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 21, 22
- RGB 15, 15, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 19, 13
- RGB 14, 12, 17
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 18, 21
- RGB 10, 12, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 22, 15, 16
- RGB 17, 02, 05
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 20, 20
- RGB 05, 16, 16
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 15, 19
- RGB 14, 04, 12
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 20, 17, 18
- RGB 18, 13, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 21, 16
- RGB 12, 12, 10
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 25, 29
- RGB 30, 22, 24
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 23, 16
- RGB 29, 14, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 18, 18, 18
- RGB 10, 10, 10
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 26, 15
- RGB 00, 23, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 26, 15
- RGB 31, 23, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 26, 15
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 26, 19
- RGB 27, 20, 14
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 20, 10
- RGB 21, 00, 04
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 20, 10
- RGB 21, 00, 04
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 26, 16
- RGB 16, 12, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 28, 26
- RGB 12, 22, 26
- RGB 03, 16, 14
-
- RGB 31, 31, 31
- RGB 15, 28, 26
- RGB 23, 24, 24
- RGB 00, 00, 00
-
- RGB 31, 31, 24
- RGB 07, 27, 19
- RGB 26, 20, 10
- RGB 19, 12, 08
-
- RGB 31, 31, 31
- RGB 31, 28, 14
- RGB 31, 13, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 18, 21
- RGB 10, 12, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 21, 16
- RGB 12, 12, 10
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 14, 00
- RGB 07, 11, 15
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 21, 22
- RGB 26, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 27, 04
- RGB 24, 20, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 13, 25
- RGB 24, 20, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 19, 29
- RGB 24, 20, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 22, 24
- RGB 18, 18, 18
- RGB 16, 10, 07
-
- RGB 31, 31, 31
- RGB 21, 25, 29
- RGB 18, 18, 18
- RGB 16, 10, 07
-
- RGB 31, 31, 31
- RGB 20, 26, 16
- RGB 18, 18, 18
- RGB 16, 10, 07
-
- RGB 31, 31, 31
- RGB 31, 28, 14
- RGB 18, 18, 18
- RGB 16, 10, 07
-
- RGB 31, 31, 31
- RGB 18, 18, 18
- RGB 26, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 22, 24
- RGB 28, 15, 21
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 20, 00
- RGB 16, 19, 29
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 02, 30
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 13, 04
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 28, 04, 02
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 18, 23, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 20, 11
- RGB 18, 13, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 25, 30, 00
- RGB 25, 30, 00
-
- RGB 00, 00, 00
- RGB 08, 11, 11
- RGB 21, 21, 21
- RGB 31, 31, 31
-
SGBBorderMap:
- db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
- db $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $54, $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54
- db $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54
- db $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54, $20, $54, $07, $14, $08, $14, $09, $14, $0a, $14, $0b, $14, $0c, $14, $0d, $14, $07, $14, $07, $14, $18, $14, $09, $14, $1a, $14, $1b, $14, $0d, $14, $0c, $14, $1c, $14, $29, $14, $07, $14, $20, $14, $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54
- db $31, $14, $32, $14, $07, $14, $07, $14, $32, $54, $36, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $27, $10, $32, $14, $07, $54, $07, $54, $32, $54, $31, $54
- db $05, $14, $06, $14, $07, $14, $07, $54, $06, $54, $1f, $10, $37, $10, $06, $14, $07, $14, $07, $54, $06, $54, $05, $54
- db $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $1f, $10, $37, $10, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54
- db $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $1f, $10, $37, $10, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54
- db $33, $14, $34, $14, $35, $14, $35, $54, $34, $54, $1f, $10, $37, $10, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54
- db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
- db $02, $54, $01, $54, $07, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $01, $14, $02, $14
- db $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14
- db $22, $54, $21, $54, $20, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $20, $14, $21, $14, $22, $14
- db $32, $54, $31, $54, $30, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $30, $14, $31, $14, $32, $14
- db $06, $54, $05, $54, $04, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $04, $14, $05, $14, $06, $14
- db $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14
- db $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14
- db $34, $54, $33, $54, $07, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $33, $14, $34, $14
- db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
- db $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $1f, $10, $37, $10, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54
- db $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $1f, $10, $37, $10, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54
- db $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $1f, $10, $37, $10, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54
- db $31, $14, $32, $14, $07, $14, $07, $14, $32, $54, $1f, $10, $37, $10, $32, $14, $07, $54, $07, $54, $32, $54, $31, $54
- db $05, $14, $06, $14, $07, $14, $07, $54, $06, $54, $2e, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2d, $10, $06, $14, $07, $14, $07, $54, $06, $54, $05, $54
- db $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $39, $14, $0e, $14, $09, $14, $0f, $14, $28, $14, $07, $14, $19, $14, $0c, $14, $1c, $14, $29, $14, $2a, $14, $2b, $14, $2c, $14, $39, $14, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54
- db $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54
- db $33, $14, $34, $14, $35, $14, $35, $54, $34, $54, $24, $54, $07, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54
- db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $20, $14, $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54, $20, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
+INCLUDE "data/sgb_border_map.asm"
SGBBorderPalettes:
- RGB 24, 06, 06
- RGB 24, 24, 26
- RGB 14, 15, 20
- RGB 04, 07, 10
+INCLUDE "data/palettes/sgb_border.pal"
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 18, 24, 18
- RGB 31, 26, 15
- RGB 26, 19, 10
- RGB 12, 07, 05
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 18, 06, 31
- RGB 31, 31, 29
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 12, 31, 06
- RGB 22, 26, 30
- RGB 16, 17, 21
- RGB 00, 03, 00
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
SGBBorder:
INCBIN "gfx/sgb/sgb_border.2bpp"
-Palettes_a8be:
+HPBarPals:
+; green
RGB 30, 26, 15
RGB 00, 23, 00
-
+; yellow
RGB 30, 26, 15
RGB 31, 21, 00
-
+; red
RGB 30, 26, 15
RGB 31, 00, 00
-Palettes_a8ca:
+ExpBarPalette:
+; blue
RGB 30, 26, 15
RGB 04, 17, 31
INCLUDE "gfx/pics/palette_pointers.asm"
-
INCLUDE "gfx/trainer_palettes.asm"
LoadMapPals:
@@ -2027,324 +1453,34 @@
RGB 00, 00, 00
TilesetBGPalette:
-INCLUDE "tilesets/bg.pal"
+INCLUDE "data/palettes/tileset_bg.pal"
MapObjectPals::
-INCLUDE "tilesets/ob.pal"
+INCLUDE "data/palettes/map_objects.pal"
RoofPals:
-INCLUDE "tilesets/roof.pal"
+INCLUDE "data/palettes/roofs.pal"
DiplomaPalettes:
- RGB 27, 31, 27
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 00, 00, 00
+INCLUDE "data/palettes/diploma.pal"
- RGB 27, 31, 27
- RGB 31, 07, 06
- RGB 20, 02, 03
- RGB 00, 00, 00
+PartyMenuOBPals:
+INCLUDE "data/palettes/party_menu.pal"
- RGB 27, 31, 27
- RGB 10, 31, 09
- RGB 04, 14, 01
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 08, 12, 31
- RGB 01, 04, 31
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 22, 16, 08
- RGB 13, 07, 01
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 15, 31, 31
- RGB 05, 17, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 11, 11, 19
- RGB 07, 07, 12
- RGB 00, 00, 00
-
-Palettes_b681:
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 10, 14, 20
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 12, 25, 01
- RGB 05, 14, 00
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 08, 12, 31
- RGB 01, 04, 31
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 24, 18, 07
- RGB 20, 15, 03
- RGB 07, 07, 07
-
Palettes_b6f1:
- RGB 31, 31, 31
- RGB 18, 23, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
+INCLUDE "data/palettes/b6f1.pal"
- RGB 31, 31, 31
- RGB 22, 00, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 25, 22, 00
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 26, 31
- RGB 18, 23, 31
- RGB 00, 00, 00
-
Palettes_b719:
- RGB 31, 31, 31
- RGB 07, 06, 03
- RGB 07, 06, 03
- RGB 07, 06, 03
+INCLUDE "data/palettes/b719.pal"
- RGB 31, 31, 31
- RGB 31, 31, 00
- RGB 26, 22, 00
- RGB 00, 00, 00
-
MalePokegearPals:
- RGB 28, 31, 20
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 00, 00, 00
+INCLUDE "data/palettes/pokegear.pal"
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 15, 07, 00
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 31, 15, 00
- RGB 15, 07, 00
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 00, 00, 31
- RGB 31, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 15, 07, 00
- RGB 31, 00, 00
-
FemalePokegearPals:
- RGB 28, 31, 20
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 00, 00, 00
+INCLUDE "data/palettes/pokegear_f.pal"
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 15, 07, 00
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 10, 18, 31
- RGB 13, 06, 31
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 00, 00, 31
- RGB 31, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 15, 07, 00
- RGB 31, 00, 00
-
Palettes_b789:
- RGB 31, 31, 31
- RGB 30, 22, 24
- RGB 18, 18, 18
- RGB 00, 00, 00
+INCLUDE "data/palettes/b789.pal"
- RGB 31, 31, 31
- RGB 10, 11, 31
- RGB 18, 18, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 31, 11
- RGB 18, 18, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 26, 05
- RGB 18, 18, 18
- RGB 00, 00, 00
-
SlotMachinePals:
- RGB 31, 31, 31
- RGB 24, 25, 28
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 10, 06
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 31, 00
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 15, 31
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 21, 31
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 11
- RGB 31, 31, 06
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 19, 29
- RGB 25, 22, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 10, 06
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 25, 01
- RGB 05, 14, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 25, 01
- RGB 30, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 06
- RGB 20, 15, 03
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 06
- RGB 15, 21, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 06
- RGB 20, 15, 03
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 24, 21
- RGB 31, 13, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
-
+INCLUDE "data/palettes/slot_machine.pal"
--- /dev/null
+++ b/engine/consume_held_item.asm
@@ -1,0 +1,80 @@
+ConsumeHeldItem: ; 27192
+ push hl
+ push de
+ push bc
+ ld a, [hBattleTurn]
+ and a
+ ld hl, OTPartyMon1Item
+ ld de, EnemyMonItem
+ ld a, [CurOTMon]
+ jr z, .theirturn
+ ld hl, PartyMon1Item
+ ld de, BattleMonItem
+ ld a, [CurBattleMon]
+
+.theirturn
+ push hl
+ push af
+ ld a, [de]
+ ld b, a
+ callba GetItemHeldEffect
+ ld hl, .ConsumableEffects
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .ok
+ inc a
+ jr nz, .loop
+ pop af
+ pop hl
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.ok
+ xor a
+ ld [de], a
+ pop af
+ pop hl
+ call GetPartyLocation
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .ourturn
+ ld a, [wBattleMode]
+ dec a
+ jr z, .done
+
+.ourturn
+ ld [hl], $0
+
+.done
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.ConsumableEffects: ; 271de
+; Consumable items?
+ db HELD_BERRY
+ db HELD_2
+ db HELD_5
+ db HELD_HEAL_POISON
+ db HELD_HEAL_FREEZE
+ db HELD_HEAL_BURN
+ db HELD_HEAL_SLEEP
+ db HELD_HEAL_PARALYZE
+ db HELD_HEAL_STATUS
+ db HELD_30
+ db HELD_ATTACK_UP
+ db HELD_DEFENSE_UP
+ db HELD_SPEED_UP
+ db HELD_SP_ATTACK_UP
+ db HELD_SP_DEFENSE_UP
+ db HELD_ACCURACY_UP
+ db HELD_EVASION_UP
+ db HELD_38
+ db HELD_71
+ db HELD_ESCAPE
+ db HELD_CRITICAL_UP
+ db -1
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -1,122 +1,8 @@
INCLUDE "includes.asm"
+
SECTION "Credits", ROMX
- const_def
- const SATOSHI_TAJIRI
- const JUNICHI_MASUDA
- const TETSUYA_WATANABE
- const SHIGEKI_MORIMOTO
- const SOUSUKE_TAMADA
- const TAKENORI_OOTA
- const KEN_SUGIMORI
- const MOTOFUMI_FUJIWARA
- const ATSUKO_NISHIDA
- const MUNEO_SAITO
- const SATOSHI_OOTA
- const RENA_YOSHIKAWA
- const JUN_OKUTANI
- const HIRONOBU_YOSHIDA
- const ASUKA_IWASHITA
- const GO_ICHINOSE
- const MORIKAZU_AOKI
- const KOHJI_NISHINO
- const KENJI_MATSUSHIMA
- const TOSHINOBU_MATSUMIYA
- const SATORU_IWATA
- const NOBUHIRO_SEYA
- const KAZUHITO_SEKINE
- const TETSUJI_OOTA
- const NCL_SUPER_MARIO_CLUB
- const SARUGAKUCHO
- const AKITO_MORI
- const TAKAHIRO_HARADA
- const TOHRU_HASHIMOTO
- const NOBORU_MATSUMOTO
- const TAKEHIRO_IZUSHI
- const TAKASHI_KAWAGUCHI
- const TSUNEKAZU_ISHIHARA
- const HIROSHI_YAMAUCHI
- const KENJI_SAIKI
- const ATSUSHI_TADA
- const NAOKO_KAWAKAMI
- const HIROYUKI_ZINNAI
- const KUNIMI_KAWAMURA
- const HISASHI_SOGABE
- const KEITA_KAGAYA
- const YOSHINORI_MATSUDA
- const HITOMI_SATO
- const TORU_OSAWA
- const TAKAO_OHARA
- const YUICHIRO_ITO
- const TAKAO_SHIMIZU
- const PLANNING
- const KEITA_NAKAMURA
- const HIROTAKA_UEMURA
- const HIROAKI_TAMURA
- const NORIAKI_SAKAGUCHI
- const MIYUKI_SATO
- const GAKUZI_NOMOTO
- const AI_MASHIMA
- const MIKIHIRO_ISHIKAWA
- const HIDEYUKI_HASHIMOTO
- const SATOSHI_YAMATO
- const SHIGERU_MIYAMOTO
- const GAIL_TILDEN
- const NOB_OGASAWARA
- const SETH_MCMAHILL
- const HIROTO_ALEXANDER
- const TERESA_LILLYGREN
- const THOMAS_HERTZOG
- const ERIK_JOHNSON
- const HIRO_NAKAMURA
- const TERUKI_MURAKAWA
- const KAZUYOSHI_OSAWA
- const KIMIKO_NAKAMICHI
- const CREDIT_END
- const CREDIT_UNKNOWN
- const STAFF
- const DIRECTOR
- const CODIRECTOR
- const PROGRAMMERS
- const GRAPHICS_DIRECTOR
- const MONSTER_DESIGN
- const GRAPHICS_DESIGN
- const CREDIT_MUSIC
- const CREDIT_SOUND_EFFECTS
- const GAME_DESIGN
- const GAME_SCENARIO
- const TOOL_PROGRAMMING
- const PARAMETRIC_DESIGN
- const SCRIPT_DESIGN
- const MAP_DATA_DESIGN
- const MAP_DESIGN
- const PRODUCT_TESTING
- const SPECIAL_THANKS
- const PRODUCERS
- const EXECUTIVE_PRODUCER
- const POKEMON_ANIMATION
- const POKEDEX_TEXT
- const MOBILE_PRJ_LEADER
- const MOBILE_SYSTEM_AD
- const MOBILE_STADIUM_DIR
- const COORDINATION
- const COPYRIGHT
- const US_VERSION_STAFF
- const US_COORDINATION
- const TEXT_TRANSLATION
- const PAAD_TESTING
-
-const_value SET -7
- const CREDITS_THEEND
- const CREDITS_WAIT2
- const CREDITS_MUSIC
- const CREDITS_CLEAR
- const CREDITS_SCENE
- const CREDITS_WAIT
- const CREDITS_END
-
-
Credits:: ; 109847
bit 6, b ; Hall Of Fame
ld a, $0
@@ -635,7 +521,6 @@
.UpdatePals:
; Update the first three colors in both palette buffers.
-
push af
push hl
add UnknBGPals % $100
@@ -657,72 +542,8 @@
call CopyBytes
ret
-
CreditsPalettes:
-
-; Pichu
- RGB 31, 00, 31
- RGB 31, 25, 00
- RGB 11, 14, 31
- RGB 07, 07, 07
-
- RGB 31, 05, 05
- RGB 11, 14, 31
- RGB 11, 14, 31
- RGB 31, 31, 31
-
- RGB 31, 05, 05
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 31, 31
-
-; Smoochum
- RGB 31, 31, 31
- RGB 31, 27, 00
- RGB 26, 06, 31
- RGB 07, 07, 07
-
- RGB 03, 13, 31
- RGB 20, 00, 24
- RGB 26, 06, 31
- RGB 31, 31, 31
-
- RGB 03, 13, 31
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 31, 31
-
-; Ditto
- RGB 31, 31, 31
- RGB 23, 12, 28
- RGB 31, 22, 00
- RGB 07, 07, 07
-
- RGB 03, 20, 00
- RGB 31, 22, 00
- RGB 31, 22, 00
- RGB 31, 31, 31
-
- RGB 03, 20, 00
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 31, 31
-
-; Igglybuff
- RGB 31, 31, 31
- RGB 31, 10, 31
- RGB 31, 00, 09
- RGB 07, 07, 07
-
- RGB 31, 14, 00
- RGB 31, 00, 09
- RGB 31, 00, 09
- RGB 31, 31, 31
-
- RGB 31, 14, 00
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
+INCLUDE "data/palettes/credits.pal"
; 109bca
Credits_LoadBorderGFX: ; 109bca (42:5bca)
@@ -791,521 +612,6 @@
; 109c24 (42:5c24)
-CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp"
-
-CreditsMonsGFX:
-CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp"
-CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp"
-CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp"
-CreditsIgglybuffGFX: INCBIN "gfx/credits/igglybuff.2bpp"
-
-
-CreditsScript: ; 10acb4
-
-; Clear the banner.
- db CREDITS_CLEAR
-
-; Pokemon Crystal Version Staff
- db STAFF, 1
-
- db CREDITS_WAIT, 8
-
-; Play the credits music.
- db CREDITS_MUSIC
-
- db CREDITS_WAIT2, 10
-
- db CREDITS_WAIT, 1
-
-; Update the banner.
- db CREDITS_SCENE, 0 ; Pichu
-
- db DIRECTOR, 1
- db SATOSHI_TAJIRI, 2
-
- db CREDITS_WAIT, 12
-
- db CODIRECTOR, 1
- db JUNICHI_MASUDA, 2
-
- db CREDITS_WAIT, 12
-
- db PROGRAMMERS, 0
- db SOUSUKE_TAMADA, 1
- db HISASHI_SOGABE, 2
- db KEITA_KAGAYA, 3
- db YOSHINORI_MATSUDA, 4
-
- db CREDITS_WAIT, 12
-
- db PROGRAMMERS, 0
- db SHIGEKI_MORIMOTO, 1
- db TETSUYA_WATANABE, 2
- db TAKENORI_OOTA, 3
-
- db CREDITS_WAIT, 12
-
- db GRAPHICS_DIRECTOR, 1
- db KEN_SUGIMORI, 2
-
- db CREDITS_WAIT, 12
-
- db MONSTER_DESIGN, 0
- db KEN_SUGIMORI, 1
- db MOTOFUMI_FUJIWARA, 2
- db SHIGEKI_MORIMOTO, 3
- db HIRONOBU_YOSHIDA, 4
- db SATOSHI_OOTA, 5
-
- db CREDITS_WAIT, 12
-
- db MONSTER_DESIGN, 0
- db ATSUKO_NISHIDA, 1
- db MUNEO_SAITO, 2
- db RENA_YOSHIKAWA, 3
-
- db CREDITS_WAIT, 12
-
- db POKEMON_ANIMATION, 1
- db HIRONOBU_YOSHIDA, 2
- db JUN_OKUTANI, 3
-
- db CREDITS_WAIT, 12
-
-; Clear the banner.
- db CREDITS_CLEAR
-
- db CREDITS_WAIT, 1
-
-; Update the banner.
- db CREDITS_SCENE, 1 ; Smoochum
-
- db GRAPHICS_DESIGN, 0
- db HIRONOBU_YOSHIDA, 1
- db JUN_OKUTANI, 2
- db ASUKA_IWASHITA, 3
- db TETSUYA_WATANABE, 4
-
- db CREDITS_WAIT, 12
-
- db CREDIT_MUSIC, 0
- db JUNICHI_MASUDA, 1
- db MORIKAZU_AOKI, 2
- db GO_ICHINOSE, 3
-
- db CREDITS_WAIT, 12
-
- db CREDIT_SOUND_EFFECTS, 0
- db MORIKAZU_AOKI, 1
- db JUNICHI_MASUDA, 2
- db TETSUYA_WATANABE, 3
-
- db CREDITS_WAIT, 12
-
- db GAME_DESIGN, 0
- db JUNICHI_MASUDA, 1
- db SHIGEKI_MORIMOTO, 2
- db KOHJI_NISHINO, 3
-
- db CREDITS_WAIT, 12
-
- db GAME_DESIGN, 0
- db TETSUJI_OOTA, 1
- db HITOMI_SATO, 2
- db KENJI_MATSUSHIMA, 3
-
- db CREDITS_WAIT, 12
-
- db GAME_SCENARIO, 0
- db JUNICHI_MASUDA, 1
- db KOHJI_NISHINO, 2
- db TOSHINOBU_MATSUMIYA, 3
- db KENJI_MATSUSHIMA, 4
-
- db CREDITS_WAIT, 12
-
- db POKEDEX_TEXT, 1
- db TOSHINOBU_MATSUMIYA, 2
-
- db CREDITS_WAIT, 12
-
- db TOOL_PROGRAMMING, 1
- db SOUSUKE_TAMADA, 2
- db TAKENORI_OOTA, 3
-
- db CREDITS_WAIT, 12
-
- db PARAMETRIC_DESIGN, 1
- db KOHJI_NISHINO, 2
-
- db CREDITS_WAIT, 12
-
-; Clear the banner.
- db CREDITS_CLEAR
-
- db CREDITS_WAIT, 1
-
-; Update the banner.
- db CREDITS_SCENE, 2 ; Ditto
-
- db SCRIPT_DESIGN, 1
- db TETSUJI_OOTA, 2
- db NOBUHIRO_SEYA, 3
-
- db CREDITS_WAIT, 12
-
- db MAP_DATA_DESIGN, 1
- db TETSUJI_OOTA, 2
- db KAZUHITO_SEKINE, 3
-
- db CREDITS_WAIT, 12
-
- db MAP_DESIGN, 0
- db TETSUJI_OOTA, 1
- db KOHJI_NISHINO, 2
- db NOBUHIRO_SEYA, 3
-
- db CREDITS_WAIT, 12
-
- db COORDINATION, 1
- db HIROYUKI_ZINNAI, 2
-
- db CREDITS_WAIT, 12
-
- db PRODUCERS, 0
- db SATORU_IWATA, 1
- db SATOSHI_YAMATO, 2
- db SHIGERU_MIYAMOTO, 3
-
- db CREDITS_WAIT, 12
-
- db PRODUCERS, 1
- db TSUNEKAZU_ISHIHARA, 2
-
- db CREDITS_WAIT, 12
-
-; Clear the banner.
- db CREDITS_CLEAR
-
- db CREDITS_WAIT, 1
-
-; Update the banner.
- db CREDITS_SCENE, 3 ; Igglybuff
-
- db US_VERSION_STAFF, 2
-
- db CREDITS_WAIT, 9
-
- db US_COORDINATION, 1
- db GAIL_TILDEN, 2
- db HIRO_NAKAMURA, 3
-
- db CREDITS_WAIT, 12
-
- db US_COORDINATION, 1
- db JUNICHI_MASUDA, 2
- db SETH_MCMAHILL, 3
-
- db CREDITS_WAIT, 12
-
- db US_COORDINATION, 1
- db HIROTO_ALEXANDER, 2
- db TERESA_LILLYGREN, 3
-
- db CREDITS_WAIT, 12
-
- db TEXT_TRANSLATION, 1
- db NOB_OGASAWARA, 2
-
- db CREDITS_WAIT, 12
-
- db PROGRAMMERS, 1
- db TERUKI_MURAKAWA, 2
- db KAZUYOSHI_OSAWA, 3
-
- db CREDITS_WAIT, 12
-
- db PAAD_TESTING, 1
- db THOMAS_HERTZOG, 2
- db ERIK_JOHNSON, 3
-
- db CREDITS_WAIT, 12
-
- db PRODUCT_TESTING, 0
- db PLANNING, 1
-
- db CREDITS_WAIT, 12
-
- db PRODUCT_TESTING, 0
- db KEITA_NAKAMURA, 1
- db HIROTAKA_UEMURA, 2
- db HIROAKI_TAMURA, 3
- db NORIAKI_SAKAGUCHI, 4
-
- db CREDITS_WAIT, 12
-
- db PRODUCT_TESTING, 0
- db NCL_SUPER_MARIO_CLUB, 1
- db KENJI_SAIKI, 2
- db ATSUSHI_TADA, 3
- db MIYUKI_SATO, 4
-
- db CREDITS_WAIT, 12
-
- db SPECIAL_THANKS, 0
- db KIMIKO_NAKAMICHI, 1
- db AKITO_MORI, 2
-
- db CREDITS_WAIT, 12
-
- db SPECIAL_THANKS, 0
- db GAKUZI_NOMOTO, 1
- db AI_MASHIMA, 2
- db KUNIMI_KAWAMURA, 3
-
- db CREDITS_WAIT, 12
-
- db SPECIAL_THANKS, 0
- db MIKIHIRO_ISHIKAWA, 1
- db HIDEYUKI_HASHIMOTO, 2
-
- db CREDITS_WAIT, 12
-
- db EXECUTIVE_PRODUCER, 1
- db HIROSHI_YAMAUCHI, 2
-
- db CREDITS_WAIT, 12
-
- db COPYRIGHT, 1
-
- db CREDITS_WAIT, 9
-
-; Display "The End" graphic.
- db CREDITS_THEEND
-
- db CREDITS_WAIT, 20
-
- db CREDITS_END
-; 10ae13
-
-
-CreditsStrings:
- dw .SatoshiTajiri
- dw .JunichiMasuda
- dw .TetsuyaWatanabe
- dw .ShigekiMorimoto
- dw .SousukeTamada
- dw .TakenoriOota
- dw .KenSugimori
- dw .MotofumiFujiwara
- dw .AtsukoNishida
- dw .MuneoSaito
- dw .SatoshiOota
- dw .RenaYoshikawa
- dw .JunOkutani
- dw .HironobuYoshida
- dw .AsukaIwashita
- dw .GoIchinose
- dw .MorikazuAoki
- dw .KohjiNishino
- dw .KenjiMatsushima
- dw .ToshinobuMatsumiya
- dw .SatoruIwata
- dw .NobuhiroSeya
- dw .KazuhitoSekine
- dw .TetsujiOota
- dw .NclSuperMarioClub
- dw .Sarugakucho
- dw .AkitoMori
- dw .TakahiroHarada
- dw .TohruHashimoto
- dw .NoboruMatsumoto
- dw .TakehiroIzushi
- dw .TakashiKawaguchi
- dw .TsunekazuIshihara
- dw .HiroshiYamauchi
- dw .KenjiSaiki
- dw .AtsushiTada
- dw .NaokoKawakami
- dw .HiroyukiZinnai
- dw .KunimiKawamura
- dw .HisashiSogabe
- dw .KeitaKagaya
- dw .YoshinoriMatsuda
- dw .HitomiSato
- dw .ToruOsawa
- dw .TakaoOhara
- dw .YuichiroIto
- dw .TakaoShimizu
- dw .Planning
- dw .KeitaNakamura
- dw .HirotakaUemura
- dw .HiroakiTamura
- dw .NoriakiSakaguchi
- dw .MiyukiSato
- dw .GakuziNomoto
- dw .AiMashima
- dw .MikihiroIshikawa
- dw .HideyukiHashimoto
- dw .SatoshiYamato
- dw .ShigeruMiyamoto
- dw .GailTilden
- dw .NobOgasawara
- dw .SethMcMahill
- dw .HirotoAlexander
- dw .TeresaLillygren
- dw .ThomasHertzog
- dw .ErikJohnson
- dw .HiroNakamura
- dw .TerukiMurakawa
- dw .KazuyoshiOsawa
- dw .KimikoNakamichi
- dw .End
- dw .Unknown
- dw .Staff
- dw .Director
- dw .CoDirector
- dw .Programmers
- dw .GraphicsDirector
- dw .MonsterDesign
- dw .GraphicsDesign
- dw .Music
- dw .SoundEffects
- dw .GameDesign
- dw .GameScenario
- dw .ToolProgramming
- dw .ParametricDesign
- dw .ScriptDesign
- dw .MapDataDesign
- dw .MapDesign
- dw .ProductTesting
- dw .SpecialThanks
- dw .Producers
- dw .ExecutiveProducer
- dw .PokemonAnimation
- dw .PokedexText
- dw .MobilePrjLeader
- dw .MobileSystemAd
- dw .MobileStadiumDir
- dw .Coordination
- dw .Copyright
- dw .UsVersionStaff
- dw .UsCoordination
- dw .TextTranslation
- dw .PaadTesting
-
-.SatoshiTajiri: db " SATOSHI TAJIRI@" ; "たじり さとし@"
-.JunichiMasuda: db " JUNICHI MASUDA@" ; "ますだ じゅんいち@"
-.TetsuyaWatanabe: db " TETSUYA WATANABE@" ; "わたなべ てつや@"
-.ShigekiMorimoto: db " SHIGEKI MORIMOTO@" ; "もりもと しげき@"
-.SousukeTamada: db " SOUSUKE TAMADA@" ; "たまだ そうすけ@"
-.TakenoriOota: db " TAKENORI OOTA@" ; "おおた たけのり@"
-.KenSugimori: db " KEN SUGIMORI@" ; "すぎもり けん@"
-.MotofumiFujiwara: db " MOTOFUMI FUJIWARA@" ; "ふじわら もとふみ@"
-.AtsukoNishida: db " ATSUKO NISHIDA@" ; "にしだ あつこ@"
-.MuneoSaito: db " MUNEO SAITO@" ; "さいとう むねお@"
-.SatoshiOota: db " SATOSHI OOTA@" ; "おおた さとし@"
-.RenaYoshikawa: db " RENA YOSHIKAWA@" ; "よしかわ れな@"
-.JunOkutani: db " JUN OKUTANI@" ; "おくたに じゅん@"
-.HironobuYoshida: db " HIRONOBU YOSHIDA@" ; "よしだ ひろのぶ@"
-.AsukaIwashita: db " ASUKA IWASHITA@" ; "いわした あすか@"
-.GoIchinose: db " GO ICHINOSE@" ; "いちのせ ごう@"
-.MorikazuAoki: db " MORIKAZU AOKI@" ; "あおき もりかず@"
-.KohjiNishino: db " KOHJI NISHINO@" ; "にしの こうじ@"
-.KenjiMatsushima: db " KENJI MATSUSHIMA@" ; "まつしま けんじ@"
-.ToshinobuMatsumiya: db "TOSHINOBU MATSUMIYA@" ; "まつみや としのぶ@"
-.SatoruIwata: db " SATORU IWATA@" ; "いわた さとる@"
-.NobuhiroSeya: db " NOBUHIRO SEYA@" ; "せや のぶひろ@"
-.KazuhitoSekine: db " KAZUHITO SEKINE@" ; "せきね かずひと@"
-.TetsujiOota: db " TETSUJI OOTA@" ; "おおた てつじ@"
-.NclSuperMarioClub: db "NCL SUPER MARIO CLUB@" ; "スーパーマりォクラブ@"
-.Sarugakucho: db " SARUGAKUCHO@" ; "さるがくちょう@"
-.AkitoMori: db " AKITO MORI@" ; "もり あきと@"
-.TakahiroHarada: db " TAKAHIRO HARADA@" ; "はらだ たかひろ@"
-.TohruHashimoto: db " TOHRU HASHIMOTO@" ; "はしもと とおる@"
-.NoboruMatsumoto: db " NOBORU MATSUMOTO@" ; "まつもと のぼる@"
-.TakehiroIzushi: db " TAKEHIRO IZUSHI@" ; "いずし たけひろ@"
-.TakashiKawaguchi: db " TAKASHI KAWAGUCHI@" ; "かわぐち たかし@"
-.TsunekazuIshihara: db " TSUNEKAZU ISHIHARA@" ; "いしはら つねかず@"
-.HiroshiYamauchi: db " HIROSHI YAMAUCHI@" ; "やまうち ひろし@"
-.KenjiSaiki: db " KENJI SAIKI@" ; "さいき けんじ@"
-.AtsushiTada: db " ATSUSHI TADA@" ; "ただ あつし@"
-.NaokoKawakami: db " NAOKO KAWAKAMI@" ; "かわかみ なおこ@"
-.HiroyukiZinnai: db " HIROYUKI ZINNAI@" ; "じんない ひろゆき@"
-.KunimiKawamura: db " KUNIMI KAWAMURA@" ; "かわむら くにみ@"
-.HisashiSogabe: db " HISASHI SOGABE@" ; "そがべ ひさし@"
-.KeitaKagaya: db " KEITA KAGAYA@" ; "かがや けいた@"
-.YoshinoriMatsuda: db " YOSHINORI MATSUDA@" ; "まつだ よしのり@"
-.HitomiSato: db " HITOMI SATO@" ; "さとう ひとみ@"
-.ToruOsawa: db " TORU OSAWA@" ; "おおさわ とおる@"
-.TakaoOhara: db " TAKAO OHARA@" ; "おおはら たかお@"
-.YuichiroIto: db " YUICHIRO ITO@" ; "いとう ゆういちろう@"
-.TakaoShimizu: db " TAKAO SHIMIZU@" ; "しみず たかお@"
-.Planning: db " SPECIAL PRODUCTION"
- next " PLANNING" ; "きかくかいはつぶ@"
- next " & DEVELOPMENT DEPT.@"
-.KeitaNakamura: db " KEITA NAKAMURA@" ; "なかむら けいた@"
-.HirotakaUemura: db " HIROTAKA UEMURA@" ; "うえむら ひろたか@"
-.HiroakiTamura: db " HIROAKI TAMURA@" ; "たむら ひろあき@"
-.NoriakiSakaguchi: db " NORIAKI SAKAGUCHI@" ; "さかぐち のりあき@"
-.MiyukiSato: db " MIYUKI SATO@" ; "さとう みゆき@"
-.GakuziNomoto: db " GAKUZI NOMOTO@" ; "のもと がくじ@"
-.AiMashima: db " AI MASHIMA@" ; "ましま あい@"
-.MikihiroIshikawa: db " MIKIHIRO ISHIKAWA@" ; "いしかわ みきひろ@"
-.HideyukiHashimoto: db " HIDEYUKI HASHIMOTO@" ; "はしもと ひでゆき@"
-.SatoshiYamato: db " SATOSHI YAMATO@" ; "やまと さとし@"
-.ShigeruMiyamoto: db " SHIGERU MIYAMOTO@" ; "みやもと しげる@"
-.End: db " END@" ; "おしまい@"
-.Unknown: db " ????????@" ; "????????@"
-.GailTilden: db " GAIL TILDEN@"
-.NobOgasawara: db " NOB OGASAWARA@"
-.SethMcMahill: db " SETH McMAHILL@"
-.HirotoAlexander: db " HIROTO ALEXANDER@"
-.TeresaLillygren: db " TERESA LILLYGREN@"
-.ThomasHertzog: db " THOMAS HERTZOG@"
-.ErikJohnson: db " ERIK JOHNSON@"
-.HiroNakamura: db " HIRO NAKAMURA@"
-.TerukiMurakawa: db " TERUKI MURAKAWA@"
-.KazuyoshiOsawa: db " KAZUYOSHI OSAWA@"
-.KimikoNakamichi: db " KIMIKO NAKAMICHI@"
-.Staff: db " #MON" ; "ポケットモンスター"
- next " CRYSTAL VERSION" ; " クりスタル バージョン"
- next " STAFF@" ; " スタッフ@"
-.Director: db " DIRECTOR@" ; "エグゼクティブ ディレクター@"
-.CoDirector: db " CO-DIRECTOR@" ; "ディレクター@"
-.Programmers: db " PROGRAMMERS@" ; "プログラム@"
-.GraphicsDirector: db " GRAPHICS DIRECTOR@" ; "グラフィック ディレクター@"
-.MonsterDesign: db " MONSTER DESIGN@" ; "# デザイン@"
-.GraphicsDesign: db " GRAPHICS DESIGN@" ; "グラフィック デザイン@"
-.Music: db " MUSIC@" ; "おんがく@"
-.SoundEffects: db " SOUND EFFECTS@" ; "サウンド エフ→クト@"
-.GameDesign: db " GAME DESIGN@" ; "ゲームデザイン@"
-.GameScenario: db " GAME SCENARIO@" ; "シナりォ@"
-.ToolProgramming: db " TOOL PROGRAMMING@" ; "ツール プログラム@"
-.ParametricDesign: db " PARAMETRIC DESIGN@" ; "パラメーター せってい@"
-.ScriptDesign: db " SCRIPT DESIGN@" ; "スクりプト せってい@"
-.MapDataDesign: db " MAP DATA DESIGN@" ; "マップデータ せってい@"
-.MapDesign: db " MAP DESIGN@" ; "マップ デザイン@"
-.ProductTesting: db " PRODUCT TESTING@" ; "デバッグプレイ@"
-.SpecialThanks: db " SPECIAL THANKS@" ; "スぺシャルサンクス@"
-.Producers: db " PRODUCERS@" ; "プロデューサー@"
-.ExecutiveProducer: db " EXECUTIVE PRODUCER@" ; "エグゼクティブ プロデューサー@"
-.PokemonAnimation: db " #MON ANIMATION@" ; "# アニメーション@"
-.PokedexText: db " #DEX TEXT@" ; "ずかん テキスト@"
-.MobilePrjLeader: db " MOBILE PRJ. LEADER@" ; "モバイルプロジ→クト りーダー@"
-.MobileSystemAd: db " MOBILE SYSTEM AD.@" ; "モバイル システムアドバイザー@"
-.MobileStadiumDir: db "MOBILE STADIUM DIR.@" ; "モバイルスタジアム ディレクター@"
-.Coordination: db " COORDINATION@" ; "コーディネーター@"
-.UsVersionStaff: db " US VERSION STAFF@"
-.UsCoordination: db " US COORDINATION@"
-.TextTranslation: db " TEXT TRANSLATION@"
-.PaadTesting: db " PAAD TESTING@"
-
-.Copyright:
- ; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o
- db $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c
- ; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c .
- next $60,$61,$62,$63,$64,$65,$66,$6d,$6e,$6f,$70,$71,$72, $7a,$7b,$7c
- ; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c .
- next $60,$61,$62,$63,$64,$65,$66,$73,$74,$75,$76,$77,$78,$79, $7a,$7b,$7c
- db "@"
+INCLUDE "gfx/credits.asm"
+INCLUDE "data/credits_script.asm"
+INCLUDE "data/credits_strings.asm"
--- /dev/null
+++ b/engine/crystal_colors.asm
@@ -1,0 +1,336 @@
+GetMysteryGift_MobileAdapterLayout: ; 4930f (mobile)
+ ld a, b
+ cp SCGB_RAM
+ jr nz, .not_ram
+ ld a, [SGBPredef]
+.not_ram
+ push af
+ callba ResetBGPals
+ pop af
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, .dw
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .done
+ push de
+ jp hl
+.done
+ ret
+; 49330 (12:5330)
+
+.dw ; 49330
+
+ dw MG_Mobile_Layout00
+ dw MG_Mobile_Layout01
+ dw MG_Mobile_Layout02
+; 49336
+
+MG_Mobile_Layout_FillBox: ; 49336
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+; 49346
+
+MG_Mobile_Layout_WipeAttrMap: ; 49346 (12:5346)
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ xor a
+ call ByteFill
+ ret
+
+MG_Mobile_Layout_LoadPals: ; 49351 (12:5351)
+ ld de, UnknBGPals
+ ld hl, Palette_493e1
+ ld bc, 5 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ ld hl, Palette_TextBG7
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+
+MG_Mobile_Layout00: ; 4936e (12:536e)
+ call MG_Mobile_Layout_LoadPals
+ call MG_Mobile_Layout_WipeAttrMap
+ call MG_Mobile_Layout_CreatePalBoxes
+ callba ApplyAttrMap
+ callba ApplyPals
+ ret
+
+MG_Mobile_Layout_CreatePalBoxes: ; 49384 (12:5384)
+ hlcoord 0, 0, AttrMap
+ lb bc, 4, 1
+ ld a, $1
+ call MG_Mobile_Layout_FillBox
+ lb bc, 2, 1
+ ld a, $2
+ call MG_Mobile_Layout_FillBox
+ lb bc, 6, 1
+ ld a, $3
+ call MG_Mobile_Layout_FillBox
+ hlcoord 1, 0, AttrMap
+ ld a, $1
+ lb bc, 3, 18
+ call MG_Mobile_Layout_FillBox
+ lb bc, 2, 18
+ ld a, $2
+ call MG_Mobile_Layout_FillBox
+ lb bc, 12, 18
+ ld a, $3
+ call MG_Mobile_Layout_FillBox
+ hlcoord 19, 0, AttrMap
+ lb bc, 4, 1
+ ld a, $1
+ call MG_Mobile_Layout_FillBox
+ lb bc, 2, 1
+ ld a, $2
+ call MG_Mobile_Layout_FillBox
+ lb bc, 6, 1
+ ld a, $3
+ call MG_Mobile_Layout_FillBox
+ hlcoord 0, 12, AttrMap
+ ld bc, 6 * SCREEN_WIDTH
+ ld a, $7
+ call ByteFill
+ ret
+; 493e1 (12:53e1)
+
+Palette_493e1: ; 493e1
+INCLUDE "data/palettes/mg_mobile.pal"
+; 49409
+
+LoadOW_BGPal7:: ; 49409
+ ld hl, Palette_TextBG7
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+; 49418
+
+Palette_TextBG7: ; 49418
+ RGB 31, 31, 31
+ RGB 08, 19, 28
+ RGB 05, 05, 16
+ RGB 00, 00, 00
+; 49420
+
+Function49420:: ; 49420 (12:5420)
+ ld hl, MansionPalette4
+ ld de, UnknBGPals palette PAL_BG_ROOF
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+; 4942f (12:542f)
+
+MG_Mobile_Layout01: ; 4942f
+ call MG_Mobile_Layout_LoadPals
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ ld hl, Palette_49478
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call MG_Mobile_Layout_WipeAttrMap
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ hlcoord 0, 14, AttrMap
+ ld bc, 4 * SCREEN_WIDTH
+ ld a, $7
+ call ByteFill
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_49464
+ call Function49480
+ jr .asm_49467
+
+.asm_49464
+ call Function49496
+
+.asm_49467
+ callba ApplyAttrMap
+ callba ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 49478
+
+Palette_49478: ; 49478
+ RGB 31, 31, 31
+ RGB 26, 31, 00
+ RGB 20, 16, 03
+ RGB 00, 00, 00
+; 49480
+
+Function49480: ; 49480
+ hlcoord 0, 0, AttrMap
+ lb bc, 4, SCREEN_WIDTH
+ ld a, $7
+ call MG_Mobile_Layout_FillBox
+ hlcoord 0, 2, AttrMap
+ ld a, $4
+ ld [hl], a
+ hlcoord 19, 2, AttrMap
+ ld [hl], a
+ ret
+; 49496
+
+Function49496: ; 49496
+ hlcoord 0, 0, AttrMap
+ lb bc, 2, SCREEN_WIDTH
+ ld a, $7
+ call MG_Mobile_Layout_FillBox
+ hlcoord 0, 1, AttrMap
+ ld a, $4
+ ld [hl], a
+ hlcoord 19, 1, AttrMap
+ ld [hl], a
+ ret
+; 494ac
+
+INCLUDE "tilesets/special_palettes.asm"
+
+MG_Mobile_Layout02: ; 49706
+ ld hl, Palette_49732
+ ld de, UnknBGPals
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ callba ApplyPals
+ call MG_Mobile_Layout_WipeAttrMap
+ callba ApplyAttrMap
+ ld hl, Palette_4973a
+ ld de, UnknOBPals
+ ld bc, 1 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ ret
+; 49732
+
+Palette_49732: ; 49732
+ RGB 31, 31, 31
+ RGB 23, 16, 07
+ RGB 23, 07, 07
+ RGB 03, 07, 20
+; 4973a
+
+Palette_4973a: ; 4973a
+ RGB 00, 00, 00
+ RGB 07, 05, 31
+ RGB 14, 18, 31
+ RGB 31, 31, 31
+; 49742
+
+Function49742: ; 49742
+ ld hl, Palette_49757
+ ld de, UnknBGPals
+ ld bc, $40
+ ld a, $5
+ call FarCopyWRAM
+ callba ApplyPals
+ ret
+; 49757
+
+Palette_49757: ; 49757
+INCLUDE "data/palettes/49757.pal"
+; 49797
+
+_InitMG_Mobile_LinkTradePalMap: ; 49797
+ hlcoord 0, 0, AttrMap
+ lb bc, 16, 2
+ ld a, $4
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ ldcoord_a 0, 1, AttrMap
+ ldcoord_a 0, 14, AttrMap
+ hlcoord 2, 0, AttrMap
+ lb bc, 8, 18
+ ld a, $5
+ call MG_Mobile_Layout_FillBox
+ hlcoord 2, 8, AttrMap
+ lb bc, 8, 18
+ ld a, $6
+ call MG_Mobile_Layout_FillBox
+ hlcoord 0, 16, AttrMap
+ lb bc, 2, SCREEN_WIDTH
+ ld a, $4
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ lb bc, 6, 1
+ hlcoord 6, 1, AttrMap
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ lb bc, 6, 1
+ hlcoord 17, 1, AttrMap
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ lb bc, 6, 1
+ hlcoord 6, 9, AttrMap
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ lb bc, 6, 1
+ hlcoord 17, 9, AttrMap
+ call MG_Mobile_Layout_FillBox
+ ld a, $2
+ hlcoord 2, 16, AttrMap
+ ld [hli], a
+ ld a, $7
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld a, $2
+ ld [hl], a
+ hlcoord 2, 17, AttrMap
+ ld a, $3
+ ld bc, 6
+ call ByteFill
+ ret
+; 49811
+
+LoadTradeRoomBGPals: ; 49811
+ ld hl, TradeRoomPalette
+ ld de, UnknBGPals palette PAL_BG_GREEN
+ ld bc, 6 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ callba ApplyPals
+ ret
+; 49826
+
+TradeRoomPalette: ; 49826
+INCLUDE "data/palettes/trade_room.pal"
+; 49856
+
+InitMG_Mobile_LinkTradePalMap: ; 49856
+ call _InitMG_Mobile_LinkTradePalMap
+ ret
+; 4985a
+
+Unknown_4985a: ; unreferenced
+ db $ab, $03, $57, $24, $ac, $0e, $13, $32
+ db $be, $30, $5b, $4c, $47, $60, $ed, $f2
+ db $ab, $03, $55, $26, $aa, $0a, $13, $3a
+ db $be, $28, $33, $24, $6e, $71, $df, $b0
+ db $a8, $00, $e5, $e0, $9a, $fc, $f4, $2c
+ db $fe, $4c, $a3, $5e, $c6, $3a, $ab, $4d
+ db $a8, $00, $b5, $b0, $de, $e8, $fc, $1c
+ db $ba, $66, $f7, $0e, $ba, $5e, $43, $bd
--- a/engine/crystal_intro.asm
+++ b/engine/crystal_intro.asm
@@ -341,29 +341,7 @@
; e47ac (39:47ac)
GameFreakLogoPalettes: ; e47ac
-; Ditto's color as it turns into the Game Freak logo.
-; Fade from pink to orange.
-; One color per step.
- RGB 23, 12, 28
- RGB 23, 12, 27
- RGB 23, 13, 26
- RGB 23, 13, 24
-
- RGB 24, 14, 22
- RGB 24, 14, 20
- RGB 24, 15, 18
- RGB 24, 15, 16
-
- RGB 25, 16, 14
- RGB 25, 16, 12
- RGB 25, 17, 10
- RGB 25, 17, 08
-
- RGB 26, 18, 06
- RGB 26, 18, 04
- RGB 26, 19, 02
- RGB 26, 19, 00
-
+INCLUDE "data/palettes/crystal_intro/gamefreak_logo.pal"
; e47cc
GameFreakLogo: ; e47cc
@@ -506,11 +484,11 @@
ld [rSVBK], a
ld hl, Palette_365ad
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_365ad
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -579,11 +557,11 @@
ld [rSVBK], a
ld hl, Palette_e5edd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e5edd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -645,11 +623,11 @@
ld [rSVBK], a
ld hl, Palette_365ad
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_365ad
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -752,12 +730,12 @@
ld hl, Palette_e5edd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e5edd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
@@ -910,11 +888,11 @@
ld [rSVBK], a
ld hl, Palette_365ad
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_365ad
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1037,11 +1015,11 @@
ld [rSVBK], a
ld hl, Palette_e5edd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e5edd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1146,11 +1124,11 @@
ld [rSVBK], a
ld hl, Palette_e77dd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e77dd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1220,11 +1198,11 @@
ld [rSVBK], a
ld hl, Palette_e6d6d
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e6d6d
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1294,11 +1272,11 @@
ld [rSVBK], a
ld hl, Palette_e77dd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e77dd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1464,11 +1442,11 @@
ld [rSVBK], a
ld hl, Palette_e679d
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e679d
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1572,47 +1550,7 @@
; e519c (39:519c)
.FadePals: ; e519c
-; Fade to white.
- RGB 24, 12, 09
- RGB 31, 31, 31
- RGB 12, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 19, 05
- RGB 31, 31, 31
- RGB 15, 05, 31
- RGB 07, 07, 07
-
- RGB 31, 21, 09
- RGB 31, 31, 31
- RGB 18, 09, 31
- RGB 11, 11, 11
-
- RGB 31, 23, 13
- RGB 31, 31, 31
- RGB 21, 13, 31
- RGB 15, 15, 15
-
- RGB 31, 25, 17
- RGB 31, 31, 31
- RGB 25, 17, 31
- RGB 19, 19, 19
-
- RGB 31, 27, 21
- RGB 31, 31, 31
- RGB 27, 21, 31
- RGB 23, 23, 23
-
- RGB 31, 29, 25
- RGB 31, 31, 31
- RGB 29, 26, 31
- RGB 27, 27, 27
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
+INCLUDE "data/palettes/crystal_intro/fade.pal"
; e51dc
CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
@@ -1685,7 +1623,7 @@
push hl
push bc
ld hl, BGPals
- ld bc, 4 * 16
+ ld bc, 8 palettes
xor a
call ByteFill
pop bc
@@ -2150,86 +2088,9 @@
; e5edd
Palette_e5edd: ; e5edd
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_1.pal"
+; e5f5d
- RGB 0, 4, 5
- RGB 1, 8, 5
- RGB 4, 12, 9
- RGB 24, 12, 9
-
- RGB 0, 4, 5
- RGB 9, 6, 8
- RGB 8, 16, 5
- RGB 5, 10, 4
-
- RGB 31, 31, 31
- RGB 9, 6, 8
- RGB 18, 9, 9
- RGB 13, 8, 9
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 2, 5, 22
- RGB 1, 5, 12
-
- RGB 31, 31, 31
- RGB 31, 10, 25
- RGB 31, 21, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 21, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
IntroUnownsGFX: ; e5f5d
INCBIN "gfx/intro/unowns.2bpp.lz"
; e634d
@@ -2263,86 +2124,9 @@
; e65ad
Palette_365ad: ; e65ad
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_2.pal"
+; e662d
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 10, 0, 10
- RGB 19, 0, 19
- RGB 31, 0, 31
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
IntroCrystalUnownsGFX: ; e662d
INCBIN "gfx/intro/crystal_unowns.2bpp.lz"
; e672d
@@ -2356,86 +2140,9 @@
; e679d
Palette_e679d: ; e679d
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
+INCLUDE "data/palettes/crystal_intro/intro_3.pal"
+; e681d
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
IntroSuicuneCloseGFX: ; e681d
INCBIN "gfx/intro/suicune_close.2bpp.lz"
; e6c3d
@@ -2449,86 +2156,9 @@
; e6d6d
Palette_e6d6d: ; e6d6d
- RGB 24, 12, 9
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_4.pal"
+; e6ded
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
-
- RGB 24, 12, 9
- RGB 12, 20, 31
- RGB 19, 8, 31
- RGB 0, 0, 0
-
- RGB 12, 20, 31
- RGB 8, 9, 31
- RGB 19, 8, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 12, 20, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
IntroSuicuneJumpGFX: ; e6ded
INCBIN "gfx/intro/suicune_jump.2bpp.lz"
; e72ad
@@ -2554,86 +2184,8 @@
; e77dd
Palette_e77dd: ; e77dd
- RGB 24, 12, 9
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_5.pal"
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 12, 0, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 21, 9, 0
- RGB 21, 9, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
IntroUnownBackGFX: ; e785d
INCBIN "gfx/intro/unown_back.2bpp.lz"
; e799d
@@ -2646,4 +2198,3 @@
INCBIN "gfx/intro/grass3.2bpp"
IntroGrass4GFX: ; e7a5d
INCBIN "gfx/intro/grass4.2bpp"
-
--- a/engine/debug.asm
+++ b/engine/debug.asm
@@ -159,7 +159,7 @@
ld [rSVBK], a
ld hl, Palette_819f4
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld a, $80
ld [rBGPI], a
@@ -193,93 +193,10 @@
; 819f4
Palette_819f4: ; 819f4
- ; white
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
+INCLUDE "data/palettes/debug/bg.pal"
- ; red
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- ; green
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 00, 00
-
- ; blue
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
Palette_81a34: ; 81a34
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- ; red
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- ; green
- RGB 31, 31, 31
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 00, 00
-
- ; blue
- RGB 31, 31, 31
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
+INCLUDE "data/palettes/debug/ob.pal"
; 81a74
Function81a74: ; 81a74
--- a/engine/decorations.asm
+++ b/engine/decorations.asm
@@ -1374,3 +1374,13 @@
ld a, c
ret
; 27092
+
+PadCoords_de: ; 27092
+ ld a, d
+ add 4
+ ld d, a
+ ld a, e
+ add 4
+ ld e, a
+ call GetBlockLocation
+ ret
--- /dev/null
+++ b/engine/dma_transfer.asm
@@ -1,0 +1,625 @@
+HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
+ ret
+; 10402d
+
+HDMATransferTileMapToWRAMBank3:: ; 10402d
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
+ ret
+; 104047
+
+HDMATransferAttrMapToWRAMBank3: ; 104047
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
+ ret
+; 104061
+
+ReloadMapPart:: ; 104061
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ pop af
+ ld [rVBK], a
+ ei
+
+ ret
+
+Mobile_ReloadMapPart: ; 104099
+ ld hl, ReloadMapPart ; useless
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_NoDI
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_NoDI
+ pop af
+ ld [rVBK], a
+ ei
+
+ ret
+; 1040d4
+
+; XXX
+ ld hl, .unreferenced_1040da
+ jp CallInSafeGFXMode
+
+.unreferenced_1040da
+ ld a, $1
+ ld [rVBK], a
+ ld a, $3
+ ld [rSVBK], a
+ ld de, w3_d800
+ ld a, [hBGMapAddress + 1]
+ ld [rHDMA1], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA2], a
+ ld a, d
+ ld [rHDMA3], a
+ ld a, e
+ ld [rHDMA4], a
+ ld a, $23
+ ld [hDMATransfer], a
+ call WaitDMATransfer
+ ret
+; 1040fb
+
+; XXX
+ ld hl, .unreferenced_104101
+ jp CallInSafeGFXMode
+
+.unreferenced_104101
+ ld a, $1
+ ld [rVBK], a
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, w3_d800
+ call HDMATransferToWRAMBank3
+ ret
+; 104110
+
+OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
+; OpenText
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with " "
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
+ pop af
+ ld [rVBK], a
+ ei
+ ret
+; 104148
+
+Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with $ff
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ ld c, $ff
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteMap
+
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ret
+; 104177
+
+CallInSafeGFXMode: ; 104177
+ ld a, [hBGMapMode]
+ push af
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld [hMapAnims], a
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [rVBK]
+ push af
+
+ call ._hl_
+
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [hMapAnims], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 10419c
+
+._hl_ ; 10419c
+ jp hl
+; 10419d
+
+
+HDMATransferToWRAMBank3: ; 10419d (41:419d)
+ call _LoadHDMAParameters
+ ld a, $23
+ ld [hDMATransfer], a
+
+WaitDMATransfer: ; 104a14
+.loop
+ call DelayFrame
+ ld a, [hDMATransfer]
+ and a
+ jr nz, .loop
+ ret
+
+HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait127Scanlines
+
+HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
+; $7b --> b
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait123Scanlines
+; 1041c1 (41:41c1)
+
+HDMATransfer_NoDI: ; 1041c1
+; HDMA transfer from hl to [hBGMapAddress]
+; [hBGMapAddress] --> de
+; 2 * SCREEN_HEIGHT --> c
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+
+ ; [rHDMA1, rHDMA2] = hl & $fff0
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0
+ ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
+ ld a, d
+ and $1f
+ ld [rHDMA3], a
+ ld a, e
+ and $f0
+ ld [rHDMA4], a
+ ; b = c | %10000000
+ ld a, c
+ dec c
+ or $80
+ ld b, a
+ ; d = $7f - c + 1
+ ld a, $7f
+ sub c
+ ld d, a
+ ; while [rLY] >= d: pass
+.loop1
+ ld a, [rLY]
+ cp d
+ jr nc, .loop1
+ ; while not [rSTAT] & 3: pass
+.loop2
+ ld a, [rSTAT]
+ and $3
+ jr z, .loop2
+ ; load the 5th byte of HDMA
+ ld a, b
+ ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.loop3
+ cp [hl]
+ jr z, .loop3
+ ld a, [hl]
+ dec c
+ jr nz, .loop3
+ ld hl, rHDMA5
+ res 7, [hl]
+ ret
+; 104205
+
+HDMATransfer_Wait123Scanlines:
+ ld b, $7b
+ jr _continue_HDMATransfer
+
+
+HDMATransfer_Wait127Scanlines:
+ ld b, $7f
+_continue_HDMATransfer:
+; a lot of waiting around for hardware registers
+ ; [rHDMA1, rHDMA2] = hl & $fff0
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0 ; high nybble
+ ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
+ ld a, d
+ and $1f ; lower 5 bits
+ ld [rHDMA3], a
+ ld a, e
+ and $f0 ; high nybble
+ ld [rHDMA4], a
+ ; e = c | %10000000
+ ld a, c
+ dec c
+ or $80
+ ld e, a
+ ; d = b - c + 1
+ ld a, b
+ sub c
+ ld d, a
+ ; while [rLY] >= d: pass
+.ly_loop
+ ld a, [rLY]
+ cp d
+ jr nc, .ly_loop
+
+ di
+ ; while [rSTAT] & 3: pass
+.rstat_loop_1
+ ld a, [rSTAT]
+ and $3
+ jr nz, .rstat_loop_1
+ ; while not [rSTAT] & 3: pass
+.rstat_loop_2
+ ld a, [rSTAT]
+ and $3
+ jr z, .rstat_loop_2
+ ; load the 5th byte of HDMA
+ ld a, e
+ ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.final_ly_loop
+ cp [hl]
+ jr z, .final_ly_loop
+ ld a, [hl]
+ dec c
+ jr nz, .final_ly_loop
+ ld hl, rHDMA5
+ res 7, [hl]
+ ei
+
+ ret
+; 10424e
+
+
+_LoadHDMAParameters: ; 10424e (41:424e)
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ ld [rHDMA2], a
+ ld a, [hBGMapAddress + 1]
+ and $1f
+ ld [rHDMA3], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA4], a
+ ret
+
+CutAndPasteTilemap: ; 10425f (41:425f)
+ ld c, " "
+ jr CutAndPasteMap
+
+CutAndPasteAttrMap: ; 104263 (41:4263)
+ ld c, $0
+
+CutAndPasteMap: ; 104265 (41:4265)
+; back up the value of c to hMapObjectIndexBuffer
+ ld a, [hMapObjectIndexBuffer]
+ push af
+ ld a, c
+ ld [hMapObjectIndexBuffer], a
+
+; for each row on the screen
+ ld c, SCREEN_HEIGHT
+.loop1
+; for each tile in the row
+ ld b, SCREEN_WIDTH
+.loop2
+; copy from de to hl
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .loop2
+
+; load the original value of c into hl 12 times
+ ld a, [hMapObjectIndexBuffer]
+ ld b, BG_MAP_WIDTH - SCREEN_WIDTH
+.loop3
+ ld [hli], a
+ dec b
+ jr nz, .loop3
+
+ dec c
+ jr nz, .loop1
+
+; restore the original value of hMapObjectIndexBuffer
+ pop af
+ ld [hMapObjectIndexBuffer], a
+ ret
+
+
+_Get2bpp:: ; 104284
+ ; 2bpp when [rLCDC] & $80
+ ; switch to WRAM bank 6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ push bc
+ push hl
+
+ ; Copy c tiles of the 2bpp from b:de to wScratchTileMap
+ ld a, b ; bank
+ ld l, c ; number of tiles
+ ld h, $0
+ ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld b, h
+ ld c, l
+ ld h, d ; address
+ ld l, e
+ ld de, wScratchTileMap
+ call FarCopyBytes
+
+ pop hl
+ pop bc
+
+ push bc
+ call DelayFrame
+ pop bc
+
+ ld d, h
+ ld e, l
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
+
+ ; restore the previous bank
+ pop af
+ ld [rSVBK], a
+ ret
+; 1042b2
+
+_Get1bpp:: ; 1042b2
+ ; 1bpp when [rLCDC] & $80
+.loop
+ ld a, c
+ cp $10
+ jp c, .bankswitch
+ jp z, .bankswitch
+ push bc
+ push hl
+ push de
+ ld c, $10
+ call .bankswitch
+ pop de
+ ld hl, $80
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ lb bc, 1, 0
+ add hl, bc
+ pop bc
+ ld a, c
+ sub $10
+ ld c, a
+ jr .loop
+; 1042d6
+
+.bankswitch ; 1042d6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ push bc
+ push hl
+
+ ld a, b
+ ld l, c
+ ld h, $0
+ add hl, hl ; multiply by 8
+ add hl, hl ; multiply by 8
+ add hl, hl ; multiply by 8
+ ld c, l
+ ld b, h
+ ld h, d
+ ld l, e
+ ld de, wScratchTileMap
+ call FarCopyBytesDouble_DoubleBankSwitch
+
+ pop hl
+ pop bc
+
+ push bc
+ call DelayFrame
+ pop bc
+
+ ld d, h
+ ld e, l
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 104303
+
+HDMATransfer_OnlyTopFourRows: ; 104303
+ ld hl, .Function
+ jp CallInSafeGFXMode
+; 104309
+
+.Function:
+ ld hl, wScratchTileMap
+ decoord 0, 0
+ call .Copy
+ ld hl, wScratchTileMap + $80
+ decoord 0, 0, AttrMap
+ call .Copy
+ ld a, $1
+ ld [rVBK], a
+ ld c, $8
+ ld hl, wScratchTileMap + $80
+ debgcoord 0, 0, VBGMap1
+ call HDMATransfer_Wait127Scanlines
+ ld a, $0
+ ld [rVBK], a
+ ld c, $8
+ ld hl, wScratchTileMap
+ debgcoord 0, 0, VBGMap1
+ call HDMATransfer_Wait127Scanlines
+ ret
+
+.Copy: ; 10433a (41:433a)
+ ld b, 4
+.outer_loop
+ ld c, SCREEN_WIDTH
+.inner_loop
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .inner_loop
+ ld a, l
+ add BG_MAP_WIDTH - SCREEN_WIDTH
+ ld l, a
+ ld a, h
+ adc $0
+ ld h, a
+ dec b
+ jr nz, .outer_loop
+ ret
+; 104350
--- /dev/null
+++ b/engine/empty_sram.asm
@@ -1,0 +1,19 @@
+EmptyAllSRAMBanks: ; 4cf1f
+ ld a, $0
+ call .EmptyBank
+ ld a, $1
+ call .EmptyBank
+ ld a, $2
+ call .EmptyBank
+ ld a, $3
+ call .EmptyBank
+ ret
+
+.EmptyBank: ; 4cf34
+ call GetSRAMBank
+ ld hl, SRAM_Begin
+ ld bc, SRAM_End - SRAM_Begin
+ xor a
+ call ByteFill
+ call CloseSRAM
+ ret
--- /dev/null
+++ b/engine/european_mail.asm
@@ -1,0 +1,129 @@
+IsMailEuropean: ; 1de5c8
+; return 1 if French
+; return 2 if German
+; return 3 if Italian
+; return 4 if Spanish
+; return 0 if none of the above
+ ld c, $0
+ ld hl, sPartyMon1MailAuthorNationality - sPartyMon1Mail
+ add hl, de
+ ld a, [hli]
+ cp "E"
+ ret nz
+ ld a, [hli]
+ inc c
+ cp "F"
+ ret z
+ inc c
+ cp "G"
+ ret z
+ inc c
+ cp "I"
+ ret z
+ inc c
+ cp "S"
+ ret z
+ ld c, $0
+ ret
+
+; The regular font.
+StandardEnglishFont: ; 1de5e6
+INCBIN "gfx/font/english.1bpp"
+
+; An extended font.
+FrenchGermanFont: ; 1de9e6
+INCBIN "gfx/font/french_german.1bpp"
+
+; An even more extended font.
+SpanishItalianFont: ; 1dede6
+INCBIN "gfx/font/spanish_italian.1bpp"
+
+HandleFrenchGermanMail: ; 1df1e6
+; called if mail is french or german
+; fix 's 't 'v
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hl]
+ cp $dc ; 's in french/german font
+ jr nz, .check_intermediate_chars
+ ld a, "'s"
+ jr .replace
+
+.check_intermediate_chars
+ sub "'s"
+ jr c, .dont_replace
+ cp "'v" - "'s" + 1
+ jr nc, .dont_replace
+ add $cd
+
+.replace
+ ld [hl], a
+
+.dont_replace
+ inc hl
+ dec b
+ jr nz, .loop
+ ret
+
+LireLeCourrierAnglais:
+DeutenEnglischenPost: ; 1df203
+; Cette fonction convertit certains des caractères anglais pour
+; leur équivalent dans le jeu de caractères français.
+; Diese Funktion wandelt bestimmte englische Zeichen, um ihre
+; Entsprechung in der Deutschen-Zeichensatz.
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hl]
+ cp "'s"
+ jr nz, .check_intermediate_chars
+ ld a, $dc
+ jr .replace
+
+.check_intermediate_chars
+ sub $cd
+ jr c, .dont_replace
+ cp "'v" - "'s" + 1
+ jr nc, .dont_replace
+ add "'s"
+
+.replace
+ ld [hl], a
+
+.dont_replace
+ inc hl
+ dec b
+ jr nz, .loop
+ ret
+
+HandleSpanishItalianMail: ; 1df220
+LeerCorreosIngleses:
+LeggiPostaInglese:
+; This function converts certain characters between
+; the English and Spanish/Italian character sets.
+; Esta función convierte ciertos caracteres entre
+; el juego de caracteres Inglés y Español.
+; Questa funzione converte alcuni caratteri tra
+; l'inglese e il set di caratteri italiani.
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hl]
+ and $f0
+ cp $d0
+ jr nz, .dont_replace
+ ld a, [hl]
+ add $8
+ and $f
+ or $d0
+ ld [hl], a
+
+.dont_replace
+ inc hl
+ dec b
+ jr nz, .loop
+ ret
--- /dev/null
+++ b/engine/experience.asm
@@ -1,0 +1,162 @@
+CalcLevel: ; 50e1b
+ ld a, [TempMonSpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld d, 1
+.next_level
+ inc d
+ ld a, d
+ cp (MAX_LEVEL + 1) % $100
+ jr z, .got_level
+ call CalcExpAtLevel
+ push hl
+ ld hl, TempMonExp + 2
+ ld a, [hProduct + 3]
+ ld c, a
+ ld a, [hld]
+ sub c
+ ld a, [hProduct + 2]
+ ld c, a
+ ld a, [hld]
+ sbc c
+ ld a, [hProduct + 1]
+ ld c, a
+ ld a, [hl]
+ sbc c
+ pop hl
+ jr nc, .next_level
+
+.got_level
+ dec d
+ ret
+
+CalcExpAtLevel: ; 50e47
+; (a/b)*n**3 + c*n**2 + d*n - e
+ ld a, [BaseGrowthRate]
+ add a
+ add a
+ ld c, a
+ ld b, 0
+ ld hl, GrowthRates
+ add hl, bc
+; Cube the level
+ call .LevelSquared
+ ld a, d
+ ld [hMultiplier], a
+ call Multiply
+
+; Multiply by a
+ ld a, [hl]
+ and $f0
+ swap a
+ ld [hMultiplier], a
+ call Multiply
+; Divide by b
+ ld a, [hli]
+ and $f
+ ld [hDivisor], a
+ ld b, 4
+ call Divide
+; Push the cubic term to the stack
+ ld a, [hQuotient + 0]
+ push af
+ ld a, [hQuotient + 1]
+ push af
+ ld a, [hQuotient + 2]
+ push af
+; Square the level and multiply by the lower 7 bits of c
+ call .LevelSquared
+ ld a, [hl]
+ and $7f
+ ld [hMultiplier], a
+ call Multiply
+; Push the absolute value of the quadratic term to the stack
+ ld a, [hProduct + 1]
+ push af
+ ld a, [hProduct + 2]
+ push af
+ ld a, [hProduct + 3]
+ push af
+ ld a, [hli]
+ push af
+; Multiply the level by d
+ xor a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ ld a, d
+ ld [hMultiplicand + 2], a
+ ld a, [hli]
+ ld [hMultiplier], a
+ call Multiply
+; Subtract e
+ ld b, [hl]
+ ld a, [hProduct + 3]
+ sub b
+ ld [hMultiplicand + 2], a
+ ld b, $0
+ ld a, [hProduct + 2]
+ sbc b
+ ld [hMultiplicand + 1], a
+ ld a, [hProduct + 1]
+ sbc b
+ ld [hMultiplicand], a
+; If bit 7 of c is set, c is negative; otherwise, it's positive
+ pop af
+ and $80
+ jr nz, .subtract
+; Add c*n**2 to (d*n - e)
+ pop bc
+ ld a, [hProduct + 3]
+ add b
+ ld [hMultiplicand + 2], a
+ pop bc
+ ld a, [hProduct + 2]
+ adc b
+ ld [hMultiplicand + 1], a
+ pop bc
+ ld a, [hProduct + 1]
+ adc b
+ ld [hMultiplicand], a
+ jr .done_quadratic
+
+.subtract
+; Subtract c*n**2 from (d*n - e)
+ pop bc
+ ld a, [hProduct + 3]
+ sub b
+ ld [hMultiplicand + 2], a
+ pop bc
+ ld a, [hProduct + 2]
+ sbc b
+ ld [hMultiplicand + 1], a
+ pop bc
+ ld a, [hProduct + 1]
+ sbc b
+ ld [hMultiplicand], a
+
+.done_quadratic
+; Add (a/b)*n**3 to (d*n - e +/- c*n**2)
+ pop bc
+ ld a, [hProduct + 3]
+ add b
+ ld [hMultiplicand + 2], a
+ pop bc
+ ld a, [hProduct + 2]
+ adc b
+ ld [hMultiplicand + 1], a
+ pop bc
+ ld a, [hProduct + 1]
+ adc b
+ ld [hMultiplicand], a
+ ret
+
+.LevelSquared: ; 50eed
+ xor a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ ld a, d
+ ld [hMultiplicand + 2], a
+ ld [hMultiplier], a
+ jp Multiply
+
+INCLUDE "data/growth_rates.asm"
--- /dev/null
+++ b/engine/flag_predef.asm
@@ -1,0 +1,70 @@
+FlagPredef: ; 4d7c1
+; Perform action b on flag c in flag array hl.
+; If checking a flag, check flag array d:hl unless d is 0.
+
+; For longer flag arrays, see FlagAction.
+
+ push hl
+ push bc
+
+; Divide by 8 to get the byte we want.
+ push bc
+ srl c
+ srl c
+ srl c
+ ld b, 0
+ add hl, bc
+ pop bc
+
+; Which bit we want from the byte
+ ld a, c
+ and 7
+ ld c, a
+
+; Shift left until we can mask the bit
+ ld a, 1
+ jr z, .shifted
+.shift
+ add a
+ dec c
+ jr nz, .shift
+.shifted
+ ld c, a
+
+; What are we doing to this flag?
+ dec b
+ jr z, .set ; 1
+ dec b
+ jr z, .check ; 2
+
+.reset
+ ld a, c
+ cpl
+ and [hl]
+ ld [hl], a
+ jr .done
+
+.set
+ ld a, [hl]
+ or c
+ ld [hl], a
+ jr .done
+
+.check
+ ld a, d
+ cp 0
+ jr nz, .farcheck
+
+ ld a, [hl]
+ and c
+ jr .done
+
+.farcheck
+ call GetFarByte
+ and c
+
+.done
+ pop bc
+ pop hl
+ ld c, a
+ ret
--- a/engine/fruit_trees.asm
+++ b/engine/fruit_trees.asm
@@ -103,7 +103,7 @@
; 44097
-INCLUDE "data/fruit_tree_items.asm"
+INCLUDE "data/items/fruit_trees.asm"
FruitBearingTreeText: ; 440b5
--- /dev/null
+++ b/engine/gbc_only.asm
@@ -1,0 +1,149 @@
+GBCOnlyScreen: ; 4ea82
+
+ ld a, [hCGB]
+ and a
+ ret nz
+
+ ld de, MUSIC_NONE
+ call PlayMusic
+
+ call ClearTileMap
+
+ ld hl, GBCOnlyGFX
+ ld de, $d000
+ ld a, [rSVBK]
+ push af
+ ld a, 0
+ ld [rSVBK], a
+ call Decompress
+ pop af
+ ld [rSVBK], a
+
+ ld de, $d000
+ ld hl, VTiles2
+ lb bc, BANK(GBCOnlyGFX), $54
+ call Get2bpp
+
+ ld de, Font
+ ld hl, VTiles1
+ lb bc, BANK(Font), $80
+ call Get1bpp
+
+ call DrawGBCOnlyScreen
+
+ call WaitBGMap
+
+; better luck next time
+.loop
+ call DelayFrame
+ jr .loop
+; 4eac5
+
+
+DrawGBCOnlyScreen: ; 4eac5
+
+ call DrawGBCOnlyBorder
+
+ ; Pokemon
+ hlcoord 3, 2
+ ld b, 14
+ ld c, 4
+ ld a, $8
+ call DrawGBCOnlyGraphic
+
+ ; Crystal
+ hlcoord 5, 6
+ ld b, 10
+ ld c, 2
+ ld a, $40
+ call DrawGBCOnlyGraphic
+
+ ld de, GBCOnlyString
+ hlcoord 1, 10
+ call PlaceString
+
+ ret
+; 4eaea
+
+
+DrawGBCOnlyBorder: ; 4eaea
+
+ hlcoord 0, 0
+ ld [hl], 0 ; top-left
+
+ inc hl
+ ld a, 1 ; top
+ call .FillRow
+
+ ld [hl], 2 ; top-right
+
+ hlcoord 0, 1
+ ld a, 3 ; left
+ call .FillColumn
+
+ hlcoord 19, 1
+ ld a, 4 ; right
+ call .FillColumn
+
+ hlcoord 0, 17
+ ld [hl], 5 ; bottom-left
+
+ inc hl
+ ld a, 6 ; bottom
+ call .FillRow
+
+ ld [hl], 7 ; bottom-right
+ ret
+; 4eb15
+
+.FillRow: ; 4eb15
+ ld c, SCREEN_WIDTH - 2
+.next_column
+ ld [hli], a
+ dec c
+ jr nz, .next_column
+ ret
+; 4eb1c
+
+.FillColumn: ; 4eb1c
+ ld de, SCREEN_WIDTH
+ ld c, SCREEN_HEIGHT - 2
+.next_row
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .next_row
+ ret
+; 4eb27
+
+
+DrawGBCOnlyGraphic: ; 4eb27
+ ld de, SCREEN_WIDTH
+.y
+ push bc
+ push hl
+.x
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .x
+ pop hl
+ add hl, de
+ pop bc
+ dec c
+ jr nz, .y
+ ret
+; 4eb38
+
+
+GBCOnlyString: ; 4eb38
+ db "This Game Pak is"
+ next "designed only for"
+ next "use on the"
+ next "Game Boy Color.@"
+; 4eb76
+
+
+GBCOnlyGFX: ; 4eb76
+INCBIN "gfx/sgb/gbc_only.2bpp.lz"
+; 4f0bc
--- /dev/null
+++ b/engine/get_breedmon_growth.asm
@@ -1,0 +1,27 @@
+GetBreedMon1LevelGrowth: ; e698
+ ld hl, wBreedMon1Stats
+ ld de, TempMon
+ ld bc, BOXMON_STRUCT_LENGTH
+ call CopyBytes
+ callab CalcLevel
+ ld a, [wBreedMon1Level]
+ ld b, a
+ ld a, d
+ ld e, a
+ sub b
+ ld d, a
+ ret
+
+GetBreedMon2LevelGrowth: ; e6b3
+ ld hl, wBreedMon2Stats
+ ld de, TempMon
+ ld bc, BOXMON_STRUCT_LENGTH
+ call CopyBytes
+ callab CalcLevel
+ ld a, [wBreedMon2Level]
+ ld b, a
+ ld a, d
+ ld e, a
+ sub b
+ ld d, a
+ ret
--- a/engine/healmachineanim.asm
+++ /dev/null
@@ -1,265 +1,0 @@
-HealMachineAnim: ; 12324
- ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon.
- ld a, [PartyCount]
- and a
- ret z
- ; The location of the healing machine relative to the player is stored in ScriptVar.
- ; 0: Up and left (Pokemon Center)
- ; 1: Left (Elm's Lab)
- ; 2: Up (Hall of Fame)
- ld a, [ScriptVar]
- ld [Buffer1], a
- ld a, [rOBP1]
- ld [Buffer2], a
- call .DoJumptableFunctions
- ld a, [Buffer2]
- call DmgToCgbObjPal1
- ret
-; 1233e
-
-.DoJumptableFunctions: ; 1233e
- xor a
- ld [Buffer3], a
-.jumpable_loop
- ld a, [Buffer1]
- ld e, a
- ld d, 0
- ld hl, .Pointers
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [Buffer3]
- ld e, a
- inc a
- ld [Buffer3], a
- add hl, de
- ld a, [hl]
- cp 5
- jr z, .finish
- ld hl, .Jumptable
- rst JumpTable
- jr .jumpable_loop
-
-.finish
- ret
-; 12365
-
-.Pointers: ; 12365
- dw .Pokecenter
- dw .ElmLab
- dw .HallOfFame
-; 1236b
-
-.Pokecenter: ; 1236b
- db 0, 1, 3, 5
-.ElmLab: ; 1236f
- db 0, 1, 3, 5
-.HallOfFame: ; 12373
- db 0, 2, 4, 5
-; 12377
-
-.Jumptable: ; 12377
- dw .LoadGFX
- dw .PC_LoadBallsOntoMachine
- dw .HOF_LoadBallsOntoMachine
- dw .PlayHealMusic
- dw .HOF_PlaySFX
- dw .dummy_5 ; never encountered
-; 12383
-
-.LoadGFX: ; 12383
- call .LoadPalettes
- ld de, .HealMachineGFX
- ld hl, VTiles0 tile $7c
- lb bc, BANK(.HealMachineGFX), $2
- call Request2bpp
- ret
-; 12393
-
-.PC_LoadBallsOntoMachine: ; 12393
- ld hl, Sprites + $80
- ld de, .PC_ElmsLab_OAM
- call .PlaceHealingMachineTile
- call .PlaceHealingMachineTile
- jr .LoadBallsOntoMachine
-
-.HOF_LoadBallsOntoMachine: ; 123a1
- ld hl, Sprites + $80
- ld de, .HOF_OAM
-
-.LoadBallsOntoMachine: ; 123a7
- ld a, [PartyCount]
- ld b, a
-.party_loop
- call .PlaceHealingMachineTile
- push de
- ld de, SFX_SECOND_PART_OF_ITEMFINDER
- call PlaySFX
- pop de
- ld c, 30
- call DelayFrames
- dec b
- jr nz, .party_loop
- ret
-; 123bf
-
-.PlayHealMusic: ; 123bf
- ld de, MUSIC_HEAL
- call PlayMusic
- jp .FlashPalettes8Times
-; 123c8
-
-.HOF_PlaySFX: ; 123c8
- ld de, SFX_GAME_FREAK_LOGO_GS
- call PlaySFX
- call .FlashPalettes8Times
- call WaitSFX
- ld de, SFX_BOOT_PC
- call PlaySFX
- ret
-; 123db
-
-.dummy_5 ; 123db
- ret
-; 123dc
-
-.PC_ElmsLab_OAM: ; 123dc
- dsprite 4, 0, 4, 2, $7c, $16
- dsprite 4, 0, 4, 6, $7c, $16
- dsprite 4, 6, 4, 0, $7d, $16
- dsprite 4, 6, 5, 0, $7d, $36 ; xflip
- dsprite 5, 3, 4, 0, $7d, $16
- dsprite 5, 3, 5, 0, $7d, $36 ; xflip
- dsprite 6, 0, 4, 0, $7d, $16
- dsprite 6, 0, 5, 0, $7d, $36 ; xflip
-; 123fc
-
-.HealMachineGFX: ; 123fc
-INCBIN "gfx/overworld/heal_machine.2bpp"
-; 1241c
-
-.HOF_OAM: ; 1241c
- dsprite 7, 4, 10, 1, $7d, $16
- dsprite 7, 4, 10, 6, $7d, $16
- dsprite 7, 3, 9, 5, $7d, $16
- dsprite 7, 3, 11, 2, $7d, $16
- dsprite 7, 1, 9, 1, $7d, $16
- dsprite 7, 1, 11, 5, $7d, $16
-; 12434
-
-.LoadPalettes: ; 12434
- call IsCGB
- jr nz, .cgb
- ld a, %11100000
- ld [rOBP1], a
- ret
-
-.cgb
- ld hl, .palettes
- ld de, OBPals + 8 * 6
- ld bc, 8
- ld a, $5
- call FarCopyWRAM
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 12451
-
-.palettes ; 12451
- RGB 31, 31, 31
- RGB 31, 19, 10
- RGB 31, 07, 01
- RGB 00, 00, 00
-; 12459
-
-.FlashPalettes8Times: ; 12459
- ld c, $8
-.palette_loop
- push bc
- call .FlashPalettes
- ld c, 10
- call DelayFrames
- pop bc
- dec c
- jr nz, .palette_loop
- ret
-; 12469
-
-.FlashPalettes: ; 12469
- call IsCGB
- jr nz, .go
- ld a, [rOBP1]
- xor %00101000
- ld [rOBP1], a
- ret
-
-.go
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld hl, OBPals + 8 * 6
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- ld c, $3
-.palette_loop_2
- ld a, [hli]
- ld e, a
- ld a, [hld]
- ld d, a
- dec hl
- ld a, d
- ld [hld], a
- ld a, e
- ld [hli], a
- inc hl
- inc hl
- inc hl
- dec c
- jr nz, .palette_loop_2
- pop de
- dec hl
- ld a, d
- ld [hld], a
- ld a, e
- ld [hl], a
-
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 124a3
-
-.PlaceHealingMachineTile: ; 124a3
- push bc
- ld a, [Buffer1]
- bcpixel 2, 4
- cp $1 ; ElmsLab
- jr z, .okay
- bcpixel 0, 0
-
-.okay
- ld a, [de]
- add c
- inc de
- ld [hli], a
- ld a, [de]
- add b
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- pop bc
- ret
-; 124c1
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -20,7 +20,7 @@
ret
; 4802f
-INCLUDE "misc/mobile_12.asm"
+INCLUDE "mobile/mobile_12.asm"
InitGender: ; 48dcb (12:4dcb)
call InitGenderScreen
--- /dev/null
+++ b/engine/init_hof_credits.asm
@@ -1,0 +1,79 @@
+InitDisplayForHallOfFame: ; 4e881
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ hlbgcoord 0, 0
+ ld bc, VBGMap1 - VBGMap0
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ call EnableLCD
+ ld hl, .SavingRecordDontTurnOff
+ call PrintText
+ call WaitBGMap2
+ call SetPalettes
+ ret
+
+.SavingRecordDontTurnOff: ; 0x4e8bd
+ ; SAVING RECORD… DON'T TURN OFF!
+ text_jump UnknownText_0x1bd39e
+ db "@"
+
+InitDisplayForRedCredits: ; 4e8c2
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ hlbgcoord 0, 0
+ ld bc, VBGMap1 - VBGMap0
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ ld hl, UnknBGPals
+ ld c, 4 tiles
+.load_white_palettes
+ ld a, (palred 31 + palgreen 31 + palblue 31) % $100
+ ld [hli], a
+ ld a, (palred 31 + palgreen 31 + palblue 31) / $100
+ ld [hli], a
+ dec c
+ jr nz, .load_white_palettes
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ call EnableLCD
+ call WaitBGMap2
+ call SetPalettes
+ ret
+
+ResetDisplayBetweenHallOfFameMons: ; 4e906
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, wDecompressScratch
+ ld bc, wScratchAttrMap - wDecompressScratch
+ ld a, " "
+ call ByteFill
+ hlbgcoord 0, 0
+ ld de, wDecompressScratch
+ ld b, 0
+ ld c, 4 tiles
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
--- /dev/null
+++ b/engine/init_list.asm
@@ -1,0 +1,54 @@
+InitList: ; 50db9
+ ld a, [wInitListType]
+
+ cp INIT_ENEMYOT_LIST
+ jr nz, .check_party_ot_name
+ ld hl, OTPartyCount
+ ld de, OTPartyMonOT
+ ld a, ENEMY_OT_NAME
+ jr .done
+
+.check_party_ot_name
+ cp INIT_PLAYEROT_LIST
+ jr nz, .check_mon_name
+ ld hl, PartyCount
+ ld de, PartyMonOT
+ ld a, PARTY_OT_NAME
+ jr .done
+
+.check_mon_name
+ cp INIT_MON_LIST
+ jr nz, .check_item_name
+ ld hl, CurMart
+ ld de, PokemonNames
+ ld a, PKMN_NAME
+ jr .done
+
+.check_item_name
+ cp INIT_BAG_ITEM_LIST
+ jr nz, .check_ob_item_name
+ ld hl, NumItems
+ ld de, ItemNames
+ ld a, ITEM_NAME
+ jr .done
+
+.check_ob_item_name
+ ld hl, CurMart
+ ld de, ItemNames
+ ld a, ITEM_NAME
+.done
+ ld [wNamedObjectTypeBuffer], a
+ ld a, l
+ ld [wListPointer], a
+ ld a, h
+ ld [wListPointer + 1], a
+ ld a, e
+ ld [wUnusedD102], a
+ ld a, d
+ ld [wUnusedD102 + 1], a
+ ld bc, ItemAttributes
+ ld a, c
+ ld [wItemAttributesPtr], a
+ ld a, b
+ ld [wItemAttributesPtr + 1], a
+ ret
--- /dev/null
+++ b/engine/init_map.asm
@@ -1,0 +1,103 @@
+ReanchorBGMap_NoOAMUpdate:: ; 6454
+ call DelayFrame
+ ld a, [hOAMUpdate]
+ push af
+
+ ld a, $1
+ ld [hOAMUpdate], a
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+
+ call .ReanchorBGMap
+
+ pop af
+ ld [hBGMapMode], a
+ pop af
+ ld [hOAMUpdate], a
+ ld hl, VramState
+ set 6, [hl]
+ ret
+
+.ReanchorBGMap:
+ xor a
+ ld [hLCDCPointer], a
+ ld [hBGMapMode], a
+ ld a, $90
+ ld [hWY], a
+ call OverworldTextModeSwitch
+ ld a, VBGMap1 / $100
+ call .LoadBGMapAddrIntoHRAM
+ call _OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ callba LoadOW_BGPal7
+ callba ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ld [hWY], a
+ callba HDMATransfer_FillBGMap0WithBlack ; no need to farcall
+ ld a, VBGMap0 / $100
+ call .LoadBGMapAddrIntoHRAM
+ xor a
+ ld [wBGMapAnchor], a
+ ld a, VBGMap0 / $100
+ ld [wBGMapAnchor + 1], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ call ApplyBGMapAnchorToObjects
+ ret
+
+.LoadBGMapAddrIntoHRAM: ; 64b9
+ ld [hBGMapAddress + 1], a
+ xor a
+ ld [hBGMapAddress], a
+ ret
+
+LoadFonts_NoOAMUpdate:: ; 64bf
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+
+ call .LoadGFX
+
+ pop af
+ ld [hOAMUpdate], a
+ ret
+
+.LoadGFX:
+ call LoadFontsExtra
+ ld a, $90
+ ld [hWY], a
+ call SafeUpdateSprites
+ call LoadStandardFont
+ ret
+
+HDMATransfer_FillBGMap0WithBlack: ; 64db
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ ld a, "<BLACK>" ; $60
+ ld hl, wDecompressScratch
+ ld bc, wScratchAttrMap - wDecompressScratch
+ call ByteFill
+ ld a, wDecompressScratch / $100
+ ld [rHDMA1], a
+ ld a, wDecompressScratch % $100
+ ld [rHDMA2], a
+ ld a, (VBGMap0 % $8000) / $100
+ ld [rHDMA3], a
+ ld a, (VBGMap0 % $8000) % $100
+ ld [rHDMA4], a
+ ld a, $3f
+ ld [hDMATransfer], a
+ call DelayFrame
+
+ pop af
+ ld [rSVBK], a
+ ret
--- /dev/null
+++ b/engine/item_effects.asm
@@ -1,0 +1,3318 @@
+_DoItemEffect:: ; e722
+ ld a, [CurItem]
+ ld [wd265], a
+ call GetItemName
+ call CopyName1
+ ld a, 1
+ ld [wItemEffectSucceeded], a
+ ld a, [CurItem]
+ dec a
+ ld hl, ItemEffects
+ rst JumpTable
+ ret
+; e73c
+
+
+ItemEffects: ; e73c
+; entries correspond to item ids (see constants/item_constants.asm)
+ dw MasterBall
+ dw UltraBall
+ dw Brightpowder
+ dw GreatBall
+ dw PokeBall
+ dw TownMap
+ dw Bicycle
+ dw MoonStone
+ dw Antidote
+ dw BurnHeal
+ dw IceHeal
+ dw Awakening
+ dw ParlyzHeal
+ dw FullRestore
+ dw MaxPotion
+ dw HyperPotion
+ dw SuperPotion
+ dw Potion
+ dw EscapeRope
+ dw Repel
+ dw MaxElixer
+ dw FireStone
+ dw Thunderstone
+ dw WaterStone
+ dw Item19
+ dw HPUp
+ dw Protein
+ dw Iron
+ dw Carbos
+ dw LuckyPunch
+ dw Calcium
+ dw RareCandy
+ dw XAccuracy
+ dw LeafStone
+ dw MetalPowder
+ dw Nugget
+ dw PokeDoll
+ dw FullHeal
+ dw Revive
+ dw MaxRevive
+ dw GuardSpec
+ dw SuperRepel
+ dw MaxRepel
+ dw DireHit
+ dw Item2D
+ dw FreshWater
+ dw SodaPop
+ dw Lemonade
+ dw XAttack
+ dw Item32
+ dw XDefend
+ dw XSpeed
+ dw XSpecial
+ dw CoinCase
+ dw Itemfinder
+ dw PokeFlute
+ dw ExpShare
+ dw OldRod
+ dw GoodRod
+ dw SilverLeaf
+ dw SuperRod
+ dw PPUp
+ dw Ether
+ dw MaxEther
+ dw Elixer
+ dw RedScale
+ dw Secretpotion
+ dw SSTicket
+ dw MysteryEgg
+ dw ClearBell
+ dw SilverWing
+ dw MoomooMilk
+ dw QuickClaw
+ dw Psncureberry
+ dw GoldLeaf
+ dw SoftSand
+ dw SharpBeak
+ dw Przcureberry
+ dw BurntBerry
+ dw IceBerry
+ dw PoisonBarb
+ dw KingsRock
+ dw BitterBerry
+ dw MintBerry
+ dw RedApricorn
+ dw Tinymushroom
+ dw BigMushroom
+ dw Silverpowder
+ dw BluApricorn
+ dw Item5A
+ dw AmuletCoin
+ dw YlwApricorn
+ dw GrnApricorn
+ dw CleanseTag
+ dw MysticWater
+ dw Twistedspoon
+ dw WhtApricorn
+ dw Blackbelt
+ dw BlkApricorn
+ dw Item64
+ dw PnkApricorn
+ dw Blackglasses
+ dw Slowpoketail
+ dw PinkBow
+ dw Stick
+ dw SmokeBall
+ dw Nevermeltice
+ dw Magnet
+ dw Miracleberry
+ dw Pearl
+ dw BigPearl
+ dw Everstone
+ dw SpellTag
+ dw Ragecandybar
+ dw GsBall
+ dw BlueCard
+ dw MiracleSeed
+ dw ThickClub
+ dw FocusBand
+ dw Item78
+ dw Energypowder
+ dw EnergyRoot
+ dw HealPowder
+ dw RevivalHerb
+ dw HardStone
+ dw LuckyEgg
+ dw CardKey
+ dw MachinePart
+ dw EggTicket
+ dw LostItem
+ dw Stardust
+ dw StarPiece
+ dw BasementKey
+ dw Pass
+ dw Item87
+ dw Item88
+ dw Item89
+ dw Charcoal
+ dw BerryJuice
+ dw ScopeLens
+ dw Item8D
+ dw Item8E
+ dw MetalCoat
+ dw DragonFang
+ dw Item91
+ dw Leftovers
+ dw Item93
+ dw Item94
+ dw Item95
+ dw Mysteryberry
+ dw DragonScale
+ dw BerserkGene
+ dw Item99
+ dw Item9A
+ dw Item9B
+ dw SacredAsh
+ dw HeavyBall
+ dw FlowerMail
+ dw LevelBall
+ dw LureBall
+ dw FastBall
+ dw ItemA2
+ dw LightBall
+ dw FriendBall
+ dw MoonBall
+ dw LoveBall
+ dw NormalBox
+ dw GorgeousBox
+ dw SunStone
+ dw PolkadotBow
+ dw ItemAB
+ dw UpGrade
+ dw Berry
+ dw GoldBerry
+ dw Squirtbottle
+ dw ItemB0
+ dw ParkBall
+ dw RainbowWing
+ dw ItemB3
+; e8a2
+
+
+MasterBall:
+UltraBall:
+GreatBall:
+PokeBall:
+HeavyBall:
+LevelBall:
+LureBall:
+FastBall:
+FriendBall:
+MoonBall:
+LoveBall:
+ParkBall: ; e8a2
+ ld a, [wBattleMode]
+ dec a
+ jp nz, UseBallInTrainerBattle
+
+ ld a, [PartyCount]
+ cp PARTY_LENGTH
+ jr nz, .room_in_party
+
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld a, [sBoxCount]
+ cp MONS_PER_BOX
+ call CloseSRAM
+ jp z, Ball_BoxIsFullMessage
+
+.room_in_party
+ xor a
+ ld [wWildMon], a
+ ld a, [CurItem]
+ cp PARK_BALL
+ call nz, ReturnToBattle_UseBall
+
+ ld hl, Options
+ res NO_TEXT_SCROLL, [hl]
+ ld hl, UsedItemText
+ call PrintText
+
+ ld a, [EnemyMonCatchRate]
+ ld b, a
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ jp z, .catch_without_fail
+ ld a, [CurItem]
+ cp MASTER_BALL
+ jp z, .catch_without_fail
+ ld a, [CurItem]
+ ld c, a
+ ld hl, BallMultiplierFunctionTable
+
+.get_multiplier_loop
+ ld a, [hli]
+ cp $ff
+ jr z, .skip_or_return_from_ball_fn
+ cp c
+ jr z, .call_ball_function
+ inc hl
+ inc hl
+ jr .get_multiplier_loop
+
+.call_ball_function
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .skip_or_return_from_ball_fn
+ push de
+ jp hl
+
+.skip_or_return_from_ball_fn
+ ld a, [CurItem]
+ cp LEVEL_BALL
+ ld a, b
+ jp z, .skip_hp_calc
+
+ ld a, b
+ ld [hMultiplicand + 2], a
+
+ ld hl, EnemyMonHP
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld e, [hl]
+ sla c
+ rl b
+
+ ld h, d
+ ld l, e
+ add hl, de
+ add hl, de
+ ld d, h
+ ld e, l
+ ld a, d
+ and a
+ jr z, .okay_1
+
+ srl d
+ rr e
+ srl d
+ rr e
+ srl b
+ rr c
+ srl b
+ rr c
+
+ ld a, c
+ and a
+ jr nz, .okay_1
+ ld c, $1
+.okay_1
+ ld b, e
+
+ push bc
+ ld a, b
+ sub c
+ ld [hMultiplier], a
+ xor a
+ ld [hDividend + 0], a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ call Multiply
+ pop bc
+
+ ld a, b
+ ld [hDivisor], a
+ ld b, $4
+ call Divide
+
+ ld a, [hQuotient + 2]
+ and a
+ jr nz, .statuscheck
+ ld a, 1
+.statuscheck
+; This routine is buggy. It was intended that SLP and FRZ provide a higher
+; catch rate than BRN/PSN/PAR, which in turn provide a higher catch rate than
+; no status effect at all. But instead, it makes BRN/PSN/PAR provide no
+; benefit.
+; Uncomment the line below to fix this.
+ ld b, a
+ ld a, [EnemyMonStatus]
+ and 1 << FRZ | SLP
+ ld c, 10
+ jr nz, .addstatus
+ ; ld a, [EnemyMonStatus]
+ and a
+ ld c, 5
+ jr nz, .addstatus
+ ld c, 0
+.addstatus
+ ld a, b
+ add c
+ jr nc, .max_1
+ ld a, $ff
+.max_1
+
+ ld d, a
+ push de
+
+ ; BUG: callba overwrites a,
+ ; and GetItemHeldEffect takes b anyway.
+
+ ; This is probably the reason
+ ; the HELD_CATCH_CHANCE effect
+ ; is never used.
+
+ ; Uncomment the line below to fix.
+
+ ld a, [BattleMonItem]
+; ld b, a
+ callba GetItemHeldEffect
+ ld a, b
+ cp HELD_CATCH_CHANCE
+
+ pop de
+ ld a, d
+
+ jr nz, .skip_hp_calc
+ add c
+ jr nc, .skip_hp_calc
+ ld a, $ff
+.skip_hp_calc
+
+ ld b, a
+ ld [Buffer1], a
+ call Random
+
+ cp b
+ ld a, 0
+ jr z, .catch_without_fail
+ jr nc, .fail_to_catch
+
+.catch_without_fail
+ ld a, [EnemyMonSpecies]
+
+.fail_to_catch
+ ld [wWildMon], a
+ ld c, 20
+ call DelayFrames
+
+ ld a, [CurItem]
+ cp POKE_BALL + 1 ; Assumes Master/Ultra/Great come before
+ jr c, .not_kurt_ball
+ ld a, POKE_BALL
+.not_kurt_ball
+ ld [wBattleAnimParam], a
+
+ ld de, ANIM_THROW_POKE_BALL
+ ld a, e
+ ld [FXAnimID], a
+ ld a, d
+ ld [FXAnimID + 1], a
+ xor a
+ ld [hBattleTurn], a
+ ld [Buffer2], a
+ ld [wNumHits], a
+ predef PlayBattleAnim
+
+ ld a, [wWildMon]
+ and a
+ jr nz, .caught
+ ld a, [Buffer2]
+ cp $1
+ ld hl, Text_NoShake
+ jp z, .shake_and_break_free
+ cp $2
+ ld hl, Text_OneShake
+ jp z, .shake_and_break_free
+ cp $3
+ ld hl, Text_TwoShakes
+ jp z, .shake_and_break_free
+ cp $4
+ ld hl, Text_ThreeShakes
+ jp z, .shake_and_break_free
+.caught
+
+ ld hl, EnemyMonStatus
+ ld a, [hli]
+ push af
+ inc hl
+ ld a, [hli]
+ push af
+ ld a, [hl]
+ push af
+ push hl
+ ld hl, EnemyMonItem
+ ld a, [hl]
+ push af
+ push hl
+ ld hl, EnemySubStatus5
+ ld a, [hl]
+ push af
+ set SUBSTATUS_TRANSFORMED, [hl]
+
+; This code is buggy. Any wild Pokémon that has Transformed will be
+; caught as a Ditto, even if it was something else like Mew.
+; To fix, do not set [TempEnemyMonSpecies] to DITTO.
+ bit SUBSTATUS_TRANSFORMED, a
+ jr nz, .ditto
+ jr .not_ditto
+
+.ditto
+ ld a, DITTO
+ ld [TempEnemyMonSpecies], a
+ jr .load_data
+
+.not_ditto
+ set SUBSTATUS_TRANSFORMED, [hl]
+ ld hl, wEnemyBackupDVs
+ ld a, [EnemyMonDVs]
+ ld [hli], a
+ ld a, [EnemyMonDVs + 1]
+ ld [hl], a
+
+.load_data
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [EnemyMonLevel]
+ ld [CurPartyLevel], a
+ callba LoadEnemyMon
+
+ pop af
+ ld [EnemySubStatus5], a
+
+ pop hl
+ pop af
+ ld [hl], a
+ pop hl
+ pop af
+ ld [hld], a
+ pop af
+ ld [hld], a
+ dec hl
+ pop af
+ ld [hl], a
+
+ ld hl, EnemySubStatus5
+ bit SUBSTATUS_TRANSFORMED, [hl]
+ jr nz, .Transformed
+ ld hl, wWildMonMoves
+ ld de, EnemyMonMoves
+ ld bc, NUM_MOVES
+ call CopyBytes
+
+ ld hl, wWildMonPP
+ ld de, EnemyMonPP
+ ld bc, NUM_MOVES
+ call CopyBytes
+.Transformed:
+
+ ld a, [EnemyMonSpecies]
+ ld [wWildMon], a
+ ld [CurPartySpecies], a
+ ld [wd265], a
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ jp z, .FinishTutorial
+
+ callba TrainerRankings_WildMonsCaught
+
+ ld hl, Text_GotchaMonWasCaught
+ call PrintText
+
+ call ClearSprites
+
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+
+ ld a, c
+ push af
+ ld a, [wd265]
+ dec a
+ call SetSeenAndCaughtMon
+ pop af
+ and a
+ jr nz, .skip_pokedex
+
+ call CheckReceivedDex
+ jr z, .skip_pokedex
+
+ ld hl, Text_AddedToPokedex
+ call PrintText
+
+ call ClearSprites
+
+ ld a, [EnemyMonSpecies]
+ ld [wd265], a
+ predef NewPokedexEntry
+
+.skip_pokedex
+ ld a, [BattleType]
+ cp BATTLETYPE_CONTEST
+ jp z, .catch_bug_contest_mon
+ cp BATTLETYPE_CELEBI
+ jr nz, .not_celebi
+ ld hl, wBattleResult
+ set 6, [hl]
+.not_celebi
+
+ ld a, [PartyCount]
+ cp PARTY_LENGTH
+ jr z, .SendToPC
+
+ xor a ; PARTYMON
+ ld [MonType], a
+ call ClearSprites
+
+ predef TryAddMonToParty
+
+ callba SetCaughtData
+
+ ld a, [CurItem]
+ cp FRIEND_BALL
+ jr nz, .SkipPartyMonFriendBall
+
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Happiness
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+
+ ld a, FRIEND_BALL_HAPPINESS
+ ld [hl], a
+.SkipPartyMonFriendBall:
+
+ ld hl, Text_AskNicknameNewlyCaughtMon
+ call PrintText
+
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+
+ call YesNoBox
+ jp c, .return_from_capture
+
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call AddNTimes
+
+ ld d, h
+ ld e, l
+ push de
+ xor a ; PARTYMON
+ ld [MonType], a
+ ld b, 0
+ callba NamingScreen
+
+ call RotateThreePalettesRight
+
+ call LoadStandardFont
+
+ pop hl
+ ld de, StringBuffer1
+ call InitName
+
+ jp .return_from_capture
+
+.SendToPC:
+ call ClearSprites
+
+ predef SentPkmnIntoBox
+
+ callba SetBoxMonCaughtData
+
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+
+ ld a, [sBoxCount]
+ cp MONS_PER_BOX
+ jr nz, .BoxNotFullYet
+ ld hl, wBattleResult
+ set 7, [hl]
+.BoxNotFullYet:
+ ld a, [CurItem]
+ cp FRIEND_BALL
+ jr nz, .SkipBoxMonFriendBall
+ ; The captured mon is now first in the box
+ ld a, FRIEND_BALL_HAPPINESS
+ ld [sBoxMon1Happiness], a
+.SkipBoxMonFriendBall:
+ call CloseSRAM
+
+ ld hl, Text_AskNicknameNewlyCaughtMon
+ call PrintText
+
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+
+ call YesNoBox
+ jr c, .SkipBoxMonNickname
+
+ xor a
+ ld [CurPartyMon], a
+ ld a, BOXMON
+ ld [MonType], a
+ ld de, wMonOrItemNameBuffer
+ ld b, $0
+ callba NamingScreen
+
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+
+ ld hl, wMonOrItemNameBuffer
+ ld de, sBoxMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+ ld hl, sBoxMonNicknames
+ ld de, StringBuffer1
+ call InitName
+
+ call CloseSRAM
+
+.SkipBoxMonNickname:
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+
+ ld hl, sBoxMonNicknames
+ ld de, wMonOrItemNameBuffer
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+ call CloseSRAM
+
+ ld hl, Text_SentToBillsPC
+ call PrintText
+
+ call RotateThreePalettesRight
+ call LoadStandardFont
+ jr .return_from_capture
+
+.catch_bug_contest_mon
+ callba BugContest_SetCaughtContestMon
+ jr .return_from_capture
+
+.FinishTutorial:
+ ld hl, Text_GotchaMonWasCaught
+
+.shake_and_break_free
+ call PrintText
+ call ClearSprites
+
+.return_from_capture
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ ret z
+ cp BATTLETYPE_DEBUG
+ ret z
+ cp BATTLETYPE_CONTEST
+ jr z, .used_park_ball
+
+ ld a, [wWildMon]
+ and a
+ jr z, .toss
+
+ call ClearBGPalettes
+ call ClearTileMap
+
+.toss
+ ld hl, NumItems
+ inc a
+ ld [wItemQuantityChangeBuffer], a
+ jp TossItem
+
+.used_park_ball
+ ld hl, wParkBallsRemaining
+ dec [hl]
+ ret
+; ec0a
+
+
+BallMultiplierFunctionTable:
+; table of routines that increase or decrease the catch rate based on
+; which ball is used in a certain situation.
+ dbw ULTRA_BALL, UltraBallMultiplier
+ dbw GREAT_BALL, GreatBallMultiplier
+ dbw SAFARI_BALL, SafariBallMultiplier ; Safari Ball, leftover from RBY
+ dbw HEAVY_BALL, HeavyBallMultiplier
+ dbw LEVEL_BALL, LevelBallMultiplier
+ dbw LURE_BALL, LureBallMultiplier
+ dbw FAST_BALL, FastBallMultiplier
+ dbw MOON_BALL, MoonBallMultiplier
+ dbw LOVE_BALL, LoveBallMultiplier
+ dbw PARK_BALL, ParkBallMultiplier
+ db $ff
+
+UltraBallMultiplier:
+; multiply catch rate by 2
+ sla b
+ ret nc
+ ld b, $ff
+ ret
+
+SafariBallMultiplier:
+GreatBallMultiplier:
+ParkBallMultiplier:
+; multiply catch rate by 1.5
+ ld a, b
+ srl a
+ add b
+ ld b, a
+ ret nc
+ ld b, $ff
+ ret
+
+GetPokedexEntryBank:
+ push hl
+ push de
+ ld a, [EnemyMonSpecies]
+ rlca
+ rlca
+ and 3
+ ld hl, .PokedexEntryBanks
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+
+.PokedexEntryBanks:
+
+GLOBAL PokedexEntries1
+GLOBAL PokedexEntries2
+GLOBAL PokedexEntries3
+GLOBAL PokedexEntries4
+
+ db BANK(PokedexEntries1)
+ db BANK(PokedexEntries2)
+ db BANK(PokedexEntries3)
+ db BANK(PokedexEntries4)
+
+HeavyBallMultiplier:
+; subtract 20 from catch rate if weight < 102.4 kg
+; else add 0 to catch rate if weight < 204.8 kg
+; else add 20 to catch rate if weight < 307.2 kg
+; else add 30 to catch rate if weight < 409.6 kg
+; else add 40 to catch rate (never happens)
+ ld a, [EnemyMonSpecies]
+ ld hl, PokedexDataPointerTable
+ dec a
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, BANK(PokedexDataPointerTable)
+ call GetFarHalfword
+
+.SkipText:
+ call GetPokedexEntryBank
+ call GetFarByte
+ inc hl
+ cp "@"
+ jr nz, .SkipText
+
+ call GetPokedexEntryBank
+ push bc
+ inc hl
+ inc hl
+ call GetFarHalfword
+
+ srl h
+ rr l
+ ld b, h
+ ld c, l
+
+ rept 4
+ srl b
+ rr c
+ endr
+ call .subbc
+
+ srl b
+ rr c
+ call .subbc
+
+ ld a, h
+ pop bc
+ jr .compare
+
+.subbc
+ ; subtract bc from hl
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ pop bc
+ ret
+
+.compare
+ ld c, a
+ cp 1024 >> 8 ; 102.4 kg
+ jr c, .lightmon
+
+ ld hl, .WeightsTable
+.lookup
+ ld a, c
+ cp [hl]
+ jr c, .heavymon
+ inc hl
+ inc hl
+ jr .lookup
+
+.heavymon
+ inc hl
+ ld a, b
+ add [hl]
+ ld b, a
+ ret nc
+ ld b, $ff
+ ret
+
+.lightmon
+ ld a, b
+ sub 20
+ ld b, a
+ ret nc
+ ld b, $1
+ ret
+
+.WeightsTable:
+; weight factor, boost
+ db 2048 >> 8, 0
+ db 3072 >> 8, 20
+ db 4096 >> 8, 30
+ db 65280 >> 8, 40
+
+LureBallMultiplier:
+; multiply catch rate by 3 if this is a fishing rod battle
+ ld a, [BattleType]
+ cp BATTLETYPE_FISH
+ ret nz
+
+ ld a, b
+ add a
+ jr c, .max
+
+ add b
+ jr nc, .done
+.max
+ ld a, $ff
+.done
+ ld b, a
+ ret
+
+MoonBallMultiplier:
+; This function is buggy.
+; Intent: multiply catch rate by 4 if mon evolves with moon stone
+; Reality: no boost
+
+GLOBAL EvosAttacks
+GLOBAL EvosAttacksPointers
+
+ push bc
+ ld a, [TempEnemyMonSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, EvosAttacksPointers
+ add hl, bc
+ add hl, bc
+ ld a, BANK(EvosAttacksPointers)
+ call GetFarHalfword
+ pop bc
+
+ push bc
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ cp EVOLVE_ITEM
+ pop bc
+ ret nz
+
+ inc hl
+ inc hl
+ inc hl
+
+; Moon Stone's constant from Pokémon Red is used.
+; No Pokémon evolve with Burn Heal,
+; so Moon Balls always have a catch rate of 1×.
+ push bc
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ cp MOON_STONE_RED ; BURN_HEAL
+ pop bc
+ ret nz
+
+ sla b
+ jr c, .max
+ sla b
+ jr nc, .done
+.max
+ ld b, $ff
+.done
+ ret
+
+LoveBallMultiplier:
+; This function is buggy.
+; Intent: multiply catch rate by 8 if mons are of same species, different sex
+; Reality: multiply catch rate by 8 if mons are of same species, same sex
+
+ ; does species match?
+ ld a, [TempEnemyMonSpecies]
+ ld c, a
+ ld a, [TempBattleMonSpecies]
+ cp c
+ ret nz
+
+ ; check player mon species
+ push bc
+ ld a, [TempBattleMonSpecies]
+ ld [CurPartySpecies], a
+ xor a ; PARTYMON
+ ld [MonType], a
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ callba GetGender
+ jr c, .done1 ; no effect on genderless
+
+ ld d, 0 ; male
+ jr nz, .playermale
+ inc d ; female
+.playermale
+
+ ; check wild mon species
+ push de
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld a, WILDMON
+ ld [MonType], a
+ callba GetGender
+ jr c, .done2 ; no effect on genderless
+
+ ld d, 0 ; male
+ jr nz, .wildmale
+ inc d ; female
+.wildmale
+
+ ld a, d
+ pop de
+ cp d
+ pop bc
+ ret nz ; for the intended effect, this should be "ret z"
+
+ sla b
+ jr c, .max
+ sla b
+ jr c, .max
+ sla b
+ ret nc
+.max
+ ld b, $ff
+ ret
+
+.done2
+ pop de
+
+.done1
+ pop bc
+ ret
+
+FastBallMultiplier:
+; This function is buggy.
+; Intent: multiply catch rate by 4 if enemy mon is in one of the three
+; FleeMons tables.
+; Reality: multiply catch rate by 4 if enemy mon is one of the first three in
+; the first FleeMons table.
+ ld a, [TempEnemyMonSpecies]
+ ld c, a
+ ld hl, FleeMons
+ ld d, 3
+
+.loop
+ ld a, BANK(FleeMons)
+ call GetFarByte
+
+ inc hl
+ cp -1
+ jr z, .next
+ cp c
+ jr nz, .next ; for the intended effect, this should be "jr nz, .loop"
+ sla b
+ jr c, .max
+
+ sla b
+ ret nc
+
+.max
+ ld b, $ff
+ ret
+
+.next
+ dec d
+ jr nz, .loop
+ ret
+
+LevelBallMultiplier:
+; multiply catch rate by 8 if player mon level / 4 > enemy mon level
+; multiply catch rate by 4 if player mon level / 2 > enemy mon level
+; multiply catch rate by 2 if player mon level > enemy mon level
+ ld a, [BattleMonLevel]
+ ld c, a
+ ld a, [EnemyMonLevel]
+ cp c
+ ret nc ; if player is lower level, we're done here
+ sla b
+ jr c, .max
+
+ srl c
+ cp c
+ ret nc ; if player/2 is lower level, we're done here
+ sla b
+ jr c, .max
+
+ srl c
+ cp c
+ ret nc ; if player/4 is lower level, we're done here
+ sla b
+ ret nc
+
+.max
+ ld b, $ff
+ ret
+
+; These two texts were carried over from gen 1.
+; They are not used in gen 2, and are dummied out.
+
+Text_RBY_CatchMarowak: ; 0xedab
+ ; It dodged the thrown BALL! This #MON can't be caught!
+ text_jump UnknownText_0x1c5a5a
+ db "@"
+; 0xedb0
+
+Text_RBY_NoShake: ; 0xedb0
+ ; You missed the #MON!
+ text_jump UnknownText_0x1c5a90
+ db "@"
+; 0xedb5
+
+Text_NoShake: ; 0xedb5
+ ; Oh no! The #MON broke free!
+ text_jump UnknownText_0x1c5aa6
+ db "@"
+; 0xedba
+
+Text_OneShake: ; 0xedba
+ ; Aww! It appeared to be caught!
+ text_jump UnknownText_0x1c5ac3
+ db "@"
+; 0xedbf
+
+Text_TwoShakes: ; 0xedbf
+ ; Aargh! Almost had it!
+ text_jump UnknownText_0x1c5ae3
+ db "@"
+; 0xedc4
+
+Text_ThreeShakes: ; 0xedc4
+ ; Shoot! It was so close too!
+ text_jump UnknownText_0x1c5afa
+ db "@"
+; 0xedc9
+
+Text_GotchaMonWasCaught: ; 0xedc9
+ ; Gotcha! @ was caught!@ @
+ text_jump UnknownText_0x1c5b17
+ start_asm
+ call WaitSFX
+ push bc
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ ld de, MUSIC_CAPTURE
+ call PlayMusic
+ pop bc
+ ld hl, TextJump_Waitbutton
+ ret
+; ede6
+
+TextJump_Waitbutton: ; 0xede6
+ ; @
+ text_jump Text_Waitbutton_2
+ db "@"
+; 0xedeb
+
+Text_SentToBillsPC: ; 0xedeb
+ ; was sent to BILL's PC.
+ text_jump UnknownText_0x1c5b38
+ db "@"
+; 0xedf0
+
+Text_AddedToPokedex: ; 0xedf0
+ ; 's data was newly added to the #DEX.@ @
+ text_jump UnknownText_0x1c5b53
+ db "@"
+; 0xedf5
+
+Text_AskNicknameNewlyCaughtMon: ; 0xedf5
+ ; Give a nickname to @ ?
+ text_jump UnknownText_0x1c5b7f
+ db "@"
+; 0xedfa
+
+ReturnToBattle_UseBall: ; edfa (3:6dfa)
+ callba _ReturnToBattle_UseBall
+ ret
+
+TownMap: ; ee01
+ callba PokegearMap
+ ret
+; ee08
+
+
+Bicycle: ; ee08
+ callba BikeFunction
+ ret
+; ee0f
+
+
+MoonStone:
+FireStone:
+Thunderstone:
+WaterStone:
+LeafStone:
+SunStone: ; ee0f
+ ld b, PARTYMENUACTION_EVO_STONE
+ call UseItem_SelectMon
+
+ jp c, .DecidedNotToUse
+
+ ld a, MON_ITEM
+ call GetPartyParamLocation
+
+ ld a, [hl]
+ cp EVERSTONE
+ jr z, .NoEffect
+
+ ld a, $1
+ ld [wForceEvolution], a
+ callba EvolvePokemon
+
+ ld a, [wMonTriedToEvolve]
+ and a
+ jr z, .NoEffect
+
+ jp UseDisposableItem
+
+.NoEffect:
+ call WontHaveAnyEffectMessage
+
+.DecidedNotToUse:
+ xor a
+ ld [wItemEffectSucceeded], a
+ ret
+; ee3d
+
+
+HPUp:
+Protein:
+Iron:
+Carbos:
+Calcium: ; ee3d
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+
+ jp c, RareCandy_StatBooster_ExitMenu
+
+ call RareCandy_StatBooster_GetParameters
+
+ call GetStatExpRelativePointer
+
+ ld a, MON_STAT_EXP
+ call GetPartyParamLocation
+
+ add hl, bc
+ ld a, [hl]
+ cp 100
+ jr nc, NoEffectMessage
+
+ add 10
+ ld [hl], a
+ call UpdateStatsAfterItem
+
+ call GetStatExpRelativePointer
+
+ ld hl, StatStrings
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, StringBuffer2
+ ld bc, ITEM_NAME_LENGTH
+ call CopyBytes
+
+ call Play_SFX_FULL_HEAL
+
+ ld hl, Text_StatRose
+ call PrintText
+
+ ld c, HAPPINESS_USEDITEM
+ callba ChangeHappiness
+
+ jp UseDisposableItem
+
+
+NoEffectMessage: ; ee83
+ ld hl, WontHaveAnyEffectText
+ call PrintText
+ jp ClearPalettes
+; ee8c
+
+
+UpdateStatsAfterItem: ; ee8c
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld d, h
+ ld e, l
+ ld a, MON_STAT_EXP - 1
+ call GetPartyParamLocation
+ ld b, $1
+ predef_jump CalcPkmnStats
+; ee9f
+
+RareCandy_StatBooster_ExitMenu: ; ee9f
+ xor a
+ ld [wItemEffectSucceeded], a
+ jp ClearPalettes
+; eea6
+
+
+Text_StatRose: ; 0xeea6
+ ; 's @ rose.
+ text_jump UnknownText_0x1c5b9a
+ db "@"
+; 0xeeab
+
+
+StatStrings: ; eeab
+ dw .health
+ dw .attack
+ dw .defense
+ dw .speed
+ dw .special
+
+.health db "HEALTH@"
+.attack db "ATTACK@"
+.defense db "DEFENSE@"
+.speed db "SPEED@"
+.special db "SPECIAL@"
+; eed9
+
+
+GetStatExpRelativePointer: ; eed9
+ ld a, [CurItem]
+ ld hl, Table_eeeb
+.next
+ cp [hl]
+ inc hl
+ jr z, .got_it
+ inc hl
+ jr .next
+
+.got_it
+ ld a, [hl]
+ ld c, a
+ ld b, 0
+ ret
+; eeeb
+
+Table_eeeb: ; eeeb
+ db HP_UP, MON_HP_EXP - MON_STAT_EXP
+ db PROTEIN, MON_ATK_EXP - MON_STAT_EXP
+ db IRON, MON_DEF_EXP - MON_STAT_EXP
+ db CARBOS, MON_SPD_EXP - MON_STAT_EXP
+ db CALCIUM, MON_SPC_EXP - MON_STAT_EXP
+; eef5
+
+
+RareCandy_StatBooster_GetParameters: ; eef5
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ ld [wd265], a
+ ld a, MON_LEVEL
+ call GetPartyParamLocation
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ call GetBaseData
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ret
+; 0xef14
+
+
+RareCandy: ; ef14
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+
+ jp c, RareCandy_StatBooster_ExitMenu
+
+ call RareCandy_StatBooster_GetParameters
+
+ ld a, MON_LEVEL
+ call GetPartyParamLocation
+
+ ld a, [hl]
+ cp MAX_LEVEL
+ jp nc, NoEffectMessage
+
+ inc a
+ ld [hl], a
+ ld [CurPartyLevel], a
+ push de
+ ld d, a
+ callba CalcExpAtLevel
+
+ pop de
+ ld a, MON_EXP
+ call GetPartyParamLocation
+
+ ld a, [hMultiplicand]
+ ld [hli], a
+ ld a, [hMultiplicand + 1]
+ ld [hli], a
+ ld a, [hMultiplicand + 2]
+ ld [hl], a
+
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ push bc
+ call UpdateStatsAfterItem
+
+ ld a, MON_MAXHP + 1
+ call GetPartyParamLocation
+
+ pop bc
+ ld a, [hld]
+ sub c
+ ld c, a
+ ld a, [hl]
+ sbc b
+ ld b, a
+ dec hl
+ ld a, [hl]
+ add c
+ ld [hld], a
+ ld a, [hl]
+ adc b
+ ld [hl], a
+ callba LevelUpHappinessMod
+
+ ld a, PARTYMENUTEXT_LEVEL_UP
+ call ItemActionText
+
+ xor a ; PARTYMON
+ ld [MonType], a
+ predef CopyPkmnToTempMon
+
+ hlcoord 9, 0
+ ld b, 10
+ ld c, 9
+ call TextBox
+
+ hlcoord 11, 1
+ ld bc, $0004
+ predef PrintTempMonStats
+
+ call WaitPressAorB_BlinkCursor
+
+ xor a ; PARTYMON
+ ld [MonType], a
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ predef LearnLevelMoves
+
+ xor a
+ ld [wForceEvolution], a
+ callba EvolvePokemon
+
+ jp UseDisposableItem
+; efad
+
+
+HealPowder: ; efad
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+
+ jp c, StatusHealer_ExitMenu
+
+ call UseStatusHealer
+
+ cp $0
+ jr nz, .asm_efc9
+ ld c, HAPPINESS_BITTERPOWDER
+ callba ChangeHappiness
+
+ call LooksBitterMessage
+
+ ld a, $0
+
+.asm_efc9
+ jp StatusHealer_Jumptable
+; efcc
+
+
+Antidote:
+BurnHeal:
+IceHeal:
+Awakening:
+ParlyzHeal:
+FullHeal:
+Psncureberry:
+Przcureberry:
+BurntBerry:
+IceBerry:
+MintBerry:
+Miracleberry: ; efcc
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, StatusHealer_ExitMenu
+
+FullyHealStatus: ; efd4
+ call UseStatusHealer
+ jp StatusHealer_Jumptable
+; efda
+
+
+UseStatusHealer: ; efda (3:6fda)
+ call IsMonFainted
+ ld a, $1
+ ret z
+ call GetItemHealingAction
+ ld a, MON_STATUS
+ call GetPartyParamLocation
+ ld a, [hl]
+ and c
+ jr nz, .good
+ call IsItemUsedOnConfusedMon
+ ld a, $1
+ ret nc
+ ld b, PARTYMENUTEXT_HEAL_CONFUSION
+.good
+ xor a
+ ld [hl], a
+ ld a, b
+ ld [PartyMenuActionText], a
+ call HealStatus
+ call Play_SFX_FULL_HEAL
+ call ItemActionTextWaitButton
+ call UseDisposableItem
+ ld a, $0
+ ret
+
+IsItemUsedOnConfusedMon: ; f009 (3:7009)
+ call IsItemUsedOnBattleMon
+ jr nc, .nope
+ ld a, [PlayerSubStatus3]
+ bit SUBSTATUS_CONFUSED, a
+ jr z, .nope
+ ld a, c
+ cp $ff
+ jr nz, .nope
+ scf
+ ret
+
+.nope
+ and a
+ ret
+
+BattlemonRestoreHealth: ; f01e (3:701e)
+ call IsItemUsedOnBattleMon
+ ret nc
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [BattleMonHP], a
+ ld a, [hld]
+ ld [BattleMonHP + 1], a
+ ret
+
+HealStatus: ; f030 (3:7030)
+ call IsItemUsedOnBattleMon
+ ret nc
+ xor a
+ ld [BattleMonStatus], a
+ ld hl, PlayerSubStatus5
+ res SUBSTATUS_TOXIC, [hl]
+ ld hl, PlayerSubStatus1
+ res SUBSTATUS_NIGHTMARE, [hl]
+ call GetItemHealingAction
+ ld a, c
+ cp %11111111
+ jr nz, .not_full_heal
+ ld hl, PlayerSubStatus3
+ res SUBSTATUS_CONFUSED, [hl]
+.not_full_heal
+ push bc
+ callba CalcPlayerStats
+ pop bc
+ ret
+
+GetItemHealingAction: ; f058 (3:7058)
+ push hl
+ ld a, [CurItem]
+ ld hl, .healingactions
+ ld bc, 3
+.next
+ cp [hl]
+ jr z, .found_it
+ add hl, bc
+ jr .next
+
+.found_it
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld a, [hl]
+ ld c, a
+ cp %11111111
+ pop hl
+ ret
+; f071 (3:7071)
+
+.healingactions ; f071
+; item, party menu action text, status
+ db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
+ db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
+ db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
+ db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP
+ db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
+ db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111
+ db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111
+ db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111
+ db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
+ db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
+ db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
+ db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
+ db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP
+ db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111
+ db -1, 0, 0
+; f09e
+
+StatusHealer_Jumptable: ; f09e (3:709e)
+ ld hl, .dw
+ rst JumpTable
+ ret
+
+.dw ; f0a3 (3:70a3)
+ dw StatusHealer_ClearPalettes
+ dw StatusHealer_NoEffect
+ dw StatusHealer_ExitMenu
+
+
+RevivalHerb: ; f0a9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, StatusHealer_ExitMenu
+
+ call RevivePokemon
+ cp 0
+ jr nz, .asm_f0c5
+
+ ld c, HAPPINESS_REVIVALHERB
+ callba ChangeHappiness
+ call LooksBitterMessage
+ ld a, 0
+
+.asm_f0c5
+ jp StatusHealer_Jumptable
+; f0c8
+
+
+Revive:
+MaxRevive: ; f0c8
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, StatusHealer_ExitMenu
+
+ call RevivePokemon
+ jp StatusHealer_Jumptable
+; f0d6
+
+
+RevivePokemon: ; f0d6
+ call IsMonFainted
+ ld a, 1
+ ret nz
+ ld a, [wBattleMode]
+ and a
+ jr z, .skip_to_revive
+
+ ld a, [CurPartyMon]
+ ld c, a
+ ld d, 0
+ ld hl, wBattleParticipantsIncludingFainted
+ ld b, CHECK_FLAG
+ predef FlagPredef
+ ld a, c
+ and a
+ jr z, .skip_to_revive
+
+ ld a, [CurPartyMon]
+ ld c, a
+ ld hl, wBattleParticipantsNotFainted
+ ld b, SET_FLAG
+ predef FlagPredef
+
+.skip_to_revive
+ xor a
+ ld [Danger], a
+ ld a, [CurItem]
+ cp REVIVE
+ jr z, .revive_half_hp
+
+ call ReviveFullHP
+ jr .finish_revive
+
+.revive_half_hp
+ call ReviveHalfHP
+
+.finish_revive
+ call HealHP_SFX_GFX
+ ld a, PARTYMENUTEXT_REVIVE
+ ld [PartyMenuActionText], a
+ call ItemActionTextWaitButton
+ call UseDisposableItem
+ ld a, 0
+ ret
+; f128
+
+
+FullRestore: ; f128
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, StatusHealer_ExitMenu
+
+ call IsMonFainted
+ jp z, StatusHealer_NoEffect
+
+ call IsMonAtFullHealth
+ jr c, .NotAtFullHealth
+
+ jp FullyHealStatus
+
+.NotAtFullHealth:
+ call .FullRestore
+ jp StatusHealer_Jumptable
+; f144
+
+
+.FullRestore: ; f144
+ xor a
+ ld [Danger], a
+ call ReviveFullHP
+ ld a, MON_STATUS
+ call GetPartyParamLocation
+ xor a
+ ld [hli], a
+ ld [hl], a
+ call HealStatus
+ call BattlemonRestoreHealth
+ call HealHP_SFX_GFX
+ ld a, PARTYMENUTEXT_HEAL_HP
+ ld [PartyMenuActionText], a
+ call ItemActionTextWaitButton
+ call UseDisposableItem
+ ld a, 0
+ ret
+; f16a
+
+
+BitterBerry: ; f16a
+ ld hl, PlayerSubStatus3
+ bit SUBSTATUS_CONFUSED, [hl]
+ ld a, 1
+ jr z, .done
+
+ res SUBSTATUS_CONFUSED, [hl]
+ xor a
+ ld [hBattleTurn], a
+ call UseItemText
+
+ ld hl, ConfusedNoMoreText
+ call StdBattleTextBox
+
+ ld a, 0
+
+.done
+ jp StatusHealer_Jumptable
+; f186
+
+
+MaxPotion:
+HyperPotion:
+SuperPotion:
+Potion:
+FreshWater:
+SodaPop:
+Lemonade:
+MoomooMilk:
+Ragecandybar:
+BerryJuice:
+Berry:
+GoldBerry: ; f186
+ call ItemRestoreHP
+ jp StatusHealer_Jumptable
+; f18c
+
+
+Energypowder: ; f18c
+ ld c, HAPPINESS_BITTERPOWDER
+ jr EnergypowderEnergyRootCommon
+; f190
+
+EnergyRoot: ; f190
+ ld c, HAPPINESS_ENERGYROOT
+; f192
+
+EnergypowderEnergyRootCommon: ; f192
+ push bc
+ call ItemRestoreHP
+ pop bc
+ cp 0
+ jr nz, .skip_happiness
+
+ callba ChangeHappiness
+ call LooksBitterMessage
+ ld a, 0
+
+.skip_happiness
+ jp StatusHealer_Jumptable
+; f1a9
+
+
+ItemRestoreHP: ; f1a9 (3:71a9)
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ ld a, 2
+ ret c
+
+ call IsMonFainted
+ ld a, 1
+ ret z
+
+ call IsMonAtFullHealth
+ ld a, 1
+ ret nc
+
+ xor a
+ ld [Danger], a
+ call GetHealingItemAmount
+ call RestoreHealth
+ call BattlemonRestoreHealth
+ call HealHP_SFX_GFX
+ ld a, PARTYMENUTEXT_HEAL_HP
+ ld [PartyMenuActionText], a
+ call ItemActionTextWaitButton
+ call UseDisposableItem
+ ld a, 0
+ ret
+
+HealHP_SFX_GFX: ; f1db (3:71db)
+ push de
+ ld de, SFX_POTION
+ call WaitPlaySFX
+ pop de
+ ld a, [CurPartyMon]
+ hlcoord 11, 0
+ ld bc, SCREEN_WIDTH * 2
+ call AddNTimes
+ ld a, $2
+ ld [wWhichHPBar], a
+ predef_jump AnimateHPBar
+
+UseItem_SelectMon: ; f1f9 (3:71f9)
+ call .SelectMon
+ ret c
+
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr nz, .not_egg
+
+ call CantUseOnEggMessage
+ scf
+ ret
+
+.not_egg
+ and a
+ ret
+
+.SelectMon: ; f20b (3:720b)
+ ld a, b
+ ld [PartyMenuActionText], a
+ push hl
+ push de
+ push bc
+ call ClearBGPalettes
+ call ChoosePkmnToUseItemOn
+ pop bc
+ pop de
+ pop hl
+ ret
+
+ChoosePkmnToUseItemOn: ; f21c (3:721c)
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+ callba PartyMenuSelect
+ ret
+
+ItemActionText: ; f24a (3:724a)
+ ld [PartyMenuActionText], a
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [CurPartyMon]
+ push af
+ push hl
+ push de
+ push bc
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuActionText
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+ pop bc
+ pop de
+ pop hl
+ pop af
+ ld [CurPartyMon], a
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+ItemActionTextWaitButton: ; f279 (3:7279)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, TileMapEnd - TileMap
+ ld a, " "
+ call ByteFill
+ ld a, [PartyMenuActionText]
+ call ItemActionText
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, 50
+ call DelayFrames
+ jp WaitPressAorB_BlinkCursor
+
+StatusHealer_NoEffect: ; f299 (3:7299)
+ call WontHaveAnyEffectMessage
+ jr StatusHealer_ClearPalettes
+
+StatusHealer_ExitMenu: ; f29e (3:729e)
+ xor a
+ ld [wItemEffectSucceeded], a
+StatusHealer_ClearPalettes: ; f2a2 (3:72a2)
+ call ClearPalettes
+ ret
+
+IsItemUsedOnBattleMon: ; f2a6 (3:72a6)
+ ld a, [wBattleMode]
+ and a
+ ret z
+ ld a, [CurPartyMon]
+ push hl
+ ld hl, CurBattleMon
+ cp [hl]
+ pop hl
+ jr nz, .nope
+ scf
+ ret
+
+.nope
+ xor a
+ ret
+
+ReviveHalfHP: ; f2ba (3:72ba)
+ call LoadHPFromBuffer1
+ srl d
+ rr e
+ jr ContinueRevive
+
+ReviveFullHP: ; f2c3 (3:72c3)
+ call LoadHPFromBuffer1
+ContinueRevive: ; f2c6 (3:72c6)
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ jp LoadCurHPIntoBuffer5
+
+RestoreHealth: ; f2d1 (3:72d1)
+ ld a, MON_HP + 1
+ call GetPartyParamLocation
+ ld a, [hl]
+ add e
+ ld [hld], a
+ ld a, [hl]
+ adc d
+ ld [hl], a
+ jr c, .full_hp
+ call LoadCurHPIntoBuffer5
+ ld a, MON_HP + 1
+ call GetPartyParamLocation
+ ld d, h
+ ld e, l
+ ld a, MON_MAXHP + 1
+ call GetPartyParamLocation
+ ld a, [de]
+ sub [hl]
+ dec de
+ dec hl
+ ld a, [de]
+ sbc [hl]
+ jr c, .finish
+.full_hp
+ call ReviveFullHP
+.finish
+ ret
+
+RemoveHP: ; f2f9 (3:72f9)
+ ld a, MON_HP + 1
+ call GetPartyParamLocation
+ ld a, [hl]
+ sub e
+ ld [hld], a
+ ld a, [hl]
+ sbc d
+ ld [hl], a
+ jr nc, .okay
+ xor a
+ ld [hld], a
+ ld [hl], a
+.okay
+ call LoadCurHPIntoBuffer5
+ ret
+
+IsMonFainted: ; f30d (3:730d)
+ push de
+ call LoadMaxHPToBuffer1
+ call LoadCurHPToBuffer3
+ call LoadHPFromBuffer3
+ ld a, d
+ or e
+ pop de
+ ret
+
+IsMonAtFullHealth: ; f31b (3:731b)
+ call LoadHPFromBuffer3
+ ld h, d
+ ld l, e
+ call LoadHPFromBuffer1
+ ld a, l
+ sub e
+ ld a, h
+ sbc d
+ ret
+
+LoadCurHPIntoBuffer5: ; f328 (3:7328)
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [Buffer6], a
+ ld a, [hl]
+ ld [Buffer5], a
+ ret
+; f336 (3:7336)
+
+LoadHPIntoBuffer5: ; f336
+ ld a, d
+ ld [Buffer6], a
+ ld a, e
+ ld [Buffer5], a
+ ret
+; f33f
+
+LoadHPFromBuffer5: ; f33f
+ ld a, [Buffer6]
+ ld d, a
+ ld a, [Buffer5]
+ ld e, a
+ ret
+; f348
+
+LoadCurHPToBuffer3: ; f348 (3:7348)
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [Buffer4], a
+ ld a, [hl]
+ ld [Buffer3], a
+ ret
+
+LoadHPFromBuffer3: ; f356 (3:7356)
+ ld a, [Buffer4]
+ ld d, a
+ ld a, [Buffer3]
+ ld e, a
+ ret
+
+LoadMaxHPToBuffer1: ; f35f (3:735f)
+ push hl
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hl]
+ ld [Buffer1], a
+ pop hl
+ ret
+
+LoadHPFromBuffer1: ; f36f (3:736f)
+ ld a, [Buffer2]
+ ld d, a
+ ld a, [Buffer1]
+ ld e, a
+ ret
+
+GetOneFifthMaxHP: ; f378 (3:7378)
+ push bc
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [hDividend + 0], a
+ ld a, [hl]
+ ld [hDividend + 1], a
+ ld a, 5
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+ ld a, [hQuotient + 1]
+ ld d, a
+ ld a, [hQuotient + 2]
+ ld e, a
+ pop bc
+ ret
+
+GetHealingItemAmount: ; f395 (3:7395)
+ push hl
+ ld a, [CurItem]
+ ld hl, .Healing
+ ld d, a
+.next
+ ld a, [hli]
+ cp -1
+ jr z, .NotFound
+ cp d
+ jr z, .done
+ inc hl
+ inc hl
+ jr .next
+
+.NotFound:
+ scf
+.done
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop hl
+ ret
+; f3af (3:73af)
+
+.Healing: ; f3af
+ dbw FRESH_WATER, 50
+ dbw SODA_POP, 60
+ dbw LEMONADE, 80
+ dbw HYPER_POTION, 200
+ dbw SUPER_POTION, 50
+ dbw POTION, 20
+ dbw MAX_POTION, 999
+ dbw FULL_RESTORE, 999
+ dbw MOOMOO_MILK, 100
+ dbw BERRY, 10
+ dbw GOLD_BERRY, 30
+ dbw ENERGYPOWDER, 50
+ dbw ENERGY_ROOT, 200
+ dbw RAGECANDYBAR, 20
+ dbw BERRY_JUICE, 20
+ dbw -1, 0
+; f3df
+
+Softboiled_MilkDrinkFunction: ; f3df (3:73df)
+; Softboiled/Milk Drink in the field
+ ld a, [wPartyMenuCursor]
+ dec a
+ ld b, a
+ call .SelectMilkDrinkRecipient ; select pokemon
+ jr c, .skip
+ ld a, b
+ ld [CurPartyMon], a
+ call IsMonFainted
+ call GetOneFifthMaxHP
+ call RemoveHP
+ push bc
+ call HealHP_SFX_GFX
+ pop bc
+ call GetOneFifthMaxHP
+ ld a, c
+ ld [CurPartyMon], a
+ call IsMonFainted
+ call RestoreHealth
+ call HealHP_SFX_GFX
+ ld a, PARTYMENUTEXT_HEAL_HP
+ call ItemActionText
+ call JoyWaitAorB
+.skip
+ ld a, b
+ inc a
+ ld [wPartyMenuCursor], a
+ ret
+
+.SelectMilkDrinkRecipient: ; f419 (3:7419)
+.loop
+ push bc
+ ld a, PARTYMENUACTION_HEALING_ITEM
+ ld [PartyMenuActionText], a
+ call ChoosePkmnToUseItemOn
+ pop bc
+ jr c, .set_carry
+ ld a, [wPartyMenuCursor]
+ dec a
+ ld c, a
+ ld a, b
+ cp c
+ jr z, .cant_use ; chose the same mon as user
+ ld a, c
+ ld [CurPartyMon], a
+ call IsMonFainted
+ jr z, .cant_use
+ call IsMonAtFullHealth
+ jr nc, .cant_use
+ xor a
+ ret
+
+.set_carry
+ scf
+ ret
+
+.cant_use
+ push bc
+ ld hl, .Text_CantBeUsed
+ call MenuTextBoxBackup
+ pop bc
+ jr .loop
+; f44a (3:744a)
+
+.Text_CantBeUsed: ; 0xf44a
+ ; That can't be used on this #MON.
+ text_jump UnknownText_0x1c5bac
+ db "@"
+; 0xf44f
+
+
+EscapeRope: ; f44f
+ xor a
+ ld [wItemEffectSucceeded], a
+ callba EscapeRopeFunction
+
+ ld a, [wItemEffectSucceeded]
+ cp 1
+ call z, UseDisposableItem
+ ret
+; f462
+
+
+SuperRepel: ; f462
+ ld b, 200
+ jr UseRepel
+; f466
+
+MaxRepel: ; f466
+ ld b, 250
+ jr UseRepel
+; f466
+
+Repel: ; f46a
+ ld b, 100
+; f46c
+
+UseRepel: ; f46c
+ ld a, [wRepelEffect]
+ and a
+ ld hl, TextJump_RepelUsedEarlierIsStillInEffect
+ jp nz, PrintText
+
+ ld a, b
+ ld [wRepelEffect], a
+ jp UseItemText
+
+
+TextJump_RepelUsedEarlierIsStillInEffect: ; 0xf47d
+ ; The REPEL used earlier is still in effect.
+ text_jump Text_RepelUsedEarlierIsStillInEffect
+ db "@"
+; 0xf482
+
+
+XAccuracy: ; f482
+ ld hl, PlayerSubStatus4
+ bit SUBSTATUS_X_ACCURACY, [hl]
+ jp nz, WontHaveAnyEffect_NotUsedMessage
+ set SUBSTATUS_X_ACCURACY, [hl]
+ jp UseItemText
+; f48f
+
+
+PokeDoll: ; f48f
+ ld a, [wBattleMode]
+ dec a
+ jr nz, .asm_f4a6
+ inc a
+ ld [wForcedSwitch], a
+ ld a, [wBattleResult]
+ and 3 << 6
+ or $2
+ ld [wBattleResult], a
+ jp UseItemText
+
+.asm_f4a6
+ xor a
+ ld [wItemEffectSucceeded], a
+ ret
+; f4ab
+
+
+GuardSpec: ; f4ab
+ ld hl, PlayerSubStatus4
+ bit SUBSTATUS_MIST, [hl]
+ jp nz, WontHaveAnyEffect_NotUsedMessage
+ set SUBSTATUS_MIST, [hl]
+ jp UseItemText
+; f4b8
+
+
+DireHit: ; f4b8
+ ld hl, PlayerSubStatus4
+ bit SUBSTATUS_FOCUS_ENERGY, [hl]
+ jp nz, WontHaveAnyEffect_NotUsedMessage
+ set SUBSTATUS_FOCUS_ENERGY, [hl]
+ jp UseItemText
+; f4c5
+
+
+XAttack:
+XDefend:
+XSpeed:
+XSpecial: ; f4c5
+ call UseItemText
+
+ ld a, [CurItem]
+ ld hl, .x_item_table
+
+.loop
+ cp [hl]
+ jr z, .got_it
+ inc hl
+ inc hl
+ jr .loop
+
+.got_it
+ inc hl
+ ld b, [hl]
+ xor a
+ ld [hBattleTurn], a
+ ld [AttackMissed], a
+ ld [EffectFailed], a
+ callba CheckIfStatCanBeRaised
+ call WaitSFX
+
+ callba BattleCommand_StatUpMessage
+ callba BattleCommand_StatUpFailText
+
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ ld c, HAPPINESS_USEDXITEM
+ callba ChangeHappiness
+ ret
+; f504
+
+.x_item_table ; f504
+ db X_ATTACK, ATTACK
+ db X_DEFEND, DEFENSE
+ db X_SPEED, SPEED
+ db X_SPECIAL, SP_ATTACK
+; f50c
+
+
+PokeFlute: ; f50c
+ ld a, [wBattleMode]
+ and a
+ jr nz, .dummy
+.dummy
+
+ xor a
+ ld [wd002], a
+
+ ld b, $ff ^ SLP
+
+ ld hl, PartyMon1Status
+ call .CureSleep
+
+ ld a, [wBattleMode]
+ cp WILD_BATTLE
+ jr z, .skip_otrainer
+ ld hl, OTPartyMon1Status
+ call .CureSleep
+.skip_otrainer
+
+ ld hl, BattleMonStatus
+ ld a, [hl]
+ and b
+ ld [hl], a
+ ld hl, EnemyMonStatus
+ ld a, [hl]
+ and b
+ ld [hl], a
+
+ ld a, [wd002]
+ and a
+ ld hl, .CatchyTune
+ jp z, PrintText
+ ld hl, .PlayedTheFlute
+ call PrintText
+
+ ld a, [Danger]
+ and 1 << DANGER_ON_F
+ jr nz, .dummy2
+.dummy2
+ ld hl, .AllSleepingMonWokeUp
+ jp PrintText
+
+
+.CureSleep:
+ ld de, PARTYMON_STRUCT_LENGTH
+ ld c, PARTY_LENGTH
+
+.loop
+ ld a, [hl]
+ push af
+ and SLP
+ jr z, .not_asleep
+ ld a, 1
+ ld [wd002], a
+.not_asleep
+ pop af
+ and b
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
+; f56c
+
+
+.CatchyTune: ; 0xf56c
+ ; Played the # FLUTE. Now, that's a catchy tune!
+ text_jump UnknownText_0x1c5bf9
+ db "@"
+; 0xf571
+
+.AllSleepingMonWokeUp: ; 0xf571
+ ; All sleeping #MON woke up.
+ text_jump UnknownText_0x1c5c28
+ db "@"
+; 0xf576
+
+.PlayedTheFlute: ; 0xf576
+ ; played the # FLUTE.@ @
+ text_jump UnknownText_0x1c5c44
+ start_asm
+ ld a, [wBattleMode]
+ and a
+ jr nz, .battle
+
+ push de
+ ld de, SFX_POKEFLUTE
+ call WaitPlaySFX
+ call WaitSFX
+ pop de
+
+.battle
+ jp PokeFluteTerminatorCharacter
+; f58f
+
+
+BlueCard: ; f58f
+ ld hl, .bluecardtext
+ jp MenuTextBoxWaitButton
+
+.bluecardtext
+ text_jump UnknownText_0x1c5c5e
+ db "@"
+; f59a
+
+
+CoinCase: ; f59a
+ ld hl, .coincasetext
+ jp MenuTextBoxWaitButton
+
+.coincasetext
+ text_jump UnknownText_0x1c5c7b
+ db "@"
+; f5a5
+
+
+OldRod: ; f5a5
+ ld e, $0
+ jr UseRod
+; f5a9
+
+GoodRod: ; f5a9
+ ld e, $1
+ jr UseRod
+; f5ad
+
+SuperRod: ; f5ad
+ ld e, $2
+ jr UseRod
+; f5b1
+
+UseRod: ; f5b1
+ callba FishFunction
+ ret
+; f5b8
+
+
+Itemfinder: ; f5b8
+ callba ItemFinder
+ ret
+; f5bf
+
+
+MaxElixer:
+PPUp:
+Ether:
+MaxEther:
+Elixer:
+Mysteryberry: ; f5bf
+ ld a, [CurItem]
+ ld [wd002], a
+
+.loop
+ ; Party Screen opens to choose on which Pkmn to use the Item
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, PPRestoreItem_Cancel
+
+.loop2
+ ld a, [wd002]
+ cp MAX_ELIXER
+ jp z, Elixer_RestorePPofAllMoves
+ cp ELIXER
+ jp z, Elixer_RestorePPofAllMoves
+
+ ld hl, TextJump_RaiseThePPOfWhichMove
+ ld a, [wd002]
+ cp PP_UP
+ jr z, .ppup
+ ld hl, TextJump_RestoreThePPOfWhichMove
+
+.ppup
+ call PrintText
+
+ ld a, [CurMoveNum]
+ push af
+ xor a
+ ld [CurMoveNum], a
+ ld a, $2
+ ld [wMoveSelectionMenuType], a
+ callba MoveSelectionScreen
+ pop bc
+
+ ld a, b
+ ld [CurMoveNum], a
+ jr nz, .loop
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call GetMthMoveOfNthPartymon
+
+ push hl
+ ld a, [hl]
+ ld [wd265], a
+ call GetMoveName
+ call CopyName1
+ pop hl
+
+ ld a, [wd002]
+ cp PP_UP
+ jp nz, Not_PP_Up
+
+ ld a, [hl]
+ cp SKETCH
+ jr z, .CantUsePPUpOnSketch
+
+ ld bc, $0015
+ add hl, bc
+ ld a, [hl]
+ cp 3 << 6 ; have 3 PP Ups already been used?
+ jr c, .do_ppup
+
+.CantUsePPUpOnSketch:
+.pp_is_maxed_out
+ ld hl, TextJump_PPIsMaxedOut
+ call PrintText
+ jr .loop2
+
+.do_ppup
+ ld a, [hl]
+ add 1 << 6 ; increase PP Up count by 1
+ ld [hl], a
+ ld a, $1
+ ld [wd265], a
+ call ApplyPPUp
+ call Play_SFX_FULL_HEAL
+
+ ld hl, TextJump_PPsIncreased
+ call PrintText
+
+FinishPPRestore: ; f64c
+ call ClearPalettes
+ jp UseDisposableItem
+; f652
+
+BattleRestorePP: ; f652
+ ld a, [wBattleMode]
+ and a
+ jr z, .not_in_battle
+ ld a, [CurPartyMon]
+ ld b, a
+ ld a, [CurBattleMon]
+ cp b
+ jr nz, .not_in_battle
+ ld a, [PlayerSubStatus5]
+ bit SUBSTATUS_TRANSFORMED, a
+ jr nz, .not_in_battle
+ call .UpdateBattleMonPP
+
+.not_in_battle
+ call Play_SFX_FULL_HEAL
+ ld hl, UnknownText_0xf739
+ call PrintText
+ jr FinishPPRestore
+
+.UpdateBattleMonPP:
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld de, BattleMonMoves
+ ld b, NUM_MOVES
+.loop
+ ld a, [de]
+ and a
+ jr z, .done
+ cp [hl]
+ jr nz, .next
+ push hl
+ push de
+ push bc
+ rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves
+ inc de
+ endr
+ ld bc, MON_PP - MON_MOVES
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ pop bc
+ pop de
+ pop hl
+
+.next
+ inc hl
+ inc de
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+; f6a7
+
+Not_PP_Up: ; f6a7
+ call RestorePP
+ jr nz, BattleRestorePP
+ jp PPRestoreItem_NoEffect
+; f6af
+
+Elixer_RestorePPofAllMoves: ; f6af
+ xor a
+ ld hl, wMenuCursorY
+ ld [hli], a
+ ld [hl], a
+ ld b, NUM_MOVES
+.moveLoop
+ push bc
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call GetMthMoveOfNthPartymon
+ ld a, [hl]
+ and a
+ jr z, .next
+
+ call RestorePP
+ jr z, .next
+ ld hl, wMenuCursorX
+ inc [hl]
+
+.next
+ ld hl, wMenuCursorY
+ inc [hl]
+ pop bc
+ dec b
+ jr nz, .moveLoop
+ ld a, [wMenuCursorX]
+ and a
+ jp nz, BattleRestorePP
+
+PPRestoreItem_NoEffect: ; f6dd
+ call WontHaveAnyEffectMessage
+
+PPRestoreItem_Cancel: ; f6e0
+ call ClearPalettes
+ xor a
+ ld [wItemEffectSucceeded], a
+ ret
+; f6e8
+
+RestorePP: ; f6e8
+ xor a ; PARTYMON
+ ld [MonType], a
+ call GetMaxPPOfMove
+ ld hl, PartyMon1PP
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call GetMthMoveOfNthPartymon
+ ld a, [wd265]
+ ld b, a
+ ld a, [hl]
+ and (1 << 6) - 1
+ cp b
+ jr nc, .dont_restore
+
+ ld a, [wd002]
+ cp MAX_ELIXER
+ jr z, .restore_all
+ cp MAX_ETHER
+ jr z, .restore_all
+
+ ld c, 5
+ cp MYSTERYBERRY
+ jr z, .restore_some
+
+ ld c, 10
+
+.restore_some
+ ld a, [hl]
+ and (1 << 6) - 1
+ add c
+ cp b
+ jr nc, .restore_all
+ ld b, a
+
+.restore_all
+ ld a, [hl]
+ and 3 << 6
+ or b
+ ld [hl], a
+ ret
+
+.dont_restore
+ xor a
+ ret
+; f725
+
+TextJump_RaiseThePPOfWhichMove: ; 0xf725
+ ; Raise the PP of which move?
+ text_jump Text_RaiseThePPOfWhichMove
+ db "@"
+; 0xf72a
+
+TextJump_RestoreThePPOfWhichMove: ; 0xf72a
+ ; Restore the PP of which move?
+ text_jump Text_RestoreThePPOfWhichMove
+ db "@"
+; 0xf72f
+
+TextJump_PPIsMaxedOut: ; 0xf72f
+ ; 's PP is maxed out.
+ text_jump Text_PPIsMaxedOut
+ db "@"
+; 0xf734
+
+TextJump_PPsIncreased: ; 0xf734
+ ; 's PP increased.
+ text_jump Text_PPsIncreased
+ db "@"
+; 0xf739
+
+UnknownText_0xf739: ; 0xf739
+ ; PP was restored.
+ text_jump UnknownText_0x1c5cf1
+ db "@"
+; 0xf73e
+
+
+Squirtbottle: ; f73e
+ callba _Squirtbottle
+ ret
+; f745
+
+
+CardKey: ; f745
+ callba _CardKey
+ ret
+; f74c
+
+
+BasementKey: ; f74c
+ callba _BasementKey
+ ret
+; f753
+
+
+SacredAsh: ; f753
+ callba _SacredAsh
+ ld a, [wItemEffectSucceeded]
+ cp $1
+ ret nz
+ call UseDisposableItem
+ ret
+; f763
+
+
+NormalBox: ; f763
+ ld c, DECOFLAG_SILVER_TROPHY_DOLL
+ jr OpenBox
+; f767
+
+GorgeousBox: ; f767
+ ld c, DECOFLAG_GOLD_TROPHY_DOLL
+OpenBox: ; f769
+ callba SetSpecificDecorationFlag
+
+ ld hl, .text
+ call PrintText
+
+ jp UseDisposableItem
+; f778
+
+.text ; 0xf778
+ ; There was a trophy inside!
+ text_jump UnknownText_0x1c5d03
+ db "@"
+; 0xf77d
+
+Brightpowder:
+Item19:
+LuckyPunch:
+MetalPowder:
+Nugget:
+Item2D:
+Item32:
+ExpShare:
+SilverLeaf:
+RedScale:
+Secretpotion:
+SSTicket:
+MysteryEgg:
+ClearBell:
+SilverWing:
+QuickClaw:
+GoldLeaf:
+SoftSand:
+SharpBeak:
+PoisonBarb:
+KingsRock:
+RedApricorn:
+Tinymushroom:
+BigMushroom:
+Silverpowder:
+BluApricorn:
+Item5A:
+AmuletCoin:
+YlwApricorn:
+GrnApricorn:
+CleanseTag:
+MysticWater:
+Twistedspoon:
+WhtApricorn:
+Blackbelt:
+BlkApricorn:
+Item64:
+PnkApricorn:
+Blackglasses:
+Slowpoketail:
+PinkBow:
+Stick:
+SmokeBall:
+Nevermeltice:
+Magnet:
+Pearl:
+BigPearl:
+Everstone:
+SpellTag:
+GsBall:
+MiracleSeed:
+ThickClub:
+FocusBand:
+Item78:
+HardStone:
+LuckyEgg:
+MachinePart:
+EggTicket:
+LostItem:
+Stardust:
+StarPiece:
+Pass:
+Item87:
+Item88:
+Item89:
+Charcoal:
+ScopeLens:
+Item8D:
+Item8E:
+MetalCoat:
+DragonFang:
+Item91:
+Leftovers:
+Item93:
+Item94:
+Item95:
+DragonScale:
+BerserkGene:
+Item99:
+Item9A:
+Item9B:
+FlowerMail:
+ItemA2:
+LightBall:
+PolkadotBow:
+ItemAB:
+UpGrade:
+ItemB0:
+RainbowWing:
+ItemB3:
+TeruSama: ; f77d
+ jp IsntTheTimeMessage
+; f780
+
+
+Play_SFX_FULL_HEAL: ; f780
+ push de
+ ld de, SFX_FULL_HEAL
+ call WaitPlaySFX
+ pop de
+ ret
+; f789
+
+UseItemText: ; f789
+ ld hl, UsedItemText
+ call PrintText
+ call Play_SFX_FULL_HEAL
+ call WaitPressAorB_BlinkCursor
+UseDisposableItem: ; f795
+ ld hl, NumItems
+ ld a, 1
+ ld [wItemQuantityChangeBuffer], a
+ jp TossItem
+; f7a0
+
+UseBallInTrainerBattle: ; f7a0
+ call ReturnToBattle_UseBall
+ ld de, ANIM_THROW_POKE_BALL
+ ld a, e
+ ld [FXAnimID], a
+ ld a, d
+ ld [FXAnimID + 1], a
+ xor a
+ ld [wBattleAnimParam], a
+ ld [hBattleTurn], a
+ ld [wNumHits], a
+ predef PlayBattleAnim
+ ld hl, BlockedTheBallText
+ call PrintText
+ ld hl, DontBeAThiefText
+ call PrintText
+ jr UseDisposableItem
+; f7ca
+
+WontHaveAnyEffect_NotUsedMessage: ; f7ca
+ ld hl, WontHaveAnyEffectText
+ call PrintText
+
+ ; Item wasn't used.
+ ld a, $2
+ ld [wItemEffectSucceeded], a
+ ret
+; f7d6
+
+LooksBitterMessage: ; f7d6
+ ld hl, LooksBitterText
+ jp PrintText
+; f7dc
+
+Ball_BoxIsFullMessage: ; f7dc
+ ld hl, Ball_BoxIsFullText
+ call PrintText
+
+ ; Item wasn't used.
+ ld a, $2
+ ld [wItemEffectSucceeded], a
+ ret
+; f7e8
+
+CantUseOnEggMessage: ; f7e8
+ ld hl, CantUseOnEggText
+ jr CantUseItemMessage
+
+IsntTheTimeMessage: ; f7ed
+ ld hl, IsntTheTimeText
+ jr CantUseItemMessage
+
+WontHaveAnyEffectMessage: ; f7f2
+ ld hl, WontHaveAnyEffectText
+ jr CantUseItemMessage
+
+BelongsToSomeoneElseMessage: ; f7f7
+ ld hl, BelongsToSomeoneElseText
+ jr CantUseItemMessage
+
+CyclingIsntAllowedMessage: ; f7fc
+ ld hl, CyclingIsntAllowedText
+ jr CantUseItemMessage
+
+CantGetOnYourBikeMessage: ; f801
+ ld hl, CantGetOnYourBikeText
+
+CantUseItemMessage: ; f804
+; Item couldn't be used.
+ xor a
+ ld [wItemEffectSucceeded], a
+ jp PrintText
+; f80b
+
+LooksBitterText: ; 0xf80b
+ ; It looks bitter…
+ text_jump UnknownText_0x1c5d3e
+ db "@"
+; 0xf810
+
+CantUseOnEggText: ; 0xf810
+ ; That can't be used on an EGG.
+ text_jump UnknownText_0x1c5d50
+ db "@"
+; 0xf815
+
+IsntTheTimeText: ; 0xf815
+ ; OAK: ! This isn't the time to use that!
+ text_jump UnknownText_0x1c5d6e
+ db "@"
+; 0xf81a
+
+BelongsToSomeoneElseText: ; 0xf81a
+ ; That belongs to someone else!
+ text_jump UnknownText_0x1c5d97
+ db "@"
+; 0xf81f
+
+WontHaveAnyEffectText: ; 0xf81f
+ ; It won't have any effect.
+ text_jump UnknownText_0x1c5db6
+ db "@"
+; 0xf824
+
+BlockedTheBallText: ; 0xf824
+ ; The trainer blocked the BALL!
+ text_jump UnknownText_0x1c5dd0
+ db "@"
+; 0xf829
+
+DontBeAThiefText: ; 0xf829
+ ; Don't be a thief!
+ text_jump UnknownText_0x1c5def
+ db "@"
+; 0xf82e
+
+CyclingIsntAllowedText: ; 0xf82e
+ ; Cycling isn't allowed here.
+ text_jump UnknownText_0x1c5e01
+ db "@"
+; 0xf833
+
+CantGetOnYourBikeText: ; 0xf833
+ ; Can't get on your @ now.
+ text_jump UnknownText_0x1c5e1d
+ db "@"
+; 0xf838
+
+Ball_BoxIsFullText: ; 0xf838
+ ; The #MON BOX is full. That can't be used now.
+ text_jump UnknownText_0x1c5e3a
+ db "@"
+; 0xf83d
+
+UsedItemText: ; 0xf83d
+ ; used the@ .
+ text_jump UnknownText_0x1c5e68
+ db "@"
+; 0xf842
+
+GotOnTheItemText: ; 0xf842
+ ; got on the@ .
+ text_jump UnknownText_0x1c5e7b
+ db "@"
+; 0xf847
+
+GotOffTheItemText: ; 0xf847
+ ; got off@ the @ .
+ text_jump UnknownText_0x1c5e90
+ db "@"
+; 0xf84c
+
+
+ApplyPPUp: ; f84c
+ ld a, MON_MOVES
+ call GetPartyParamLocation
+ push hl
+ ld de, Buffer1
+ predef FillPP
+ pop hl
+ ld bc, MON_PP - MON_MOVES
+ add hl, bc
+ ld de, Buffer1
+ ld b, 0
+.loop
+ inc b
+ ld a, b
+ cp NUM_MOVES + 1
+ ret z
+ ld a, [wd265]
+ dec a
+ jr nz, .use
+ ld a, [wMenuCursorY]
+ inc a
+ cp b
+ jr nz, .skip
+
+.use
+ ld a, [hl]
+ and 3 << 6
+ ld a, [de] ; wasted cycle
+ call nz, ComputeMaxPP
+
+.skip
+ inc hl
+ inc de
+ jr .loop
+; f881
+
+
+
+ComputeMaxPP: ; f881
+ push bc
+ ; Divide the base PP by 5.
+ ld a, [de]
+ ld [hDividend + 3], a
+ xor a
+ ld [hDividend], a
+ ld [hDividend + 1], a
+ ld [hDividend + 2], a
+ ld a, 5
+ ld [hDivisor], a
+ ld b, 4
+ call Divide
+ ; Get the number of PP, which are bits 6 and 7 of the PP value stored in RAM.
+ ld a, [hl]
+ ld b, a
+ swap a
+ and $f
+ srl a
+ srl a
+ ld c, a
+ ; If this value is 0, we are done
+ and a
+ jr z, .NoPPUp
+
+.loop
+ ; Normally, a move with 40 PP would have 64 PP with three PP Ups.
+ ; Since this would overflow into bit 6, we prevent that from happening
+ ; by decreasing the extra amount of PP each PP Up provides, resulting
+ ; in a maximum of 61.
+ ld a, [hQuotient + 2]
+ cp $8
+ jr c, .okay
+ ld a, $7
+
+.okay
+ add b
+ ld b, a
+ ld a, [wd265]
+ dec a
+ jr z, .NoPPUp
+ dec c
+ jr nz, .loop
+
+.NoPPUp:
+ ld [hl], b
+ pop bc
+ ret
+; f8b9
+
+RestoreAllPP: ; f8b9
+ ld a, MON_PP
+ call GetPartyParamLocation
+ push hl
+ ld a, MON_MOVES
+ call GetPartyParamLocation
+ pop de
+ xor a ; PARTYMON
+ ld [wMenuCursorY], a
+ ld [MonType], a
+ ld c, NUM_MOVES
+.loop
+ ld a, [hli]
+ and a
+ ret z
+ push hl
+ push de
+ push bc
+ call GetMaxPPOfMove
+ pop bc
+ pop de
+ ld a, [de]
+ and 3 << 6
+ ld b, a
+ ld a, [wd265]
+ add b
+ ld [de], a
+ inc de
+ ld hl, wMenuCursorY
+ inc [hl]
+ pop hl
+ dec c
+ jr nz, .loop
+ ret
+; f8ec
+
+
+GetMaxPPOfMove: ; f8ec
+ ld a, [StringBuffer1 + 0]
+ push af
+ ld a, [StringBuffer1 + 1]
+ push af
+
+ ld a, [MonType]
+ and a
+
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ jr z, .got_partymon ; PARTYMON
+
+ ld hl, OTPartyMon1Moves
+ dec a
+ jr z, .got_partymon ; OTPARTYMON
+
+ ld hl, TempMonMoves
+ dec a
+ jr z, .got_nonpartymon ; BOXMON
+
+ ld hl, TempMonMoves ; Wasted cycles
+ dec a
+ jr z, .got_nonpartymon ; TEMPMON
+
+ ld hl, BattleMonMoves ; WILDMON
+
+.got_nonpartymon ; BOXMON, TEMPMON, WILDMON
+ call GetMthMoveOfCurrentMon
+ jr .gotdatmove
+
+.got_partymon ; PARTYMON, OTPARTYMON
+ call GetMthMoveOfNthPartymon
+
+.gotdatmove
+ ld a, [hl]
+ dec a
+
+ push hl
+ ld hl, Moves + MOVE_PP
+ ld bc, MOVE_LENGTH
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+ ld b, a
+ ld de, StringBuffer1
+ ld [de], a
+ pop hl
+
+ push bc
+ ld bc, MON_PP - MON_MOVES
+ ld a, [MonType]
+ cp WILDMON
+ jr nz, .notwild
+ ld bc, EnemyMonPP - EnemyMonMoves
+.notwild
+ add hl, bc
+ ld a, [hl]
+ and 3 << 6
+ pop bc
+
+ or b
+ ld hl, StringBuffer1 + 1
+ ld [hl], a
+ xor a
+ ld [wd265], a
+ ld a, b ; this gets lost anyway
+ call ComputeMaxPP
+ ld a, [hl]
+ and (1 << 6) - 1
+ ld [wd265], a
+
+ pop af
+ ld [StringBuffer1 + 1], a
+ pop af
+ ld [StringBuffer1 + 0], a
+ ret
+; f963
+
+GetMthMoveOfNthPartymon: ; f963
+ ld a, [CurPartyMon]
+ call AddNTimes
+
+GetMthMoveOfCurrentMon: ; f969
+ ld a, [wMenuCursorY]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ret
+; f971
+
+INCLUDE "engine/pokeball_wobble.asm"
--- /dev/null
+++ b/engine/knows_move.asm
@@ -1,0 +1,25 @@
+KnowsMove: ; f9ea
+ ld a, MON_MOVES
+ call GetPartyParamLocation
+ ld a, [wPutativeTMHMMove]
+ ld b, a
+ ld c, NUM_MOVES
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .knows_move
+ dec c
+ jr nz, .loop
+ and a
+ ret
+
+.knows_move
+ ld hl, .Text_knows
+ call PrintText
+ scf
+ ret
+
+.Text_knows: ; 0xfa06
+ ; knows @ .
+ text_jump UnknownText_0x1c5ea8
+ db "@"
--- a/engine/landmarks.asm
+++ b/engine/landmarks.asm
@@ -47,7 +47,7 @@
; 0x1ca8c3
-INCLUDE "data/landmarks.asm"
+INCLUDE "data/maps/landmarks.asm"
RegionCheck: ; 0x1caea1
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -2034,7 +2034,7 @@
ret
; 28f24
-INCLUDE "engine/trade/animation.asm"
+INCLUDE "engine/trade_animation.asm"
Special_CheckTimeCapsuleCompatibility: ; 29bfb
; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar:
@@ -2577,7 +2577,18 @@
ret
; 29f54
-GFX_29f54: ; 29f54
+UnusedGen1LinkCommsBorderGFX: ; 29f54
; unreferenced
-INCBIN "gfx/unknown/unused_border.2bpp"
+INCBIN "gfx/trade/unused_gen_1_border_tiles.2bpp"
; 29fe4
+
+Function29fe4: ; unreferenced
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ ld d, $0
+ ld b, CHECK_FLAG
+ predef FlagPredef
+ call CloseSRAM
+ ld a, c
+ and a
+ ret
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -1,6 +1,4 @@
-
INCLUDE "data/facings.asm"
-
INCLUDE "data/map_objects.asm"
--- /dev/null
+++ b/engine/map_objects_2.asm
@@ -1,0 +1,70 @@
+LoadObjectMasks: ; 2454f
+ ld hl, wObjectMasks
+ xor a
+ ld bc, NUM_OBJECTS
+ call ByteFill
+ nop
+ ld bc, MapObjects
+ ld de, wObjectMasks
+ xor a
+.loop
+ push af
+ push bc
+ push de
+ call GetObjectTimeMask
+ jr c, .next
+ call CheckObjectFlag
+.next
+ pop de
+ ld [de], a
+ inc de
+ pop bc
+ ld hl, OBJECT_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop af
+ inc a
+ cp NUM_OBJECTS
+ jr nz, .loop
+ ret
+
+CheckObjectFlag: ; 2457d (9:457d)
+ ld hl, MAPOBJECT_SPRITE
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .masked
+ ld hl, MAPOBJECT_EVENT_FLAG
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ cp -1
+ jr nz, .check
+ ld a, e
+ cp -1
+ jr z, .unmasked
+ jr .masked
+.check
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ld a, c
+ and a
+ jr nz, .masked
+.unmasked
+ xor a
+ ret
+
+.masked
+ ld a, -1
+ scf
+ ret
+
+GetObjectTimeMask: ; 245a7 (9:45a7)
+ call CheckObjectTime
+ ld a, -1
+ ret c
+ xor a
+ ret
--- /dev/null
+++ b/engine/map_palettes.asm
@@ -1,0 +1,86 @@
+SwapTextboxPalettes:: ; 4c000
+ hlcoord 0, 0
+ decoord 0, 0, AttrMap
+ ld b, SCREEN_HEIGHT
+.loop
+ push bc
+ ld c, SCREEN_WIDTH
+.innerloop
+ ld a, [hl]
+ push hl
+ srl a
+ jr c, .UpperNybble
+ ld hl, TilesetPalettes
+ add [hl]
+ ld l, a
+ ld a, [TilesetPalettes + 1]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ and $f
+ jr .next
+
+.UpperNybble:
+ ld hl, TilesetPalettes
+ add [hl]
+ ld l, a
+ ld a, [TilesetPalettes + 1]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and $f
+
+.next
+ pop hl
+ ld [de], a
+ res 7, [hl]
+ inc hl
+ inc de
+ dec c
+ jr nz, .innerloop
+ pop bc
+ dec b
+ jr nz, .loop
+ ret
+
+ScrollBGMapPalettes:: ; 4c03f
+ ld hl, BGMapBuffer
+ ld de, BGMapPalBuffer
+.loop
+ ld a, [hl]
+ push hl
+ srl a
+ jr c, .UpperNybble
+
+; .LowerNybble
+ ld hl, TilesetPalettes
+ add [hl]
+ ld l, a
+ ld a, [TilesetPalettes + 1]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ and $f
+ jr .next
+
+.UpperNybble:
+ ld hl, TilesetPalettes
+ add [hl]
+ ld l, a
+ ld a, [TilesetPalettes + 1]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and $f
+
+.next
+ pop hl
+ ld [de], a
+ res 7, [hl]
+ inc hl
+ inc de
+ dec c
+ jr nz, .loop
+ ret
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -356,7 +356,7 @@
ld a, [PlayerState]
cp PLAYER_NORMAL
jr z, .nope
- cp PLAYER_SLIP
+ cp PLAYER_SKATE
jr z, .nope
cp PLAYER_SURF
jr z, .surfing
--- a/engine/mart.asm
+++ b/engine/mart.asm
@@ -99,23 +99,7 @@
ret
; 15aee
-RooftopSaleData1: ; 15aee
- db 5
- dbw POKE_BALL, 150
- dbw GREAT_BALL, 500
- dbw SUPER_POTION, 500
- dbw FULL_HEAL, 500
- dbw REVIVE, 1200
- db -1
-RooftopSaleData2: ; 15aff
- db 5
- dbw HYPER_POTION, 1000
- dbw FULL_RESTORE, 2000
- dbw FULL_HEAL, 500
- dbw ULTRA_BALL, 1000
- dbw PROTEIN, 7800
- db -1
-; 15b10
+INCLUDE "data/items/rooftop_sale.asm"
LoadMartPointer: ; 15b10
ld a, b
@@ -355,15 +339,7 @@
ret
; 15c51
-BargainShopData: ; 15c51
- db 5
- dbw NUGGET, 4500
- dbw PEARL, 650
- dbw BIG_PEARL, 3500
- dbw STARDUST, 900
- dbw STAR_PIECE, 4600
- db -1
-; 15c62
+INCLUDE "data/items/bargain_shop.asm"
BuyMenu: ; 15c62
--- /dev/null
+++ b/engine/menu_2.asm
@@ -1,0 +1,263 @@
+PlaceMenuItemName: ; 0x24ab4
+ push de
+ ld a, [MenuSelection]
+ ld [wNamedObjectIndexBuffer], a
+ call GetItemName
+ pop hl
+ call PlaceString
+ ret
+
+PlaceMenuItemQuantity: ; 0x24ac3
+ push de
+ ld a, [MenuSelection]
+ ld [CurItem], a
+ callba _CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ pop hl
+ and a
+ jr nz, .done
+ ld de, $15
+ add hl, de
+ ld [hl], "×"
+ inc hl
+ ld de, MenuSelectionQuantity
+ lb bc, 1, 2
+ call PrintNum
+
+.done
+ ret
+
+PlaceMoneyTopRight: ; 24ae8
+ ld hl, MenuDataHeader_0x24b15
+ call CopyMenuDataHeader
+ jr PlaceMoneyDataHeader
+
+PlaceMoneyBottomLeft: ; 24af0
+ ld hl, MenuDataHeader_0x24b1d
+ call CopyMenuDataHeader
+ jr PlaceMoneyDataHeader
+
+PlaceMoneyAtTopLeftOfTextbox: ; 24af8
+ ld hl, MenuDataHeader_0x24b15
+ lb de, 0, 11
+ call OffsetMenuDataHeader
+
+PlaceMoneyDataHeader: ; 24b01
+ call MenuBox
+ call MenuBoxCoord2Tile
+ ld de, SCREEN_WIDTH + 1
+ add hl, de
+ ld de, Money
+ lb bc, PRINTNUM_MONEY | 3, 6
+ call PrintNum
+ ret
+
+MenuDataHeader_0x24b15: ; 0x24b15
+ db $40 ; flags
+ db 00, 11 ; start coords
+ db 02, 19 ; end coords
+ dw NULL
+ db 1 ; default option
+
+MenuDataHeader_0x24b1d: ; 0x24b1d
+ db $40 ; flags
+ db 11, 00 ; start coords
+ db 13, 08 ; end coords
+ dw NULL
+ db 1 ; default option
+
+Special_DisplayCoinCaseBalance: ; 24b25
+ ; Place a text box of size 1x7 at 11, 0.
+ hlcoord 11, 0
+ ld b, 1
+ ld c, 7
+ call TextBox
+ hlcoord 12, 0
+ ld de, CoinString
+ call PlaceString
+ hlcoord 17, 1
+ ld de, ShowMoney_TerminatorString
+ call PlaceString
+ ld de, Coins
+ lb bc, 2, 4
+ hlcoord 13, 1
+ call PrintNum
+ ret
+
+Special_DisplayMoneyAndCoinBalance: ; 24b4e
+ hlcoord 5, 0
+ ld b, 3
+ ld c, 13
+ call TextBox
+ hlcoord 6, 1
+ ld de, MoneyString
+ call PlaceString
+ hlcoord 12, 1
+ ld de, Money
+ lb bc, PRINTNUM_MONEY | 3, 6
+ call PrintNum
+ hlcoord 6, 3
+ ld de, CoinString
+ call PlaceString
+ hlcoord 15, 3
+ ld de, Coins
+ lb bc, 2, 4
+ call PrintNum
+ ret
+
+MoneyString: ; 24b83
+ db "MONEY@"
+CoinString: ; 24b89
+ db "COIN@"
+ShowMoney_TerminatorString: ; 24b8e
+ db "@"
+
+Function24b8f: ; 24b8f
+; unreferenced, related to safari?
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ hlcoord 0, 0
+ ld b, 3
+ ld c, 7
+ call TextBox
+ hlcoord 1, 1
+ ld de, wSafariTimeRemaining
+ lb bc, 2, 3
+ call PrintNum
+ hlcoord 4, 1
+ ld de, .slash_500
+ call PlaceString
+ hlcoord 1, 3
+ ld de, .booru_ko
+ call PlaceString
+ hlcoord 5, 3
+ ld de, wSafariBallsRemaining
+ lb bc, 1, 2
+ call PrintNum
+ pop af
+ ld [Options], a
+ ret
+
+.slash_500 ; 24bcf
+ db "/500@"
+.booru_ko ; 24bd4
+ db "ボール こ@"
+
+StartMenu_DrawBugContestStatusBox: ; 24bdc
+ hlcoord 0, 0
+ ld b, 5
+ ld c, 17
+ call TextBox
+ ret
+
+StartMenu_PrintBugContestStatus: ; 24be7
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call StartMenu_DrawBugContestStatusBox
+ hlcoord 1, 5
+ ld de, .Balls_EN
+ call PlaceString
+ hlcoord 8, 5
+ ld de, wParkBallsRemaining
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 2
+ call PrintNum
+ hlcoord 1, 1
+ ld de, .CAUGHT
+ call PlaceString
+ ld a, [wContestMon]
+ and a
+ ld de, .None
+ jr z, .no_contest_mon
+ ld [wd265], a
+ call GetPokemonName
+
+.no_contest_mon
+ hlcoord 8, 1
+ call PlaceString
+ ld a, [wContestMon]
+ and a
+ jr z, .skip_level
+ hlcoord 1, 3
+ ld de, .LEVEL
+ call PlaceString
+ ld a, [wContestMonLevel]
+ ld h, b
+ ld l, c
+ inc hl
+ ld c, 3
+ call Print8BitNumRightAlign
+
+.skip_level
+ pop af
+ ld [Options], a
+ ret
+
+.Balls_JP: ; 24c43
+ db "ボール こ@"
+.CAUGHT: ; 24c4b
+ db "CAUGHT@"
+.Balls_EN: ; 24c52
+ db "BALLS:@"
+.None: ; 24c59
+ db "None@"
+.LEVEL: ; 24c5e
+ db "LEVEL@"
+
+FindApricornsInBag: ; 24c64
+; Checks the bag for Apricorns.
+ ld hl, Buffer1
+ xor a
+ ld [hli], a
+ dec a
+ ld bc, 10
+ call ByteFill
+
+ ld hl, .ApricornBalls
+.loop
+ ld a, [hl]
+ cp -1
+ jr z, .done
+ push hl
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ pop hl
+ jr nc, .nope
+ ld a, [hl]
+ call .addtobuffer
+.nope
+ inc hl
+ inc hl
+ jr .loop
+
+.done
+ ld a, [Buffer1]
+ and a
+ ret nz
+ scf
+ ret
+
+.addtobuffer ; 24c94
+ push hl
+ ld hl, Buffer1
+ inc [hl]
+ ld e, [hl]
+ ld d, 0
+ add hl, de
+ ld [hl], a
+ pop hl
+ ret
+
+.ApricornBalls: ; 24ca0
+ db RED_APRICORN, LEVEL_BALL
+ db BLU_APRICORN, LURE_BALL
+ db YLW_APRICORN, MOON_BALL
+ db GRN_APRICORN, FRIEND_BALL
+ db WHT_APRICORN, FAST_BALL
+ db BLK_APRICORN, HEAVY_BALL
+ db PNK_APRICORN, LOVE_BALL
+ db -1
--- a/engine/mon_icons.asm
+++ b/engine/mon_icons.asm
@@ -466,7 +466,7 @@
; 8eac4
-INCLUDE "data/mon_menu_icons.asm"
+INCLUDE "data/pokemon/menu_icons.asm"
INCLUDE "gfx/icon_pointers.asm"
--- /dev/null
+++ b/engine/mon_stats.asm
@@ -1,0 +1,486 @@
+DrawPlayerHP: ; 50b0a
+ ld a, $1
+ jr DrawHP
+
+DrawEnemyHP: ; 50b0e
+ ld a, $2
+
+DrawHP: ; 50b10
+ ld [wWhichHPBar], a
+ push hl
+ push bc
+ ; box mons have full HP
+ ld a, [MonType]
+ cp BOXMON
+ jr z, .at_least_1_hp
+
+ ld a, [TempMonHP]
+ ld b, a
+ ld a, [TempMonHP + 1]
+ ld c, a
+
+; Any HP?
+ or b
+ jr nz, .at_least_1_hp
+
+ xor a
+ ld c, a
+ ld e, a
+ ld a, 6
+ ld d, a
+ jp .fainted
+
+.at_least_1_hp
+ ld a, [TempMonMaxHP]
+ ld d, a
+ ld a, [TempMonMaxHP + 1]
+ ld e, a
+ ld a, [MonType]
+ cp BOXMON
+ jr nz, .not_boxmon
+
+ ld b, d
+ ld c, e
+
+.not_boxmon
+ predef ComputeHPBarPixels
+ ld a, 6
+ ld d, a
+ ld c, a
+
+.fainted
+ ld a, c
+ pop bc
+ ld c, a
+ pop hl
+ push de
+ push hl
+ push hl
+ call DrawBattleHPBar
+ pop hl
+
+; Print HP
+ bccoord 1, 1, 0
+ add hl, bc
+ ld de, TempMonHP
+ ld a, [MonType]
+ cp BOXMON
+ jr nz, .not_boxmon_2
+ ld de, TempMonMaxHP
+.not_boxmon_2
+ lb bc, 2, 3
+ call PrintNum
+
+ ld a, "/"
+ ld [hli], a
+
+; Print max HP
+ ld de, TempMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+ pop hl
+ pop de
+ ret
+
+PrintTempMonStats: ; 50b7b
+; Print TempMon's stats at hl, with spacing bc.
+ push bc
+ push hl
+ ld de, .StatNames
+ call PlaceString
+ pop hl
+ pop bc
+ add hl, bc
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld de, TempMonAttack
+ lb bc, 2, 3
+ call .PrintStat
+ ld de, TempMonDefense
+ call .PrintStat
+ ld de, TempMonSpclAtk
+ call .PrintStat
+ ld de, TempMonSpclDef
+ call .PrintStat
+ ld de, TempMonSpeed
+ jp PrintNum
+
+.PrintStat: ; 50bab
+ push hl
+ call PrintNum
+ pop hl
+ ld de, SCREEN_WIDTH * 2
+ add hl, de
+ ret
+
+.StatNames: ; 50bb5
+ db "ATTACK"
+ next "DEFENSE"
+ next "SPCL.ATK"
+ next "SPCL.DEF"
+ next "SPEED"
+ next "@"
+
+GetGender: ; 50bdd
+; Return the gender of a given monster (CurPartyMon/CurOTMon/CurWildMon).
+; When calling this function, a should be set to an appropriate MonType value.
+
+; return values:
+; a = 1: f = nc|nz; male
+; a = 0: f = nc|z; female
+; f = c: genderless
+
+; This is determined by comparing the Attack and Speed DVs
+; with the species' gender ratio.
+
+; Figure out what type of monster struct we're looking at.
+
+; 0: PartyMon
+ ld hl, PartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [MonType]
+ and a
+ jr z, .PartyMon
+
+; 1: OTPartyMon
+ ld hl, OTPartyMon1DVs
+ dec a
+ jr z, .PartyMon
+
+; 2: sBoxMon
+ ld hl, sBoxMon1DVs
+ ld bc, BOXMON_STRUCT_LENGTH
+ dec a
+ jr z, .sBoxMon
+
+; 3: Unknown
+ ld hl, TempMonDVs
+ dec a
+ jr z, .DVs
+
+; else: WildMon
+ ld hl, EnemyMonDVs
+ jr .DVs
+
+; Get our place in the party/box.
+
+.PartyMon:
+.sBoxMon
+ ld a, [CurPartyMon]
+ call AddNTimes
+
+.DVs:
+
+; sBoxMon data is read directly from SRAM.
+ ld a, [MonType]
+ cp BOXMON
+ ld a, 1
+ call z, GetSRAMBank
+
+; Attack DV
+ ld a, [hli]
+ and $f0
+ ld b, a
+; Speed DV
+ ld a, [hl]
+ and $f0
+ swap a
+
+; Put our DVs together.
+ or b
+ ld b, a
+
+; Close SRAM if we were dealing with a sBoxMon.
+ ld a, [MonType]
+ cp BOXMON
+ call z, CloseSRAM
+
+; We need the gender ratio to do anything with this.
+ push bc
+ ld a, [CurPartySpecies]
+ dec a
+ ld hl, BaseData + BASE_GENDER
+ ld bc, BASE_DATA_SIZE
+ call AddNTimes
+ pop bc
+
+ ld a, BANK(BaseData)
+ call GetFarByte
+
+; The higher the ratio, the more likely the monster is to be female.
+
+ cp GENDERLESS
+ jr z, .Genderless
+
+ and a ; GENDER_F0?
+ jr z, .Male
+
+ cp GENDER_F100
+ jr z, .Female
+
+; Values below the ratio are male, and vice versa.
+ cp b
+ jr c, .Male
+
+.Female:
+ xor a
+ ret
+
+.Male:
+ ld a, 1
+ and a
+ ret
+
+.Genderless:
+ scf
+ ret
+
+ListMovePP: ; 50c50
+ ld a, [wNumMoves]
+ inc a
+ ld c, a
+ ld a, NUM_MOVES
+ sub c
+ ld b, a
+ push hl
+ ld a, [Buffer1]
+ ld e, a
+ ld d, $0
+ ld a, $3e ; P
+ call .load_loop
+ ld a, b
+ and a
+ jr z, .skip
+ ld c, a
+ ld a, "-"
+ call .load_loop
+
+.skip
+ pop hl
+ inc hl
+ inc hl
+ inc hl
+ ld d, h
+ ld e, l
+ ld hl, TempMonMoves
+ ld b, 0
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ push bc
+ push hl
+ push de
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ push af
+ ld [hl], b
+ push hl
+ callab GetMaxPPOfMove
+ pop hl
+ pop af
+ ld [hl], a
+ pop de
+ pop hl
+ push hl
+ ld bc, TempMonPP - (TempMonMoves + 1)
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld [StringBuffer1 + 4], a
+ ld h, d
+ ld l, e
+ push hl
+ ld de, StringBuffer1 + 4
+ lb bc, 1, 2
+ call PrintNum
+ ld a, "/"
+ ld [hli], a
+ ld de, wd265
+ lb bc, 1, 2
+ call PrintNum
+ pop hl
+ ld a, [Buffer1]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ pop bc
+ inc b
+ ld a, b
+ cp NUM_MOVES
+ jr nz, .loop
+
+.done
+ ret
+
+.load_loop ; 50cc9
+ ld [hli], a
+ ld [hld], a
+ add hl, de
+ dec c
+ jr nz, .load_loop
+ ret
+
+Function50cd0: ; 50cd0
+; XXX
+.loop
+ ld [hl], $32
+ inc hl
+ ld [hl], $3e
+ dec hl
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
+
+Predef22: ; unreferenced predef
+ push hl
+ push hl
+ ld hl, PartyMonNicknames
+ ld a, [CurPartyMon]
+ call GetNick
+ pop hl
+ call PlaceString
+ call CopyPkmnToTempMon
+ pop hl
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ push hl
+ ld bc, -12
+ add hl, bc
+ ld b, $0
+ call DrawEnemyHP
+ pop hl
+ ld bc, 5
+ add hl, bc
+ push de
+ call PrintLevel
+ pop de
+
+.egg
+ ret
+
+PlaceStatusString: ; 50d0a
+ push de
+ inc de
+ inc de
+ ld a, [de]
+ ld b, a
+ inc de
+ ld a, [de]
+ or b
+ pop de
+ jr nz, PlaceNonFaintStatus
+ push de
+ ld de, FntString
+ call CopyStatusString
+ pop de
+ ld a, $1
+ and a
+ ret
+
+FntString: ; 50d22
+ db "FNT@"
+
+CopyStatusString: ; 50d25
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ ret
+
+PlaceNonFaintStatus: ; 50d2e
+ push de
+ ld a, [de]
+ ld de, PsnString
+ bit PSN, a
+ jr nz, .place
+ ld de, BrnString
+ bit BRN, a
+ jr nz, .place
+ ld de, FrzString
+ bit FRZ, a
+ jr nz, .place
+ ld de, ParString
+ bit PAR, a
+ jr nz, .place
+ ld de, SlpString
+ and SLP
+ jr z, .no_status
+
+.place
+ call CopyStatusString
+ ld a, $1
+ and a
+
+.no_status
+ pop de
+ ret
+
+SlpString: db "SLP@"
+PsnString: db "PSN@"
+BrnString: db "BRN@"
+FrzString: db "FRZ@"
+ParString: db "PAR@"
+
+ListMoves: ; 50d6f
+; List moves at hl, spaced every [Buffer1] tiles.
+ ld de, wListMoves_MoveIndicesBuffer
+ ld b, $0
+.moves_loop
+ ld a, [de]
+ inc de
+ and a
+ jr z, .no_more_moves
+ push de
+ push hl
+ push hl
+ ld [CurSpecies], a
+ ld a, MOVE_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ ld de, StringBuffer1
+ pop hl
+ push bc
+ call PlaceString
+ pop bc
+ ld a, b
+ ld [wNumMoves], a
+ inc b
+ pop hl
+ push bc
+ ld a, [Buffer1]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ pop bc
+ pop de
+ ld a, b
+ cp NUM_MOVES
+ jr z, .done
+ jr .moves_loop
+
+.no_more_moves
+ ld a, b
+.nonmove_loop
+ push af
+ ld [hl], "-"
+ ld a, [Buffer1]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ pop af
+ inc a
+ cp NUM_MOVES
+ jr nz, .nonmove_loop
+
+.done
+ ret
--- /dev/null
+++ b/engine/mystery_gift.asm
@@ -1,0 +1,1735 @@
+DoMysteryGift: ; 1048ba (41:48ba)
+ call ClearTileMap
+ call ClearSprites
+ call WaitBGMap
+ call InitMysteryGiftLayout
+ hlcoord 3, 8
+ ld de, .String_PressAToLink_BToCancel
+ call PlaceString
+ call WaitBGMap
+ callba PrepMysteryGiftDataToSend
+ call MysteryGift_ClearTrainerData
+ ld a, $2
+ ld [wca01], a
+ ld a, $14
+ ld [wca02], a
+ ld a, [rIE]
+ push af
+
+ call Function104a95
+
+ ld d, a
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ push de
+ call ClearTileMap
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ call SetPalettes
+ pop de
+ hlcoord 2, 8
+ ld a, d
+ ld de, .Text_LinkCanceled ; Link has been canceled
+ cp $10
+ jp z, .LinkCanceled
+ cp $6c
+ jp nz, .CommunicationError
+ ld a, [wc900]
+ cp 3
+ jr z, .skip_checks
+ call .CheckAlreadyGotFiveGiftsToday
+ ld hl, .Text_MaxFiveGifts ; Only 5 gifts a day
+ jp nc, .PrintTextAndExit
+ call .CheckAlreadyGotAGiftFromThatPerson
+ ld hl, .Text_MaxOneGiftPerPerson ; Only one gift a day per person
+ jp c, .PrintTextAndExit
+.skip_checks
+ ld a, [wMysteryGiftPlayerBackupItem]
+ and a
+ jp nz, .GiftWaiting
+ ld a, [wMysteryGiftPartnerBackupItem]
+ and a
+ jp nz, .FriendNotReady
+ ld a, [wc900]
+ cp 3
+ jr z, .skip_append_save
+ call .AddMysteryGiftPartnerID
+ ld a, [wc900]
+ cp 4
+ jr z, .skip_append_save
+ call .SaveMysteryGiftTrainerName
+ callba RestoreMobileEventIndex
+ callba TrainerRankings_MysteryGift
+ callba BackupMobileEventIndex
+.skip_append_save
+ ld a, [wMysteryGiftPartnerSentDeco]
+ and a
+ jr z, .item
+ ld a, [wMysteryGiftPartnerWhichDeco]
+ ld c, a
+ callba MysteryGiftGetDecoration
+ push bc
+ call MysteryGift_CheckAndSetDecorationAlreadyReceived
+ pop bc
+ jr nz, .item
+ callab GetDecorationName_c
+ ld h, d
+ ld l, e
+ ld de, StringBuffer1
+ ld bc, ITEM_NAME_LENGTH
+ call CopyBytes
+ ld hl, .Text_SentToHome ; sent decoration to home
+ jr .PrintTextAndExit
+
+.item
+ call GetMysteryGiftBank
+ ld a, [wMysteryGiftPartnerWhichItem]
+ ld c, a
+ callba MysteryGiftGetItemHeldEffect
+ ld a, c
+ ld [sBackupMysteryGiftItem], a
+ ld [wNamedObjectIndexBuffer], a
+ call CloseSRAM
+ call GetItemName
+ ld hl, .Text_Sent ; sent item
+ jr .PrintTextAndExit
+
+.LinkCanceled: ; 1049af (41:49af)
+ ld hl, .Text_LinkCanceled ; Link has been canceled
+ jr .PrintTextAndExit
+
+.CommunicationError: ; 1049b4 (41:49b4)
+ ld hl, .Text_CommunicationError ; Communication error
+ call PrintText
+ jp DoMysteryGift
+
+.GiftWaiting: ; 1049bd (41:49bd)
+ ld hl, .Text_ReceiveGiftAtCounter ; receive gift at counter
+ jr .PrintTextAndExit
+
+.FriendNotReady: ; 1049c2 (41:49c2)
+ ld hl, .Text_FriendNotReady ; friend not ready
+
+.PrintTextAndExit: ; 1049c5 (41:49c5)
+ call PrintText
+ ld a, $e3
+ ld [rLCDC], a
+ ret
+; 1049cd (41:49cd)
+
+.String_PressAToLink_BToCancel: ; 1049cd
+ db "Press A to"
+ next "link IR-Device"
+ next "Press B to"
+ next "cancel it."
+ db "@"
+; 1049fd
+
+.Text_LinkCanceled: ; 1049fd
+ text_jump UnknownText_0x1c0436
+ db "@"
+; 104a02
+
+.Text_CommunicationError: ; 104a02
+ text_jump UnknownText_0x1c0454
+ db "@"
+; 104a07
+
+.Text_ReceiveGiftAtCounter: ; 104a07
+ text_jump UnknownText_0x1c046a
+ db "@"
+; 104a0c
+
+.Text_FriendNotReady: ; 104a0c
+ text_jump UnknownText_0x1c048e
+ db "@"
+; 104a11
+
+.Text_MaxFiveGifts: ; 104a11
+ text_jump UnknownText_0x1c04a7
+ db "@"
+; 104a16
+
+.Text_MaxOneGiftPerPerson: ; 104a16
+ text_jump UnknownText_0x1c04c6
+ db "@"
+; 104a1b
+
+.Text_Sent: ; 104a1b
+ text_jump UnknownText_0x1c04e9
+ db "@"
+; 104a20
+
+.Text_SentToHome: ; 104a20
+ text_jump UnknownText_0x1c04fa
+ db "@"
+; 104a25
+
+.CheckAlreadyGotFiveGiftsToday: ; 104a25 (41:4a25)
+ call GetMysteryGiftBank
+ ld a, [sNumDailyMysteryGiftPartnerIDs]
+ cp $5
+ jp CloseSRAM
+
+.CheckAlreadyGotAGiftFromThatPerson: ; 104a30 (41:4a30)
+ call GetMysteryGiftBank
+ ld a, [wMysteryGiftPartnerID]
+ ld b, a
+ ld a, [wMysteryGiftPartnerID + 1]
+ ld c, a
+ ld a, [sNumDailyMysteryGiftPartnerIDs]
+ ld d, a
+ ld hl, sDailyMysteryGiftPartnerIDs
+.loop
+ ld a, d
+ and a
+ jr z, .No
+ ld a, [hli]
+ cp b
+ jr nz, .skip
+ ld a, [hl]
+ cp c
+ jr z, .Yes
+.skip
+ inc hl
+ dec d
+ jr .loop
+.Yes:
+ scf
+.No:
+ jp CloseSRAM
+
+.AddMysteryGiftPartnerID: ; 104a56 (41:4a56)
+ call GetMysteryGiftBank
+ ld hl, sNumDailyMysteryGiftPartnerIDs
+ ld a, [hl]
+ inc [hl]
+ ld hl, sDailyMysteryGiftPartnerIDs ; inc hl
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [wMysteryGiftPartnerID]
+ ld [hli], a
+ ld a, [wMysteryGiftPartnerID + 1]
+ ld [hl], a
+ jp CloseSRAM
+
+.SaveMysteryGiftTrainerName: ; 104a71 (41:4a71)
+ call GetMysteryGiftBank
+ ld a, $1
+ ld [sMysteryGiftTrainerHouseFlag], a
+ ld hl, wMysteryGiftPartnerName
+ ld de, sMysteryGiftPartnerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, $1
+ ld [de], a
+ inc de
+ ld hl, wMysteryGiftTrainerData
+ ld bc, (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
+ call CopyBytes
+ jp CloseSRAM
+
+Function104a95: ; 104a95 (41:4a95)
+ di
+ callba ClearChannels
+ call Function104d5e
+
+.loop2
+ call Function104d96
+ call Function104ddd
+ ld a, [hMGStatusFlags]
+ cp $10
+ jp z, Function104bd0
+ cp $6c
+ jr nz, .loop2
+
+ ld a, [hPrintNum9]
+ cp $2
+ jr z, Function104b22
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d56
+ jr nz, .ly_loop
+ call Function104b49
+ jp nz, Function104bd0
+ jr Function104b0a
+ ; Delay frame
+.ly_loop
+ ld a, [rLY]
+ cp $90
+ jr c, .ly_loop
+ ld c, rRP % $100
+ ld a, $c0
+ ld [$ff00+c], a
+ ld b, 240 ; This might have been intended as a 4-second timeout buffer.
+ ; However, it is reset with each frame.
+.loop3
+ push bc
+ call MysteryGift_ReadJoypad
+
+ ld b, $2
+ ld c, rRP % $100
+ ; Delay frame
+.ly_loop2
+ ld a, [$ff00+c]
+ and b
+ ld b, a
+ ld a, [rLY]
+ cp $90
+ jr nc, .ly_loop2
+.ly_loop3
+ ld a, [$ff00+c]
+ and b
+ ld b, a
+ ld a, [rLY]
+ cp $90
+ jr c, .ly_loop3
+
+ ld a, b
+ pop bc
+ dec b
+ jr z, .loop2 ; we never jump here
+ or a
+ jr nz, .loop2
+ ; Check if we've pressed the B button
+ ld a, [hMGJoypadReleased]
+ bit B_BUTTON_F, a
+ jr z, .loop3
+ ld a, $10
+ ld [hMGStatusFlags], a
+ jp Function104bd0
+
+Function104b04: ; 104b04 (41:4b04)
+ call Function104b40
+ jp nz, Function104bd0
+Function104b0a: ; 104b0a (41:4b0a)
+ call Function104d38
+ jp nz, Function104bd0
+ call Function104b88
+ jp nz, Function104bd0
+ call Function104d43
+ jp nz, Function104bd0
+ call Function105033
+ jp Function104bd0
+
+Function104b22: ; 104b22 (41:4b22)
+ call Function104b88
+ jp nz, Function104bd0
+ call Function104d43
+ jp nz, Function104bd0
+ call Function104b40
+ jp nz, Function104bd0
+ call Function104d38
+ jp nz, Function104bd0
+ call Function10502e
+ jp Function104bd0
+
+Function104b40: ; 104b40 (41:4b40)
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d56
+ ret nz
+
+Function104b49: ; 104b49 (41:4b49)
+ call Function105033
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret nz
+ ld a, [hPrintNum1]
+ cp $96
+ jp nz, Function104d32
+ ld a, $90
+ ld [hPrintNum1], a
+ call Function104d38
+ ret nz
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret nz
+ call Function104d43
+ ret nz
+ ld hl, wMysteryGiftTrainerData
+ ld a, [wca02]
+ ld b, a
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret
+
+Function104b88: ; 104b88 (41:4b88)
+ ld a, $96
+ ld [hPrintNum1], a
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret nz
+ call Function104d43
+ ret nz
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret nz
+ ld a, [hPrintNum1]
+ cp $90
+ jp nz, Function104d32
+ call Function104d38
+ ret nz
+ ld hl, OverworldMap
+ ld a, [wca02]
+ ld b, a
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret
+
+Function104bd0: ; 104bd0 (41:4bd0)
+ nop
+ ld a, [hMGStatusFlags]
+ cp $10
+ jr z, .quit
+ cp $6c
+ jr nz, .quit
+ ld hl, wca01
+ dec [hl]
+ jr z, .quit
+ ld hl, wMysteryGiftTrainerData
+ ld de, wMysteryGiftPartnerData
+ ld bc, wMysteryGiftPartnerDataEnd - wMysteryGiftPartnerData
+ call CopyBytes
+ ld a, [wMysteryGiftTrainerData]
+ cp $3
+ jr nc, .quit
+ callba StagePartyDataForMysteryGift
+ call MysteryGift_ClearTrainerData
+ ld a, $26
+ ld [wca02], a
+ ld a, [hPrintNum9]
+ cp $2
+ jr z, .asm_104c10
+ call Function104d43
+ jr nz, Function104bd0
+ jp Function104b04
+
+.asm_104c10
+ call Function104d38
+ jr nz, Function104bd0
+ jp Function104b22
+
+.quit
+ ld a, [hMGStatusFlags]
+ push af
+ call Function104da0
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ or $1
+ ld [rIE], a
+ ei
+ call DelayFrame
+ pop af
+ ret
+
+Function104c2d: ; 104c2d (41:4c2d)
+ di
+ callba ClearChannels
+ call Function104d5e
+.asm_104c37
+ call Function104d96
+ call Function104ddd
+ ld a, [hMGStatusFlags]
+ cp $10
+ jp z, Function104d1c
+ cp $6c
+ jr nz, .asm_104c37
+ ld a, [hPrintNum9]
+ cp $2
+ jr z, .asm_104c6c
+ call Function104c8a
+ jp nz, Function104d1c
+ call Function104d38
+ jp nz, Function104d1c
+ call Function104cd2
+ jp nz, Function104d1c
+ call Function104d43
+ jp nz, Function104d1c
+ call Function105033
+ jp Function104d1c
+.asm_104c6c
+ call Function104cd2
+ jp nz, Function104d1c
+ call Function104d43
+ jp nz, Function104d1c
+ call Function104c8a
+ jp nz, Function104d1c
+ call Function104d38
+ jp nz, Function104d1c
+ call Function10502e
+ jp Function104d1c
+
+Function104c8a: ; 104c8a (41:4c8a)
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret nz
+ ld a, [hPrintNum1]
+ cp $3c
+ jp nz, Function104d32
+ swap a
+ ld [hPrintNum1], a
+ call Function104d38
+ ret nz
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret nz
+ call Function104d43
+ ret nz
+ ld hl, wMysteryGiftTrainerData
+ ld a, [wca02]
+ ld b, a
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret
+
+Function104cd2: ; 104cd2 (41:4cd2)
+ ld a, $3c
+ ld [hPrintNum1], a
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret nz
+ call Function104d43
+ ret nz
+ ld hl, hPrintNum1
+ ld b, $1
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret nz
+ ld a, [hPrintNum1]
+ swap a
+ cp $3c
+ jp nz, Function104d32
+ call Function104d38
+ ret nz
+ ld hl, OverworldMap
+ ld a, [wca02]
+ ld b, a
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret
+
+Function104d1c: ; 104d1c (41:4d1c)
+ nop
+ ld a, [hMGStatusFlags]
+ push af
+ call Function104da0
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ or $1
+ ld [rIE], a
+ ei
+ call DelayFrame
+ pop af
+ ret
+
+Function104d32: ; 104d32 (41:4d32)
+ ld a, $80
+ ld [hMGStatusFlags], a
+ and a
+ ret
+
+Function104d38: ; 104d38 (41:4d38)
+ call Function104d96
+ call Function104e46
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret
+
+Function104d43: ; 104d43 (41:4d43)
+ call Function104d96
+ call Function104dfe
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret
+
+Function104d4e: ; 104d4e (41:4d4e)
+ call Function104e93
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret
+
+Function104d56: ; 104d56 (41:4d56)
+ call Function104f57
+ ld a, [hMGStatusFlags]
+ cp $6c
+ ret
+
+Function104d5e: ; 104d5e (41:4d5e)
+ call Function104d74
+ ld a, $4
+ ld [rIE], a
+ xor a
+ ld [rIF], a
+ call Function104d96
+ xor a
+ ld b, a
+.asm_104d6d
+ inc a
+ jr nz, .asm_104d6d
+ inc b
+ jr nz, .asm_104d6d
+ ret
+
+Function104d74: ; 104d74 (41:4d74)
+ xor a
+ ld [rTAC], a
+ ld a, $fe
+ ld [rTMA], a
+ ld [rTIMA], a
+ ld a, $2
+ ld [rTAC], a
+ or $4
+ ld [rTAC], a
+ ret
+
+Function104d86: ; 104d86 (41:4d86)
+ xor a
+ ld [rTAC], a
+ ld [rTMA], a
+ ld [rTIMA], a
+ ld a, $2
+ ld [rTAC], a
+ or $4
+ ld [rTAC], a
+ ret
+
+Function104d96: ; 104d96 (41:4d96)
+ ld a, $c0
+ call Function104e8c
+ ld a, $1
+ ld [hPrintNum9], a
+ ret
+
+Function104da0: ; 104da0 (41:4da0)
+ xor a
+ call Function104e8c
+ ld a, $2
+ ld [rTAC], a
+ ret
+
+Function104da9: ; 104da9 (41:4da9)
+ inc d
+ ret z
+ xor a
+ ld [rIF], a
+ halt
+ ld a, [$ff00+c]
+ bit 1, a
+ jr z, Function104da9
+ or a
+ ret
+
+Function104db7: ; 104db7 (41:4db7)
+ inc d
+ ret z
+ xor a
+ ld [rIF], a
+ halt
+ ld a, [$ff00+c]
+ bit 1, a
+ jr nz, Function104db7
+ or a
+ ret
+
+Function104dc5: ; 104dc5 (41:4dc5)
+ ld a, $c1
+ ld [$ff00+c], a
+.wait
+ dec d
+ ret z
+ xor a
+ ld [rIF], a
+ halt
+ jr .wait
+
+Function104dd1: ; 104dd1 (41:4dd1)
+ ld a, $c0
+ ld [$ff00+c], a
+.wait
+ dec d
+ ret z
+ xor a
+ ld [rIF], a
+ halt
+ jr .wait
+
+Function104ddd: ; 104ddd (41:4ddd)
+ ld d, $0
+ ld e, d
+ ld a, $1
+ ld [hPrintNum9], a
+.loop
+ call MysteryGift_ReadJoypad
+ ld b, $2
+ ld c, rRP % $100
+ ld a, [hMGJoypadReleased]
+ bit B_BUTTON_F, a
+ jr z, .next
+ ld a, $10
+ ld [hMGStatusFlags], a
+ ret
+
+.next
+ bit 0, a
+ jr nz, Function104e3a
+ ld a, [$ff00+c]
+ and b
+ jr nz, .loop
+
+Function104dfe: ; 104dfe (41:4dfe)
+ ld c, rRP % $100
+ ld d, $0
+ ld e, d
+ call Function104db7
+ jp z, Function104f42
+ ld d, e
+ call Function104da9
+ jp z, Function104f42
+ call Function104db7
+ jp z, Function104f42
+ call Function104da9
+ jp z, Function104f42
+ ld a, $6c
+ ld [hMGStatusFlags], a
+ ld d, $3d
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $15
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $5
+ call Function104dd1
+ ret
+
+Function104e3a: ; 104e3a (41:4e3a)
+ ; Wait a random amount of time
+ call Random
+ ld e, a
+ and $f
+ ld d, a
+.loop
+ dec de
+ ld a, d
+ or e
+ jr nz, .loop
+Function104e46: ; 104e46 (41:4e46)
+ ld a, $2
+ ld [hPrintNum9], a
+ ld c, rRP % $100
+ ld d, $0
+ ld e, d
+ ld d, $3d
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $15
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $5
+ call Function104dd1
+ ld d, e
+ call Function104db7
+ jp z, Function104f42
+ ld d, e
+ call Function104da9
+ jp z, Function104f42
+ call Function104db7
+ jp z, Function104f42
+ call Function104da9
+ jp z, Function104f42
+ ld d, $3d
+ call Function104dd1
+ ld a, $6c
+ ld [hMGStatusFlags], a
+ ret
+
+Function104e8c: ; 104e8c (41:4e8c)
+ ld [rRP], a
+ ld a, $ff
+ ld [hMGStatusFlags], a
+ ret
+
+Function104e93: ; 104e93 (41:4e93)
+ xor a
+ ld [hPrintNum5], a
+ ld [hPrintNum6], a
+ push hl
+ push bc
+ ld c, rRP % $100
+ ld d, $3d
+ call Function104dd1
+ ld hl, hPrintNum2
+ ld a, $5a
+ ld [hli], a
+ ld [hl], b
+ dec hl
+ ld b, $2
+ call Function104ed6
+ pop bc
+ pop hl
+ call Function104ed6
+ ld a, [hPrintNum5]
+ ld [hPrintNum2], a
+ ld a, [hPrintNum6]
+ ld [hPrintNum3], a
+ push hl
+ ld hl, hPrintNum2
+ ld b, $2
+ call Function104ed6
+ ld hl, hMGStatusFlags
+ ld b, $1
+ call Function104faf
+ ld a, [hPrintNum2]
+ ld [hPrintNum5], a
+ ld a, [hPrintNum3]
+ ld [hPrintNum6], a
+ pop hl
+ ret
+
+Function104ed6: ; 104ed6 (41:4ed6)
+ ld c, rRP % $100
+ ld d, $5
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $15
+ call Function104dd1
+ ld a, b
+ cpl
+ ld b, a
+ ld a, $f4
+ ld [rTMA], a
+.asm_104eee
+ inc b
+ jr z, .asm_104f2e
+ ld a, $8
+ ld [hPrintNum4], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hPrintNum5]
+ add e
+ ld [hPrintNum5], a
+ ld a, [hPrintNum6]
+ adc $0
+ ld [hPrintNum6], a
+.asm_104f02
+ xor a
+ ld [rIF], a
+ halt
+ ld a, $c1
+ ld [rRP], a
+ ld d, $1
+ ld a, e
+ rlca
+ ld e, a
+ jr nc, .asm_104f13
+ inc d
+.asm_104f13
+ ld a, [rTIMA]
+ cp $f8
+ jr c, .asm_104f13
+ ld a, $c0
+ ld [rRP], a
+ dec d
+ jr z, .asm_104f25
+ xor a
+ ld [rIF], a
+ halt
+.asm_104f25
+ ld a, [hPrintNum4]
+ dec a
+ jr z, .asm_104eee
+ ld [hPrintNum4], a
+ jr .asm_104f02
+.asm_104f2e
+ ld a, $fe
+ ld [rTMA], a
+ xor a
+ ld [rIF], a
+ halt
+ ld d, $5
+ call Function104dc5
+ ld d, $11
+ call Function104dd1
+ ret
+
+Function104f42: ; 104f42 (41:4f42)
+ ld a, [hMGStatusFlags]
+ or $2
+ ld [hMGStatusFlags], a
+ ret
+
+Function104f49: ; 104f49 (41:4f49)
+ ld a, [hMGStatusFlags]
+ or $1
+ ld [hMGStatusFlags], a
+ ret
+
+Function104f50: ; 104f50 (41:4f50)
+ ld a, [hMGStatusFlags]
+ or $80
+ ld [hMGStatusFlags], a
+ ret
+
+Function104f57: ; 104f57 (41:4f57)
+ xor a
+ ld [hPrintNum5], a
+ ld [hPrintNum6], a
+ push bc
+ push hl
+ ld hl, hPrintNum2
+ ld b, $2
+ call Function104faf
+ ld a, [hPrintNum3]
+ ld [hPrintNum8], a
+ ld b, a
+ pop hl
+ pop af
+ cp b
+ jp c, Function104f50
+ ld a, [hPrintNum2]
+ cp $5a
+ jp nz, Function104f50
+ call Function104faf
+ ld a, [hPrintNum5]
+ ld d, a
+ ld a, [hPrintNum6]
+ ld e, a
+ push hl
+ push de
+ ld hl, hPrintNum2
+ ld b, $2
+ call Function104faf
+ pop de
+ ld hl, hPrintNum2
+ ld a, [hli]
+ xor d
+ ld b, a
+ ld a, [hl]
+ xor e
+ or b
+ call nz, Function104f49
+ push de
+ ld d, $3d
+ call Function104dd1
+ ld hl, hMGStatusFlags
+ ld b, $1
+ call Function104ed6
+ pop de
+ pop hl
+ ld a, d
+ ld [hPrintNum5], a
+ ld a, e
+ ld [hPrintNum6], a
+ ret
+
+Function104faf: ; 104faf (41:4faf)
+ ld c, rRP % $100
+ ld d, $0
+ call Function104db7
+ jp z, Function104f42
+ ld d, $0
+ call Function104da9
+ jp z, Function104f42
+ ld d, $0
+ call Function104db7
+ jp z, Function104f42
+ ld a, b
+ cpl
+ ld b, a
+ xor a
+ ld [hMGJoypadPressed + 2], a
+ call Function104d86
+.asm_104fd2
+ inc b
+ jr z, .asm_10501a
+ ld a, $8
+ ld [hPrintNum4], a
+.asm_104fd9
+ ld d, $0
+.asm_104fdb
+ inc d
+ jr z, .asm_104fe5
+ ld a, [$ff00+c]
+ bit 1, a
+ jr z, .asm_104fdb
+ ld d, $0
+.asm_104fe5
+ inc d
+ jr z, .asm_104fed
+ ld a, [$ff00+c]
+ bit 1, a
+ jr nz, .asm_104fe5
+.asm_104fed
+ ld a, [hMGJoypadPressed + 2]
+ ld d, a
+ ld a, [rTIMA]
+ ld [hMGJoypadPressed + 2], a
+ sub d
+ cp $12
+ jr c, .asm_104ffd
+ set 0, e
+ jr .asm_104fff
+.asm_104ffd
+ res 0, e
+.asm_104fff
+ ld a, [hPrintNum4]
+ dec a
+ ld [hPrintNum4], a
+ jr z, .asm_10500b
+ ld a, e
+ rlca
+ ld e, a
+ jr .asm_104fd9
+.asm_10500b
+ ld a, e
+ ld [hli], a
+ ld a, [hPrintNum5]
+ add e
+ ld [hPrintNum5], a
+ ld a, [hPrintNum6]
+ adc $0
+ ld [hPrintNum6], a
+ jr .asm_104fd2
+.asm_10501a
+ call Function104d74
+ xor a
+ ld [rIF], a
+ ld d, $0
+ call Function104da9
+ jp z, Function104f42
+ ld d, $10
+ call Function104dd1
+ ret
+
+Function10502e: ; 10502e (41:502e)
+ ld b, $0
+ jp Function104e93
+
+Function105033: ; 105033 (41:5033)
+ ld b, $0
+ jp Function104f57
+
+MysteryGift_ReadJoypad: ; 105038 (41:5038)
+; We can only get four inputs at a time.
+; We take d-pad first for no particular reason.
+ ld a, R_DPAD
+ ld [rJOYP], a
+; Read twice to give the request time to take.
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+
+; The Joypad register output is in the lo nybble (inversed).
+; We make the hi nybble of our new container d-pad input.
+ cpl
+ and $f
+ swap a
+
+; We'll keep this in b for now.
+ ld b, a
+
+; Buttons make 8 total inputs (A, B, Select, Start).
+; We can fit this into one byte.
+ ld a, R_BUTTONS
+ ld [rJOYP], a
+; Wait for input to stabilize.
+rept 6
+ ld a, [rJOYP]
+endr
+; Buttons take the lo nybble.
+ cpl
+ and $f
+ or b
+ ld c, a
+; To get the delta we xor the last frame's input with the new one.
+ ld a, [hMGJoypadPressed]
+ xor c
+; Released this frame:
+ and c
+ ld [hMGJoypadReleased], a
+; Pressed this frame:
+ ld a, c
+ ld [hMGJoypadPressed], a
+ ld a, $30
+; Reset the joypad register since we're done with it.
+ ld [rJOYP], a
+ ret
+
+MysteryGift_CheckAndSetDecorationAlreadyReceived: ; 105069 (41:5069)
+ call GetMysteryGiftBank
+ ld d, $0
+ ld b, CHECK_FLAG
+ ld hl, sMysteryGiftDecorationsReceived
+ predef_id FlagPredef
+ push hl
+ push bc
+ call Predef
+ call CloseSRAM
+ ld a, c
+ and a
+ pop bc
+ pop hl
+ ret nz
+ call GetMysteryGiftBank
+ ld b, SET_FLAG
+ predef FlagPredef
+ call CloseSRAM
+ xor a
+ ret
+
+MysteryGift_CopyReceivedDecosToPC: ; 105091 (41:5091)
+ call GetMysteryGiftBank
+ ld c, $0
+.loop
+ push bc
+ ld d, $0
+ ld b, CHECK_FLAG
+ ld hl, sMysteryGiftDecorationsReceived
+ predef FlagPredef
+ ld a, c
+ and a
+ pop bc
+ jr z, .skip
+ push bc
+ callab SetSpecificDecorationFlag
+ pop bc
+.skip
+ inc c
+ ld a, c
+ cp Trophys - DecorationIDs
+ jr c, .loop
+ jp CloseSRAM
+
+Special_UnlockMysteryGift: ; 1050b9
+ call GetMysteryGiftBank
+ ld hl, sMysteryGiftUnlocked
+ ld a, [hl]
+ inc a
+ jr nz, .ok
+ ld [hld], a
+ ld [hl], a
+.ok
+ jp CloseSRAM
+; 1050c8
+
+Function1050c8: ; 1050c8
+ call GetMysteryGiftBank
+ ld a, [sNumDailyMysteryGiftPartnerIDs]
+ cp $ff
+ jr z, .okay
+ xor a
+ ld [sNumDailyMysteryGiftPartnerIDs], a
+.okay
+ jp CloseSRAM
+; 1050d9
+
+
+BackupMysteryGift: ; 1050d9
+ call GetMysteryGiftBank
+ ld hl, sMysteryGiftItem
+ ld de, sBackupMysteryGiftItem
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ jp CloseSRAM
+; 1050ea
+
+
+RestoreMysteryGift: ; 1050ea (41:50ea)
+ call GetMysteryGiftBank
+ ld hl, sBackupMysteryGiftItem
+ ld de, sMysteryGiftItem
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ jp CloseSRAM
+
+MysteryGift_ClearTrainerData: ; 1050fb (41:50fb)
+ ld hl, wMysteryGiftTrainerData
+ xor a
+ ld b, wMysteryGiftTrainerDataEnd - wMysteryGiftTrainerData
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+
+
+GetMysteryGiftBank: ; 105106
+ ld a, BANK(sBackupMysteryGiftItem)
+ jp GetSRAMBank
+; 10510b
+
+
+StagePartyDataForMysteryGift: ; 10510b (41:510b)
+; You will be sending this data to your mystery gift partner.
+; Structure is the same as a trainer with species and moves
+; defined.
+ ld a, BANK(sPokemonData)
+ call GetSRAMBank
+ ld de, wMysteryGiftStaging
+ ld bc, sPokemonData + PartyMons - wPokemonData
+ ld hl, sPokemonData + PartySpecies - wPokemonData
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .party_end
+ cp EGG
+ jr z, .next
+ push hl
+ ; copy level
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ; copy species
+ ld hl, MON_SPECIES
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ; copy moves
+ ld hl, MON_MOVES
+ add hl, bc
+ push bc
+ ld bc, NUM_MOVES
+ call CopyBytes
+ pop bc
+ pop hl
+.next
+ push hl
+ ld hl, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ jr .loop
+.party_end
+ ld a, -1
+ ld [de], a
+ ld a, $26
+ ld [wca00], a
+ jp CloseSRAM
+
+InitMysteryGiftLayout: ; 105153 (41:5153)
+ call ClearBGPalettes
+ call DisableLCD
+ ld hl, MysteryGiftGFX
+ ld de, VTiles2 tile $00
+ ld a, BANK(MysteryGiftGFX)
+ ld bc, MysteryGiftGFXEnd - MysteryGiftGFX
+ call FarCopyBytes
+ hlcoord 0, 0
+ ld a, $42
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ call ByteFill
+ hlcoord 3, 7
+ lb bc, 9, 15
+ call ClearBox
+ hlcoord 0, 0
+ ld a, $0
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 0, 1
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 7, 1
+ ld a, $12
+ call .Load5GFX
+ hlcoord 2, 2
+ ld a, $17
+ call .Load16GFX
+ hlcoord 2, 3
+ ld a, $27
+ call .Load16GFX
+ hlcoord 9, 4
+ ld a, $37
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 1, 2
+ ld [hl], $4
+ hlcoord 1, 3
+ ld a, $5
+ call .Load14Column
+ ld a, $9
+ hlcoord 18, 5
+ call .Load11Column
+ hlcoord 2, 5
+ ld a, $b
+ call .Load16Row
+ hlcoord 2, 16
+ ld a, $7
+ call .Load16Row
+ hlcoord 2, 5
+ ld a, $d
+ call .Load5GFX
+ hlcoord 7, 5
+ ld [hl], $c
+ hlcoord 18, 5
+ ld [hl], $a
+ hlcoord 18, 16
+ ld [hl], $8
+ hlcoord 1, 16
+ ld [hl], $6
+ hlcoord 2, 6
+ ld a, $3a
+ call .Load16Row
+ hlcoord 2, 15
+ ld a, $40
+ call .Load16Row
+ hlcoord 2, 6
+ ld a, $3c
+ call .Load9Column
+ hlcoord 17, 6
+ ld a, $3e
+ call .Load9Column
+ hlcoord 2, 6
+ ld [hl], $39
+ hlcoord 17, 6
+ ld [hl], $3b
+ hlcoord 2, 15
+ ld [hl], $3f
+ hlcoord 17, 15
+ ld [hl], $41
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_MYSTERY_GIFT
+ call GetSGBLayout
+ call SetPalettes
+ ret
+
+.Load5GFX: ; 10522e (41:522e)
+ ld b, 5
+ jr .gfx_loop
+; 105232 (41:5232)
+
+.Load6GFX: ; unreferenced
+ ld b, 6
+ jr .gfx_loop
+
+.Load16GFX: ; 105236 (41:5236)
+ ld b, 16
+
+.gfx_loop ; 105238 (41:5238)
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .gfx_loop
+ ret
+
+.Load9Column: ; 10523e (41:523e)
+ ld b, 9
+ jr .col_loop
+
+.Load11Column: ; 105242 (41:5242)
+ ld b, 11
+ jr .col_loop
+
+.Load14Column: ; 105246 (41:5246)
+ ld b, 14
+
+.col_loop ; 105248 (41:5248)
+ ld [hl], a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ dec b
+ jr nz, .col_loop
+ ret
+
+.Load16Row: ; 105251 (41:5251)
+ ld b, 16
+.row_loop
+ ld [hli], a
+ dec b
+ jr nz, .row_loop
+ ret
+
+MysteryGiftGFX: ; 105258
+INCBIN "gfx/mystery_gift/mystery_gift.2bpp"
+MysteryGiftGFXEnd:
+
+Function105688: ; 105688 (41:5688)
+ call ClearTileMap
+ call ClearSprites
+ call WaitBGMap
+ call Function1057d7
+ hlcoord 3, 8
+ ld de, String_10572e
+ call PlaceString
+ call WaitBGMap
+ call Function10578c
+ call MysteryGift_ClearTrainerData
+ ld a, $24
+ ld [wca02], a
+ ld a, [rIE]
+ push af
+ call Function104c2d
+ ld d, a
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ ld a, d
+ cp $10
+ jp z, Function105712
+ cp $6c
+ jp nz, Function10571a
+ call Function1056eb
+ ld c, 60
+ call DelayFrames
+ call Function105777
+ ld hl, Text_ReceivedCard
+ call PrintText
+ ld de, wMysteryGiftTrainerData
+ callba Function8ac70
+ ld a, c
+ ld [wd265], a
+ ld hl, Text_CardNotRegistered
+ jr c, asm_105726
+ ld hl, Text_ListedCardAsNumber
+ jr asm_105726
+
+Function1056eb: ; 1056eb (41:56eb)
+ ld c, $10
+.asm_1056ed
+ ld hl, Sprites
+ ld b, $8
+.asm_1056f2
+ dec [hl]
+rept 4
+ inc hl
+endr
+ dec b
+ jr nz, .asm_1056f2
+ ld hl, Sprites + $20
+ ld b, $8
+.asm_1056ff
+ inc [hl]
+rept 4
+ inc hl
+endr
+ dec b
+ jr nz, .asm_1056ff
+ dec c
+ ret z
+ push bc
+ ld c, 4
+ call DelayFrames
+ pop bc
+ jr .asm_1056ed
+
+Function105712: ; 105712 (41:5712)
+ call Function105777
+ ld hl, Text_MGLinkCanceled
+ jr asm_105726
+
+Function10571a: ; 10571a (41:571a)
+ call Function105777
+ ld hl, Text_MGCommError
+ call PrintText
+ jp Function105688
+
+asm_105726: ; 105726 (41:5726)
+ call PrintText
+ ld a, $e3
+ ld [rLCDC], a
+ ret
+; 10572e (41:572e)
+
+String_10572e: ; 10572e
+ db "エーボタン¯おすと"
+ next "つうしん<PKMN>おこなわれるよ!"
+ next "ビーボタン¯おすと"
+ next "つうしん¯ちゅうし します"
+ db "@"
+
+; 10575e
+
+Text_ReceivedCard: ; 10575e
+ text_jump UnknownText_0x1c051a
+ db "@"
+
+Text_ListedCardAsNumber: ; 105763
+ text_jump UnknownText_0x1c0531
+ db "@"
+
+Text_CardNotRegistered: ; 105768
+ text_jump UnknownText_0x1c0555
+ db "@"
+
+Text_MGLinkCanceled: ; 10576d
+ text_jump UnknownText_0x1c0573
+ db "@"
+
+Text_MGCommError: ; 105772
+ text_jump UnknownText_0x1c0591
+ db "@"
+; 105777
+
+Function105777: ; 105777 (41:5777)
+ call ClearSprites
+ call ClearTileMap
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ call SetPalettes
+ ret
+
+Function10578c: ; 10578c (41:578c)
+ ld de, OverworldMap
+ ld a, BANK(sPlayerData)
+ call GetSRAMBank
+ ld hl, sPlayerData + PlayerName - wPlayerData
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, sPlayerData + PlayerID - wPlayerData
+ ld bc, 2
+ call CopyBytes
+ ld hl, sPlayerData + wSecretID - wPlayerData
+ ld bc, 2
+ call CopyBytes
+ call CloseSRAM
+ ld a, BANK(sCrystalData)
+ call GetSRAMBank
+ ld a, [sCrystalData + 0]
+ ld [de], a
+ inc de
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a603
+ ld bc, $8
+ call CopyBytes
+ ld hl, $a007
+ ld bc, $c
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+Function1057d7: ; 1057d7 (41:57d7)
+ call ClearBGPalettes
+ call DisableLCD
+ ld hl, MysteryGiftJP_GFX
+ ld de, VTiles2 tile $00
+ ld a, BANK(MysteryGiftJP_GFX)
+ lb bc, 4, 0
+ call FarCopyBytes
+ ld hl, MysteryGiftJP_GFX + $400
+ ld de, VTiles0 tile $00
+ ld a, BANK(MysteryGiftJP_GFX)
+ ld bc, $80
+ call FarCopyBytes
+ hlcoord 0, 0
+ ld a, $3f
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ call ByteFill
+ hlcoord 3, 7
+ lb bc, 9, 15
+ call ClearBox
+ hlcoord 0, 0
+ ld a, $0
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 0, 1
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 4, 2
+ ld a, $13
+ call .Load11Row
+ hlcoord 4, 3
+ ld a, $1e
+ call .Load12Row
+ hlcoord 4, 4
+ ld a, $2a
+ call .Load12Row
+ hlcoord 1, 2
+ ld [hl], $4
+ hlcoord 1, 3
+ ld a, $5
+ call .Load14Column
+ ld a, $9
+ hlcoord 18, 5
+ call .Load11Column
+ hlcoord 2, 5
+ ld a, $b
+ call .Load16Row
+ hlcoord 2, 16
+ ld a, $7
+ call .Load16Row
+ hlcoord 2, 5
+ ld a, $d
+ call .Load6Row
+ hlcoord 8, 5
+ ld [hl], $c
+ hlcoord 18, 5
+ ld [hl], $a
+ hlcoord 18, 16
+ ld [hl], $8
+ hlcoord 1, 16
+ ld [hl], $6
+ hlcoord 2, 6
+ ld a, $37
+ call .Load16Row
+ hlcoord 2, 15
+ ld a, $3d
+ call .Load16Row
+ hlcoord 2, 6
+ ld a, $39
+ call .Load9Column
+ hlcoord 17, 6
+ ld a, $3b
+ call .Load9Column
+ hlcoord 2, 6
+ ld [hl], $36
+ hlcoord 17, 6
+ ld [hl], $38
+ hlcoord 2, 15
+ ld [hl], $3c
+ hlcoord 17, 15
+ ld [hl], $3e
+ ld de, Sprites
+ ld hl, .OAM_data
+ ld bc, $40
+ call CopyBytes
+ call EnableLCD
+ call WaitBGMap
+ ld b, $2
+ callba GetMysteryGift_MobileAdapterLayout
+ jp SetPalettes
+
+.Load6Row: ; 1058c6 (41:58c6)
+ ld b, 6
+ jr .row_loop
+
+.Load11Row: ; 1058ca (41:58ca)
+ ld b, 11
+ jr .row_loop
+
+.Load12Row: ; 1058ce (41:58ce)
+ ld b, 12
+
+.row_loop ; 1058d0 (41:58d0)
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .row_loop
+ ret
+
+.Load9Column: ; 1058d6 (41:58d6)
+ ld b, 9
+ jr .column_loop
+
+.Load11Column: ; 1058da (41:58da)
+ ld b, 11
+ jr .column_loop
+
+.Load14Column: ; 1058de (41:58de)
+ ld b, 14
+
+.column_loop ; 1058e0 (41:58e0)
+ ld [hl], a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ ret
+
+.Load16Row: ; 1058e9 (41:58e9)
+ ld b, 16
+.row_loop_no_inc
+ ld [hli], a
+ dec b
+ jr nz, .row_loop_no_inc
+ ret
+; 1058f0 (41:58f0)
+
+.OAM_data: ; 1058f0
+ dsprite 2, 1, 6, 4, $00, $00
+ dsprite 2, 1, 7, 4, $01, $00
+ dsprite 2, 1, 8, 4, $02, $00
+ dsprite 2, 1, 9, 4, $03, $00
+ dsprite 3, 1, 6, 4, $04, $00
+ dsprite 3, 1, 7, 4, $05, $00
+ dsprite 3, 1, 8, 4, $06, $00
+ dsprite 3, 1, 9, 4, $07, $00
+ dsprite 0, 1, 11, 4, $00, $00
+ dsprite 0, 1, 12, 4, $01, $00
+ dsprite 0, 1, 13, 4, $02, $00
+ dsprite 0, 1, 14, 4, $03, $00
+ dsprite 1, 1, 11, 4, $04, $00
+ dsprite 1, 1, 12, 4, $05, $00
+ dsprite 1, 1, 13, 4, $06, $00
+ dsprite 1, 1, 14, 4, $07, $00
+
+; japanese mystery gift gfx
+MysteryGiftJP_GFX: ; 105930
+INCBIN "gfx/mystery_gift/mystery_gift_jp.2bpp"
--- /dev/null
+++ b/engine/mystery_gift_2.asm
@@ -1,0 +1,152 @@
+PrepMysteryGiftDataToSend: ; 2c642 (b:4642)
+ ld de, wMysteryGiftStaging
+ ld a, $1
+ ld [de], a
+ inc de ; wc801
+ ld a, BANK(sGameData)
+ call GetSRAMBank
+ ld hl, sPlayerData + PlayerID - wPlayerData
+ ld a, [hli]
+ ld [de], a
+ ld b, a
+ inc de ; wc802
+ ld a, [hl]
+ ld [de], a
+ ld c, a
+ inc de ; wc803
+ push bc
+ ld hl, sPlayerData + PlayerName - wPlayerData
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ push de ; wc80e
+ ld hl, sPokemonData + PokedexCaught - wPokemonData
+ ld b, EndPokedexCaught - PokedexCaught
+ call CountSetBits
+ pop de
+ pop bc
+ ld a, [wd265]
+ ld [de], a
+ inc de ; wc80f
+ call CloseSRAM
+ call Random
+ and $1
+ ld [de], a
+ inc de ; wc810
+ call .RandomSample
+ ld [de], a
+ inc de ; wc811
+ ld a, c
+ ld c, b
+ ld b, a
+ call .RandomSample
+ ld [de], a
+ inc de ; wc812
+ ld a, BANK(sBackupMysteryGiftItem)
+ call GetSRAMBank
+ ld a, [sBackupMysteryGiftItem]
+ ld [de], a
+ inc de
+ ld a, [sBackupMysteryGiftItem + 1]
+ ld [de], a
+ ld a, $14
+ ld [wca00], a
+ call CloseSRAM
+ ld hl, wMysteryGiftStaging
+ ld de, wMysteryGiftPlayerData
+ ld bc, wMysteryGiftPlayerDataEnd - wMysteryGiftPlayerData
+ jp CopyBytes
+
+.RandomSample: ; 2c6ac (b:46ac)
+ push de
+ call Random
+ cp $19 ; 10 percent
+ jr c, .tenpercent
+ call Random
+ and $7
+ ld d, a
+ rl d
+ ld e, $80
+.loop
+ rlc e
+ dec a
+ jr nz, .loop
+ ld a, e
+ and c
+ jr z, .skip
+ ld a, $1
+.skip
+ add d
+ jr .done
+
+.tenpercent
+ call Random
+ cp $32 ; 20 percent
+ jr c, .twopercent
+ call Random
+ and $3
+ ld d, a
+ rl d
+ ld e, $80
+.loop2
+ rlc e
+ dec a
+ jr nz, .loop2
+ ld a, e
+ and b
+ jr z, .skip2
+ ld a, $1
+.skip2
+ add d
+ add $10
+ jr .done
+
+.twopercent
+ call Random
+ cp $32 ; 50 ; 20 percent
+ jr c, .pointfourpercent
+ ld a, b
+ swap a
+ and $7
+ add $18
+ jr .done
+
+.pointfourpercent
+ ld a, b
+ and $80
+ ld a, $20
+ jr z, .done
+ ld a, $21
+
+.done
+ pop de
+ ret
+
+MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708)
+ ld a, c
+ cp MysteryGiftItemsEnd - MysteryGiftItems
+ jr nc, MysteryGiftFallbackItem
+ ld hl, MysteryGiftItems
+ ld b, 0
+ add hl, bc
+ ld c, [hl]
+ ret
+
+MysteryGiftGetDecoration: ; 2c715 (b:4715)
+ ld a, c
+ cp MysteryGiftDecosEnd - MysteryGiftDecos
+ jr nc, MysteryGiftFallbackItem
+ ld hl, MysteryGiftDecos
+ ld b, 0
+ add hl, bc
+ ld c, [hl]
+ ret
+
+MysteryGiftFallbackItem: ; 2c722 (b:4722)
+ ld c, DECO_POLKADOT_BED ; GREAT_BALL
+ ret
+; 2c725 (b:4725)
+
+
+INCLUDE "data/mystery_gift/items.asm"
+
+INCLUDE "data/mystery_gift/decos.asm"
--- a/engine/mysterygift.asm
+++ /dev/null
@@ -1,1735 +1,0 @@
-DoMysteryGift: ; 1048ba (41:48ba)
- call ClearTileMap
- call ClearSprites
- call WaitBGMap
- call InitMysteryGiftLayout
- hlcoord 3, 8
- ld de, .String_PressAToLink_BToCancel
- call PlaceString
- call WaitBGMap
- callba PrepMysteryGiftDataToSend
- call MysteryGift_ClearTrainerData
- ld a, $2
- ld [wca01], a
- ld a, $14
- ld [wca02], a
- ld a, [rIE]
- push af
-
- call Function104a95
-
- ld d, a
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- push de
- call ClearTileMap
- call EnableLCD
- call WaitBGMap
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- call SetPalettes
- pop de
- hlcoord 2, 8
- ld a, d
- ld de, .Text_LinkCanceled ; Link has been canceled
- cp $10
- jp z, .LinkCanceled
- cp $6c
- jp nz, .CommunicationError
- ld a, [wc900]
- cp 3
- jr z, .skip_checks
- call .CheckAlreadyGotFiveGiftsToday
- ld hl, .Text_MaxFiveGifts ; Only 5 gifts a day
- jp nc, .PrintTextAndExit
- call .CheckAlreadyGotAGiftFromThatPerson
- ld hl, .Text_MaxOneGiftPerPerson ; Only one gift a day per person
- jp c, .PrintTextAndExit
-.skip_checks
- ld a, [wMysteryGiftPlayerBackupItem]
- and a
- jp nz, .GiftWaiting
- ld a, [wMysteryGiftPartnerBackupItem]
- and a
- jp nz, .FriendNotReady
- ld a, [wc900]
- cp 3
- jr z, .skip_append_save
- call .AddMysteryGiftPartnerID
- ld a, [wc900]
- cp 4
- jr z, .skip_append_save
- call .SaveMysteryGiftTrainerName
- callba RestoreMobileEventIndex
- callba TrainerRankings_MysteryGift
- callba BackupMobileEventIndex
-.skip_append_save
- ld a, [wMysteryGiftPartnerSentDeco]
- and a
- jr z, .item
- ld a, [wMysteryGiftPartnerWhichDeco]
- ld c, a
- callba MysteryGiftGetDecoration
- push bc
- call MysteryGift_CheckAndSetDecorationAlreadyReceived
- pop bc
- jr nz, .item
- callab GetDecorationName_c
- ld h, d
- ld l, e
- ld de, StringBuffer1
- ld bc, ITEM_NAME_LENGTH
- call CopyBytes
- ld hl, .Text_SentToHome ; sent decoration to home
- jr .PrintTextAndExit
-
-.item
- call GetMysteryGiftBank
- ld a, [wMysteryGiftPartnerWhichItem]
- ld c, a
- callba MysteryGiftGetItemHeldEffect
- ld a, c
- ld [sBackupMysteryGiftItem], a
- ld [wNamedObjectIndexBuffer], a
- call CloseSRAM
- call GetItemName
- ld hl, .Text_Sent ; sent item
- jr .PrintTextAndExit
-
-.LinkCanceled: ; 1049af (41:49af)
- ld hl, .Text_LinkCanceled ; Link has been canceled
- jr .PrintTextAndExit
-
-.CommunicationError: ; 1049b4 (41:49b4)
- ld hl, .Text_CommunicationError ; Communication error
- call PrintText
- jp DoMysteryGift
-
-.GiftWaiting: ; 1049bd (41:49bd)
- ld hl, .Text_ReceiveGiftAtCounter ; receive gift at counter
- jr .PrintTextAndExit
-
-.FriendNotReady: ; 1049c2 (41:49c2)
- ld hl, .Text_FriendNotReady ; friend not ready
-
-.PrintTextAndExit: ; 1049c5 (41:49c5)
- call PrintText
- ld a, $e3
- ld [rLCDC], a
- ret
-; 1049cd (41:49cd)
-
-.String_PressAToLink_BToCancel: ; 1049cd
- db "Press A to"
- next "link IR-Device"
- next "Press B to"
- next "cancel it."
- db "@"
-; 1049fd
-
-.Text_LinkCanceled: ; 1049fd
- text_jump UnknownText_0x1c0436
- db "@"
-; 104a02
-
-.Text_CommunicationError: ; 104a02
- text_jump UnknownText_0x1c0454
- db "@"
-; 104a07
-
-.Text_ReceiveGiftAtCounter: ; 104a07
- text_jump UnknownText_0x1c046a
- db "@"
-; 104a0c
-
-.Text_FriendNotReady: ; 104a0c
- text_jump UnknownText_0x1c048e
- db "@"
-; 104a11
-
-.Text_MaxFiveGifts: ; 104a11
- text_jump UnknownText_0x1c04a7
- db "@"
-; 104a16
-
-.Text_MaxOneGiftPerPerson: ; 104a16
- text_jump UnknownText_0x1c04c6
- db "@"
-; 104a1b
-
-.Text_Sent: ; 104a1b
- text_jump UnknownText_0x1c04e9
- db "@"
-; 104a20
-
-.Text_SentToHome: ; 104a20
- text_jump UnknownText_0x1c04fa
- db "@"
-; 104a25
-
-.CheckAlreadyGotFiveGiftsToday: ; 104a25 (41:4a25)
- call GetMysteryGiftBank
- ld a, [sNumDailyMysteryGiftPartnerIDs]
- cp $5
- jp CloseSRAM
-
-.CheckAlreadyGotAGiftFromThatPerson: ; 104a30 (41:4a30)
- call GetMysteryGiftBank
- ld a, [wMysteryGiftPartnerID]
- ld b, a
- ld a, [wMysteryGiftPartnerID + 1]
- ld c, a
- ld a, [sNumDailyMysteryGiftPartnerIDs]
- ld d, a
- ld hl, sDailyMysteryGiftPartnerIDs
-.loop
- ld a, d
- and a
- jr z, .No
- ld a, [hli]
- cp b
- jr nz, .skip
- ld a, [hl]
- cp c
- jr z, .Yes
-.skip
- inc hl
- dec d
- jr .loop
-.Yes:
- scf
-.No:
- jp CloseSRAM
-
-.AddMysteryGiftPartnerID: ; 104a56 (41:4a56)
- call GetMysteryGiftBank
- ld hl, sNumDailyMysteryGiftPartnerIDs
- ld a, [hl]
- inc [hl]
- ld hl, sDailyMysteryGiftPartnerIDs ; inc hl
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [wMysteryGiftPartnerID]
- ld [hli], a
- ld a, [wMysteryGiftPartnerID + 1]
- ld [hl], a
- jp CloseSRAM
-
-.SaveMysteryGiftTrainerName: ; 104a71 (41:4a71)
- call GetMysteryGiftBank
- ld a, $1
- ld [sMysteryGiftTrainerHouseFlag], a
- ld hl, wMysteryGiftPartnerName
- ld de, sMysteryGiftPartnerName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, $1
- ld [de], a
- inc de
- ld hl, wMysteryGiftTrainerData
- ld bc, (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
- call CopyBytes
- jp CloseSRAM
-
-Function104a95: ; 104a95 (41:4a95)
- di
- callba ClearChannels
- call Function104d5e
-
-.loop2
- call Function104d96
- call Function104ddd
- ld a, [hMGStatusFlags]
- cp $10
- jp z, Function104bd0
- cp $6c
- jr nz, .loop2
-
- ld a, [hPrintNum9]
- cp $2
- jr z, Function104b22
- ld hl, hPrintNum1
- ld b, $1
- call Function104d56
- jr nz, .ly_loop
- call Function104b49
- jp nz, Function104bd0
- jr Function104b0a
- ; Delay frame
-.ly_loop
- ld a, [rLY]
- cp $90
- jr c, .ly_loop
- ld c, rRP % $100
- ld a, $c0
- ld [$ff00+c], a
- ld b, 240 ; This might have been intended as a 4-second timeout buffer.
- ; However, it is reset with each frame.
-.loop3
- push bc
- call MysteryGift_ReadJoypad
-
- ld b, $2
- ld c, rRP % $100
- ; Delay frame
-.ly_loop2
- ld a, [$ff00+c]
- and b
- ld b, a
- ld a, [rLY]
- cp $90
- jr nc, .ly_loop2
-.ly_loop3
- ld a, [$ff00+c]
- and b
- ld b, a
- ld a, [rLY]
- cp $90
- jr c, .ly_loop3
-
- ld a, b
- pop bc
- dec b
- jr z, .loop2 ; we never jump here
- or a
- jr nz, .loop2
- ; Check if we've pressed the B button
- ld a, [hMGJoypadReleased]
- bit B_BUTTON_F, a
- jr z, .loop3
- ld a, $10
- ld [hMGStatusFlags], a
- jp Function104bd0
-
-Function104b04: ; 104b04 (41:4b04)
- call Function104b40
- jp nz, Function104bd0
-Function104b0a: ; 104b0a (41:4b0a)
- call Function104d38
- jp nz, Function104bd0
- call Function104b88
- jp nz, Function104bd0
- call Function104d43
- jp nz, Function104bd0
- call Function105033
- jp Function104bd0
-
-Function104b22: ; 104b22 (41:4b22)
- call Function104b88
- jp nz, Function104bd0
- call Function104d43
- jp nz, Function104bd0
- call Function104b40
- jp nz, Function104bd0
- call Function104d38
- jp nz, Function104bd0
- call Function10502e
- jp Function104bd0
-
-Function104b40: ; 104b40 (41:4b40)
- ld hl, hPrintNum1
- ld b, $1
- call Function104d56
- ret nz
-
-Function104b49: ; 104b49 (41:4b49)
- call Function105033
- ld a, [hMGStatusFlags]
- cp $6c
- ret nz
- ld a, [hPrintNum1]
- cp $96
- jp nz, Function104d32
- ld a, $90
- ld [hPrintNum1], a
- call Function104d38
- ret nz
- ld hl, hPrintNum1
- ld b, $1
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hMGStatusFlags]
- cp $6c
- ret nz
- call Function104d43
- ret nz
- ld hl, wMysteryGiftTrainerData
- ld a, [wca02]
- ld b, a
- call Function104d56
- ret nz
- call Function105033
- ld a, [hMGStatusFlags]
- cp $6c
- ret
-
-Function104b88: ; 104b88 (41:4b88)
- ld a, $96
- ld [hPrintNum1], a
- ld hl, hPrintNum1
- ld b, $1
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hMGStatusFlags]
- cp $6c
- ret nz
- call Function104d43
- ret nz
- ld hl, hPrintNum1
- ld b, $1
- call Function104d56
- ret nz
- call Function105033
- ld a, [hMGStatusFlags]
- cp $6c
- ret nz
- ld a, [hPrintNum1]
- cp $90
- jp nz, Function104d32
- call Function104d38
- ret nz
- ld hl, OverworldMap
- ld a, [wca02]
- ld b, a
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hMGStatusFlags]
- cp $6c
- ret
-
-Function104bd0: ; 104bd0 (41:4bd0)
- nop
- ld a, [hMGStatusFlags]
- cp $10
- jr z, .quit
- cp $6c
- jr nz, .quit
- ld hl, wca01
- dec [hl]
- jr z, .quit
- ld hl, wMysteryGiftTrainerData
- ld de, wMysteryGiftPartnerData
- ld bc, wMysteryGiftPartnerDataEnd - wMysteryGiftPartnerData
- call CopyBytes
- ld a, [wMysteryGiftTrainerData]
- cp $3
- jr nc, .quit
- callba StagePartyDataForMysteryGift
- call MysteryGift_ClearTrainerData
- ld a, $26
- ld [wca02], a
- ld a, [hPrintNum9]
- cp $2
- jr z, .asm_104c10
- call Function104d43
- jr nz, Function104bd0
- jp Function104b04
-
-.asm_104c10
- call Function104d38
- jr nz, Function104bd0
- jp Function104b22
-
-.quit
- ld a, [hMGStatusFlags]
- push af
- call Function104da0
- xor a
- ld [rIF], a
- ld a, [rIE]
- or $1
- ld [rIE], a
- ei
- call DelayFrame
- pop af
- ret
-
-Function104c2d: ; 104c2d (41:4c2d)
- di
- callba ClearChannels
- call Function104d5e
-.asm_104c37
- call Function104d96
- call Function104ddd
- ld a, [hMGStatusFlags]
- cp $10
- jp z, Function104d1c
- cp $6c
- jr nz, .asm_104c37
- ld a, [hPrintNum9]
- cp $2
- jr z, .asm_104c6c
- call Function104c8a
- jp nz, Function104d1c
- call Function104d38
- jp nz, Function104d1c
- call Function104cd2
- jp nz, Function104d1c
- call Function104d43
- jp nz, Function104d1c
- call Function105033
- jp Function104d1c
-.asm_104c6c
- call Function104cd2
- jp nz, Function104d1c
- call Function104d43
- jp nz, Function104d1c
- call Function104c8a
- jp nz, Function104d1c
- call Function104d38
- jp nz, Function104d1c
- call Function10502e
- jp Function104d1c
-
-Function104c8a: ; 104c8a (41:4c8a)
- ld hl, hPrintNum1
- ld b, $1
- call Function104d56
- ret nz
- call Function105033
- ld a, [hMGStatusFlags]
- cp $6c
- ret nz
- ld a, [hPrintNum1]
- cp $3c
- jp nz, Function104d32
- swap a
- ld [hPrintNum1], a
- call Function104d38
- ret nz
- ld hl, hPrintNum1
- ld b, $1
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hMGStatusFlags]
- cp $6c
- ret nz
- call Function104d43
- ret nz
- ld hl, wMysteryGiftTrainerData
- ld a, [wca02]
- ld b, a
- call Function104d56
- ret nz
- call Function105033
- ld a, [hMGStatusFlags]
- cp $6c
- ret
-
-Function104cd2: ; 104cd2 (41:4cd2)
- ld a, $3c
- ld [hPrintNum1], a
- ld hl, hPrintNum1
- ld b, $1
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hMGStatusFlags]
- cp $6c
- ret nz
- call Function104d43
- ret nz
- ld hl, hPrintNum1
- ld b, $1
- call Function104d56
- ret nz
- call Function105033
- ld a, [hMGStatusFlags]
- cp $6c
- ret nz
- ld a, [hPrintNum1]
- swap a
- cp $3c
- jp nz, Function104d32
- call Function104d38
- ret nz
- ld hl, OverworldMap
- ld a, [wca02]
- ld b, a
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hMGStatusFlags]
- cp $6c
- ret
-
-Function104d1c: ; 104d1c (41:4d1c)
- nop
- ld a, [hMGStatusFlags]
- push af
- call Function104da0
- xor a
- ld [rIF], a
- ld a, [rIE]
- or $1
- ld [rIE], a
- ei
- call DelayFrame
- pop af
- ret
-
-Function104d32: ; 104d32 (41:4d32)
- ld a, $80
- ld [hMGStatusFlags], a
- and a
- ret
-
-Function104d38: ; 104d38 (41:4d38)
- call Function104d96
- call Function104e46
- ld a, [hMGStatusFlags]
- cp $6c
- ret
-
-Function104d43: ; 104d43 (41:4d43)
- call Function104d96
- call Function104dfe
- ld a, [hMGStatusFlags]
- cp $6c
- ret
-
-Function104d4e: ; 104d4e (41:4d4e)
- call Function104e93
- ld a, [hMGStatusFlags]
- cp $6c
- ret
-
-Function104d56: ; 104d56 (41:4d56)
- call Function104f57
- ld a, [hMGStatusFlags]
- cp $6c
- ret
-
-Function104d5e: ; 104d5e (41:4d5e)
- call Function104d74
- ld a, $4
- ld [rIE], a
- xor a
- ld [rIF], a
- call Function104d96
- xor a
- ld b, a
-.asm_104d6d
- inc a
- jr nz, .asm_104d6d
- inc b
- jr nz, .asm_104d6d
- ret
-
-Function104d74: ; 104d74 (41:4d74)
- xor a
- ld [rTAC], a
- ld a, $fe
- ld [rTMA], a
- ld [rTIMA], a
- ld a, $2
- ld [rTAC], a
- or $4
- ld [rTAC], a
- ret
-
-Function104d86: ; 104d86 (41:4d86)
- xor a
- ld [rTAC], a
- ld [rTMA], a
- ld [rTIMA], a
- ld a, $2
- ld [rTAC], a
- or $4
- ld [rTAC], a
- ret
-
-Function104d96: ; 104d96 (41:4d96)
- ld a, $c0
- call Function104e8c
- ld a, $1
- ld [hPrintNum9], a
- ret
-
-Function104da0: ; 104da0 (41:4da0)
- xor a
- call Function104e8c
- ld a, $2
- ld [rTAC], a
- ret
-
-Function104da9: ; 104da9 (41:4da9)
- inc d
- ret z
- xor a
- ld [rIF], a
- halt
- ld a, [$ff00+c]
- bit 1, a
- jr z, Function104da9
- or a
- ret
-
-Function104db7: ; 104db7 (41:4db7)
- inc d
- ret z
- xor a
- ld [rIF], a
- halt
- ld a, [$ff00+c]
- bit 1, a
- jr nz, Function104db7
- or a
- ret
-
-Function104dc5: ; 104dc5 (41:4dc5)
- ld a, $c1
- ld [$ff00+c], a
-.wait
- dec d
- ret z
- xor a
- ld [rIF], a
- halt
- jr .wait
-
-Function104dd1: ; 104dd1 (41:4dd1)
- ld a, $c0
- ld [$ff00+c], a
-.wait
- dec d
- ret z
- xor a
- ld [rIF], a
- halt
- jr .wait
-
-Function104ddd: ; 104ddd (41:4ddd)
- ld d, $0
- ld e, d
- ld a, $1
- ld [hPrintNum9], a
-.loop
- call MysteryGift_ReadJoypad
- ld b, $2
- ld c, rRP % $100
- ld a, [hMGJoypadReleased]
- bit B_BUTTON_F, a
- jr z, .next
- ld a, $10
- ld [hMGStatusFlags], a
- ret
-
-.next
- bit 0, a
- jr nz, Function104e3a
- ld a, [$ff00+c]
- and b
- jr nz, .loop
-
-Function104dfe: ; 104dfe (41:4dfe)
- ld c, rRP % $100
- ld d, $0
- ld e, d
- call Function104db7
- jp z, Function104f42
- ld d, e
- call Function104da9
- jp z, Function104f42
- call Function104db7
- jp z, Function104f42
- call Function104da9
- jp z, Function104f42
- ld a, $6c
- ld [hMGStatusFlags], a
- ld d, $3d
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $15
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $5
- call Function104dd1
- ret
-
-Function104e3a: ; 104e3a (41:4e3a)
- ; Wait a random amount of time
- call Random
- ld e, a
- and $f
- ld d, a
-.loop
- dec de
- ld a, d
- or e
- jr nz, .loop
-Function104e46: ; 104e46 (41:4e46)
- ld a, $2
- ld [hPrintNum9], a
- ld c, rRP % $100
- ld d, $0
- ld e, d
- ld d, $3d
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $15
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $5
- call Function104dd1
- ld d, e
- call Function104db7
- jp z, Function104f42
- ld d, e
- call Function104da9
- jp z, Function104f42
- call Function104db7
- jp z, Function104f42
- call Function104da9
- jp z, Function104f42
- ld d, $3d
- call Function104dd1
- ld a, $6c
- ld [hMGStatusFlags], a
- ret
-
-Function104e8c: ; 104e8c (41:4e8c)
- ld [rRP], a
- ld a, $ff
- ld [hMGStatusFlags], a
- ret
-
-Function104e93: ; 104e93 (41:4e93)
- xor a
- ld [hPrintNum5], a
- ld [hPrintNum6], a
- push hl
- push bc
- ld c, rRP % $100
- ld d, $3d
- call Function104dd1
- ld hl, hPrintNum2
- ld a, $5a
- ld [hli], a
- ld [hl], b
- dec hl
- ld b, $2
- call Function104ed6
- pop bc
- pop hl
- call Function104ed6
- ld a, [hPrintNum5]
- ld [hPrintNum2], a
- ld a, [hPrintNum6]
- ld [hPrintNum3], a
- push hl
- ld hl, hPrintNum2
- ld b, $2
- call Function104ed6
- ld hl, hMGStatusFlags
- ld b, $1
- call Function104faf
- ld a, [hPrintNum2]
- ld [hPrintNum5], a
- ld a, [hPrintNum3]
- ld [hPrintNum6], a
- pop hl
- ret
-
-Function104ed6: ; 104ed6 (41:4ed6)
- ld c, rRP % $100
- ld d, $5
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $15
- call Function104dd1
- ld a, b
- cpl
- ld b, a
- ld a, $f4
- ld [rTMA], a
-.asm_104eee
- inc b
- jr z, .asm_104f2e
- ld a, $8
- ld [hPrintNum4], a
- ld a, [hli]
- ld e, a
- ld a, [hPrintNum5]
- add e
- ld [hPrintNum5], a
- ld a, [hPrintNum6]
- adc $0
- ld [hPrintNum6], a
-.asm_104f02
- xor a
- ld [rIF], a
- halt
- ld a, $c1
- ld [rRP], a
- ld d, $1
- ld a, e
- rlca
- ld e, a
- jr nc, .asm_104f13
- inc d
-.asm_104f13
- ld a, [rTIMA]
- cp $f8
- jr c, .asm_104f13
- ld a, $c0
- ld [rRP], a
- dec d
- jr z, .asm_104f25
- xor a
- ld [rIF], a
- halt
-.asm_104f25
- ld a, [hPrintNum4]
- dec a
- jr z, .asm_104eee
- ld [hPrintNum4], a
- jr .asm_104f02
-.asm_104f2e
- ld a, $fe
- ld [rTMA], a
- xor a
- ld [rIF], a
- halt
- ld d, $5
- call Function104dc5
- ld d, $11
- call Function104dd1
- ret
-
-Function104f42: ; 104f42 (41:4f42)
- ld a, [hMGStatusFlags]
- or $2
- ld [hMGStatusFlags], a
- ret
-
-Function104f49: ; 104f49 (41:4f49)
- ld a, [hMGStatusFlags]
- or $1
- ld [hMGStatusFlags], a
- ret
-
-Function104f50: ; 104f50 (41:4f50)
- ld a, [hMGStatusFlags]
- or $80
- ld [hMGStatusFlags], a
- ret
-
-Function104f57: ; 104f57 (41:4f57)
- xor a
- ld [hPrintNum5], a
- ld [hPrintNum6], a
- push bc
- push hl
- ld hl, hPrintNum2
- ld b, $2
- call Function104faf
- ld a, [hPrintNum3]
- ld [hPrintNum8], a
- ld b, a
- pop hl
- pop af
- cp b
- jp c, Function104f50
- ld a, [hPrintNum2]
- cp $5a
- jp nz, Function104f50
- call Function104faf
- ld a, [hPrintNum5]
- ld d, a
- ld a, [hPrintNum6]
- ld e, a
- push hl
- push de
- ld hl, hPrintNum2
- ld b, $2
- call Function104faf
- pop de
- ld hl, hPrintNum2
- ld a, [hli]
- xor d
- ld b, a
- ld a, [hl]
- xor e
- or b
- call nz, Function104f49
- push de
- ld d, $3d
- call Function104dd1
- ld hl, hMGStatusFlags
- ld b, $1
- call Function104ed6
- pop de
- pop hl
- ld a, d
- ld [hPrintNum5], a
- ld a, e
- ld [hPrintNum6], a
- ret
-
-Function104faf: ; 104faf (41:4faf)
- ld c, rRP % $100
- ld d, $0
- call Function104db7
- jp z, Function104f42
- ld d, $0
- call Function104da9
- jp z, Function104f42
- ld d, $0
- call Function104db7
- jp z, Function104f42
- ld a, b
- cpl
- ld b, a
- xor a
- ld [hMGJoypadPressed + 2], a
- call Function104d86
-.asm_104fd2
- inc b
- jr z, .asm_10501a
- ld a, $8
- ld [hPrintNum4], a
-.asm_104fd9
- ld d, $0
-.asm_104fdb
- inc d
- jr z, .asm_104fe5
- ld a, [$ff00+c]
- bit 1, a
- jr z, .asm_104fdb
- ld d, $0
-.asm_104fe5
- inc d
- jr z, .asm_104fed
- ld a, [$ff00+c]
- bit 1, a
- jr nz, .asm_104fe5
-.asm_104fed
- ld a, [hMGJoypadPressed + 2]
- ld d, a
- ld a, [rTIMA]
- ld [hMGJoypadPressed + 2], a
- sub d
- cp $12
- jr c, .asm_104ffd
- set 0, e
- jr .asm_104fff
-.asm_104ffd
- res 0, e
-.asm_104fff
- ld a, [hPrintNum4]
- dec a
- ld [hPrintNum4], a
- jr z, .asm_10500b
- ld a, e
- rlca
- ld e, a
- jr .asm_104fd9
-.asm_10500b
- ld a, e
- ld [hli], a
- ld a, [hPrintNum5]
- add e
- ld [hPrintNum5], a
- ld a, [hPrintNum6]
- adc $0
- ld [hPrintNum6], a
- jr .asm_104fd2
-.asm_10501a
- call Function104d74
- xor a
- ld [rIF], a
- ld d, $0
- call Function104da9
- jp z, Function104f42
- ld d, $10
- call Function104dd1
- ret
-
-Function10502e: ; 10502e (41:502e)
- ld b, $0
- jp Function104e93
-
-Function105033: ; 105033 (41:5033)
- ld b, $0
- jp Function104f57
-
-MysteryGift_ReadJoypad: ; 105038 (41:5038)
-; We can only get four inputs at a time.
-; We take d-pad first for no particular reason.
- ld a, R_DPAD
- ld [rJOYP], a
-; Read twice to give the request time to take.
- ld a, [rJOYP]
- ld a, [rJOYP]
-
-; The Joypad register output is in the lo nybble (inversed).
-; We make the hi nybble of our new container d-pad input.
- cpl
- and $f
- swap a
-
-; We'll keep this in b for now.
- ld b, a
-
-; Buttons make 8 total inputs (A, B, Select, Start).
-; We can fit this into one byte.
- ld a, R_BUTTONS
- ld [rJOYP], a
-; Wait for input to stabilize.
-rept 6
- ld a, [rJOYP]
-endr
-; Buttons take the lo nybble.
- cpl
- and $f
- or b
- ld c, a
-; To get the delta we xor the last frame's input with the new one.
- ld a, [hMGJoypadPressed]
- xor c
-; Released this frame:
- and c
- ld [hMGJoypadReleased], a
-; Pressed this frame:
- ld a, c
- ld [hMGJoypadPressed], a
- ld a, $30
-; Reset the joypad register since we're done with it.
- ld [rJOYP], a
- ret
-
-MysteryGift_CheckAndSetDecorationAlreadyReceived: ; 105069 (41:5069)
- call GetMysteryGiftBank
- ld d, $0
- ld b, CHECK_FLAG
- ld hl, sMysteryGiftDecorationsReceived
- predef_id FlagPredef
- push hl
- push bc
- call Predef
- call CloseSRAM
- ld a, c
- and a
- pop bc
- pop hl
- ret nz
- call GetMysteryGiftBank
- ld b, SET_FLAG
- predef FlagPredef
- call CloseSRAM
- xor a
- ret
-
-MysteryGift_CopyReceivedDecosToPC: ; 105091 (41:5091)
- call GetMysteryGiftBank
- ld c, $0
-.loop
- push bc
- ld d, $0
- ld b, CHECK_FLAG
- ld hl, sMysteryGiftDecorationsReceived
- predef FlagPredef
- ld a, c
- and a
- pop bc
- jr z, .skip
- push bc
- callab SetSpecificDecorationFlag
- pop bc
-.skip
- inc c
- ld a, c
- cp Trophys - DecorationIDs
- jr c, .loop
- jp CloseSRAM
-
-Special_UnlockMysteryGift: ; 1050b9
- call GetMysteryGiftBank
- ld hl, sMysteryGiftUnlocked
- ld a, [hl]
- inc a
- jr nz, .ok
- ld [hld], a
- ld [hl], a
-.ok
- jp CloseSRAM
-; 1050c8
-
-Function1050c8: ; 1050c8
- call GetMysteryGiftBank
- ld a, [sNumDailyMysteryGiftPartnerIDs]
- cp $ff
- jr z, .okay
- xor a
- ld [sNumDailyMysteryGiftPartnerIDs], a
-.okay
- jp CloseSRAM
-; 1050d9
-
-
-BackupMysteryGift: ; 1050d9
- call GetMysteryGiftBank
- ld hl, sMysteryGiftItem
- ld de, sBackupMysteryGiftItem
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- jp CloseSRAM
-; 1050ea
-
-
-RestoreMysteryGift: ; 1050ea (41:50ea)
- call GetMysteryGiftBank
- ld hl, sBackupMysteryGiftItem
- ld de, sMysteryGiftItem
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- jp CloseSRAM
-
-MysteryGift_ClearTrainerData: ; 1050fb (41:50fb)
- ld hl, wMysteryGiftTrainerData
- xor a
- ld b, wMysteryGiftTrainerDataEnd - wMysteryGiftTrainerData
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
- ret
-
-
-GetMysteryGiftBank: ; 105106
- ld a, BANK(sBackupMysteryGiftItem)
- jp GetSRAMBank
-; 10510b
-
-
-StagePartyDataForMysteryGift: ; 10510b (41:510b)
-; You will be sending this data to your mystery gift partner.
-; Structure is the same as a trainer with species and moves
-; defined.
- ld a, BANK(sPokemonData)
- call GetSRAMBank
- ld de, wMysteryGiftStaging
- ld bc, sPokemonData + PartyMons - wPokemonData
- ld hl, sPokemonData + PartySpecies - wPokemonData
-.loop
- ld a, [hli]
- cp -1
- jr z, .party_end
- cp EGG
- jr z, .next
- push hl
- ; copy level
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
- ; copy species
- ld hl, MON_SPECIES
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
- ; copy moves
- ld hl, MON_MOVES
- add hl, bc
- push bc
- ld bc, NUM_MOVES
- call CopyBytes
- pop bc
- pop hl
-.next
- push hl
- ld hl, PARTYMON_STRUCT_LENGTH
- add hl, bc
- ld b, h
- ld c, l
- pop hl
- jr .loop
-.party_end
- ld a, -1
- ld [de], a
- ld a, $26
- ld [wca00], a
- jp CloseSRAM
-
-InitMysteryGiftLayout: ; 105153 (41:5153)
- call ClearBGPalettes
- call DisableLCD
- ld hl, MysteryGiftGFX
- ld de, VTiles2 tile $00
- ld a, BANK(MysteryGiftGFX)
- ld bc, MysteryGiftGFXEnd - MysteryGiftGFX
- call FarCopyBytes
- hlcoord 0, 0
- ld a, $42
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- call ByteFill
- hlcoord 3, 7
- lb bc, 9, 15
- call ClearBox
- hlcoord 0, 0
- ld a, $0
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 0, 1
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 7, 1
- ld a, $12
- call .Load5GFX
- hlcoord 2, 2
- ld a, $17
- call .Load16GFX
- hlcoord 2, 3
- ld a, $27
- call .Load16GFX
- hlcoord 9, 4
- ld a, $37
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 1, 2
- ld [hl], $4
- hlcoord 1, 3
- ld a, $5
- call .Load14Column
- ld a, $9
- hlcoord 18, 5
- call .Load11Column
- hlcoord 2, 5
- ld a, $b
- call .Load16Row
- hlcoord 2, 16
- ld a, $7
- call .Load16Row
- hlcoord 2, 5
- ld a, $d
- call .Load5GFX
- hlcoord 7, 5
- ld [hl], $c
- hlcoord 18, 5
- ld [hl], $a
- hlcoord 18, 16
- ld [hl], $8
- hlcoord 1, 16
- ld [hl], $6
- hlcoord 2, 6
- ld a, $3a
- call .Load16Row
- hlcoord 2, 15
- ld a, $40
- call .Load16Row
- hlcoord 2, 6
- ld a, $3c
- call .Load9Column
- hlcoord 17, 6
- ld a, $3e
- call .Load9Column
- hlcoord 2, 6
- ld [hl], $39
- hlcoord 17, 6
- ld [hl], $3b
- hlcoord 2, 15
- ld [hl], $3f
- hlcoord 17, 15
- ld [hl], $41
- call EnableLCD
- call WaitBGMap
- ld b, SCGB_MYSTERY_GIFT
- call GetSGBLayout
- call SetPalettes
- ret
-
-.Load5GFX: ; 10522e (41:522e)
- ld b, 5
- jr .gfx_loop
-; 105232 (41:5232)
-
-.Load6GFX: ; unreferenced
- ld b, 6
- jr .gfx_loop
-
-.Load16GFX: ; 105236 (41:5236)
- ld b, 16
-
-.gfx_loop ; 105238 (41:5238)
- ld [hli], a
- inc a
- dec b
- jr nz, .gfx_loop
- ret
-
-.Load9Column: ; 10523e (41:523e)
- ld b, 9
- jr .col_loop
-
-.Load11Column: ; 105242 (41:5242)
- ld b, 11
- jr .col_loop
-
-.Load14Column: ; 105246 (41:5246)
- ld b, 14
-
-.col_loop ; 105248 (41:5248)
- ld [hl], a
- ld de, SCREEN_WIDTH
- add hl, de
- dec b
- jr nz, .col_loop
- ret
-
-.Load16Row: ; 105251 (41:5251)
- ld b, 16
-.row_loop
- ld [hli], a
- dec b
- jr nz, .row_loop
- ret
-
-MysteryGiftGFX: ; 105258
-INCBIN "gfx/mystery_gift/mystery_gift.2bpp"
-MysteryGiftGFXEnd:
-
-Function105688: ; 105688 (41:5688)
- call ClearTileMap
- call ClearSprites
- call WaitBGMap
- call Function1057d7
- hlcoord 3, 8
- ld de, String_10572e
- call PlaceString
- call WaitBGMap
- call Function10578c
- call MysteryGift_ClearTrainerData
- ld a, $24
- ld [wca02], a
- ld a, [rIE]
- push af
- call Function104c2d
- ld d, a
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- ld a, d
- cp $10
- jp z, Function105712
- cp $6c
- jp nz, Function10571a
- call Function1056eb
- ld c, 60
- call DelayFrames
- call Function105777
- ld hl, Text_ReceivedCard
- call PrintText
- ld de, wMysteryGiftTrainerData
- callba Function8ac70
- ld a, c
- ld [wd265], a
- ld hl, Text_CardNotRegistered
- jr c, asm_105726
- ld hl, Text_ListedCardAsNumber
- jr asm_105726
-
-Function1056eb: ; 1056eb (41:56eb)
- ld c, $10
-.asm_1056ed
- ld hl, Sprites
- ld b, $8
-.asm_1056f2
- dec [hl]
-rept 4
- inc hl
-endr
- dec b
- jr nz, .asm_1056f2
- ld hl, Sprites + $20
- ld b, $8
-.asm_1056ff
- inc [hl]
-rept 4
- inc hl
-endr
- dec b
- jr nz, .asm_1056ff
- dec c
- ret z
- push bc
- ld c, 4
- call DelayFrames
- pop bc
- jr .asm_1056ed
-
-Function105712: ; 105712 (41:5712)
- call Function105777
- ld hl, Text_MGLinkCanceled
- jr asm_105726
-
-Function10571a: ; 10571a (41:571a)
- call Function105777
- ld hl, Text_MGCommError
- call PrintText
- jp Function105688
-
-asm_105726: ; 105726 (41:5726)
- call PrintText
- ld a, $e3
- ld [rLCDC], a
- ret
-; 10572e (41:572e)
-
-String_10572e: ; 10572e
- db "エーボタン¯おすと"
- next "つうしん<PKMN>おこなわれるよ!"
- next "ビーボタン¯おすと"
- next "つうしん¯ちゅうし します"
- db "@"
-
-; 10575e
-
-Text_ReceivedCard: ; 10575e
- text_jump UnknownText_0x1c051a
- db "@"
-
-Text_ListedCardAsNumber: ; 105763
- text_jump UnknownText_0x1c0531
- db "@"
-
-Text_CardNotRegistered: ; 105768
- text_jump UnknownText_0x1c0555
- db "@"
-
-Text_MGLinkCanceled: ; 10576d
- text_jump UnknownText_0x1c0573
- db "@"
-
-Text_MGCommError: ; 105772
- text_jump UnknownText_0x1c0591
- db "@"
-; 105777
-
-Function105777: ; 105777 (41:5777)
- call ClearSprites
- call ClearTileMap
- call EnableLCD
- call WaitBGMap
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- call SetPalettes
- ret
-
-Function10578c: ; 10578c (41:578c)
- ld de, OverworldMap
- ld a, BANK(sPlayerData)
- call GetSRAMBank
- ld hl, sPlayerData + PlayerName - wPlayerData
- ld bc, NAME_LENGTH
- call CopyBytes
- ld hl, sPlayerData + PlayerID - wPlayerData
- ld bc, 2
- call CopyBytes
- ld hl, sPlayerData + wSecretID - wPlayerData
- ld bc, 2
- call CopyBytes
- call CloseSRAM
- ld a, BANK(sCrystalData)
- call GetSRAMBank
- ld a, [sCrystalData + 0]
- ld [de], a
- inc de
- ld a, $4
- call GetSRAMBank
- ld hl, $a603
- ld bc, $8
- call CopyBytes
- ld hl, $a007
- ld bc, $c
- call CopyBytes
- call CloseSRAM
- ret
-
-Function1057d7: ; 1057d7 (41:57d7)
- call ClearBGPalettes
- call DisableLCD
- ld hl, MysteryGiftJP_GFX
- ld de, VTiles2 tile $00
- ld a, BANK(MysteryGiftJP_GFX)
- lb bc, 4, 0
- call FarCopyBytes
- ld hl, MysteryGiftJP_GFX + $400
- ld de, VTiles0 tile $00
- ld a, BANK(MysteryGiftJP_GFX)
- ld bc, $80
- call FarCopyBytes
- hlcoord 0, 0
- ld a, $3f
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- call ByteFill
- hlcoord 3, 7
- lb bc, 9, 15
- call ClearBox
- hlcoord 0, 0
- ld a, $0
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 0, 1
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 4, 2
- ld a, $13
- call .Load11Row
- hlcoord 4, 3
- ld a, $1e
- call .Load12Row
- hlcoord 4, 4
- ld a, $2a
- call .Load12Row
- hlcoord 1, 2
- ld [hl], $4
- hlcoord 1, 3
- ld a, $5
- call .Load14Column
- ld a, $9
- hlcoord 18, 5
- call .Load11Column
- hlcoord 2, 5
- ld a, $b
- call .Load16Row
- hlcoord 2, 16
- ld a, $7
- call .Load16Row
- hlcoord 2, 5
- ld a, $d
- call .Load6Row
- hlcoord 8, 5
- ld [hl], $c
- hlcoord 18, 5
- ld [hl], $a
- hlcoord 18, 16
- ld [hl], $8
- hlcoord 1, 16
- ld [hl], $6
- hlcoord 2, 6
- ld a, $37
- call .Load16Row
- hlcoord 2, 15
- ld a, $3d
- call .Load16Row
- hlcoord 2, 6
- ld a, $39
- call .Load9Column
- hlcoord 17, 6
- ld a, $3b
- call .Load9Column
- hlcoord 2, 6
- ld [hl], $36
- hlcoord 17, 6
- ld [hl], $38
- hlcoord 2, 15
- ld [hl], $3c
- hlcoord 17, 15
- ld [hl], $3e
- ld de, Sprites
- ld hl, .OAM_data
- ld bc, $40
- call CopyBytes
- call EnableLCD
- call WaitBGMap
- ld b, $2
- callba GetMysteryGift_MobileAdapterLayout
- jp SetPalettes
-
-.Load6Row: ; 1058c6 (41:58c6)
- ld b, 6
- jr .row_loop
-
-.Load11Row: ; 1058ca (41:58ca)
- ld b, 11
- jr .row_loop
-
-.Load12Row: ; 1058ce (41:58ce)
- ld b, 12
-
-.row_loop ; 1058d0 (41:58d0)
- ld [hli], a
- inc a
- dec b
- jr nz, .row_loop
- ret
-
-.Load9Column: ; 1058d6 (41:58d6)
- ld b, 9
- jr .column_loop
-
-.Load11Column: ; 1058da (41:58da)
- ld b, 11
- jr .column_loop
-
-.Load14Column: ; 1058de (41:58de)
- ld b, 14
-
-.column_loop ; 1058e0 (41:58e0)
- ld [hl], a
- ld de, SCREEN_WIDTH
- add hl, de
- dec b
- jr nz, .column_loop
- ret
-
-.Load16Row: ; 1058e9 (41:58e9)
- ld b, 16
-.row_loop_no_inc
- ld [hli], a
- dec b
- jr nz, .row_loop_no_inc
- ret
-; 1058f0 (41:58f0)
-
-.OAM_data: ; 1058f0
- dsprite 2, 1, 6, 4, $00, $00
- dsprite 2, 1, 7, 4, $01, $00
- dsprite 2, 1, 8, 4, $02, $00
- dsprite 2, 1, 9, 4, $03, $00
- dsprite 3, 1, 6, 4, $04, $00
- dsprite 3, 1, 7, 4, $05, $00
- dsprite 3, 1, 8, 4, $06, $00
- dsprite 3, 1, 9, 4, $07, $00
- dsprite 0, 1, 11, 4, $00, $00
- dsprite 0, 1, 12, 4, $01, $00
- dsprite 0, 1, 13, 4, $02, $00
- dsprite 0, 1, 14, 4, $03, $00
- dsprite 1, 1, 11, 4, $04, $00
- dsprite 1, 1, 12, 4, $05, $00
- dsprite 1, 1, 13, 4, $06, $00
- dsprite 1, 1, 14, 4, $07, $00
-
-; japanese mystery gift gfx
-MysteryGiftJP_GFX: ; 105930
-INCBIN "gfx/mystery_gift/mystery_gift_jp.2bpp"
--- a/engine/mysterygift2.asm
+++ /dev/null
@@ -1,152 +1,0 @@
-PrepMysteryGiftDataToSend: ; 2c642 (b:4642)
- ld de, wMysteryGiftStaging
- ld a, $1
- ld [de], a
- inc de ; wc801
- ld a, BANK(sGameData)
- call GetSRAMBank
- ld hl, sPlayerData + PlayerID - wPlayerData
- ld a, [hli]
- ld [de], a
- ld b, a
- inc de ; wc802
- ld a, [hl]
- ld [de], a
- ld c, a
- inc de ; wc803
- push bc
- ld hl, sPlayerData + PlayerName - wPlayerData
- ld bc, NAME_LENGTH
- call CopyBytes
- push de ; wc80e
- ld hl, sPokemonData + PokedexCaught - wPokemonData
- ld b, EndPokedexCaught - PokedexCaught
- call CountSetBits
- pop de
- pop bc
- ld a, [wd265]
- ld [de], a
- inc de ; wc80f
- call CloseSRAM
- call Random
- and $1
- ld [de], a
- inc de ; wc810
- call .RandomSample
- ld [de], a
- inc de ; wc811
- ld a, c
- ld c, b
- ld b, a
- call .RandomSample
- ld [de], a
- inc de ; wc812
- ld a, BANK(sBackupMysteryGiftItem)
- call GetSRAMBank
- ld a, [sBackupMysteryGiftItem]
- ld [de], a
- inc de
- ld a, [sBackupMysteryGiftItem + 1]
- ld [de], a
- ld a, $14
- ld [wca00], a
- call CloseSRAM
- ld hl, wMysteryGiftStaging
- ld de, wMysteryGiftPlayerData
- ld bc, wMysteryGiftPlayerDataEnd - wMysteryGiftPlayerData
- jp CopyBytes
-
-.RandomSample: ; 2c6ac (b:46ac)
- push de
- call Random
- cp $19 ; 10 percent
- jr c, .tenpercent
- call Random
- and $7
- ld d, a
- rl d
- ld e, $80
-.loop
- rlc e
- dec a
- jr nz, .loop
- ld a, e
- and c
- jr z, .skip
- ld a, $1
-.skip
- add d
- jr .done
-
-.tenpercent
- call Random
- cp $32 ; 20 percent
- jr c, .twopercent
- call Random
- and $3
- ld d, a
- rl d
- ld e, $80
-.loop2
- rlc e
- dec a
- jr nz, .loop2
- ld a, e
- and b
- jr z, .skip2
- ld a, $1
-.skip2
- add d
- add $10
- jr .done
-
-.twopercent
- call Random
- cp $32 ; 50 ; 20 percent
- jr c, .pointfourpercent
- ld a, b
- swap a
- and $7
- add $18
- jr .done
-
-.pointfourpercent
- ld a, b
- and $80
- ld a, $20
- jr z, .done
- ld a, $21
-
-.done
- pop de
- ret
-
-MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708)
- ld a, c
- cp MysteryGiftItemsEnd - MysteryGiftItems
- jr nc, MysteryGiftFallbackItem
- ld hl, MysteryGiftItems
- ld b, 0
- add hl, bc
- ld c, [hl]
- ret
-
-MysteryGiftGetDecoration: ; 2c715 (b:4715)
- ld a, c
- cp MysteryGiftDecosEnd - MysteryGiftDecos
- jr nc, MysteryGiftFallbackItem
- ld hl, MysteryGiftDecos
- ld b, 0
- add hl, bc
- ld c, [hl]
- ret
-
-MysteryGiftFallbackItem: ; 2c722 (b:4722)
- ld c, DECO_POLKADOT_BED ; GREAT_BALL
- ret
-; 2c725 (b:4725)
-
-
-INCLUDE "data/mystery_gift/items.asm"
-
-INCLUDE "data/mystery_gift/decos.asm"
--- /dev/null
+++ b/engine/new_pokedex_entry.asm
@@ -1,0 +1,52 @@
+NewPokedexEntry: ; fb877
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ call LowVolume
+ call ClearBGPalettes
+ call ClearTileMap
+ call UpdateSprites
+ call ClearSprites
+ ld a, [wPokedexStatus]
+ push af
+ ld a, [hSCX]
+ add $5
+ ld [hSCX], a
+ xor a
+ ld [wPokedexStatus], a
+ callba _NewPokedexEntry
+ call WaitPressAorB_BlinkCursor
+ ld a, $1
+ ld [wPokedexStatus], a
+ callba DisplayDexEntry
+ call WaitPressAorB_BlinkCursor
+ pop af
+ ld [wPokedexStatus], a
+ call MaxVolume
+ call RotateThreePalettesRight
+ ld a, [hSCX]
+ add -5 ; 251 ; NUM_POKEMON
+ ld [hSCX], a
+ call .ReturnFromDexRegistration
+ pop af
+ ld [hMapAnims], a
+ ret
+; fb8c8
+
+.ReturnFromDexRegistration: ; fb8c8
+ call ClearTileMap
+ call LoadFontsExtra
+ call LoadStandardFont
+ callba Pokedex_PlaceFrontpicTopLeftCorner
+ call WaitBGMap2
+ callba GetEnemyMonDVs
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hl]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; fb8f1
--- a/engine/npc_movement.asm
+++ b/engine/npc_movement.asm
@@ -7,7 +7,8 @@
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 4, [hl] ; lost
+ bit 4, [hl] ; lost, uncomment next line to fix
+; jr nz, .resume
push hl
push bc
call Function6f2c
--- a/engine/overworld.asm
+++ b/engine/overworld.asm
@@ -389,8 +389,8 @@
LoadSpriteGFX: ; 14306
-; Bug: b is not preserved, so
-; it's useless as a next count.
+; Bug: b is not preserved, so it's useless as a next count.
+; Uncomment the lines below to fix.
ld hl, UsedSprites
ld b, SPRITE_GFX_LIST_CAPACITY
@@ -409,7 +409,9 @@
ret
.LoadSprite:
+ ; push bc
call GetSprite
+ ; pop bc
ld a, l
ret
; 1431e
@@ -721,6 +723,6 @@
INCLUDE "data/sprite_mons.asm"
-INCLUDE "data/outdoor_sprites.asm"
+INCLUDE "data/maps/outdoor_sprites.asm"
INCLUDE "gfx/sprite_headers.asm"
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1315,10 +1315,10 @@
; 108cc
PackGFXPointers: ; 108cc
- dw PackGFX + $f0 * 1
- dw PackGFX + $f0 * 3
- dw PackGFX + $f0 * 0
- dw PackGFX + $f0 * 2
+ dw PackGFX + (15 tiles) * 1
+ dw PackGFX + (15 tiles) * 3
+ dw PackGFX + (15 tiles) * 0
+ dw PackGFX + (15 tiles) * 2
; 108d4
Pack_InterpretJoypad: ; 108d4 (4:48d4)
--- /dev/null
+++ b/engine/pack_f.asm
@@ -1,0 +1,20 @@
+DrawKrisPackGFX: ; 48e81
+ ld hl, PackFGFXPointers
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, VTiles2 tile $50
+ lb bc, BANK(PackFGFX), 15
+ call Request2bpp
+ ret
+
+PackFGFXPointers: ; 48e93
+ dw PackFGFX + (15 tiles) * 1
+ dw PackFGFX + (15 tiles) * 3
+ dw PackFGFX + (15 tiles) * 0
+ dw PackFGFX + (15 tiles) * 2
+
+PackFGFX: ; 48e9b
+INCBIN "gfx/pack/pack_f.2bpp"
--- /dev/null
+++ b/engine/place_graphics.asm
@@ -1,0 +1,56 @@
+PlaceGraphic: ; 2ef6e
+; Fill wBoxAlignment-aligned box width b height c
+; with iterating tile starting from hGraphicStartTile at hl.
+; Predef $13
+
+ ld de, SCREEN_WIDTH
+
+ ld a, [wBoxAlignment]
+ and a
+ jr nz, .right
+
+ ld a, [hGraphicStartTile]
+.x1
+ push bc
+ push hl
+
+.y1
+ ld [hl], a
+ add hl, de
+ inc a
+ dec c
+ jr nz, .y1
+
+ pop hl
+ inc hl
+ pop bc
+ dec b
+ jr nz, .x1
+ ret
+
+.right
+; Right-aligned.
+ push bc
+ ld b, 0
+ dec c
+ add hl, bc
+ pop bc
+
+ ld a, [hGraphicStartTile]
+.x2
+ push bc
+ push hl
+
+.y2
+ ld [hl], a
+ add hl, de
+ inc a
+ dec c
+ jr nz, .y2
+
+ pop hl
+ dec hl
+ pop bc
+ dec b
+ jr nz, .x2
+ ret
--- /dev/null
+++ b/engine/play_slow_cry.asm
@@ -1,0 +1,31 @@
+PlaySlowCry: ; fb841
+ ld a, [ScriptVar]
+ call LoadCryHeader
+ jr c, .done
+
+ ld hl, CryPitch
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, -$140
+ add hl, bc
+ ld a, l
+ ld [CryPitch], a
+ ld a, h
+ ld [CryPitch + 1], a
+ ld hl, CryLength
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, $60
+ add hl, bc
+ ld a, l
+ ld [CryLength], a
+ ld a, h
+ ld [CryLength + 1], a
+ callba _PlayCryHeader
+ call WaitSFX
+
+.done
+ ret
+; fb877
--- /dev/null
+++ b/engine/player_gfx.asm
@@ -1,0 +1,263 @@
+Function88248: ; 88248
+; XXX
+ ld c, CAL
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .okay
+ ld c, KAREN
+
+.okay
+ ld a, c
+ ld [TrainerClass], a
+ ret
+
+MovePlayerPicRight: ; 88258
+ hlcoord 6, 4
+ ld de, 1
+ jr MovePlayerPic
+
+MovePlayerPicLeft: ; 88260
+ hlcoord 13, 4
+ ld de, -1
+ ; fallthrough
+
+MovePlayerPic: ; 88266
+; Move player pic at hl by de * 7 tiles.
+ ld c, $8
+.loop
+ push bc
+ push hl
+ push de
+ xor a
+ ld [hBGMapMode], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ xor a
+ ld [hBGMapThird], a
+ call WaitBGMap
+ call DelayFrame
+ pop de
+ pop hl
+ add hl, de
+ pop bc
+ dec c
+ ret z
+ push hl
+ push bc
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ lb bc, 7, 7
+ call ClearBox
+ pop bc
+ pop hl
+ jr .loop
+
+ShowPlayerNamingChoices: ; 88297
+ ld hl, ChrisNameMenuHeader
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotGender
+ ld hl, KrisNameMenuHeader
+.GotGender:
+ call LoadMenuDataHeader
+ call VerticalMenu
+ ld a, [wMenuCursorY]
+ dec a
+ call CopyNameFromMenu
+ call CloseWindow
+ ret
+
+ChrisNameMenuHeader: ; 882b5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 10 ; end coords
+ dw .MaleNames
+ db 1 ; ????
+ db 0 ; default option
+
+.MaleNames: ; 882be
+ db $91 ; flags
+ db 5 ; items
+ db "NEW NAME@"
+MalePlayerNameArray: ; 882c9
+ db "CHRIS@"
+ db "MAT@"
+ db "ALLAN@"
+ db "JON@"
+ db 2 ; displacement
+ db " NAME @" ; title
+
+KrisNameMenuHeader: ; 882e5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 10 ; end coords
+ dw .FemaleNames
+ db 1 ; ????
+ db 0 ; default option
+
+.FemaleNames: ; 882ee
+ db $91 ; flags
+ db 5 ; items
+ db "NEW NAME@"
+FemalePlayerNameArray: ; 882f9
+ db "KRIS@"
+ db "AMANDA@"
+ db "JUANA@"
+ db "JODI@"
+ db 2 ; displacement
+ db " NAME @" ; title
+
+GetPlayerNameArray: ; 88318 This Function is never called
+ ld hl, PlayerName
+ ld de, MalePlayerNameArray
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .done
+ ld de, FemalePlayerNameArray
+
+.done
+ call InitName
+ ret
+
+GetPlayerIcon: ; 8832c
+; Get the player icon corresponding to gender
+
+; Male
+ ld de, ChrisSpriteGFX
+ ld b, BANK(ChrisSpriteGFX)
+
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .done
+
+; Female
+ ld de, KrisSpriteGFX
+ ld b, BANK(KrisSpriteGFX)
+
+.done
+ ret
+
+GetCardPic: ; 8833e
+ ld hl, ChrisCardPic
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotClass
+ ld hl, KrisCardPic
+.GotClass:
+ ld de, VTiles2 tile $00
+ ld bc, $23 tiles
+ ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic)
+ call FarCopyBytes
+ ld hl, CardGFX
+ ld de, VTiles2 tile $23
+ ld bc, 6 tiles
+ ld a, BANK(CardGFX)
+ call FarCopyBytes
+ ret
+
+ChrisCardPic: ; 88365
+INCBIN "gfx/trainer_card/chris_card.2bpp"
+
+KrisCardPic: ; 88595
+INCBIN "gfx/trainer_card/kris_card.2bpp"
+
+CardGFX: ; 887c5
+INCBIN "gfx/trainer_card/trainer_card.2bpp"
+
+GetPlayerBackpic: ; 88825
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, GetChrisBackpic
+ call GetKrisBackpic
+ ret
+
+GetChrisBackpic: ; 88830
+ ld hl, ChrisBackpic
+ ld b, BANK(ChrisBackpic)
+ ld de, VTiles2 tile $31
+ ld c, 7 * 7
+ predef DecompressPredef
+ ret
+
+HOF_LoadTrainerFrontpic: ; 88840
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld e, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotClass
+ ld e, 1
+
+.GotClass:
+ ld a, e
+ ld [TrainerClass], a
+ ld de, ChrisPic
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotPic
+ ld de, KrisPic
+
+.GotPic:
+ ld hl, VTiles2
+ ld b, BANK(ChrisPic) ; BANK(KrisPic)
+ ld c, 7 * 7
+ call Get2bpp
+ call WaitBGMap
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+DrawIntroPlayerPic: ; 88874
+; Draw the player pic at (6,4).
+
+; Get class
+ ld e, CHRIS
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotClass
+ ld e, KRIS
+.GotClass:
+ ld a, e
+ ld [TrainerClass], a
+
+; Load pic
+ ld de, ChrisPic
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotPic
+ ld de, KrisPic
+.GotPic:
+ ld hl, VTiles2
+ ld b, BANK(ChrisPic) ; BANK(KrisPic)
+ ld c, 7 * 7 ; dimensions
+ call Get2bpp
+
+; Draw
+ xor a
+ ld [hGraphicStartTile], a
+ hlcoord 6, 4
+ lb bc, 7, 7
+ predef PlaceGraphic
+ ret
+
+ChrisPic: ; 888a9
+INCBIN "gfx/player/chris.2bpp"
+
+KrisPic: ; 88bb9
+INCBIN "gfx/player/kris.2bpp"
+
+GetKrisBackpic: ; 88ec9
+; Kris's backpic is uncompressed.
+ ld de, KrisBackpic
+ ld hl, VTiles2 tile $31
+ lb bc, BANK(KrisBackpic), 7 * 7 ; dimensions
+ call Get2bpp
+ ret
+
+KrisBackpic: ; 88ed6
+INCBIN "gfx/player/kris_back.2bpp"
--- /dev/null
+++ b/engine/player_gfx_2.asm
@@ -1,0 +1,5 @@
+ChrisBackpic: ; 2ba1a
+INCBIN "gfx/player/chris_back.2bpp.lz"
+
+DudeBackpic: ; 2bbaa
+INCBIN "gfx/battle/dude.2bpp.lz"
--- a/engine/player_movement.asm
+++ b/engine/player_movement.asm
@@ -42,7 +42,7 @@
jr z, .Surf
cp PLAYER_BIKE
jr z, .Normal
- cp PLAYER_SLIP
+ cp PLAYER_SKATE
jr z, .Ice
.Normal:
@@ -409,6 +409,8 @@
; making bumps silent.
ld a, [WalkingDirection]
+ ; cp STANDING
+ ; jr z, .not_warp
ld e, a
ld d, 0
ld hl, .EdgeWarps
@@ -420,6 +422,7 @@
ld a, 1
ld [wd041], a
ld a, [WalkingDirection]
+ ; This is in the wrong place.
cp STANDING
jr z, .not_warp
@@ -750,11 +753,10 @@
; 803ca
.BikeCheck: ; 803ca
-
ld a, [PlayerState]
cp PLAYER_BIKE
ret z
- cp PLAYER_SLIP
+ cp PLAYER_SKATE
ret
; 803d3
@@ -824,7 +826,7 @@
call CheckIceTile
jr nc, .yep
ld a, [PlayerState]
- cp PLAYER_SLIP
+ cp PLAYER_SKATE
jr nz, .not_ice
.yep
--- /dev/null
+++ b/engine/pokeball_wobble.asm
@@ -1,0 +1,88 @@
+GetPokeBallWobble: ; f971 (3:7971)
+; Returns whether a Poke Ball will wobble in the catch animation.
+; Whether a Pokemon is caught is determined beforehand.
+
+ push de
+
+ ld a, [rSVBK]
+ ld d, a
+ push de
+
+ ld a, 1 ; BANK(Buffer2)
+ ld [rSVBK], a
+
+ ld a, [Buffer2]
+ inc a
+ ld [Buffer2], a
+
+; Wobble up to 3 times.
+ cp 3 + 1
+ jr z, .finished
+
+ ld a, [wWildMon]
+ and a
+ ld c, 0 ; next
+ jr nz, .done
+
+ ld hl, .WobbleProbabilities
+ ld a, [Buffer1]
+ ld b, a
+.loop
+ ld a, [hli]
+ cp b
+ jr nc, .checkwobble
+ inc hl
+ jr .loop
+
+.checkwobble
+ ld b, [hl]
+ call Random
+ cp b
+ ld c, 0 ; next
+ jr c, .done
+ ld c, 2 ; escaped
+ jr .done
+
+.finished
+ ld a, [wWildMon]
+ and a
+ ld c, 1 ; caught
+ jr nz, .done
+ ld c, 2 ; escaped
+
+.done
+ pop de
+ ld e, a
+ ld a, d
+ ld [rSVBK], a
+ ld a, e
+ pop de
+ ret
+
+.WobbleProbabilities: ; f9ba
+; catch rate, chance of wobbling / 255
+; nLeft/255 = (nRight/255) ** 4
+ db 1, 63
+ db 2, 75
+ db 3, 84
+ db 4, 90
+ db 5, 95
+ db 7, 103
+ db 10, 113
+ db 15, 126
+ db 20, 134
+ db 30, 149
+ db 40, 160
+ db 50, 169
+ db 60, 177
+ db 80, 191
+ db 100, 201
+ db 120, 211
+ db 140, 220
+ db 160, 227
+ db 180, 234
+ db 200, 240
+ db 220, 246
+ db 240, 251
+ db 254, 253
+ db 255, 255
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -1709,9 +1709,9 @@
ret
-INCLUDE "data/pokedex/order_alpha.asm"
+INCLUDE "data/pokemon/dex_order_alpha.asm"
-INCLUDE "data/pokedex/order_new.asm"
+INCLUDE "data/pokemon/dex_order_new.asm"
Pokedex_DisplayModeDescription: ; 40e5b
--- /dev/null
+++ b/engine/pokedex_3.asm
@@ -1,0 +1,162 @@
+LoadSGBPokedexGFX: ; 1ddf1c
+ ld hl, SGBPokedexGFX_LZ
+ ld de, VTiles2 tile $31
+ call Decompress
+ ret
+
+LoadSGBPokedexGFX2: ; 1ddf26 (77:5f26)
+ ld hl, SGBPokedexGFX_LZ
+ ld de, VTiles2 tile $31
+ lb bc, BANK(SGBPokedexGFX_LZ), $3a
+ call DecompressRequest2bpp
+ ret
+
+SGBPokedexGFX_LZ: ; 1ddf33
+INCBIN "gfx/pokedex/sgb.2bpp.lz"
+
+LoadQuestionMarkPic: ; 1de0d7
+ ld hl, .QuestionMarkLZ
+ ld de, sScratch
+ call Decompress
+ ret
+
+.QuestionMarkLZ: ; 1de0e1
+INCBIN "gfx/pics/questionmark/front.2bpp.lz"
+
+DrawPokedexListWindow: ; 1de171 (77:6171)
+ ld a, $32
+ hlcoord 0, 17
+ ld bc, 12
+ call ByteFill
+ hlcoord 0, 1
+ lb bc, 15, 11
+ call ClearBox
+ ld a, $34
+ hlcoord 0, 0
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 16
+ ld bc, 11
+ call ByteFill
+ hlcoord 5, 0
+ ld [hl], $3f
+ hlcoord 5, 16
+ ld [hl], $40
+ ld a, [wCurrentDexMode]
+ cp DEXMODE_OLD
+ jr z, .OldMode
+; scroll bar
+ hlcoord 11, 0
+ ld [hl], $50
+ ld a, $51
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT - 3
+ call Bank77_FillColumn
+ ld [hl], $52
+ jr .Done
+
+.OldMode:
+; no scroll bar
+ hlcoord 11, 0
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT - 3
+ call Bank77_FillColumn
+ ld [hl], $68
+.Done:
+ ret
+
+DrawPokedexSearchResultsWindow: ; 1de1d1 (77:61d1)
+ ld a, $34
+ hlcoord 0, 0
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 10
+ ld bc, 11
+ call ByteFill
+ hlcoord 5, 0
+ ld [hl], $3f
+ hlcoord 5, 10
+ ld [hl], $40
+ hlcoord 11, 0
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT / 2
+ call Bank77_FillColumn
+ ld [hl], $68
+ ld a, $34
+ hlcoord 0, 11
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 17
+ ld bc, 11
+ call ByteFill
+ hlcoord 11, 11
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 12
+ ld b, 5
+ call Bank77_FillColumn
+ ld [hl], $68
+ hlcoord 0, 12
+ lb bc, 5, 11
+ call ClearBox
+ ld de, .esults_D
+ hlcoord 0, 12
+ call PlaceString
+ ret
+
+.esults_D ; 1de23c
+; (SEARCH R)
+ db "ESULTS"
+ next ""
+; (### FOUN)
+ next "D!@"
+
+DrawDexEntryScreenRightEdge: ; 1de247
+ ld a, [hBGMapAddress]
+ ld l, a
+ ld a, [hBGMapAddress + 1]
+ ld h, a
+ push hl
+ inc hl
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [hBGMapAddress + 1], a
+ hlcoord 19, 0
+ ld [hl], $66
+ hlcoord 19, 1
+ ld a, $67
+ ld b, 15
+ call Bank77_FillColumn
+ ld [hl], $68
+ hlcoord 19, 17
+ ld [hl], $3c
+ xor a
+ ld b, SCREEN_HEIGHT
+ hlcoord 19, 0, AttrMap
+ call Bank77_FillColumn
+ call WaitBGMap2
+ pop hl
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [hBGMapAddress + 1], a
+ ret
+
+Bank77_FillColumn: ; 1de27f
+ push de
+ ld de, SCREEN_WIDTH
+.loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop
+ pop de
+ ret
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -2338,45 +2338,8 @@
; 91c5e
-Flypoints: ; 91c5e
-; landmark, spawn point
- const_def
-flypoint: MACRO
- const FLY_\1
- db \2, SPAWN_\1
-ENDM
-; Johto
- flypoint NEW_BARK, NEW_BARK_TOWN
- flypoint CHERRYGROVE, CHERRYGROVE_CITY
- flypoint VIOLET, VIOLET_CITY
- flypoint AZALEA, AZALEA_TOWN
- flypoint GOLDENROD, GOLDENROD_CITY
- flypoint ECRUTEAK, ECRUTEAK_CITY
- flypoint OLIVINE, OLIVINE_CITY
- flypoint CIANWOOD, CIANWOOD_CITY
- flypoint MAHOGANY, MAHOGANY_TOWN
- flypoint LAKE, LAKE_OF_RAGE
- flypoint BLACKTHORN, BLACKTHORN_CITY
- flypoint MT_SILVER, SILVER_CAVE
-; Kanto
+INCLUDE "data/flypoints.asm"
-KANTO_FLYPOINT EQU const_value
- flypoint PALLET, PALLET_TOWN
- flypoint VIRIDIAN, VIRIDIAN_CITY
- flypoint PEWTER, PEWTER_CITY
- flypoint CERULEAN, CERULEAN_CITY
- flypoint VERMILION, VERMILION_CITY
- flypoint ROCK_TUNNEL, ROCK_TUNNEL
- flypoint LAVENDER, LAVENDER_TOWN
- flypoint CELADON, CELADON_CITY
- flypoint SAFFRON, SAFFRON_CITY
- flypoint FUCHSIA, FUCHSIA_CITY
- flypoint CINNABAR, CINNABAR_ISLAND
- flypoint INDIGO, INDIGO_PLATEAU
- db -1
-
-; 91c8f
-
ret_91c8f: ; 91c8f
ret
@@ -2872,19 +2835,7 @@
ret
.PalMap:
-townmappals: MACRO
-rept _NARG / 2
- dn \2, \1
- shift
- shift
-endr
-endm
- townmappals 1, 1, 1, 2, 2, 2, 0, 0, 1, 1, 3, 1, 4, 5, 4, 5
- townmappals 1, 1, 1, 2, 2, 2, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0
- townmappals 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- townmappals 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0
- townmappals 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
- townmappals 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0
+INCLUDE "data/palettes/town_map.asm"
; 91f7b
TownMapMon: ; 91f7b
--- /dev/null
+++ b/engine/pokegear_2.asm
@@ -1,0 +1,25 @@
+TownMap_ConvertLineBreakCharacters: ; 1de2c5
+ ld hl, StringBuffer1
+.loop
+ ld a, [hl]
+ cp "@"
+ jr z, .end
+ cp "%"
+ jr z, .line_break
+ cp "¯"
+ jr z, .line_break
+ inc hl
+ jr .loop
+
+.line_break
+ ld [hl], "<LNBRK>"
+
+.end
+ ld de, StringBuffer1
+ hlcoord 9, 0
+ call PlaceString
+ ret
+
+
+PokegearGFX: ; 1de2e4
+INCBIN "gfx/pokegear/pokegear.2bpp.lz"
--- /dev/null
+++ b/engine/pokerus.asm
@@ -1,0 +1,160 @@
+GivePokerusAndConvertBerries: ; 2ed44
+ call ConvertBerriesToBerryJuice
+ ld hl, PartyMon1PokerusStatus
+ ld a, [PartyCount]
+ ld b, a
+ ld de, PARTYMON_STRUCT_LENGTH
+; Check to see if any of your Pokemon already has Pokerus.
+; If so, sample its spread through your party.
+; This means that you cannot get Pokerus de novo while
+; a party member has an active infection.
+.loopMons
+ ld a, [hl]
+ and $f
+ jr nz, .TrySpreadPokerus
+ add hl, de
+ dec b
+ jr nz, .loopMons
+
+; If we haven't been to Goldenrod City at least once,
+; prevent the contraction of Pokerus.
+ ld hl, StatusFlags2
+ bit 6, [hl]
+ ret z
+ call Random
+ ld a, [hRandomAdd]
+ and a
+ ret nz
+ ld a, [hRandomSub]
+ cp $3
+ ret nc ; 3/65536 chance (00 00, 00 01 or 00 02)
+ ld a, [PartyCount]
+ ld b, a
+.randomMonSelectLoop
+ call Random
+ and $7
+ cp b
+ jr nc, .randomMonSelectLoop
+ ld hl, PartyMon1PokerusStatus
+ call GetPartyLocation ; get pokerus byte of random mon
+ ld a, [hl]
+ and $f0
+ ret nz ; if it already has pokerus, do nothing
+.randomPokerusLoop ; Simultaneously sample the strain and duration
+ call Random
+ and a
+ jr z, .randomPokerusLoop
+ ld b, a
+ and $f0
+ jr z, .load_pkrs
+ ld a, b
+ and $7
+ inc a
+.load_pkrs
+ ld b, a ; this should come before the label
+ swap b
+ and $3
+ inc a
+ add b
+ ld [hl], a
+ ret
+
+.TrySpreadPokerus:
+ call Random
+ cp 1 + 33 percent
+ ret nc ; 1/3 chance
+
+ ld a, [PartyCount]
+ cp 1
+ ret z ; only one mon, nothing to do
+
+ ld c, [hl]
+ ld a, b
+ cp 2
+ jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards
+
+ call Random
+ cp 1 + 50 percent
+ jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards
+.checkFollowingMonsLoop
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .infectMon
+ ld c, a
+ and $3
+ ret z ; if mon has cured pokerus, stop searching
+ dec b ; go on to next mon
+ ld a, b
+ cp 1
+ jr nz, .checkFollowingMonsLoop ; no more mons left
+ ret
+
+.checkPreviousMonsLoop
+ ld a, [PartyCount]
+ cp b
+ ret z ; no more mons
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ ld a, [hl]
+ and a
+ jr z, .infectMon
+ ld c, a
+ and $3
+ ret z ; if mon has cured pokerus, stop searching
+ inc b ; go on to next mon
+ jr .checkPreviousMonsLoop
+
+.infectMon
+ ld a, c
+ and $f0
+ ld b, a
+ ld a, c
+ swap a
+ and $3
+ inc a
+ add b
+ ld [hl], a
+ ret
+
+; any berry held by a Shuckle may be converted to berry juice
+ConvertBerriesToBerryJuice: ; 2ede6
+ ld hl, StatusFlags2
+ bit 6, [hl]
+ ret z
+ call Random
+ cp $10
+ ret nc ; 1/16 chance
+ ld hl, PartyMons
+ ld a, [PartyCount]
+.partyMonLoop
+ push af
+ push hl
+ ld a, [hl]
+ cp SHUCKLE
+ jr nz, .loopMon
+ ld bc, MON_ITEM
+ add hl, bc
+ ld a, [hl]
+ cp BERRY
+ jr z, .convertToJuice
+
+.loopMon
+ pop hl
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .partyMonLoop
+ ret
+
+.convertToJuice
+ ld a, BERRY_JUICE
+ ld [hl], a
+ pop hl
+ pop af
+ ret
--- /dev/null
+++ b/engine/pokerus_tick.asm
@@ -1,0 +1,26 @@
+ApplyPokerusTick: ; 13988
+; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured.
+ ld hl, PartyMon1PokerusStatus ; PartyMon1 + MON_PKRS
+ ld a, [PartyCount]
+ and a
+ ret z ; make sure it's not wasting time on an empty party
+ ld c, a
+.loop
+ ld a, [hl]
+ and $f ; lower nybble is the number of days remaining
+ jr z, .next ; if already 0, skip
+ sub b ; subtract the number of days
+ jr nc, .ok ; max(result, 0)
+ xor a
+.ok
+ ld d, a ; back up this value because we need to preserve the strain (upper nybble)
+ ld a, [hl]
+ and $f0
+ add d
+ ld [hl], a ; this prevents a cured pokemon from recontracting pokerus
+.next
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
--- /dev/null
+++ b/engine/print_party.asm
@@ -1,0 +1,362 @@
+PrintPage1: ; 1dc1b0
+ hlcoord 0, 0
+ decoord 0, 0, wPrinterTileMapBuffer
+ ld bc, 17 * SCREEN_WIDTH
+ call CopyBytes
+ hlcoord 17, 1, wPrinterTileMapBuffer
+ ld a, $62
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 17, 2, wPrinterTileMapBuffer
+ ld a, $64
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 1, 9, wPrinterTileMapBuffer
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ hlcoord 1, 10, wPrinterTileMapBuffer
+ ld a, $61
+ ld [hli], a
+ ld [hl], a
+ hlcoord 2, 11, wPrinterTileMapBuffer
+ lb bc, 5, 18
+ call ClearBox
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wd265]
+ ld b, a
+ ld c, 1 ; get page 1
+ callba GetDexEntryPagePointer
+ pop af
+ ld a, b
+ hlcoord 1, 11, wPrinterTileMapBuffer
+ call nz, FarString
+ hlcoord 19, 0, wPrinterTileMapBuffer
+ ld [hl], $35
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld b, $f
+.column_loop
+ ld [hl], $37
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ ld [hl], $3a
+ ret
+; 1dc213
+
+PrintPage2: ; 1dc213
+ hlcoord 0, 0, wPrinterTileMapBuffer
+ ld bc, 8 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, wPrinterTileMapBuffer
+ ld a, $36
+ ld b, 6
+ call .FillColumn
+ hlcoord 19, 0, wPrinterTileMapBuffer
+ ld a, $37
+ ld b, 6
+ call .FillColumn
+ hlcoord 0, 6, wPrinterTileMapBuffer
+ ld [hl], $38
+ inc hl
+ ld a, $39
+ ld bc, SCREEN_HEIGHT
+ call ByteFill
+ ld [hl], $3a
+ hlcoord 0, 7, wPrinterTileMapBuffer
+ ld bc, SCREEN_WIDTH
+ ld a, $32
+ call ByteFill
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wd265]
+ ld b, a
+ ld c, 2 ; get page 2
+ callba GetDexEntryPagePointer
+ pop af
+ hlcoord 1, 1, wPrinterTileMapBuffer
+ ld a, b
+ call nz, FarString
+ ret
+; 1dc26a
+
+.FillColumn: ; 1dc26a
+ push de
+ ld de, SCREEN_WIDTH
+.column_loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ pop de
+ ret
+; 1dc275
+
+GBPrinterStrings:
+GBPrinterString_Null: db "@"
+GBPrinterString_CheckingLink: next " CHECKING LINK...@"
+GBPrinterString_Transmitting: next " TRANSMITTING...@"
+GBPrinterString_Printing: next " PRINTING...@"
+GBPrinterString_PrinterError1:
+ db " Printer Error 1"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError2:
+ db " Printer Error 2"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError3:
+ db " Printer Error 3"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError4:
+ db " Printer Error 4"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+; 1dc381
+
+PrintPartyMonPage1: ; 1dc381
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call LoadFontsBattleExtra
+
+ ld de, GBPrinterHPIcon
+ ld hl, VTiles2 tile $71
+ lb bc, BANK(GBPrinterHPIcon), 1
+ call Request1bpp
+
+ ld de, GBPrinterLvIcon
+ ld hl, VTiles2 tile $6e
+ lb bc, BANK(GBPrinterLvIcon), 1
+ call Request1bpp
+
+ ld de, ShinyIconGFX
+ ld hl, VTiles2 tile $3f
+ lb bc, BANK(ShinyIconGFX), 1
+ call Get2bpp
+
+ xor a
+ ld [MonType], a
+ callba CopyPkmnToTempMon
+ hlcoord 0, 7
+ ld b, 9
+ ld c, 18
+ call TextBox
+ hlcoord 8, 2
+ ld a, [TempMonLevel]
+ call PrintLevel_Force3Digits
+ hlcoord 12, 2
+ ld [hl], "◀" ; Filled left triangle
+ inc hl
+ ld de, TempMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ ld [CurSpecies], a
+ ld hl, PartyMonNicknames
+ call Function1dc50e
+ hlcoord 8, 4
+ call PlaceString
+ hlcoord 9, 6
+ ld [hl], "/"
+ call GetPokemonName
+ hlcoord 10, 6
+ call PlaceString
+ hlcoord 8, 0
+ ld [hl], "№"
+ inc hl
+ ld [hl], "."
+ inc hl
+ ld de, wd265
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ hlcoord 1, 9
+ ld de, String1dc550
+ call PlaceString
+ ld hl, PartyMonOT
+ call Function1dc50e
+ hlcoord 4, 9
+ call PlaceString
+ hlcoord 1, 11
+ ld de, String1dc559
+ call PlaceString
+ hlcoord 4, 11
+ ld de, TempMonID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ hlcoord 1, 14
+ ld de, String1dc554
+ call PlaceString
+ hlcoord 7, 14
+ ld a, [TempMonMoves + 0]
+ call Function1dc51a
+ call Function1dc52c
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ ld hl, wBoxAlignment
+ xor a
+ ld [hl], a
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr z, .asm_1dc469
+ inc [hl]
+
+.asm_1dc469
+ hlcoord 0, 0
+ call _PrepMonFrontpic
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 1dc47b
+
+PrintPartyMonPage2: ; 1dc47b
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call LoadFontsBattleExtra
+ xor a
+ ld [MonType], a
+ callba CopyPkmnToTempMon
+ hlcoord 0, 0
+ ld b, 15
+ ld c, 18
+ call TextBox
+ ld bc, SCREEN_WIDTH
+ decoord 0, 0
+ hlcoord 0, 1
+ call CopyBytes
+ hlcoord 7, 0
+ ld a, [TempMonMoves + 1]
+ call Function1dc51a
+ hlcoord 7, 2
+ ld a, [TempMonMoves + 2]
+ call Function1dc51a
+ hlcoord 7, 4
+ ld a, [TempMonMoves + 3]
+ call Function1dc51a
+ hlcoord 7, 7
+ ld de, String1dc55d
+ call PlaceString
+ hlcoord 16, 7
+ ld de, TempMonAttack
+ call .PrintTempMonStats
+ hlcoord 16, 9
+ ld de, TempMonDefense
+ call .PrintTempMonStats
+ hlcoord 16, 11
+ ld de, TempMonSpclAtk
+ call .PrintTempMonStats
+ hlcoord 16, 13
+ ld de, TempMonSpclDef
+ call .PrintTempMonStats
+ hlcoord 16, 15
+ ld de, TempMonSpeed
+ call .PrintTempMonStats
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 1dc507
+
+.PrintTempMonStats: ; 1dc507
+ lb bc, 2, 3
+ call PrintNum
+ ret
+; 1dc50e
+
+Function1dc50e: ; 1dc50e
+ ld bc, NAME_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+; 1dc51a
+
+Function1dc51a: ; 1dc51a
+ and a
+ jr z, .no_move
+
+ ld [wd265], a
+ call GetMoveName
+ jr .got_string
+
+.no_move
+ ld de, String1dc584
+
+.got_string
+ call PlaceString
+ ret
+; 1dc52c
+
+Function1dc52c: ; 1dc52c
+ callba GetGender
+ ld a, " "
+ jr c, .got_gender
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
+
+.got_gender
+ hlcoord 17, 2
+ ld [hl], a
+ ld bc, TempMonDVs
+ callba CheckShininess
+ ret nc
+ hlcoord 18, 2
+ ld [hl], "<SHINY>"
+ ret
+; 1dc550
+
+String1dc550: ; 1dc550
+ db "OT/@"
+
+String1dc554: ; 1dc554
+ db "MOVE@"
+
+String1dc559: ; 1dc559
+ db "<ID>№.@"
+
+String1dc55d: ; 1dc55d
+ db "ATTACK"
+ next "DEFENSE"
+ next "SPCL.ATK"
+ next "SPCL.DEF"
+ next "SPEED"
+ db "@"
+
+String1dc584: ; 1dc584
+ db "------------@"
+; 1dc591
+
+GBPrinterHPIcon: ; 1dc591
+INCBIN "gfx/printer/hp.1bpp"
+
+GBPrinterLvIcon: ; 1dc599
+INCBIN "gfx/printer/lv.1bpp"
--- a/engine/printer.asm
+++ b/engine/printer.asm
@@ -1,4 +1,4 @@
-INCLUDE "engine/printer/serial.asm"
+INCLUDE "engine/printer_serial.asm"
SendScreenToPrinter: ; 843f0
.loop
--- a/engine/printer/serial.asm
+++ /dev/null
@@ -1,645 +1,0 @@
-Printer_StartTransmission: ; 84000
- ld hl, wGameboyPrinterRAM
- ld bc, wGameboyPrinterRAMEnd - wGameboyPrinterRAM
- xor a
- call Printer_ByteFill
- xor a
- ld [rSB], a
- ld [rSC], a
- ld [wPrinterOpcode], a
- ld hl, wPrinterConnectionOpen
- set 0, [hl]
- ld a, [GBPrinter]
- ld [wGBPrinterSettings], a
- xor a
- ld [wJumptableIndex], a
- ret
-; 84022
-
-PrinterJumptableIteration: ; 84022
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 84031
-
-
-.Jumptable: ; 84031 (21:4031)
-
- dw Print_InitPrinterHandshake ; 00
- dw Printer_CheckConnectionStatus ; 01
- dw Printer_WaitSerial ; 02
- dw Printer_StartTransmittingTilemap ; 03
- dw Printer_TransmissionLoop ; 04
- dw Printer_WaitSerialAndLoopBack2 ; 05
-
- dw Printer_EndTilemapTransmission ; 06
- dw Printer_TransmissionLoop ; 07
- dw Printer_WaitSerial ; 08
- dw Printer_SignalSendHeader ; 09
- dw Printer_TransmissionLoop ; 0a
- dw Printer_WaitSerial ; 0b
- dw Printer_WaitUntilFinished ; 0c
- dw Printer_Quit ; 0d
-
- dw Printer_NextSection_ ; 0e
- dw Printer_WaitSerial ; 0f
- dw Printer_SignalLoopBack ; 10
- dw Printer_SectionOne ; 11
- dw Printer_WaitLoopBack ; 12
- dw Printer_WaitLoopBack_ ; 13
-
-
-Printer_NextSection: ; 84059 (21:4059)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Printer_PrevSection: ; 8405e (21:405e)
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-Printer_Quit: ; 84063 (21:4063)
- xor a
- ld [wPrinterStatusFlags], a
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Printer_NextSection_: ; 8406d (21:406d)
- call Printer_NextSection
- ret
-
-Printer_SectionOne: ; 84071 (21:4071)
- ld a, $1
- ld [wJumptableIndex], a
- ret
-
-Print_InitPrinterHandshake: ; 84077 (21:4077)
- call Printer_ResetData
- ld hl, PrinterDataPacket1
- call Printer_CopyPacket
- xor a
- ld [wPrinterSendByteCounter], a
- ld [wPrinterSendByteCounter + 1], a
- ld a, [wPrinterQueueLength]
- ld [wPrinterRowIndex], a
- call Printer_NextSection
- call Printer_WaitHandshake
- ld a, PRINTER_STATUS_CHECKING
- ld [wPrinterStatus], a
- ret
-
-Printer_StartTransmittingTilemap: ; 84099 (21:4099)
- call Printer_ResetData
- ; check ???
- ld hl, wPrinterRowIndex
- ld a, [hl]
- and a
- jr z, Printer_EndTilemapTransmission
- ; send packet 3
- ld hl, PrinterDataPacket3 ; signal start of transmission
- call Printer_CopyPacket
- ; prepare to send 40 tiles
- call Printer_Convert2RowsTo2bpp
- ld a, (40 tiles) % $100
- ld [wPrinterSendByteCounter], a
- ld a, (40 tiles) / $100
- ld [wPrinterSendByteCounter + 1], a
- ; compute the checksum
- call Printer_ComputeChecksum
- call Printer_NextSection
- call Printer_WaitHandshake
- ld a, PRINTER_STATUS_TRANSMITTING
- ld [wPrinterStatus], a
- ret
-
-Printer_EndTilemapTransmission: ; 840c5 (21:40c5)
- ; ensure that we go from here to routine 7
- ld a, $6
- ld [wJumptableIndex], a
- ; send packet 4
- ld hl, PrinterDataPacket4 ; signal no transmission
- call Printer_CopyPacket
- ; send no tile data
- xor a
- ld [wPrinterSendByteCounter], a
- ld [wPrinterSendByteCounter + 1], a
- call Printer_NextSection
- call Printer_WaitHandshake
- ret
-
-Printer_SignalSendHeader: ; 840de (21:40de)
- call Printer_ResetData
- ld hl, PrinterDataPacket2 ; signal request print
- call Printer_CopyPacket
- ; prepare to send 1 tile
- call Printer_StageHeaderForSend
- ld a, 4 % $100
- ld [wPrinterSendByteCounter], a
- ld a, 4 / $100
- ld [wPrinterSendByteCounter + 1], a
- ; compute the checksum
- call Printer_ComputeChecksum
- call Printer_NextSection
- call Printer_WaitHandshake
- ld a, PRINTER_STATUS_PRINTING
- ld [wPrinterStatus], a
- ret
-
-Printer_SignalLoopBack: ; 84103 (21:4103)
- call Printer_ResetData
- ; send packet 1
- ld hl, PrinterDataPacket1 ; signal no transmission
- call Printer_CopyPacket
- ; send no tile data
- xor a
- ld [wPrinterSendByteCounter], a
- ld [wPrinterSendByteCounter + 1], a
- ld a, [wPrinterQueueLength]
- ld [wPrinterRowIndex], a
- call Printer_NextSection
- call Printer_WaitHandshake
- ret
-
-Printer_WaitSerial: ; 84120 (21:4120)
- ld hl, wPrinterSerialFrameDelay
- inc [hl]
- ld a, [hl]
- cp $6
- ret c
- xor a
- ld [hl], a
- call Printer_NextSection
- ret
-
-Printer_WaitSerialAndLoopBack2: ; 8412e (21:412e)
- ld hl, wPrinterSerialFrameDelay
- inc [hl]
- ld a, [hl]
- cp $6
- ret c
- xor a
- ld [hl], a
- ld hl, wPrinterRowIndex
- dec [hl]
- call Printer_PrevSection
- call Printer_PrevSection
- ret
-
-Printer_CheckConnectionStatus: ; 84143 (21:4143)
- ld a, [wPrinterOpcode]
- and a
- ret nz
- ld a, [wPrinterHandshake]
- cp $ff
- jr nz, .printer_connected
- ld a, [wPrinterStatusFlags]
- cp $ff
- jr z, .printer_error
-
-.printer_connected
- ld a, [wPrinterHandshake]
- cp $81
- jr nz, .printer_error
- ld a, [wPrinterStatusFlags]
- cp $0
- jr nz, .printer_error
- ld hl, wPrinterConnectionOpen
- set 1, [hl]
- ld a, $5
- ld [wHandshakeFrameDelay], a
- call Printer_NextSection
- ret
-
-.printer_error
- ld a, $ff
- ld [wPrinterHandshake], a
- ld [wPrinterStatusFlags], a
- ld a, $e
- ld [wJumptableIndex], a
- ret
-
-Printer_TransmissionLoop: ; 84180 (21:4180)
- ld a, [wPrinterOpcode]
- and a
- ret nz
- ld a, [wPrinterStatusFlags]
- and $f0
- jr nz, .enter_wait_loop
- ld a, [wPrinterStatusFlags]
- and $1
- jr nz, .cycle_back
- call Printer_NextSection
- ret
-
-.cycle_back
- call Printer_PrevSection
- ret
-
-.enter_wait_loop
- ld a, $12 ; Printer_WaitLoopBack
- ld [wJumptableIndex], a
- ret
-
-Printer_WaitUntilFinished: ; 841a1 (21:41a1)
- ld a, [wPrinterOpcode]
- and a
- ret nz
- ld a, [wPrinterStatusFlags]
- and $f3
- ret nz
- call Printer_NextSection
- ret
-
-Printer_WaitLoopBack: ; 841b0 (21:41b0)
- call Printer_NextSection
-Printer_WaitLoopBack_: ; 841b3 (21:41b3)
- ld a, [wPrinterOpcode]
- and a
- ret nz
- ld a, [wPrinterStatusFlags]
- and $f0
- ret nz
- xor a
- ld [wJumptableIndex], a
- ret
-
-Printer_WaitHandshake: ; 841c3 (21:41c3)
-.loop
- ld a, [wPrinterOpcode]
- and a
- jr nz, .loop
- xor a
- ld [wPrinterSendByteOffset], a
- ld [wPrinterSendByteOffset + 1], a
- ld a, $1
- ld [wPrinterOpcode], a
- ld a, $88
- ld [rSB], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ret
-
-Printer_CopyPacket: ; 841e2 (21:41e2)
- ld a, [hli]
- ld [wPrinterData], a
- ld a, [hli]
- ld [wPrinterData + 1], a
- ld a, [hli]
- ld [wPrinterData + 2], a
- ld a, [hli]
- ld [wPrinterData + 3], a
- ld a, [hli]
- ld [wPrinterChecksum], a
- ld a, [hl]
- ld [wPrinterChecksum + 1], a
- ret
-
-Printer_ResetData: ; 841fb (21:41fb)
- xor a
- ld hl, wPrinterData
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, wPrinterChecksum
- ld [hli], a
- ld [hl], a
- xor a
- ld [wPrinterSendByteCounter], a
- ld [wPrinterSendByteCounter + 1], a
- ld hl, wGameboyPrinterRAM
- ld bc, wGameboyPrinter2bppSourceEnd - wGameboyPrinter2bppSource
- call Printer_ByteFill
- ret
-
-Printer_ComputeChecksum: ; 84219 (21:4219)
- ld hl, 0
- ld bc, 4
- ld de, wPrinterData
- call .ComputeChecksum
- ld a, [wPrinterSendByteCounter]
- ld c, a
- ld a, [wPrinterSendByteCounter + 1]
- ld b, a
- ld de, wGameboyPrinterRAM
- call .ComputeChecksum
- ld a, l
- ld [wPrinterChecksum], a
- ld a, h
- ld [wPrinterChecksum + 1], a
- ret
-
-.ComputeChecksum: ; 8423c (21:423c)
-.loop
- ld a, [de]
- inc de
- add l
- jr nc, .no_overflow
- inc h
-.no_overflow
- ld l, a
- dec bc
- ld a, c
- or b
- jr nz, .loop
- ret
-
-Printer_StageHeaderForSend: ; 84249 (21:4249)
- ld a, $1
- ld [wGameboyPrinter2bppSource + 0], a
- ld a, [wcbfa]
- ld [wGameboyPrinter2bppSource + 1], a
- ld a, %11100100
- ld [wGameboyPrinter2bppSource + 2], a
- ld a, [wGBPrinterSettings]
- ld [wGameboyPrinter2bppSource + 3], a
- ret
-
-Printer_Convert2RowsTo2bpp: ; 84260 (21:4260)
- ; de = wPrinterTileMapBuffer + 2 * SCREEN_WIDTH * ([wPrinterQueueLength] - [wPrinterRowIndex])
- ld a, [wPrinterRowIndex]
- xor $ff
- ld d, a
- ld a, [wPrinterQueueLength]
- inc a
- add d
- ld hl, wPrinterTileMapBuffer
- ld de, 2 * SCREEN_WIDTH
-.loop1
- and a
- jr z, .okay1
- add hl, de
- dec a
- jr .loop1
-.okay1
- ld e, l
- ld d, h
- ld hl, wGameboyPrinter2bppSource
- ld c, 2 * SCREEN_WIDTH
-.loop2
- ld a, [de]
- inc de
- push bc
- push de
- push hl
- ; convert tile index to vram address
- swap a
- ld d, a
- and $f0
- ld e, a
- ld a, d
- and $f
- ld d, a
- and $8
- ld a, d
- jr nz, .vtiles_8xxx
- or $90
- jr .got_vtile_addr
-
-.vtiles_8xxx
- or $80
-.got_vtile_addr
- ld d, a
- ; copy 1 vtile to hl
- lb bc, BANK(Printer_Convert2RowsTo2bpp), 1
- call Request2bpp
- pop hl
- ld de, 1 tiles
- add hl, de
- pop de
- pop bc
- dec c
- jr nz, .loop2
- ret
-
-Printer_ByteFill: ; 842ab
- push de
- ld e, a
-.loop
- ld [hl], e
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .loop
- ld a, e
- pop de
- ret
-; 842b7
-
-PrinterDataPacket1:
- db 1, 0, $00, 0
- dw 1
-PrinterDataPacket2:
- db 2, 0, $04, 0
- dw 0
-PrinterDataPacket3:
- db 4, 0, $80, 2
- dw 0
-PrinterDataPacket4:
- db 4, 0, $00, 0
- dw 4
-PrinterDataPacket5: ; unused
- db 8, 0, $00, 0
- dw 8
-PrinterDataPacket6: ; unused
- db 15, 0, $00, 0
- dw 15
-; 842db
-
-_PrinterReceive:: ; 842db
- ld a, [wPrinterOpcode]
- add a
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 842ea
-
-
-.Jumptable: ; 842ea (21:42ea)
- dw Printer_DoNothing ; 00
-
- dw Printer_Send0x33 ; 01
- dw Printer_SendPrinterData1 ; 02
- dw Printer_SendPrinterData2 ; 03
- dw Printer_SendPrinterData3 ; 04
- dw Printer_SendPrinterData4 ; 05
- dw Printer_SendNextByte ; 06
- dw Printer_SendwPrinterChecksumLo ; 07
- dw Printer_SendwPrinterChecksumHi ; 08
- dw Printer_Send0x00 ; 09
- dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 0a
- dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop ; 0b
-
- dw Printer_Send0x33 ; 0c triggered by AskSerial
- dw Printer_Send0x0f ; 0d
- dw Printer_Send0x00_ ; 0e
- dw Printer_Send0x00_ ; 0f
- dw Printer_Send0x00_ ; 10
- dw Printer_Send0x0f ; 11
- dw Printer_Send0x00_ ; 12
- dw Printer_Send0x00 ; 13
- dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 14
- dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop_ ; 15
-
- dw Printer_Send0x33 ; 16 triggered by pressing B
- dw Printer_Send0x08 ; 17
- dw Printer_Send0x00_ ; 18
- dw Printer_Send0x00_ ; 19
- dw Printer_Send0x00_ ; 1a
- dw Printer_Send0x08 ; 1b
- dw Printer_Send0x00_ ; 1c
- dw Printer_Send0x00 ; 1d
- dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 1e
- dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop ; 1f
-
-
-Printer_NextInstruction: ; 8432a (21:432a)
- ld hl, wPrinterOpcode
- inc [hl]
- ret
-
-Printer_DoNothing: ; 8432f (21:432f)
- ret
-
-Printer_Send0x33: ; 84330 (21:4330)
- ld a, $33
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_SendPrinterData1: ; 84339 (21:4339)
- ld a, [wPrinterData]
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_SendPrinterData2: ; 84343 (21:4343)
- ld a, [wPrinterData + 1]
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_SendPrinterData3: ; 8434d (21:434d)
- ld a, [wPrinterData + 2]
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_SendPrinterData4: ; 84357 (21:4357)
- ld a, [wPrinterData + 3]
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_SendNextByte: ; 84361 (21:4361)
- ; decrement 16-bit counter
- ld hl, wPrinterSendByteCounter
- ld a, [hli]
- ld d, [hl]
- ld e, a
- or d
- jr z, .done
- dec de
- ld [hl], d
- dec hl
- ld [hl], e
-
- ld a, [wPrinterSendByteOffset]
- ld e, a
- ld a, [wPrinterSendByteOffset + 1]
- ld d, a
- ld hl, wGameboyPrinterRAM
- add hl, de
- inc de
- ld a, e
- ld [wPrinterSendByteOffset], a
- ld a, d
- ld [wPrinterSendByteOffset + 1], a
- ld a, [hl]
- call Printer_SerialSend
- ret
-
-.done
- call Printer_NextInstruction
-Printer_SendwPrinterChecksumLo: ; 8438b (21:438b)
- ld a, [wPrinterChecksum]
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_SendwPrinterChecksumHi: ; 84395 (21:4395)
- ld a, [wPrinterChecksum + 1]
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_Send0x00: ; 8439f (21:439f)
- ld a, $0
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_ReceiveTowPrinterHandshakeAndSend0x00: ; 843a8 (21:43a8)
- ld a, [rSB]
- ld [wPrinterHandshake], a
- ld a, $0
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop: ; 843b6 (21:43b6)
- ld a, [rSB]
- ld [wPrinterStatusFlags], a
- xor a
- ld [wPrinterOpcode], a
- ret
-
-Printer_Send0x0f: ; 843c0 (21:43c0)
- ld a, $f
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_Send0x00_: ; 843c9 (21:43c9)
- ld a, $0
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_Send0x08: ; 843d2 (21:43d2)
- ld a, $8
- call Printer_SerialSend
- call Printer_NextInstruction
- ret
-
-Printer_SerialSend: ; 843db (21:43db)
- ld [rSB], a
- ld a, $1 ; switch to internal clock
- ld [rSC], a
- ld a, $81 ; start transfer
- ld [rSC], a
- ret
-
-Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop_: ; 843e6 (21:43e6)
- ld a, [rSB]
- ld [wPrinterStatusFlags], a
- xor a
- ld [wPrinterOpcode], a
- ret
--- /dev/null
+++ b/engine/printer_serial.asm
@@ -1,0 +1,645 @@
+Printer_StartTransmission: ; 84000
+ ld hl, wGameboyPrinterRAM
+ ld bc, wGameboyPrinterRAMEnd - wGameboyPrinterRAM
+ xor a
+ call Printer_ByteFill
+ xor a
+ ld [rSB], a
+ ld [rSC], a
+ ld [wPrinterOpcode], a
+ ld hl, wPrinterConnectionOpen
+ set 0, [hl]
+ ld a, [GBPrinter]
+ ld [wGBPrinterSettings], a
+ xor a
+ ld [wJumptableIndex], a
+ ret
+; 84022
+
+PrinterJumptableIteration: ; 84022
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 84031
+
+
+.Jumptable: ; 84031 (21:4031)
+
+ dw Print_InitPrinterHandshake ; 00
+ dw Printer_CheckConnectionStatus ; 01
+ dw Printer_WaitSerial ; 02
+ dw Printer_StartTransmittingTilemap ; 03
+ dw Printer_TransmissionLoop ; 04
+ dw Printer_WaitSerialAndLoopBack2 ; 05
+
+ dw Printer_EndTilemapTransmission ; 06
+ dw Printer_TransmissionLoop ; 07
+ dw Printer_WaitSerial ; 08
+ dw Printer_SignalSendHeader ; 09
+ dw Printer_TransmissionLoop ; 0a
+ dw Printer_WaitSerial ; 0b
+ dw Printer_WaitUntilFinished ; 0c
+ dw Printer_Quit ; 0d
+
+ dw Printer_NextSection_ ; 0e
+ dw Printer_WaitSerial ; 0f
+ dw Printer_SignalLoopBack ; 10
+ dw Printer_SectionOne ; 11
+ dw Printer_WaitLoopBack ; 12
+ dw Printer_WaitLoopBack_ ; 13
+
+
+Printer_NextSection: ; 84059 (21:4059)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Printer_PrevSection: ; 8405e (21:405e)
+ ld hl, wJumptableIndex
+ dec [hl]
+ ret
+
+Printer_Quit: ; 84063 (21:4063)
+ xor a
+ ld [wPrinterStatusFlags], a
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Printer_NextSection_: ; 8406d (21:406d)
+ call Printer_NextSection
+ ret
+
+Printer_SectionOne: ; 84071 (21:4071)
+ ld a, $1
+ ld [wJumptableIndex], a
+ ret
+
+Print_InitPrinterHandshake: ; 84077 (21:4077)
+ call Printer_ResetData
+ ld hl, PrinterDataPacket1
+ call Printer_CopyPacket
+ xor a
+ ld [wPrinterSendByteCounter], a
+ ld [wPrinterSendByteCounter + 1], a
+ ld a, [wPrinterQueueLength]
+ ld [wPrinterRowIndex], a
+ call Printer_NextSection
+ call Printer_WaitHandshake
+ ld a, PRINTER_STATUS_CHECKING
+ ld [wPrinterStatus], a
+ ret
+
+Printer_StartTransmittingTilemap: ; 84099 (21:4099)
+ call Printer_ResetData
+ ; check ???
+ ld hl, wPrinterRowIndex
+ ld a, [hl]
+ and a
+ jr z, Printer_EndTilemapTransmission
+ ; send packet 3
+ ld hl, PrinterDataPacket3 ; signal start of transmission
+ call Printer_CopyPacket
+ ; prepare to send 40 tiles
+ call Printer_Convert2RowsTo2bpp
+ ld a, (40 tiles) % $100
+ ld [wPrinterSendByteCounter], a
+ ld a, (40 tiles) / $100
+ ld [wPrinterSendByteCounter + 1], a
+ ; compute the checksum
+ call Printer_ComputeChecksum
+ call Printer_NextSection
+ call Printer_WaitHandshake
+ ld a, PRINTER_STATUS_TRANSMITTING
+ ld [wPrinterStatus], a
+ ret
+
+Printer_EndTilemapTransmission: ; 840c5 (21:40c5)
+ ; ensure that we go from here to routine 7
+ ld a, $6
+ ld [wJumptableIndex], a
+ ; send packet 4
+ ld hl, PrinterDataPacket4 ; signal no transmission
+ call Printer_CopyPacket
+ ; send no tile data
+ xor a
+ ld [wPrinterSendByteCounter], a
+ ld [wPrinterSendByteCounter + 1], a
+ call Printer_NextSection
+ call Printer_WaitHandshake
+ ret
+
+Printer_SignalSendHeader: ; 840de (21:40de)
+ call Printer_ResetData
+ ld hl, PrinterDataPacket2 ; signal request print
+ call Printer_CopyPacket
+ ; prepare to send 1 tile
+ call Printer_StageHeaderForSend
+ ld a, 4 % $100
+ ld [wPrinterSendByteCounter], a
+ ld a, 4 / $100
+ ld [wPrinterSendByteCounter + 1], a
+ ; compute the checksum
+ call Printer_ComputeChecksum
+ call Printer_NextSection
+ call Printer_WaitHandshake
+ ld a, PRINTER_STATUS_PRINTING
+ ld [wPrinterStatus], a
+ ret
+
+Printer_SignalLoopBack: ; 84103 (21:4103)
+ call Printer_ResetData
+ ; send packet 1
+ ld hl, PrinterDataPacket1 ; signal no transmission
+ call Printer_CopyPacket
+ ; send no tile data
+ xor a
+ ld [wPrinterSendByteCounter], a
+ ld [wPrinterSendByteCounter + 1], a
+ ld a, [wPrinterQueueLength]
+ ld [wPrinterRowIndex], a
+ call Printer_NextSection
+ call Printer_WaitHandshake
+ ret
+
+Printer_WaitSerial: ; 84120 (21:4120)
+ ld hl, wPrinterSerialFrameDelay
+ inc [hl]
+ ld a, [hl]
+ cp $6
+ ret c
+ xor a
+ ld [hl], a
+ call Printer_NextSection
+ ret
+
+Printer_WaitSerialAndLoopBack2: ; 8412e (21:412e)
+ ld hl, wPrinterSerialFrameDelay
+ inc [hl]
+ ld a, [hl]
+ cp $6
+ ret c
+ xor a
+ ld [hl], a
+ ld hl, wPrinterRowIndex
+ dec [hl]
+ call Printer_PrevSection
+ call Printer_PrevSection
+ ret
+
+Printer_CheckConnectionStatus: ; 84143 (21:4143)
+ ld a, [wPrinterOpcode]
+ and a
+ ret nz
+ ld a, [wPrinterHandshake]
+ cp $ff
+ jr nz, .printer_connected
+ ld a, [wPrinterStatusFlags]
+ cp $ff
+ jr z, .printer_error
+
+.printer_connected
+ ld a, [wPrinterHandshake]
+ cp $81
+ jr nz, .printer_error
+ ld a, [wPrinterStatusFlags]
+ cp $0
+ jr nz, .printer_error
+ ld hl, wPrinterConnectionOpen
+ set 1, [hl]
+ ld a, $5
+ ld [wHandshakeFrameDelay], a
+ call Printer_NextSection
+ ret
+
+.printer_error
+ ld a, $ff
+ ld [wPrinterHandshake], a
+ ld [wPrinterStatusFlags], a
+ ld a, $e
+ ld [wJumptableIndex], a
+ ret
+
+Printer_TransmissionLoop: ; 84180 (21:4180)
+ ld a, [wPrinterOpcode]
+ and a
+ ret nz
+ ld a, [wPrinterStatusFlags]
+ and $f0
+ jr nz, .enter_wait_loop
+ ld a, [wPrinterStatusFlags]
+ and $1
+ jr nz, .cycle_back
+ call Printer_NextSection
+ ret
+
+.cycle_back
+ call Printer_PrevSection
+ ret
+
+.enter_wait_loop
+ ld a, $12 ; Printer_WaitLoopBack
+ ld [wJumptableIndex], a
+ ret
+
+Printer_WaitUntilFinished: ; 841a1 (21:41a1)
+ ld a, [wPrinterOpcode]
+ and a
+ ret nz
+ ld a, [wPrinterStatusFlags]
+ and $f3
+ ret nz
+ call Printer_NextSection
+ ret
+
+Printer_WaitLoopBack: ; 841b0 (21:41b0)
+ call Printer_NextSection
+Printer_WaitLoopBack_: ; 841b3 (21:41b3)
+ ld a, [wPrinterOpcode]
+ and a
+ ret nz
+ ld a, [wPrinterStatusFlags]
+ and $f0
+ ret nz
+ xor a
+ ld [wJumptableIndex], a
+ ret
+
+Printer_WaitHandshake: ; 841c3 (21:41c3)
+.loop
+ ld a, [wPrinterOpcode]
+ and a
+ jr nz, .loop
+ xor a
+ ld [wPrinterSendByteOffset], a
+ ld [wPrinterSendByteOffset + 1], a
+ ld a, $1
+ ld [wPrinterOpcode], a
+ ld a, $88
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+
+Printer_CopyPacket: ; 841e2 (21:41e2)
+ ld a, [hli]
+ ld [wPrinterData], a
+ ld a, [hli]
+ ld [wPrinterData + 1], a
+ ld a, [hli]
+ ld [wPrinterData + 2], a
+ ld a, [hli]
+ ld [wPrinterData + 3], a
+ ld a, [hli]
+ ld [wPrinterChecksum], a
+ ld a, [hl]
+ ld [wPrinterChecksum + 1], a
+ ret
+
+Printer_ResetData: ; 841fb (21:41fb)
+ xor a
+ ld hl, wPrinterData
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, wPrinterChecksum
+ ld [hli], a
+ ld [hl], a
+ xor a
+ ld [wPrinterSendByteCounter], a
+ ld [wPrinterSendByteCounter + 1], a
+ ld hl, wGameboyPrinterRAM
+ ld bc, wGameboyPrinter2bppSourceEnd - wGameboyPrinter2bppSource
+ call Printer_ByteFill
+ ret
+
+Printer_ComputeChecksum: ; 84219 (21:4219)
+ ld hl, 0
+ ld bc, 4
+ ld de, wPrinterData
+ call .ComputeChecksum
+ ld a, [wPrinterSendByteCounter]
+ ld c, a
+ ld a, [wPrinterSendByteCounter + 1]
+ ld b, a
+ ld de, wGameboyPrinterRAM
+ call .ComputeChecksum
+ ld a, l
+ ld [wPrinterChecksum], a
+ ld a, h
+ ld [wPrinterChecksum + 1], a
+ ret
+
+.ComputeChecksum: ; 8423c (21:423c)
+.loop
+ ld a, [de]
+ inc de
+ add l
+ jr nc, .no_overflow
+ inc h
+.no_overflow
+ ld l, a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+ ret
+
+Printer_StageHeaderForSend: ; 84249 (21:4249)
+ ld a, $1
+ ld [wGameboyPrinter2bppSource + 0], a
+ ld a, [wcbfa]
+ ld [wGameboyPrinter2bppSource + 1], a
+ ld a, %11100100
+ ld [wGameboyPrinter2bppSource + 2], a
+ ld a, [wGBPrinterSettings]
+ ld [wGameboyPrinter2bppSource + 3], a
+ ret
+
+Printer_Convert2RowsTo2bpp: ; 84260 (21:4260)
+ ; de = wPrinterTileMapBuffer + 2 * SCREEN_WIDTH * ([wPrinterQueueLength] - [wPrinterRowIndex])
+ ld a, [wPrinterRowIndex]
+ xor $ff
+ ld d, a
+ ld a, [wPrinterQueueLength]
+ inc a
+ add d
+ ld hl, wPrinterTileMapBuffer
+ ld de, 2 * SCREEN_WIDTH
+.loop1
+ and a
+ jr z, .okay1
+ add hl, de
+ dec a
+ jr .loop1
+.okay1
+ ld e, l
+ ld d, h
+ ld hl, wGameboyPrinter2bppSource
+ ld c, 2 * SCREEN_WIDTH
+.loop2
+ ld a, [de]
+ inc de
+ push bc
+ push de
+ push hl
+ ; convert tile index to vram address
+ swap a
+ ld d, a
+ and $f0
+ ld e, a
+ ld a, d
+ and $f
+ ld d, a
+ and $8
+ ld a, d
+ jr nz, .vtiles_8xxx
+ or $90
+ jr .got_vtile_addr
+
+.vtiles_8xxx
+ or $80
+.got_vtile_addr
+ ld d, a
+ ; copy 1 vtile to hl
+ lb bc, BANK(Printer_Convert2RowsTo2bpp), 1
+ call Request2bpp
+ pop hl
+ ld de, 1 tiles
+ add hl, de
+ pop de
+ pop bc
+ dec c
+ jr nz, .loop2
+ ret
+
+Printer_ByteFill: ; 842ab
+ push de
+ ld e, a
+.loop
+ ld [hl], e
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+ ld a, e
+ pop de
+ ret
+; 842b7
+
+PrinterDataPacket1:
+ db 1, 0, $00, 0
+ dw 1
+PrinterDataPacket2:
+ db 2, 0, $04, 0
+ dw 0
+PrinterDataPacket3:
+ db 4, 0, $80, 2
+ dw 0
+PrinterDataPacket4:
+ db 4, 0, $00, 0
+ dw 4
+PrinterDataPacket5: ; unused
+ db 8, 0, $00, 0
+ dw 8
+PrinterDataPacket6: ; unused
+ db 15, 0, $00, 0
+ dw 15
+; 842db
+
+_PrinterReceive:: ; 842db
+ ld a, [wPrinterOpcode]
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 842ea
+
+
+.Jumptable: ; 842ea (21:42ea)
+ dw Printer_DoNothing ; 00
+
+ dw Printer_Send0x33 ; 01
+ dw Printer_SendPrinterData1 ; 02
+ dw Printer_SendPrinterData2 ; 03
+ dw Printer_SendPrinterData3 ; 04
+ dw Printer_SendPrinterData4 ; 05
+ dw Printer_SendNextByte ; 06
+ dw Printer_SendwPrinterChecksumLo ; 07
+ dw Printer_SendwPrinterChecksumHi ; 08
+ dw Printer_Send0x00 ; 09
+ dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 0a
+ dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop ; 0b
+
+ dw Printer_Send0x33 ; 0c triggered by AskSerial
+ dw Printer_Send0x0f ; 0d
+ dw Printer_Send0x00_ ; 0e
+ dw Printer_Send0x00_ ; 0f
+ dw Printer_Send0x00_ ; 10
+ dw Printer_Send0x0f ; 11
+ dw Printer_Send0x00_ ; 12
+ dw Printer_Send0x00 ; 13
+ dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 14
+ dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop_ ; 15
+
+ dw Printer_Send0x33 ; 16 triggered by pressing B
+ dw Printer_Send0x08 ; 17
+ dw Printer_Send0x00_ ; 18
+ dw Printer_Send0x00_ ; 19
+ dw Printer_Send0x00_ ; 1a
+ dw Printer_Send0x08 ; 1b
+ dw Printer_Send0x00_ ; 1c
+ dw Printer_Send0x00 ; 1d
+ dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 1e
+ dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop ; 1f
+
+
+Printer_NextInstruction: ; 8432a (21:432a)
+ ld hl, wPrinterOpcode
+ inc [hl]
+ ret
+
+Printer_DoNothing: ; 8432f (21:432f)
+ ret
+
+Printer_Send0x33: ; 84330 (21:4330)
+ ld a, $33
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_SendPrinterData1: ; 84339 (21:4339)
+ ld a, [wPrinterData]
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_SendPrinterData2: ; 84343 (21:4343)
+ ld a, [wPrinterData + 1]
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_SendPrinterData3: ; 8434d (21:434d)
+ ld a, [wPrinterData + 2]
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_SendPrinterData4: ; 84357 (21:4357)
+ ld a, [wPrinterData + 3]
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_SendNextByte: ; 84361 (21:4361)
+ ; decrement 16-bit counter
+ ld hl, wPrinterSendByteCounter
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ or d
+ jr z, .done
+ dec de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+
+ ld a, [wPrinterSendByteOffset]
+ ld e, a
+ ld a, [wPrinterSendByteOffset + 1]
+ ld d, a
+ ld hl, wGameboyPrinterRAM
+ add hl, de
+ inc de
+ ld a, e
+ ld [wPrinterSendByteOffset], a
+ ld a, d
+ ld [wPrinterSendByteOffset + 1], a
+ ld a, [hl]
+ call Printer_SerialSend
+ ret
+
+.done
+ call Printer_NextInstruction
+Printer_SendwPrinterChecksumLo: ; 8438b (21:438b)
+ ld a, [wPrinterChecksum]
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_SendwPrinterChecksumHi: ; 84395 (21:4395)
+ ld a, [wPrinterChecksum + 1]
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_Send0x00: ; 8439f (21:439f)
+ ld a, $0
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_ReceiveTowPrinterHandshakeAndSend0x00: ; 843a8 (21:43a8)
+ ld a, [rSB]
+ ld [wPrinterHandshake], a
+ ld a, $0
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop: ; 843b6 (21:43b6)
+ ld a, [rSB]
+ ld [wPrinterStatusFlags], a
+ xor a
+ ld [wPrinterOpcode], a
+ ret
+
+Printer_Send0x0f: ; 843c0 (21:43c0)
+ ld a, $f
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_Send0x00_: ; 843c9 (21:43c9)
+ ld a, $0
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_Send0x08: ; 843d2 (21:43d2)
+ ld a, $8
+ call Printer_SerialSend
+ call Printer_NextInstruction
+ ret
+
+Printer_SerialSend: ; 843db (21:43db)
+ ld [rSB], a
+ ld a, $1 ; switch to internal clock
+ ld [rSC], a
+ ld a, $81 ; start transfer
+ ld [rSC], a
+ ret
+
+Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop_: ; 843e6 (21:43e6)
+ ld a, [rSB]
+ ld [wPrinterStatusFlags], a
+ xor a
+ ld [wPrinterOpcode], a
+ ret
--- /dev/null
+++ b/engine/printhoursmins.asm
@@ -1,0 +1,64 @@
+Function1dd6a9: ; 1dd6a9
+; XXX
+ ld a, b
+ ld b, c
+ ld c, a
+ push bc
+ push de
+ ld hl, sp+$2
+ ld d, h
+ ld e, l
+ pop hl
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ pop bc
+ ret
+
+PrintHoursMins ; 1dd6bb (77:56bb)
+; Hours in b, minutes in c
+ ld a, b
+ cp 12
+ push af
+ jr c, .AM
+ jr z, .PM
+ sub 12
+ jr .PM
+.AM:
+ or a
+ jr nz, .PM
+ ld a, 12
+.PM:
+ ld b, a
+; Crazy stuff happening with the stack
+ push bc
+ ld hl, sp+$1
+ push de
+ push hl
+ pop de
+ pop hl
+ ld [hl], " "
+ lb bc, 1, 2
+ call PrintNum
+ ld [hl], ":"
+ inc hl
+ ld d, h
+ ld e, l
+ ld hl, sp+$0
+ push de
+ push hl
+ pop de
+ pop hl
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ pop bc
+ ld de, String_AM
+ pop af
+ jr c, .place_am_pm
+ ld de, String_PM
+.place_am_pm
+ inc hl
+ call PlaceString
+ ret
+
+String_AM: db "AM@" ; 1dd6fc
+String_PM: db "PM@" ; 1dd6ff
--- a/engine/prof_oaks_pc.asm
+++ b/engine/prof_oaks_pc.asm
@@ -1,4 +1,3 @@
-
ProfOaksPC: ; 0x265d3
ld hl, OakPCText1
call MenuTextBox
@@ -100,31 +99,26 @@
ret
OakRatings: ; 0x2667f
-oakrating: MACRO
- db \1
- dw \2, \3
-endm
-
; if you caught at most this many, play this sound, load this text
- oakrating 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01
- oakrating 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02
- oakrating 34, SFX_DEX_FANFARE_20_49, OakRating03
- oakrating 49, SFX_DEX_FANFARE_20_49, OakRating04
- oakrating 64, SFX_DEX_FANFARE_50_79, OakRating05
- oakrating 79, SFX_DEX_FANFARE_50_79, OakRating06
- oakrating 94, SFX_DEX_FANFARE_80_109, OakRating07
- oakrating 109, SFX_DEX_FANFARE_80_109, OakRating08
- oakrating 124, SFX_CAUGHT_MON, OakRating09
- oakrating 139, SFX_CAUGHT_MON, OakRating10
- oakrating 154, SFX_DEX_FANFARE_140_169, OakRating11
- oakrating 169, SFX_DEX_FANFARE_140_169, OakRating12
- oakrating 184, SFX_DEX_FANFARE_170_199, OakRating13
- oakrating 199, SFX_DEX_FANFARE_170_199, OakRating14
- oakrating 214, SFX_DEX_FANFARE_200_229, OakRating15
- oakrating 229, SFX_DEX_FANFARE_200_229, OakRating16
- oakrating 239, SFX_DEX_FANFARE_230_PLUS, OakRating17
- oakrating 248, SFX_DEX_FANFARE_230_PLUS, OakRating18
- oakrating 255, SFX_DEX_FANFARE_230_PLUS, OakRating19
+ dbww 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01
+ dbww 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02
+ dbww 34, SFX_DEX_FANFARE_20_49, OakRating03
+ dbww 49, SFX_DEX_FANFARE_20_49, OakRating04
+ dbww 64, SFX_DEX_FANFARE_50_79, OakRating05
+ dbww 79, SFX_DEX_FANFARE_50_79, OakRating06
+ dbww 94, SFX_DEX_FANFARE_80_109, OakRating07
+ dbww 109, SFX_DEX_FANFARE_80_109, OakRating08
+ dbww 124, SFX_CAUGHT_MON, OakRating09
+ dbww 139, SFX_CAUGHT_MON, OakRating10
+ dbww 154, SFX_DEX_FANFARE_140_169, OakRating11
+ dbww 169, SFX_DEX_FANFARE_140_169, OakRating12
+ dbww 184, SFX_DEX_FANFARE_170_199, OakRating13
+ dbww 199, SFX_DEX_FANFARE_170_199, OakRating14
+ dbww 214, SFX_DEX_FANFARE_200_229, OakRating15
+ dbww 229, SFX_DEX_FANFARE_200_229, OakRating16
+ dbww 239, SFX_DEX_FANFARE_230_PLUS, OakRating17
+ dbww 248, SFX_DEX_FANFARE_230_PLUS, OakRating18
+ dbww 255, SFX_DEX_FANFARE_230_PLUS, OakRating19
OakPCText1: ; 0x266de
text_jump _OakPCText1
--- a/engine/radio.asm
+++ b/engine/radio.asm
@@ -1578,7 +1578,6 @@
.greater_than_11
call Random
maskbits NUM_PASSWORD_CATEGORIES
- and x
cp NUM_PASSWORD_CATEGORIES
jr nc, .greater_than_11
; Store it in the high nybble of e.
--- /dev/null
+++ b/engine/read_trainer_attributes.asm
@@ -1,0 +1,64 @@
+GetTrainerClassName: ; 3952d
+ ld hl, RivalName
+ ld a, c
+ cp RIVAL1
+ jr z, .rival
+
+ ld [CurSpecies], a
+ ld a, TRAINER_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ ld de, StringBuffer1
+ ret
+
+.rival
+ ld de, StringBuffer1
+ push de
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ pop de
+ ret
+
+GetOTName: ; 39550
+ ld hl, OTPlayerName
+ ld a, [wLinkMode]
+ and a
+ jr nz, .ok
+
+ ld hl, RivalName
+ ld a, c
+ cp RIVAL1
+ jr z, .ok
+
+ ld [CurSpecies], a
+ ld a, TRAINER_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ ld hl, StringBuffer1
+
+.ok
+ ld bc, TRAINER_CLASS_NAME_LENGTH
+ ld de, OTClassName
+ push de
+ call CopyBytes
+ pop de
+ ret
+
+GetTrainerAttributes: ; 3957b
+ ld a, [TrainerClass]
+ ld c, a
+ call GetOTName
+ ld a, [TrainerClass]
+ dec a
+ ld hl, TrainerClassAttributes + TRNATTR_ITEM1
+ ld bc, NUM_TRAINER_ATTRIBUTES
+ call AddNTimes
+ ld de, wEnemyTrainerItem1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, [hl]
+ ld [wEnemyTrainerBaseReward], a
+ ret
--- /dev/null
+++ b/engine/read_trainer_party.asm
@@ -1,0 +1,398 @@
+
+ReadTrainerParty: ; 39771
+ ld a, [InBattleTowerBattle]
+ bit 0, a
+ ret nz
+
+ ld a, [wLinkMode]
+ and a
+ ret nz
+
+ ld hl, OTPartyCount
+ xor a
+ ld [hli], a
+ dec a
+ ld [hl], a
+
+ ld hl, OTPartyMons
+ ld bc, OTPartyMonsEnd - OTPartyMons
+ xor a
+ call ByteFill
+
+ ld a, [OtherTrainerClass]
+ cp CAL
+ jr nz, .not_cal2
+ ld a, [OtherTrainerID]
+ cp CAL2
+ jr z, .cal2
+ ld a, [OtherTrainerClass]
+.not_cal2
+
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, TrainerGroups
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ld a, [OtherTrainerID]
+ ld b, a
+.skip_trainer
+ dec b
+ jr z, .got_trainer
+.loop
+ ld a, [hli]
+ cp $ff
+ jr nz, .loop
+ jr .skip_trainer
+.got_trainer
+
+.skip_name
+ ld a, [hli]
+ cp "@"
+ jr nz, .skip_name
+
+ ld a, [hli]
+ ld c, a
+ ld b, 0
+ ld d, h
+ ld e, l
+ ld hl, TrainerTypes
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, .done
+ push bc
+ jp hl
+
+.done
+ jp ComputeTrainerReward
+
+.cal2
+ ld a, BANK(sMysteryGiftTrainer)
+ call GetSRAMBank
+ ld de, sMysteryGiftTrainer
+ call TrainerType2
+ call CloseSRAM
+ jr .done
+; 397e3
+
+TrainerTypes: ; 397e3
+ dw TrainerType1 ; level, species
+ dw TrainerType2 ; level, species, moves
+ dw TrainerType3 ; level, species, item
+ dw TrainerType4 ; level, species, item, moves
+; 397eb
+
+TrainerType1: ; 397eb
+; normal (level, species)
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hli]
+ cp $ff
+ ret z
+
+ ld [CurPartyLevel], a
+ ld a, [hli]
+ ld [CurPartySpecies], a
+ ld a, OTPARTYMON
+ ld [MonType], a
+ push hl
+ predef TryAddMonToParty
+ pop hl
+ jr .loop
+; 39806
+
+TrainerType2: ; 39806
+; moves
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hli]
+ cp $ff
+ ret z
+
+ ld [CurPartyLevel], a
+ ld a, [hli]
+ ld [CurPartySpecies], a
+ ld a, OTPARTYMON
+ ld [MonType], a
+
+ push hl
+ predef TryAddMonToParty
+ ld a, [OTPartyCount]
+ dec a
+ ld hl, OTPartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+
+ ld b, NUM_MOVES
+.copy_moves
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .copy_moves
+
+ push hl
+
+ ld a, [OTPartyCount]
+ dec a
+ ld hl, OTPartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, MON_PP
+ add hl, de
+ push hl
+ ld hl, MON_MOVES
+ add hl, de
+ pop de
+
+ ld b, NUM_MOVES
+.copy_pp
+ ld a, [hli]
+ and a
+ jr z, .copied_pp
+
+ push hl
+ push bc
+ dec a
+ ld hl, Moves + MOVE_PP
+ ld bc, MOVE_LENGTH
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+ pop bc
+ pop hl
+
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .copy_pp
+.copied_pp
+
+ pop hl
+ jr .loop
+; 39871
+
+TrainerType3: ; 39871
+; item
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hli]
+ cp $ff
+ ret z
+
+ ld [CurPartyLevel], a
+ ld a, [hli]
+ ld [CurPartySpecies], a
+ ld a, OTPARTYMON
+ ld [MonType], a
+ push hl
+ predef TryAddMonToParty
+ ld a, [OTPartyCount]
+ dec a
+ ld hl, OTPartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ jr .loop
+; 3989d (e:589d)
+
+TrainerType4: ; 3989d
+; item + moves
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hli]
+ cp $ff
+ ret z
+
+ ld [CurPartyLevel], a
+ ld a, [hli]
+ ld [CurPartySpecies], a
+
+ ld a, OTPARTYMON
+ ld [MonType], a
+
+ push hl
+ predef TryAddMonToParty
+ ld a, [OTPartyCount]
+ dec a
+ ld hl, OTPartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+
+ ld a, [hli]
+ ld [de], a
+
+ push hl
+ ld a, [OTPartyCount]
+ dec a
+ ld hl, OTPartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+
+ ld b, NUM_MOVES
+.copy_moves
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .copy_moves
+
+ push hl
+
+ ld a, [OTPartyCount]
+ dec a
+ ld hl, OTPartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, MON_PP
+ add hl, de
+
+ push hl
+ ld hl, MON_MOVES
+ add hl, de
+ pop de
+
+ ld b, NUM_MOVES
+.copy_pp
+ ld a, [hli]
+ and a
+ jr z, .copied_pp
+
+ push hl
+ push bc
+ dec a
+ ld hl, Moves + MOVE_PP
+ ld bc, MOVE_LENGTH
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+ pop bc
+ pop hl
+
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .copy_pp
+.copied_pp
+
+ pop hl
+ jr .loop
+; 3991b
+
+ComputeTrainerReward: ; 3991b (e:591b)
+ ld hl, hProduct
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld a, [wEnemyTrainerBaseReward]
+ ld [hli], a
+ ld a, [CurPartyLevel]
+ ld [hl], a
+ call Multiply
+ ld hl, wBattleReward
+ xor a
+ ld [hli], a
+ ld a, [hProduct + 2]
+ ld [hli], a
+ ld a, [hProduct + 3]
+ ld [hl], a
+ ret
+
+
+Battle_GetTrainerName:: ; 39939
+ ld a, [InBattleTowerBattle]
+ bit 0, a
+ ld hl, OTPlayerName
+ jp nz, CopyTrainerName
+
+ ld a, [OtherTrainerID]
+ ld b, a
+ ld a, [OtherTrainerClass]
+ ld c, a
+
+GetTrainerName:: ; 3994c
+ ld a, c
+ cp CAL
+ jr nz, .not_cal2
+
+ ld a, BANK(sMysteryGiftTrainerHouseFlag)
+ call GetSRAMBank
+ ld a, [sMysteryGiftTrainerHouseFlag]
+ and a
+ call CloseSRAM
+ jr z, .not_cal2
+
+ ld a, BANK(sMysteryGiftPartnerName)
+ call GetSRAMBank
+ ld hl, sMysteryGiftPartnerName
+ call CopyTrainerName
+ jp CloseSRAM
+
+.not_cal2
+ dec c
+ push bc
+ ld b, 0
+ ld hl, TrainerGroups
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop bc
+
+.loop
+ dec b
+ jr z, CopyTrainerName
+
+.skip
+ ld a, [hli]
+ cp $ff
+ jr nz, .skip
+ jr .loop
+
+CopyTrainerName: ; 39984
+ ld de, StringBuffer1
+ push de
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ pop de
+ ret
+; 39990
+
+Function39990: ; 39990
+; This function is useless.
+ ld de, StringBuffer1
+ push de
+ ld bc, NAME_LENGTH
+ pop de
+ ret
+; 39999
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -500,12 +500,12 @@
; 14da9
ValidateSave: ; 14da9
- ld a, BANK(s1_a008)
+ ld a, BANK(sCheckValue1) ; BANK(sCheckValue2)
call GetSRAMBank
- ld a, 99
- ld [s1_a008], a
- ld a, " "
- ld [s1_ad0f], a
+ ld a, SAVE_CHECK_VALUE_1
+ ld [sCheckValue1], a
+ ld a, SAVE_CHECK_VALUE_2
+ ld [sCheckValue2], a
jp CloseSRAM
; 14dbb
@@ -568,12 +568,12 @@
; 14e2d
ValidateBackupSave: ; 14e2d
- ld a, BANK(s0_b208)
+ ld a, BANK(sBackupCheckValue1) ; BANK(sBackupCheckValue2)
call GetSRAMBank
- ld a, 99
- ld [s0_b208], a
- ld a, " "
- ld [s0_bf0f], a
+ ld a, SAVE_CHECK_VALUE_1
+ ld [sBackupCheckValue1], a
+ ld a, SAVE_CHECK_VALUE_2
+ ld [sBackupCheckValue2], a
call CloseSRAM
ret
; 14e40
@@ -731,13 +731,13 @@
CheckPrimarySaveFile: ; 14f84
- ld a, BANK(s1_a008)
+ ld a, BANK(sCheckValue1) ; BANK(sCheckValue2)
call GetSRAMBank
- ld a, [s1_a008]
- cp 99
+ ld a, [sCheckValue1]
+ cp SAVE_CHECK_VALUE_1
jr nz, .nope
- ld a, [s1_ad0f]
- cp " "
+ ld a, [sCheckValue2]
+ cp SAVE_CHECK_VALUE_2
jr nz, .nope
ld hl, sOptions
ld de, Options
@@ -753,13 +753,13 @@
; 14faf
CheckBackupSaveFile: ; 14faf
- ld a, BANK(s0_b208)
+ ld a, BANK(sBackupCheckValue1) ; BANK(sBackupCheckValue2)
call GetSRAMBank
- ld a, [s0_b208]
- cp 99
+ ld a, [sBackupCheckValue1]
+ cp SAVE_CHECK_VALUE_1
jr nz, .nope
- ld a, [s0_bf0f]
- cp " "
+ ld a, [sBackupCheckValue2]
+ cp SAVE_CHECK_VALUE_2
jr nz, .nope
ld hl, sBackupOptions
ld de, Options
--- /dev/null
+++ b/engine/select_menu.asm
@@ -1,0 +1,189 @@
+SelectMenu:: ; 13327
+
+ call CheckRegisteredItem
+ jr c, .NotRegistered
+ jp UseRegisteredItem
+
+.NotRegistered:
+ call OpenText
+ ld b, BANK(ItemMayBeRegisteredText)
+ ld hl, ItemMayBeRegisteredText
+ call MapTextbox
+ call WaitButton
+ jp CloseText
+; 13340
+
+
+ItemMayBeRegisteredText: ; 13340
+ text_jump UnknownText_0x1c1cf3
+ db "@"
+; 13345
+
+
+CheckRegisteredItem: ; 13345
+
+ ld a, [WhichRegisteredItem]
+ and a
+ jr z, .NoRegisteredItem
+ and REGISTERED_POCKET
+ rlca
+ rlca
+ ld hl, .Pockets
+ rst JumpTable
+ ret
+
+.Pockets:
+ dw .CheckItem
+ dw .CheckBall
+ dw .CheckKeyItem
+ dw .CheckTMHM
+
+.CheckItem:
+ ld hl, NumItems
+ call .CheckRegisteredNo
+ jr c, .NoRegisteredItem
+ inc hl
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ call .IsSameItem
+ jr c, .NoRegisteredItem
+ and a
+ ret
+
+.CheckKeyItem:
+ ld a, [RegisteredItem]
+ ld hl, KeyItems
+ ld de, 1
+ call IsInArray
+ jr nc, .NoRegisteredItem
+ ld a, [RegisteredItem]
+ ld [CurItem], a
+ and a
+ ret
+
+.CheckBall:
+ ld hl, NumBalls
+ call .CheckRegisteredNo
+ jr nc, .NoRegisteredItem
+ inc hl
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ call .IsSameItem
+ jr c, .NoRegisteredItem
+ ret
+
+.CheckTMHM:
+ jr .NoRegisteredItem
+
+.NoRegisteredItem:
+ xor a
+ ld [WhichRegisteredItem], a
+ ld [RegisteredItem], a
+ scf
+ ret
+; 133a6
+
+
+.CheckRegisteredNo: ; 133a6
+ ld a, [WhichRegisteredItem]
+ and REGISTERED_NUMBER
+ dec a
+ cp [hl]
+ jr nc, .NotEnoughItems
+ ld [CurItemQuantity], a
+ and a
+ ret
+
+.NotEnoughItems:
+ scf
+ ret
+; 133b6
+
+
+.IsSameItem: ; 133b6
+ ld a, [RegisteredItem]
+ cp [hl]
+ jr nz, .NotSameItem
+ ld [CurItem], a
+ and a
+ ret
+
+.NotSameItem:
+ scf
+ ret
+; 133c3
+
+
+UseRegisteredItem: ; 133c3
+
+ callba CheckItemMenu
+ ld a, [wItemAttributeParamBuffer]
+ ld hl, .SwitchTo
+ rst JumpTable
+ ret
+
+.SwitchTo:
+ dw .CantUse
+ dw .NoFunction
+ dw .NoFunction
+ dw .NoFunction
+ dw .Current
+ dw .Party
+ dw .Overworld
+; 133df
+
+.NoFunction: ; 133df
+ call OpenText
+ call CantUseItem
+ call CloseText
+ and a
+ ret
+; 133ea
+
+.Current: ; 133ea
+ call OpenText
+ call DoItemEffect
+ call CloseText
+ and a
+ ret
+; 133f5
+
+.Party: ; 133f5
+ call RefreshScreen
+ call FadeToMenu
+ call DoItemEffect
+ call CloseSubmenu
+ call CloseText
+ and a
+ ret
+; 13406
+
+.Overworld: ; 13406
+ call RefreshScreen
+ ld a, 1
+ ld [wUsingItemWithSelect], a
+ call DoItemEffect
+ xor a
+ ld [wUsingItemWithSelect], a
+ ld a, [wItemEffectSucceeded]
+ cp 1
+ jr nz, ._cantuse
+ scf
+ ld a, HMENURETURN_SCRIPT
+ ld [hMenuReturn], a
+ ret
+; 13422
+
+.CantUse: ; 13422
+ call RefreshScreen
+
+._cantuse
+ call CantUseItem
+ call CloseText
+ and a
+ ret
+; 1342d
--- a/engine/selectmenu.asm
+++ /dev/null
@@ -1,189 +1,0 @@
-SelectMenu:: ; 13327
-
- call CheckRegisteredItem
- jr c, .NotRegistered
- jp UseRegisteredItem
-
-.NotRegistered:
- call OpenText
- ld b, BANK(ItemMayBeRegisteredText)
- ld hl, ItemMayBeRegisteredText
- call MapTextbox
- call WaitButton
- jp CloseText
-; 13340
-
-
-ItemMayBeRegisteredText: ; 13340
- text_jump UnknownText_0x1c1cf3
- db "@"
-; 13345
-
-
-CheckRegisteredItem: ; 13345
-
- ld a, [WhichRegisteredItem]
- and a
- jr z, .NoRegisteredItem
- and REGISTERED_POCKET
- rlca
- rlca
- ld hl, .Pockets
- rst JumpTable
- ret
-
-.Pockets:
- dw .CheckItem
- dw .CheckBall
- dw .CheckKeyItem
- dw .CheckTMHM
-
-.CheckItem:
- ld hl, NumItems
- call .CheckRegisteredNo
- jr c, .NoRegisteredItem
- inc hl
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- call .IsSameItem
- jr c, .NoRegisteredItem
- and a
- ret
-
-.CheckKeyItem:
- ld a, [RegisteredItem]
- ld hl, KeyItems
- ld de, 1
- call IsInArray
- jr nc, .NoRegisteredItem
- ld a, [RegisteredItem]
- ld [CurItem], a
- and a
- ret
-
-.CheckBall:
- ld hl, NumBalls
- call .CheckRegisteredNo
- jr nc, .NoRegisteredItem
- inc hl
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- call .IsSameItem
- jr c, .NoRegisteredItem
- ret
-
-.CheckTMHM:
- jr .NoRegisteredItem
-
-.NoRegisteredItem:
- xor a
- ld [WhichRegisteredItem], a
- ld [RegisteredItem], a
- scf
- ret
-; 133a6
-
-
-.CheckRegisteredNo: ; 133a6
- ld a, [WhichRegisteredItem]
- and REGISTERED_NUMBER
- dec a
- cp [hl]
- jr nc, .NotEnoughItems
- ld [CurItemQuantity], a
- and a
- ret
-
-.NotEnoughItems:
- scf
- ret
-; 133b6
-
-
-.IsSameItem: ; 133b6
- ld a, [RegisteredItem]
- cp [hl]
- jr nz, .NotSameItem
- ld [CurItem], a
- and a
- ret
-
-.NotSameItem:
- scf
- ret
-; 133c3
-
-
-UseRegisteredItem: ; 133c3
-
- callba CheckItemMenu
- ld a, [wItemAttributeParamBuffer]
- ld hl, .SwitchTo
- rst JumpTable
- ret
-
-.SwitchTo:
- dw .CantUse
- dw .NoFunction
- dw .NoFunction
- dw .NoFunction
- dw .Current
- dw .Party
- dw .Overworld
-; 133df
-
-.NoFunction: ; 133df
- call OpenText
- call CantUseItem
- call CloseText
- and a
- ret
-; 133ea
-
-.Current: ; 133ea
- call OpenText
- call DoItemEffect
- call CloseText
- and a
- ret
-; 133f5
-
-.Party: ; 133f5
- call RefreshScreen
- call FadeToMenu
- call DoItemEffect
- call CloseSubmenu
- call CloseText
- and a
- ret
-; 13406
-
-.Overworld: ; 13406
- call RefreshScreen
- ld a, 1
- ld [wUsingItemWithSelect], a
- call DoItemEffect
- xor a
- ld [wUsingItemWithSelect], a
- ld a, [wItemEffectSucceeded]
- cp 1
- jr nz, ._cantuse
- scf
- ld a, HMENURETURN_SCRIPT
- ld [hMenuReturn], a
- ret
-; 13422
-
-.CantUse: ; 13422
- call RefreshScreen
-
-._cantuse
- call CantUseItem
- call CloseText
- and a
- ret
-; 1342d
--- /dev/null
+++ b/engine/sgb_layouts.asm
@@ -1,0 +1,636 @@
+Predef_LoadSGBLayout: ; 864c
+; LoadSGBLayout
+ call CheckCGB
+ jp nz, Predef_LoadSGBLayoutCGB
+
+ ld a, b
+ cp SCGB_RAM
+ jr nz, .not_ram
+ ld a, [SGBPredef]
+.not_ram
+ cp SCGB_PARTY_MENU_HP_PALS
+ jp z, SGB_ApplyPartyMenuHPPals
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, .Jumptable
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .Finish
+ push de
+ jp hl
+; 866f
+
+.Jumptable: ; 866f
+ dw .SGB_BattleGrayscale
+ dw .SGB_BattleColors
+ dw .SGB_PokegearPals
+ dw .SGB_StatsScreenHPPals
+ dw .SGB_Pokedex
+ dw .SGB_SlotMachine
+ dw .SGB06
+ dw .SGB07
+ dw .SGB_Diploma
+ dw .SGB_MapPals
+ dw .SGB_PartyMenu
+ dw .SGB_Evolution
+ dw .SGB0c
+ dw .SGB0d
+ dw .SGB_MoveList
+ dw .SGB0f
+ dw .SGB_PokedexSearchOption
+ dw .SGB11
+ dw .SGB12
+ dw .SGB13
+ dw .SGB_PackPals
+ dw .SGB_TrainerCard
+ dw .SGB_PokedexUnownMode
+ dw .SGB_BillsPC
+ dw .SGB_UnownPuzzle
+ dw .SGB19
+ dw .SGB_PlayerOrMonFrontpicPals
+ dw .SGB_TradeTube
+ dw .SGB_TrainerOrMonFrontpicPals
+ dw .SGB_MysteryGift
+ dw .SGB1e
+; 86ad
+
+.SGB_BattleGrayscale: ; 86ad
+ ld hl, PalPacket_9c66
+ ld de, BlkPacket_9aa6
+ ret
+; 86b4
+
+.SGB_BattleColors: ; 86b4
+ ld hl, BlkPacket_9aa6
+ call PushSGBPals_
+
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, HPBarPals
+ add hl, de
+
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+
+ ld a, [EnemyHPPal]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+
+ ld de, HPBarPals
+ add hl, de
+ ld a, [hli]
+ ld [wSGBPals + 9], a
+ ld a, [hli]
+ ld [wSGBPals + 10], a
+ ld a, [hli]
+ ld [wSGBPals + 11], a
+ ld a, [hl]
+ ld [wSGBPals + 12], a
+
+ ld hl, PalPacket_9cf6
+ ld de, wSGBPals + $10
+ ld bc, $10
+ call CopyBytes
+
+ call GetBattlemonBackpicPalettePointer
+
+ ld a, [hli]
+ ld [wSGBPals + $13], a
+ ld a, [hli]
+ ld [wSGBPals + $14], a
+ ld a, [hli]
+ ld [wSGBPals + $15], a
+ ld a, [hl]
+ ld [wSGBPals + $16], a
+ call GetEnemyFrontpicPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + $19], a
+ ld a, [hli]
+ ld [wSGBPals + $1a], a
+ ld a, [hli]
+ ld [wSGBPals + $1b], a
+ ld a, [hl]
+ ld [wSGBPals + $1c], a
+
+ ld hl, wSGBPals
+ ld de, wSGBPals + $10
+ ld a, SCGB_BATTLE_COLORS
+ ld [SGBPredef], a
+ ret
+; 873c
+
+.SGB_MoveList: ; 873c
+ ld hl, PalPacket_9bd6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+
+ ld hl, wSGBPals + 1
+ ld [hl], $10
+ inc hl
+ inc hl
+
+ ld a, [PlayerHPPal]
+ add $2f
+ ld [hl], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9ad6
+ ret
+; 875c
+
+.SGB_PokegearPals: ; 875c
+ ld hl, PalPacket_9c76
+ ld de, BlkPacket_9a86
+ ret
+; 8763
+
+.SGB_StatsScreenHPPals: ; 8763
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, [wCurHPPal]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, HPBarPals
+ add hl, de
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 9], a
+ ld a, [hli]
+ ld [wSGBPals + 10], a
+ ld a, [hli]
+ ld [wSGBPals + 11], a
+ ld a, [hl]
+ ld [wSGBPals + 12], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9ac6
+ ret
+; 87ab
+
+.SGB_PartyMenu: ; 87ab
+ ld hl, PalPacket_9c56
+ ld de, wSGBPals + 1
+ ret
+; 87b2
+
+.SGB_Pokedex: ; 87b2
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld hl, wSGBPals + 3
+ ld [hl], $9f
+ inc hl
+ ld [hl], $2a
+ inc hl
+ ld [hl], $5a
+ inc hl
+ ld [hl], $19
+ ld a, [CurPartySpecies]
+ call GetMonPalettePointer_
+ ld a, [hli]
+ ld [wSGBPals + 9], a
+ ld a, [hli]
+ ld [wSGBPals + 10], a
+ ld a, [hli]
+ ld [wSGBPals + 11], a
+ ld a, [hl]
+ ld [wSGBPals + 12], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9ae6
+ ret
+; 87e9
+
+.SGB_BillsPC: ; 87e9
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld hl, wSGBPals + 3
+ ld [hl], $9f
+ inc hl
+ ld [hl], $2a
+ inc hl
+ ld [hl], $5a
+ inc hl
+ ld [hl], $19
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 9], a
+ ld a, [hli]
+ ld [wSGBPals + 10], a
+ ld a, [hli]
+ ld [wSGBPals + 11], a
+ ld a, [hl]
+ ld [wSGBPals + 12], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9ae6
+ ret
+; 8823
+
+.SGB_PokedexUnownMode: ; 8823
+ call .SGB_Pokedex
+ ld de, BlkPacket_9af6
+ ret
+; 882a
+
+.SGB_PokedexSearchOption: ; 882a
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld hl, wSGBPals + 3
+ ld [hl], $9f
+ inc hl
+ ld [hl], $2a
+ inc hl
+ ld [hl], $5a
+ inc hl
+ ld [hl], $19
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 884b
+
+.SGB_PackPals: ; 884b
+ ld hl, PalPacket_9c36
+ ld de, BlkPacket_9a86
+ ret
+; 8852
+
+.SGB_SlotMachine: ; 8852
+ ld hl, PalPacket_9c96
+ ld de, BlkPacket_9b06
+ ret
+; 8859
+
+.SGB06: ; 8859
+ ld hl, PalPacket_9ca6
+ ld de, BlkPacket_9b76
+ ret
+; 8860
+
+.SGB_Diploma:
+.SGB_MysteryGift: ; 8860
+ ld hl, PalPacket_9cb6
+ ld de, BlkPacket_9a86
+ ret
+; 8867
+
+.SGB07: ; 8867
+ ld b, 0
+ ld hl, .BlkPacketTable_SGB07
+rept 4
+ add hl, bc
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 8878
+
+.BlkPacketTable_SGB07: ; 8878
+ dw BlkPacket_9a86, PalPacket_9be6
+ dw BlkPacket_9a96, PalPacket_9c06
+ dw BlkPacket_9a86, PalPacket_9c16
+; 8884
+
+.SGB0c: ; 8884
+ ld hl, PalPacket_9b96
+ ld de, BlkPacket_9b56
+ ld a, SCGB_DIPLOMA
+ ld [SGBPredef], a
+ ret
+; 8890
+
+.SGB13: ; 8890
+ ld hl, PalPacket_9ba6
+ ld de, BlkPacket_9b86
+ ret
+; 8897
+
+.SGB0f: ; 8897
+ ld hl, PalPacket_9c46
+ ld de, BlkPacket_9a86
+ ret
+; 889e
+
+.SGB11: ; 889e
+ ld hl, BlkPacket_9a86
+ ld de, PlayerLightScreenCount
+ ld bc, $10
+ call CopyBytes
+ ld hl, PalPacket_9bb6
+ ld de, BlkPacket_9a86
+ ret
+; 88b1
+
+.SGB_MapPals: ; 88b1
+ ld hl, PalPacket_9bd6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ call .GetMapPalsIndex
+ ld hl, wSGBPals + 1
+ ld [hld], a
+ ld de, BlkPacket_9a86
+ ld a, SCGB_MAPPALS
+ ld [SGBPredef], a
+ ret
+; 88cd
+
+.SGB_Evolution: ; 88cd
+ push bc
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ pop bc
+ ld a, c
+ and a
+ jr z, .partymon
+ ; Egg
+ ld hl, wSGBPals + 3
+ ; RGB 7, 7, 7
+ ld [hl], $e7
+ inc hl
+ ld [hl], $1c
+ inc hl
+ ; RGB 2, 3, 3
+ ld [hl], $62
+ inc hl
+ ld [hl], $c
+ jr .done
+
+.partymon
+ ld hl, PartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld c, l
+ ld b, h
+ ld a, [PlayerHPPal]
+ call GetPlayerOrMonPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+
+.done
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 891a
+
+.SGB0d:
+.SGB_TrainerCard: ; 891a
+ ld hl, PalPacket_9cb6
+ ld de, BlkPacket_9a86
+ ret
+; 8921
+
+.SGB_UnownPuzzle: ; 8921
+ ld hl, PalPacket_9bc6
+ ld de, BlkPacket_9a86
+ ret
+; 8928
+
+.SGB12: ; 8928
+ ld hl, PalPacket_9bd6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld hl, BlkPacket_9a86
+ ld de, wSGBPals + $10
+ ld bc, $10
+ call CopyBytes
+ call .GetMapPalsIndex
+ ld hl, wSGBPals + 1
+ ld [hl], a
+ ld hl, wSGBPals + 3
+ ld [hl], $2e
+ ld hl, wSGBPals + $13
+ ld a, 5
+ ld [hli], a
+ ld a, [wMenuBorderLeftCoord]
+ ld [hli], a
+ ld a, [wMenuBorderTopCoord]
+ ld [hli], a
+ ld a, [wMenuBorderRightCoord]
+ ld [hli], a
+ ld a, [wMenuBorderBottomCoord]
+ ld [hl], a
+ ld hl, wSGBPals
+ ld de, wSGBPals + $10
+ ret
+; 8969
+
+.SGB1e: ; 8969
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, PokemonPalettes
+ add hl, de
+ ld a, [wcf65]
+ and 3
+ sla a
+ sla a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 89a6
+
+.SGB19: ; 89a6
+ ld hl, PalPacket_9cd6
+ ld de, BlkPacket_9a86
+ ret
+; 89ad
+
+.SGB_PlayerOrMonFrontpicPals: ; 89ad
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 89d9
+
+.SGB_TradeTube: ; 89d9
+ ld hl, PalPacket_9cc6
+ ld de, BlkPacket_9a86
+ ret
+; 89e0
+
+.SGB_TrainerOrMonFrontpicPals: ; 89e0
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetFrontpicPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 8a0c
+
+.GetMapPalsIndex: ; 8a0c
+ ld a, [TimeOfDayPal]
+ cp NITE_F
+ jr c, .morn_day
+ ld a, $19
+ ret
+
+.morn_day
+ ld a, [wPermission]
+ cp ROUTE
+ jr z, .route
+ cp CAVE
+ jr z, .cave
+ cp DUNGEON
+ jr z, .cave
+ cp PERM_5
+ jr z, .perm5
+ cp GATE
+ jr z, .gate
+ ld a, [MapGroup]
+ ld e, a
+ ld d, 0
+ ld hl, .SGBRoofPalInds
+ add hl, de
+ ld a, [hl]
+ ret
+
+.route
+ ld a, $00
+ ret
+
+.cave
+ ld a, $18
+ ret
+
+.perm5
+ ld a, $06
+ ret
+
+.gate
+ ld a, $03
+ ret
+; 8a45
+
+.SGBRoofPalInds: ; 8a45
+ db $00 ; Unused
+ db $12 ; Olivine
+ db $14 ; Mahogany
+ db $18 ; Various Dungeons
+ db $11 ; Ecruteak
+ db $15 ; Blackthorn
+ db $09 ; Cinnabar
+ db $04 ; Cerulean
+ db $0f ; Azalea
+ db $16 ; Lake Of Rage
+ db $0e ; Violet
+ db $10 ; Goldenrod
+ db $06 ; Vermilion
+ db $01 ; Palette
+ db $03 ; Pewter
+ db $06 ; Fast Ship
+ db $0b ; Indigo Plateau
+ db $08 ; Fuchsia
+ db $05 ; Lavender
+ db $17 ; Silver Cave Outside
+ db $08 ; Pokemon Center 2F
+ db $07 ; Celadon
+ db $13 ; Cianwood
+ db $02 ; Viridian
+ db $0c ; New Bark
+ db $0a ; Saffron
+ db $0d ; Cherrygrove
+; 8a60
+
+.Finish: ; 8a60
+ push de
+ call PushSGBPals_
+ pop hl
+ jp PushSGBPals_
+; 8a68
--- a/engine/spawn_points.asm
+++ b/engine/spawn_points.asm
@@ -1,5 +1,5 @@
-INCLUDE "data/spawn_points.asm"
+INCLUDE "data/maps/spawn_points.asm"
LoadSpawnPoint: ; 1531f
--- /dev/null
+++ b/engine/square_root.asm
@@ -1,0 +1,30 @@
+GetSquareRoot: ; 13b87
+; Return the square root of de in b.
+
+; Rather than calculating the result, we take the index of the
+; first value in a table of squares that isn't lower than de.
+
+ ld hl, Squares
+ ld b, 0
+.loop
+; Make sure we don't go past the end of the table.
+ inc b
+ ld a, b
+ cp $ff
+ ret z
+
+; Iterate over the table until b**2 >= de.
+ ld a, [hli]
+ sub e
+ ld a, [hli]
+ sbc d
+
+ jr c, .loop
+ ret
+
+Squares: ; 13b98
+root set 1
+ rept $ff
+ dw root*root
+root set root+1
+ endr
--- /dev/null
+++ b/engine/start_battle.asm
@@ -1,0 +1,197 @@
+ShowLinkBattleParticipants: ; 2ee18
+; If we're not in a communications room,
+; we don't need to be here.
+ ld a, [wLinkMode]
+ and a
+ ret z
+
+ callba _ShowLinkBattleParticipants
+ ld c, 150
+ call DelayFrames
+ call ClearTileMap
+ call ClearSprites
+ ret
+
+FindFirstAliveMonAndStartBattle: ; 2ee2f
+ xor a
+ ld [hMapAnims], a
+ call DelayFrame
+ ld b, 6
+ ld hl, PartyMon1HP
+ ld de, PARTYMON_STRUCT_LENGTH - 1
+
+.loop
+ ld a, [hli]
+ or [hl]
+ jr nz, .okay
+ add hl, de
+ dec b
+ jr nz, .loop
+
+.okay
+ ld de, MON_LEVEL - MON_HP
+ add hl, de
+ ld a, [hl]
+ ld [BattleMonLevel], a
+ predef Predef_StartBattle
+ callba _LoadBattleFontsHPBar
+ ld a, 1
+ ld [hBGMapMode], a
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hWY], a
+ ld [rWY], a
+ ld [hMapAnims], a
+ ret
+
+PlayBattleMusic: ; 2ee6c
+ push hl
+ push de
+ push bc
+
+ xor a
+ ld [MusicFade], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ call MaxVolume
+
+ ld a, [BattleType]
+ cp BATTLETYPE_SUICUNE
+ ld de, MUSIC_SUICUNE_BATTLE
+ jp z, .done
+ cp BATTLETYPE_ROAMING
+ jp z, .done
+
+ ; Are we fighting a trainer?
+ ld a, [OtherTrainerClass]
+ and a
+ jr nz, .trainermusic
+
+ callba RegionCheck
+ ld a, e
+ and a
+ jr nz, .kantowild
+
+ ld de, MUSIC_JOHTO_WILD_BATTLE
+ ld a, [TimeOfDay]
+ cp NITE_F
+ jr nz, .done
+ ld de, MUSIC_JOHTO_WILD_BATTLE_NIGHT
+ jr .done
+
+.kantowild
+ ld de, MUSIC_KANTO_WILD_BATTLE
+ jr .done
+
+.trainermusic
+ ld de, MUSIC_CHAMPION_BATTLE
+ cp CHAMPION
+ jr z, .done
+ cp RED
+ jr z, .done
+
+ ; really, they should have included admins and scientists here too...
+ ld de, MUSIC_ROCKET_BATTLE
+ cp GRUNTM
+ jr z, .done
+ cp GRUNTF
+ jr z, .done
+
+ ld de, MUSIC_KANTO_GYM_LEADER_BATTLE
+ callba IsKantoGymLeader
+ jr c, .done
+
+ ld de, MUSIC_JOHTO_GYM_LEADER_BATTLE
+ callba IsJohtoGymLeader
+ jr c, .done
+
+ ld de, MUSIC_RIVAL_BATTLE
+ ld a, [OtherTrainerClass]
+ cp RIVAL1
+ jr z, .done
+ cp RIVAL2
+ jr nz, .othertrainer
+
+ ld a, [OtherTrainerID]
+ cp RIVAL2_2_CHIKORITA ; Rival in Indigo Plateau
+ jr c, .done
+ ld de, MUSIC_CHAMPION_BATTLE
+ jr .done
+
+.othertrainer
+ ld a, [wLinkMode]
+ and a
+ jr nz, .johtotrainer
+
+ callba RegionCheck
+ ld a, e
+ and a
+ jr nz, .kantotrainer
+
+.johtotrainer
+ ld de, MUSIC_JOHTO_TRAINER_BATTLE
+ jr .done
+
+.kantotrainer
+ ld de, MUSIC_KANTO_TRAINER_BATTLE
+
+.done
+ call PlayMusic
+
+ pop bc
+ pop de
+ pop hl
+ ret
+
+ClearBattleRAM: ; 2ef18
+ xor a
+ ld [wPlayerAction], a
+ ld [wBattleResult], a
+
+ ld hl, wPartyMenuCursor
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+ ld [wMenuScrollPosition], a
+ ld [CriticalHit], a
+ ld [BattleMonSpecies], a
+ ld [wBattleParticipantsNotFainted], a
+ ld [CurBattleMon], a
+ ld [wForcedSwitch], a
+ ld [TimeOfDayPal], a
+ ld [PlayerTurnsTaken], a
+ ld [EnemyTurnsTaken], a
+ ld [EvolvableFlags], a
+
+ ld hl, PlayerHPPal
+ ld [hli], a
+ ld [hl], a
+
+ ld hl, BattleMonDVs
+ ld [hli], a
+ ld [hl], a
+
+ ld hl, EnemyMonDVs
+ ld [hli], a
+ ld [hl], a
+
+; Clear the entire BattleMons area
+ ld hl, wBattle
+ ld bc, wBattleEnd - wBattle
+ xor a
+ call ByteFill
+
+ callab ResetEnemyStatLevels
+
+ call ClearWindowData
+
+ ld hl, hBGMapAddress
+ xor a
+ ld [hli], a
+ ld [hl], VBGMap0 / $100
+ ret
--- /dev/null
+++ b/engine/start_menu.asm
@@ -1,0 +1,1974 @@
+StartMenu:: ; 125cd
+
+ call ClearWindowData
+
+ ld de, SFX_MENU
+ call PlaySFX
+
+ callba ReanchorBGMap_NoOAMUpdate
+
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ ld hl, .MenuDataHeader
+ jr z, .GotMenuData
+ ld hl, .ContestMenuDataHeader
+.GotMenuData:
+
+ call LoadMenuDataHeader
+ call .SetUpMenuItems
+ ld a, [wBattleMenuCursorBuffer]
+ ld [wMenuCursorBuffer], a
+ call .DrawMenuAccount_
+ call DrawVariableLengthMenuBox
+ call .DrawBugContestStatusBox
+ call SafeUpdateSprites
+ call _OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ callba LoadFonts_NoOAMUpdate
+ call .DrawBugContestStatus
+ call UpdateTimePals
+ jr .Select
+
+.Reopen:
+ call UpdateSprites
+ call UpdateTimePals
+ call .SetUpMenuItems
+ ld a, [wBattleMenuCursorBuffer]
+ ld [wMenuCursorBuffer], a
+
+.Select:
+ call .GetInput
+ jr c, .Exit
+ call .DrawMenuAccount
+ ld a, [wMenuCursorBuffer]
+ ld [wBattleMenuCursorBuffer], a
+ call PlayClickSFX
+ call PlaceHollowCursor
+ call .OpenMenu
+
+; Menu items have different return functions.
+; For example, saving exits the menu.
+ ld hl, .MenuReturns
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.MenuReturns:
+ dw .Reopen
+ dw .Exit
+ dw .ExitMenuCallFuncCloseText
+ dw .ExitMenuRunScriptCloseText
+ dw .ExitMenuRunScript
+ dw .ReturnEnd
+ dw .ReturnRedraw
+
+.Exit:
+ ld a, [hOAMUpdate]
+ push af
+ ld a, 1
+ ld [hOAMUpdate], a
+ call LoadFontsExtra
+ pop af
+ ld [hOAMUpdate], a
+.ReturnEnd:
+ call ExitMenu
+.ReturnEnd2:
+ call CloseText
+ call UpdateTimePals
+ ret
+
+.GetInput:
+; Return carry on exit, and no-carry on selection.
+ xor a
+ ld [hBGMapMode], a
+ call .DrawMenuAccount
+ call SetUpMenu
+ ld a, $ff
+ ld [MenuSelection], a
+.loop
+ call .PrintMenuAccount
+ call GetScrollingMenuJoypad
+ ld a, [wMenuJoypad]
+ cp B_BUTTON
+ jr z, .b
+ cp A_BUTTON
+ jr z, .a
+ jr .loop
+.a
+ call PlayClickSFX
+ and a
+ ret
+.b
+ scf
+ ret
+; 12691
+
+.ExitMenuRunScript: ; 12691
+ call ExitMenu
+ ld a, HMENURETURN_SCRIPT
+ ld [hMenuReturn], a
+ ret
+; 12699
+
+.ExitMenuRunScriptCloseText: ; 12699
+ call ExitMenu
+ ld a, HMENURETURN_SCRIPT
+ ld [hMenuReturn], a
+ jr .ReturnEnd2
+; 126a2
+
+.ExitMenuCallFuncCloseText: ; 126a2
+ call ExitMenu
+ ld hl, wQueuedScriptAddr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wQueuedScriptBank]
+ rst FarCall
+ jr .ReturnEnd2
+; 126b1
+
+.ReturnRedraw: ; 126b1
+ call .Clear
+ jp .Reopen
+; 126b7
+
+.Clear: ; 126b7
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call ReloadTilesetAndPalettes
+ call .DrawMenuAccount_
+ call DrawVariableLengthMenuBox
+ call .DrawBugContestStatus
+ call UpdateSprites
+ call ret_d90
+ call FinishExitMenu
+ ret
+; 126d3
+
+
+.MenuDataHeader:
+ db $40 ; tile backup
+ db 0, 10 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData
+ db 1 ; default selection
+
+.ContestMenuDataHeader:
+ db $40 ; tile backup
+ db 2, 10 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData
+ db 1 ; default selection
+
+.MenuData:
+ db %10101000 ; x padding, wrap around, start can close
+ dn 0, 0 ; rows, columns
+ dw MenuItemsList
+ dw .MenuString
+ dw .Items
+
+.Items:
+ dw StartMenu_Pokedex, .PokedexString, .PokedexDesc
+ dw StartMenu_Pokemon, .PartyString, .PartyDesc
+ dw StartMenu_Pack, .PackString, .PackDesc
+ dw StartMenu_Status, .StatusString, .StatusDesc
+ dw StartMenu_Save, .SaveString, .SaveDesc
+ dw StartMenu_Option, .OptionString, .OptionDesc
+ dw StartMenu_Exit, .ExitString, .ExitDesc
+ dw StartMenu_Pokegear, .PokegearString, .PokegearDesc
+ dw StartMenu_Quit, .QuitString, .QuitDesc
+
+.PokedexString: db "#DEX@"
+.PartyString: db "#MON@"
+.PackString: db "PACK@"
+.StatusString: db "<PLAYER>@"
+.SaveString: db "SAVE@"
+.OptionString: db "OPTION@"
+.ExitString: db "EXIT@"
+.PokegearString: db $24, "GEAR@"
+.QuitString: db "QUIT@"
+
+.PokedexDesc: db "#MON"
+ next "database@"
+
+.PartyDesc: db "Party ", $4a
+ next "status@"
+
+.PackDesc: db "Contains"
+ next "items@"
+
+.PokegearDesc: db "Trainer's"
+ next "key device@"
+
+.StatusDesc: db "Your own"
+ next "status@"
+
+.SaveDesc: db "Save your"
+ next "progress@"
+
+.OptionDesc: db "Change"
+ next "settings@"
+
+.ExitDesc: db "Close this"
+ next "menu@"
+
+.QuitDesc: db "Quit and"
+ next "be judged.@"
+
+
+.OpenMenu: ; 127e5
+ ld a, [MenuSelection]
+ call .GetMenuAccountTextPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 127ef
+
+.MenuString: ; 127ef
+ push de
+ ld a, [MenuSelection]
+ call .GetMenuAccountTextPointer
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+; 12800
+
+.MenuDesc: ; 12800
+ push de
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .none
+ call .GetMenuAccountTextPointer
+rept 4
+ inc hl
+endr
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+.none
+ pop de
+ ret
+; 12819
+
+
+.GetMenuAccountTextPointer: ; 12819
+ ld e, a
+ ld d, 0
+ ld hl, wMenuData2PointerTableAddr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+rept 6
+ add hl, de
+endr
+ ret
+; 12829
+
+
+.SetUpMenuItems: ; 12829
+ xor a
+ ld [wWhichIndexSet], a
+ call .FillMenuList
+
+ ld hl, StatusFlags
+ bit 0, [hl]
+ jr z, .no_pokedex
+ ld a, 0 ; pokedex
+ call .AppendMenuList
+.no_pokedex
+
+ ld a, [PartyCount]
+ and a
+ jr z, .no_pokemon
+ ld a, 1 ; pokemon
+ call .AppendMenuList
+.no_pokemon
+
+ ld a, [wLinkMode]
+ and a
+ jr nz, .no_pack
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ jr nz, .no_pack
+ ld a, 2 ; pack
+ call .AppendMenuList
+.no_pack
+
+ ld hl, wPokegearFlags
+ bit 7, [hl]
+ jr z, .no_pokegear
+ ld a, 7 ; pokegear
+ call .AppendMenuList
+.no_pokegear
+
+ ld a, 3 ; status
+ call .AppendMenuList
+
+ ld a, [wLinkMode]
+ and a
+ jr nz, .no_save
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ ld a, 8 ; quit
+ jr nz, .write
+ ld a, 4 ; save
+.write
+ call .AppendMenuList
+.no_save
+
+ ld a, 5 ; option
+ call .AppendMenuList
+ ld a, 6 ; exit
+ call .AppendMenuList
+ ld a, c
+ ld [MenuItemsList], a
+ ret
+; 1288d
+
+
+.FillMenuList: ; 1288d
+ xor a
+ ld hl, MenuItemsList
+ ld [hli], a
+ ld a, -1
+ ld bc, MenuItemsListEnd - (MenuItemsList + 1)
+ call ByteFill
+ ld de, MenuItemsList + 1
+ ld c, 0
+ ret
+; 128a0
+
+.AppendMenuList: ; 128a0
+ ld [de], a
+ inc de
+ inc c
+ ret
+; 128a4
+
+.DrawMenuAccount_: ; 128a4
+ jp .DrawMenuAccount
+; 128a7
+
+.PrintMenuAccount: ; 128a7
+ call .IsMenuAccountOn
+ ret z
+ call .DrawMenuAccount
+ decoord 0, 14
+ jp .MenuDesc
+; 128b4
+
+.DrawMenuAccount: ; 128b4
+ call .IsMenuAccountOn
+ ret z
+ hlcoord 0, 13
+ lb bc, 5, 10
+ call ClearBox
+ hlcoord 0, 13
+ ld b, 3
+ ld c, 8
+ jp TextBoxPalette
+; 128cb
+
+.IsMenuAccountOn: ; 128cb
+ ld a, [Options2]
+ and 1
+ ret
+; 128d1
+
+.DrawBugContestStatusBox: ; 128d1
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ ret z
+ callba StartMenu_DrawBugContestStatusBox
+ ret
+; 128de
+
+.DrawBugContestStatus: ; 128de
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ jr nz, .contest
+ ret
+.contest
+ callba StartMenu_PrintBugContestStatus
+ ret
+; 128ed
+
+
+StartMenu_Exit: ; 128ed
+; Exit the menu.
+
+ ld a, 1
+ ret
+; 128f0
+
+
+StartMenu_Quit: ; 128f0
+; Retire from the bug catching contest.
+
+ ld hl, .EndTheContestText
+ call StartMenuYesNo
+ jr c, .DontEndContest
+ ld a, BANK(BugCatchingContestReturnToGateScript)
+ ld hl, BugCatchingContestReturnToGateScript
+ call FarQueueScript
+ ld a, 4
+ ret
+
+.DontEndContest:
+ ld a, 0
+ ret
+
+.EndTheContestText:
+ text_jump UnknownText_0x1c1a6c
+ db "@"
+; 1290b
+
+
+StartMenu_Save: ; 1290b
+; Save the game.
+
+ call BufferScreen
+ callba SaveMenu
+ jr nc, .asm_12919
+ ld a, 0
+ ret
+.asm_12919
+ ld a, 1
+ ret
+; 1291c
+
+
+StartMenu_Option: ; 1291c
+; Game options.
+
+ call FadeToMenu
+ callba OptionsMenu
+ ld a, 6
+ ret
+; 12928
+
+
+StartMenu_Status: ; 12928
+; Player status.
+
+ call FadeToMenu
+ callba TrainerCard
+ call CloseSubmenu
+ ld a, 0
+ ret
+; 12937
+
+
+StartMenu_Pokedex: ; 12937
+
+ ld a, [PartyCount]
+ and a
+ jr z, .asm_12949
+
+ call FadeToMenu
+ callba Pokedex
+ call CloseSubmenu
+
+.asm_12949
+ ld a, 0
+ ret
+; 1294c
+
+
+StartMenu_Pokegear: ; 1294c
+
+ call FadeToMenu
+ callba PokeGear
+ call CloseSubmenu
+ ld a, 0
+ ret
+; 1295b
+
+
+StartMenu_Pack: ; 1295b
+
+ call FadeToMenu
+ callba Pack
+ ld a, [wcf66]
+ and a
+ jr nz, .used_item
+ call CloseSubmenu
+ ld a, 0
+ ret
+
+.used_item
+ call ExitAllMenus
+ ld a, 4
+ ret
+; 12976
+
+
+StartMenu_Pokemon: ; 12976
+
+ ld a, [PartyCount]
+ and a
+ jr z, .return
+
+ call FadeToMenu
+
+.choosemenu
+ xor a
+ ld [PartyMenuActionText], a ; Choose a POKéMON.
+ call ClearBGPalettes
+
+.menu
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
+
+.menunoreload
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+ call WaitBGMap
+ call SetPalettes ; load regular palettes?
+ call DelayFrame
+ callba PartyMenuSelect
+ jr c, .return ; if cancelled or pressed B
+
+ call PokemonActionSubmenu
+ cp 3
+ jr z, .menu
+ cp 0
+ jr z, .choosemenu
+ cp 1
+ jr z, .menunoreload
+ cp 2
+ jr z, .quit
+
+.return
+ call CloseSubmenu
+ ld a, 0
+ ret
+
+.quit
+ ld a, b
+ push af
+ call ExitAllMenus
+ pop af
+ ret
+; 129d5
+
+HasNoItems: ; 129d5
+ ld a, [NumItems]
+ and a
+ ret nz
+ ld a, [NumKeyItems]
+ and a
+ ret nz
+ ld a, [NumBalls]
+ and a
+ ret nz
+ ld hl, TMsHMs
+ ld b, NUM_TMS + NUM_HMS
+.loop
+ ld a, [hli]
+ and a
+ jr nz, .done
+ dec b
+ jr nz, .loop
+ scf
+ ret
+.done
+ and a
+ ret
+
+TossItemFromPC: ; 129f4
+ push de
+ call PartyMonItemName
+ callba _CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ and a
+ jr nz, .key_item
+ ld hl, .TossHowMany
+ call MenuTextBox
+ callba SelectQuantityToToss
+ push af
+ call CloseWindow
+ call ExitMenu
+ pop af
+ jr c, .quit
+ ld hl, .ConfirmToss
+ call MenuTextBox
+ call YesNoBox
+ push af
+ call ExitMenu
+ pop af
+ jr c, .quit
+ pop hl
+ ld a, [CurItemQuantity]
+ call TossItem
+ call PartyMonItemName
+ ld hl, .TossedThisMany
+ call MenuTextBox
+ call ExitMenu
+ and a
+ ret
+
+.key_item
+ call .CantToss
+.quit
+ pop hl
+ scf
+ ret
+
+.TossHowMany:
+ ; Toss out how many @ (S)?
+ text_jump UnknownText_0x1c1a90
+ db "@"
+
+.ConfirmToss:
+ ; Throw away @ @ (S)?
+ text_jump UnknownText_0x1c1aad
+ db "@"
+
+.TossedThisMany:
+ ; Discarded @ (S).
+ text_jump UnknownText_0x1c1aca
+ db "@"
+
+.CantToss:
+ ld hl, .TooImportantToToss
+ call MenuTextBoxBackup
+ ret
+
+.TooImportantToToss:
+ ; That's too impor- tant to toss out!
+ text_jump UnknownText_0x1c1adf
+ db "@"
+; 0x12a60
+
+CantUseItem: ; 12a60
+ ld hl, CantUseItemText
+ call MenuTextBoxWaitButton
+ ret
+; 12a67
+
+CantUseItemText: ; 12a67
+ text_jump UnknownText_0x1c1b03
+ db "@"
+; 12a6c
+
+
+PartyMonItemName: ; 12a6c
+ ld a, [CurItem]
+ ld [wd265], a
+ call GetItemName
+ call CopyName1
+ ret
+; 12a79
+
+
+CancelPokemonAction: ; 12a79
+ callba InitPartyMenuWithCancel
+ callba UnfreezeMonIcons
+ ld a, 1
+ ret
+; 12a88
+
+
+PokemonActionSubmenu: ; 12a88
+ hlcoord 1, 15
+ lb bc, 2, 18
+ call ClearBox
+ callba MonSubmenu
+ call GetCurNick
+ ld a, [MenuSelection]
+ ld hl, .Actions
+ ld de, 3
+ call IsInArray
+ jr nc, .nothing
+
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.nothing
+ ld a, 0
+ ret
+
+.Actions:
+ dbw MONMENU_CUT, MonMenu_Cut ; Cut
+ dbw MONMENU_FLY, MonMenu_Fly ; Fly
+ dbw MONMENU_SURF, MonMenu_Surf ; Surf
+ dbw MONMENU_STRENGTH, MonMenu_Strength ; Strength
+ dbw MONMENU_FLASH, MonMenu_Flash ; Flash
+ dbw MONMENU_WHIRLPOOL, MonMenu_Whirlpool ; Whirlpool
+ dbw MONMENU_DIG, MonMenu_Dig ; Dig
+ dbw MONMENU_TELEPORT, MonMenu_Teleport ; Teleport
+ dbw MONMENU_SOFTBOILED, MonMenu_Softboiled_MilkDrink ; Softboiled
+ dbw MONMENU_MILKDRINK, MonMenu_Softboiled_MilkDrink ; MilkDrink
+ dbw MONMENU_HEADBUTT, MonMenu_Headbutt ; Headbutt
+ dbw MONMENU_WATERFALL, MonMenu_Waterfall ; Waterfall
+ dbw MONMENU_ROCKSMASH, MonMenu_RockSmash ; RockSmash
+ dbw MONMENU_SWEETSCENT, MonMenu_SweetScent ; SweetScent
+ dbw MONMENU_STATS, OpenPartyStats
+ dbw MONMENU_SWITCH, SwitchPartyMons
+ dbw MONMENU_ITEM, GiveTakePartyMonItem
+ dbw MONMENU_CANCEL, CancelPokemonAction
+ dbw MONMENU_MOVE, ManagePokemonMoves ; move
+ dbw MONMENU_MAIL, MonMailAction ; mail
+; 12aec
+
+
+SwitchPartyMons: ; 12aec
+
+; Don't try if there's nothing to switch!
+ ld a, [PartyCount]
+ cp 2
+ jr c, .DontSwitch
+
+ ld a, [CurPartyMon]
+ inc a
+ ld [wSwitchMon], a
+
+ callba HoldSwitchmonIcon
+ callba InitPartyMenuNoCancel
+
+ ld a, PARTYMENUACTION_MOVE
+ ld [PartyMenuActionText], a
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+
+ hlcoord 0, 1
+ ld bc, 20 * 2
+ ld a, [wSwitchMon]
+ dec a
+ call AddNTimes
+ ld [hl], "▷"
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+
+ callba PartyMenuSelect
+ bit 1, b
+ jr c, .DontSwitch
+
+ callba _SwitchPartyMons
+
+ xor a
+ ld [PartyMenuActionText], a
+
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
+
+ ld a, 1
+ ret
+
+.DontSwitch:
+ xor a
+ ld [PartyMenuActionText], a
+ call CancelPokemonAction
+ ret
+; 12b60
+
+
+GiveTakePartyMonItem: ; 12b60
+
+; Eggs can't hold items!
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .cancel
+
+ ld hl, GiveTakeItemMenuData
+ call LoadMenuDataHeader
+ call VerticalMenu
+ call ExitMenu
+ jr c, .cancel
+
+ call GetCurNick
+ ld hl, StringBuffer1
+ ld de, wMonOrItemNameBuffer
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ld a, [wMenuCursorY]
+ cp 1
+ jr nz, .take
+
+ call LoadStandardMenuDataHeader
+ call ClearPalettes
+ call .GiveItem
+ call ClearPalettes
+ call LoadFontsBattleExtra
+ call ExitMenu
+ ld a, 0
+ ret
+
+.take
+ call TakePartyItem
+ ld a, 3
+ ret
+
+.cancel
+ ld a, 3
+ ret
+; 12ba9
+
+
+.GiveItem:
+
+ callba DepositSellInitPackBuffers
+
+.loop
+ callba DepositSellPack
+
+ ld a, [wcf66]
+ and a
+ jr z, .quit
+
+ ld a, [wcf65]
+ cp 2
+ jr z, .next
+
+ call CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ and a
+ jr nz, .next
+
+ call TryGiveItemToPartymon
+ jr .quit
+
+.next
+ ld hl, CantBeHeldText
+ call MenuTextBoxBackup
+ jr .loop
+
+.quit
+ ret
+; 12bd9
+
+
+TryGiveItemToPartymon: ; 12bd9
+
+ call SpeechTextBox
+ call PartyMonItemName
+ call GetPartyItemLocation
+ ld a, [hl]
+ and a
+ jr z, .give_item_to_mon
+
+ push hl
+ ld d, a
+ callba ItemIsMail
+ pop hl
+ jr c, .please_remove_mail
+ ld a, [hl]
+ jr .already_holding_item
+
+.give_item_to_mon
+ call GiveItemToPokemon
+ ld hl, MadeHoldText
+ call MenuTextBoxBackup
+ call GivePartyItem
+ ret
+
+.please_remove_mail
+ ld hl, PleaseRemoveMailText
+ call MenuTextBoxBackup
+ ret
+
+.already_holding_item
+ ld [wd265], a
+ call GetItemName
+ ld hl, SwitchAlreadyHoldingText
+ call StartMenuYesNo
+ jr c, .abort
+
+ call GiveItemToPokemon
+ ld a, [wd265]
+ push af
+ ld a, [CurItem]
+ ld [wd265], a
+ pop af
+ ld [CurItem], a
+ call ReceiveItemFromPokemon
+ jr nc, .bag_full
+
+ ld hl, TookAndMadeHoldText
+ call MenuTextBoxBackup
+ ld a, [wd265]
+ ld [CurItem], a
+ call GivePartyItem
+ ret
+
+.bag_full
+ ld a, [wd265]
+ ld [CurItem], a
+ call ReceiveItemFromPokemon
+ ld hl, ItemStorageIsFullText
+ call MenuTextBoxBackup
+
+.abort
+ ret
+; 12c4c
+
+
+GivePartyItem: ; 12c4c
+
+ call GetPartyItemLocation
+ ld a, [CurItem]
+ ld [hl], a
+ ld d, a
+ callba ItemIsMail
+ jr nc, .done
+ call ComposeMailMessage
+
+.done
+ ret
+; 12c60
+
+
+TakePartyItem: ; 12c60
+
+ call SpeechTextBox
+ call GetPartyItemLocation
+ ld a, [hl]
+ and a
+ jr z, .asm_12c8c
+
+ ld [CurItem], a
+ call ReceiveItemFromPokemon
+ jr nc, .asm_12c94
+
+ callba ItemIsMail
+ call GetPartyItemLocation
+ ld a, [hl]
+ ld [wd265], a
+ ld [hl], NO_ITEM
+ call GetItemName
+ ld hl, TookFromText
+ call MenuTextBoxBackup
+ jr .asm_12c9a
+
+.asm_12c8c
+ ld hl, IsntHoldingAnythingText
+ call MenuTextBoxBackup
+ jr .asm_12c9a
+
+.asm_12c94
+ ld hl, ItemStorageIsFullText
+ call MenuTextBoxBackup
+
+.asm_12c9a
+ ret
+; 12c9b
+
+
+GiveTakeItemMenuData: ; 12c9b
+ db %01010000
+ db 12, 12 ; start coords
+ db 17, 19 ; end coords
+ dw .Items
+ db 1 ; default option
+
+.Items:
+ db %10000000 ; x padding
+ db 2 ; # items
+ db "GIVE@"
+ db "TAKE@"
+; 12caf
+
+
+TookAndMadeHoldText: ; 12caf
+ text_jump UnknownText_0x1c1b2c
+ db "@"
+; 12cb4
+
+MadeHoldText: ; 12cb4
+ text_jump UnknownText_0x1c1b57
+ db "@"
+; 12cb9
+
+PleaseRemoveMailText: ; 12cb9
+ text_jump UnknownText_0x1c1b6f
+ db "@"
+; 12cbe
+
+IsntHoldingAnythingText: ; 12cbe
+ text_jump UnknownText_0x1c1b8e
+ db "@"
+; 12cc3
+
+ItemStorageIsFullText: ; 12cc3
+ text_jump UnknownText_0x1c1baa
+ db "@"
+; 12cc8
+
+TookFromText: ; 12cc8
+ text_jump UnknownText_0x1c1bc4
+ db "@"
+; 12ccd
+
+SwitchAlreadyHoldingText: ; 12ccd
+ text_jump UnknownText_0x1c1bdc
+ db "@"
+; 12cd2
+
+CantBeHeldText: ; 12cd2
+ text_jump UnknownText_0x1c1c09
+ db "@"
+; 12cd7
+
+
+GetPartyItemLocation: ; 12cd7
+ push af
+ ld a, MON_ITEM
+ call GetPartyParamLocation
+ pop af
+ ret
+; 12cdf
+
+
+ReceiveItemFromPokemon: ; 12cdf
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, NumItems
+ jp ReceiveItem
+; 12cea
+
+
+GiveItemToPokemon: ; 12cea (4:6cea)
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, NumItems
+ jp TossItem
+
+StartMenuYesNo: ; 12cf5
+ call MenuTextBox
+ call YesNoBox
+ jp ExitMenu
+; 12cfe
+
+
+ComposeMailMessage: ; 12cfe (4:6cfe)
+ ld de, wTempMailMessage
+ callba _ComposeMailMessage
+ ld hl, PlayerName
+ ld de, wTempMailAuthor
+ ld bc, NAME_LENGTH - 1
+ call CopyBytes
+ ld hl, PlayerID
+ ld bc, 2
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld [de], a
+ inc de
+ ld a, [CurItem]
+ ld [de], a
+ ld a, [CurPartyMon]
+ ld hl, sPartyMail
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, wTempMail
+ ld bc, MAIL_STRUCT_LENGTH
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+MonMailAction: ; 12d45
+; If in the time capsule or trade center,
+; selecting the mail only allows you to
+; read the mail.
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr z, .read
+ cp LINK_TRADECENTER
+ jr z, .read
+
+; Show the READ/TAKE/QUIT menu.
+ ld hl, .MenuDataHeader
+ call LoadMenuDataHeader
+ call VerticalMenu
+ call ExitMenu
+
+; Interpret the menu.
+ jp c, .done
+ ld a, [wMenuCursorY]
+ cp $1
+ jr z, .read
+ cp $2
+ jr z, .take
+ jp .done
+
+.read
+ callba ReadPartyMonMail
+ ld a, $0
+ ret
+
+.take
+ ld hl, .sendmailtopctext
+ call StartMenuYesNo
+ jr c, .RemoveMailToBag
+ ld a, [CurPartyMon]
+ ld b, a
+ callba SendMailToPC
+ jr c, .MailboxFull
+ ld hl, .sentmailtopctext
+ call MenuTextBoxBackup
+ jr .done
+
+.MailboxFull:
+ ld hl, .mailboxfulltext
+ call MenuTextBoxBackup
+ jr .done
+
+.RemoveMailToBag:
+ ld hl, .mailwilllosemessagetext
+ call StartMenuYesNo
+ jr c, .done
+ call GetPartyItemLocation
+ ld a, [hl]
+ ld [CurItem], a
+ call ReceiveItemFromPokemon
+ jr nc, .BagIsFull
+ call GetPartyItemLocation
+ ld [hl], $0
+ call GetCurNick
+ ld hl, .tookmailfrommontext
+ call MenuTextBoxBackup
+ jr .done
+
+.BagIsFull:
+ ld hl, .bagfulltext
+ call MenuTextBoxBackup
+ jr .done
+
+.done
+ ld a, $3
+ ret
+; 12dc9
+
+
+.MenuDataHeader:
+ db $40 ; flags
+ db 10, 12 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+; 0x12dd1
+
+.MenuData2:
+ db $80 ; flags
+ db 3 ; items
+ db "READ@"
+ db "TAKE@"
+ db "QUIT@"
+; 0x12de2
+
+
+.mailwilllosemessagetext
+; The MAIL will lose its message. OK?
+ text_jump UnknownText_0x1c1c22
+ db "@"
+; 0x12de7
+
+.tookmailfrommontext
+; MAIL detached from <POKEMON>.
+ text_jump UnknownText_0x1c1c47
+ db "@"
+; 0x12dec
+
+.bagfulltext
+; There's no space for removing MAIL.
+ text_jump UnknownText_0x1c1c62
+ db "@"
+; 0x12df1
+
+.sendmailtopctext
+; Send the removed MAIL to your PC?
+ text_jump UnknownText_0x1c1c86
+ db "@"
+; 0x12df6
+
+.mailboxfulltext
+; Your PC's MAILBOX is full.
+ text_jump UnknownText_0x1c1ca9
+ db "@"
+; 0x12dfb
+
+.sentmailtopctext
+; The MAIL was sent to your PC.
+ text_jump UnknownText_0x1c1cc4
+ db "@"
+; 0x12e00
+
+
+OpenPartyStats: ; 12e00
+ call LoadStandardMenuDataHeader
+ call ClearSprites
+; PartyMon
+ xor a
+ ld [MonType], a
+ call LowVolume
+ predef StatsScreenInit
+ call MaxVolume
+ call Call_ExitMenu
+ ld a, 0
+ ret
+; 12e1b
+
+
+MonMenu_Cut: ; 12e1b
+ callba CutFunction
+ ld a, [wFieldMoveSucceeded]
+ cp $1
+ jr nz, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12e30
+
+
+MonMenu_Fly: ; 12e30
+ callba FlyFunction
+ ld a, [wFieldMoveSucceeded]
+ cp $2
+ jr z, .Fail
+ cp $0
+ jr z, .Error
+ callba TrainerRankings_Fly
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+
+.Error:
+ ld a, $0
+ ret
+
+.Unused:
+ ld a, $1
+ ret
+; 12e55
+
+MonMenu_Flash: ; 12e55
+ callba OWFlash
+ ld a, [wFieldMoveSucceeded]
+ cp $1
+ jr nz, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12e6a
+
+MonMenu_Strength: ; 12e6a
+ callba StrengthFunction
+ ld a, [wFieldMoveSucceeded]
+ cp $1
+ jr nz, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12e7f
+
+MonMenu_Whirlpool: ; 12e7f
+ callba WhirlpoolFunction
+ ld a, [wFieldMoveSucceeded]
+ cp $1
+ jr nz, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12e94
+
+MonMenu_Waterfall: ; 12e94
+ callba WaterfallFunction
+ ld a, [wFieldMoveSucceeded]
+ cp $1
+ jr nz, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12ea9
+
+MonMenu_Teleport: ; 12ea9
+ callba TeleportFunction
+ ld a, [wFieldMoveSucceeded]
+ and a
+ jr z, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12ebd
+
+MonMenu_Surf: ; 12ebd
+ callba SurfFunction
+ ld a, [wFieldMoveSucceeded]
+ and a
+ jr z, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12ed1
+
+MonMenu_Dig: ; 12ed1
+ callba DigFunction
+ ld a, [wFieldMoveSucceeded]
+ cp $1
+ jr nz, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12ee6
+
+MonMenu_Softboiled_MilkDrink: ; 12ee6
+ call .CheckMonHasEnoughHP
+ jr nc, .NotEnoughHP
+ callba Softboiled_MilkDrinkFunction
+ jr .finish
+
+.NotEnoughHP:
+ ld hl, .Text_NotEnoughHP
+ call PrintText
+
+.finish
+ xor a
+ ld [PartyMenuActionText], a
+ ld a, $3
+ ret
+; 12f00
+
+.Text_NotEnoughHP:
+ ; Not enough HP!
+ text_jump UnknownText_0x1c1ce3
+ db "@"
+; 0x12f05
+
+.CheckMonHasEnoughHP:
+; Need to have at least (MaxHP / 5) HP left.
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [hDividend + 0], a
+ ld a, [hl]
+ ld [hDividend + 1], a
+ ld a, 5
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+ ld a, MON_HP + 1
+ call GetPartyParamLocation
+ ld a, [hQuotient + 2]
+ sub [hl]
+ dec hl
+ ld a, [hQuotient + 1]
+ sbc [hl]
+ ret
+; 12f26
+
+MonMenu_Headbutt: ; 12f26
+ callba HeadbuttFunction
+ ld a, [wFieldMoveSucceeded]
+ cp $1
+ jr nz, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12f3b
+
+MonMenu_RockSmash: ; 12f3b
+ callba RockSmashFunction
+ ld a, [wFieldMoveSucceeded]
+ cp $1
+ jr nz, .Fail
+ ld b, $4
+ ld a, $2
+ ret
+
+.Fail:
+ ld a, $3
+ ret
+; 12f50
+
+MonMenu_SweetScent: ; 12f50
+ callba SweetScentFromMenu
+ ld b, $4
+ ld a, $2
+ ret
+; 12f5b
+
+ChooseMoveToDelete: ; 12f5b
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call LoadFontsBattleExtra
+ call .ChooseMoveToDelete
+ pop bc
+ ld a, b
+ ld [Options], a
+ push af
+ call ClearBGPalettes
+ pop af
+ ret
+; 12f73
+
+.ChooseMoveToDelete
+ call SetUpMoveScreenBG
+ ld de, DeleteMoveScreenAttrs
+ call SetMenuAttributes
+ call SetUpMoveList
+ ld hl, w2DMenuFlags1
+ set 6, [hl]
+ jr .enter_loop
+
+.loop
+ call ScrollingMenuJoypad
+ bit B_BUTTON_F, a
+ jp nz, .b_button
+ bit A_BUTTON_F, a
+ jp nz, .a_button
+
+.enter_loop
+ call PrepareToPlaceMoveData
+ call PlaceMoveData
+ jp .loop
+; 12f9c
+
+.a_button
+ and a
+ jr .finish
+
+.b_button
+ scf
+
+.finish
+ push af
+ xor a
+ ld [wSwitchMon], a
+ ld hl, w2DMenuFlags1
+ res 6, [hl]
+ call ClearSprites
+ call ClearTileMap
+ pop af
+ ret
+; 12fb2
+
+DeleteMoveScreenAttrs: ; 12fb2
+ db 3, 1
+ db 3, 1
+ db $40, $00
+ dn 2, 0
+ db D_UP | D_DOWN | A_BUTTON | B_BUTTON
+; 12fba
+
+ManagePokemonMoves: ; 12fba
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call MoveScreenLoop
+ pop af
+ ld [Options], a
+ call ClearBGPalettes
+
+.egg
+ ld a, $0
+ ret
+; 12fd5
+
+MoveScreenLoop: ; 12fd5
+ ld a, [CurPartyMon]
+ inc a
+ ld [wPartyMenuCursor], a
+ call SetUpMoveScreenBG
+ call Function132d3
+ ld de, MoveScreenAttributes
+ call SetMenuAttributes
+.loop
+ call SetUpMoveList
+ ld hl, w2DMenuFlags1
+ set 6, [hl]
+ jr .skip_joy
+
+.joy_loop
+ call ScrollingMenuJoypad
+ bit 1, a
+ jp nz, .b_button
+ bit 0, a
+ jp nz, .a_button
+ bit 4, a
+ jp nz, .d_right
+ bit 5, a
+ jp nz, .d_left
+
+.skip_joy
+ call PrepareToPlaceMoveData
+ ld a, [wMoveSwapBuffer]
+ and a
+ jr nz, .moving_move
+ call PlaceMoveData
+ jp .joy_loop
+
+.moving_move
+ ld a, " "
+ hlcoord 1, 11
+ ld bc, 5
+ call ByteFill
+ hlcoord 1, 12
+ lb bc, 5, SCREEN_WIDTH - 2
+ call ClearBox
+ hlcoord 1, 12
+ ld de, String_1316b
+ call PlaceString
+ jp .joy_loop
+.b_button
+ call PlayClickSFX
+ call WaitSFX
+ ld a, [wMoveSwapBuffer]
+ and a
+ jp z, .exit
+
+ ld a, [wMoveSwapBuffer]
+ ld [wMenuCursorY], a
+ xor a
+ ld [wMoveSwapBuffer], a
+ hlcoord 1, 2
+ lb bc, 8, SCREEN_WIDTH - 2
+ call ClearBox
+ jp .loop
+; 1305b
+
+.d_right
+ ld a, [wMoveSwapBuffer]
+ and a
+ jp nz, .joy_loop
+
+ ld a, [CurPartyMon]
+ ld b, a
+ push bc
+ call .cycle_right
+ pop bc
+ ld a, [CurPartyMon]
+ cp b
+ jp z, .joy_loop
+ jp MoveScreenLoop
+
+.d_left
+ ld a, [wMoveSwapBuffer]
+ and a
+ jp nz, .joy_loop
+ ld a, [CurPartyMon]
+ ld b, a
+ push bc
+ call .cycle_left
+ pop bc
+ ld a, [CurPartyMon]
+ cp b
+ jp z, .joy_loop
+ jp MoveScreenLoop
+
+.cycle_right
+ ld a, [CurPartyMon]
+ inc a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ cp -1
+ jr z, .cycle_left
+ cp EGG
+ ret nz
+ jr .cycle_right
+
+.cycle_left
+ ld a, [CurPartyMon]
+ and a
+ ret z
+.cycle_left_loop
+ ld a, [CurPartyMon]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ cp EGG
+ ret nz
+ ld a, [CurPartyMon]
+ and a
+ jr z, .cycle_right
+ jr .cycle_left_loop
+; 130c6
+
+.a_button
+ call PlayClickSFX
+ call WaitSFX
+ ld a, [wMoveSwapBuffer]
+ and a
+ jr nz, .place_move
+ ld a, [wMenuCursorY]
+ ld [wMoveSwapBuffer], a
+ call PlaceHollowCursor
+ jp .moving_move
+
+.place_move
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ push hl
+ call .copy_move
+ pop hl
+ ld bc, $15
+ add hl, bc
+ call .copy_move
+ ld a, [wBattleMode]
+ jr z, .swap_moves
+ ld hl, BattleMonMoves
+ ld bc, $20
+ ld a, [CurPartyMon]
+ call AddNTimes
+ push hl
+ call .copy_move
+ pop hl
+ ld bc, 6
+ add hl, bc
+ call .copy_move
+
+.swap_moves
+ ld de, SFX_SWITCH_POKEMON
+ call PlaySFX
+ call WaitSFX
+ ld de, SFX_SWITCH_POKEMON
+ call PlaySFX
+ call WaitSFX
+ hlcoord 1, 2
+ lb bc, 8, 18
+ call ClearBox
+ hlcoord 10, 10
+ lb bc, 1, 9
+ call ClearBox
+ jp .loop
+; 1313a
+
+.copy_move
+ push hl
+ ld a, [wMenuCursorY]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [wMoveSwapBuffer]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ ld b, [hl]
+ ld [hl], a
+ ld a, b
+ ld [de], a
+ ret
+; 13154
+
+.exit
+ xor a
+ ld [wMoveSwapBuffer], a
+ ld hl, w2DMenuFlags1
+ res 6, [hl]
+ call ClearSprites
+ jp ClearTileMap
+; 13163
+
+MoveScreenAttributes: ; 13163
+ db 3, 1
+ db 3, 1
+ db $40, $00
+ dn 2, 0
+ db D_UP | D_DOWN | D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON
+; 1316b
+
+String_1316b: ; 1316b
+ db "Where?@"
+; 13172
+
+SetUpMoveScreenBG: ; 13172
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ callba LoadStatsScreenPageTilesGFX
+ callba ClearSpriteAnims2
+ ld a, [CurPartyMon]
+ ld e, a
+ ld d, $0
+ ld hl, PartySpecies
+ add hl, de
+ ld a, [hl]
+ ld [wd265], a
+ ld e, $2
+ callba LoadMenuMonIcon
+ hlcoord 0, 1
+ ld b, 9
+ ld c, 18
+ call TextBox
+ hlcoord 0, 11
+ ld b, 5
+ ld c, 18
+ call TextBox
+ hlcoord 2, 0
+ lb bc, 2, 3
+ call ClearBox
+ xor a
+ ld [MonType], a
+ ld hl, PartyMonNicknames
+ ld a, [CurPartyMon]
+ call GetNick
+ hlcoord 5, 1
+ call PlaceString
+ push bc
+ callba CopyPkmnToTempMon
+ pop hl
+ call PrintLevel
+ ld hl, PlayerHPPal
+ call SetHPPal
+ ld b, SCGB_MOVE_LIST
+ call GetSGBLayout
+ hlcoord 16, 0
+ lb bc, 1, 3
+ jp ClearBox
+; 131ef
+
+SetUpMoveList: ; 131ef
+ xor a
+ ld [hBGMapMode], a
+ ld [wMoveSwapBuffer], a
+ ld [MonType], a
+ predef CopyPkmnToTempMon
+ ld hl, TempMonMoves
+ ld de, wListMoves_MoveIndicesBuffer
+ ld bc, NUM_MOVES
+ call CopyBytes
+ ld a, SCREEN_WIDTH * 2
+ ld [Buffer1], a
+ hlcoord 2, 3
+ predef ListMoves
+ hlcoord 10, 4
+ predef ListMovePP
+ call WaitBGMap
+ call SetPalettes
+ ld a, [wNumMoves]
+ inc a
+ ld [w2DMenuNumRows], a
+ hlcoord 0, 11
+ ld b, 5
+ ld c, 18
+ jp TextBox
+; 13235
+
+PrepareToPlaceMoveData: ; 13235
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld a, [wMenuCursorY]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [CurMove], a
+ hlcoord 1, 12
+ lb bc, 5, 18
+ jp ClearBox
+; 13256
+
+PlaceMoveData: ; 13256
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 10
+ ld de, String_132ba
+ call PlaceString
+ hlcoord 0, 11
+ ld de, String_132c2
+ call PlaceString
+ hlcoord 12, 12
+ ld de, String_132ca
+ call PlaceString
+ ld a, [CurMove]
+ ld b, a
+ hlcoord 2, 12
+ predef PrintMoveType
+ ld a, [CurMove]
+ dec a
+ ld hl, Moves + MOVE_POWER
+ ld bc, MOVE_LENGTH
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+ hlcoord 16, 12
+ cp 2
+ jr c, .no_power
+ ld [wd265], a
+ ld de, wd265
+ lb bc, 1, 3
+ call PrintNum
+ jr .description
+
+.no_power
+ ld de, String_132cf
+ call PlaceString
+
+.description
+ hlcoord 1, 14
+ predef PrintMoveDesc
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 132ba
+
+String_132ba: ; 132ba
+ db "┌─────┐@"
+; 132c2
+String_132c2: ; 132c2
+ db "│TYPE/└@"
+; 132ca
+String_132ca: ; 132ca
+ db "ATK/@"
+; 132cf
+String_132cf: ; 132cf
+ db "---@"
+; 132d3
+
+Function132d3: ; 132d3
+ call Function132da
+ call Function132fe
+ ret
+; 132da
+
+Function132da: ; 132da
+ ld a, [CurPartyMon]
+ and a
+ ret z
+ ld c, a
+ ld e, a
+ ld d, 0
+ ld hl, PartyCount
+ add hl, de
+.loop
+ ld a, [hl]
+ and a
+ jr z, .prev
+ cp EGG
+ jr z, .prev
+ cp NUM_POKEMON + 1
+ jr c, .legal
+
+.prev
+ dec hl
+ dec c
+ jr nz, .loop
+ ret
+
+.legal
+ hlcoord 16, 0
+ ld [hl], "◀"
+ ret
+; 132fe
+
+Function132fe: ; 132fe
+ ld a, [CurPartyMon]
+ inc a
+ ld c, a
+ ld a, [PartyCount]
+ cp c
+ ret z
+ ld e, c
+ ld d, 0
+ ld hl, PartySpecies
+ add hl, de
+.loop
+ ld a, [hl]
+ cp -1
+ ret z
+ and a
+ jr z, .next
+ cp EGG
+ jr z, .next
+ cp NUM_POKEMON + 1
+ jr c, .legal
+
+.next
+ inc hl
+ jr .loop
+
+.legal
+ hlcoord 18, 0
+ ld [hl], "▶"
+ ret
+; 13327
--- a/engine/startmenu.asm
+++ /dev/null
@@ -1,1974 +1,0 @@
-StartMenu:: ; 125cd
-
- call ClearWindowData
-
- ld de, SFX_MENU
- call PlaySFX
-
- callba ReanchorBGMap_NoOAMUpdate
-
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- ld hl, .MenuDataHeader
- jr z, .GotMenuData
- ld hl, .ContestMenuDataHeader
-.GotMenuData:
-
- call LoadMenuDataHeader
- call .SetUpMenuItems
- ld a, [wBattleMenuCursorBuffer]
- ld [wMenuCursorBuffer], a
- call .DrawMenuAccount_
- call DrawVariableLengthMenuBox
- call .DrawBugContestStatusBox
- call SafeUpdateSprites
- call _OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- callba LoadFonts_NoOAMUpdate
- call .DrawBugContestStatus
- call UpdateTimePals
- jr .Select
-
-.Reopen:
- call UpdateSprites
- call UpdateTimePals
- call .SetUpMenuItems
- ld a, [wBattleMenuCursorBuffer]
- ld [wMenuCursorBuffer], a
-
-.Select:
- call .GetInput
- jr c, .Exit
- call .DrawMenuAccount
- ld a, [wMenuCursorBuffer]
- ld [wBattleMenuCursorBuffer], a
- call PlayClickSFX
- call PlaceHollowCursor
- call .OpenMenu
-
-; Menu items have different return functions.
-; For example, saving exits the menu.
- ld hl, .MenuReturns
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.MenuReturns:
- dw .Reopen
- dw .Exit
- dw .ExitMenuCallFuncCloseText
- dw .ExitMenuRunScriptCloseText
- dw .ExitMenuRunScript
- dw .ReturnEnd
- dw .ReturnRedraw
-
-.Exit:
- ld a, [hOAMUpdate]
- push af
- ld a, 1
- ld [hOAMUpdate], a
- call LoadFontsExtra
- pop af
- ld [hOAMUpdate], a
-.ReturnEnd:
- call ExitMenu
-.ReturnEnd2:
- call CloseText
- call UpdateTimePals
- ret
-
-.GetInput:
-; Return carry on exit, and no-carry on selection.
- xor a
- ld [hBGMapMode], a
- call .DrawMenuAccount
- call SetUpMenu
- ld a, $ff
- ld [MenuSelection], a
-.loop
- call .PrintMenuAccount
- call GetScrollingMenuJoypad
- ld a, [wMenuJoypad]
- cp B_BUTTON
- jr z, .b
- cp A_BUTTON
- jr z, .a
- jr .loop
-.a
- call PlayClickSFX
- and a
- ret
-.b
- scf
- ret
-; 12691
-
-.ExitMenuRunScript: ; 12691
- call ExitMenu
- ld a, HMENURETURN_SCRIPT
- ld [hMenuReturn], a
- ret
-; 12699
-
-.ExitMenuRunScriptCloseText: ; 12699
- call ExitMenu
- ld a, HMENURETURN_SCRIPT
- ld [hMenuReturn], a
- jr .ReturnEnd2
-; 126a2
-
-.ExitMenuCallFuncCloseText: ; 126a2
- call ExitMenu
- ld hl, wQueuedScriptAddr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wQueuedScriptBank]
- rst FarCall
- jr .ReturnEnd2
-; 126b1
-
-.ReturnRedraw: ; 126b1
- call .Clear
- jp .Reopen
-; 126b7
-
-.Clear: ; 126b7
- call ClearBGPalettes
- call Call_ExitMenu
- call ReloadTilesetAndPalettes
- call .DrawMenuAccount_
- call DrawVariableLengthMenuBox
- call .DrawBugContestStatus
- call UpdateSprites
- call ret_d90
- call FinishExitMenu
- ret
-; 126d3
-
-
-.MenuDataHeader:
- db $40 ; tile backup
- db 0, 10 ; start coords
- db 17, 19 ; end coords
- dw .MenuData
- db 1 ; default selection
-
-.ContestMenuDataHeader:
- db $40 ; tile backup
- db 2, 10 ; start coords
- db 17, 19 ; end coords
- dw .MenuData
- db 1 ; default selection
-
-.MenuData:
- db %10101000 ; x padding, wrap around, start can close
- dn 0, 0 ; rows, columns
- dw MenuItemsList
- dw .MenuString
- dw .Items
-
-.Items:
- dw StartMenu_Pokedex, .PokedexString, .PokedexDesc
- dw StartMenu_Pokemon, .PartyString, .PartyDesc
- dw StartMenu_Pack, .PackString, .PackDesc
- dw StartMenu_Status, .StatusString, .StatusDesc
- dw StartMenu_Save, .SaveString, .SaveDesc
- dw StartMenu_Option, .OptionString, .OptionDesc
- dw StartMenu_Exit, .ExitString, .ExitDesc
- dw StartMenu_Pokegear, .PokegearString, .PokegearDesc
- dw StartMenu_Quit, .QuitString, .QuitDesc
-
-.PokedexString: db "#DEX@"
-.PartyString: db "#MON@"
-.PackString: db "PACK@"
-.StatusString: db "<PLAYER>@"
-.SaveString: db "SAVE@"
-.OptionString: db "OPTION@"
-.ExitString: db "EXIT@"
-.PokegearString: db $24, "GEAR@"
-.QuitString: db "QUIT@"
-
-.PokedexDesc: db "#MON"
- next "database@"
-
-.PartyDesc: db "Party ", $4a
- next "status@"
-
-.PackDesc: db "Contains"
- next "items@"
-
-.PokegearDesc: db "Trainer's"
- next "key device@"
-
-.StatusDesc: db "Your own"
- next "status@"
-
-.SaveDesc: db "Save your"
- next "progress@"
-
-.OptionDesc: db "Change"
- next "settings@"
-
-.ExitDesc: db "Close this"
- next "menu@"
-
-.QuitDesc: db "Quit and"
- next "be judged.@"
-
-
-.OpenMenu: ; 127e5
- ld a, [MenuSelection]
- call .GetMenuAccountTextPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 127ef
-
-.MenuString: ; 127ef
- push de
- ld a, [MenuSelection]
- call .GetMenuAccountTextPointer
- inc hl
- inc hl
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- call PlaceString
- ret
-; 12800
-
-.MenuDesc: ; 12800
- push de
- ld a, [MenuSelection]
- cp $ff
- jr z, .none
- call .GetMenuAccountTextPointer
-rept 4
- inc hl
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- call PlaceString
- ret
-.none
- pop de
- ret
-; 12819
-
-
-.GetMenuAccountTextPointer: ; 12819
- ld e, a
- ld d, 0
- ld hl, wMenuData2PointerTableAddr
- ld a, [hli]
- ld h, [hl]
- ld l, a
-rept 6
- add hl, de
-endr
- ret
-; 12829
-
-
-.SetUpMenuItems: ; 12829
- xor a
- ld [wWhichIndexSet], a
- call .FillMenuList
-
- ld hl, StatusFlags
- bit 0, [hl]
- jr z, .no_pokedex
- ld a, 0 ; pokedex
- call .AppendMenuList
-.no_pokedex
-
- ld a, [PartyCount]
- and a
- jr z, .no_pokemon
- ld a, 1 ; pokemon
- call .AppendMenuList
-.no_pokemon
-
- ld a, [wLinkMode]
- and a
- jr nz, .no_pack
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- jr nz, .no_pack
- ld a, 2 ; pack
- call .AppendMenuList
-.no_pack
-
- ld hl, wPokegearFlags
- bit 7, [hl]
- jr z, .no_pokegear
- ld a, 7 ; pokegear
- call .AppendMenuList
-.no_pokegear
-
- ld a, 3 ; status
- call .AppendMenuList
-
- ld a, [wLinkMode]
- and a
- jr nz, .no_save
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- ld a, 8 ; quit
- jr nz, .write
- ld a, 4 ; save
-.write
- call .AppendMenuList
-.no_save
-
- ld a, 5 ; option
- call .AppendMenuList
- ld a, 6 ; exit
- call .AppendMenuList
- ld a, c
- ld [MenuItemsList], a
- ret
-; 1288d
-
-
-.FillMenuList: ; 1288d
- xor a
- ld hl, MenuItemsList
- ld [hli], a
- ld a, -1
- ld bc, MenuItemsListEnd - (MenuItemsList + 1)
- call ByteFill
- ld de, MenuItemsList + 1
- ld c, 0
- ret
-; 128a0
-
-.AppendMenuList: ; 128a0
- ld [de], a
- inc de
- inc c
- ret
-; 128a4
-
-.DrawMenuAccount_: ; 128a4
- jp .DrawMenuAccount
-; 128a7
-
-.PrintMenuAccount: ; 128a7
- call .IsMenuAccountOn
- ret z
- call .DrawMenuAccount
- decoord 0, 14
- jp .MenuDesc
-; 128b4
-
-.DrawMenuAccount: ; 128b4
- call .IsMenuAccountOn
- ret z
- hlcoord 0, 13
- lb bc, 5, 10
- call ClearBox
- hlcoord 0, 13
- ld b, 3
- ld c, 8
- jp TextBoxPalette
-; 128cb
-
-.IsMenuAccountOn: ; 128cb
- ld a, [Options2]
- and 1
- ret
-; 128d1
-
-.DrawBugContestStatusBox: ; 128d1
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- ret z
- callba StartMenu_DrawBugContestStatusBox
- ret
-; 128de
-
-.DrawBugContestStatus: ; 128de
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- jr nz, .contest
- ret
-.contest
- callba StartMenu_PrintBugContestStatus
- ret
-; 128ed
-
-
-StartMenu_Exit: ; 128ed
-; Exit the menu.
-
- ld a, 1
- ret
-; 128f0
-
-
-StartMenu_Quit: ; 128f0
-; Retire from the bug catching contest.
-
- ld hl, .EndTheContestText
- call StartMenuYesNo
- jr c, .DontEndContest
- ld a, BANK(BugCatchingContestReturnToGateScript)
- ld hl, BugCatchingContestReturnToGateScript
- call FarQueueScript
- ld a, 4
- ret
-
-.DontEndContest:
- ld a, 0
- ret
-
-.EndTheContestText:
- text_jump UnknownText_0x1c1a6c
- db "@"
-; 1290b
-
-
-StartMenu_Save: ; 1290b
-; Save the game.
-
- call BufferScreen
- callba SaveMenu
- jr nc, .asm_12919
- ld a, 0
- ret
-.asm_12919
- ld a, 1
- ret
-; 1291c
-
-
-StartMenu_Option: ; 1291c
-; Game options.
-
- call FadeToMenu
- callba OptionsMenu
- ld a, 6
- ret
-; 12928
-
-
-StartMenu_Status: ; 12928
-; Player status.
-
- call FadeToMenu
- callba TrainerCard
- call CloseSubmenu
- ld a, 0
- ret
-; 12937
-
-
-StartMenu_Pokedex: ; 12937
-
- ld a, [PartyCount]
- and a
- jr z, .asm_12949
-
- call FadeToMenu
- callba Pokedex
- call CloseSubmenu
-
-.asm_12949
- ld a, 0
- ret
-; 1294c
-
-
-StartMenu_Pokegear: ; 1294c
-
- call FadeToMenu
- callba PokeGear
- call CloseSubmenu
- ld a, 0
- ret
-; 1295b
-
-
-StartMenu_Pack: ; 1295b
-
- call FadeToMenu
- callba Pack
- ld a, [wcf66]
- and a
- jr nz, .used_item
- call CloseSubmenu
- ld a, 0
- ret
-
-.used_item
- call ExitAllMenus
- ld a, 4
- ret
-; 12976
-
-
-StartMenu_Pokemon: ; 12976
-
- ld a, [PartyCount]
- and a
- jr z, .return
-
- call FadeToMenu
-
-.choosemenu
- xor a
- ld [PartyMenuActionText], a ; Choose a POKéMON.
- call ClearBGPalettes
-
-.menu
- callba LoadPartyMenuGFX
- callba InitPartyMenuWithCancel
- callba InitPartyMenuGFX
-
-.menunoreload
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
- call WaitBGMap
- call SetPalettes ; load regular palettes?
- call DelayFrame
- callba PartyMenuSelect
- jr c, .return ; if cancelled or pressed B
-
- call PokemonActionSubmenu
- cp 3
- jr z, .menu
- cp 0
- jr z, .choosemenu
- cp 1
- jr z, .menunoreload
- cp 2
- jr z, .quit
-
-.return
- call CloseSubmenu
- ld a, 0
- ret
-
-.quit
- ld a, b
- push af
- call ExitAllMenus
- pop af
- ret
-; 129d5
-
-HasNoItems: ; 129d5
- ld a, [NumItems]
- and a
- ret nz
- ld a, [NumKeyItems]
- and a
- ret nz
- ld a, [NumBalls]
- and a
- ret nz
- ld hl, TMsHMs
- ld b, NUM_TMS + NUM_HMS
-.loop
- ld a, [hli]
- and a
- jr nz, .done
- dec b
- jr nz, .loop
- scf
- ret
-.done
- and a
- ret
-
-TossItemFromPC: ; 129f4
- push de
- call PartyMonItemName
- callba _CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- and a
- jr nz, .key_item
- ld hl, .TossHowMany
- call MenuTextBox
- callba SelectQuantityToToss
- push af
- call CloseWindow
- call ExitMenu
- pop af
- jr c, .quit
- ld hl, .ConfirmToss
- call MenuTextBox
- call YesNoBox
- push af
- call ExitMenu
- pop af
- jr c, .quit
- pop hl
- ld a, [CurItemQuantity]
- call TossItem
- call PartyMonItemName
- ld hl, .TossedThisMany
- call MenuTextBox
- call ExitMenu
- and a
- ret
-
-.key_item
- call .CantToss
-.quit
- pop hl
- scf
- ret
-
-.TossHowMany:
- ; Toss out how many @ (S)?
- text_jump UnknownText_0x1c1a90
- db "@"
-
-.ConfirmToss:
- ; Throw away @ @ (S)?
- text_jump UnknownText_0x1c1aad
- db "@"
-
-.TossedThisMany:
- ; Discarded @ (S).
- text_jump UnknownText_0x1c1aca
- db "@"
-
-.CantToss:
- ld hl, .TooImportantToToss
- call MenuTextBoxBackup
- ret
-
-.TooImportantToToss:
- ; That's too impor- tant to toss out!
- text_jump UnknownText_0x1c1adf
- db "@"
-; 0x12a60
-
-CantUseItem: ; 12a60
- ld hl, CantUseItemText
- call MenuTextBoxWaitButton
- ret
-; 12a67
-
-CantUseItemText: ; 12a67
- text_jump UnknownText_0x1c1b03
- db "@"
-; 12a6c
-
-
-PartyMonItemName: ; 12a6c
- ld a, [CurItem]
- ld [wd265], a
- call GetItemName
- call CopyName1
- ret
-; 12a79
-
-
-CancelPokemonAction: ; 12a79
- callba InitPartyMenuWithCancel
- callba UnfreezeMonIcons
- ld a, 1
- ret
-; 12a88
-
-
-PokemonActionSubmenu: ; 12a88
- hlcoord 1, 15
- lb bc, 2, 18
- call ClearBox
- callba MonSubmenu
- call GetCurNick
- ld a, [MenuSelection]
- ld hl, .Actions
- ld de, 3
- call IsInArray
- jr nc, .nothing
-
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.nothing
- ld a, 0
- ret
-
-.Actions:
- dbw MONMENU_CUT, MonMenu_Cut ; Cut
- dbw MONMENU_FLY, MonMenu_Fly ; Fly
- dbw MONMENU_SURF, MonMenu_Surf ; Surf
- dbw MONMENU_STRENGTH, MonMenu_Strength ; Strength
- dbw MONMENU_FLASH, MonMenu_Flash ; Flash
- dbw MONMENU_WHIRLPOOL, MonMenu_Whirlpool ; Whirlpool
- dbw MONMENU_DIG, MonMenu_Dig ; Dig
- dbw MONMENU_TELEPORT, MonMenu_Teleport ; Teleport
- dbw MONMENU_SOFTBOILED, MonMenu_Softboiled_MilkDrink ; Softboiled
- dbw MONMENU_MILKDRINK, MonMenu_Softboiled_MilkDrink ; MilkDrink
- dbw MONMENU_HEADBUTT, MonMenu_Headbutt ; Headbutt
- dbw MONMENU_WATERFALL, MonMenu_Waterfall ; Waterfall
- dbw MONMENU_ROCKSMASH, MonMenu_RockSmash ; RockSmash
- dbw MONMENU_SWEETSCENT, MonMenu_SweetScent ; SweetScent
- dbw MONMENU_STATS, OpenPartyStats
- dbw MONMENU_SWITCH, SwitchPartyMons
- dbw MONMENU_ITEM, GiveTakePartyMonItem
- dbw MONMENU_CANCEL, CancelPokemonAction
- dbw MONMENU_MOVE, ManagePokemonMoves ; move
- dbw MONMENU_MAIL, MonMailAction ; mail
-; 12aec
-
-
-SwitchPartyMons: ; 12aec
-
-; Don't try if there's nothing to switch!
- ld a, [PartyCount]
- cp 2
- jr c, .DontSwitch
-
- ld a, [CurPartyMon]
- inc a
- ld [wSwitchMon], a
-
- callba HoldSwitchmonIcon
- callba InitPartyMenuNoCancel
-
- ld a, PARTYMENUACTION_MOVE
- ld [PartyMenuActionText], a
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
-
- hlcoord 0, 1
- ld bc, 20 * 2
- ld a, [wSwitchMon]
- dec a
- call AddNTimes
- ld [hl], "▷"
- call WaitBGMap
- call SetPalettes
- call DelayFrame
-
- callba PartyMenuSelect
- bit 1, b
- jr c, .DontSwitch
-
- callba _SwitchPartyMons
-
- xor a
- ld [PartyMenuActionText], a
-
- callba LoadPartyMenuGFX
- callba InitPartyMenuWithCancel
- callba InitPartyMenuGFX
-
- ld a, 1
- ret
-
-.DontSwitch:
- xor a
- ld [PartyMenuActionText], a
- call CancelPokemonAction
- ret
-; 12b60
-
-
-GiveTakePartyMonItem: ; 12b60
-
-; Eggs can't hold items!
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .cancel
-
- ld hl, GiveTakeItemMenuData
- call LoadMenuDataHeader
- call VerticalMenu
- call ExitMenu
- jr c, .cancel
-
- call GetCurNick
- ld hl, StringBuffer1
- ld de, wMonOrItemNameBuffer
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ld a, [wMenuCursorY]
- cp 1
- jr nz, .take
-
- call LoadStandardMenuDataHeader
- call ClearPalettes
- call .GiveItem
- call ClearPalettes
- call LoadFontsBattleExtra
- call ExitMenu
- ld a, 0
- ret
-
-.take
- call TakePartyItem
- ld a, 3
- ret
-
-.cancel
- ld a, 3
- ret
-; 12ba9
-
-
-.GiveItem:
-
- callba DepositSellInitPackBuffers
-
-.loop
- callba DepositSellPack
-
- ld a, [wcf66]
- and a
- jr z, .quit
-
- ld a, [wcf65]
- cp 2
- jr z, .next
-
- call CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- and a
- jr nz, .next
-
- call TryGiveItemToPartymon
- jr .quit
-
-.next
- ld hl, CantBeHeldText
- call MenuTextBoxBackup
- jr .loop
-
-.quit
- ret
-; 12bd9
-
-
-TryGiveItemToPartymon: ; 12bd9
-
- call SpeechTextBox
- call PartyMonItemName
- call GetPartyItemLocation
- ld a, [hl]
- and a
- jr z, .give_item_to_mon
-
- push hl
- ld d, a
- callba ItemIsMail
- pop hl
- jr c, .please_remove_mail
- ld a, [hl]
- jr .already_holding_item
-
-.give_item_to_mon
- call GiveItemToPokemon
- ld hl, MadeHoldText
- call MenuTextBoxBackup
- call GivePartyItem
- ret
-
-.please_remove_mail
- ld hl, PleaseRemoveMailText
- call MenuTextBoxBackup
- ret
-
-.already_holding_item
- ld [wd265], a
- call GetItemName
- ld hl, SwitchAlreadyHoldingText
- call StartMenuYesNo
- jr c, .abort
-
- call GiveItemToPokemon
- ld a, [wd265]
- push af
- ld a, [CurItem]
- ld [wd265], a
- pop af
- ld [CurItem], a
- call ReceiveItemFromPokemon
- jr nc, .bag_full
-
- ld hl, TookAndMadeHoldText
- call MenuTextBoxBackup
- ld a, [wd265]
- ld [CurItem], a
- call GivePartyItem
- ret
-
-.bag_full
- ld a, [wd265]
- ld [CurItem], a
- call ReceiveItemFromPokemon
- ld hl, ItemStorageIsFullText
- call MenuTextBoxBackup
-
-.abort
- ret
-; 12c4c
-
-
-GivePartyItem: ; 12c4c
-
- call GetPartyItemLocation
- ld a, [CurItem]
- ld [hl], a
- ld d, a
- callba ItemIsMail
- jr nc, .done
- call ComposeMailMessage
-
-.done
- ret
-; 12c60
-
-
-TakePartyItem: ; 12c60
-
- call SpeechTextBox
- call GetPartyItemLocation
- ld a, [hl]
- and a
- jr z, .asm_12c8c
-
- ld [CurItem], a
- call ReceiveItemFromPokemon
- jr nc, .asm_12c94
-
- callba ItemIsMail
- call GetPartyItemLocation
- ld a, [hl]
- ld [wd265], a
- ld [hl], NO_ITEM
- call GetItemName
- ld hl, TookFromText
- call MenuTextBoxBackup
- jr .asm_12c9a
-
-.asm_12c8c
- ld hl, IsntHoldingAnythingText
- call MenuTextBoxBackup
- jr .asm_12c9a
-
-.asm_12c94
- ld hl, ItemStorageIsFullText
- call MenuTextBoxBackup
-
-.asm_12c9a
- ret
-; 12c9b
-
-
-GiveTakeItemMenuData: ; 12c9b
- db %01010000
- db 12, 12 ; start coords
- db 17, 19 ; end coords
- dw .Items
- db 1 ; default option
-
-.Items:
- db %10000000 ; x padding
- db 2 ; # items
- db "GIVE@"
- db "TAKE@"
-; 12caf
-
-
-TookAndMadeHoldText: ; 12caf
- text_jump UnknownText_0x1c1b2c
- db "@"
-; 12cb4
-
-MadeHoldText: ; 12cb4
- text_jump UnknownText_0x1c1b57
- db "@"
-; 12cb9
-
-PleaseRemoveMailText: ; 12cb9
- text_jump UnknownText_0x1c1b6f
- db "@"
-; 12cbe
-
-IsntHoldingAnythingText: ; 12cbe
- text_jump UnknownText_0x1c1b8e
- db "@"
-; 12cc3
-
-ItemStorageIsFullText: ; 12cc3
- text_jump UnknownText_0x1c1baa
- db "@"
-; 12cc8
-
-TookFromText: ; 12cc8
- text_jump UnknownText_0x1c1bc4
- db "@"
-; 12ccd
-
-SwitchAlreadyHoldingText: ; 12ccd
- text_jump UnknownText_0x1c1bdc
- db "@"
-; 12cd2
-
-CantBeHeldText: ; 12cd2
- text_jump UnknownText_0x1c1c09
- db "@"
-; 12cd7
-
-
-GetPartyItemLocation: ; 12cd7
- push af
- ld a, MON_ITEM
- call GetPartyParamLocation
- pop af
- ret
-; 12cdf
-
-
-ReceiveItemFromPokemon: ; 12cdf
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- jp ReceiveItem
-; 12cea
-
-
-GiveItemToPokemon: ; 12cea (4:6cea)
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- jp TossItem
-
-StartMenuYesNo: ; 12cf5
- call MenuTextBox
- call YesNoBox
- jp ExitMenu
-; 12cfe
-
-
-ComposeMailMessage: ; 12cfe (4:6cfe)
- ld de, wTempMailMessage
- callba _ComposeMailMessage
- ld hl, PlayerName
- ld de, wTempMailAuthor
- ld bc, NAME_LENGTH - 1
- call CopyBytes
- ld hl, PlayerID
- ld bc, 2
- call CopyBytes
- ld a, [CurPartySpecies]
- ld [de], a
- inc de
- ld a, [CurItem]
- ld [de], a
- ld a, [CurPartyMon]
- ld hl, sPartyMail
- ld bc, MAIL_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, wTempMail
- ld bc, MAIL_STRUCT_LENGTH
- ld a, BANK(sPartyMail)
- call GetSRAMBank
- call CopyBytes
- call CloseSRAM
- ret
-
-MonMailAction: ; 12d45
-; If in the time capsule or trade center,
-; selecting the mail only allows you to
-; read the mail.
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr z, .read
- cp LINK_TRADECENTER
- jr z, .read
-
-; Show the READ/TAKE/QUIT menu.
- ld hl, .MenuDataHeader
- call LoadMenuDataHeader
- call VerticalMenu
- call ExitMenu
-
-; Interpret the menu.
- jp c, .done
- ld a, [wMenuCursorY]
- cp $1
- jr z, .read
- cp $2
- jr z, .take
- jp .done
-
-.read
- callba ReadPartyMonMail
- ld a, $0
- ret
-
-.take
- ld hl, .sendmailtopctext
- call StartMenuYesNo
- jr c, .RemoveMailToBag
- ld a, [CurPartyMon]
- ld b, a
- callba SendMailToPC
- jr c, .MailboxFull
- ld hl, .sentmailtopctext
- call MenuTextBoxBackup
- jr .done
-
-.MailboxFull:
- ld hl, .mailboxfulltext
- call MenuTextBoxBackup
- jr .done
-
-.RemoveMailToBag:
- ld hl, .mailwilllosemessagetext
- call StartMenuYesNo
- jr c, .done
- call GetPartyItemLocation
- ld a, [hl]
- ld [CurItem], a
- call ReceiveItemFromPokemon
- jr nc, .BagIsFull
- call GetPartyItemLocation
- ld [hl], $0
- call GetCurNick
- ld hl, .tookmailfrommontext
- call MenuTextBoxBackup
- jr .done
-
-.BagIsFull:
- ld hl, .bagfulltext
- call MenuTextBoxBackup
- jr .done
-
-.done
- ld a, $3
- ret
-; 12dc9
-
-
-.MenuDataHeader:
- db $40 ; flags
- db 10, 12 ; start coords
- db 17, 19 ; end coords
- dw .MenuData2
- db 1 ; default option
-; 0x12dd1
-
-.MenuData2:
- db $80 ; flags
- db 3 ; items
- db "READ@"
- db "TAKE@"
- db "QUIT@"
-; 0x12de2
-
-
-.mailwilllosemessagetext
-; The MAIL will lose its message. OK?
- text_jump UnknownText_0x1c1c22
- db "@"
-; 0x12de7
-
-.tookmailfrommontext
-; MAIL detached from <POKEMON>.
- text_jump UnknownText_0x1c1c47
- db "@"
-; 0x12dec
-
-.bagfulltext
-; There's no space for removing MAIL.
- text_jump UnknownText_0x1c1c62
- db "@"
-; 0x12df1
-
-.sendmailtopctext
-; Send the removed MAIL to your PC?
- text_jump UnknownText_0x1c1c86
- db "@"
-; 0x12df6
-
-.mailboxfulltext
-; Your PC's MAILBOX is full.
- text_jump UnknownText_0x1c1ca9
- db "@"
-; 0x12dfb
-
-.sentmailtopctext
-; The MAIL was sent to your PC.
- text_jump UnknownText_0x1c1cc4
- db "@"
-; 0x12e00
-
-
-OpenPartyStats: ; 12e00
- call LoadStandardMenuDataHeader
- call ClearSprites
-; PartyMon
- xor a
- ld [MonType], a
- call LowVolume
- predef StatsScreenInit
- call MaxVolume
- call Call_ExitMenu
- ld a, 0
- ret
-; 12e1b
-
-
-MonMenu_Cut: ; 12e1b
- callba CutFunction
- ld a, [wFieldMoveSucceeded]
- cp $1
- jr nz, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12e30
-
-
-MonMenu_Fly: ; 12e30
- callba FlyFunction
- ld a, [wFieldMoveSucceeded]
- cp $2
- jr z, .Fail
- cp $0
- jr z, .Error
- callba TrainerRankings_Fly
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-
-.Error:
- ld a, $0
- ret
-
-.Unused:
- ld a, $1
- ret
-; 12e55
-
-MonMenu_Flash: ; 12e55
- callba OWFlash
- ld a, [wFieldMoveSucceeded]
- cp $1
- jr nz, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12e6a
-
-MonMenu_Strength: ; 12e6a
- callba StrengthFunction
- ld a, [wFieldMoveSucceeded]
- cp $1
- jr nz, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12e7f
-
-MonMenu_Whirlpool: ; 12e7f
- callba WhirlpoolFunction
- ld a, [wFieldMoveSucceeded]
- cp $1
- jr nz, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12e94
-
-MonMenu_Waterfall: ; 12e94
- callba WaterfallFunction
- ld a, [wFieldMoveSucceeded]
- cp $1
- jr nz, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12ea9
-
-MonMenu_Teleport: ; 12ea9
- callba TeleportFunction
- ld a, [wFieldMoveSucceeded]
- and a
- jr z, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12ebd
-
-MonMenu_Surf: ; 12ebd
- callba SurfFunction
- ld a, [wFieldMoveSucceeded]
- and a
- jr z, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12ed1
-
-MonMenu_Dig: ; 12ed1
- callba DigFunction
- ld a, [wFieldMoveSucceeded]
- cp $1
- jr nz, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12ee6
-
-MonMenu_Softboiled_MilkDrink: ; 12ee6
- call .CheckMonHasEnoughHP
- jr nc, .NotEnoughHP
- callba Softboiled_MilkDrinkFunction
- jr .finish
-
-.NotEnoughHP:
- ld hl, .Text_NotEnoughHP
- call PrintText
-
-.finish
- xor a
- ld [PartyMenuActionText], a
- ld a, $3
- ret
-; 12f00
-
-.Text_NotEnoughHP:
- ; Not enough HP!
- text_jump UnknownText_0x1c1ce3
- db "@"
-; 0x12f05
-
-.CheckMonHasEnoughHP:
-; Need to have at least (MaxHP / 5) HP left.
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld [hDividend + 0], a
- ld a, [hl]
- ld [hDividend + 1], a
- ld a, 5
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld a, [hQuotient + 2]
- sub [hl]
- dec hl
- ld a, [hQuotient + 1]
- sbc [hl]
- ret
-; 12f26
-
-MonMenu_Headbutt: ; 12f26
- callba HeadbuttFunction
- ld a, [wFieldMoveSucceeded]
- cp $1
- jr nz, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12f3b
-
-MonMenu_RockSmash: ; 12f3b
- callba RockSmashFunction
- ld a, [wFieldMoveSucceeded]
- cp $1
- jr nz, .Fail
- ld b, $4
- ld a, $2
- ret
-
-.Fail:
- ld a, $3
- ret
-; 12f50
-
-MonMenu_SweetScent: ; 12f50
- callba SweetScentFromMenu
- ld b, $4
- ld a, $2
- ret
-; 12f5b
-
-ChooseMoveToDelete: ; 12f5b
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call LoadFontsBattleExtra
- call .ChooseMoveToDelete
- pop bc
- ld a, b
- ld [Options], a
- push af
- call ClearBGPalettes
- pop af
- ret
-; 12f73
-
-.ChooseMoveToDelete
- call SetUpMoveScreenBG
- ld de, DeleteMoveScreenAttrs
- call SetMenuAttributes
- call SetUpMoveList
- ld hl, w2DMenuFlags1
- set 6, [hl]
- jr .enter_loop
-
-.loop
- call ScrollingMenuJoypad
- bit B_BUTTON_F, a
- jp nz, .b_button
- bit A_BUTTON_F, a
- jp nz, .a_button
-
-.enter_loop
- call PrepareToPlaceMoveData
- call PlaceMoveData
- jp .loop
-; 12f9c
-
-.a_button
- and a
- jr .finish
-
-.b_button
- scf
-
-.finish
- push af
- xor a
- ld [wSwitchMon], a
- ld hl, w2DMenuFlags1
- res 6, [hl]
- call ClearSprites
- call ClearTileMap
- pop af
- ret
-; 12fb2
-
-DeleteMoveScreenAttrs: ; 12fb2
- db 3, 1
- db 3, 1
- db $40, $00
- dn 2, 0
- db D_UP | D_DOWN | A_BUTTON | B_BUTTON
-; 12fba
-
-ManagePokemonMoves: ; 12fba
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call MoveScreenLoop
- pop af
- ld [Options], a
- call ClearBGPalettes
-
-.egg
- ld a, $0
- ret
-; 12fd5
-
-MoveScreenLoop: ; 12fd5
- ld a, [CurPartyMon]
- inc a
- ld [wPartyMenuCursor], a
- call SetUpMoveScreenBG
- call Function132d3
- ld de, MoveScreenAttributes
- call SetMenuAttributes
-.loop
- call SetUpMoveList
- ld hl, w2DMenuFlags1
- set 6, [hl]
- jr .skip_joy
-
-.joy_loop
- call ScrollingMenuJoypad
- bit 1, a
- jp nz, .b_button
- bit 0, a
- jp nz, .a_button
- bit 4, a
- jp nz, .d_right
- bit 5, a
- jp nz, .d_left
-
-.skip_joy
- call PrepareToPlaceMoveData
- ld a, [wMoveSwapBuffer]
- and a
- jr nz, .moving_move
- call PlaceMoveData
- jp .joy_loop
-
-.moving_move
- ld a, " "
- hlcoord 1, 11
- ld bc, 5
- call ByteFill
- hlcoord 1, 12
- lb bc, 5, SCREEN_WIDTH - 2
- call ClearBox
- hlcoord 1, 12
- ld de, String_1316b
- call PlaceString
- jp .joy_loop
-.b_button
- call PlayClickSFX
- call WaitSFX
- ld a, [wMoveSwapBuffer]
- and a
- jp z, .exit
-
- ld a, [wMoveSwapBuffer]
- ld [wMenuCursorY], a
- xor a
- ld [wMoveSwapBuffer], a
- hlcoord 1, 2
- lb bc, 8, SCREEN_WIDTH - 2
- call ClearBox
- jp .loop
-; 1305b
-
-.d_right
- ld a, [wMoveSwapBuffer]
- and a
- jp nz, .joy_loop
-
- ld a, [CurPartyMon]
- ld b, a
- push bc
- call .cycle_right
- pop bc
- ld a, [CurPartyMon]
- cp b
- jp z, .joy_loop
- jp MoveScreenLoop
-
-.d_left
- ld a, [wMoveSwapBuffer]
- and a
- jp nz, .joy_loop
- ld a, [CurPartyMon]
- ld b, a
- push bc
- call .cycle_left
- pop bc
- ld a, [CurPartyMon]
- cp b
- jp z, .joy_loop
- jp MoveScreenLoop
-
-.cycle_right
- ld a, [CurPartyMon]
- inc a
- ld [CurPartyMon], a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- cp -1
- jr z, .cycle_left
- cp EGG
- ret nz
- jr .cycle_right
-
-.cycle_left
- ld a, [CurPartyMon]
- and a
- ret z
-.cycle_left_loop
- ld a, [CurPartyMon]
- dec a
- ld [CurPartyMon], a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- cp EGG
- ret nz
- ld a, [CurPartyMon]
- and a
- jr z, .cycle_right
- jr .cycle_left_loop
-; 130c6
-
-.a_button
- call PlayClickSFX
- call WaitSFX
- ld a, [wMoveSwapBuffer]
- and a
- jr nz, .place_move
- ld a, [wMenuCursorY]
- ld [wMoveSwapBuffer], a
- call PlaceHollowCursor
- jp .moving_move
-
-.place_move
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- push hl
- call .copy_move
- pop hl
- ld bc, $15
- add hl, bc
- call .copy_move
- ld a, [wBattleMode]
- jr z, .swap_moves
- ld hl, BattleMonMoves
- ld bc, $20
- ld a, [CurPartyMon]
- call AddNTimes
- push hl
- call .copy_move
- pop hl
- ld bc, 6
- add hl, bc
- call .copy_move
-
-.swap_moves
- ld de, SFX_SWITCH_POKEMON
- call PlaySFX
- call WaitSFX
- ld de, SFX_SWITCH_POKEMON
- call PlaySFX
- call WaitSFX
- hlcoord 1, 2
- lb bc, 8, 18
- call ClearBox
- hlcoord 10, 10
- lb bc, 1, 9
- call ClearBox
- jp .loop
-; 1313a
-
-.copy_move
- push hl
- ld a, [wMenuCursorY]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- ld a, [wMoveSwapBuffer]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- ld b, [hl]
- ld [hl], a
- ld a, b
- ld [de], a
- ret
-; 13154
-
-.exit
- xor a
- ld [wMoveSwapBuffer], a
- ld hl, w2DMenuFlags1
- res 6, [hl]
- call ClearSprites
- jp ClearTileMap
-; 13163
-
-MoveScreenAttributes: ; 13163
- db 3, 1
- db 3, 1
- db $40, $00
- dn 2, 0
- db D_UP | D_DOWN | D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON
-; 1316b
-
-String_1316b: ; 1316b
- db "Where?@"
-; 13172
-
-SetUpMoveScreenBG: ; 13172
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- callba LoadStatsScreenPageTilesGFX
- callba ClearSpriteAnims2
- ld a, [CurPartyMon]
- ld e, a
- ld d, $0
- ld hl, PartySpecies
- add hl, de
- ld a, [hl]
- ld [wd265], a
- ld e, $2
- callba LoadMenuMonIcon
- hlcoord 0, 1
- ld b, 9
- ld c, 18
- call TextBox
- hlcoord 0, 11
- ld b, 5
- ld c, 18
- call TextBox
- hlcoord 2, 0
- lb bc, 2, 3
- call ClearBox
- xor a
- ld [MonType], a
- ld hl, PartyMonNicknames
- ld a, [CurPartyMon]
- call GetNick
- hlcoord 5, 1
- call PlaceString
- push bc
- callba CopyPkmnToTempMon
- pop hl
- call PrintLevel
- ld hl, PlayerHPPal
- call SetHPPal
- ld b, SCGB_MOVE_LIST
- call GetSGBLayout
- hlcoord 16, 0
- lb bc, 1, 3
- jp ClearBox
-; 131ef
-
-SetUpMoveList: ; 131ef
- xor a
- ld [hBGMapMode], a
- ld [wMoveSwapBuffer], a
- ld [MonType], a
- predef CopyPkmnToTempMon
- ld hl, TempMonMoves
- ld de, wListMoves_MoveIndicesBuffer
- ld bc, NUM_MOVES
- call CopyBytes
- ld a, SCREEN_WIDTH * 2
- ld [Buffer1], a
- hlcoord 2, 3
- predef ListMoves
- hlcoord 10, 4
- predef ListMovePP
- call WaitBGMap
- call SetPalettes
- ld a, [wNumMoves]
- inc a
- ld [w2DMenuNumRows], a
- hlcoord 0, 11
- ld b, 5
- ld c, 18
- jp TextBox
-; 13235
-
-PrepareToPlaceMoveData: ; 13235
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld a, [wMenuCursorY]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [CurMove], a
- hlcoord 1, 12
- lb bc, 5, 18
- jp ClearBox
-; 13256
-
-PlaceMoveData: ; 13256
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 10
- ld de, String_132ba
- call PlaceString
- hlcoord 0, 11
- ld de, String_132c2
- call PlaceString
- hlcoord 12, 12
- ld de, String_132ca
- call PlaceString
- ld a, [CurMove]
- ld b, a
- hlcoord 2, 12
- predef PrintMoveType
- ld a, [CurMove]
- dec a
- ld hl, Moves + MOVE_POWER
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
- hlcoord 16, 12
- cp 2
- jr c, .no_power
- ld [wd265], a
- ld de, wd265
- lb bc, 1, 3
- call PrintNum
- jr .description
-
-.no_power
- ld de, String_132cf
- call PlaceString
-
-.description
- hlcoord 1, 14
- predef PrintMoveDesc
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 132ba
-
-String_132ba: ; 132ba
- db "┌─────┐@"
-; 132c2
-String_132c2: ; 132c2
- db "│TYPE/└@"
-; 132ca
-String_132ca: ; 132ca
- db "ATK/@"
-; 132cf
-String_132cf: ; 132cf
- db "---@"
-; 132d3
-
-Function132d3: ; 132d3
- call Function132da
- call Function132fe
- ret
-; 132da
-
-Function132da: ; 132da
- ld a, [CurPartyMon]
- and a
- ret z
- ld c, a
- ld e, a
- ld d, 0
- ld hl, PartyCount
- add hl, de
-.loop
- ld a, [hl]
- and a
- jr z, .prev
- cp EGG
- jr z, .prev
- cp NUM_POKEMON + 1
- jr c, .legal
-
-.prev
- dec hl
- dec c
- jr nz, .loop
- ret
-
-.legal
- hlcoord 16, 0
- ld [hl], "◀"
- ret
-; 132fe
-
-Function132fe: ; 132fe
- ld a, [CurPartyMon]
- inc a
- ld c, a
- ld a, [PartyCount]
- cp c
- ret z
- ld e, c
- ld d, 0
- ld hl, PartySpecies
- add hl, de
-.loop
- ld a, [hl]
- cp -1
- ret z
- and a
- jr z, .next
- cp EGG
- jr z, .next
- cp NUM_POKEMON + 1
- jr c, .legal
-
-.next
- inc hl
- jr .loop
-
-.legal
- hlcoord 18, 0
- ld [hl], "▶"
- ret
-; 13327
--- /dev/null
+++ b/engine/switch_party_mons.asm
@@ -1,0 +1,145 @@
+_SwitchPartyMons:
+ ld a, [wd0e3]
+ dec a
+ ld [Buffer3], a
+ ld b, a
+ ld a, [wMenuCursorY]
+ dec a
+ ld [Buffer2], a
+ cp b
+ jr z, .skip
+ call .SwapMonAndMail
+ ld a, [Buffer3]
+ call .ClearSprite
+ ld a, [Buffer2]
+ call .ClearSprite
+.skip
+ ret
+
+.ClearSprite: ; 50f34 (14:4f34)
+ push af
+ hlcoord 0, 1
+ ld bc, 2 * SCREEN_WIDTH
+ call AddNTimes
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ pop af
+ ld hl, Sprites
+ ld bc, $10
+ call AddNTimes
+ ld de, $4
+ ld c, $4
+.gfx_loop
+ ld [hl], $a0
+ add hl, de
+ dec c
+ jr nz, .gfx_loop
+ ld de, SFX_SWITCH_POKEMON
+ call WaitPlaySFX
+ ret
+
+.SwapMonAndMail: ; 50f62 (14:4f62)
+ push hl
+ push de
+ push bc
+ ld bc, PartySpecies
+ ld a, [Buffer2]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, [Buffer3]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld a, [hl]
+ push af
+ ld a, [de]
+ ld [hl], a
+ pop af
+ ld [de], a
+ ld a, [Buffer2]
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ ld de, wd002
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld a, [Buffer3]
+ ld hl, PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ pop de
+ push hl
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ pop de
+ ld hl, wd002
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld a, [Buffer2]
+ ld hl, PartyMonOT
+ call SkipNames
+ push hl
+ call .CopyNameTowd002
+ ld a, [Buffer3]
+ ld hl, PartyMonOT
+ call SkipNames
+ pop de
+ push hl
+ call .CopyName
+ pop de
+ ld hl, wd002
+ call .CopyName
+ ld hl, PartyMonNicknames
+ ld a, [Buffer2]
+ call SkipNames
+ push hl
+ call .CopyNameTowd002
+ ld hl, PartyMonNicknames
+ ld a, [Buffer3]
+ call SkipNames
+ pop de
+ push hl
+ call .CopyName
+ pop de
+ ld hl, wd002
+ call .CopyName
+ ld hl, sPartyMail
+ ld a, [Buffer2]
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ ld de, wd002
+ ld bc, MAIL_STRUCT_LENGTH
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ call CopyBytes
+ ld hl, sPartyMail
+ ld a, [Buffer3]
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ pop de
+ push hl
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+ pop de
+ ld hl, wd002
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+ call CloseSRAM
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.CopyNameTowd002: ; 51036 (14:5036)
+ ld de, wd002
+
+.CopyName: ; 51039 (14:5039)
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
--- /dev/null
+++ b/engine/tempmon.asm
@@ -1,0 +1,127 @@
+CopyPkmnToTempMon: ; 5084a
+; gets the BaseData of a Pkmn
+; and copys the PkmnStructure to TempMon
+
+ ld a, [CurPartyMon]
+ ld e, a
+ call GetPkmnSpecies
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+
+ ld a, [MonType]
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ and a
+ jr z, .copywholestruct
+ ld hl, OTPartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ cp OTPARTYMON
+ jr z, .copywholestruct
+ ld bc, BOXMON_STRUCT_LENGTH
+ callab CopyBoxmonToTempMon
+ jr .done
+
+.copywholestruct
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, TempMon
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+
+.done
+ ret
+
+CalcwBufferMonStats: ; 5088b
+ ld bc, wBufferMon
+ jr _TempMonStatsCalculation
+
+CalcTempmonStats: ; 50890
+ ld bc, TempMon
+_TempMonStatsCalculation: ; 50893
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, MON_STAT_EXP - 1
+ add hl, bc
+ push bc
+ ld b, $1
+ predef CalcPkmnStats
+ pop bc
+ ld hl, MON_HP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr nz, .not_egg
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ jr .zero_status
+
+.not_egg
+ push bc
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld bc, 2
+ call CopyBytes
+ pop bc
+
+.zero_status
+ ld hl, MON_STATUS
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+
+GetPkmnSpecies: ; 508d5
+; [MonType] has the type of the Pkmn
+; e = Nr. of Pkmn (i.e. [CurPartyMon])
+
+ ld a, [MonType]
+ and a ; PARTYMON
+ jr z, .partymon
+ cp OTPARTYMON
+ jr z, .otpartymon
+ cp BOXMON
+ jr z, .boxmon
+ cp TEMPMON
+ jr z, .breedmon
+ ; WILDMON
+
+.partymon
+ ld hl, PartySpecies
+ jr .done
+
+.otpartymon
+ ld hl, OTPartySpecies
+ jr .done
+
+.boxmon
+ ld a, BANK(sBoxSpecies)
+ call GetSRAMBank
+ ld hl, sBoxSpecies
+ call .done
+ call CloseSRAM
+ ret
+
+.breedmon
+ ld a, [wBreedMon1Species]
+ jr .done2
+
+.done
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+
+.done2
+ ld [CurPartySpecies], a
+ ret
--- /dev/null
+++ b/engine/time_capsule.asm
@@ -1,0 +1,147 @@
+; These functions seem to be related to backwards compatibility
+
+ValidateOTTrademon: ; fb57e
+ ld a, [wd003]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ push hl
+ ld a, [wd003]
+ inc a
+ ld c, a
+ ld b, 0
+ ld hl, OTPartyCount
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ cp EGG
+ jr z, .matching_or_egg
+ cp [hl]
+ jr nz, .abnormal
+
+.matching_or_egg
+ ld b, h
+ ld c, l
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MAX_LEVEL + 1
+ jr nc, .abnormal
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr nz, .normal
+ ld hl, OTPartySpecies
+ ld a, [wd003]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hl]
+
+ ; Magnemite and Magneton's types changed
+ ; from Electric to Electric/Steel.
+ cp MAGNEMITE
+ jr z, .normal
+ cp MAGNETON
+ jr z, .normal
+
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, wLinkOTPartyMonTypes
+ add hl, bc
+ add hl, bc
+ ld a, [BaseType1]
+ cp [hl]
+ jr nz, .abnormal
+ inc hl
+ ld a, [BaseType2]
+ cp [hl]
+ jr nz, .abnormal
+
+.normal
+ and a
+ ret
+
+.abnormal
+ scf
+ ret
+; fb5dd
+
+Functionfb5dd: ; fb5dd
+ ld a, [wd002]
+ ld d, a
+ ld a, [PartyCount]
+ ld b, a
+ ld c, $0
+.loop
+ ld a, c
+ cp d
+ jr z, .next
+ push bc
+ ld a, c
+ ld hl, PartyMon1HP
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ or [hl]
+ jr nz, .done
+
+.next
+ inc c
+ dec b
+ jr nz, .loop
+ ld a, [wd003]
+ ld hl, OTPartyMon1HP
+ call GetPartyLocation
+ ld a, [hli]
+ or [hl]
+ jr nz, .done
+ scf
+ ret
+
+.done
+ and a
+ ret
+; fb60d
+
+PlaceTradePartnerNamesAndParty: ; fb60d
+ hlcoord 4, 0
+ ld de, PlayerName
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ hlcoord 4, 8
+ ld de, OTPlayerName
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ hlcoord 7, 1
+ ld de, PartySpecies
+ call .PlaceSpeciesNames
+ hlcoord 7, 9
+ ld de, OTPartySpecies
+.PlaceSpeciesNames: ; fb634
+ ld c, $0
+.loop
+ ld a, [de]
+ cp -1
+ ret z
+ ld [wd265], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld a, c
+ ld [hProduct], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ pop de
+ inc de
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ inc c
+ jr .loop
+; fb656
+
+INCLUDE "data/time_capsule/special_stats.asm"
--- a/engine/time_capsule/conversion.asm
+++ /dev/null
@@ -1,277 +1,0 @@
-; These functions seem to be related to backwards compatibility
-
-ValidateOTTrademon: ; fb57e
- ld a, [wd003]
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- push hl
- ld a, [wd003]
- inc a
- ld c, a
- ld b, 0
- ld hl, OTPartyCount
- add hl, bc
- ld a, [hl]
- pop hl
- cp EGG
- jr z, .matching_or_egg
- cp [hl]
- jr nz, .abnormal
-
-.matching_or_egg
- ld b, h
- ld c, l
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MAX_LEVEL + 1
- jr nc, .abnormal
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr nz, .normal
- ld hl, OTPartySpecies
- ld a, [wd003]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
-
- ; Magnemite and Magneton's types changed
- ; from Electric to Electric/Steel.
- cp MAGNEMITE
- jr z, .normal
- cp MAGNETON
- jr z, .normal
-
- ld [CurSpecies], a
- call GetBaseData
- ld hl, wLinkOTPartyMonTypes
- add hl, bc
- add hl, bc
- ld a, [BaseType1]
- cp [hl]
- jr nz, .abnormal
- inc hl
- ld a, [BaseType2]
- cp [hl]
- jr nz, .abnormal
-
-.normal
- and a
- ret
-
-.abnormal
- scf
- ret
-; fb5dd
-
-Functionfb5dd: ; fb5dd
- ld a, [wd002]
- ld d, a
- ld a, [PartyCount]
- ld b, a
- ld c, $0
-.loop
- ld a, c
- cp d
- jr z, .next
- push bc
- ld a, c
- ld hl, PartyMon1HP
- call GetPartyLocation
- pop bc
- ld a, [hli]
- or [hl]
- jr nz, .done
-
-.next
- inc c
- dec b
- jr nz, .loop
- ld a, [wd003]
- ld hl, OTPartyMon1HP
- call GetPartyLocation
- ld a, [hli]
- or [hl]
- jr nz, .done
- scf
- ret
-
-.done
- and a
- ret
-; fb60d
-
-PlaceTradePartnerNamesAndParty: ; fb60d
- hlcoord 4, 0
- ld de, PlayerName
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 4, 8
- ld de, OTPlayerName
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 7, 1
- ld de, PartySpecies
- call .PlaceSpeciesNames
- hlcoord 7, 9
- ld de, OTPartySpecies
-.PlaceSpeciesNames: ; fb634
- ld c, $0
-.loop
- ld a, [de]
- cp -1
- ret z
- ld [wd265], a
- push bc
- push hl
- push de
- push hl
- ld a, c
- ld [hProduct], a
- call GetPokemonName
- pop hl
- call PlaceString
- pop de
- inc de
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- inc c
- jr .loop
-; fb656
-
-
-INCLUDE "data/time_capsule/special_stats.asm"
-
-
-INCLUDE "event/name_rater.asm"
-
-
-PlaySlowCry: ; fb841
- ld a, [ScriptVar]
- call LoadCryHeader
- jr c, .done
-
- ld hl, CryPitch
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, -$140
- add hl, bc
- ld a, l
- ld [CryPitch], a
- ld a, h
- ld [CryPitch + 1], a
- ld hl, CryLength
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, $60
- add hl, bc
- ld a, l
- ld [CryLength], a
- ld a, h
- ld [CryLength + 1], a
- callba _PlayCryHeader
- call WaitSFX
-
-.done
- ret
-; fb877
-
-NewPokedexEntry: ; fb877
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- call LowVolume
- call ClearBGPalettes
- call ClearTileMap
- call UpdateSprites
- call ClearSprites
- ld a, [wPokedexStatus]
- push af
- ld a, [hSCX]
- add $5
- ld [hSCX], a
- xor a
- ld [wPokedexStatus], a
- callba _NewPokedexEntry
- call WaitPressAorB_BlinkCursor
- ld a, $1
- ld [wPokedexStatus], a
- callba DisplayDexEntry
- call WaitPressAorB_BlinkCursor
- pop af
- ld [wPokedexStatus], a
- call MaxVolume
- call RotateThreePalettesRight
- ld a, [hSCX]
- add -5 ; 251 ; NUM_POKEMON
- ld [hSCX], a
- call .ReturnFromDexRegistration
- pop af
- ld [hMapAnims], a
- ret
-; fb8c8
-
-.ReturnFromDexRegistration: ; fb8c8
- call ClearTileMap
- call LoadFontsExtra
- call LoadStandardFont
- callba Pokedex_PlaceFrontpicTopLeftCorner
- call WaitBGMap2
- callba GetEnemyMonDVs
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hl]
- ld [TempMonDVs + 1], a
- ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- call SetPalettes
- ret
-; fb8f1
-
-ConvertMon_2to1: ; fb8f1
-; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
- push bc
- push hl
- ld a, [wd265]
- ld b, a
- ld c, 0
- ld hl, Pokered_MonIndices
-.loop
- inc c
- ld a, [hli]
- cp b
- jr nz, .loop
- ld a, c
- ld [wd265], a
- pop hl
- pop bc
- ret
-; fb908
-
-ConvertMon_1to2: ; fb908
-; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
- push bc
- push hl
- ld a, [wd265]
- dec a
- ld hl, Pokered_MonIndices
- ld b, 0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- pop hl
- pop bc
- ret
-; fb91c
-
-
-INCLUDE "data/time_capsule/mon_order.asm"
--- /dev/null
+++ b/engine/time_capsule_2.asm
@@ -1,0 +1,39 @@
+ConvertMon_2to1: ; fb8f1
+; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
+ push bc
+ push hl
+ ld a, [wd265]
+ ld b, a
+ ld c, 0
+ ld hl, Pokered_MonIndices
+.loop
+ inc c
+ ld a, [hli]
+ cp b
+ jr nz, .loop
+ ld a, c
+ ld [wd265], a
+ pop hl
+ pop bc
+ ret
+; fb908
+
+ConvertMon_1to2: ; fb908
+; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
+ push bc
+ push hl
+ ld a, [wd265]
+ dec a
+ ld hl, Pokered_MonIndices
+ ld b, 0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ pop hl
+ pop bc
+ ret
+; fb91c
+
+
+INCLUDE "data/time_capsule/mon_order.asm"
--- a/engine/timeofdaypals.asm
+++ b/engine/timeofdaypals.asm
@@ -1,3 +1,7 @@
+Predef35: ; 8c000
+Predef36:
+ ret
+
UpdateTimeOfDayPal:: ; 8c001
call UpdateTime
ld a, [TimeOfDay]
@@ -196,10 +200,6 @@
ret
; 8c0e5
-brightlevel: MACRO
- db (\1 << 6) | (\2 << 4) | (\3 << 2) | \4
-ENDM
-
ReplaceTimeOfDayPals: ; 8c0e5
ld hl, .BrightnessLevels
ld a, [wMapTimeOfDay]
@@ -230,14 +230,14 @@
; 8c10f (23:410f)
.BrightnessLevels: ; 8c10f
- brightlevel 3, 2, 1, 0
- brightlevel 1, 1, 1, 1
- brightlevel 2, 2, 2, 2
- brightlevel 0, 0, 0, 0
- brightlevel 3, 3, 3, 3
- brightlevel 3, 2, 1, 0
- brightlevel 3, 2, 1, 0
- brightlevel 3, 2, 1, 0
+ dc 3, 2, 1, 0
+ dc 1, 1, 1, 1
+ dc 2, 2, 2, 2
+ dc 0, 0, 0, 0
+ dc 3, 3, 3, 3
+ dc 3, 2, 1, 0
+ dc 3, 2, 1, 0
+ dc 3, 2, 1, 0
; 8c117
GetTimePalette: ; 8c117
--- a/engine/timeset.asm
+++ b/engine/timeset.asm
@@ -40,7 +40,7 @@
call RotateFourPalettesRight
ld hl, Text_WokeUpOak
call PrintText
- ld hl, wc608
+ ld hl, wTimeSetBuffer
ld bc, 50
xor a
call ByteFill
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -399,84 +399,4 @@
; 10fede
TitleScreenPalettes:
-; BG
- RGB 00, 00, 00
- RGB 19, 00, 00
- RGB 15, 08, 31
- RGB 15, 08, 31
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 15, 16, 31
- RGB 31, 01, 13
-
- RGB 00, 00, 00
- RGB 07, 07, 07
- RGB 31, 31, 31
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 13, 13, 13
- RGB 31, 31, 18
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 19, 19, 19
- RGB 29, 28, 12
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 25, 25, 25
- RGB 28, 25, 06
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 26, 21, 00
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 11, 11, 19
- RGB 31, 31, 31
- RGB 00, 00, 00
-
-; OBJ
- RGB 00, 00, 00
- RGB 10, 00, 15
- RGB 17, 05, 22
- RGB 19, 09, 31
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
+INCLUDE "data/palettes/title.pal"
--- a/engine/trade/animation.asm
+++ /dev/null
@@ -1,1628 +1,0 @@
-TradeAnimation: ; 28f24
- xor a
- ld [wcf66], a
- ld hl, wPlayerTrademonSenderName
- ld de, wOTTrademonSenderName
- call LinkTradeAnim_LoadTradePlayerNames
- ld hl, wPlayerTrademonSpecies
- ld de, wOTTrademonSpecies
- call LinkTradeAnim_LoadTradeMonSpecies
- ld de, .script
- jr RunTradeAnimScript
-
-.script
- tradeanim_setup_givemon_scroll
- tradeanim_show_givemon_data
- tradeanim_do_givemon_scroll
- tradeanim_wait_80
- tradeanim_wait_96
- tradeanim_poof
- tradeanim_rocking_ball
- tradeanim_enter_link_tube
- tradeanim_wait_anim
- tradeanim_bulge_through_tube
- tradeanim_wait_anim
- tradeanim_textbox_scroll
- tradeanim_give_trademon_sfx
- tradeanim_tube_to_ot
- tradeanim_sent_to_ot_text
- tradeanim_scroll_out_right
-
- tradeanim_ot_sends_text_1
- tradeanim_ot_bids_farewell
- tradeanim_wait_40
- tradeanim_scroll_out_right
- tradeanim_get_trademon_sfx
- tradeanim_tube_to_player
- tradeanim_enter_link_tube
- tradeanim_drop_ball
- tradeanim_exit_link_tube
- tradeanim_wait_anim
- tradeanim_show_getmon_data
- tradeanim_poof
- tradeanim_wait_anim
- tradeanim_frontpic_scroll
- tradeanim_animate_frontpic
- tradeanim_wait_80_if_ot_egg
- tradeanim_textbox_scroll
- tradeanim_take_care_of_text
- tradeanim_scroll_out_right
- tradeanim_end
-
-TradeAnimationPlayer2: ; 28f63
- xor a
- ld [wcf66], a
- ld hl, wOTTrademonSenderName
- ld de, wPlayerTrademonSenderName
- call LinkTradeAnim_LoadTradePlayerNames
- ld hl, wOTTrademonSpecies
- ld de, wPlayerTrademonSpecies
- call LinkTradeAnim_LoadTradeMonSpecies
- ld de, .script
- jr RunTradeAnimScript
-
-.script
- tradeanim_ot_sends_text_2
- tradeanim_ot_bids_farewell
- tradeanim_wait_40
- tradeanim_scroll_out_right
- tradeanim_get_trademon_sfx
- tradeanim_tube_to_ot
- tradeanim_enter_link_tube
- tradeanim_drop_ball
- tradeanim_exit_link_tube
- tradeanim_wait_anim
- tradeanim_show_getmon_data
- tradeanim_poof
- tradeanim_wait_anim
- tradeanim_frontpic_scroll
- tradeanim_animate_frontpic
- tradeanim_wait_180_if_ot_egg
- tradeanim_textbox_scroll
- tradeanim_take_care_of_text
- tradeanim_scroll_out_right
-
- tradeanim_setup_givemon_scroll
- tradeanim_show_givemon_data
- tradeanim_do_givemon_scroll
- tradeanim_wait_40
- tradeanim_poof
- tradeanim_rocking_ball
- tradeanim_enter_link_tube
- tradeanim_wait_anim
- tradeanim_bulge_through_tube
- tradeanim_wait_anim
- tradeanim_textbox_scroll
- tradeanim_give_trademon_sfx
- tradeanim_tube_to_player
- tradeanim_sent_to_ot_text
- tradeanim_scroll_out_right
- tradeanim_end
-
-RunTradeAnimScript: ; 28fa1
- ld hl, wTradeAnimAddress
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- ld hl, VramState
- ld a, [hl]
- push af
- res 0, [hl]
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call .TradeAnimLayout
- ld a, [wcf66]
- and a
- jr nz, .anim_loop
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
-.anim_loop
- call DoTradeAnimation
- jr nc, .anim_loop
- pop af
- ld [Options], a
- pop af
- ld [VramState], a
- pop af
- ld [hMapAnims], a
- ret
-
-; 28fdb
-
-.TradeAnimLayout: ; 28fdb
- xor a
- ld [wJumptableIndex], a
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call LoadFontsBattleExtra
- callab ClearSpriteAnims
- ld a, [hCGB]
- and a
- jr z, .NotCGB
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, sScratch - VTiles0
- xor a
- call ByteFill
- ld a, $0
- ld [rVBK], a
-
-.NotCGB:
- hlbgcoord 0, 0
- ld bc, sScratch - VBGMap0
- ld a, " "
- call ByteFill
- ld hl, TradeGameBoyLZ
- ld de, VTiles2 tile $31
- call Decompress
- ld hl, TradeArrowGFX
- ld de, VTiles1 tile $6d
- ld bc, $10
- ld a, BANK(TradeArrowGFX)
- call FarCopyBytes
- ld hl, TradeArrowGFX + $10
- ld de, VTiles1 tile $6e
- ld bc, $10
- ld a, BANK(TradeArrowGFX)
- call FarCopyBytes
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba GetTrademonFrontpic
- call EnableLCD
- call LoadTradeBallAndCableGFX
- ld a, [wPlayerTrademonSpecies]
- ld hl, wPlayerTrademonDVs
- ld de, VTiles0
- call TradeAnim_GetFrontpic
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- ld de, VTiles0 tile $31
- call TradeAnim_GetFrontpic
- ld a, [wPlayerTrademonSpecies]
- ld de, wPlayerTrademonSpeciesName
- call TradeAnim_GetNickname
- ld a, [wOTTrademonSpecies]
- ld de, wOTTrademonSpeciesName
- call TradeAnim_GetNickname
- call TradeAnim_NormalPals
- ret
-
-; 29082
-
-DoTradeAnimation: ; 29082
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .finished
- call .DoTradeAnimCommand
- callab PlaySpriteAnimations
- ld hl, wcf65
- inc [hl]
- call DelayFrame
- and a
- ret
-
-.finished
- call LoadStandardFont
- scf
- ret
-
-; 290a0
-
-.DoTradeAnimCommand: ; 290a0
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .JumpTable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 290af
-
-.JumpTable: ; 290af
-; entries correspond to macros/trade_anim.asm enumeration
- dw TradeAnim_AdvanceScriptPointer ; 00
- dw TradeAnim_ShowGivemonData ; 01
- dw TradeAnim_ShowGetmonData ; 02
- dw TradeAnim_EnterLinkTube1 ; 03
- dw TradeAnim_EnterLinkTube2 ; 04
- dw TradeAnim_ExitLinkTube ; 05
- dw TradeAnim_TubeToOT1 ; 06
- dw TradeAnim_TubeToOT2 ; 07
- dw TradeAnim_TubeToOT3 ; 08
- dw TradeAnim_TubeToOT4 ; 09
- dw TradeAnim_TubeToOT5 ; 0a
- dw TradeAnim_TubeToOT6 ; 0b
- dw TradeAnim_TubeToOT7 ; 0c
- dw TradeAnim_TubeToOT8 ; 0d
- dw TradeAnim_TubeToPlayer1 ; 0e
- dw TradeAnim_TubeToPlayer2 ; 0f
- dw TradeAnim_TubeToPlayer3 ; 10
- dw TradeAnim_TubeToPlayer4 ; 11
- dw TradeAnim_TubeToPlayer5 ; 12
- dw TradeAnim_TubeToPlayer6 ; 13
- dw TradeAnim_TubeToPlayer7 ; 14
- dw TradeAnim_TubeToPlayer8 ; 15
- dw TradeAnim_SentToOTText ; 16
- dw TradeAnim_OTBidsFarewell ; 17
- dw TradeAnim_TakeCareOfText ; 18
- dw TradeAnim_OTSendsText1 ; 19
- dw TradeAnim_OTSendsText2 ; 1a
- dw TradeAnim_SetupGivemonScroll ; 1b
- dw TradeAnim_DoGivemonScroll ; 1c
- dw TradeAnim_FrontpicScrollStart ; 1d
- dw TradeAnim_TextboxScrollStart ; 1e
- dw TradeAnim_ScrollOutRight ; 1f
- dw TradeAnim_ScrollOutRight2 ; 20
- dw TraideAnim_Wait80 ; 21
- dw TraideAnim_Wait40 ; 22
- dw TradeAnim_RockingBall ; 23
- dw TradeAnim_DropBall ; 24
- dw TradeAnim_WaitAnim ; 25
- dw TradeAnim_WaitAnim2 ; 26
- dw TradeAnim_Poof ; 27
- dw TradeAnim_BulgeThroughTube ; 28
- dw TradeAnim_GiveTrademonSFX ; 29
- dw TradeAnim_GetTrademonSFX ; 2a
- dw TradeAnim_End ; 2b
- dw TradeAnim_AnimateFrontpic ; 2c
- dw TraideAnim_Wait96 ; 2d
- dw TraideAnim_Wait80IfOTEgg ; 2e
- dw TraideAnim_Wait180IfOTEgg ; 2f
-; 2910f
-
-TradeAnim_IncrementJumptableIndex: ; 2910f
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-; 29114
-
-TradeAnim_AdvanceScriptPointer: ; 29114
- ld hl, wTradeAnimAddress
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [de]
- ld [wJumptableIndex], a
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-
-; 29123
-
-TradeAnim_End: ; 29123
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-; 29129
-
-TradeAnim_TubeToOT1: ; 29129
- ld a, $ed ; >>>>>>>>
- call TradeAnim_PlaceTrademonStatsOnTubeAnim
- ld a, [wLinkTradeSendmonSpecies]
- ld [wd265], a
- xor a
- depixel 5, 11, 4, 0
- ld b, $0
- jr TradeAnim_InitTubeAnim
-
-TradeAnim_TubeToPlayer1: ; 2913c
- ld a, $ee ; <<<<<<<<
- call TradeAnim_PlaceTrademonStatsOnTubeAnim
- ld a, [wLinkTradeGetmonSpecies]
- ld [wd265], a
- ld a, $2
- depixel 9, 18, 4, 4
- ld b, $4
-TradeAnim_InitTubeAnim: ; 2914e
- push bc
- push de
- push bc
- push de
-
- push af
- call DisableLCD
- callab ClearSpriteAnims
- hlbgcoord 20, 3
- ld bc, 12
- ld a, $60
- call ByteFill
- pop af
-
- call TradeAnim_TubeAnimJumptable
-
- xor a
- ld [hSCX], a
- ld a, $7
- ld [hWX], a
- ld a, $70
- ld [hWY], a
- call EnableLCD
- call LoadTradeBubbleGFX
-
- pop de
- ld a, SPRITE_ANIM_INDEX_TRADEMON_ICON
- call _InitSpriteAnimStruct
-
- ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
- add hl, bc
- pop bc
- ld [hl], b
-
- pop de
- ld a, SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
- call _InitSpriteAnimStruct
-
- ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
- add hl, bc
- pop bc
- ld [hl], b
-
- call WaitBGMap
- ld b, SCGB_TRADE_TUBE
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- ld a, %11010000
- call DmgToCgbObjPal0
-
- call TradeAnim_IncrementJumptableIndex
- ld a, $5c
- ld [wcf64], a
- ret
-
-; 291af
-
-TradeAnim_TubeToOT2: ; 291af
- call TradeAnim_FlashBGPals
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- cp $50
- ret nz
- ld a, $1
- call TradeAnim_TubeAnimJumptable
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 291c4
-
-TradeAnim_TubeToOT3: ; 291c4
- call TradeAnim_FlashBGPals
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- cp $a0
- ret nz
- ld a, $2
- call TradeAnim_TubeAnimJumptable
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 291d9
-
-TradeAnim_TubeToOT4: ; 291d9
- call TradeAnim_FlashBGPals
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- and a
- ret nz
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 291e8
-
-TradeAnim_TubeToPlayer3: ; 291e8
- call TradeAnim_FlashBGPals
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- cp $b0
- ret nz
- ld a, $1
- call TradeAnim_TubeAnimJumptable
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 291fd
-
-TradeAnim_TubeToPlayer4: ; 291fd
- call TradeAnim_FlashBGPals
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- cp $60
- ret nz
- xor a
- call TradeAnim_TubeAnimJumptable
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 29211
-
-TradeAnim_TubeToPlayer5: ; 29211
- call TradeAnim_FlashBGPals
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- and a
- ret nz
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 29220
-
-TradeAnim_TubeToOT6:
-TradeAnim_TubeToPlayer6: ; 29220
- ld a, $80
- ld [wcf64], a
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 29229
-
-TradeAnim_TubeToOT8:
-TradeAnim_TubeToPlayer8: ; 29229
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- callab ClearSpriteAnims
- hlbgcoord 0, 0
- ld bc, sScratch - VBGMap0
- ld a, " "
- call ByteFill
- xor a
- ld [hSCX], a
- ld a, $90
- ld [hWY], a
- call EnableLCD
- call LoadTradeBallAndCableGFX
- call WaitBGMap
- call TradeAnim_NormalPals
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 2925d
-
-TradeAnim_TubeToOT5:
-TradeAnim_TubeToOT7:
-TradeAnim_TubeToPlayer2:
-TradeAnim_TubeToPlayer7: ; 2925d
- call TradeAnim_FlashBGPals
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- ret
-
-.done
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 2926d
-
-TradeAnim_GiveTrademonSFX: ; 2926d
- call TradeAnim_AdvanceScriptPointer
- ld de, SFX_GIVE_TRADEMON
- call PlaySFX
- ret
-
-; 29277
-
-TradeAnim_GetTrademonSFX: ; 29277
- call TradeAnim_AdvanceScriptPointer
- ld de, SFX_GET_TRADEMON
- call PlaySFX
- ret
-
-; 29281
-
-TradeAnim_TubeAnimJumptable: ; 29281
- and 3
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 2928f
-
-.Jumptable: ; 2928f
- dw .Zero
- dw .One
- dw .Two
- dw .Three
-; 29297
-
-.Zero: ; 29297
-.Three: ; 29297
- call TradeAnim_BlankTileMap
- hlcoord 9, 3
- ld [hl], $5b
- inc hl
- ld bc, 10
- ld a, $60
- call ByteFill
- hlcoord 3, 2
- call TradeAnim_CopyTradeGameBoyTilemap
- ret
-
-; 292af
-
-.One: ; 292af
- call TradeAnim_BlankTileMap
- hlcoord 0, 3
- ld bc, SCREEN_WIDTH
- ld a, $60
- call ByteFill
- ret
-
-; 292be
-
-.Two: ; 292be
- call TradeAnim_BlankTileMap
- hlcoord 0, 3
- ld bc, $11
- ld a, $60
- call ByteFill
- hlcoord 17, 3
- ld a, $5d
- ld [hl], a
-
- ld a, $61
- ld de, SCREEN_WIDTH
- ld c, $3
-.loop
- add hl, de
- ld [hl], a
- dec c
- jr nz, .loop
-
- add hl, de
- ld a, $5f
- ld [hld], a
- ld a, $5b
- ld [hl], a
- hlcoord 10, 6
- call TradeAnim_CopyTradeGameBoyTilemap
- ret
-
-; 292ec
-
-TradeAnim_CopyTradeGameBoyTilemap: ; 292ec
- ld de, TradeGameBoyTilemap
- lb bc, 8, 6
- call TradeAnim_CopyBoxFromDEtoHL
- ret
-
-; 292f6
-
-TradeAnim_PlaceTrademonStatsOnTubeAnim: ; 292f6
- push af
- call ClearBGPalettes
- call WaitTop
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, "─"
- call ByteFill
- hlcoord 0, 1
- ld de, wLinkPlayer1Name
- call PlaceString
- ld hl, wLinkPlayer2Name
- ld de, 0
-.find_name_end_loop
- ld a, [hli]
- cp "@"
- jr z, .done
- dec de
- jr .find_name_end_loop
-
-.done
- hlcoord 0, 4
- add hl, de
- ld de, wLinkPlayer2Name
- call PlaceString
- hlcoord 7, 2
- ld bc, 6
- pop af
- call ByteFill
- call WaitBGMap
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- ret
-
-; 29348
-
-TradeAnim_EnterLinkTube1: ; 29348
- call ClearTileMap
- call WaitTop
- ld a, $a0
- ld [hSCX], a
- call DelayFrame
- hlcoord 8, 2
- ld de, TradeLinkTubeTilemap
- lb bc, 3, 12
- call TradeAnim_CopyBoxFromDEtoHL
- call WaitBGMap
- ld b, SCGB_TRADE_TUBE
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- lb de, %11100100, %11100100 ; 3,2,1,0, 3,2,1,0
- call DmgToCgbObjPals
- ld de, SFX_POTION
- call PlaySFX
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 2937e
-
-TradeAnim_EnterLinkTube2: ; 2937e
- ld a, [hSCX]
- and a
- jr z, .done
- add $4
- ld [hSCX], a
- ret
-
-.done
- ld c, 80
- call DelayFrames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29391
-
-TradeAnim_ExitLinkTube: ; 29391
- ld a, [hSCX]
- cp $a0
- jr z, .done
- sub $4
- ld [hSCX], a
- ret
-
-.done
- call ClearTileMap
- xor a
- ld [hSCX], a
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 293a6
-
-TradeAnim_SetupGivemonScroll: ; 293a6
- ld a, $8f
- ld [hWX], a
- ld a, $88
- ld [hSCX], a
- ld a, $50
- ld [hWY], a
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 293b6
-
-TradeAnim_DoGivemonScroll: ; 293b6
- ld a, [hWX]
- cp $7
- jr z, .done
- sub $4
- ld [hWX], a
- ld a, [hSCX]
- sub $4
- ld [hSCX], a
- ret
-
-.done
- ld a, $7
- ld [hWX], a
- xor a
- ld [hSCX], a
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 293d2
-
-TradeAnim_FrontpicScrollStart: ; 293d2
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 293de
-
-TradeAnim_TextboxScrollStart: ; 293de
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 293ea
-
-TradeAnim_ScrollOutRight: ; 293ea
- call WaitTop
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call WaitBGMap
- ld a, $7
- ld [hWX], a
- xor a
- ld [hWY], a
- call DelayFrame
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- call TradeAnim_IncrementJumptableIndex
- ret
-
-; 2940c
-
-TradeAnim_ScrollOutRight2: ; 2940c
- ld a, [hWX]
- cp $a1
- jr nc, .done
- add $4
- ld [hWX], a
- ret
-
-.done
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call WaitBGMap
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 2942e
-
-TradeAnim_ShowGivemonData: ; 2942e
- call ShowPlayerTrademonStats
- ld a, [wPlayerTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wPlayerTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wPlayerTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call TradeAnim_ShowGivemonFrontpic
-
- ld a, [wPlayerTrademonSpecies]
- call GetCryIndex
- jr c, .skip_cry
- ld e, c
- ld d, b
- call PlayCryHeader
-.skip_cry
-
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29461
-
-TradeAnim_ShowGetmonData: ; 29461
- call ShowOTTrademonStats
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call TradeAnim_ShowGetmonFrontpic
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29487
-
-TradeAnim_AnimateFrontpic: ; 29487
- callba AnimateTrademonFrontpic
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29491
-
-TradeAnim_GetFrontpic: ; 29491
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef GetFrontpic
- ret
-
-; 294a9
-
-TradeAnim_GetNickname: ; 294a9
- push de
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- pop de
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-
-; 294bb
-
-TradeAnim_ShowGivemonFrontpic: ; 294bb
- ld de, VTiles0
- jr TradeAnim_ShowFrontpic
-
-TradeAnim_ShowGetmonFrontpic: ; 294c0
- ld de, VTiles0 tile $31
-TradeAnim_ShowFrontpic: ; 294c3
- call DelayFrame
- ld hl, VTiles2
- lb bc, 10, $31
- call Request2bpp
- call WaitTop
- call TradeAnim_BlankTileMap
- hlcoord 7, 2
- xor a
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- call WaitBGMap
- ret
-
-; 294e7
-
-TraideAnim_Wait80: ; 294e7
- ld c, 80
- call DelayFrames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 294f0
-
-TraideAnim_Wait40: ; 294f0
- ld c, 40
- call DelayFrames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 294f9
-
-TraideAnim_Wait96: ; 294f9
- ld c, 96
- call DelayFrames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29502
-
-TraideAnim_Wait80IfOTEgg: ; 29502
- call IsOTTrademonEgg
- ret nz
- ld c, 80
- call DelayFrames
- ret
-
-; 2950c
-
-TraideAnim_Wait180IfOTEgg: ; 2950c
- call IsOTTrademonEgg
- ret nz
- ld c, 180
- call DelayFrames
- ret
-
-; 29516
-
-IsOTTrademonEgg: ; 29516
- call TradeAnim_AdvanceScriptPointer
- ld a, [wOTTrademonSpecies]
- cp EGG
- ret
-
-; 2951f
-ShowPlayerTrademonStats: ; 2951f
- ld de, wPlayerTrademonSpecies
- ld a, [de]
- cp EGG
- jr z, TrademonStats_Egg
- call TrademonStats_MonTemplate
- ld de, wPlayerTrademonSpecies
- call TrademonStats_PrintSpeciesNumber
- ld de, wPlayerTrademonSpeciesName
- call TrademonStats_PrintSpeciesName
- ld a, [wPlayerTrademonCaughtData]
- ld de, wPlayerTrademonOTName
- call TrademonStats_PrintOTName
- ld de, wPlayerTrademonID
- call TrademonStats_PrintTrademonID
- call TrademonStats_WaitBGMap
- ret
-
-; 29549
-
-ShowOTTrademonStats: ; 29549
- ld de, wOTTrademonSpecies
- ld a, [de]
- cp EGG
- jr z, TrademonStats_Egg
- call TrademonStats_MonTemplate
- ld de, wOTTrademonSpecies
- call TrademonStats_PrintSpeciesNumber
- ld de, wOTTrademonSpeciesName
- call TrademonStats_PrintSpeciesName
- ld a, [wOTTrademonCaughtData]
- ld de, wOTTrademonOTName
- call TrademonStats_PrintOTName
- ld de, wOTTrademonID
- call TrademonStats_PrintTrademonID
- call TrademonStats_WaitBGMap
- ret
-
-; 29573
-
-TrademonStats_MonTemplate: ; 29573
- call WaitTop
- call TradeAnim_BlankTileMap
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 3, 0
- ld b, $6
- ld c, $d
- call TextBox
- hlcoord 4, 0
- ld de, .OTMonData
- call PlaceString
- ret
-
-; 29591
-
-.OTMonData: ; 29591
- db "─── №."
- next ""
- next "OT/"
- next "<ID>№.@"
-; 295a1
-
-TrademonStats_Egg: ; 295a1
- call WaitTop
- call TradeAnim_BlankTileMap
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 3, 0
- ld b, 6
- ld c, 13
- call TextBox
- hlcoord 4, 2
- ld de, .EggData
- call PlaceString
- call TrademonStats_WaitBGMap
- ret
-
-; 295c2
-
-.EggData: ; 295c2
- db "EGG"
- next "OT/?????"
- next "<ID>№.?????@"
-; 295d8
-
-TrademonStats_WaitBGMap: ; 295d8
- call WaitBGMap
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ret
-
-; 295e3
-
-TrademonStats_PrintSpeciesNumber: ; 295e3
- hlcoord 10, 0
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- ld [hl], " "
- ret
-
-; 295ef
-
-TrademonStats_PrintSpeciesName: ; 295ef
- hlcoord 4, 2
- call PlaceString
- ret
-
-; 295f6
-
-TrademonStats_PrintOTName: ; 295f6
- cp 3
- jr c, .caught_gender_okay
- xor a
-.caught_gender_okay
- push af
- hlcoord 7, 4
- call PlaceString
- inc bc
- pop af
- ld hl, .Gender
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- ld [bc], a
- ret
-
-; 2960e
-
-.Gender: ; 2960e
- db " ", "♂", "♀"
-; 29611
-
-TrademonStats_PrintTrademonID: ; 29611
- hlcoord 7, 6
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-
-; 2961b
-
-TradeAnim_RockingBall: ; 2961b
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_TRADE_POKE_BALL
- call _InitSpriteAnimStruct
- call TradeAnim_AdvanceScriptPointer
- ld a, $20
- ld [wcf64], a
- ret
-
-; 2962c
-
-TradeAnim_DropBall: ; 2962c
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_TRADE_POKE_BALL
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
- add hl, bc
- ld [hl], $1
- ld hl, SPRITEANIMSTRUCT_YOFFSET
- add hl, bc
- ld [hl], $dc
- call TradeAnim_AdvanceScriptPointer
- ld a, $38
- ld [wcf64], a
- ret
-
-; 29649
-
-TradeAnim_Poof: ; 29649
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_TRADE_POOF
- call _InitSpriteAnimStruct
- call TradeAnim_AdvanceScriptPointer
- ld a, $10
- ld [wcf64], a
- ld de, SFX_BALL_POOF
- call PlaySFX
- ret
-
-; 29660
-
-TradeAnim_BulgeThroughTube: ; 29660
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbObjPal0
- depixel 5, 11
- ld a, SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
- call _InitSpriteAnimStruct
- call TradeAnim_AdvanceScriptPointer
- ld a, $40
- ld [wcf64], a
- ret
-
-; 29676
-
-TradeAnim_AnimateTrademonInTube: ; 29676 (a:5676)
- ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 29686
-
-.Jumptable: ; 29686 (a:5686)
- dw .InitTimer
- dw .WaitTimer1
- dw .MoveRight
- dw .MoveDown
- dw .MoveUp
- dw .MoveLeft
- dw .WaitTimer2
-; 2969a
-
-.JumptableNext: ; 29694 (a:5694)
- ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
- add hl, bc
- inc [hl]
- ret
-
-.InitTimer: ; 2969a (a:569a)
- call .JumptableNext
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld [hl], $80
- ret
-
-.WaitTimer1: ; 296a4 (a:56a4)
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call .JumptableNext
-
-.MoveRight: ; 296af (a:56af)
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld a, [hl]
- cp $94
- jr nc, .done_move_right
- inc [hl]
- ret
-
-.done_move_right
- call .JumptableNext
-
-.MoveDown: ; 296bd (a:56bd)
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- cp $4c
- jr nc, .done_move_down
- inc [hl]
- ret
-
-.done_move_down
- ld hl, SPRITEANIMSTRUCT_INDEX
- add hl, bc
- ld [hl], $0
- ret
-
-.MoveUp: ; 296cf (a:56cf)
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- cp $2c
- jr z, .done_move_up
- dec [hl]
- ret
-
-.done_move_up
- call .JumptableNext
-
-.MoveLeft: ; 296dd (a:56dd)
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld a, [hl]
- cp $58
- jr z, .done_move_left
- dec [hl]
- ret
-
-.done_move_left
- call .JumptableNext
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld [hl], $80
- ret
-
-.WaitTimer2: ; 296f2 (a:56f2)
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- ld hl, SPRITEANIMSTRUCT_INDEX
- add hl, bc
- ld [hl], $0
- ret
-
-; 29701 (a:5701)
-
-TradeAnim_SentToOTText: ; 29701
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr z, .time_capsule
- ld hl, .Text_MonName
- call PrintText
- ld c, 189
- call DelayFrames
- ld hl, .Text_WasSentTo
- call PrintText
- call TradeAnim_Wait80Frames
- ld c, 128
- call DelayFrames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-.time_capsule
- ld hl, .Text_WasSentTo
- call PrintText
- call TradeAnim_Wait80Frames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29732
-
-.Text_WasSentTo: ; 0x29732
- ; was sent to @ .
- text_jump UnknownText_0x1bc6e9
- db "@"
-; 0x29737
-
-.Text_MonName: ; 0x29737
- ;
- text_jump UnknownText_0x1bc701
- db "@"
-; 0x2973c
-
-TradeAnim_OTBidsFarewell: ; 2973c
- ld hl, .Text_BidsFarewellToMon
- call PrintText
- call TradeAnim_Wait80Frames
- ld hl, .Text_MonName
- call PrintText
- call TradeAnim_Wait80Frames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29752
-
-.Text_BidsFarewellToMon: ; 0x29752
- ; bids farewell to
- text_jump UnknownText_0x1bc703
- db "@"
-; 0x29757
-
-.Text_MonName: ; 0x29757
- ; .
- text_jump UnknownText_0x1bc719
- db "@"
-; 0x2975c
-
-TradeAnim_TakeCareOfText: ; 2975c
- call WaitTop
- hlcoord 0, 10
- ld bc, 8 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call WaitBGMap
- ld hl, .Text_TakeGoodCareOfMon
- call PrintText
- call TradeAnim_Wait80Frames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 2977a
-
-.Text_TakeGoodCareOfMon: ; 0x2977a
- ; Take good care of @ .
- text_jump UnknownText_0x1bc71f
- db "@"
-; 0x2977f
-
-TradeAnim_OTSendsText1: ; 2977f
- ld hl, .Text_ForYourMon
- call PrintText
- call TradeAnim_Wait80Frames
- ld hl, .Text_OTSends
- call PrintText
- call TradeAnim_Wait80Frames
- ld c, 14
- call DelayFrames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 2979a
-
-.Text_ForYourMon: ; 0x2979a
- ; For @ 's @ ,
- text_jump UnknownText_0x1bc739
- db "@"
-; 0x2979f
-
-.Text_OTSends: ; 0x2979f
- ; sends @ .
- text_jump UnknownText_0x1bc74c
- db "@"
-; 0x297a4
-
-TradeAnim_OTSendsText2: ; 297a4
- ld hl, .Text_WillTrade
- call PrintText
- call TradeAnim_Wait80Frames
- ld hl, .Text_ForYourMon
- call PrintText
- call TradeAnim_Wait80Frames
- ld c, 14
- call DelayFrames
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 297bf
-
-.Text_WillTrade: ; 0x297bf
- ; will trade @ @
- text_jump UnknownText_0x1bc75e
- db "@"
-; 0x297c4
-
-.Text_ForYourMon: ; 0x297c4
- ; for @ 's @ .
- text_jump UnknownText_0x1bc774
- db "@"
-; 0x297c9
-
-TradeAnim_Wait80Frames: ; 297c9
- ld c, 80
- call DelayFrames
- ret
-
-; 297cf
-
-TradeAnim_BlankTileMap: ; 297cf
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ret
-
-; 297db
-
-TradeAnim_CopyBoxFromDEtoHL: ; 297db
-.row
- push bc
- push hl
-.col
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- ret
-
-; 297ed
-
-TradeAnim_NormalPals: ; 297ed
- ld a, [hSGB]
- and a
- ld a, %11100100 ; 3,2,1,0
- jr z, .not_sgb
- ld a, $f0
-
-.not_sgb
- call DmgToCgbObjPal0
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- ret
-
-; 297ff
-
-LinkTradeAnim_LoadTradePlayerNames: ; 297ff
- push de
- ld de, wLinkPlayer1Name
- ld bc, NAME_LENGTH
- call CopyBytes
- pop hl
- ld de, wLinkPlayer2Name
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-
-; 29814
-
-LinkTradeAnim_LoadTradeMonSpecies: ; 29814
- ld a, [hl]
- ld [wLinkTradeSendmonSpecies], a
- ld a, [de]
- ld [wLinkTradeGetmonSpecies], a
- ret
-
-; 2981d
-
-TradeAnim_FlashBGPals: ; 2981d
- ld a, [wcf65]
- and $7
- ret nz
- ld a, [rBGP]
- xor %00111100
- call DmgToCgbBGPals
- ret
-
-; 2982b
-
-LoadTradeBallAndCableGFX: ; 2982b
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0 tile $62
- lb bc, BANK(TradeBallGFX), $6
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $68
- lb bc, BANK(TradePoofGFX), $c
- call Request2bpp
- ld de, TradeCableGFX
- ld hl, VTiles0 tile $74
- lb bc, BANK(TradeCableGFX), $4
- call Request2bpp
- xor a
- ld hl, wSpriteAnimDict
- ld [hli], a
- ld [hl], $62
- ret
-
-; 2985a
-
-LoadTradeBubbleGFX: ; 2985a
- call DelayFrame
- ld e, $3
- callab LoadMenuMonIcon
- ld de, TradeBubbleGFX
- ld hl, VTiles0 tile $72
- lb bc, BANK(TradeBubbleGFX), $4
- call Request2bpp
- xor a
- ld hl, wSpriteAnimDict
- ld [hli], a
- ld [hl], $62
- ret
-
-; 29879
-
-TradeAnim_WaitAnim: ; 29879
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- ret
-
-.done
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29886
-
-TradeAnim_WaitAnim2: ; 29886
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- ret
-
-.done
- call TradeAnim_AdvanceScriptPointer
- ret
-
-; 29893
-
-
-DebugTrade: ; 29893
-; This function is unreferenced.
-; It was meant for use in Japanese versions, so the
-; constant used for copy length was changed by accident.
-
- ld hl, .DebugTradeData
-
- ld a, [hli]
- ld [wPlayerTrademonSpecies], a
- ld de, wPlayerTrademonSenderName
- ld c, 11 + 2 ; jp: 6 + 2
-.loop1
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop1
-
- ld a, [hli]
- ld [wOTTrademonSpecies], a
- ld de, wOTTrademonSenderName
- ld c, 11 + 2 ; jp: 6 + 2
-.loop2
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop2
- ret
-
-; 298b5
-
-.DebugTradeData: ; 298b5
- db VENUSAUR, "ゲーフり@@", $23, $01 ; GAME FREAK
- db CHARIZARD, "クりーチャ@", $56, $04 ; Creatures Inc.
-; 298c7
-
-
-TradeGameBoyTilemap: ; 298c7
-; 6x8
- db $31, $32, $32, $32, $32, $33
- db $34, $35, $36, $36, $37, $38
- db $34, $39, $3a, $3a, $3b, $38
- db $3c, $3d, $3e, $3e, $3f, $40
- db $41, $42, $43, $43, $44, $45
- db $46, $47, $43, $48, $49, $4a
- db $41, $43, $4b, $4c, $4d, $4e
- db $4f, $50, $50, $50, $51, $52
-; 297f7
-
-TradeLinkTubeTilemap: ; 297f7
-; 12x3
- db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53
- db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54
- db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43
-; 2991b
-
-TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp"
-TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
-TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
-TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz"
-TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
-TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
--- /dev/null
+++ b/engine/trade_animation.asm
@@ -1,0 +1,1628 @@
+TradeAnimation: ; 28f24
+ xor a
+ ld [wcf66], a
+ ld hl, wPlayerTrademonSenderName
+ ld de, wOTTrademonSenderName
+ call LinkTradeAnim_LoadTradePlayerNames
+ ld hl, wPlayerTrademonSpecies
+ ld de, wOTTrademonSpecies
+ call LinkTradeAnim_LoadTradeMonSpecies
+ ld de, .script
+ jr RunTradeAnimScript
+
+.script
+ tradeanim_setup_givemon_scroll
+ tradeanim_show_givemon_data
+ tradeanim_do_givemon_scroll
+ tradeanim_wait_80
+ tradeanim_wait_96
+ tradeanim_poof
+ tradeanim_rocking_ball
+ tradeanim_enter_link_tube
+ tradeanim_wait_anim
+ tradeanim_bulge_through_tube
+ tradeanim_wait_anim
+ tradeanim_textbox_scroll
+ tradeanim_give_trademon_sfx
+ tradeanim_tube_to_ot
+ tradeanim_sent_to_ot_text
+ tradeanim_scroll_out_right
+
+ tradeanim_ot_sends_text_1
+ tradeanim_ot_bids_farewell
+ tradeanim_wait_40
+ tradeanim_scroll_out_right
+ tradeanim_get_trademon_sfx
+ tradeanim_tube_to_player
+ tradeanim_enter_link_tube
+ tradeanim_drop_ball
+ tradeanim_exit_link_tube
+ tradeanim_wait_anim
+ tradeanim_show_getmon_data
+ tradeanim_poof
+ tradeanim_wait_anim
+ tradeanim_frontpic_scroll
+ tradeanim_animate_frontpic
+ tradeanim_wait_80_if_ot_egg
+ tradeanim_textbox_scroll
+ tradeanim_take_care_of_text
+ tradeanim_scroll_out_right
+ tradeanim_end
+
+TradeAnimationPlayer2: ; 28f63
+ xor a
+ ld [wcf66], a
+ ld hl, wOTTrademonSenderName
+ ld de, wPlayerTrademonSenderName
+ call LinkTradeAnim_LoadTradePlayerNames
+ ld hl, wOTTrademonSpecies
+ ld de, wPlayerTrademonSpecies
+ call LinkTradeAnim_LoadTradeMonSpecies
+ ld de, .script
+ jr RunTradeAnimScript
+
+.script
+ tradeanim_ot_sends_text_2
+ tradeanim_ot_bids_farewell
+ tradeanim_wait_40
+ tradeanim_scroll_out_right
+ tradeanim_get_trademon_sfx
+ tradeanim_tube_to_ot
+ tradeanim_enter_link_tube
+ tradeanim_drop_ball
+ tradeanim_exit_link_tube
+ tradeanim_wait_anim
+ tradeanim_show_getmon_data
+ tradeanim_poof
+ tradeanim_wait_anim
+ tradeanim_frontpic_scroll
+ tradeanim_animate_frontpic
+ tradeanim_wait_180_if_ot_egg
+ tradeanim_textbox_scroll
+ tradeanim_take_care_of_text
+ tradeanim_scroll_out_right
+
+ tradeanim_setup_givemon_scroll
+ tradeanim_show_givemon_data
+ tradeanim_do_givemon_scroll
+ tradeanim_wait_40
+ tradeanim_poof
+ tradeanim_rocking_ball
+ tradeanim_enter_link_tube
+ tradeanim_wait_anim
+ tradeanim_bulge_through_tube
+ tradeanim_wait_anim
+ tradeanim_textbox_scroll
+ tradeanim_give_trademon_sfx
+ tradeanim_tube_to_player
+ tradeanim_sent_to_ot_text
+ tradeanim_scroll_out_right
+ tradeanim_end
+
+RunTradeAnimScript: ; 28fa1
+ ld hl, wTradeAnimAddress
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call .TradeAnimLayout
+ ld a, [wcf66]
+ and a
+ jr nz, .anim_loop
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+.anim_loop
+ call DoTradeAnimation
+ jr nc, .anim_loop
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+
+; 28fdb
+
+.TradeAnimLayout: ; 28fdb
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call LoadFontsBattleExtra
+ callab ClearSpriteAnims
+ ld a, [hCGB]
+ and a
+ jr z, .NotCGB
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, sScratch - VTiles0
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+
+.NotCGB:
+ hlbgcoord 0, 0
+ ld bc, sScratch - VBGMap0
+ ld a, " "
+ call ByteFill
+ ld hl, TradeGameBoyLZ
+ ld de, VTiles2 tile $31
+ call Decompress
+ ld hl, TradeArrowGFX
+ ld de, VTiles1 tile $6d
+ ld bc, $10
+ ld a, BANK(TradeArrowGFX)
+ call FarCopyBytes
+ ld hl, TradeArrowGFX + $10
+ ld de, VTiles1 tile $6e
+ ld bc, $10
+ ld a, BANK(TradeArrowGFX)
+ call FarCopyBytes
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba GetTrademonFrontpic
+ call EnableLCD
+ call LoadTradeBallAndCableGFX
+ ld a, [wPlayerTrademonSpecies]
+ ld hl, wPlayerTrademonDVs
+ ld de, VTiles0
+ call TradeAnim_GetFrontpic
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ ld de, VTiles0 tile $31
+ call TradeAnim_GetFrontpic
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call TradeAnim_GetNickname
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call TradeAnim_GetNickname
+ call TradeAnim_NormalPals
+ ret
+
+; 29082
+
+DoTradeAnimation: ; 29082
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .finished
+ call .DoTradeAnimCommand
+ callab PlaySpriteAnimations
+ ld hl, wcf65
+ inc [hl]
+ call DelayFrame
+ and a
+ ret
+
+.finished
+ call LoadStandardFont
+ scf
+ ret
+
+; 290a0
+
+.DoTradeAnimCommand: ; 290a0
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .JumpTable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 290af
+
+.JumpTable: ; 290af
+; entries correspond to macros/trade_anim.asm enumeration
+ dw TradeAnim_AdvanceScriptPointer ; 00
+ dw TradeAnim_ShowGivemonData ; 01
+ dw TradeAnim_ShowGetmonData ; 02
+ dw TradeAnim_EnterLinkTube1 ; 03
+ dw TradeAnim_EnterLinkTube2 ; 04
+ dw TradeAnim_ExitLinkTube ; 05
+ dw TradeAnim_TubeToOT1 ; 06
+ dw TradeAnim_TubeToOT2 ; 07
+ dw TradeAnim_TubeToOT3 ; 08
+ dw TradeAnim_TubeToOT4 ; 09
+ dw TradeAnim_TubeToOT5 ; 0a
+ dw TradeAnim_TubeToOT6 ; 0b
+ dw TradeAnim_TubeToOT7 ; 0c
+ dw TradeAnim_TubeToOT8 ; 0d
+ dw TradeAnim_TubeToPlayer1 ; 0e
+ dw TradeAnim_TubeToPlayer2 ; 0f
+ dw TradeAnim_TubeToPlayer3 ; 10
+ dw TradeAnim_TubeToPlayer4 ; 11
+ dw TradeAnim_TubeToPlayer5 ; 12
+ dw TradeAnim_TubeToPlayer6 ; 13
+ dw TradeAnim_TubeToPlayer7 ; 14
+ dw TradeAnim_TubeToPlayer8 ; 15
+ dw TradeAnim_SentToOTText ; 16
+ dw TradeAnim_OTBidsFarewell ; 17
+ dw TradeAnim_TakeCareOfText ; 18
+ dw TradeAnim_OTSendsText1 ; 19
+ dw TradeAnim_OTSendsText2 ; 1a
+ dw TradeAnim_SetupGivemonScroll ; 1b
+ dw TradeAnim_DoGivemonScroll ; 1c
+ dw TradeAnim_FrontpicScrollStart ; 1d
+ dw TradeAnim_TextboxScrollStart ; 1e
+ dw TradeAnim_ScrollOutRight ; 1f
+ dw TradeAnim_ScrollOutRight2 ; 20
+ dw TraideAnim_Wait80 ; 21
+ dw TraideAnim_Wait40 ; 22
+ dw TradeAnim_RockingBall ; 23
+ dw TradeAnim_DropBall ; 24
+ dw TradeAnim_WaitAnim ; 25
+ dw TradeAnim_WaitAnim2 ; 26
+ dw TradeAnim_Poof ; 27
+ dw TradeAnim_BulgeThroughTube ; 28
+ dw TradeAnim_GiveTrademonSFX ; 29
+ dw TradeAnim_GetTrademonSFX ; 2a
+ dw TradeAnim_End ; 2b
+ dw TradeAnim_AnimateFrontpic ; 2c
+ dw TraideAnim_Wait96 ; 2d
+ dw TraideAnim_Wait80IfOTEgg ; 2e
+ dw TraideAnim_Wait180IfOTEgg ; 2f
+; 2910f
+
+TradeAnim_IncrementJumptableIndex: ; 2910f
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+; 29114
+
+TradeAnim_AdvanceScriptPointer: ; 29114
+ ld hl, wTradeAnimAddress
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ ld [wJumptableIndex], a
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+
+; 29123
+
+TradeAnim_End: ; 29123
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+; 29129
+
+TradeAnim_TubeToOT1: ; 29129
+ ld a, $ed ; >>>>>>>>
+ call TradeAnim_PlaceTrademonStatsOnTubeAnim
+ ld a, [wLinkTradeSendmonSpecies]
+ ld [wd265], a
+ xor a
+ depixel 5, 11, 4, 0
+ ld b, $0
+ jr TradeAnim_InitTubeAnim
+
+TradeAnim_TubeToPlayer1: ; 2913c
+ ld a, $ee ; <<<<<<<<
+ call TradeAnim_PlaceTrademonStatsOnTubeAnim
+ ld a, [wLinkTradeGetmonSpecies]
+ ld [wd265], a
+ ld a, $2
+ depixel 9, 18, 4, 4
+ ld b, $4
+TradeAnim_InitTubeAnim: ; 2914e
+ push bc
+ push de
+ push bc
+ push de
+
+ push af
+ call DisableLCD
+ callab ClearSpriteAnims
+ hlbgcoord 20, 3
+ ld bc, 12
+ ld a, $60
+ call ByteFill
+ pop af
+
+ call TradeAnim_TubeAnimJumptable
+
+ xor a
+ ld [hSCX], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $70
+ ld [hWY], a
+ call EnableLCD
+ call LoadTradeBubbleGFX
+
+ pop de
+ ld a, SPRITE_ANIM_INDEX_TRADEMON_ICON
+ call _InitSpriteAnimStruct
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ pop bc
+ ld [hl], b
+
+ pop de
+ ld a, SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
+ call _InitSpriteAnimStruct
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ pop bc
+ ld [hl], b
+
+ call WaitBGMap
+ ld b, SCGB_TRADE_TUBE
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ ld a, %11010000
+ call DmgToCgbObjPal0
+
+ call TradeAnim_IncrementJumptableIndex
+ ld a, $5c
+ ld [wcf64], a
+ ret
+
+; 291af
+
+TradeAnim_TubeToOT2: ; 291af
+ call TradeAnim_FlashBGPals
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ cp $50
+ ret nz
+ ld a, $1
+ call TradeAnim_TubeAnimJumptable
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 291c4
+
+TradeAnim_TubeToOT3: ; 291c4
+ call TradeAnim_FlashBGPals
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ cp $a0
+ ret nz
+ ld a, $2
+ call TradeAnim_TubeAnimJumptable
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 291d9
+
+TradeAnim_TubeToOT4: ; 291d9
+ call TradeAnim_FlashBGPals
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ and a
+ ret nz
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 291e8
+
+TradeAnim_TubeToPlayer3: ; 291e8
+ call TradeAnim_FlashBGPals
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ cp $b0
+ ret nz
+ ld a, $1
+ call TradeAnim_TubeAnimJumptable
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 291fd
+
+TradeAnim_TubeToPlayer4: ; 291fd
+ call TradeAnim_FlashBGPals
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ cp $60
+ ret nz
+ xor a
+ call TradeAnim_TubeAnimJumptable
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 29211
+
+TradeAnim_TubeToPlayer5: ; 29211
+ call TradeAnim_FlashBGPals
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ and a
+ ret nz
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 29220
+
+TradeAnim_TubeToOT6:
+TradeAnim_TubeToPlayer6: ; 29220
+ ld a, $80
+ ld [wcf64], a
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 29229
+
+TradeAnim_TubeToOT8:
+TradeAnim_TubeToPlayer8: ; 29229
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ callab ClearSpriteAnims
+ hlbgcoord 0, 0
+ ld bc, sScratch - VBGMap0
+ ld a, " "
+ call ByteFill
+ xor a
+ ld [hSCX], a
+ ld a, $90
+ ld [hWY], a
+ call EnableLCD
+ call LoadTradeBallAndCableGFX
+ call WaitBGMap
+ call TradeAnim_NormalPals
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 2925d
+
+TradeAnim_TubeToOT5:
+TradeAnim_TubeToOT7:
+TradeAnim_TubeToPlayer2:
+TradeAnim_TubeToPlayer7: ; 2925d
+ call TradeAnim_FlashBGPals
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ret
+
+.done
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 2926d
+
+TradeAnim_GiveTrademonSFX: ; 2926d
+ call TradeAnim_AdvanceScriptPointer
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ret
+
+; 29277
+
+TradeAnim_GetTrademonSFX: ; 29277
+ call TradeAnim_AdvanceScriptPointer
+ ld de, SFX_GET_TRADEMON
+ call PlaySFX
+ ret
+
+; 29281
+
+TradeAnim_TubeAnimJumptable: ; 29281
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 2928f
+
+.Jumptable: ; 2928f
+ dw .Zero
+ dw .One
+ dw .Two
+ dw .Three
+; 29297
+
+.Zero: ; 29297
+.Three: ; 29297
+ call TradeAnim_BlankTileMap
+ hlcoord 9, 3
+ ld [hl], $5b
+ inc hl
+ ld bc, 10
+ ld a, $60
+ call ByteFill
+ hlcoord 3, 2
+ call TradeAnim_CopyTradeGameBoyTilemap
+ ret
+
+; 292af
+
+.One: ; 292af
+ call TradeAnim_BlankTileMap
+ hlcoord 0, 3
+ ld bc, SCREEN_WIDTH
+ ld a, $60
+ call ByteFill
+ ret
+
+; 292be
+
+.Two: ; 292be
+ call TradeAnim_BlankTileMap
+ hlcoord 0, 3
+ ld bc, $11
+ ld a, $60
+ call ByteFill
+ hlcoord 17, 3
+ ld a, $5d
+ ld [hl], a
+
+ ld a, $61
+ ld de, SCREEN_WIDTH
+ ld c, $3
+.loop
+ add hl, de
+ ld [hl], a
+ dec c
+ jr nz, .loop
+
+ add hl, de
+ ld a, $5f
+ ld [hld], a
+ ld a, $5b
+ ld [hl], a
+ hlcoord 10, 6
+ call TradeAnim_CopyTradeGameBoyTilemap
+ ret
+
+; 292ec
+
+TradeAnim_CopyTradeGameBoyTilemap: ; 292ec
+ ld de, TradeGameBoyTilemap
+ lb bc, 8, 6
+ call TradeAnim_CopyBoxFromDEtoHL
+ ret
+
+; 292f6
+
+TradeAnim_PlaceTrademonStatsOnTubeAnim: ; 292f6
+ push af
+ call ClearBGPalettes
+ call WaitTop
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, "─"
+ call ByteFill
+ hlcoord 0, 1
+ ld de, wLinkPlayer1Name
+ call PlaceString
+ ld hl, wLinkPlayer2Name
+ ld de, 0
+.find_name_end_loop
+ ld a, [hli]
+ cp "@"
+ jr z, .done
+ dec de
+ jr .find_name_end_loop
+
+.done
+ hlcoord 0, 4
+ add hl, de
+ ld de, wLinkPlayer2Name
+ call PlaceString
+ hlcoord 7, 2
+ ld bc, 6
+ pop af
+ call ByteFill
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ ret
+
+; 29348
+
+TradeAnim_EnterLinkTube1: ; 29348
+ call ClearTileMap
+ call WaitTop
+ ld a, $a0
+ ld [hSCX], a
+ call DelayFrame
+ hlcoord 8, 2
+ ld de, TradeLinkTubeTilemap
+ lb bc, 3, 12
+ call TradeAnim_CopyBoxFromDEtoHL
+ call WaitBGMap
+ ld b, SCGB_TRADE_TUBE
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ lb de, %11100100, %11100100 ; 3,2,1,0, 3,2,1,0
+ call DmgToCgbObjPals
+ ld de, SFX_POTION
+ call PlaySFX
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 2937e
+
+TradeAnim_EnterLinkTube2: ; 2937e
+ ld a, [hSCX]
+ and a
+ jr z, .done
+ add $4
+ ld [hSCX], a
+ ret
+
+.done
+ ld c, 80
+ call DelayFrames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29391
+
+TradeAnim_ExitLinkTube: ; 29391
+ ld a, [hSCX]
+ cp $a0
+ jr z, .done
+ sub $4
+ ld [hSCX], a
+ ret
+
+.done
+ call ClearTileMap
+ xor a
+ ld [hSCX], a
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 293a6
+
+TradeAnim_SetupGivemonScroll: ; 293a6
+ ld a, $8f
+ ld [hWX], a
+ ld a, $88
+ ld [hSCX], a
+ ld a, $50
+ ld [hWY], a
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 293b6
+
+TradeAnim_DoGivemonScroll: ; 293b6
+ ld a, [hWX]
+ cp $7
+ jr z, .done
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ ret
+
+.done
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 293d2
+
+TradeAnim_FrontpicScrollStart: ; 293d2
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 293de
+
+TradeAnim_TextboxScrollStart: ; 293de
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 293ea
+
+TradeAnim_ScrollOutRight: ; 293ea
+ call WaitTop
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call WaitBGMap
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hWY], a
+ call DelayFrame
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ call TradeAnim_IncrementJumptableIndex
+ ret
+
+; 2940c
+
+TradeAnim_ScrollOutRight2: ; 2940c
+ ld a, [hWX]
+ cp $a1
+ jr nc, .done
+ add $4
+ ld [hWX], a
+ ret
+
+.done
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call WaitBGMap
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 2942e
+
+TradeAnim_ShowGivemonData: ; 2942e
+ call ShowPlayerTrademonStats
+ ld a, [wPlayerTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wPlayerTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wPlayerTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call TradeAnim_ShowGivemonFrontpic
+
+ ld a, [wPlayerTrademonSpecies]
+ call GetCryIndex
+ jr c, .skip_cry
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+.skip_cry
+
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29461
+
+TradeAnim_ShowGetmonData: ; 29461
+ call ShowOTTrademonStats
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call TradeAnim_ShowGetmonFrontpic
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29487
+
+TradeAnim_AnimateFrontpic: ; 29487
+ callba AnimateTrademonFrontpic
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29491
+
+TradeAnim_GetFrontpic: ; 29491
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef GetFrontpic
+ ret
+
+; 294a9
+
+TradeAnim_GetNickname: ; 294a9
+ push de
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+
+; 294bb
+
+TradeAnim_ShowGivemonFrontpic: ; 294bb
+ ld de, VTiles0
+ jr TradeAnim_ShowFrontpic
+
+TradeAnim_ShowGetmonFrontpic: ; 294c0
+ ld de, VTiles0 tile $31
+TradeAnim_ShowFrontpic: ; 294c3
+ call DelayFrame
+ ld hl, VTiles2
+ lb bc, 10, $31
+ call Request2bpp
+ call WaitTop
+ call TradeAnim_BlankTileMap
+ hlcoord 7, 2
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call WaitBGMap
+ ret
+
+; 294e7
+
+TraideAnim_Wait80: ; 294e7
+ ld c, 80
+ call DelayFrames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 294f0
+
+TraideAnim_Wait40: ; 294f0
+ ld c, 40
+ call DelayFrames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 294f9
+
+TraideAnim_Wait96: ; 294f9
+ ld c, 96
+ call DelayFrames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29502
+
+TraideAnim_Wait80IfOTEgg: ; 29502
+ call IsOTTrademonEgg
+ ret nz
+ ld c, 80
+ call DelayFrames
+ ret
+
+; 2950c
+
+TraideAnim_Wait180IfOTEgg: ; 2950c
+ call IsOTTrademonEgg
+ ret nz
+ ld c, 180
+ call DelayFrames
+ ret
+
+; 29516
+
+IsOTTrademonEgg: ; 29516
+ call TradeAnim_AdvanceScriptPointer
+ ld a, [wOTTrademonSpecies]
+ cp EGG
+ ret
+
+; 2951f
+ShowPlayerTrademonStats: ; 2951f
+ ld de, wPlayerTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, TrademonStats_Egg
+ call TrademonStats_MonTemplate
+ ld de, wPlayerTrademonSpecies
+ call TrademonStats_PrintSpeciesNumber
+ ld de, wPlayerTrademonSpeciesName
+ call TrademonStats_PrintSpeciesName
+ ld a, [wPlayerTrademonCaughtData]
+ ld de, wPlayerTrademonOTName
+ call TrademonStats_PrintOTName
+ ld de, wPlayerTrademonID
+ call TrademonStats_PrintTrademonID
+ call TrademonStats_WaitBGMap
+ ret
+
+; 29549
+
+ShowOTTrademonStats: ; 29549
+ ld de, wOTTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, TrademonStats_Egg
+ call TrademonStats_MonTemplate
+ ld de, wOTTrademonSpecies
+ call TrademonStats_PrintSpeciesNumber
+ ld de, wOTTrademonSpeciesName
+ call TrademonStats_PrintSpeciesName
+ ld a, [wOTTrademonCaughtData]
+ ld de, wOTTrademonOTName
+ call TrademonStats_PrintOTName
+ ld de, wOTTrademonID
+ call TrademonStats_PrintTrademonID
+ call TrademonStats_WaitBGMap
+ ret
+
+; 29573
+
+TrademonStats_MonTemplate: ; 29573
+ call WaitTop
+ call TradeAnim_BlankTileMap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 3, 0
+ ld b, $6
+ ld c, $d
+ call TextBox
+ hlcoord 4, 0
+ ld de, .OTMonData
+ call PlaceString
+ ret
+
+; 29591
+
+.OTMonData: ; 29591
+ db "─── №."
+ next ""
+ next "OT/"
+ next "<ID>№.@"
+; 295a1
+
+TrademonStats_Egg: ; 295a1
+ call WaitTop
+ call TradeAnim_BlankTileMap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 3, 0
+ ld b, 6
+ ld c, 13
+ call TextBox
+ hlcoord 4, 2
+ ld de, .EggData
+ call PlaceString
+ call TrademonStats_WaitBGMap
+ ret
+
+; 295c2
+
+.EggData: ; 295c2
+ db "EGG"
+ next "OT/?????"
+ next "<ID>№.?????@"
+; 295d8
+
+TrademonStats_WaitBGMap: ; 295d8
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ret
+
+; 295e3
+
+TrademonStats_PrintSpeciesNumber: ; 295e3
+ hlcoord 10, 0
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ ld [hl], " "
+ ret
+
+; 295ef
+
+TrademonStats_PrintSpeciesName: ; 295ef
+ hlcoord 4, 2
+ call PlaceString
+ ret
+
+; 295f6
+
+TrademonStats_PrintOTName: ; 295f6
+ cp 3
+ jr c, .caught_gender_okay
+ xor a
+.caught_gender_okay
+ push af
+ hlcoord 7, 4
+ call PlaceString
+ inc bc
+ pop af
+ ld hl, .Gender
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [bc], a
+ ret
+
+; 2960e
+
+.Gender: ; 2960e
+ db " ", "♂", "♀"
+; 29611
+
+TrademonStats_PrintTrademonID: ; 29611
+ hlcoord 7, 6
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+
+; 2961b
+
+TradeAnim_RockingBall: ; 2961b
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_TRADE_POKE_BALL
+ call _InitSpriteAnimStruct
+ call TradeAnim_AdvanceScriptPointer
+ ld a, $20
+ ld [wcf64], a
+ ret
+
+; 2962c
+
+TradeAnim_DropBall: ; 2962c
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_TRADE_POKE_BALL
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld [hl], $1
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $dc
+ call TradeAnim_AdvanceScriptPointer
+ ld a, $38
+ ld [wcf64], a
+ ret
+
+; 29649
+
+TradeAnim_Poof: ; 29649
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_TRADE_POOF
+ call _InitSpriteAnimStruct
+ call TradeAnim_AdvanceScriptPointer
+ ld a, $10
+ ld [wcf64], a
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ ret
+
+; 29660
+
+TradeAnim_BulgeThroughTube: ; 29660
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbObjPal0
+ depixel 5, 11
+ ld a, SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
+ call _InitSpriteAnimStruct
+ call TradeAnim_AdvanceScriptPointer
+ ld a, $40
+ ld [wcf64], a
+ ret
+
+; 29676
+
+TradeAnim_AnimateTrademonInTube: ; 29676 (a:5676)
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 29686
+
+.Jumptable: ; 29686 (a:5686)
+ dw .InitTimer
+ dw .WaitTimer1
+ dw .MoveRight
+ dw .MoveDown
+ dw .MoveUp
+ dw .MoveLeft
+ dw .WaitTimer2
+; 2969a
+
+.JumptableNext: ; 29694 (a:5694)
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ inc [hl]
+ ret
+
+.InitTimer: ; 2969a (a:569a)
+ call .JumptableNext
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], $80
+ ret
+
+.WaitTimer1: ; 296a4 (a:56a4)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call .JumptableNext
+
+.MoveRight: ; 296af (a:56af)
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $94
+ jr nc, .done_move_right
+ inc [hl]
+ ret
+
+.done_move_right
+ call .JumptableNext
+
+.MoveDown: ; 296bd (a:56bd)
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $4c
+ jr nc, .done_move_down
+ inc [hl]
+ ret
+
+.done_move_down
+ ld hl, SPRITEANIMSTRUCT_INDEX
+ add hl, bc
+ ld [hl], $0
+ ret
+
+.MoveUp: ; 296cf (a:56cf)
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $2c
+ jr z, .done_move_up
+ dec [hl]
+ ret
+
+.done_move_up
+ call .JumptableNext
+
+.MoveLeft: ; 296dd (a:56dd)
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $58
+ jr z, .done_move_left
+ dec [hl]
+ ret
+
+.done_move_left
+ call .JumptableNext
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], $80
+ ret
+
+.WaitTimer2: ; 296f2 (a:56f2)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ ld hl, SPRITEANIMSTRUCT_INDEX
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; 29701 (a:5701)
+
+TradeAnim_SentToOTText: ; 29701
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr z, .time_capsule
+ ld hl, .Text_MonName
+ call PrintText
+ ld c, 189
+ call DelayFrames
+ ld hl, .Text_WasSentTo
+ call PrintText
+ call TradeAnim_Wait80Frames
+ ld c, 128
+ call DelayFrames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+.time_capsule
+ ld hl, .Text_WasSentTo
+ call PrintText
+ call TradeAnim_Wait80Frames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29732
+
+.Text_WasSentTo: ; 0x29732
+ ; was sent to @ .
+ text_jump UnknownText_0x1bc6e9
+ db "@"
+; 0x29737
+
+.Text_MonName: ; 0x29737
+ ;
+ text_jump UnknownText_0x1bc701
+ db "@"
+; 0x2973c
+
+TradeAnim_OTBidsFarewell: ; 2973c
+ ld hl, .Text_BidsFarewellToMon
+ call PrintText
+ call TradeAnim_Wait80Frames
+ ld hl, .Text_MonName
+ call PrintText
+ call TradeAnim_Wait80Frames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29752
+
+.Text_BidsFarewellToMon: ; 0x29752
+ ; bids farewell to
+ text_jump UnknownText_0x1bc703
+ db "@"
+; 0x29757
+
+.Text_MonName: ; 0x29757
+ ; .
+ text_jump UnknownText_0x1bc719
+ db "@"
+; 0x2975c
+
+TradeAnim_TakeCareOfText: ; 2975c
+ call WaitTop
+ hlcoord 0, 10
+ ld bc, 8 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call WaitBGMap
+ ld hl, .Text_TakeGoodCareOfMon
+ call PrintText
+ call TradeAnim_Wait80Frames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 2977a
+
+.Text_TakeGoodCareOfMon: ; 0x2977a
+ ; Take good care of @ .
+ text_jump UnknownText_0x1bc71f
+ db "@"
+; 0x2977f
+
+TradeAnim_OTSendsText1: ; 2977f
+ ld hl, .Text_ForYourMon
+ call PrintText
+ call TradeAnim_Wait80Frames
+ ld hl, .Text_OTSends
+ call PrintText
+ call TradeAnim_Wait80Frames
+ ld c, 14
+ call DelayFrames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 2979a
+
+.Text_ForYourMon: ; 0x2979a
+ ; For @ 's @ ,
+ text_jump UnknownText_0x1bc739
+ db "@"
+; 0x2979f
+
+.Text_OTSends: ; 0x2979f
+ ; sends @ .
+ text_jump UnknownText_0x1bc74c
+ db "@"
+; 0x297a4
+
+TradeAnim_OTSendsText2: ; 297a4
+ ld hl, .Text_WillTrade
+ call PrintText
+ call TradeAnim_Wait80Frames
+ ld hl, .Text_ForYourMon
+ call PrintText
+ call TradeAnim_Wait80Frames
+ ld c, 14
+ call DelayFrames
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 297bf
+
+.Text_WillTrade: ; 0x297bf
+ ; will trade @ @
+ text_jump UnknownText_0x1bc75e
+ db "@"
+; 0x297c4
+
+.Text_ForYourMon: ; 0x297c4
+ ; for @ 's @ .
+ text_jump UnknownText_0x1bc774
+ db "@"
+; 0x297c9
+
+TradeAnim_Wait80Frames: ; 297c9
+ ld c, 80
+ call DelayFrames
+ ret
+
+; 297cf
+
+TradeAnim_BlankTileMap: ; 297cf
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ ret
+
+; 297db
+
+TradeAnim_CopyBoxFromDEtoHL: ; 297db
+.row
+ push bc
+ push hl
+.col
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+
+; 297ed
+
+TradeAnim_NormalPals: ; 297ed
+ ld a, [hSGB]
+ and a
+ ld a, %11100100 ; 3,2,1,0
+ jr z, .not_sgb
+ ld a, $f0
+
+.not_sgb
+ call DmgToCgbObjPal0
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ ret
+
+; 297ff
+
+LinkTradeAnim_LoadTradePlayerNames: ; 297ff
+ push de
+ ld de, wLinkPlayer1Name
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ pop hl
+ ld de, wLinkPlayer2Name
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+
+; 29814
+
+LinkTradeAnim_LoadTradeMonSpecies: ; 29814
+ ld a, [hl]
+ ld [wLinkTradeSendmonSpecies], a
+ ld a, [de]
+ ld [wLinkTradeGetmonSpecies], a
+ ret
+
+; 2981d
+
+TradeAnim_FlashBGPals: ; 2981d
+ ld a, [wcf65]
+ and $7
+ ret nz
+ ld a, [rBGP]
+ xor %00111100
+ call DmgToCgbBGPals
+ ret
+
+; 2982b
+
+LoadTradeBallAndCableGFX: ; 2982b
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0 tile $62
+ lb bc, BANK(TradeBallGFX), $6
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $68
+ lb bc, BANK(TradePoofGFX), $c
+ call Request2bpp
+ ld de, TradeCableGFX
+ ld hl, VTiles0 tile $74
+ lb bc, BANK(TradeCableGFX), $4
+ call Request2bpp
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], $62
+ ret
+
+; 2985a
+
+LoadTradeBubbleGFX: ; 2985a
+ call DelayFrame
+ ld e, $3
+ callab LoadMenuMonIcon
+ ld de, TradeBubbleGFX
+ ld hl, VTiles0 tile $72
+ lb bc, BANK(TradeBubbleGFX), $4
+ call Request2bpp
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], $62
+ ret
+
+; 29879
+
+TradeAnim_WaitAnim: ; 29879
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ret
+
+.done
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29886
+
+TradeAnim_WaitAnim2: ; 29886
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ret
+
+.done
+ call TradeAnim_AdvanceScriptPointer
+ ret
+
+; 29893
+
+
+DebugTrade: ; 29893
+; This function is unreferenced.
+; It was meant for use in Japanese versions, so the
+; constant used for copy length was changed by accident.
+
+ ld hl, .DebugTradeData
+
+ ld a, [hli]
+ ld [wPlayerTrademonSpecies], a
+ ld de, wPlayerTrademonSenderName
+ ld c, 11 + 2 ; jp: 6 + 2
+.loop1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop1
+
+ ld a, [hli]
+ ld [wOTTrademonSpecies], a
+ ld de, wOTTrademonSenderName
+ ld c, 11 + 2 ; jp: 6 + 2
+.loop2
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop2
+ ret
+
+; 298b5
+
+.DebugTradeData: ; 298b5
+ db VENUSAUR, "ゲーフり@@", $23, $01 ; GAME FREAK
+ db CHARIZARD, "クりーチャ@", $56, $04 ; Creatures Inc.
+; 298c7
+
+
+TradeGameBoyTilemap: ; 298c7
+; 6x8
+ db $31, $32, $32, $32, $32, $33
+ db $34, $35, $36, $36, $37, $38
+ db $34, $39, $3a, $3a, $3b, $38
+ db $3c, $3d, $3e, $3e, $3f, $40
+ db $41, $42, $43, $43, $44, $45
+ db $46, $47, $43, $48, $49, $4a
+ db $41, $43, $4b, $4c, $4d, $4e
+ db $4f, $50, $50, $50, $51, $52
+; 297f7
+
+TradeLinkTubeTilemap: ; 297f7
+; 12x3
+ db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53
+ db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54
+ db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43
+; 2991b
+
+TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp"
+TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
+TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
+TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz"
+TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
+TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
--- /dev/null
+++ b/engine/trademon_frontpic.asm
@@ -1,0 +1,38 @@
+GetTrademonFrontpic: ; 4d7fd
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef FrontpicPredef
+ ret
+
+AnimateTrademonFrontpic: ; 4d81e
+ ld a, [wOTTrademonSpecies]
+ call IsAPokemon
+ ret c
+ callba ShowOTTrademonStats
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ callba TradeAnim_ShowGetmonFrontpic
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_TRADE
+ predef AnimateFrontpic
+ ret
--- a/engine/trainer_card.asm
+++ b/engine/trainer_card.asm
@@ -448,7 +448,7 @@
ret nz
hlcoord 15, 12
ld a, [hl]
- xor $7f ^ $2e ; $7F (space) <--> $2E (colon)
+ xor " " ^ $2e ; alternate between space and small colon ($2e) tiles
ld [hl], a
ret
--- /dev/null
+++ b/engine/trainer_scripts.asm
@@ -1,0 +1,31 @@
+TalkToTrainerScript:: ; 0xbe66a
+ faceplayer
+ trainerflagaction CHECK_FLAG
+ iftrue AlreadyBeatenTrainerScript
+ loadmemtrainer
+ encountermusic
+ jump StartBattleWithMapTrainerScript
+
+SeenByTrainerScript:: ; 0xbe675
+ loadmemtrainer
+ encountermusic
+ showemote EMOTE_SHOCK, LAST_TALKED, 30
+ callasm TrainerWalkToPlayer
+ applymovement2 MovementBuffer
+ writepersonxy LAST_TALKED
+ faceperson PLAYER, LAST_TALKED
+ jump StartBattleWithMapTrainerScript
+
+StartBattleWithMapTrainerScript: ; 0xbe68a
+ opentext
+ trainertext $0
+ waitbutton
+ closetext
+ loadmemtrainer
+ startbattle
+ reloadmapafterbattle
+ trainerflagaction SET_FLAG
+ loadvar wRunningTrainerBattleScript, -1
+
+AlreadyBeatenTrainerScript:
+ scripttalkafter
--- /dev/null
+++ b/engine/unown_dex.asm
@@ -1,0 +1,51 @@
+UpdateUnownDex: ; fba18
+ ld a, [UnownLetter]
+ ld c, a
+ ld b, NUM_UNOWN
+ ld hl, UnownDex
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ cp c
+ ret z
+ dec b
+ jr nz, .loop
+ ret
+
+.done
+ dec hl
+ ld [hl], c
+ ret
+; fba2e
+
+PrintUnownWord: ; fba2e (3e:7a2e)
+ hlcoord 4, 15
+ ld bc, 12
+ ld a, " "
+ call ByteFill
+ ld a, [wDexCurrentUnownIndex]
+ ld e, a
+ ld d, 0
+ ld hl, UnownDex
+ add hl, de
+ ld a, [hl]
+ ld e, a
+ ld d, 0
+ ld hl, UnownWords
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ hlcoord 4, 15
+.loop
+ ld a, [de]
+ cp -1
+ ret z
+ inc de
+ ld [hli], a
+ jr .loop
+; fba5a (3e:7a5a)
+
+INCLUDE "data/unown_words.asm"
--- a/engine/unown_puzzle.asm
+++ b/engine/unown_puzzle.asm
@@ -1,7 +1,8 @@
-puzcoord EQUS "* 6 +"
PUZZLE_BORDER EQU $ee
PUZZLE_VOID EQU $ef
+puzcoord EQUS "* 6 +"
+
UnownPuzzle: ; e1190
ld a, [hInMenu]
push af
@@ -13,7 +14,7 @@
xor a
ld [hBGMapMode], a
call DisableLCD
- ld hl, wMisc
+ ld hl, wMisc ; includes wPuzzlePieces
ld bc, wMiscEnd - wMisc
xor a
call ByteFill
--- a/engine/unowndex.asm
+++ /dev/null
@@ -1,118 +1,0 @@
-UpdateUnownDex: ; fba18
- ld a, [UnownLetter]
- ld c, a
- ld b, NUM_UNOWN
- ld hl, UnownDex
-.loop
- ld a, [hli]
- and a
- jr z, .done
- cp c
- ret z
- dec b
- jr nz, .loop
- ret
-
-.done
- dec hl
- ld [hl], c
- ret
-; fba2e
-
-
-PrintUnownWord: ; fba2e (3e:7a2e)
- hlcoord 4, 15
- ld bc, 12
- ld a, " "
- call ByteFill
- ld a, [wDexCurrentUnownIndex]
- ld e, a
- ld d, 0
- ld hl, UnownDex
- add hl, de
- ld a, [hl]
- ld e, a
- ld d, 0
- ld hl, UnownWords
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- hlcoord 4, 15
-.loop
- ld a, [de]
- cp -1
- ret z
- inc de
- ld [hli], a
- jr .loop
-; fba5a (3e:7a5a)
-
-UnownWords: ; fba5a
- dw UnownWord1
- dw UnownWord1
- dw UnownWord2
- dw UnownWord3
- dw UnownWord4
- dw UnownWord5
- dw UnownWord6
- dw UnownWord7
- dw UnownWord8
- dw UnownWord9
- dw UnownWord10
- dw UnownWord11
- dw UnownWord12
- dw UnownWord13
- dw UnownWord14
- dw UnownWord15
- dw UnownWord16
- dw UnownWord17
- dw UnownWord18
- dw UnownWord19
- dw UnownWord20
- dw UnownWord21
- dw UnownWord22
- dw UnownWord23
- dw UnownWord24
- dw UnownWord25
- dw UnownWord26
-; fba90
-
-unownword: macro
-x = 1
- rept STRLEN(\1)
- db STRSUB(\1, x, 1) - $40
-x = x + 1
- endr
- db -1
-endm
-
-
-UnownWord1: unownword "ANGRY"
-UnownWord2: unownword "BEAR"
-UnownWord3: unownword "CHASE"
-UnownWord4: unownword "DIRECT"
-UnownWord5: unownword "ENGAGE"
-UnownWord6: unownword "FIND"
-UnownWord7: unownword "GIVE"
-UnownWord8: unownword "HELP"
-UnownWord9: unownword "INCREASE"
-UnownWord10: unownword "JOIN"
-UnownWord11: unownword "KEEP"
-UnownWord12: unownword "LAUGH"
-UnownWord13: unownword "MAKE"
-UnownWord14: unownword "NUZZLE"
-UnownWord15: unownword "OBSERVE"
-UnownWord16: unownword "PERFORM"
-UnownWord17: unownword "QUICKEN"
-UnownWord18: unownword "REASSURE"
-UnownWord19: unownword "SEARCH"
-UnownWord20: unownword "TELL"
-UnownWord21: unownword "UNDO"
-UnownWord22: unownword "VANISH"
-UnownWord23: unownword "WANT"
-UnownWord24: unownword "XXXXX"
-UnownWord25: unownword "YIELD"
-UnownWord26: unownword "ZOOM"
-; fbb32
--- /dev/null
+++ b/engine/unused_correct_party.asm
@@ -1,0 +1,229 @@
+CorrectErrorsInPlayerParty: ; unreferenced
+ ld hl, PartyCount
+ ld a, [hl]
+ and a
+ ret z
+
+ cp PARTY_LENGTH + 1
+ jr c, .party_length_okay
+ ld a, PARTY_LENGTH
+ ld [hl], a
+.party_length_okay
+ inc hl
+
+ ld b, a
+ ld c, 0
+.loop1
+ ld a, [hl]
+ and a
+ jr z, .invalid_species
+ cp NUM_POKEMON + 1
+ jr z, .invalid_species
+ cp EGG + 1
+ jr c, .next_species
+
+.invalid_species
+ ld [hl], SMEARGLE
+ push hl
+ push bc
+ ld a, c
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld [hl], SMEARGLE
+ pop bc
+ pop hl
+
+.next_species
+ inc hl
+ inc c
+ dec b
+ jr nz, .loop1
+ ld [hl], $ff
+
+ ld hl, PartyMon1
+ ld a, [PartyCount]
+ ld d, a
+ ld e, 0
+.loop2
+ push de
+ push hl
+ ld b, h
+ ld c, l
+ ld a, [hl]
+ and a
+ jr z, .invalid_species_2
+ cp NUM_POKEMON + 1
+ jr c, .check_level
+
+.invalid_species_2
+ ld [hl], SMEARGLE
+ push de
+ ld d, 0
+ ld hl, PartySpecies
+ add hl, de
+ pop de
+ ld a, SMEARGLE
+ ld [hl], a
+
+.check_level
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .invalid_level
+ ld a, [hl]
+ cp MAX_LEVEL
+ jr c, .load_level
+ ld a, MAX_LEVEL
+.invalid_level
+ ld [hl], a
+.load_level
+ ld [CurPartyLevel], a
+
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, MON_STAT_EXP - 1
+ add hl, bc
+ ld b, $1
+ predef CalcPkmnStats
+ pop hl
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop de
+ inc e
+ dec d
+ jr nz, .loop2
+
+ ld de, PartyMonNicknames
+ ld a, [PartyCount]
+ ld b, a
+ ld c, 0
+.loop3
+ push bc
+ call .GetLengthOfStringWith6CharCap
+ push de
+ callba CheckStringForErrors
+ pop hl
+ pop bc
+ jr nc, .valid_nickname
+
+ push bc
+ push hl
+ ld hl, PartySpecies
+ push bc
+ ld b, 0
+ add hl, bc
+ pop bc
+ ld a, [hl]
+ cp EGG
+ ld hl, .TAMAGO
+ jr z, .got_nickname
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+.got_nickname
+ pop de
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ pop bc
+
+.valid_nickname
+ inc c
+ dec b
+ jr nz, .loop3
+
+ ld de, PartyMonOT
+ ld a, [PartyCount]
+ ld b, a
+ ld c, 0
+.loop4
+ push bc
+ call .GetLengthOfStringWith6CharCap
+ push de
+ callba CheckStringForErrors
+ pop hl
+ jr nc, .valid_ot_name
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+.valid_ot_name
+ pop bc
+ inc c
+ dec b
+ jr nz, .loop4
+
+ ld hl, PartyMon1Moves
+ ld a, [PartyCount]
+ ld b, a
+.loop5
+ push hl
+ ld c, NUM_MOVES
+ ld a, [hl]
+ and a
+ jr z, .invalid_move
+ cp NUM_ATTACKS + 1
+ jr c, .moves_loop
+.invalid_move
+ ld [hl], POUND
+
+.moves_loop
+ ld a, [hl]
+ and a
+ jr z, .fill_invalid_moves
+ cp NUM_ATTACKS + 1
+ jr c, .next_move
+
+.fill_invalid_moves
+ xor a
+ ld [hli], a
+ dec c
+ jr nz, .fill_invalid_moves
+ jr .next_pokemon
+
+.next_move
+ inc hl
+ dec c
+ jr nz, .moves_loop
+
+.next_pokemon
+ pop hl
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop5
+ ret
+; 13b6b
+
+.TAMAGO: ; 13b6b
+ db "タマゴ@@@"
+; 13b71
+
+.GetLengthOfStringWith6CharCap: ; 13b71
+ push de
+ ld c, 1
+ ld b, NAME_LENGTH_JAPANESE
+.search_loop
+ ld a, [de]
+ cp "@"
+ jr z, .done
+ inc de
+ inc c
+ dec b
+ jr nz, .search_loop
+ dec c
+ dec de
+ ld a, "@"
+ ld [de], a
+.done
+ pop de
+ ret
+; 13b87
--- /dev/null
+++ b/engine/unused_title.asm
@@ -1,0 +1,201 @@
+UnusedTitleScreen: ; 10c000
+
+ call ClearBGPalettes
+ call ClearTileMap
+ call DisableLCD
+
+; Turn BG Map update off
+ xor a
+ ld [hBGMapMode], a
+
+; Reset timing variables
+ ld hl, wJumptableIndex
+ ld [hli], a ; wJumptableIndex
+ ld [hli], a ; wIntroSceneFrameCounter
+ ld [hli], a ; wTitleScreenTimer
+ ld [hl], a ; wTitleScreenTimer + 1
+
+ ld hl, UnusedTitleBG_GFX
+ ld de, VTiles2
+ ld bc, VBGMap0 - VTiles2
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_GFX + $80 tiles
+ ld de, VTiles1
+ ld bc, VTiles2 - VTiles1
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_GFX
+ ld de, VTiles0
+ ld bc, VTiles1 - VTiles0
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_Tilemap
+ debgcoord 0, 0
+ ld bc, 32 * 32
+.copy
+ ld a, 0
+ ld [rVBK], a
+ ld a, [hli]
+ ld [de], a
+ ld a, 1
+ ld [rVBK], a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .copy
+
+ ld hl, UnusedTitleFG_OAM
+ ld de, Sprites
+ ld bc, $a0
+ call CopyBytes
+
+ call EnableLCD
+ ld a, [rLCDC]
+ set 1, a
+ set 2, a
+ ld [rLCDC], a
+
+ call DelayFrame
+
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, UnusedTitleBG_Palettes
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_Palettes
+ ld de, UnknOBPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_Palettes
+ ld de, BGPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_Palettes
+ ld de, OBPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, $1
+ ld [hCGBPalUpdate], a
+
+ ld de, MUSIC_TITLE
+ call PlayMusic
+
+ ret
+; 10c0b1
+
+UnusedTitleBG_GFX: ; 10c0b1
+INCBIN "gfx/title/old_bg.2bpp"
+; 10d0b1
+
+UnusedTitleBG_Tilemap: ; 10d0b1
+; 32x32 (tile, attributes)
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+; 10d8b1
+
+UnusedTitleBG_Palettes: ; 10d8b1
+INCLUDE "data/palettes/unused_title/bg.pal"
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 20, 04, 20
+ RGB 16, 08, 16
+ RGB 24, 00, 24
+
+rept 54
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+endr
+; 10dab1
+
+UnusedTitleFG_GFX: ; 10dab1
+INCBIN "gfx/title/old_fg.2bpp"
+; 10eab1
+
+UnusedTitleFG_Palettes: ; 10eab1
+INCLUDE "data/palettes/unused_title/ob.pal"
+; 10ecb1
+
+UnusedTitleFG_OAM: ; 10ecb1
+ db $18, $38, $00, $01, $18, $40, $02, $01, $18, $48, $04, $01, $18, $50, $06, $01
+ db $18, $58, $08, $01, $18, $60, $0a, $01, $18, $68, $0c, $01, $18, $70, $0e, $01
+
+ db $28, $38, $10, $00, $28, $40, $12, $00, $28, $48, $14, $00, $28, $50, $16, $00
+ db $28, $58, $18, $00, $28, $60, $1a, $00, $28, $68, $1c, $00, $28, $70, $1e, $00
+
+ db $38, $38, $20, $00, $38, $40, $22, $00, $38, $48, $24, $00, $38, $50, $26, $00
+ db $38, $58, $28, $00, $38, $60, $2a, $00, $38, $68, $2c, $00, $38, $70, $2e, $00
+
+ db $48, $38, $30, $02, $48, $40, $32, $02, $48, $48, $34, $02, $48, $50, $36, $02
+ db $48, $58, $38, $02, $48, $60, $3a, $02, $48, $68, $3c, $02, $48, $70, $3e, $02
+
+ db $58, $38, $40, $01, $58, $40, $42, $01, $58, $48, $44, $01, $58, $50, $46, $01
+ db $58, $58, $48, $01, $58, $60, $4a, $01, $58, $68, $4c, $01, $58, $70, $4e, $01
+; 10ed51
+
+
+Function10ed51: ; 10ed51
+ call _TitleScreen
+.loop
+ call JoyTextDelay
+ ld a, [hJoyLast]
+ ld b, a
+ and 1
+ jr nz, .done
+ call SuicuneFrameIterator
+ call DelayFrame
+ jr .loop
+.done
+ ret
+; 10ed67
--- a/event/buena.asm
+++ b/event/buena.asm
@@ -288,9 +288,15 @@
dba .prizepoints
; 8b129
+NUM_BUENA_PRIZES EQU 9 ; ((BuenaPrizeItemsEnd - BuenaPrizeItems) / 2)
+
.indices ; 8b129
- db 9
- db 1, 2, 3, 4, 5, 6, 7, 8, 9
+ db NUM_BUENA_PRIZES
+x = 1
+rept NUM_BUENA_PRIZES
+ db x
+x = x + 1
+endr
db -1
; 8b134
@@ -319,7 +325,7 @@
Buena_getprize: ; 8b154
dec a
- ld hl, .prizes
+ ld hl, BuenaPrizeItems
ld b, 0
ld c, a
add hl, bc
@@ -327,14 +333,4 @@
ret
; 8b15e
-.prizes ; 8b15e
- db ULTRA_BALL, 2
- db FULL_RESTORE, 2
- db NUGGET, 3
- db RARE_CANDY, 3
- db PROTEIN, 5
- db IRON, 5
- db CARBOS, 5
- db CALCIUM, 5
- db HP_UP, 5
-; 8b170
+INCLUDE "data/items/buena_prizes.asm"
--- /dev/null
+++ b/event/buena_menu.asm
@@ -1,0 +1,58 @@
+AskRememberPassword: ; 4ae12
+ call .DoMenu
+ ld a, $0
+ jr c, .okay
+ ld a, $1
+
+.okay
+ ld [ScriptVar], a
+ ret
+
+.DoMenu: ; 4ae1f
+ lb bc, 14, 7
+ push bc
+ ld hl, YesNoMenuDataHeader
+ call CopyMenuDataHeader
+ pop bc
+ ld a, b
+ ld [wMenuBorderLeftCoord], a
+ add $5
+ ld [wMenuBorderRightCoord], a
+ ld a, c
+ ld [wMenuBorderTopCoord], a
+ add $4
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ call VerticalMenu
+ push af
+ ld c, 15
+ call DelayFrames
+ call Buena_ExitMenu
+ pop af
+ jr c, .refused
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .refused
+ and a
+ ret
+
+.refused
+ ld a, $2
+ ld [wMenuCursorY], a
+ scf
+ ret
+
+Buena_ExitMenu: ; 4ae5e
+ ld a, [hOAMUpdate]
+ push af
+ call ExitMenu
+ call UpdateSprites
+ xor a
+ ld [hOAMUpdate], a
+ call DelayFrame
+ ld a, $1
+ ld [hOAMUpdate], a
+ call ApplyTilemap
+ pop af
+ ld [hOAMUpdate], a
+ ret
--- /dev/null
+++ b/event/bug_contest/caught_mon.asm
@@ -1,0 +1,38 @@
+BugContest_SetCaughtContestMon: ; e6ce
+ ld a, [wContestMon]
+ and a
+ jr z, .firstcatch
+ ld [wd265], a
+ callba DisplayAlreadyCaughtText
+ callba DisplayCaughtContestMonStats
+ lb bc, 14, 7
+ call PlaceYesNoBox
+ ret c
+
+.firstcatch
+ call .generatestats
+ ld a, [TempEnemyMonSpecies]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, .caughttext
+ call PrintText
+ ret
+
+.generatestats ; e6fd
+ ld a, [TempEnemyMonSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+ xor a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, wContestMon
+ call ByteFill
+ xor a
+ ld [MonType], a
+ ld hl, wContestMon
+ jp GeneratePartyMonStats
+
+.caughttext ; 0xe71d
+ ; Caught @ !
+ text_jump UnknownText_0x1c10c0
+ db "@"
--- /dev/null
+++ b/event/bug_contest/contest.asm
@@ -1,0 +1,43 @@
+Special_GiveParkBalls: ; 135db
+ xor a
+ ld [wContestMon], a
+ ld a, 20
+ ld [wParkBallsRemaining], a
+ callba StartBugContestTimer
+ ret
+
+BugCatchingContestBattleScript:: ; 0x135eb
+ writecode VAR_BATTLETYPE, BATTLETYPE_CONTEST
+ randomwildmon
+ startbattle
+ reloadmapafterbattle
+ copybytetovar wParkBallsRemaining
+ iffalse BugCatchingContestOutOfBallsScript
+ end
+
+BugCatchingContestOverScript:: ; 0x135f8
+ playsound SFX_ELEVATOR_END
+ opentext
+ writetext BugCatchingContestText_BeeepTimesUp
+ waitbutton
+ jump BugCatchingContestReturnToGateScript
+
+BugCatchingContestOutOfBallsScript: ; 0x13603
+ playsound SFX_ELEVATOR_END
+ opentext
+ writetext BugCatchingContestText_ContestIsOver
+ waitbutton
+
+BugCatchingContestReturnToGateScript: ; 0x1360b
+ closetext
+ jumpstd bugcontestresultswarp
+
+BugCatchingContestText_BeeepTimesUp: ; 0x1360f
+ ; ANNOUNCER: BEEEP! Time's up!
+ text_jump UnknownText_0x1bd2ca
+ db "@"
+
+BugCatchingContestText_ContestIsOver: ; 0x13614
+ ; ANNOUNCER: The Contest is over!
+ text_jump UnknownText_0x1bd2e7
+ db "@"
--- /dev/null
+++ b/event/bug_contest/contest_2.asm
@@ -1,0 +1,133 @@
+Special_SelectRandomBugContestContestants: ; 139a8
+; Select five random people to participate in the current contest.
+
+; First we have to make sure that any old data is cleared away.
+ ld c, 10 ; Number of people to choose from.
+ ld hl, BugCatchingContestantEventFlagTable
+.loop1
+ push bc
+ push hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, RESET_FLAG
+ call EventFlagAction
+ pop hl
+ inc hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .loop1
+
+; Now that that's out of the way, we can get on to the good stuff.
+ ld c, 5
+.loop2
+ push bc
+.next
+; Choose a flag at uniform random to be set.
+ call Random
+ cp 250
+ jr nc, .next
+ ld c, 25
+ call SimpleDivide
+ ld e, b
+ ld d, 0
+ ld hl, BugCatchingContestantEventFlagTable
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+; If we've already set it, it doesn't count.
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ pop de
+ ld a, c
+ and a
+ jr nz, .next
+; Set the flag. This will cause that sprite to not be visible in the contest.
+ ld b, SET_FLAG
+ call EventFlagAction
+ pop bc
+; Check if we're done. If so, return. Otherwise, choose the next victim.
+ dec c
+ jr nz, .loop2
+ ret
+; 139ed
+
+Special_CheckBugContestContestantFlag: ; 139ed
+; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
+
+; Bug: If a >= 10 when this is called, it will read beyond the table.
+
+ ld hl, BugCatchingContestantEventFlagTable
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ret
+; 139fe
+
+BugCatchingContestantEventFlagTable: ; 139fe
+ dw EVENT_BUG_CATCHING_CONTESTANT_1A
+ dw EVENT_BUG_CATCHING_CONTESTANT_2A
+ dw EVENT_BUG_CATCHING_CONTESTANT_3A
+ dw EVENT_BUG_CATCHING_CONTESTANT_4A
+ dw EVENT_BUG_CATCHING_CONTESTANT_5A
+ dw EVENT_BUG_CATCHING_CONTESTANT_6A
+ dw EVENT_BUG_CATCHING_CONTESTANT_7A
+ dw EVENT_BUG_CATCHING_CONTESTANT_8A
+ dw EVENT_BUG_CATCHING_CONTESTANT_9A
+ dw EVENT_BUG_CATCHING_CONTESTANT_10A
+; 13a12
+
+ContestDropOffMons: ; 13a12
+ ld hl, PartyMon1HP
+ ld a, [hli]
+ or [hl]
+ jr z, .fainted
+; Mask the rest of your party by setting the count to 1...
+ ld hl, PartyCount
+ ld a, 1
+ ld [hli], a
+ inc hl
+; ... backing up the second mon index somewhere...
+ ld a, [hl]
+ ld [wBugContestSecondPartySpecies], a
+; ... and replacing it with the terminator byte
+ ld [hl], $ff
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.fainted
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 13a31
+
+ContestReturnMons: ; 13a31
+; Restore the species of the second mon.
+ ld hl, PartySpecies + 1
+ ld a, [wBugContestSecondPartySpecies]
+ ld [hl], a
+; Restore the party count, which must be recomputed.
+ ld b, $1
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ inc b
+ jr .loop
+
+.done
+ ld a, b
+ ld [PartyCount], a
+ ret
+; 13a47
--- /dev/null
+++ b/event/bug_contest/display_stats.asm
@@ -1,0 +1,107 @@
+DisplayCaughtContestMonStats: ; cc000
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call LoadFontsBattleExtra
+
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+
+ hlcoord 0, 0
+ ld b, 4
+ ld c, 13
+ call TextBox
+
+ hlcoord 0, 6
+ ld b, 4
+ ld c, 13
+ call TextBox
+
+ hlcoord 2, 0
+ ld de, .Stock
+ call PlaceString
+
+ hlcoord 2, 6
+ ld de, .This
+ call PlaceString
+
+ hlcoord 5, 4
+ ld de, .Health
+ call PlaceString
+
+ hlcoord 5, 10
+ ld de, .Health
+ call PlaceString
+
+ ld a, [wContestMon]
+ ld [wd265], a
+ call GetPokemonName
+ ld de, StringBuffer1
+ hlcoord 1, 2
+ call PlaceString
+
+ ld h, b
+ ld l, c
+ ld a, [wContestMonLevel]
+ ld [TempMonLevel], a
+ call PrintLevel
+
+ ld de, EnemyMonNick
+ hlcoord 1, 8
+ call PlaceString
+
+ ld h, b
+ ld l, c
+ ld a, [EnemyMonLevel]
+ ld [TempMonLevel], a
+ call PrintLevel
+
+ hlcoord 11, 4
+ ld de, wContestMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+
+ hlcoord 11, 10
+ ld de, EnemyMonMaxHP
+ call PrintNum
+
+ ld hl, SwitchMonText
+ call PrintText
+
+ pop af
+ ld [Options], a
+
+ call WaitBGMap
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ call SetPalettes
+ ret
+
+.Health:
+ db "HEALTH@"
+.Stock:
+ db " STOCK ", $4a, " @"
+.This:
+ db " THIS ", $4a, " @"
+
+SwitchMonText: ; cc0c2
+ ; Switch #MON?
+ text_jump UnknownText_0x1c10cf
+ db "@"
+
+DisplayAlreadyCaughtText: ; cc0c7
+ call GetPokemonName
+ ld hl, .AlreadyCaughtText
+ jp PrintText
+
+.AlreadyCaughtText: ; 0xcc0d0
+ ; You already caught a @ .
+ text_jump UnknownText_0x1c10dd
+ db "@"
+
+Predef2F:
+Predef38:
+Predef39: ; cc0d5
+ ret
--- /dev/null
+++ b/event/bug_contest/judging.asm
@@ -1,0 +1,395 @@
+_BugContestJudging: ; 1369d
+ call ContestScore
+ callba TrainerRankings_BugContestScore
+ call BugContest_JudgeContestants
+ ld a, [wBugContestThirdPlacePersonID]
+ call LoadContestantName
+ ld a, [wBugContestThirdPlaceMon]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld hl, BugContest_ThirdPlaceText
+ call PrintText
+ ld a, [wBugContestSecondPlacePersonID]
+ call LoadContestantName
+ ld a, [wBugContestSecondPlaceMon]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld hl, BugContest_SecondPlaceText
+ call PrintText
+ ld a, [wBugContestFirstPlacePersonID]
+ call LoadContestantName
+ ld a, [wBugContestFirstPlaceMon]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld hl, BugContest_FirstPlaceText
+ call PrintText
+ jp BugContest_GetPlayersResult
+; 136eb
+
+BugContest_FirstPlaceText: ; 0x136eb
+ text_jump ContestJudging_FirstPlaceText
+ start_asm
+ ld de, SFX_1ST_PLACE
+ call PlaySFX
+ call WaitSFX
+ ld hl, BugContest_FirstPlaceScoreText
+ ret
+; 136fd
+
+BugContest_FirstPlaceScoreText: ; 0x136fd
+ ; The winning score was @ points!
+ text_jump ContestJudging_FirstPlaceScoreText
+ db "@"
+; 0x13702
+
+BugContest_SecondPlaceText: ; 0x13702
+ ; Placing second was @ , who caught a @ !@ @
+ text_jump ContestJudging_SecondPlaceText
+ start_asm
+ ld de, SFX_2ND_PLACE
+ call PlaySFX
+ call WaitSFX
+ ld hl, BugContest_SecondPlaceScoreText
+ ret
+; 13714
+
+BugContest_SecondPlaceScoreText: ; 0x13714
+ ; The score was @ points!
+ text_jump ContestJudging_SecondPlaceScoreText
+ db "@"
+; 0x13719
+
+BugContest_ThirdPlaceText: ; 0x13719
+ ; Placing third was @ , who caught a @ !@ @
+ text_jump ContestJudging_ThirdPlaceText
+ start_asm
+ ld de, SFX_3RD_PLACE
+ call PlaySFX
+ call WaitSFX
+ ld hl, BugContest_ThirdPlaceScoreText
+ ret
+; 1372b
+
+BugContest_ThirdPlaceScoreText: ; 0x1372b
+ ; The score was @ points!
+ text_jump ContestJudging_ThirdPlaceScoreText
+ db "@"
+; 0x13730
+
+LoadContestantName: ; 13730
+
+; If a = 0, get your name.
+ dec a
+ jr z, .player
+; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a.
+ ld c, a
+ ld b, 0
+ ld hl, BugContestantPointers
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+; Copy the Trainer Class to c.
+ ld a, [hli]
+ ld c, a
+; Save hl and bc for later.
+ push hl
+ push bc
+; Get the Trainer Class name and copy it into wBugContestWinnerName.
+ callab GetTrainerClassName
+ ld hl, StringBuffer1
+ ld de, wBugContestWinnerName
+ ld bc, TRAINER_CLASS_NAME_LENGTH
+ call CopyBytes
+ ld hl, wBugContestWinnerName
+; Delete the trailing terminator and replace it with a space.
+.next
+ ld a, [hli]
+ cp "@"
+ jr nz, .next
+ dec hl
+ ld [hl], " "
+ inc hl
+ ld d, h
+ ld e, l
+; Restore the Trainer Class ID and Trainer ID pointer. Save de for later.
+ pop bc
+ pop hl
+ push de
+; Get the name of the trainer with class c and ID b.
+ ld a, [hl]
+ ld b, a
+ callab GetTrainerName
+; Append the name to wBugContestWinnerName.
+ ld hl, StringBuffer1
+ pop de
+ ld bc, NAME_LENGTH - 1
+ jp CopyBytes
+
+.player
+ ld hl, PlayerName
+ ld de, wBugContestWinnerName
+ ld bc, NAME_LENGTH
+ jp CopyBytes
+; 13783
+
+
+INCLUDE "data/bug_contest_winners.asm"
+; 13807
+
+
+BugContest_GetPlayersResult: ; 13807
+ ld hl, wBugContestThirdPlacePersonID
+ ld de, -4
+ ld b, 3
+.loop
+ ld a, [hl]
+ cp 1 ; Player
+ jr z, .done
+ add hl, de
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+; 13819
+
+BugContest_JudgeContestants: ; 13819
+ call ClearContestResults
+ call ComputeAIContestantScores
+ ld hl, wBugContestTempPersonID
+ ld a, 1 ; Player
+ ld [hli], a
+ ld a, [wContestMon]
+ ld [hli], a
+ ld a, [hProduct]
+ ld [hli], a
+ ld a, [hProduct + 1]
+ ld [hl], a
+ call DetermineContestWinners
+ ret
+; 13833
+
+ClearContestResults: ; 13833
+ ld hl, wBugContestResults
+ ld b, wBugContestWinnersEnd - wBugContestResults
+ xor a
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+; 1383e
+
+DetermineContestWinners: ; 1383e
+ ld de, wBugContestTempScore
+ ld hl, wBugContestFirstPlaceScore
+ ld c, 2
+ call StringCmp
+ jr c, .not_first_place
+ ld hl, wBugContestSecondPlacePersonID
+ ld de, wBugContestThirdPlacePersonID
+ ld bc, 4
+ call CopyBytes
+ ld hl, wBugContestFirstPlacePersonID
+ ld de, wBugContestSecondPlacePersonID
+ ld bc, 4
+ call CopyBytes
+ ld hl, wBugContestFirstPlacePersonID
+ call CopyTempContestant
+ jr .done
+
+.not_first_place
+ ld de, wBugContestTempScore
+ ld hl, wBugContestSecondPlaceScore
+ ld c, 2
+ call StringCmp
+ jr c, .not_second_place
+ ld hl, wBugContestSecondPlacePersonID
+ ld de, wBugContestThirdPlacePersonID
+ ld bc, 4
+ call CopyBytes
+ ld hl, wBugContestSecondPlacePersonID
+ call CopyTempContestant
+ jr .done
+
+.not_second_place
+ ld de, wBugContestTempScore
+ ld hl, wBugContestThirdPlaceScore
+ ld c, 2
+ call StringCmp
+ jr c, .done
+ ld hl, wBugContestThirdPlacePersonID
+ call CopyTempContestant
+
+.done
+ ret
+; 138a0
+
+CopyTempContestant: ; 138a0
+; Could've just called CopyBytes.
+ ld de, wBugContestTempPersonID
+rept 3
+ ld a, [de]
+ inc de
+ ld [hli], a
+endr
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ret
+; 138b0
+
+ComputeAIContestantScores: ; 138b0
+ ld e, 0
+.loop
+ push de
+ call Special_CheckBugContestContestantFlag
+ pop de
+ jr nz, .done
+ ld a, e
+ inc a
+ inc a
+ ld [wBugContestTempPersonID], a
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, BugContestantPointers
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ inc hl
+.loop2
+ call Random
+ and 3
+ cp 3
+ jr z, .loop2
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld [wBugContestTempMon], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Random
+ and 7
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, h
+ ld [wBugContestTempScore], a
+ ld a, l
+ ld [wBugContestTempScore + 1], a
+ push de
+ call DetermineContestWinners
+ pop de
+
+.done
+ inc e
+ ld a, e
+ cp 10
+ jr nz, .loop
+ ret
+; 13900
+
+ContestScore: ; 13900
+; Determine the player's score in the Bug Catching Contest.
+
+ xor a
+ ld [hProduct], a
+ ld [hMultiplicand], a
+
+ ld a, [wContestMonSpecies] ; Species
+ and a
+ jr z, .done
+
+ ; Tally the following:
+
+ ; Max HP * 4
+ ld a, [wContestMonMaxHP + 1]
+ call .AddContestStat
+ ld a, [wContestMonMaxHP + 1]
+ call .AddContestStat
+ ld a, [wContestMonMaxHP + 1]
+ call .AddContestStat
+ ld a, [wContestMonMaxHP + 1]
+ call .AddContestStat
+
+ ; Stats
+ ld a, [wContestMonAttack + 1]
+ call .AddContestStat
+ ld a, [wContestMonDefense + 1]
+ call .AddContestStat
+ ld a, [wContestMonSpeed + 1]
+ call .AddContestStat
+ ld a, [wContestMonSpclAtk + 1]
+ call .AddContestStat
+ ld a, [wContestMonSpclDef + 1]
+ call .AddContestStat
+
+ ; DVs
+ ld a, [wContestMonDVs + 0]
+ ld b, a
+ and 2
+ add a
+ add a
+ ld c, a
+
+ swap b
+ ld a, b
+ and 2
+ add a
+ add c
+ ld d, a
+
+ ld a, [wContestMonDVs + 1]
+ ld b, a
+ and 2
+ ld c, a
+
+ swap b
+ ld a, b
+ and 2
+ srl a
+ add c
+ add c
+ add d
+ add d
+
+ call .AddContestStat
+
+ ; Remaining HP / 8
+ ld a, [wContestMonHP + 1]
+ srl a
+ srl a
+ srl a
+ call .AddContestStat
+
+ ; Whether it's holding an item
+ ld a, [wContestMonItem]
+ and a
+ jr z, .done
+
+ ld a, 1
+ call .AddContestStat
+
+.done
+ ret
+; 1397f
+
+.AddContestStat: ; 1397f
+ ld hl, hMultiplicand
+ add [hl]
+ ld [hl], a
+ ret nc
+ dec hl
+ inc [hl]
+ ret
+; 13988
--- a/event/bug_contest_2.asm
+++ /dev/null
@@ -1,133 +1,0 @@
-Special_SelectRandomBugContestContestants: ; 139a8
-; Select five random people to participate in the current contest.
-
-; First we have to make sure that any old data is cleared away.
- ld c, 10 ; Number of people to choose from.
- ld hl, BugCatchingContestantEventFlagTable
-.loop1
- push bc
- push hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, RESET_FLAG
- call EventFlagAction
- pop hl
- inc hl
- inc hl
- pop bc
- dec c
- jr nz, .loop1
-
-; Now that that's out of the way, we can get on to the good stuff.
- ld c, 5
-.loop2
- push bc
-.next
-; Choose a flag at uniform random to be set.
- call Random
- cp 250
- jr nc, .next
- ld c, 25
- call SimpleDivide
- ld e, b
- ld d, 0
- ld hl, BugCatchingContestantEventFlagTable
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- push de
-; If we've already set it, it doesn't count.
- ld b, CHECK_FLAG
- call EventFlagAction
- pop de
- ld a, c
- and a
- jr nz, .next
-; Set the flag. This will cause that sprite to not be visible in the contest.
- ld b, SET_FLAG
- call EventFlagAction
- pop bc
-; Check if we're done. If so, return. Otherwise, choose the next victim.
- dec c
- jr nz, .loop2
- ret
-; 139ed
-
-Special_CheckBugContestContestantFlag: ; 139ed
-; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
-
-; Bug: If a >= 10 when this is called, it will read beyond the table.
-
- ld hl, BugCatchingContestantEventFlagTable
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, CHECK_FLAG
- call EventFlagAction
- ret
-; 139fe
-
-BugCatchingContestantEventFlagTable: ; 139fe
- dw EVENT_BUG_CATCHING_CONTESTANT_1A
- dw EVENT_BUG_CATCHING_CONTESTANT_2A
- dw EVENT_BUG_CATCHING_CONTESTANT_3A
- dw EVENT_BUG_CATCHING_CONTESTANT_4A
- dw EVENT_BUG_CATCHING_CONTESTANT_5A
- dw EVENT_BUG_CATCHING_CONTESTANT_6A
- dw EVENT_BUG_CATCHING_CONTESTANT_7A
- dw EVENT_BUG_CATCHING_CONTESTANT_8A
- dw EVENT_BUG_CATCHING_CONTESTANT_9A
- dw EVENT_BUG_CATCHING_CONTESTANT_10A
-; 13a12
-
-ContestDropOffMons: ; 13a12
- ld hl, PartyMon1HP
- ld a, [hli]
- or [hl]
- jr z, .fainted
-; Mask the rest of your party by setting the count to 1...
- ld hl, PartyCount
- ld a, 1
- ld [hli], a
- inc hl
-; ... backing up the second mon index somewhere...
- ld a, [hl]
- ld [wBugContestSecondPartySpecies], a
-; ... and replacing it with the terminator byte
- ld [hl], $ff
- xor a
- ld [ScriptVar], a
- ret
-
-.fainted
- ld a, $1
- ld [ScriptVar], a
- ret
-; 13a31
-
-ContestReturnMons: ; 13a31
-; Restore the species of the second mon.
- ld hl, PartySpecies + 1
- ld a, [wBugContestSecondPartySpecies]
- ld [hl], a
-; Restore the party count, which must be recomputed.
- ld b, $1
-.loop
- ld a, [hli]
- cp -1
- jr z, .done
- inc b
- jr .loop
-
-.done
- ld a, b
- ld [PartyCount], a
- ret
-; 13a47
--- a/event/bug_contest_judging.asm
+++ /dev/null
@@ -1,395 +1,0 @@
-_BugContestJudging: ; 1369d
- call ContestScore
- callba TrainerRankings_BugContestScore
- call BugContest_JudgeContestants
- ld a, [wBugContestThirdPlacePersonID]
- call LoadContestantName
- ld a, [wBugContestThirdPlaceMon]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, BugContest_ThirdPlaceText
- call PrintText
- ld a, [wBugContestSecondPlacePersonID]
- call LoadContestantName
- ld a, [wBugContestSecondPlaceMon]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, BugContest_SecondPlaceText
- call PrintText
- ld a, [wBugContestFirstPlacePersonID]
- call LoadContestantName
- ld a, [wBugContestFirstPlaceMon]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, BugContest_FirstPlaceText
- call PrintText
- jp BugContest_GetPlayersResult
-; 136eb
-
-BugContest_FirstPlaceText: ; 0x136eb
- text_jump ContestJudging_FirstPlaceText
- start_asm
- ld de, SFX_1ST_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_FirstPlaceScoreText
- ret
-; 136fd
-
-BugContest_FirstPlaceScoreText: ; 0x136fd
- ; The winning score was @ points!
- text_jump ContestJudging_FirstPlaceScoreText
- db "@"
-; 0x13702
-
-BugContest_SecondPlaceText: ; 0x13702
- ; Placing second was @ , who caught a @ !@ @
- text_jump ContestJudging_SecondPlaceText
- start_asm
- ld de, SFX_2ND_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_SecondPlaceScoreText
- ret
-; 13714
-
-BugContest_SecondPlaceScoreText: ; 0x13714
- ; The score was @ points!
- text_jump ContestJudging_SecondPlaceScoreText
- db "@"
-; 0x13719
-
-BugContest_ThirdPlaceText: ; 0x13719
- ; Placing third was @ , who caught a @ !@ @
- text_jump ContestJudging_ThirdPlaceText
- start_asm
- ld de, SFX_3RD_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_ThirdPlaceScoreText
- ret
-; 1372b
-
-BugContest_ThirdPlaceScoreText: ; 0x1372b
- ; The score was @ points!
- text_jump ContestJudging_ThirdPlaceScoreText
- db "@"
-; 0x13730
-
-LoadContestantName: ; 13730
-
-; If a = 0, get your name.
- dec a
- jr z, .player
-; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a.
- ld c, a
- ld b, 0
- ld hl, BugContestantPointers
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-; Copy the Trainer Class to c.
- ld a, [hli]
- ld c, a
-; Save hl and bc for later.
- push hl
- push bc
-; Get the Trainer Class name and copy it into wBugContestWinnerName.
- callab GetTrainerClassName
- ld hl, StringBuffer1
- ld de, wBugContestWinnerName
- ld bc, TRAINER_CLASS_NAME_LENGTH
- call CopyBytes
- ld hl, wBugContestWinnerName
-; Delete the trailing terminator and replace it with a space.
-.next
- ld a, [hli]
- cp "@"
- jr nz, .next
- dec hl
- ld [hl], " "
- inc hl
- ld d, h
- ld e, l
-; Restore the Trainer Class ID and Trainer ID pointer. Save de for later.
- pop bc
- pop hl
- push de
-; Get the name of the trainer with class c and ID b.
- ld a, [hl]
- ld b, a
- callab GetTrainerName
-; Append the name to wBugContestWinnerName.
- ld hl, StringBuffer1
- pop de
- ld bc, NAME_LENGTH - 1
- jp CopyBytes
-
-.player
- ld hl, PlayerName
- ld de, wBugContestWinnerName
- ld bc, NAME_LENGTH
- jp CopyBytes
-; 13783
-
-
-INCLUDE "data/bug_contest_winners.asm"
-; 13807
-
-
-BugContest_GetPlayersResult: ; 13807
- ld hl, wBugContestThirdPlacePersonID
- ld de, -4
- ld b, 3
-.loop
- ld a, [hl]
- cp 1 ; Player
- jr z, .done
- add hl, de
- dec b
- jr nz, .loop
-
-.done
- ret
-; 13819
-
-BugContest_JudgeContestants: ; 13819
- call ClearContestResults
- call ComputeAIContestantScores
- ld hl, wBugContestTempPersonID
- ld a, 1 ; Player
- ld [hli], a
- ld a, [wContestMon]
- ld [hli], a
- ld a, [hProduct]
- ld [hli], a
- ld a, [hProduct + 1]
- ld [hl], a
- call DetermineContestWinners
- ret
-; 13833
-
-ClearContestResults: ; 13833
- ld hl, wBugContestResults
- ld b, wBugContestWinnersEnd - wBugContestResults
- xor a
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
- ret
-; 1383e
-
-DetermineContestWinners: ; 1383e
- ld de, wBugContestTempScore
- ld hl, wBugContestFirstPlaceScore
- ld c, 2
- call StringCmp
- jr c, .not_first_place
- ld hl, wBugContestSecondPlacePersonID
- ld de, wBugContestThirdPlacePersonID
- ld bc, 4
- call CopyBytes
- ld hl, wBugContestFirstPlacePersonID
- ld de, wBugContestSecondPlacePersonID
- ld bc, 4
- call CopyBytes
- ld hl, wBugContestFirstPlacePersonID
- call CopyTempContestant
- jr .done
-
-.not_first_place
- ld de, wBugContestTempScore
- ld hl, wBugContestSecondPlaceScore
- ld c, 2
- call StringCmp
- jr c, .not_second_place
- ld hl, wBugContestSecondPlacePersonID
- ld de, wBugContestThirdPlacePersonID
- ld bc, 4
- call CopyBytes
- ld hl, wBugContestSecondPlacePersonID
- call CopyTempContestant
- jr .done
-
-.not_second_place
- ld de, wBugContestTempScore
- ld hl, wBugContestThirdPlaceScore
- ld c, 2
- call StringCmp
- jr c, .done
- ld hl, wBugContestThirdPlacePersonID
- call CopyTempContestant
-
-.done
- ret
-; 138a0
-
-CopyTempContestant: ; 138a0
-; Could've just called CopyBytes.
- ld de, wBugContestTempPersonID
-rept 3
- ld a, [de]
- inc de
- ld [hli], a
-endr
- ld a, [de]
- inc de
- ld [hl], a
- ret
-; 138b0
-
-ComputeAIContestantScores: ; 138b0
- ld e, 0
-.loop
- push de
- call Special_CheckBugContestContestantFlag
- pop de
- jr nz, .done
- ld a, e
- inc a
- inc a
- ld [wBugContestTempPersonID], a
- dec a
- ld c, a
- ld b, 0
- ld hl, BugContestantPointers
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- inc hl
-.loop2
- call Random
- and 3
- cp 3
- jr z, .loop2
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld [wBugContestTempMon], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Random
- and 7
- ld c, a
- ld b, 0
- add hl, bc
- ld a, h
- ld [wBugContestTempScore], a
- ld a, l
- ld [wBugContestTempScore + 1], a
- push de
- call DetermineContestWinners
- pop de
-
-.done
- inc e
- ld a, e
- cp 10
- jr nz, .loop
- ret
-; 13900
-
-ContestScore: ; 13900
-; Determine the player's score in the Bug Catching Contest.
-
- xor a
- ld [hProduct], a
- ld [hMultiplicand], a
-
- ld a, [wContestMonSpecies] ; Species
- and a
- jr z, .done
-
- ; Tally the following:
-
- ; Max HP * 4
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
-
- ; Stats
- ld a, [wContestMonAttack + 1]
- call .AddContestStat
- ld a, [wContestMonDefense + 1]
- call .AddContestStat
- ld a, [wContestMonSpeed + 1]
- call .AddContestStat
- ld a, [wContestMonSpclAtk + 1]
- call .AddContestStat
- ld a, [wContestMonSpclDef + 1]
- call .AddContestStat
-
- ; DVs
- ld a, [wContestMonDVs + 0]
- ld b, a
- and 2
- add a
- add a
- ld c, a
-
- swap b
- ld a, b
- and 2
- add a
- add c
- ld d, a
-
- ld a, [wContestMonDVs + 1]
- ld b, a
- and 2
- ld c, a
-
- swap b
- ld a, b
- and 2
- srl a
- add c
- add c
- add d
- add d
-
- call .AddContestStat
-
- ; Remaining HP / 8
- ld a, [wContestMonHP + 1]
- srl a
- srl a
- srl a
- call .AddContestStat
-
- ; Whether it's holding an item
- ld a, [wContestMonItem]
- and a
- jr z, .done
-
- ld a, 1
- call .AddContestStat
-
-.done
- ret
-; 1397f
-
-.AddContestStat: ; 1397f
- ld hl, hMultiplicand
- add [hl]
- ld [hl], a
- ret nc
- dec hl
- inc [hl]
- ret
-; 13988
--- /dev/null
+++ b/event/catch_tutorial.asm
@@ -1,0 +1,81 @@
+CatchTutorial:: ; 4e554
+ ld a, [BattleType]
+ dec a
+ ld c, a
+ ld hl, .dw
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.dw ; 4e564 (13:6564)
+ dw .DudeTutorial
+ dw .DudeTutorial
+ dw .DudeTutorial
+
+.DudeTutorial: ; 4e56a (13:656a)
+; Back up your name to your Mom's name.
+ ld hl, PlayerName
+ ld de, MomsName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+; Copy Dude's name to your name
+ ld hl, .Dude
+ ld de, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+
+ call .LoadDudeData
+
+ xor a
+ ld [hJoyDown], a
+ ld [hJoyPressed], a
+ ld a, [Options]
+ push af
+ and $f8
+ add $3
+ ld [Options], a
+ ld hl, .AutoInput
+ ld a, BANK(.AutoInput)
+ call StartAutoInput
+ callab StartBattle
+ call StopAutoInput
+ pop af
+
+ ld [Options], a
+ ld hl, MomsName
+ ld de, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+
+.LoadDudeData: ; 4e5b7 (13:65b7)
+ ld hl, wDudeNumItems
+ ld [hl], 1
+ inc hl
+ ld [hl], POTION
+ inc hl
+ ld [hl], 1
+ inc hl
+ ld [hl], -1
+ ld hl, wDudeNumKeyItems
+ ld [hl], 0
+ inc hl
+ ld [hl], -1
+ ld hl, wDudeNumBalls
+ ld a, 1
+ ld [hli], a
+ ld a, POKE_BALL ; 5
+ ld [hli], a
+ ld [hli], a
+ ld [hl], -1
+ ret
+
+.Dude: ; 4e5da
+ db "DUDE@"
+
+.AutoInput: ; 4e5df
+ db NO_INPUT, $ff ; end
--- /dev/null
+++ b/event/catch_tutorial_input.asm
@@ -1,0 +1,43 @@
+_DudeAutoInput_A:: ; 1de28a
+ ld hl, DudeAutoInput_A
+ jr _DudeAutoInput
+
+_DudeAutoInput_RightA: ; 1de28f
+ ld hl, DudeAutoInput_RightA
+ jr _DudeAutoInput
+
+_DudeAutoInput_DownA: ; 1de294
+ ld hl, DudeAutoInput_DownA
+ jr _DudeAutoInput
+
+_DudeAutoInput: ; 1de299
+ ld a, BANK(DudeAutoInputs)
+ call StartAutoInput
+ ret
+
+DudeAutoInputs:
+
+DudeAutoInput_A: ; 1de29f
+ db NO_INPUT, $50
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
+
+DudeAutoInput_RightA: ; 1de2a5
+ db NO_INPUT, $08
+ db D_RIGHT, $00
+ db NO_INPUT, $08
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
+
+DudeAutoInput_DownA: ; 1de2af
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db D_DOWN, $00
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
--- a/event/celebi.asm
+++ b/event/celebi.asm
@@ -124,12 +124,13 @@
; 49962
SpecialCelebiLeafGFX: ; 49962
-INCBIN "gfx/special/celebi/leaf.2bpp"
+INCBIN "gfx/overworld/cut_grass.2bpp"
+
SpecialCelebiGFX: ; 499a2
-INCBIN "gfx/special/celebi/1.2bpp"
-INCBIN "gfx/special/celebi/2.2bpp"
-INCBIN "gfx/special/celebi/3.2bpp"
-INCBIN "gfx/special/celebi/4.2bpp"
+INCBIN "gfx/overworld/celebi/1.2bpp"
+INCBIN "gfx/overworld/celebi/2.2bpp"
+INCBIN "gfx/overworld/celebi/3.2bpp"
+INCBIN "gfx/overworld/celebi/4.2bpp"
UpdateCelebiPosition: ; 49aa2 (12:5aa2)
--- /dev/null
+++ b/event/heal_machine_anim.asm
@@ -1,0 +1,265 @@
+HealMachineAnim: ; 12324
+ ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon.
+ ld a, [PartyCount]
+ and a
+ ret z
+ ; The location of the healing machine relative to the player is stored in ScriptVar.
+ ; 0: Up and left (Pokemon Center)
+ ; 1: Left (Elm's Lab)
+ ; 2: Up (Hall of Fame)
+ ld a, [ScriptVar]
+ ld [Buffer1], a
+ ld a, [rOBP1]
+ ld [Buffer2], a
+ call .DoJumptableFunctions
+ ld a, [Buffer2]
+ call DmgToCgbObjPal1
+ ret
+; 1233e
+
+.DoJumptableFunctions: ; 1233e
+ xor a
+ ld [Buffer3], a
+.jumpable_loop
+ ld a, [Buffer1]
+ ld e, a
+ ld d, 0
+ ld hl, .Pointers
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [Buffer3]
+ ld e, a
+ inc a
+ ld [Buffer3], a
+ add hl, de
+ ld a, [hl]
+ cp 5
+ jr z, .finish
+ ld hl, .Jumptable
+ rst JumpTable
+ jr .jumpable_loop
+
+.finish
+ ret
+; 12365
+
+.Pointers: ; 12365
+ dw .Pokecenter
+ dw .ElmLab
+ dw .HallOfFame
+; 1236b
+
+.Pokecenter: ; 1236b
+ db 0, 1, 3, 5
+.ElmLab: ; 1236f
+ db 0, 1, 3, 5
+.HallOfFame: ; 12373
+ db 0, 2, 4, 5
+; 12377
+
+.Jumptable: ; 12377
+ dw .LoadGFX
+ dw .PC_LoadBallsOntoMachine
+ dw .HOF_LoadBallsOntoMachine
+ dw .PlayHealMusic
+ dw .HOF_PlaySFX
+ dw .dummy_5 ; never encountered
+; 12383
+
+.LoadGFX: ; 12383
+ call .LoadPalettes
+ ld de, .HealMachineGFX
+ ld hl, VTiles0 tile $7c
+ lb bc, BANK(.HealMachineGFX), $2
+ call Request2bpp
+ ret
+; 12393
+
+.PC_LoadBallsOntoMachine: ; 12393
+ ld hl, Sprites + $80
+ ld de, .PC_ElmsLab_OAM
+ call .PlaceHealingMachineTile
+ call .PlaceHealingMachineTile
+ jr .LoadBallsOntoMachine
+
+.HOF_LoadBallsOntoMachine: ; 123a1
+ ld hl, Sprites + $80
+ ld de, .HOF_OAM
+
+.LoadBallsOntoMachine: ; 123a7
+ ld a, [PartyCount]
+ ld b, a
+.party_loop
+ call .PlaceHealingMachineTile
+ push de
+ ld de, SFX_SECOND_PART_OF_ITEMFINDER
+ call PlaySFX
+ pop de
+ ld c, 30
+ call DelayFrames
+ dec b
+ jr nz, .party_loop
+ ret
+; 123bf
+
+.PlayHealMusic: ; 123bf
+ ld de, MUSIC_HEAL
+ call PlayMusic
+ jp .FlashPalettes8Times
+; 123c8
+
+.HOF_PlaySFX: ; 123c8
+ ld de, SFX_GAME_FREAK_LOGO_GS
+ call PlaySFX
+ call .FlashPalettes8Times
+ call WaitSFX
+ ld de, SFX_BOOT_PC
+ call PlaySFX
+ ret
+; 123db
+
+.dummy_5 ; 123db
+ ret
+; 123dc
+
+.PC_ElmsLab_OAM: ; 123dc
+ dsprite 4, 0, 4, 2, $7c, $16
+ dsprite 4, 0, 4, 6, $7c, $16
+ dsprite 4, 6, 4, 0, $7d, $16
+ dsprite 4, 6, 5, 0, $7d, $36 ; xflip
+ dsprite 5, 3, 4, 0, $7d, $16
+ dsprite 5, 3, 5, 0, $7d, $36 ; xflip
+ dsprite 6, 0, 4, 0, $7d, $16
+ dsprite 6, 0, 5, 0, $7d, $36 ; xflip
+; 123fc
+
+.HealMachineGFX: ; 123fc
+INCBIN "gfx/overworld/heal_machine.2bpp"
+; 1241c
+
+.HOF_OAM: ; 1241c
+ dsprite 7, 4, 10, 1, $7d, $16
+ dsprite 7, 4, 10, 6, $7d, $16
+ dsprite 7, 3, 9, 5, $7d, $16
+ dsprite 7, 3, 11, 2, $7d, $16
+ dsprite 7, 1, 9, 1, $7d, $16
+ dsprite 7, 1, 11, 5, $7d, $16
+; 12434
+
+.LoadPalettes: ; 12434
+ call IsCGB
+ jr nz, .cgb
+ ld a, %11100000
+ ld [rOBP1], a
+ ret
+
+.cgb
+ ld hl, .palettes
+ ld de, OBPals + 8 * 6
+ ld bc, 8
+ ld a, $5
+ call FarCopyWRAM
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 12451
+
+.palettes ; 12451
+ RGB 31, 31, 31
+ RGB 31, 19, 10
+ RGB 31, 07, 01
+ RGB 00, 00, 00
+; 12459
+
+.FlashPalettes8Times: ; 12459
+ ld c, $8
+.palette_loop
+ push bc
+ call .FlashPalettes
+ ld c, 10
+ call DelayFrames
+ pop bc
+ dec c
+ jr nz, .palette_loop
+ ret
+; 12469
+
+.FlashPalettes: ; 12469
+ call IsCGB
+ jr nz, .go
+ ld a, [rOBP1]
+ xor %00101000
+ ld [rOBP1], a
+ ret
+
+.go
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, OBPals + 8 * 6
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ ld c, $3
+.palette_loop_2
+ ld a, [hli]
+ ld e, a
+ ld a, [hld]
+ ld d, a
+ dec hl
+ ld a, d
+ ld [hld], a
+ ld a, e
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ dec c
+ jr nz, .palette_loop_2
+ pop de
+ dec hl
+ ld a, d
+ ld [hld], a
+ ld a, e
+ ld [hl], a
+
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 124a3
+
+.PlaceHealingMachineTile: ; 124a3
+ push bc
+ ld a, [Buffer1]
+ bcpixel 2, 4
+ cp $1 ; ElmsLab
+ jr z, .okay
+ bcpixel 0, 0
+
+.okay
+ ld a, [de]
+ add c
+ inc de
+ ld [hli], a
+ ld a, [de]
+ add b
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ pop bc
+ ret
+; 124c1
--- a/event/itemball.asm
+++ /dev/null
@@ -1,54 +1,0 @@
-FindItemInBallScript:: ; 0x122ce
- callasm .TryReceiveItem
- iffalse .no_room
- disappear LAST_TALKED
- opentext
- writetext .text_found
- playsound SFX_ITEM
- pause 60
- itemnotify
- closetext
- end
-; 0x122e3
-
-.no_room ; 0x122e3
- opentext
- writetext .text_found
- waitbutton
- writetext .text_bag_full
- waitbutton
- closetext
- end
-; 0x122ee
-
-.text_found ; 0x122ee
- ; found @ !
- text_jump UnknownText_0x1c0a1c
- db "@"
-; 0x122f3
-
-.text_bag_full ; 0x122f3
- ; But can't carry any more items.
- text_jump UnknownText_0x1c0a2c
- db "@"
-; 0x122f8
-
-.TryReceiveItem: ; 122f8
- xor a
- ld [ScriptVar], a
- ld a, [EngineBuffer1]
- ld [wNamedObjectIndexBuffer], a
- call GetItemName
- ld hl, StringBuffer3
- call CopyName2
- ld a, [EngineBuffer1]
- ld [CurItem], a
- ld a, [CurFruit]
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- call ReceiveItem
- ret nc
- ld a, $1
- ld [ScriptVar], a
- ret
-; 12324
--- /dev/null
+++ b/event/lucky_number.asm
@@ -1,0 +1,226 @@
+Special_CheckForLuckyNumberWinners: ; 4d87a
+ xor a
+ ld [ScriptVar], a
+ ld [wFoundMatchingIDInParty], a
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld d, a
+ ld hl, PartyMon1ID
+ ld bc, PartySpecies
+.PartyLoop:
+ ld a, [bc]
+ inc bc
+ cp EGG
+ call nz, .CompareLuckyNumberToMonID
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .PartyLoop
+ ld a, BANK(sBox)
+ call GetSRAMBank
+ ld a, [sBoxCount]
+ and a
+ jr z, .SkipOpenBox
+ ld d, a
+ ld hl, sBoxMon1ID
+ ld bc, sBoxSpecies
+.OpenBoxLoop:
+ ld a, [bc]
+ inc bc
+ cp EGG
+ jr z, .SkipOpenBoxMon
+ call .CompareLuckyNumberToMonID
+ jr nc, .SkipOpenBoxMon
+ ld a, 1
+ ld [wFoundMatchingIDInParty], a
+
+.SkipOpenBoxMon:
+ push bc
+ ld bc, BOXMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .OpenBoxLoop
+
+.SkipOpenBox:
+ call CloseSRAM
+ ld c, $0
+.BoxesLoop:
+ ld a, [wCurBox]
+ and $f
+ cp c
+ jr z, .SkipBox
+ ld hl, .BoxBankAddresses
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ call GetSRAMBank
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a ; hl now contains the address of the loaded box in SRAM
+ ld a, [hl]
+ and a
+ jr z, .SkipBox ; no mons in this box
+ push bc
+ ld b, h
+ ld c, l
+ inc bc
+ ld de, sBoxMon1ID - sBox
+ add hl, de
+ ld d, a
+.BoxNLoop:
+ ld a, [bc]
+ inc bc
+ cp EGG
+ jr z, .SkipBoxMon
+
+ call .CompareLuckyNumberToMonID ; sets ScriptVar and CurPartySpecies appropriately
+ jr nc, .SkipBoxMon
+ ld a, 1
+ ld [wFoundMatchingIDInParty], a
+
+.SkipBoxMon:
+ push bc
+ ld bc, BOXMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .BoxNLoop
+ pop bc
+
+.SkipBox:
+ inc c
+ ld a, c
+ cp NUM_BOXES
+ jr c, .BoxesLoop
+
+ call CloseSRAM
+ ld a, [ScriptVar]
+ and a
+ ret z ; found nothing
+ callba TrainerRankings_LuckyNumberShow
+ ld a, [wFoundMatchingIDInParty]
+ and a
+ push af
+ ld a, [CurPartySpecies]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld hl, .FoundPartymonText
+ pop af
+ jr z, .print
+ ld hl, .FoundBoxmonText
+
+ jp PrintText
+
+.CompareLuckyNumberToMonID: ; 4d939
+ push bc
+ push de
+ push hl
+ ld d, h
+ ld e, l
+ ld hl, Buffer1
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ld hl, LuckyNumberDigit1Buffer
+ ld de, wLuckyIDNumber
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ld b, 5
+ ld c, 0
+ ld hl, LuckyNumberDigit5Buffer
+ ld de, Buffer5
+.loop
+ ld a, [de]
+ cp [hl]
+ jr nz, .done
+ dec de
+ dec hl
+ inc c
+ dec b
+ jr nz, .loop
+
+.done
+ pop hl
+ push hl
+ ld de, -6
+ add hl, de
+ ld a, [hl]
+ pop hl
+ pop de
+ push af
+ ld a, c
+ ld b, 1
+ cp 5
+ jr z, .okay
+ ld b, 2
+ cp 3
+ jr nc, .okay
+ ld b, 3
+ cp 2
+ jr nz, .nomatch
+
+.okay
+ inc b
+ ld a, [ScriptVar]
+ and a
+ jr z, .bettermatch
+ cp b
+ jr c, .nomatch
+
+.bettermatch
+ dec b
+ ld a, b
+ ld [ScriptVar], a
+ pop bc
+ ld a, b
+ ld [CurPartySpecies], a
+ pop bc
+ scf
+ ret
+
+.nomatch
+ pop bc
+ pop bc
+ and a
+ ret
+
+.BoxBankAddresses: ; 4d99f
+ dba sBox1
+ dba sBox2
+ dba sBox3
+ dba sBox4
+ dba sBox5
+ dba sBox6
+ dba sBox7
+ dba sBox8
+ dba sBox9
+ dba sBox10
+ dba sBox11
+ dba sBox12
+ dba sBox13
+ dba sBox14
+
+.FoundPartymonText: ; 0x4d9c9
+ ; Congratulations! We have a match with the ID number of @ in your party.
+ text_jump UnknownText_0x1c1261
+ db "@"
+
+.FoundBoxmonText: ; 0x4d9ce
+ ; Congratulations! We have a match with the ID number of @ in your PC BOX.
+ text_jump UnknownText_0x1c12ae
+ db "@"
+
+Special_PrintTodaysLuckyNumber: ; 4d9d3
+ ld hl, StringBuffer3
+ ld de, wLuckyIDNumber
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ld a, "@"
+ ld [StringBuffer3 + 5], a
+ ret
--- /dev/null
+++ b/event/misc_scripts.asm
@@ -1,0 +1,62 @@
+Script_AbortBugContest: ; 0x122c1
+ checkflag ENGINE_BUG_CONTEST_TIMER
+ iffalse .finish
+ setflag ENGINE_DAILY_BUG_CONTEST
+ special ContestReturnMons
+.finish
+ end
+
+FindItemInBallScript:: ; 0x122ce
+ callasm .TryReceiveItem
+ iffalse .no_room
+ disappear LAST_TALKED
+ opentext
+ writetext .text_found
+ playsound SFX_ITEM
+ pause 60
+ itemnotify
+ closetext
+ end
+; 0x122e3
+
+.no_room ; 0x122e3
+ opentext
+ writetext .text_found
+ waitbutton
+ writetext .text_bag_full
+ waitbutton
+ closetext
+ end
+; 0x122ee
+
+.text_found ; 0x122ee
+ ; found @ !
+ text_jump UnknownText_0x1c0a1c
+ db "@"
+; 0x122f3
+
+.text_bag_full ; 0x122f3
+ ; But can't carry any more items.
+ text_jump UnknownText_0x1c0a2c
+ db "@"
+; 0x122f8
+
+.TryReceiveItem: ; 122f8
+ xor a
+ ld [ScriptVar], a
+ ld a, [EngineBuffer1]
+ ld [wNamedObjectIndexBuffer], a
+ call GetItemName
+ ld hl, StringBuffer3
+ call CopyName2
+ ld a, [EngineBuffer1]
+ ld [CurItem], a
+ ld a, [CurFruit]
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, NumItems
+ call ReceiveItem
+ ret nc
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 12324
--- /dev/null
+++ b/event/misc_scripts_2.asm
@@ -1,0 +1,51 @@
+RepelWoreOffScript:: ; 0x13619
+ opentext
+ writetext .text
+ waitbutton
+ closetext
+ end
+
+.text ; 0x13620
+ ; REPEL's effect wore off.
+ text_jump UnknownText_0x1bd308
+ db "@"
+
+HiddenItemScript:: ; 0x13625
+ opentext
+ copybytetovar EngineBuffer3
+ itemtotext 0, 0
+ writetext .found_text
+ giveitem ITEM_FROM_MEM
+ iffalse .bag_full
+ callasm SetMemEvent
+ specialsound
+ itemnotify
+ jump .finish
+
+.bag_full ; 0x1363e
+ buttonsound
+ writetext .no_room_text
+ waitbutton
+
+.finish ; 13643
+ closetext
+ end
+
+.found_text ; 0x13645
+ ; found @ !
+ text_jump UnknownText_0x1bd321
+ db "@"
+
+.no_room_text ; 0x1364a
+ ; But has no space left…
+ text_jump UnknownText_0x1bd331
+ db "@"
+
+SetMemEvent: ; 1364f
+ ld hl, EngineBuffer1
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ld b, SET_FLAG
+ call EventFlagAction
+ ret
--- a/event/mom_phone.asm
+++ b/event/mom_phone.asm
@@ -1,3 +1,6 @@
+NUM_MOM_ITEMS_1 EQUS "((MomItems_1End - MomItems_1) / 8)"
+NUM_MOM_ITEMS_2 EQUS "((MomItems_2End - MomItems_2) / 8)"
+
const_value = 1
const MOM_ITEM
const MOM_DOLL
@@ -57,7 +60,7 @@
CheckBalance_MomItem2: ; fd044
ld a, [wWhichMomItem]
- cp 10
+ cp NUM_MOM_ITEMS_2
jr nc, .nope
call GetItemFromMom
ld a, [hli]
@@ -100,7 +103,7 @@
.exact
call .AddMoney
- ld a, 5
+ ld a, NUM_MOM_ITEMS_1
call RandomRange
inc a
ld [wWhichMomItemSet], a
@@ -195,7 +198,7 @@
.zero
ld a, [wWhichMomItem]
- cp 10 ; length of MomItems_2
+ cp NUM_MOM_ITEMS_2
jr c, .ok
xor a
@@ -212,7 +215,7 @@
ret
; fd136
-INCLUDE "data/mom_phone_items.asm"
+INCLUDE "data/items/mom_phone.asm"
db 0, 0, 0 ; XXX
--- /dev/null
+++ b/event/move_tutor.asm
@@ -1,0 +1,103 @@
+Special_MoveTutor: ; 4925b
+ call FadeToMenu
+ call ClearBGPalettes
+ call ClearScreen
+ call DelayFrame
+ ld b, SCGB_PACKPALS
+ call GetSGBLayout
+ xor a
+ ld [wItemAttributeParamBuffer], a
+ call .GetMoveTutorMove
+ ld [wd265], a
+ ld [wPutativeTMHMMove], a
+ call GetMoveName
+ call CopyName1
+ callba ChooseMonToLearnTMHM
+ jr c, .cancel
+ jr .enter_loop
+
+.loop
+ callba ChooseMonToLearnTMHM_NoRefresh
+ jr c, .cancel
+.enter_loop
+ call CheckCanLearnMoveTutorMove
+ jr nc, .loop
+ xor a
+ ld [ScriptVar], a
+ jr .quit
+
+.cancel
+ ld a, -1
+ ld [ScriptVar], a
+.quit
+ call CloseSubmenu
+ ret
+
+.GetMoveTutorMove: ; 492a5
+ ld a, [ScriptVar]
+ cp 1
+ jr z, .flamethrower
+ cp 2
+ jr z, .thunderbolt
+ ld a, ICE_BEAM
+ ret
+
+.flamethrower
+ ld a, FLAMETHROWER
+ ret
+
+.thunderbolt
+ ld a, THUNDERBOLT
+ ret
+
+CheckCanLearnMoveTutorMove: ; 492b9
+ ld hl, .MenuDataHeader
+ call LoadMenuDataHeader
+
+ predef CanLearnTMHMMove
+
+ push bc
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ call GetNick
+ pop bc
+
+ ld a, c
+ and a
+ jr nz, .can_learn
+ push de
+ ld de, SFX_WRONG
+ call PlaySFX
+ pop de
+ ld a, BANK(Text_TMHMNotCompatible)
+ ld hl, Text_TMHMNotCompatible
+ call FarPrintText
+ jr .didnt_learn
+
+.can_learn
+ callab KnowsMove
+ jr c, .didnt_learn
+
+ predef LearnMove
+ ld a, b
+ and a
+ jr z, .didnt_learn
+
+ ld c, HAPPINESS_LEARNMOVE
+ callab ChangeHappiness
+ jr .learned
+
+.didnt_learn
+ call ExitMenu
+ and a
+ ret
+
+.learned
+ call ExitMenu
+ scf
+ ret
+
+.MenuDataHeader: ; 0x4930a
+ db $40 ; flags
+ db 12, 00 ; start coords
+ db 17, 19 ; end coords
--- a/event/photo.asm
+++ /dev/null
@@ -1,295 +1,0 @@
-UnownPrinter: ; 16be4
- ld a, [UnownDex]
- and a
- ret z
-
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- ld a, [Options]
- push af
- set NO_TEXT_SCROLL, a
- ld [Options], a
- call ClearBGPalettes
- call ClearTileMap
-
- ld de, UnownDexATile
- ld hl, VTiles1 tile $6f
- lb bc, BANK(UnownDexBTile), 1
- call Request1bpp
-
- ld de, UnownDexBTile
- ld hl, VTiles1 tile $75
- lb bc, BANK(UnownDexBTile), 1
- call Request1bpp
-
- hlcoord 0, 0
- lb bc, 3, 18
- call TextBox
-
- hlcoord 0, 5
- lb bc, 7, 7
- call TextBox
-
- hlcoord 0, 14
- lb bc, 2, 18
- call TextBox
-
- hlcoord 1, 2
- ld de, AlphRuinsStampString
- call PlaceString
-
- hlcoord 1, 16
- ld de, UnownDexDoWhatString
- call PlaceString
-
- hlcoord 10, 6
- ld de, UnownDexMenuString
- call PlaceString
-
- xor a
- ld [wJumptableIndex], a
- call .UpdateUnownFrontpic
- call WaitBGMap
-
- ld a, UNOWN
- ld [CurPartySpecies], a
- xor a
- ld [TempMonDVs], a
- ld [TempMonDVs + 1], a
-
- ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- call SetPalettes
-
-.joy_loop
- call JoyTextDelay
-
- ld a, [hJoyPressed]
- and B_BUTTON
- jr nz, .pressed_b
-
- ld a, [hJoyPressed]
- and A_BUTTON
- jr nz, .pressed_a
-
- call .LeftRight
- call DelayFrame
- jr .joy_loop
-
-.pressed_a
- ld a, [wJumptableIndex]
- push af
- callba PrintUnownStamp
- call RestartMapMusic
- pop af
- ld [wJumptableIndex], a
- jr .joy_loop
-
-.pressed_b
- pop af
- ld [Options], a
- pop af
- ld [hInMenu], a
- call ReturnToMapFromSubmenu
- ret
-; 16ca0
-
-.LeftRight: ; 16ca0
- ld a, [hJoyLast]
- and D_RIGHT
- jr nz, .press_right
- ld a, [hJoyLast]
- and D_LEFT
- jr nz, .press_left
- ret
-
-.press_left
- ld hl, wJumptableIndex
- ld a, [hl]
- and a
- jr nz, .wrap_around_left
- ld [hl], 26 + 1
-.wrap_around_left
- dec [hl]
- jr .return
-
-.press_right
- ld hl, wJumptableIndex
- ld a, [hl]
- cp 26
- jr c, .wrap_around_right
- ld [hl], -1
-.wrap_around_right
- inc [hl]
-
-.return
- call .UpdateUnownFrontpic
- ret
-; 16cc8
-
-.UpdateUnownFrontpic: ; 16cc8
- ld a, [wJumptableIndex]
- cp 26
- jr z, .vacant
- inc a
- ld [UnownLetter], a
- ld a, UNOWN
- ld [CurPartySpecies], a
- xor a
- ld [wBoxAlignment], a
- ld de, VTiles2
- predef GetFrontpic
- call .Load2bppToSRAM
- hlcoord 1, 6
- xor a
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- ld de, VTiles2 tile $31
- callba RotateUnownFrontpic
- ret
-
-.Load2bppToSRAM: ; 16cff
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- ld a, BANK(sScratch)
- call GetSRAMBank
- ld de, wDecompressScratch
- ld hl, sScratch
- ld a, [hROMBank]
- ld b, a
- ld c, $31
- call Get2bpp
- call CloseSRAM
-
- pop af
- ld [rSVBK], a
- ret
-
-.vacant
- hlcoord 1, 6
- lb bc, 7, 7
- call ClearBox
- hlcoord 1, 9
- ld de, UnownDexVacantString
- call PlaceString
- xor a
- call GetSRAMBank
- ld hl, sScratch
- ld bc, $31 tiles
- xor a
- call ByteFill
- ld hl, VTiles2 tile $31
- ld de, sScratch
- ld c, $31
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- call CloseSRAM
- ld c, 20
- call DelayFrames
- ret
-; 16d57
-
-AlphRuinsStampString:
- db " ALPH RUINS STAMP@"
-
-UnownDexDoWhatString:
- db "Do what?@"
-
-UnownDexMenuString:
- db "♂ PRINT"
- next "♀ CANCEL"
- next "← PREVIOUS"
- next "→ NEXT"
- db "@"
-
-UnownDexVacantString:
- db "VACANT@"
-; 16d9c
-
-UnownDexATile: ; 16d9c
-INCBIN "gfx/unknown/bold_a.1bpp"
-UnownDexBTile: ; 16da4
-INCBIN "gfx/unknown/bold_b.1bpp"
-; 16dac
-
-PlaceUnownPrinterFrontpic: ; 16dac
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 7, 11
- ld a, $31
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- ret
-; 16dc7
-
-PhotoStudio: ; 16dc7
- ld hl, .Text_AskWhichMon
- call PrintText
- callba SelectMonFromParty
- jr c, .cancel
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
-
- ld hl, .Text_HoldStill
- call PrintText
- call DisableSpriteUpdates
- callba PrintPartymon
- call ReturnToMapWithSpeechTextbox
- ld a, [hPrinter]
- and a
- jr nz, .cancel
- ld hl, .Text_Presto
- jr .print_text
-
-.cancel
- ld hl, .Text_NoPicture
- jr .print_text
-
-.egg
- ld hl, .Text_Egg
-
-.print_text
- call PrintText
- ret
-; 16e04
-
-.Text_AskWhichMon: ; 0x16e04
- ; Which #MON should I photo- graph?
- text_jump UnknownText_0x1be024
- db "@"
-; 0x16e09
-
-.Text_HoldStill: ; 0x16e09
- ; All righty. Hold still for a bit.
- text_jump UnknownText_0x1be047
- db "@"
-; 0x16e0e
-
-.Text_Presto: ; 0x16e0e
- ; Presto! All done. Come again, OK?
- text_jump UnknownText_0x1be06a
- db "@"
-; 0x16e13
-
-.Text_NoPicture: ; 0x16e13
- ; Oh, no picture? Come again, OK?
- text_jump UnknownText_0x1c0000
- db "@"
-; 0x16e18
-
-.Text_Egg: ; 0x16e18
- ; An EGG? My talent is worth more…
- text_jump UnknownText_0x1c0021
- db "@"
-; 0x16e1d
--- /dev/null
+++ b/event/poisonstep_pals.asm
@@ -1,0 +1,48 @@
+LoadPoisonBGPals: ; cbcdd
+ call .LoadPals
+ ld a, [hCGB]
+ and a
+ ret nz
+ ret ; ????
+
+.LoadPals: ; cbce5
+ ld a, [hCGB]
+ and a
+ jr nz, .cgb
+ ld a, [TimeOfDayPal]
+ and $3
+ cp $3
+ ld a, %00000000
+ jr z, .convert_pals
+ ld a, %10101010
+
+.convert_pals
+ call DmgToCgbBGPals
+ ld c, 4
+ call DelayFrames
+ callba _UpdateTimePals
+ ret
+
+.cgb
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld c, $20
+.loop
+; RGB 28, 21, 31
+ ld a, (palred 28 + palgreen 21 + palblue 31) % $100
+ ld [hli], a
+ ld a, (palred 28 + palgreen 21 + palblue 31) / $100
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ld c, 4
+ call DelayFrames
+ callba _UpdateTimePals
+ ret
--- /dev/null
+++ b/event/print_photo.asm
@@ -1,0 +1,61 @@
+PhotoStudio: ; 16dc7
+ ld hl, .Text_AskWhichMon
+ call PrintText
+ callba SelectMonFromParty
+ jr c, .cancel
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+
+ ld hl, .Text_HoldStill
+ call PrintText
+ call DisableSpriteUpdates
+ callba PrintPartymon
+ call ReturnToMapWithSpeechTextbox
+ ld a, [hPrinter]
+ and a
+ jr nz, .cancel
+ ld hl, .Text_Presto
+ jr .print_text
+
+.cancel
+ ld hl, .Text_NoPicture
+ jr .print_text
+
+.egg
+ ld hl, .Text_Egg
+
+.print_text
+ call PrintText
+ ret
+; 16e04
+
+.Text_AskWhichMon: ; 0x16e04
+ ; Which #MON should I photo- graph?
+ text_jump UnknownText_0x1be024
+ db "@"
+; 0x16e09
+
+.Text_HoldStill: ; 0x16e09
+ ; All righty. Hold still for a bit.
+ text_jump UnknownText_0x1be047
+ db "@"
+; 0x16e0e
+
+.Text_Presto: ; 0x16e0e
+ ; Presto! All done. Come again, OK?
+ text_jump UnknownText_0x1be06a
+ db "@"
+; 0x16e13
+
+.Text_NoPicture: ; 0x16e13
+ ; Oh, no picture? Come again, OK?
+ text_jump UnknownText_0x1c0000
+ db "@"
+; 0x16e18
+
+.Text_Egg: ; 0x16e18
+ ; An EGG? My talent is worth more…
+ text_jump UnknownText_0x1c0021
+ db "@"
+; 0x16e1d
--- /dev/null
+++ b/event/print_unown.asm
@@ -1,0 +1,233 @@
+UnownPrinter: ; 16be4
+ ld a, [UnownDex]
+ and a
+ ret z
+
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ ld a, [Options]
+ push af
+ set NO_TEXT_SCROLL, a
+ ld [Options], a
+ call ClearBGPalettes
+ call ClearTileMap
+
+ ld de, UnownDexATile
+ ld hl, VTiles1 tile $6f
+ lb bc, BANK(UnownDexBTile), 1
+ call Request1bpp
+
+ ld de, UnownDexBTile
+ ld hl, VTiles1 tile $75
+ lb bc, BANK(UnownDexBTile), 1
+ call Request1bpp
+
+ hlcoord 0, 0
+ lb bc, 3, 18
+ call TextBox
+
+ hlcoord 0, 5
+ lb bc, 7, 7
+ call TextBox
+
+ hlcoord 0, 14
+ lb bc, 2, 18
+ call TextBox
+
+ hlcoord 1, 2
+ ld de, AlphRuinsStampString
+ call PlaceString
+
+ hlcoord 1, 16
+ ld de, UnownDexDoWhatString
+ call PlaceString
+
+ hlcoord 10, 6
+ ld de, UnownDexMenuString
+ call PlaceString
+
+ xor a
+ ld [wJumptableIndex], a
+ call .UpdateUnownFrontpic
+ call WaitBGMap
+
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [TempMonDVs], a
+ ld [TempMonDVs + 1], a
+
+ ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ call SetPalettes
+
+.joy_loop
+ call JoyTextDelay
+
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jr nz, .pressed_b
+
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jr nz, .pressed_a
+
+ call .LeftRight
+ call DelayFrame
+ jr .joy_loop
+
+.pressed_a
+ ld a, [wJumptableIndex]
+ push af
+ callba PrintUnownStamp
+ call RestartMapMusic
+ pop af
+ ld [wJumptableIndex], a
+ jr .joy_loop
+
+.pressed_b
+ pop af
+ ld [Options], a
+ pop af
+ ld [hInMenu], a
+ call ReturnToMapFromSubmenu
+ ret
+; 16ca0
+
+.LeftRight: ; 16ca0
+ ld a, [hJoyLast]
+ and D_RIGHT
+ jr nz, .press_right
+ ld a, [hJoyLast]
+ and D_LEFT
+ jr nz, .press_left
+ ret
+
+.press_left
+ ld hl, wJumptableIndex
+ ld a, [hl]
+ and a
+ jr nz, .wrap_around_left
+ ld [hl], 26 + 1
+.wrap_around_left
+ dec [hl]
+ jr .return
+
+.press_right
+ ld hl, wJumptableIndex
+ ld a, [hl]
+ cp 26
+ jr c, .wrap_around_right
+ ld [hl], -1
+.wrap_around_right
+ inc [hl]
+
+.return
+ call .UpdateUnownFrontpic
+ ret
+; 16cc8
+
+.UpdateUnownFrontpic: ; 16cc8
+ ld a, [wJumptableIndex]
+ cp 26
+ jr z, .vacant
+ inc a
+ ld [UnownLetter], a
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [wBoxAlignment], a
+ ld de, VTiles2
+ predef GetFrontpic
+ call .Load2bppToSRAM
+ hlcoord 1, 6
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ ld de, VTiles2 tile $31
+ callba RotateUnownFrontpic
+ ret
+
+.Load2bppToSRAM: ; 16cff
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ ld a, BANK(sScratch)
+ call GetSRAMBank
+ ld de, wDecompressScratch
+ ld hl, sScratch
+ ld a, [hROMBank]
+ ld b, a
+ ld c, $31
+ call Get2bpp
+ call CloseSRAM
+
+ pop af
+ ld [rSVBK], a
+ ret
+
+.vacant
+ hlcoord 1, 6
+ lb bc, 7, 7
+ call ClearBox
+ hlcoord 1, 9
+ ld de, UnownDexVacantString
+ call PlaceString
+ xor a
+ call GetSRAMBank
+ ld hl, sScratch
+ ld bc, $31 tiles
+ xor a
+ call ByteFill
+ ld hl, VTiles2 tile $31
+ ld de, sScratch
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ld c, 20
+ call DelayFrames
+ ret
+; 16d57
+
+AlphRuinsStampString:
+ db " ALPH RUINS STAMP@"
+
+UnownDexDoWhatString:
+ db "Do what?@"
+
+UnownDexMenuString:
+ db "♂ PRINT"
+ next "♀ CANCEL"
+ next "← PREVIOUS"
+ next "→ NEXT"
+ db "@"
+
+UnownDexVacantString:
+ db "VACANT@"
+; 16d9c
+
+UnownDexATile: ; 16d9c
+INCBIN "gfx/printer/bold_a.1bpp"
+UnownDexBTile: ; 16da4
+INCBIN "gfx/printer/bold_b.1bpp"
+; 16dac
+
+PlaceUnownPrinterFrontpic: ; 16dac
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ hlcoord 7, 11
+ ld a, $31
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ ret
+; 16dc7
--- /dev/null
+++ b/event/print_unown_2.asm
@@ -1,0 +1,111 @@
+RotateUnownFrontpic: ; e0000
+; something to do with Unown printer
+ push de
+ xor a
+ call GetSRAMBank
+ ld hl, sScratch
+ ld bc, 0
+.loop
+ push bc
+ push hl
+ push bc
+ ld de, wd002
+ call .Copy
+ call .Rotate
+ ld hl, UnownPrinter_OverworldMapRectangle
+ pop bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, wd012
+ call .Copy
+ pop hl
+ ld bc, $10
+ add hl, bc
+ pop bc
+ inc c
+ ld a, c
+ cp 7 * 7
+ jr c, .loop
+
+ ld hl, OverworldMap
+ ld de, sScratch
+ ld bc, 7 * 7 tiles
+ call CopyBytes
+ pop hl
+ ld de, sScratch
+ ld c, 7 * 7
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ret
+
+.Copy: ; e004e
+ ld c, $10
+.loop_copy
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop_copy
+ ret
+
+.Rotate: ; e0057
+ ld hl, wd012
+ ld e, %10000000
+ ld d, 8
+.loop_decompress
+ push hl
+ ld hl, wd002
+ call .CountSetBit
+ pop hl
+ ld a, b
+ ld [hli], a
+ push hl
+ ld hl, wd003
+ call .CountSetBit
+ pop hl
+ ld a, b
+ ld [hli], a
+ srl e
+ dec d
+ jr nz, .loop_decompress
+ ret
+
+.CountSetBit: ; e0078
+ ld b, 0
+ ld c, 8
+.loop_count
+ ld a, [hli]
+ and e
+ jr z, .clear
+ scf
+ jr .apply
+
+.clear
+ and a
+
+.apply
+ rr b
+ inc hl
+ dec c
+ jr nz, .loop_count
+ ret
+
+overworldmaprect: MACRO
+y = 0
+rept \1
+x = \1 * (\2 +- 1) + y
+rept \2
+ dw OverworldMap tile x
+x = x +- \2
+endr
+y = y + 1
+endr
+endm
+
+UnownPrinter_OverworldMapRectangle: ; e008b
+ overworldmaprect 7, 7
--- a/event/special.asm
+++ b/event/special.asm
@@ -229,3 +229,7 @@
ld de, StringBuffer3
ld bc, PKMN_NAME_LENGTH
jp CopyBytes
+
+Predef1: ; 747a
+; not used
+ ret
--- /dev/null
+++ b/event/std_collision.asm
@@ -1,0 +1,29 @@
+CheckFacingTileForStd:: ; 1365b
+; Checks to see if the tile you're facing has a std script associated with it. If so, executes the script and returns carry.
+ ld a, c
+ ld de, 3
+ ld hl, TileCollisionStdScripts
+ call IsInArray
+ jr nc, .notintable
+
+ ld a, jumpstd_command
+ ld [wJumpStdScriptBuffer], a
+ inc hl
+ ld a, [hli]
+ ld [wJumpStdScriptBuffer + 1], a
+ ld a, [hli]
+ ld [wJumpStdScriptBuffer + 2], a
+ ld a, BANK(Script_JumpStdFromRAM)
+ ld hl, Script_JumpStdFromRAM
+ call CallScript
+ scf
+ ret
+
+.notintable
+ xor a
+ ret
+
+INCLUDE "data/collision_stdscripts.asm"
+
+Script_JumpStdFromRAM: ; 0x1369a
+ jump wJumpStdScriptBuffer
--- a/event/unown.asm
+++ b/event/unown.asm
@@ -1,5 +1,3 @@
-
-
SpecialHoOhChamber: ; 0x8addb
ld hl, PartySpecies
ld a, [hl]
--- a/gbhw.asm
+++ /dev/null
@@ -1,135 +1,0 @@
-; Graciously aped from http://nocash.emubase.de/pandocs.htm .
-
-; MBC3
-MBC3SRamEnable EQU $0000
-MBC3RomBank EQU $2000
-MBC3SRamBank EQU $4000
-MBC3LatchClock EQU $6000
-MBC3RTC EQU $a000
-
-SRAM_DISABLE EQU $00
-SRAM_ENABLE EQU $0a
-
-NUM_SRAM_BANKS EQU 4
-
-RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
-RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
-RTC_H EQU $0a ; Hours 0-23 (0-17h)
-RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
-RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
- ; Bit 0 Most significant bit of Day Counter (Bit 8)
- ; Bit 6 Halt (0=Active, 1=Stop Timer)
- ; Bit 7 Day Counter Carry Bit (1=Counter Overflow)
-
-; interrupt flags
-VBLANK EQU 0
-LCD_STAT EQU 1
-TIMER EQU 2
-SERIAL EQU 3
-JOYPAD EQU 4
-
-; OAM attribute flags
-OAM_TILE_BANK EQU 3
-OAM_OBP_NUM EQU 4 ; non CGB Mode Only
-OAM_X_FLIP EQU 5
-OAM_Y_FLIP EQU 6
-OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
-
-PALETTE_MASK EQU %111
-VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08
-OBP_NUM EQU 1 << OAM_OBP_NUM ; $10
-X_FLIP EQU 1 << OAM_X_FLIP ; $20
-Y_FLIP EQU 1 << OAM_Y_FLIP ; $40
-BEHIND_BG EQU 1 << OAM_PRIORITY ; $80
-
-; Hardware registers
-rJOYP EQU $ff00 ; Joypad (R/W)
-rSB EQU $ff01 ; Serial transfer data (R/W)
-rSC EQU $ff02 ; Serial Transfer Control (R/W)
-rSC_ON EQU 7
-rSC_CGB EQU 1
-rSC_CLOCK EQU 0
-rDIV EQU $ff04 ; Divider Register (R/W)
-rTIMA EQU $ff05 ; Timer counter (R/W)
-rTMA EQU $ff06 ; Timer Modulo (R/W)
-rTAC EQU $ff07 ; Timer Control (R/W)
-rTAC_ON EQU 2
-rTAC_4096_HZ EQU 0
-rTAC_262144_HZ EQU 1
-rTAC_65536_HZ EQU 2
-rTAC_16384_HZ EQU 3
-rIF EQU $ff0f ; Interrupt Flag (R/W)
-rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
-rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
-rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
-rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
-rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
-rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W)
-rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
-rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
-rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
-rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
-rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
-rNR31 EQU $ff1b ; Channel 3 Sound Length
-rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
-rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
-rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
-rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W)
-rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
-rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
-rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
-rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W)
-rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
-rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
-rNR52 EQU $ff26 ; Sound on/off
-rWave_0 EQU $ff30
-rWave_1 EQU $ff31
-rWave_2 EQU $ff32
-rWave_3 EQU $ff33
-rWave_4 EQU $ff34
-rWave_5 EQU $ff35
-rWave_6 EQU $ff36
-rWave_7 EQU $ff37
-rWave_8 EQU $ff38
-rWave_9 EQU $ff39
-rWave_a EQU $ff3a
-rWave_b EQU $ff3b
-rWave_c EQU $ff3c
-rWave_d EQU $ff3d
-rWave_e EQU $ff3e
-rWave_f EQU $ff3f
-rLCDC EQU $ff40 ; LCD Control (R/W)
-rSTAT EQU $ff41 ; LCDC Status (R/W)
-rSCY EQU $ff42 ; Scroll Y (R/W)
-rSCX EQU $ff43 ; Scroll X (R/W)
-rLY EQU $ff44 ; LCDC Y-Coordinate (R)
-rLYC EQU $ff45 ; LY Compare (R/W)
-rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
-rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
-rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
-rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
-rWY EQU $ff4a ; Window Y Position (R/W)
-rWX EQU $ff4b ; Window X Position minus 7 (R/W)
-rLCDMODE EQU $ff4c
-rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
-rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
-rBLCK EQU $ff50
-rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
-rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
-rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
-rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
-rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
-rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
-rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
-rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
-rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
-rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
-rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only
-rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
-rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write)
-rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write)
-rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only
-rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
-rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
-rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
-rIE EQU $ffff ; Interrupt Enable (R/W)
binary files /dev/null b/gfx/card_flip/card_flip.tilemap differ
--- /dev/null
+++ b/gfx/credits.asm
@@ -1,0 +1,7 @@
+CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp"
+
+CreditsMonsGFX:
+CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp"
+CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp"
+CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp"
+CreditsIgglybuffGFX: INCBIN "gfx/credits/igglybuff.2bpp"
--- /dev/null
+++ b/gfx/emotes.asm
@@ -1,0 +1,12 @@
+ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
+QuestionEmote: INCBIN "gfx/emotes/question.2bpp"
+HappyEmote: INCBIN "gfx/emotes/happy.2bpp"
+SadEmote: INCBIN "gfx/emotes/sad.2bpp"
+HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
+BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
+SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
+FishEmote: INCBIN "gfx/emotes/fish.2bpp"
+JumpShadowGFX: INCBIN "gfx/overworld/shadow.2bpp"
+FishingRodGFX: INCBIN "gfx/overworld/fishing_rod.2bpp"
+BoulderDustGFX: INCBIN "gfx/overworld/boulder_dust.2bpp"
+GrassRustleGFX: INCBIN "gfx/overworld/grass_rustle.2bpp"
--- a/gfx/font.asm
+++ b/gfx/font.asm
@@ -50,16 +50,16 @@
INCBIN "gfx/pokegear/town_map.2bpp.lz"
; f8ea4
-WeekdayKanjiGFX: ; unused kanji
-INCBIN "gfx/font/weekday_kanji.2bpp"
+UnusedWeekdayKanjiGFX: ; unused kanji
+INCBIN "gfx/font/unused_weekday_kanji.2bpp"
; f8f24
OverworldPhoneIconGFX: ; f8f24
-INCBIN "gfx/mobile/overworld_phone_icon.2bpp"
+INCBIN "gfx/font/overworld_phone_icon.2bpp"
; f8f34
-GFX_f8f34: ; unused bold letters + unown chars
-INCBIN "gfx/unknown/bold_font.1bpp"
+UnusedBoldFontGFX: ; unused bold letters + unown chars
+INCBIN "gfx/font/unused_bold_font.1bpp"
; f9204
TextBoxSpaceGFX: ; f9204
binary files /dev/null b/gfx/font/overworld_phone_icon.png differ
binary files /dev/null b/gfx/font/unused_bold_font.png differ
binary files /dev/null b/gfx/font/unused_weekday_kanji.png differ
binary files a/gfx/font/weekday_kanji.png /dev/null differ
binary files /dev/null b/gfx/mobile/ascii_font.png differ
binary files /dev/null b/gfx/mobile/down_arrow.png differ
binary files /dev/null b/gfx/mobile/electro_ball.2bpp.lz.3eaf004f differ
binary files /dev/null b/gfx/mobile/electro_ball.png differ
binary files /dev/null b/gfx/mobile/electro_ball_nonmatching.png differ
binary files a/gfx/mobile/hp.png /dev/null differ
binary files a/gfx/mobile/lv.png /dev/null differ
binary files /dev/null b/gfx/mobile/mobile_splash.attrmap differ
binary files /dev/null b/gfx/mobile/mobile_splash.png differ
binary files /dev/null b/gfx/mobile/mobile_splash.tilemap differ
binary files a/gfx/mobile/overworld_phone_icon.png /dev/null differ
binary files /dev/null b/gfx/mobile/pichu_animated.2bpp.lz.5d6d2ad4 differ
binary files /dev/null b/gfx/mobile/pichu_animated.png differ
binary files /dev/null b/gfx/mobile/up_arrow.png differ
binary files /dev/null b/gfx/overworld/celebi/1.png differ
binary files /dev/null b/gfx/overworld/celebi/2.png differ
binary files /dev/null b/gfx/overworld/celebi/3.png differ
binary files /dev/null b/gfx/overworld/celebi/4.png differ
--- /dev/null
+++ b/gfx/overworld_font.asm
@@ -1,0 +1,17 @@
+LoadOverworldFont:: ; 106594
+ ld de, .font
+ ld hl, VTiles1
+ lb bc, BANK(.font), $80
+ call Get2bpp
+ ld de, .space
+ ld hl, VTiles2 tile $7f
+ lb bc, BANK(.space), 1
+ call Get2bpp
+ ret
+; 1065ad
+
+.font
+INCBIN "gfx/font/overworld.2bpp"
+
+.space
+INCBIN "gfx/font/space.2bpp"
--- a/gfx/pics/animation.asm
+++ b/gfx/pics/animation.asm
@@ -1,6 +1,5 @@
; Pic animation arrangement.
-
AnimateMon_Slow_Normal: ; d0000
hlcoord 12, 0
ld a, [wBattleMode]
@@ -53,23 +52,18 @@
ret
; d0042
-
-POKEANIM: MACRO
+pokeanim: MACRO
rept _NARG
-
; Workaround for a bug where macro args can't come after the start of a symbol
if !def(\1_POKEANIM)
\1_POKEANIM equs "PokeAnim_\1_"
endc
-
db (\1_POKEANIM - PokeAnim_SetupCommands) / 2
shift
endr
-
db (PokeAnim_Finish_ - PokeAnim_SetupCommands) / 2
ENDM
-
PokeAnims: ; d0042
dw .Slow
dw .Normal
@@ -81,15 +75,15 @@
dw .Egg1
dw .Egg2
-.Slow: POKEANIM StereoCry, Setup2, Play
-.Normal: POKEANIM StereoCry, Setup, Play
-.Menu: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
-.Trade: POKEANIM Extra, Play2, Extra, Play, SetWait, Wait, Cry, Setup, Play
-.Evolve: POKEANIM Extra, Play, SetWait, Wait, CryNoWait, Setup, Play
-.Hatch: POKEANIM Extra, Play, CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
-.Unused: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
-.Egg1: POKEANIM Setup, Play
-.Egg2: POKEANIM Extra, Play
+.Slow: pokeanim StereoCry, Setup2, Play
+.Normal: pokeanim StereoCry, Setup, Play
+.Menu: pokeanim CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
+.Trade: pokeanim Extra, Play2, Extra, Play, SetWait, Wait, Cry, Setup, Play
+.Evolve: pokeanim Extra, Play, SetWait, Wait, CryNoWait, Setup, Play
+.Hatch: pokeanim Extra, Play, CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
+.Unused: pokeanim CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
+.Egg1: pokeanim Setup, Play
+.Egg2: pokeanim Extra, Play
AnimateFrontpic: ; d008e
--- a/gfx/pics/pic_pointers.asm
+++ b/gfx/pics/pic_pointers.asm
@@ -1,511 +1,511 @@
PicPointers::
; entries correspond to constants/pokemon_constants.asm, two apiece
- add_pic BulbasaurFrontpic
- add_pic BulbasaurBackpic
- add_pic IvysaurFrontpic
- add_pic IvysaurBackpic
- add_pic VenusaurFrontpic
- add_pic VenusaurBackpic
- add_pic CharmanderFrontpic
- add_pic CharmanderBackpic
- add_pic CharmeleonFrontpic
- add_pic CharmeleonBackpic
- add_pic CharizardFrontpic
- add_pic CharizardBackpic
- add_pic SquirtleFrontpic
- add_pic SquirtleBackpic
- add_pic WartortleFrontpic
- add_pic WartortleBackpic
- add_pic BlastoiseFrontpic
- add_pic BlastoiseBackpic
- add_pic CaterpieFrontpic
- add_pic CaterpieBackpic
- add_pic MetapodFrontpic
- add_pic MetapodBackpic
- add_pic ButterfreeFrontpic
- add_pic ButterfreeBackpic
- add_pic WeedleFrontpic
- add_pic WeedleBackpic
- add_pic KakunaFrontpic
- add_pic KakunaBackpic
- add_pic BeedrillFrontpic
- add_pic BeedrillBackpic
- add_pic PidgeyFrontpic
- add_pic PidgeyBackpic
- add_pic PidgeottoFrontpic
- add_pic PidgeottoBackpic
- add_pic PidgeotFrontpic
- add_pic PidgeotBackpic
- add_pic RattataFrontpic
- add_pic RattataBackpic
- add_pic RaticateFrontpic
- add_pic RaticateBackpic
- add_pic SpearowFrontpic
- add_pic SpearowBackpic
- add_pic FearowFrontpic
- add_pic FearowBackpic
- add_pic EkansFrontpic
- add_pic EkansBackpic
- add_pic ArbokFrontpic
- add_pic ArbokBackpic
- add_pic PikachuFrontpic
- add_pic PikachuBackpic
- add_pic RaichuFrontpic
- add_pic RaichuBackpic
- add_pic SandshrewFrontpic
- add_pic SandshrewBackpic
- add_pic SandslashFrontpic
- add_pic SandslashBackpic
- add_pic NidoranFFrontpic
- add_pic NidoranFBackpic
- add_pic NidorinaFrontpic
- add_pic NidorinaBackpic
- add_pic NidoqueenFrontpic
- add_pic NidoqueenBackpic
- add_pic NidoranMFrontpic
- add_pic NidoranMBackpic
- add_pic NidorinoFrontpic
- add_pic NidorinoBackpic
- add_pic NidokingFrontpic
- add_pic NidokingBackpic
- add_pic ClefairyFrontpic
- add_pic ClefairyBackpic
- add_pic ClefableFrontpic
- add_pic ClefableBackpic
- add_pic VulpixFrontpic
- add_pic VulpixBackpic
- add_pic NinetalesFrontpic
- add_pic NinetalesBackpic
- add_pic JigglypuffFrontpic
- add_pic JigglypuffBackpic
- add_pic WigglytuffFrontpic
- add_pic WigglytuffBackpic
- add_pic ZubatFrontpic
- add_pic ZubatBackpic
- add_pic GolbatFrontpic
- add_pic GolbatBackpic
- add_pic OddishFrontpic
- add_pic OddishBackpic
- add_pic GloomFrontpic
- add_pic GloomBackpic
- add_pic VileplumeFrontpic
- add_pic VileplumeBackpic
- add_pic ParasFrontpic
- add_pic ParasBackpic
- add_pic ParasectFrontpic
- add_pic ParasectBackpic
- add_pic VenonatFrontpic
- add_pic VenonatBackpic
- add_pic VenomothFrontpic
- add_pic VenomothBackpic
- add_pic DiglettFrontpic
- add_pic DiglettBackpic
- add_pic DugtrioFrontpic
- add_pic DugtrioBackpic
- add_pic MeowthFrontpic
- add_pic MeowthBackpic
- add_pic PersianFrontpic
- add_pic PersianBackpic
- add_pic PsyduckFrontpic
- add_pic PsyduckBackpic
- add_pic GolduckFrontpic
- add_pic GolduckBackpic
- add_pic MankeyFrontpic
- add_pic MankeyBackpic
- add_pic PrimeapeFrontpic
- add_pic PrimeapeBackpic
- add_pic GrowlitheFrontpic
- add_pic GrowlitheBackpic
- add_pic ArcanineFrontpic
- add_pic ArcanineBackpic
- add_pic PoliwagFrontpic
- add_pic PoliwagBackpic
- add_pic PoliwhirlFrontpic
- add_pic PoliwhirlBackpic
- add_pic PoliwrathFrontpic
- add_pic PoliwrathBackpic
- add_pic AbraFrontpic
- add_pic AbraBackpic
- add_pic KadabraFrontpic
- add_pic KadabraBackpic
- add_pic AlakazamFrontpic
- add_pic AlakazamBackpic
- add_pic MachopFrontpic
- add_pic MachopBackpic
- add_pic MachokeFrontpic
- add_pic MachokeBackpic
- add_pic MachampFrontpic
- add_pic MachampBackpic
- add_pic BellsproutFrontpic
- add_pic BellsproutBackpic
- add_pic WeepinbellFrontpic
- add_pic WeepinbellBackpic
- add_pic VictreebelFrontpic
- add_pic VictreebelBackpic
- add_pic TentacoolFrontpic
- add_pic TentacoolBackpic
- add_pic TentacruelFrontpic
- add_pic TentacruelBackpic
- add_pic GeodudeFrontpic
- add_pic GeodudeBackpic
- add_pic GravelerFrontpic
- add_pic GravelerBackpic
- add_pic GolemFrontpic
- add_pic GolemBackpic
- add_pic PonytaFrontpic
- add_pic PonytaBackpic
- add_pic RapidashFrontpic
- add_pic RapidashBackpic
- add_pic SlowpokeFrontpic
- add_pic SlowpokeBackpic
- add_pic SlowbroFrontpic
- add_pic SlowbroBackpic
- add_pic MagnemiteFrontpic
- add_pic MagnemiteBackpic
- add_pic MagnetonFrontpic
- add_pic MagnetonBackpic
- add_pic FarfetchDFrontpic
- add_pic FarfetchDBackpic
- add_pic DoduoFrontpic
- add_pic DoduoBackpic
- add_pic DodrioFrontpic
- add_pic DodrioBackpic
- add_pic SeelFrontpic
- add_pic SeelBackpic
- add_pic DewgongFrontpic
- add_pic DewgongBackpic
- add_pic GrimerFrontpic
- add_pic GrimerBackpic
- add_pic MukFrontpic
- add_pic MukBackpic
- add_pic ShellderFrontpic
- add_pic ShellderBackpic
- add_pic CloysterFrontpic
- add_pic CloysterBackpic
- add_pic GastlyFrontpic
- add_pic GastlyBackpic
- add_pic HaunterFrontpic
- add_pic HaunterBackpic
- add_pic GengarFrontpic
- add_pic GengarBackpic
- add_pic OnixFrontpic
- add_pic OnixBackpic
- add_pic DrowzeeFrontpic
- add_pic DrowzeeBackpic
- add_pic HypnoFrontpic
- add_pic HypnoBackpic
- add_pic KrabbyFrontpic
- add_pic KrabbyBackpic
- add_pic KinglerFrontpic
- add_pic KinglerBackpic
- add_pic VoltorbFrontpic
- add_pic VoltorbBackpic
- add_pic ElectrodeFrontpic
- add_pic ElectrodeBackpic
- add_pic ExeggcuteFrontpic
- add_pic ExeggcuteBackpic
- add_pic ExeggutorFrontpic
- add_pic ExeggutorBackpic
- add_pic CuboneFrontpic
- add_pic CuboneBackpic
- add_pic MarowakFrontpic
- add_pic MarowakBackpic
- add_pic HitmonleeFrontpic
- add_pic HitmonleeBackpic
- add_pic HitmonchanFrontpic
- add_pic HitmonchanBackpic
- add_pic LickitungFrontpic
- add_pic LickitungBackpic
- add_pic KoffingFrontpic
- add_pic KoffingBackpic
- add_pic WeezingFrontpic
- add_pic WeezingBackpic
- add_pic RhyhornFrontpic
- add_pic RhyhornBackpic
- add_pic RhydonFrontpic
- add_pic RhydonBackpic
- add_pic ChanseyFrontpic
- add_pic ChanseyBackpic
- add_pic TangelaFrontpic
- add_pic TangelaBackpic
- add_pic KangaskhanFrontpic
- add_pic KangaskhanBackpic
- add_pic HorseaFrontpic
- add_pic HorseaBackpic
- add_pic SeadraFrontpic
- add_pic SeadraBackpic
- add_pic GoldeenFrontpic
- add_pic GoldeenBackpic
- add_pic SeakingFrontpic
- add_pic SeakingBackpic
- add_pic StaryuFrontpic
- add_pic StaryuBackpic
- add_pic StarmieFrontpic
- add_pic StarmieBackpic
- add_pic MrMimeFrontpic
- add_pic MrMimeBackpic
- add_pic ScytherFrontpic
- add_pic ScytherBackpic
- add_pic JynxFrontpic
- add_pic JynxBackpic
- add_pic ElectabuzzFrontpic
- add_pic ElectabuzzBackpic
- add_pic MagmarFrontpic
- add_pic MagmarBackpic
- add_pic PinsirFrontpic
- add_pic PinsirBackpic
- add_pic TaurosFrontpic
- add_pic TaurosBackpic
- add_pic MagikarpFrontpic
- add_pic MagikarpBackpic
- add_pic GyaradosFrontpic
- add_pic GyaradosBackpic
- add_pic LaprasFrontpic
- add_pic LaprasBackpic
- add_pic DittoFrontpic
- add_pic DittoBackpic
- add_pic EeveeFrontpic
- add_pic EeveeBackpic
- add_pic VaporeonFrontpic
- add_pic VaporeonBackpic
- add_pic JolteonFrontpic
- add_pic JolteonBackpic
- add_pic FlareonFrontpic
- add_pic FlareonBackpic
- add_pic PorygonFrontpic
- add_pic PorygonBackpic
- add_pic OmanyteFrontpic
- add_pic OmanyteBackpic
- add_pic OmastarFrontpic
- add_pic OmastarBackpic
- add_pic KabutoFrontpic
- add_pic KabutoBackpic
- add_pic KabutopsFrontpic
- add_pic KabutopsBackpic
- add_pic AerodactylFrontpic
- add_pic AerodactylBackpic
- add_pic SnorlaxFrontpic
- add_pic SnorlaxBackpic
- add_pic ArticunoFrontpic
- add_pic ArticunoBackpic
- add_pic ZapdosFrontpic
- add_pic ZapdosBackpic
- add_pic MoltresFrontpic
- add_pic MoltresBackpic
- add_pic DratiniFrontpic
- add_pic DratiniBackpic
- add_pic DragonairFrontpic
- add_pic DragonairBackpic
- add_pic DragoniteFrontpic
- add_pic DragoniteBackpic
- add_pic MewtwoFrontpic
- add_pic MewtwoBackpic
- add_pic MewFrontpic
- add_pic MewBackpic
- add_pic ChikoritaFrontpic
- add_pic ChikoritaBackpic
- add_pic BayleefFrontpic
- add_pic BayleefBackpic
- add_pic MeganiumFrontpic
- add_pic MeganiumBackpic
- add_pic CyndaquilFrontpic
- add_pic CyndaquilBackpic
- add_pic QuilavaFrontpic
- add_pic QuilavaBackpic
- add_pic TyphlosionFrontpic
- add_pic TyphlosionBackpic
- add_pic TotodileFrontpic
- add_pic TotodileBackpic
- add_pic CroconawFrontpic
- add_pic CroconawBackpic
- add_pic FeraligatrFrontpic
- add_pic FeraligatrBackpic
- add_pic SentretFrontpic
- add_pic SentretBackpic
- add_pic FurretFrontpic
- add_pic FurretBackpic
- add_pic HoothootFrontpic
- add_pic HoothootBackpic
- add_pic NoctowlFrontpic
- add_pic NoctowlBackpic
- add_pic LedybaFrontpic
- add_pic LedybaBackpic
- add_pic LedianFrontpic
- add_pic LedianBackpic
- add_pic SpinarakFrontpic
- add_pic SpinarakBackpic
- add_pic AriadosFrontpic
- add_pic AriadosBackpic
- add_pic CrobatFrontpic
- add_pic CrobatBackpic
- add_pic ChinchouFrontpic
- add_pic ChinchouBackpic
- add_pic LanturnFrontpic
- add_pic LanturnBackpic
- add_pic PichuFrontpic
- add_pic PichuBackpic
- add_pic CleffaFrontpic
- add_pic CleffaBackpic
- add_pic IgglybuffFrontpic
- add_pic IgglybuffBackpic
- add_pic TogepiFrontpic
- add_pic TogepiBackpic
- add_pic TogeticFrontpic
- add_pic TogeticBackpic
- add_pic NatuFrontpic
- add_pic NatuBackpic
- add_pic XatuFrontpic
- add_pic XatuBackpic
- add_pic MareepFrontpic
- add_pic MareepBackpic
- add_pic FlaaffyFrontpic
- add_pic FlaaffyBackpic
- add_pic AmpharosFrontpic
- add_pic AmpharosBackpic
- add_pic BellossomFrontpic
- add_pic BellossomBackpic
- add_pic MarillFrontpic
- add_pic MarillBackpic
- add_pic AzumarillFrontpic
- add_pic AzumarillBackpic
- add_pic SudowoodoFrontpic
- add_pic SudowoodoBackpic
- add_pic PolitoedFrontpic
- add_pic PolitoedBackpic
- add_pic HoppipFrontpic
- add_pic HoppipBackpic
- add_pic SkiploomFrontpic
- add_pic SkiploomBackpic
- add_pic JumpluffFrontpic
- add_pic JumpluffBackpic
- add_pic AipomFrontpic
- add_pic AipomBackpic
- add_pic SunkernFrontpic
- add_pic SunkernBackpic
- add_pic SunfloraFrontpic
- add_pic SunfloraBackpic
- add_pic YanmaFrontpic
- add_pic YanmaBackpic
- add_pic WooperFrontpic
- add_pic WooperBackpic
- add_pic QuagsireFrontpic
- add_pic QuagsireBackpic
- add_pic EspeonFrontpic
- add_pic EspeonBackpic
- add_pic UmbreonFrontpic
- add_pic UmbreonBackpic
- add_pic MurkrowFrontpic
- add_pic MurkrowBackpic
- add_pic SlowkingFrontpic
- add_pic SlowkingBackpic
- add_pic MisdreavusFrontpic
- add_pic MisdreavusBackpic
+ dba_pic BulbasaurFrontpic
+ dba_pic BulbasaurBackpic
+ dba_pic IvysaurFrontpic
+ dba_pic IvysaurBackpic
+ dba_pic VenusaurFrontpic
+ dba_pic VenusaurBackpic
+ dba_pic CharmanderFrontpic
+ dba_pic CharmanderBackpic
+ dba_pic CharmeleonFrontpic
+ dba_pic CharmeleonBackpic
+ dba_pic CharizardFrontpic
+ dba_pic CharizardBackpic
+ dba_pic SquirtleFrontpic
+ dba_pic SquirtleBackpic
+ dba_pic WartortleFrontpic
+ dba_pic WartortleBackpic
+ dba_pic BlastoiseFrontpic
+ dba_pic BlastoiseBackpic
+ dba_pic CaterpieFrontpic
+ dba_pic CaterpieBackpic
+ dba_pic MetapodFrontpic
+ dba_pic MetapodBackpic
+ dba_pic ButterfreeFrontpic
+ dba_pic ButterfreeBackpic
+ dba_pic WeedleFrontpic
+ dba_pic WeedleBackpic
+ dba_pic KakunaFrontpic
+ dba_pic KakunaBackpic
+ dba_pic BeedrillFrontpic
+ dba_pic BeedrillBackpic
+ dba_pic PidgeyFrontpic
+ dba_pic PidgeyBackpic
+ dba_pic PidgeottoFrontpic
+ dba_pic PidgeottoBackpic
+ dba_pic PidgeotFrontpic
+ dba_pic PidgeotBackpic
+ dba_pic RattataFrontpic
+ dba_pic RattataBackpic
+ dba_pic RaticateFrontpic
+ dba_pic RaticateBackpic
+ dba_pic SpearowFrontpic
+ dba_pic SpearowBackpic
+ dba_pic FearowFrontpic
+ dba_pic FearowBackpic
+ dba_pic EkansFrontpic
+ dba_pic EkansBackpic
+ dba_pic ArbokFrontpic
+ dba_pic ArbokBackpic
+ dba_pic PikachuFrontpic
+ dba_pic PikachuBackpic
+ dba_pic RaichuFrontpic
+ dba_pic RaichuBackpic
+ dba_pic SandshrewFrontpic
+ dba_pic SandshrewBackpic
+ dba_pic SandslashFrontpic
+ dba_pic SandslashBackpic
+ dba_pic NidoranFFrontpic
+ dba_pic NidoranFBackpic
+ dba_pic NidorinaFrontpic
+ dba_pic NidorinaBackpic
+ dba_pic NidoqueenFrontpic
+ dba_pic NidoqueenBackpic
+ dba_pic NidoranMFrontpic
+ dba_pic NidoranMBackpic
+ dba_pic NidorinoFrontpic
+ dba_pic NidorinoBackpic
+ dba_pic NidokingFrontpic
+ dba_pic NidokingBackpic
+ dba_pic ClefairyFrontpic
+ dba_pic ClefairyBackpic
+ dba_pic ClefableFrontpic
+ dba_pic ClefableBackpic
+ dba_pic VulpixFrontpic
+ dba_pic VulpixBackpic
+ dba_pic NinetalesFrontpic
+ dba_pic NinetalesBackpic
+ dba_pic JigglypuffFrontpic
+ dba_pic JigglypuffBackpic
+ dba_pic WigglytuffFrontpic
+ dba_pic WigglytuffBackpic
+ dba_pic ZubatFrontpic
+ dba_pic ZubatBackpic
+ dba_pic GolbatFrontpic
+ dba_pic GolbatBackpic
+ dba_pic OddishFrontpic
+ dba_pic OddishBackpic
+ dba_pic GloomFrontpic
+ dba_pic GloomBackpic
+ dba_pic VileplumeFrontpic
+ dba_pic VileplumeBackpic
+ dba_pic ParasFrontpic
+ dba_pic ParasBackpic
+ dba_pic ParasectFrontpic
+ dba_pic ParasectBackpic
+ dba_pic VenonatFrontpic
+ dba_pic VenonatBackpic
+ dba_pic VenomothFrontpic
+ dba_pic VenomothBackpic
+ dba_pic DiglettFrontpic
+ dba_pic DiglettBackpic
+ dba_pic DugtrioFrontpic
+ dba_pic DugtrioBackpic
+ dba_pic MeowthFrontpic
+ dba_pic MeowthBackpic
+ dba_pic PersianFrontpic
+ dba_pic PersianBackpic
+ dba_pic PsyduckFrontpic
+ dba_pic PsyduckBackpic
+ dba_pic GolduckFrontpic
+ dba_pic GolduckBackpic
+ dba_pic MankeyFrontpic
+ dba_pic MankeyBackpic
+ dba_pic PrimeapeFrontpic
+ dba_pic PrimeapeBackpic
+ dba_pic GrowlitheFrontpic
+ dba_pic GrowlitheBackpic
+ dba_pic ArcanineFrontpic
+ dba_pic ArcanineBackpic
+ dba_pic PoliwagFrontpic
+ dba_pic PoliwagBackpic
+ dba_pic PoliwhirlFrontpic
+ dba_pic PoliwhirlBackpic
+ dba_pic PoliwrathFrontpic
+ dba_pic PoliwrathBackpic
+ dba_pic AbraFrontpic
+ dba_pic AbraBackpic
+ dba_pic KadabraFrontpic
+ dba_pic KadabraBackpic
+ dba_pic AlakazamFrontpic
+ dba_pic AlakazamBackpic
+ dba_pic MachopFrontpic
+ dba_pic MachopBackpic
+ dba_pic MachokeFrontpic
+ dba_pic MachokeBackpic
+ dba_pic MachampFrontpic
+ dba_pic MachampBackpic
+ dba_pic BellsproutFrontpic
+ dba_pic BellsproutBackpic
+ dba_pic WeepinbellFrontpic
+ dba_pic WeepinbellBackpic
+ dba_pic VictreebelFrontpic
+ dba_pic VictreebelBackpic
+ dba_pic TentacoolFrontpic
+ dba_pic TentacoolBackpic
+ dba_pic TentacruelFrontpic
+ dba_pic TentacruelBackpic
+ dba_pic GeodudeFrontpic
+ dba_pic GeodudeBackpic
+ dba_pic GravelerFrontpic
+ dba_pic GravelerBackpic
+ dba_pic GolemFrontpic
+ dba_pic GolemBackpic
+ dba_pic PonytaFrontpic
+ dba_pic PonytaBackpic
+ dba_pic RapidashFrontpic
+ dba_pic RapidashBackpic
+ dba_pic SlowpokeFrontpic
+ dba_pic SlowpokeBackpic
+ dba_pic SlowbroFrontpic
+ dba_pic SlowbroBackpic
+ dba_pic MagnemiteFrontpic
+ dba_pic MagnemiteBackpic
+ dba_pic MagnetonFrontpic
+ dba_pic MagnetonBackpic
+ dba_pic FarfetchDFrontpic
+ dba_pic FarfetchDBackpic
+ dba_pic DoduoFrontpic
+ dba_pic DoduoBackpic
+ dba_pic DodrioFrontpic
+ dba_pic DodrioBackpic
+ dba_pic SeelFrontpic
+ dba_pic SeelBackpic
+ dba_pic DewgongFrontpic
+ dba_pic DewgongBackpic
+ dba_pic GrimerFrontpic
+ dba_pic GrimerBackpic
+ dba_pic MukFrontpic
+ dba_pic MukBackpic
+ dba_pic ShellderFrontpic
+ dba_pic ShellderBackpic
+ dba_pic CloysterFrontpic
+ dba_pic CloysterBackpic
+ dba_pic GastlyFrontpic
+ dba_pic GastlyBackpic
+ dba_pic HaunterFrontpic
+ dba_pic HaunterBackpic
+ dba_pic GengarFrontpic
+ dba_pic GengarBackpic
+ dba_pic OnixFrontpic
+ dba_pic OnixBackpic
+ dba_pic DrowzeeFrontpic
+ dba_pic DrowzeeBackpic
+ dba_pic HypnoFrontpic
+ dba_pic HypnoBackpic
+ dba_pic KrabbyFrontpic
+ dba_pic KrabbyBackpic
+ dba_pic KinglerFrontpic
+ dba_pic KinglerBackpic
+ dba_pic VoltorbFrontpic
+ dba_pic VoltorbBackpic
+ dba_pic ElectrodeFrontpic
+ dba_pic ElectrodeBackpic
+ dba_pic ExeggcuteFrontpic
+ dba_pic ExeggcuteBackpic
+ dba_pic ExeggutorFrontpic
+ dba_pic ExeggutorBackpic
+ dba_pic CuboneFrontpic
+ dba_pic CuboneBackpic
+ dba_pic MarowakFrontpic
+ dba_pic MarowakBackpic
+ dba_pic HitmonleeFrontpic
+ dba_pic HitmonleeBackpic
+ dba_pic HitmonchanFrontpic
+ dba_pic HitmonchanBackpic
+ dba_pic LickitungFrontpic
+ dba_pic LickitungBackpic
+ dba_pic KoffingFrontpic
+ dba_pic KoffingBackpic
+ dba_pic WeezingFrontpic
+ dba_pic WeezingBackpic
+ dba_pic RhyhornFrontpic
+ dba_pic RhyhornBackpic
+ dba_pic RhydonFrontpic
+ dba_pic RhydonBackpic
+ dba_pic ChanseyFrontpic
+ dba_pic ChanseyBackpic
+ dba_pic TangelaFrontpic
+ dba_pic TangelaBackpic
+ dba_pic KangaskhanFrontpic
+ dba_pic KangaskhanBackpic
+ dba_pic HorseaFrontpic
+ dba_pic HorseaBackpic
+ dba_pic SeadraFrontpic
+ dba_pic SeadraBackpic
+ dba_pic GoldeenFrontpic
+ dba_pic GoldeenBackpic
+ dba_pic SeakingFrontpic
+ dba_pic SeakingBackpic
+ dba_pic StaryuFrontpic
+ dba_pic StaryuBackpic
+ dba_pic StarmieFrontpic
+ dba_pic StarmieBackpic
+ dba_pic MrMimeFrontpic
+ dba_pic MrMimeBackpic
+ dba_pic ScytherFrontpic
+ dba_pic ScytherBackpic
+ dba_pic JynxFrontpic
+ dba_pic JynxBackpic
+ dba_pic ElectabuzzFrontpic
+ dba_pic ElectabuzzBackpic
+ dba_pic MagmarFrontpic
+ dba_pic MagmarBackpic
+ dba_pic PinsirFrontpic
+ dba_pic PinsirBackpic
+ dba_pic TaurosFrontpic
+ dba_pic TaurosBackpic
+ dba_pic MagikarpFrontpic
+ dba_pic MagikarpBackpic
+ dba_pic GyaradosFrontpic
+ dba_pic GyaradosBackpic
+ dba_pic LaprasFrontpic
+ dba_pic LaprasBackpic
+ dba_pic DittoFrontpic
+ dba_pic DittoBackpic
+ dba_pic EeveeFrontpic
+ dba_pic EeveeBackpic
+ dba_pic VaporeonFrontpic
+ dba_pic VaporeonBackpic
+ dba_pic JolteonFrontpic
+ dba_pic JolteonBackpic
+ dba_pic FlareonFrontpic
+ dba_pic FlareonBackpic
+ dba_pic PorygonFrontpic
+ dba_pic PorygonBackpic
+ dba_pic OmanyteFrontpic
+ dba_pic OmanyteBackpic
+ dba_pic OmastarFrontpic
+ dba_pic OmastarBackpic
+ dba_pic KabutoFrontpic
+ dba_pic KabutoBackpic
+ dba_pic KabutopsFrontpic
+ dba_pic KabutopsBackpic
+ dba_pic AerodactylFrontpic
+ dba_pic AerodactylBackpic
+ dba_pic SnorlaxFrontpic
+ dba_pic SnorlaxBackpic
+ dba_pic ArticunoFrontpic
+ dba_pic ArticunoBackpic
+ dba_pic ZapdosFrontpic
+ dba_pic ZapdosBackpic
+ dba_pic MoltresFrontpic
+ dba_pic MoltresBackpic
+ dba_pic DratiniFrontpic
+ dba_pic DratiniBackpic
+ dba_pic DragonairFrontpic
+ dba_pic DragonairBackpic
+ dba_pic DragoniteFrontpic
+ dba_pic DragoniteBackpic
+ dba_pic MewtwoFrontpic
+ dba_pic MewtwoBackpic
+ dba_pic MewFrontpic
+ dba_pic MewBackpic
+ dba_pic ChikoritaFrontpic
+ dba_pic ChikoritaBackpic
+ dba_pic BayleefFrontpic
+ dba_pic BayleefBackpic
+ dba_pic MeganiumFrontpic
+ dba_pic MeganiumBackpic
+ dba_pic CyndaquilFrontpic
+ dba_pic CyndaquilBackpic
+ dba_pic QuilavaFrontpic
+ dba_pic QuilavaBackpic
+ dba_pic TyphlosionFrontpic
+ dba_pic TyphlosionBackpic
+ dba_pic TotodileFrontpic
+ dba_pic TotodileBackpic
+ dba_pic CroconawFrontpic
+ dba_pic CroconawBackpic
+ dba_pic FeraligatrFrontpic
+ dba_pic FeraligatrBackpic
+ dba_pic SentretFrontpic
+ dba_pic SentretBackpic
+ dba_pic FurretFrontpic
+ dba_pic FurretBackpic
+ dba_pic HoothootFrontpic
+ dba_pic HoothootBackpic
+ dba_pic NoctowlFrontpic
+ dba_pic NoctowlBackpic
+ dba_pic LedybaFrontpic
+ dba_pic LedybaBackpic
+ dba_pic LedianFrontpic
+ dba_pic LedianBackpic
+ dba_pic SpinarakFrontpic
+ dba_pic SpinarakBackpic
+ dba_pic AriadosFrontpic
+ dba_pic AriadosBackpic
+ dba_pic CrobatFrontpic
+ dba_pic CrobatBackpic
+ dba_pic ChinchouFrontpic
+ dba_pic ChinchouBackpic
+ dba_pic LanturnFrontpic
+ dba_pic LanturnBackpic
+ dba_pic PichuFrontpic
+ dba_pic PichuBackpic
+ dba_pic CleffaFrontpic
+ dba_pic CleffaBackpic
+ dba_pic IgglybuffFrontpic
+ dba_pic IgglybuffBackpic
+ dba_pic TogepiFrontpic
+ dba_pic TogepiBackpic
+ dba_pic TogeticFrontpic
+ dba_pic TogeticBackpic
+ dba_pic NatuFrontpic
+ dba_pic NatuBackpic
+ dba_pic XatuFrontpic
+ dba_pic XatuBackpic
+ dba_pic MareepFrontpic
+ dba_pic MareepBackpic
+ dba_pic FlaaffyFrontpic
+ dba_pic FlaaffyBackpic
+ dba_pic AmpharosFrontpic
+ dba_pic AmpharosBackpic
+ dba_pic BellossomFrontpic
+ dba_pic BellossomBackpic
+ dba_pic MarillFrontpic
+ dba_pic MarillBackpic
+ dba_pic AzumarillFrontpic
+ dba_pic AzumarillBackpic
+ dba_pic SudowoodoFrontpic
+ dba_pic SudowoodoBackpic
+ dba_pic PolitoedFrontpic
+ dba_pic PolitoedBackpic
+ dba_pic HoppipFrontpic
+ dba_pic HoppipBackpic
+ dba_pic SkiploomFrontpic
+ dba_pic SkiploomBackpic
+ dba_pic JumpluffFrontpic
+ dba_pic JumpluffBackpic
+ dba_pic AipomFrontpic
+ dba_pic AipomBackpic
+ dba_pic SunkernFrontpic
+ dba_pic SunkernBackpic
+ dba_pic SunfloraFrontpic
+ dba_pic SunfloraBackpic
+ dba_pic YanmaFrontpic
+ dba_pic YanmaBackpic
+ dba_pic WooperFrontpic
+ dba_pic WooperBackpic
+ dba_pic QuagsireFrontpic
+ dba_pic QuagsireBackpic
+ dba_pic EspeonFrontpic
+ dba_pic EspeonBackpic
+ dba_pic UmbreonFrontpic
+ dba_pic UmbreonBackpic
+ dba_pic MurkrowFrontpic
+ dba_pic MurkrowBackpic
+ dba_pic SlowkingFrontpic
+ dba_pic SlowkingBackpic
+ dba_pic MisdreavusFrontpic
+ dba_pic MisdreavusBackpic
; Unown pics have their own table. See UnownPicPointers
dbw -1, -1
dbw -1, -1
- add_pic WobbuffetFrontpic
- add_pic WobbuffetBackpic
- add_pic GirafarigFrontpic
- add_pic GirafarigBackpic
- add_pic PinecoFrontpic
- add_pic PinecoBackpic
- add_pic ForretressFrontpic
- add_pic ForretressBackpic
- add_pic DunsparceFrontpic
- add_pic DunsparceBackpic
- add_pic GligarFrontpic
- add_pic GligarBackpic
- add_pic SteelixFrontpic
- add_pic SteelixBackpic
- add_pic SnubbullFrontpic
- add_pic SnubbullBackpic
- add_pic GranbullFrontpic
- add_pic GranbullBackpic
- add_pic QwilfishFrontpic
- add_pic QwilfishBackpic
- add_pic ScizorFrontpic
- add_pic ScizorBackpic
- add_pic ShuckleFrontpic
- add_pic ShuckleBackpic
- add_pic HeracrossFrontpic
- add_pic HeracrossBackpic
- add_pic SneaselFrontpic
- add_pic SneaselBackpic
- add_pic TeddiursaFrontpic
- add_pic TeddiursaBackpic
- add_pic UrsaringFrontpic
- add_pic UrsaringBackpic
- add_pic SlugmaFrontpic
- add_pic SlugmaBackpic
- add_pic MagcargoFrontpic
- add_pic MagcargoBackpic
- add_pic SwinubFrontpic
- add_pic SwinubBackpic
- add_pic PiloswineFrontpic
- add_pic PiloswineBackpic
- add_pic CorsolaFrontpic
- add_pic CorsolaBackpic
- add_pic RemoraidFrontpic
- add_pic RemoraidBackpic
- add_pic OctilleryFrontpic
- add_pic OctilleryBackpic
- add_pic DelibirdFrontpic
- add_pic DelibirdBackpic
- add_pic MantineFrontpic
- add_pic MantineBackpic
- add_pic SkarmoryFrontpic
- add_pic SkarmoryBackpic
- add_pic HoundourFrontpic
- add_pic HoundourBackpic
- add_pic HoundoomFrontpic
- add_pic HoundoomBackpic
- add_pic KingdraFrontpic
- add_pic KingdraBackpic
- add_pic PhanpyFrontpic
- add_pic PhanpyBackpic
- add_pic DonphanFrontpic
- add_pic DonphanBackpic
- add_pic Porygon2Frontpic
- add_pic Porygon2Backpic
- add_pic StantlerFrontpic
- add_pic StantlerBackpic
- add_pic SmeargleFrontpic
- add_pic SmeargleBackpic
- add_pic TyrogueFrontpic
- add_pic TyrogueBackpic
- add_pic HitmontopFrontpic
- add_pic HitmontopBackpic
- add_pic SmoochumFrontpic
- add_pic SmoochumBackpic
- add_pic ElekidFrontpic
- add_pic ElekidBackpic
- add_pic MagbyFrontpic
- add_pic MagbyBackpic
- add_pic MiltankFrontpic
- add_pic MiltankBackpic
- add_pic BlisseyFrontpic
- add_pic BlisseyBackpic
- add_pic RaikouFrontpic
- add_pic RaikouBackpic
- add_pic EnteiFrontpic
- add_pic EnteiBackpic
- add_pic SuicuneFrontpic
- add_pic SuicuneBackpic
- add_pic LarvitarFrontpic
- add_pic LarvitarBackpic
- add_pic PupitarFrontpic
- add_pic PupitarBackpic
- add_pic TyranitarFrontpic
- add_pic TyranitarBackpic
- add_pic LugiaFrontpic
- add_pic LugiaBackpic
- add_pic HoOhFrontpic
- add_pic HoOhBackpic
- add_pic CelebiFrontpic
- add_pic CelebiBackpic
+ dba_pic WobbuffetFrontpic
+ dba_pic WobbuffetBackpic
+ dba_pic GirafarigFrontpic
+ dba_pic GirafarigBackpic
+ dba_pic PinecoFrontpic
+ dba_pic PinecoBackpic
+ dba_pic ForretressFrontpic
+ dba_pic ForretressBackpic
+ dba_pic DunsparceFrontpic
+ dba_pic DunsparceBackpic
+ dba_pic GligarFrontpic
+ dba_pic GligarBackpic
+ dba_pic SteelixFrontpic
+ dba_pic SteelixBackpic
+ dba_pic SnubbullFrontpic
+ dba_pic SnubbullBackpic
+ dba_pic GranbullFrontpic
+ dba_pic GranbullBackpic
+ dba_pic QwilfishFrontpic
+ dba_pic QwilfishBackpic
+ dba_pic ScizorFrontpic
+ dba_pic ScizorBackpic
+ dba_pic ShuckleFrontpic
+ dba_pic ShuckleBackpic
+ dba_pic HeracrossFrontpic
+ dba_pic HeracrossBackpic
+ dba_pic SneaselFrontpic
+ dba_pic SneaselBackpic
+ dba_pic TeddiursaFrontpic
+ dba_pic TeddiursaBackpic
+ dba_pic UrsaringFrontpic
+ dba_pic UrsaringBackpic
+ dba_pic SlugmaFrontpic
+ dba_pic SlugmaBackpic
+ dba_pic MagcargoFrontpic
+ dba_pic MagcargoBackpic
+ dba_pic SwinubFrontpic
+ dba_pic SwinubBackpic
+ dba_pic PiloswineFrontpic
+ dba_pic PiloswineBackpic
+ dba_pic CorsolaFrontpic
+ dba_pic CorsolaBackpic
+ dba_pic RemoraidFrontpic
+ dba_pic RemoraidBackpic
+ dba_pic OctilleryFrontpic
+ dba_pic OctilleryBackpic
+ dba_pic DelibirdFrontpic
+ dba_pic DelibirdBackpic
+ dba_pic MantineFrontpic
+ dba_pic MantineBackpic
+ dba_pic SkarmoryFrontpic
+ dba_pic SkarmoryBackpic
+ dba_pic HoundourFrontpic
+ dba_pic HoundourBackpic
+ dba_pic HoundoomFrontpic
+ dba_pic HoundoomBackpic
+ dba_pic KingdraFrontpic
+ dba_pic KingdraBackpic
+ dba_pic PhanpyFrontpic
+ dba_pic PhanpyBackpic
+ dba_pic DonphanFrontpic
+ dba_pic DonphanBackpic
+ dba_pic Porygon2Frontpic
+ dba_pic Porygon2Backpic
+ dba_pic StantlerFrontpic
+ dba_pic StantlerBackpic
+ dba_pic SmeargleFrontpic
+ dba_pic SmeargleBackpic
+ dba_pic TyrogueFrontpic
+ dba_pic TyrogueBackpic
+ dba_pic HitmontopFrontpic
+ dba_pic HitmontopBackpic
+ dba_pic SmoochumFrontpic
+ dba_pic SmoochumBackpic
+ dba_pic ElekidFrontpic
+ dba_pic ElekidBackpic
+ dba_pic MagbyFrontpic
+ dba_pic MagbyBackpic
+ dba_pic MiltankFrontpic
+ dba_pic MiltankBackpic
+ dba_pic BlisseyFrontpic
+ dba_pic BlisseyBackpic
+ dba_pic RaikouFrontpic
+ dba_pic RaikouBackpic
+ dba_pic EnteiFrontpic
+ dba_pic EnteiBackpic
+ dba_pic SuicuneFrontpic
+ dba_pic SuicuneBackpic
+ dba_pic LarvitarFrontpic
+ dba_pic LarvitarBackpic
+ dba_pic PupitarFrontpic
+ dba_pic PupitarBackpic
+ dba_pic TyranitarFrontpic
+ dba_pic TyranitarBackpic
+ dba_pic LugiaFrontpic
+ dba_pic LugiaBackpic
+ dba_pic HoOhFrontpic
+ dba_pic HoOhBackpic
+ dba_pic CelebiFrontpic
+ dba_pic CelebiBackpic
dbw -1, -1 ; unused
dbw -1, -1 ; unused
- add_pic EggPic
+ dba_pic EggPic
dbw -1, -1 ; unused
--- a/gfx/pics/unown_pic_pointers.asm
+++ b/gfx/pics/unown_pic_pointers.asm
@@ -1,54 +1,54 @@
UnownPicPointers::
; entries correspond to Unown letters, two apiece
- add_pic UnownAFrontpic
- add_pic UnownABackpic
- add_pic UnownBFrontpic
- add_pic UnownBBackpic
- add_pic UnownCFrontpic
- add_pic UnownCBackpic
- add_pic UnownDFrontpic
- add_pic UnownDBackpic
- add_pic UnownEFrontpic
- add_pic UnownEBackpic
- add_pic UnownFFrontpic
- add_pic UnownFBackpic
- add_pic UnownGFrontpic
- add_pic UnownGBackpic
- add_pic UnownHFrontpic
- add_pic UnownHBackpic
- add_pic UnownIFrontpic
- add_pic UnownIBackpic
- add_pic UnownJFrontpic
- add_pic UnownJBackpic
- add_pic UnownKFrontpic
- add_pic UnownKBackpic
- add_pic UnownLFrontpic
- add_pic UnownLBackpic
- add_pic UnownMFrontpic
- add_pic UnownMBackpic
- add_pic UnownNFrontpic
- add_pic UnownNBackpic
- add_pic UnownOFrontpic
- add_pic UnownOBackpic
- add_pic UnownPFrontpic
- add_pic UnownPBackpic
- add_pic UnownQFrontpic
- add_pic UnownQBackpic
- add_pic UnownRFrontpic
- add_pic UnownRBackpic
- add_pic UnownSFrontpic
- add_pic UnownSBackpic
- add_pic UnownTFrontpic
- add_pic UnownTBackpic
- add_pic UnownUFrontpic
- add_pic UnownUBackpic
- add_pic UnownVFrontpic
- add_pic UnownVBackpic
- add_pic UnownWFrontpic
- add_pic UnownWBackpic
- add_pic UnownXFrontpic
- add_pic UnownXBackpic
- add_pic UnownYFrontpic
- add_pic UnownYBackpic
- add_pic UnownZFrontpic
- add_pic UnownZBackpic
+ dba_pic UnownAFrontpic
+ dba_pic UnownABackpic
+ dba_pic UnownBFrontpic
+ dba_pic UnownBBackpic
+ dba_pic UnownCFrontpic
+ dba_pic UnownCBackpic
+ dba_pic UnownDFrontpic
+ dba_pic UnownDBackpic
+ dba_pic UnownEFrontpic
+ dba_pic UnownEBackpic
+ dba_pic UnownFFrontpic
+ dba_pic UnownFBackpic
+ dba_pic UnownGFrontpic
+ dba_pic UnownGBackpic
+ dba_pic UnownHFrontpic
+ dba_pic UnownHBackpic
+ dba_pic UnownIFrontpic
+ dba_pic UnownIBackpic
+ dba_pic UnownJFrontpic
+ dba_pic UnownJBackpic
+ dba_pic UnownKFrontpic
+ dba_pic UnownKBackpic
+ dba_pic UnownLFrontpic
+ dba_pic UnownLBackpic
+ dba_pic UnownMFrontpic
+ dba_pic UnownMBackpic
+ dba_pic UnownNFrontpic
+ dba_pic UnownNBackpic
+ dba_pic UnownOFrontpic
+ dba_pic UnownOBackpic
+ dba_pic UnownPFrontpic
+ dba_pic UnownPBackpic
+ dba_pic UnownQFrontpic
+ dba_pic UnownQBackpic
+ dba_pic UnownRFrontpic
+ dba_pic UnownRBackpic
+ dba_pic UnownSFrontpic
+ dba_pic UnownSBackpic
+ dba_pic UnownTFrontpic
+ dba_pic UnownTBackpic
+ dba_pic UnownUFrontpic
+ dba_pic UnownUBackpic
+ dba_pic UnownVFrontpic
+ dba_pic UnownVBackpic
+ dba_pic UnownWFrontpic
+ dba_pic UnownWBackpic
+ dba_pic UnownXFrontpic
+ dba_pic UnownXBackpic
+ dba_pic UnownYFrontpic
+ dba_pic UnownYBackpic
+ dba_pic UnownZFrontpic
+ dba_pic UnownZBackpic
binary files /dev/null b/gfx/printer/bold_a.png differ
binary files /dev/null b/gfx/printer/bold_b.png differ
binary files /dev/null b/gfx/printer/hp.png differ
binary files /dev/null b/gfx/printer/lv.png differ
binary files a/gfx/special/celebi/1.png /dev/null differ
binary files a/gfx/special/celebi/2.png /dev/null differ
binary files a/gfx/special/celebi/3.png /dev/null differ
binary files a/gfx/special/celebi/4.png /dev/null differ
binary files a/gfx/special/celebi/leaf.png /dev/null differ
--- a/gfx/sprites.asm
+++ b/gfx/sprites.asm
@@ -1,108 +1,108 @@
SECTION "Sprites 1", ROMX
-ChrisSpriteGFX: INCBIN "gfx/sprites/chris.2bpp" ; c0000
-ChrisBikeSpriteGFX: INCBIN "gfx/sprites/chris_bike.2bpp" ; c0180
-GameboyKidSpriteGFX: INCBIN "gfx/sprites/gameboy_kid.2bpp" ; c0300
-SilverSpriteGFX: INCBIN "gfx/sprites/silver.2bpp" ; c03c0
-OakSpriteGFX: INCBIN "gfx/sprites/oak.2bpp" ; c0540
-RedSpriteGFX: INCBIN "gfx/sprites/red.2bpp" ; c06c0
-BlueSpriteGFX: INCBIN "gfx/sprites/blue.2bpp" ; c0840
-BillSpriteGFX: INCBIN "gfx/sprites/bill.2bpp" ; c09c0
-ElderSpriteGFX: INCBIN "gfx/sprites/elder.2bpp" ; c0b40
-JanineSpriteGFX: INCBIN "gfx/sprites/janine.2bpp" ; c0cc0
-KurtSpriteGFX: INCBIN "gfx/sprites/kurt.2bpp" ; c0e40
-MomSpriteGFX: INCBIN "gfx/sprites/mom.2bpp" ; c0fc0
-BlaineSpriteGFX: INCBIN "gfx/sprites/blaine.2bpp" ; c1140
-RedsMomSpriteGFX: INCBIN "gfx/sprites/reds_mom.2bpp" ; c12c0
-DaisySpriteGFX: INCBIN "gfx/sprites/daisy.2bpp" ; c1440
-ElmSpriteGFX: INCBIN "gfx/sprites/elm.2bpp" ; c15c0
-WillSpriteGFX: INCBIN "gfx/sprites/will.2bpp" ; c1740
-FalknerSpriteGFX: INCBIN "gfx/sprites/falkner.2bpp" ; c1800
-WhitneySpriteGFX: INCBIN "gfx/sprites/whitney.2bpp" ; c1980
-BugsySpriteGFX: INCBIN "gfx/sprites/bugsy.2bpp" ; c1b00
-MortySpriteGFX: INCBIN "gfx/sprites/morty.2bpp" ; c1c80
-ChuckSpriteGFX: INCBIN "gfx/sprites/chuck.2bpp" ; c1e00
-JasmineSpriteGFX: INCBIN "gfx/sprites/jasmine.2bpp" ; c1f80
-PryceSpriteGFX: INCBIN "gfx/sprites/pryce.2bpp" ; c2100
-ClairSpriteGFX: INCBIN "gfx/sprites/clair.2bpp" ; c2280
-BrockSpriteGFX: INCBIN "gfx/sprites/brock.2bpp" ; c2400
-KarenSpriteGFX: INCBIN "gfx/sprites/karen.2bpp" ; c2580
-BrunoSpriteGFX: INCBIN "gfx/sprites/bruno.2bpp" ; c2640
-MistySpriteGFX: INCBIN "gfx/sprites/misty.2bpp" ; c27c0
-LanceSpriteGFX: INCBIN "gfx/sprites/lance.2bpp" ; c2940
-SurgeSpriteGFX: INCBIN "gfx/sprites/surge.2bpp" ; c2ac0
-ErikaSpriteGFX: INCBIN "gfx/sprites/erika.2bpp" ; c2c40
-KogaSpriteGFX: INCBIN "gfx/sprites/koga.2bpp" ; c2dc0
-SabrinaSpriteGFX: INCBIN "gfx/sprites/sabrina.2bpp" ; c2f40
-CooltrainerMSpriteGFX: INCBIN "gfx/sprites/cooltrainer_m.2bpp" ; c30c0
-CooltrainerFSpriteGFX: INCBIN "gfx/sprites/cooltrainer_f.2bpp" ; c3240
-BugCatcherSpriteGFX: INCBIN "gfx/sprites/bug_catcher.2bpp" ; c33c0
-TwinSpriteGFX: INCBIN "gfx/sprites/twin.2bpp" ; c3540
-YoungsterSpriteGFX: INCBIN "gfx/sprites/youngster.2bpp" ; c36c0
-LassSpriteGFX: INCBIN "gfx/sprites/lass.2bpp" ; c3840
-TeacherSpriteGFX: INCBIN "gfx/sprites/teacher.2bpp" ; c39c0
-BuenaSpriteGFX: INCBIN "gfx/sprites/buena.2bpp" ; c3b40
-SuperNerdSpriteGFX: INCBIN "gfx/sprites/super_nerd.2bpp" ; c3cc0
-RockerSpriteGFX: INCBIN "gfx/sprites/rocker.2bpp" ; c3e40
+ChrisSpriteGFX:: INCBIN "gfx/sprites/chris.2bpp" ; c0000
+ChrisBikeSpriteGFX:: INCBIN "gfx/sprites/chris_bike.2bpp" ; c0180
+GameboyKidSpriteGFX:: INCBIN "gfx/sprites/gameboy_kid.2bpp" ; c0300
+SilverSpriteGFX:: INCBIN "gfx/sprites/silver.2bpp" ; c03c0
+OakSpriteGFX:: INCBIN "gfx/sprites/oak.2bpp" ; c0540
+RedSpriteGFX:: INCBIN "gfx/sprites/red.2bpp" ; c06c0
+BlueSpriteGFX:: INCBIN "gfx/sprites/blue.2bpp" ; c0840
+BillSpriteGFX:: INCBIN "gfx/sprites/bill.2bpp" ; c09c0
+ElderSpriteGFX:: INCBIN "gfx/sprites/elder.2bpp" ; c0b40
+JanineSpriteGFX:: INCBIN "gfx/sprites/janine.2bpp" ; c0cc0
+KurtSpriteGFX:: INCBIN "gfx/sprites/kurt.2bpp" ; c0e40
+MomSpriteGFX:: INCBIN "gfx/sprites/mom.2bpp" ; c0fc0
+BlaineSpriteGFX:: INCBIN "gfx/sprites/blaine.2bpp" ; c1140
+RedsMomSpriteGFX:: INCBIN "gfx/sprites/reds_mom.2bpp" ; c12c0
+DaisySpriteGFX:: INCBIN "gfx/sprites/daisy.2bpp" ; c1440
+ElmSpriteGFX:: INCBIN "gfx/sprites/elm.2bpp" ; c15c0
+WillSpriteGFX:: INCBIN "gfx/sprites/will.2bpp" ; c1740
+FalknerSpriteGFX:: INCBIN "gfx/sprites/falkner.2bpp" ; c1800
+WhitneySpriteGFX:: INCBIN "gfx/sprites/whitney.2bpp" ; c1980
+BugsySpriteGFX:: INCBIN "gfx/sprites/bugsy.2bpp" ; c1b00
+MortySpriteGFX:: INCBIN "gfx/sprites/morty.2bpp" ; c1c80
+ChuckSpriteGFX:: INCBIN "gfx/sprites/chuck.2bpp" ; c1e00
+JasmineSpriteGFX:: INCBIN "gfx/sprites/jasmine.2bpp" ; c1f80
+PryceSpriteGFX:: INCBIN "gfx/sprites/pryce.2bpp" ; c2100
+ClairSpriteGFX:: INCBIN "gfx/sprites/clair.2bpp" ; c2280
+BrockSpriteGFX:: INCBIN "gfx/sprites/brock.2bpp" ; c2400
+KarenSpriteGFX:: INCBIN "gfx/sprites/karen.2bpp" ; c2580
+BrunoSpriteGFX:: INCBIN "gfx/sprites/bruno.2bpp" ; c2640
+MistySpriteGFX:: INCBIN "gfx/sprites/misty.2bpp" ; c27c0
+LanceSpriteGFX:: INCBIN "gfx/sprites/lance.2bpp" ; c2940
+SurgeSpriteGFX:: INCBIN "gfx/sprites/surge.2bpp" ; c2ac0
+ErikaSpriteGFX:: INCBIN "gfx/sprites/erika.2bpp" ; c2c40
+KogaSpriteGFX:: INCBIN "gfx/sprites/koga.2bpp" ; c2dc0
+SabrinaSpriteGFX:: INCBIN "gfx/sprites/sabrina.2bpp" ; c2f40
+CooltrainerMSpriteGFX:: INCBIN "gfx/sprites/cooltrainer_m.2bpp" ; c30c0
+CooltrainerFSpriteGFX:: INCBIN "gfx/sprites/cooltrainer_f.2bpp" ; c3240
+BugCatcherSpriteGFX:: INCBIN "gfx/sprites/bug_catcher.2bpp" ; c33c0
+TwinSpriteGFX:: INCBIN "gfx/sprites/twin.2bpp" ; c3540
+YoungsterSpriteGFX:: INCBIN "gfx/sprites/youngster.2bpp" ; c36c0
+LassSpriteGFX:: INCBIN "gfx/sprites/lass.2bpp" ; c3840
+TeacherSpriteGFX:: INCBIN "gfx/sprites/teacher.2bpp" ; c39c0
+BuenaSpriteGFX:: INCBIN "gfx/sprites/buena.2bpp" ; c3b40
+SuperNerdSpriteGFX:: INCBIN "gfx/sprites/super_nerd.2bpp" ; c3cc0
+RockerSpriteGFX:: INCBIN "gfx/sprites/rocker.2bpp" ; c3e40
SECTION "Sprites 2", ROMX
-PokefanMSpriteGFX: INCBIN "gfx/sprites/pokefan_m.2bpp" ; c4000
-PokefanFSpriteGFX: INCBIN "gfx/sprites/pokefan_f.2bpp" ; c4180
-GrampsSpriteGFX: INCBIN "gfx/sprites/gramps.2bpp" ; c4300
-GrannySpriteGFX: INCBIN "gfx/sprites/granny.2bpp" ; c4480
-SwimmerGuySpriteGFX: INCBIN "gfx/sprites/swimmer_guy.2bpp" ; c4600
-SwimmerGirlSpriteGFX: INCBIN "gfx/sprites/swimmer_girl.2bpp" ; c4780
-BigSnorlaxSpriteGFX: INCBIN "gfx/sprites/big_snorlax.2bpp" ; c4900
-SurfingPikachuSpriteGFX: INCBIN "gfx/sprites/surfing_pikachu.2bpp" ; c4980
-RocketSpriteGFX: INCBIN "gfx/sprites/rocket.2bpp" ; c4b00
-RocketGirlSpriteGFX: INCBIN "gfx/sprites/rocket_girl.2bpp" ; c4c80
-NurseSpriteGFX: INCBIN "gfx/sprites/nurse.2bpp" ; c4e00
-LinkReceptionistSpriteGFX: INCBIN "gfx/sprites/link_receptionist.2bpp" ; c4ec0
-ClerkSpriteGFX: INCBIN "gfx/sprites/clerk.2bpp" ; c5040
-FisherSpriteGFX: INCBIN "gfx/sprites/fisher.2bpp" ; c51c0
-FishingGuruSpriteGFX: INCBIN "gfx/sprites/fishing_guru.2bpp" ; c5340
-ScientistSpriteGFX: INCBIN "gfx/sprites/scientist.2bpp" ; c54c0
-KimonoGirlSpriteGFX: INCBIN "gfx/sprites/kimono_girl.2bpp" ; c5640
-SageSpriteGFX: INCBIN "gfx/sprites/sage.2bpp" ; c57c0
-UnusedGuySpriteGFX: INCBIN "gfx/sprites/unused_guy.2bpp" ; c5940
-GentlemanSpriteGFX: INCBIN "gfx/sprites/gentleman.2bpp" ; c5ac0
-BlackBeltSpriteGFX: INCBIN "gfx/sprites/black_belt.2bpp" ; c5c40
-ReceptionistSpriteGFX: INCBIN "gfx/sprites/receptionist.2bpp" ; c5dc0
-OfficerSpriteGFX: INCBIN "gfx/sprites/officer.2bpp" ; c5f40
-CalSpriteGFX: INCBIN "gfx/sprites/cal.2bpp" ; c60c0
-SlowpokeSpriteGFX: INCBIN "gfx/sprites/slowpoke.2bpp" ; c6240
-CaptainSpriteGFX: INCBIN "gfx/sprites/captain.2bpp" ; c6280
-BigLaprasSpriteGFX: INCBIN "gfx/sprites/big_lapras.2bpp" ; c6400
-GymGuySpriteGFX: INCBIN "gfx/sprites/gym_guy.2bpp" ; c6480
-SailorSpriteGFX: INCBIN "gfx/sprites/sailor.2bpp" ; c6600
-BikerSpriteGFX: INCBIN "gfx/sprites/biker.2bpp" ; c6780
-PharmacistSpriteGFX: INCBIN "gfx/sprites/pharmacist.2bpp" ; c6900
-MonsterSpriteGFX: INCBIN "gfx/sprites/monster.2bpp" ; c6a80
-FairySpriteGFX: INCBIN "gfx/sprites/fairy.2bpp" ; c6c00
-BirdSpriteGFX: INCBIN "gfx/sprites/bird.2bpp" ; c6d80
-DragonSpriteGFX: INCBIN "gfx/sprites/dragon.2bpp" ; c6f00
-BigOnixSpriteGFX: INCBIN "gfx/sprites/big_onix.2bpp" ; c7080
-N64SpriteGFX: INCBIN "gfx/sprites/n64.2bpp" ; c7140
-SudowoodoSpriteGFX: INCBIN "gfx/sprites/sudowoodo.2bpp" ; c7180
-SurfSpriteGFX: INCBIN "gfx/sprites/surf.2bpp" ; c7200
-PokeBallSpriteGFX: INCBIN "gfx/sprites/poke_ball.2bpp" ; c7380
-PokedexSpriteGFX: INCBIN "gfx/sprites/pokedex.2bpp" ; c7500
-PaperSpriteGFX: INCBIN "gfx/sprites/paper.2bpp" ; c7680
-VirtualBoySpriteGFX: INCBIN "gfx/sprites/virtual_boy.2bpp" ; c7800
-OldLinkReceptionistSpriteGFX: INCBIN "gfx/sprites/old_link_receptionist.2bpp" ; c7840
-RockSpriteGFX: INCBIN "gfx/sprites/rock.2bpp" ; c7880
-BoulderSpriteGFX: INCBIN "gfx/sprites/boulder.2bpp" ; c78c0
-SnesSpriteGFX: INCBIN "gfx/sprites/snes.2bpp" ; c7900
-FamicomSpriteGFX: INCBIN "gfx/sprites/famicom.2bpp" ; c7940
-FruitTreeSpriteGFX: INCBIN "gfx/sprites/fruit_tree.2bpp" ; c7980
-GoldTrophySpriteGFX: INCBIN "gfx/sprites/gold_trophy.2bpp" ; c79c0
-SilverTrophySpriteGFX: INCBIN "gfx/sprites/silver_trophy.2bpp" ; c7a00
-KrisSpriteGFX: INCBIN "gfx/sprites/kris.2bpp" ; c7a40
-KrisBikeSpriteGFX: INCBIN "gfx/sprites/kris_bike.2bpp" ; c7bc0
-KurtOutsideSpriteGFX: INCBIN "gfx/sprites/kurt_outside.2bpp" ; c7d40
-SuicuneSpriteGFX: INCBIN "gfx/sprites/suicune.2bpp" ; c7e00
-EnteiSpriteGFX: INCBIN "gfx/sprites/entei.2bpp" ; c7e40
-RaikouSpriteGFX: INCBIN "gfx/sprites/raikou.2bpp" ; c7e80
-StandingYoungsterSpriteGFX: INCBIN "gfx/sprites/standing_youngster.2bpp" ; c7ec0
+PokefanMSpriteGFX:: INCBIN "gfx/sprites/pokefan_m.2bpp" ; c4000
+PokefanFSpriteGFX:: INCBIN "gfx/sprites/pokefan_f.2bpp" ; c4180
+GrampsSpriteGFX:: INCBIN "gfx/sprites/gramps.2bpp" ; c4300
+GrannySpriteGFX:: INCBIN "gfx/sprites/granny.2bpp" ; c4480
+SwimmerGuySpriteGFX:: INCBIN "gfx/sprites/swimmer_guy.2bpp" ; c4600
+SwimmerGirlSpriteGFX:: INCBIN "gfx/sprites/swimmer_girl.2bpp" ; c4780
+BigSnorlaxSpriteGFX:: INCBIN "gfx/sprites/big_snorlax.2bpp" ; c4900
+SurfingPikachuSpriteGFX:: INCBIN "gfx/sprites/surfing_pikachu.2bpp" ; c4980
+RocketSpriteGFX:: INCBIN "gfx/sprites/rocket.2bpp" ; c4b00
+RocketGirlSpriteGFX:: INCBIN "gfx/sprites/rocket_girl.2bpp" ; c4c80
+NurseSpriteGFX:: INCBIN "gfx/sprites/nurse.2bpp" ; c4e00
+LinkReceptionistSpriteGFX:: INCBIN "gfx/sprites/link_receptionist.2bpp" ; c4ec0
+ClerkSpriteGFX:: INCBIN "gfx/sprites/clerk.2bpp" ; c5040
+FisherSpriteGFX:: INCBIN "gfx/sprites/fisher.2bpp" ; c51c0
+FishingGuruSpriteGFX:: INCBIN "gfx/sprites/fishing_guru.2bpp" ; c5340
+ScientistSpriteGFX:: INCBIN "gfx/sprites/scientist.2bpp" ; c54c0
+KimonoGirlSpriteGFX:: INCBIN "gfx/sprites/kimono_girl.2bpp" ; c5640
+SageSpriteGFX:: INCBIN "gfx/sprites/sage.2bpp" ; c57c0
+UnusedGuySpriteGFX:: INCBIN "gfx/sprites/unused_guy.2bpp" ; c5940
+GentlemanSpriteGFX:: INCBIN "gfx/sprites/gentleman.2bpp" ; c5ac0
+BlackBeltSpriteGFX:: INCBIN "gfx/sprites/black_belt.2bpp" ; c5c40
+ReceptionistSpriteGFX:: INCBIN "gfx/sprites/receptionist.2bpp" ; c5dc0
+OfficerSpriteGFX:: INCBIN "gfx/sprites/officer.2bpp" ; c5f40
+CalSpriteGFX:: INCBIN "gfx/sprites/cal.2bpp" ; c60c0
+SlowpokeSpriteGFX:: INCBIN "gfx/sprites/slowpoke.2bpp" ; c6240
+CaptainSpriteGFX:: INCBIN "gfx/sprites/captain.2bpp" ; c6280
+BigLaprasSpriteGFX:: INCBIN "gfx/sprites/big_lapras.2bpp" ; c6400
+GymGuySpriteGFX:: INCBIN "gfx/sprites/gym_guy.2bpp" ; c6480
+SailorSpriteGFX:: INCBIN "gfx/sprites/sailor.2bpp" ; c6600
+BikerSpriteGFX:: INCBIN "gfx/sprites/biker.2bpp" ; c6780
+PharmacistSpriteGFX:: INCBIN "gfx/sprites/pharmacist.2bpp" ; c6900
+MonsterSpriteGFX:: INCBIN "gfx/sprites/monster.2bpp" ; c6a80
+FairySpriteGFX:: INCBIN "gfx/sprites/fairy.2bpp" ; c6c00
+BirdSpriteGFX:: INCBIN "gfx/sprites/bird.2bpp" ; c6d80
+DragonSpriteGFX:: INCBIN "gfx/sprites/dragon.2bpp" ; c6f00
+BigOnixSpriteGFX:: INCBIN "gfx/sprites/big_onix.2bpp" ; c7080
+N64SpriteGFX:: INCBIN "gfx/sprites/n64.2bpp" ; c7140
+SudowoodoSpriteGFX:: INCBIN "gfx/sprites/sudowoodo.2bpp" ; c7180
+SurfSpriteGFX:: INCBIN "gfx/sprites/surf.2bpp" ; c7200
+PokeBallSpriteGFX:: INCBIN "gfx/sprites/poke_ball.2bpp" ; c7380
+PokedexSpriteGFX:: INCBIN "gfx/sprites/pokedex.2bpp" ; c7500
+PaperSpriteGFX:: INCBIN "gfx/sprites/paper.2bpp" ; c7680
+VirtualBoySpriteGFX:: INCBIN "gfx/sprites/virtual_boy.2bpp" ; c7800
+OldLinkReceptionistSpriteGFX:: INCBIN "gfx/sprites/old_link_receptionist.2bpp" ; c7840
+RockSpriteGFX:: INCBIN "gfx/sprites/rock.2bpp" ; c7880
+BoulderSpriteGFX:: INCBIN "gfx/sprites/boulder.2bpp" ; c78c0
+SnesSpriteGFX:: INCBIN "gfx/sprites/snes.2bpp" ; c7900
+FamicomSpriteGFX:: INCBIN "gfx/sprites/famicom.2bpp" ; c7940
+FruitTreeSpriteGFX:: INCBIN "gfx/sprites/fruit_tree.2bpp" ; c7980
+GoldTrophySpriteGFX:: INCBIN "gfx/sprites/gold_trophy.2bpp" ; c79c0
+SilverTrophySpriteGFX:: INCBIN "gfx/sprites/silver_trophy.2bpp" ; c7a00
+KrisSpriteGFX:: INCBIN "gfx/sprites/kris.2bpp" ; c7a40
+KrisBikeSpriteGFX:: INCBIN "gfx/sprites/kris_bike.2bpp" ; c7bc0
+KurtOutsideSpriteGFX:: INCBIN "gfx/sprites/kurt_outside.2bpp" ; c7d40
+SuicuneSpriteGFX:: INCBIN "gfx/sprites/suicune.2bpp" ; c7e00
+EnteiSpriteGFX:: INCBIN "gfx/sprites/entei.2bpp" ; c7e40
+RaikouSpriteGFX:: INCBIN "gfx/sprites/raikou.2bpp" ; c7e80
+StandingYoungsterSpriteGFX:: INCBIN "gfx/sprites/standing_youngster.2bpp" ; c7ec0
binary files /dev/null b/gfx/trade/unused_gen_1_border_tiles.png differ
--- a/gfx/trainer_pic_pointers.asm
+++ b/gfx/trainer_pic_pointers.asm
@@ -1,69 +1,69 @@
TrainerPicPointers::
; entries correspond to trainer classes (see constants/trainer_constants.asm)
- add_pic FalknerPic
- add_pic WhitneyPic
- add_pic BugsyPic
- add_pic MortyPic
- add_pic PrycePic
- add_pic JasminePic
- add_pic ChuckPic
- add_pic ClairPic
- add_pic Rival1Pic
- add_pic PokemonProfPic
- add_pic WillPic
- add_pic CalPic
- add_pic BrunoPic
- add_pic KarenPic
- add_pic KogaPic
- add_pic ChampionPic
- add_pic BrockPic
- add_pic MistyPic
- add_pic LtSurgePic
- add_pic ScientistPic
- add_pic ErikaPic
- add_pic YoungsterPic
- add_pic SchoolboyPic
- add_pic BirdKeeperPic
- add_pic LassPic
- add_pic JaninePic
- add_pic CooltrainermPic
- add_pic CooltrainerfPic
- add_pic BeautyPic
- add_pic PokemaniacPic
- add_pic GruntmPic
- add_pic GentlemanPic
- add_pic SkierPic
- add_pic TeacherPic
- add_pic SabrinaPic
- add_pic BugCatcherPic
- add_pic FisherPic
- add_pic SwimmermPic
- add_pic SwimmerfPic
- add_pic SailorPic
- add_pic SuperNerdPic
- add_pic Rival2Pic
- add_pic GuitaristPic
- add_pic HikerPic
- add_pic BikerPic
- add_pic BlainePic
- add_pic BurglarPic
- add_pic FirebreatherPic
- add_pic JugglerPic
- add_pic BlackbeltTPic
- add_pic ExecutivemPic
- add_pic PsychicTPic
- add_pic PicnickerPic
- add_pic CamperPic
- add_pic ExecutivefPic
- add_pic SagePic
- add_pic MediumPic
- add_pic BoarderPic
- add_pic PokefanmPic
- add_pic KimonoGirlPic
- add_pic TwinsPic
- add_pic PokefanfPic
- add_pic RedPic
- add_pic BluePic
- add_pic OfficerPic
- add_pic GruntfPic
- add_pic MysticalmanPic
+ dba_pic FalknerPic
+ dba_pic WhitneyPic
+ dba_pic BugsyPic
+ dba_pic MortyPic
+ dba_pic PrycePic
+ dba_pic JasminePic
+ dba_pic ChuckPic
+ dba_pic ClairPic
+ dba_pic Rival1Pic
+ dba_pic PokemonProfPic
+ dba_pic WillPic
+ dba_pic CalPic
+ dba_pic BrunoPic
+ dba_pic KarenPic
+ dba_pic KogaPic
+ dba_pic ChampionPic
+ dba_pic BrockPic
+ dba_pic MistyPic
+ dba_pic LtSurgePic
+ dba_pic ScientistPic
+ dba_pic ErikaPic
+ dba_pic YoungsterPic
+ dba_pic SchoolboyPic
+ dba_pic BirdKeeperPic
+ dba_pic LassPic
+ dba_pic JaninePic
+ dba_pic CooltrainermPic
+ dba_pic CooltrainerfPic
+ dba_pic BeautyPic
+ dba_pic PokemaniacPic
+ dba_pic GruntmPic
+ dba_pic GentlemanPic
+ dba_pic SkierPic
+ dba_pic TeacherPic
+ dba_pic SabrinaPic
+ dba_pic BugCatcherPic
+ dba_pic FisherPic
+ dba_pic SwimmermPic
+ dba_pic SwimmerfPic
+ dba_pic SailorPic
+ dba_pic SuperNerdPic
+ dba_pic Rival2Pic
+ dba_pic GuitaristPic
+ dba_pic HikerPic
+ dba_pic BikerPic
+ dba_pic BlainePic
+ dba_pic BurglarPic
+ dba_pic FirebreatherPic
+ dba_pic JugglerPic
+ dba_pic BlackbeltTPic
+ dba_pic ExecutivemPic
+ dba_pic PsychicTPic
+ dba_pic PicnickerPic
+ dba_pic CamperPic
+ dba_pic ExecutivefPic
+ dba_pic SagePic
+ dba_pic MediumPic
+ dba_pic BoarderPic
+ dba_pic PokefanmPic
+ dba_pic KimonoGirlPic
+ dba_pic TwinsPic
+ dba_pic PokefanfPic
+ dba_pic RedPic
+ dba_pic BluePic
+ dba_pic OfficerPic
+ dba_pic GruntfPic
+ dba_pic MysticalmanPic
binary files a/gfx/unknown/ascii_font.png /dev/null differ
binary files a/gfx/unknown/bold_a.png /dev/null differ
binary files a/gfx/unknown/bold_b.png /dev/null differ
binary files a/gfx/unknown/bold_font.png /dev/null differ
binary files a/gfx/unknown/down_arrow.png /dev/null differ
binary files a/gfx/unknown/egg_animated.2bpp.lz.3eaf004f /dev/null differ
binary files a/gfx/unknown/egg_animated.png /dev/null differ
binary files a/gfx/unknown/egg_animated_nonmatching.png /dev/null differ
binary files a/gfx/unknown/mobile_splash.attrmap /dev/null differ
binary files a/gfx/unknown/mobile_splash.png /dev/null differ
binary files a/gfx/unknown/mobile_splash.tilemap /dev/null differ
binary files a/gfx/unknown/pichu_animated.2bpp.lz.5d6d2ad4 /dev/null differ
binary files a/gfx/unknown/pichu_animated.png /dev/null differ
binary files a/gfx/unknown/unused_border.png /dev/null differ
binary files a/gfx/unknown/up_arrow.png /dev/null differ
--- a/home.asm
+++ b/home.asm
@@ -1,11 +1,16 @@
INCLUDE "includes.asm"
+
SECTION "NULL", ROM0
NULL::
+
INCLUDE "rst.asm"
+
+
INCLUDE "interrupts.asm"
+
SECTION "Header", ROM0
Start::
@@ -12,6 +17,7 @@
nop
jp _Start
+
SECTION "Home", ROM0
INCLUDE "home/init.asm"
@@ -40,9 +46,9 @@
InexplicablyEmptyFunction:: ; 2d43
; Inexplicably empty.
; Seen in PredefPointers.
- rept 16
+rept 16
nop
- endr
+endr
ret
; 2d54
@@ -765,301 +771,8 @@
INCLUDE "home/pokedex_flags.asm"
-NamesPointers:: ; 33ab
- dba PokemonNames
- dba MoveNames
- dbw 0, 0
- dba ItemNames
- dbw 0, PartyMonOT
- dbw 0, OTPartyMonOT
- dba TrainerClassNames
- dbw $4, $4b52 ; within PackMenuGFX
-; 33c3
+INCLUDE "home/names.asm"
-GetName:: ; 33c3
-; Return name CurSpecies from name list wNamedObjectTypeBuffer in StringBuffer1.
-
- ld a, [hROMBank]
- push af
- push hl
- push bc
- push de
-
- ld a, [wNamedObjectTypeBuffer]
- cp PKMN_NAME
- jr nz, .NotPokeName
-
- ld a, [CurSpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, PKMN_NAME_LENGTH
- add hl, de
- ld e, l
- ld d, h
- jr .done
-
-.NotPokeName:
- ld a, [wNamedObjectTypeBuffer]
- dec a
- ld e, a
- ld d, 0
- ld hl, NamesPointers
- add hl, de
- add hl, de
- add hl, de
- ld a, [hli]
- rst Bankswitch
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [CurSpecies]
- dec a
- call GetNthString
-
- ld de, StringBuffer1
- ld bc, ITEM_NAME_LENGTH
- call CopyBytes
-
-.done
- ld a, e
- ld [wUnusedD102], a
- ld a, d
- ld [wUnusedD102 + 1], a
-
- pop de
- pop bc
- pop hl
- pop af
- rst Bankswitch
- ret
-; 3411
-
-GetNthString:: ; 3411
-; Return the address of the
-; ath string starting from hl.
-
- and a
- ret z
-
- push bc
- ld b, a
- ld c, "@"
-.readChar
- ld a, [hli]
- cp c
- jr nz, .readChar
- dec b
- jr nz, .readChar
- pop bc
- ret
-; 3420
-
-GetBasePokemonName:: ; 3420
-; Discards gender (Nidoran).
-
- push hl
- call GetPokemonName
-
- ld hl, StringBuffer1
-.loop
- ld a, [hl]
- cp "@"
- jr z, .quit
- cp "♂"
- jr z, .end
- cp "♀"
- jr z, .end
- inc hl
- jr .loop
-.end
- ld [hl], "@"
-.quit
- pop hl
- ret
-
-; 343b
-
-GetPokemonName:: ; 343b
-; Get Pokemon name wd265.
-
- ld a, [hROMBank]
- push af
- push hl
- ld a, BANK(PokemonNames)
- rst Bankswitch
-
-; Each name is ten characters
- ld a, [wd265]
- dec a
- ld d, 0
- ld e, a
- ld h, 0
- ld l, a
- add hl, hl ; hl = hl * 4
- add hl, hl ; hl = hl * 4
- add hl, de ; hl = (hl*4) + de
- add hl, hl ; hl = (5*hl) + (5*hl)
- ld de, PokemonNames
- add hl, de
-
-; Terminator
- ld de, StringBuffer1
- push de
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld hl, StringBuffer1 + PKMN_NAME_LENGTH - 1
- ld [hl], "@"
- pop de
-
- pop hl
- pop af
- rst Bankswitch
- ret
-; 3468
-
-GetItemName:: ; 3468
-; Get item name wd265.
-
- push hl
- push bc
- ld a, [wd265]
-
- cp TM01
- jr nc, .TM
-
- ld [CurSpecies], a
- ld a, ITEM_NAME
- ld [wNamedObjectTypeBuffer], a
- call GetName
- jr .Copied
-.TM:
- call GetTMHMName
-.Copied:
- ld de, StringBuffer1
- pop bc
- pop hl
- ret
-; 3487
-
-GetTMHMName:: ; 3487
-; Get TM/HM name by item id wd265.
-
- push hl
- push de
- push bc
- ld a, [wd265]
- push af
-
-; TM/HM prefix
- cp HM01
- push af
- jr c, .TM
-
- ld hl, .HMText
- ld bc, .HMTextEnd - .HMText
- jr .asm_34a1
-
-.TM:
- ld hl, .TMText
- ld bc, .TMTextEnd - .TMText
-
-.asm_34a1
- ld de, StringBuffer1
- call CopyBytes
-
-; TM/HM number
- push de
- ld a, [wd265]
- ld c, a
- callab GetTMHMNumber
- pop de
-
-; HM numbers start from 51, not 1
- pop af
- ld a, c
- jr c, .asm_34b9
- sub NUM_TMS
-.asm_34b9
-
-; Divide and mod by 10 to get the top and bottom digits respectively
- ld b, "0"
-.mod10
- sub 10
- jr c, .asm_34c2
- inc b
- jr .mod10
-.asm_34c2
- add 10
-
- push af
- ld a, b
- ld [de], a
- inc de
- pop af
-
- ld b, "0"
- add b
- ld [de], a
-
-; End the string
- inc de
- ld a, "@"
- ld [de], a
-
- pop af
- ld [wd265], a
- pop bc
- pop de
- pop hl
- ret
-
-.TMText:
- db "TM"
-.TMTextEnd:
- db "@"
-
-.HMText:
- db "HM"
-.HMTextEnd:
- db "@"
-; 34df
-
-IsHM:: ; 34df
- cp HM01
- jr c, .NotHM
- scf
- ret
-.NotHM:
- and a
- ret
-; 34e7
-
-IsHMMove:: ; 34e7
- ld hl, HMMoves
- ld de, 1
- jp IsInArray
-
-
-INCLUDE "data/hm_moves.asm"
-
-
-GetMoveName:: ; 34f8
- push hl
-
- ld a, MOVE_NAME
- ld [wNamedObjectTypeBuffer], a
-
- ld a, [wNamedObjectIndexBuffer] ; move id
- ld [CurSpecies], a
-
- call GetName
- ld de, StringBuffer1
-
- pop hl
- ret
-; 350c
-
ScrollingMenu:: ; 350c
call CopyMenuData2
ld a, [hROMBank]
@@ -1270,270 +983,7 @@
ret
; 3600
-CheckTrainerBattle2:: ; 3600
-
- ld a, [hROMBank]
- push af
-
- call SwitchToMapScriptHeaderBank
- call CheckTrainerBattle
-
- pop bc
- ld a, b
- rst Bankswitch
- ret
-; 360d
-
-CheckTrainerBattle:: ; 360d
-; Check if any trainer on the map sees the player and wants to battle.
-
-; Skip the player object.
- ld a, 1
- ld de, MapObjects + OBJECT_LENGTH
-
-.loop
-
-; Start a battle if the object:
-
- push af
- push de
-
-; Has a sprite
- ld hl, MAPOBJECT_SPRITE
- add hl, de
- ld a, [hl]
- and a
- jr z, .next
-
-; Is a trainer
- ld hl, MAPOBJECT_COLOR
- add hl, de
- ld a, [hl]
- and $f
- cp $2
- jr nz, .next
-
-; Is visible on the map
- ld hl, MAPOBJECT_OBJECT_STRUCT_ID
- add hl, de
- ld a, [hl]
- cp -1
- jr z, .next
-
-; Is facing the player...
- call GetObjectStruct
- call FacingPlayerDistance_bc
- jr nc, .next
-
-; ...within their sight range
- ld hl, MAPOBJECT_RANGE
- add hl, de
- ld a, [hl]
- cp b
- jr c, .next
-
-; And hasn't already been beaten
- push bc
- push de
- ld hl, MAPOBJECT_SCRIPT_POINTER
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- pop de
- pop bc
- and a
- jr z, .startbattle
-
-.next
- pop de
- ld hl, OBJECT_LENGTH
- add hl, de
- ld d, h
- ld e, l
-
- pop af
- inc a
- cp NUM_OBJECTS
- jr nz, .loop
- xor a
- ret
-
-.startbattle
- pop de
- pop af
- ld [hLastTalked], a
- ld a, b
- ld [EngineBuffer2], a
- ld a, c
- ld [EngineBuffer3], a
- jr LoadTrainer_continue
-; 3674
-
-TalkToTrainer:: ; 3674
- ld a, 1
- ld [EngineBuffer2], a
- ld a, -1
- ld [EngineBuffer3], a
-
-LoadTrainer_continue:: ; 367e
- call GetMapScriptHeaderBank
- ld [EngineBuffer1], a
-
- ld a, [hLastTalked]
- call GetMapObject
-
- ld hl, MAPOBJECT_SCRIPT_POINTER
- add hl, bc
- ld a, [EngineBuffer1]
- call GetFarHalfword
- ld de, wTempTrainerHeader
- ld bc, wTempTrainerHeaderEnd - wTempTrainerHeader
- ld a, [EngineBuffer1]
- call FarCopyBytes
- xor a
- ld [wRunningTrainerBattleScript], a
- scf
- ret
-; 36a5
-
-FacingPlayerDistance_bc:: ; 36a5
-
- push de
- call FacingPlayerDistance
- ld b, d
- ld c, e
- pop de
- ret
-; 36ad
-
-FacingPlayerDistance:: ; 36ad
-; Return carry if the sprite at bc is facing the player,
-; and its distance in d.
-
- ld hl, OBJECT_NEXT_MAP_X ; x
- add hl, bc
- ld d, [hl]
-
- ld hl, OBJECT_NEXT_MAP_Y ; y
- add hl, bc
- ld e, [hl]
-
- ld a, [PlayerStandingMapX]
- cp d
- jr z, .CheckY
-
- ld a, [PlayerStandingMapY]
- cp e
- jr z, .CheckX
-
- and a
- ret
-
-.CheckY:
- ld a, [PlayerStandingMapY]
- sub e
- jr z, .NotFacing
- jr nc, .Above
-
-; Below
- cpl
- inc a
- ld d, a
- ld e, OW_UP
- jr .CheckFacing
-
-.Above:
- ld d, a
- ld e, OW_DOWN
- jr .CheckFacing
-
-.CheckX:
- ld a, [PlayerStandingMapX]
- sub d
- jr z, .NotFacing
- jr nc, .Left
-
-; Right
- cpl
- inc a
- ld d, a
- ld e, OW_LEFT
- jr .CheckFacing
-
-.Left:
- ld d, a
- ld e, OW_RIGHT
-
-.CheckFacing:
- call GetSpriteDirection
- cp e
- jr nz, .NotFacing
- scf
- ret
-
-.NotFacing:
- and a
- ret
-; 36f5
-
-CheckTrainerFlag:: ; 36f5
- push bc
- ld hl, OBJECT_MAP_OBJECT_INDEX
- add hl, bc
- ld a, [hl]
- call GetMapObject
- ld hl, MAPOBJECT_SCRIPT_POINTER
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call GetMapScriptHeaderBank
- call GetFarHalfword
- ld d, h
- ld e, l
- push de
- ld b, CHECK_FLAG
- call EventFlagAction
- pop de
- ld a, c
- and a
- pop bc
- ret
-; 3718
-
-PrintWinLossText:: ; 3718
- ld a, [BattleType]
- cp BATTLETYPE_CANLOSE
- jr .canlose ; ??????????
-
-; unreferenced
- ld hl, wWinTextPointer
- jr .ok
-
-.canlose
- ld a, [wBattleResult]
- ld hl, wWinTextPointer
- and $f
- jr z, .ok
- ld hl, wLossTextPointer
-
-.ok
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call GetMapScriptHeaderBank
- call FarPrintText
- call WaitBGMap
- call WaitPressAorB_BlinkCursor
- ret
-; 3741
+INCLUDE "home/trainers.asm"
IsAPokemon:: ; 3741
; Return carry if species a is not a Pokemon.
--- /dev/null
+++ b/home/hm_moves.asm
@@ -1,0 +1,27 @@
+; HM moves can't be forgotten
+
+IsHM:: ; 34df
+ cp HM01
+ jr c, .NotHM
+ scf
+ ret
+.NotHM:
+ and a
+ ret
+; 34e7
+
+IsHMMove:: ; 34e7
+ ld hl, .HMMoves
+ ld de, 1
+ jp IsInArray
+
+.HMMoves: ; 34f0
+ db CUT
+ db FLY
+ db SURF
+ db STRENGTH
+ db FLASH
+ db WATERFALL
+ db WHIRLPOOL
+ db -1 ; end
+; 34f8
--- /dev/null
+++ b/home/names.asm
@@ -1,0 +1,278 @@
+NamesPointers:: ; 33ab
+; entries correspond to GetName constants (see constants/misc_constants.asm)
+ dba PokemonNames
+ dba MoveNames
+ dbw 0, 0
+ dba ItemNames
+ dbw 0, PartyMonOT
+ dbw 0, OTPartyMonOT
+ dba TrainerClassNames
+ dbw $4, $4b52 ; within PackMenuGFX
+; 33c3
+
+GetName:: ; 33c3
+; Return name CurSpecies from name list wNamedObjectTypeBuffer in StringBuffer1.
+
+ ld a, [hROMBank]
+ push af
+ push hl
+ push bc
+ push de
+
+ ld a, [wNamedObjectTypeBuffer]
+ cp PKMN_NAME
+ jr nz, .NotPokeName
+
+ ld a, [CurSpecies]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, PKMN_NAME_LENGTH
+ add hl, de
+ ld e, l
+ ld d, h
+ jr .done
+
+.NotPokeName:
+ ld a, [wNamedObjectTypeBuffer]
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, NamesPointers
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ rst Bankswitch
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ld a, [CurSpecies]
+ dec a
+ call GetNthString
+
+ ld de, StringBuffer1
+ ld bc, ITEM_NAME_LENGTH
+ call CopyBytes
+
+.done
+ ld a, e
+ ld [wUnusedD102], a
+ ld a, d
+ ld [wUnusedD102 + 1], a
+
+ pop de
+ pop bc
+ pop hl
+ pop af
+ rst Bankswitch
+ ret
+; 3411
+
+GetNthString:: ; 3411
+; Return the address of the
+; ath string starting from hl.
+
+ and a
+ ret z
+
+ push bc
+ ld b, a
+ ld c, "@"
+.readChar
+ ld a, [hli]
+ cp c
+ jr nz, .readChar
+ dec b
+ jr nz, .readChar
+ pop bc
+ ret
+; 3420
+
+GetBasePokemonName:: ; 3420
+; Discards gender (Nidoran).
+
+ push hl
+ call GetPokemonName
+
+ ld hl, StringBuffer1
+.loop
+ ld a, [hl]
+ cp "@"
+ jr z, .quit
+ cp "♂"
+ jr z, .end
+ cp "♀"
+ jr z, .end
+ inc hl
+ jr .loop
+.end
+ ld [hl], "@"
+.quit
+ pop hl
+ ret
+
+; 343b
+
+GetPokemonName:: ; 343b
+; Get Pokemon name wd265.
+
+ ld a, [hROMBank]
+ push af
+ push hl
+ ld a, BANK(PokemonNames)
+ rst Bankswitch
+
+; Each name is ten characters
+ ld a, [wd265]
+ dec a
+ ld d, 0
+ ld e, a
+ ld h, 0
+ ld l, a
+ add hl, hl ; hl = hl * 4
+ add hl, hl ; hl = hl * 4
+ add hl, de ; hl = (hl*4) + de
+ add hl, hl ; hl = (5*hl) + (5*hl)
+ ld de, PokemonNames
+ add hl, de
+
+; Terminator
+ ld de, StringBuffer1
+ push de
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+ ld hl, StringBuffer1 + PKMN_NAME_LENGTH - 1
+ ld [hl], "@"
+ pop de
+
+ pop hl
+ pop af
+ rst Bankswitch
+ ret
+; 3468
+
+GetItemName:: ; 3468
+; Get item name wd265.
+
+ push hl
+ push bc
+ ld a, [wd265]
+
+ cp TM01
+ jr nc, .TM
+
+ ld [CurSpecies], a
+ ld a, ITEM_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ jr .Copied
+.TM:
+ call GetTMHMName
+.Copied:
+ ld de, StringBuffer1
+ pop bc
+ pop hl
+ ret
+; 3487
+
+GetTMHMName:: ; 3487
+; Get TM/HM name by item id wd265.
+
+ push hl
+ push de
+ push bc
+ ld a, [wd265]
+ push af
+
+; TM/HM prefix
+ cp HM01
+ push af
+ jr c, .TM
+
+ ld hl, .HMText
+ ld bc, .HMTextEnd - .HMText
+ jr .asm_34a1
+
+.TM:
+ ld hl, .TMText
+ ld bc, .TMTextEnd - .TMText
+
+.asm_34a1
+ ld de, StringBuffer1
+ call CopyBytes
+
+; TM/HM number
+ push de
+ ld a, [wd265]
+ ld c, a
+ callab GetTMHMNumber
+ pop de
+
+; HM numbers start from 51, not 1
+ pop af
+ ld a, c
+ jr c, .asm_34b9
+ sub NUM_TMS
+.asm_34b9
+
+; Divide and mod by 10 to get the top and bottom digits respectively
+ ld b, "0"
+.mod10
+ sub 10
+ jr c, .asm_34c2
+ inc b
+ jr .mod10
+.asm_34c2
+ add 10
+
+ push af
+ ld a, b
+ ld [de], a
+ inc de
+ pop af
+
+ ld b, "0"
+ add b
+ ld [de], a
+
+; End the string
+ inc de
+ ld a, "@"
+ ld [de], a
+
+ pop af
+ ld [wd265], a
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.TMText:
+ db "TM"
+.TMTextEnd:
+ db "@"
+
+.HMText:
+ db "HM"
+.HMTextEnd:
+ db "@"
+; 34df
+
+INCLUDE "home/hm_moves.asm"
+
+GetMoveName:: ; 34f8
+ push hl
+
+ ld a, MOVE_NAME
+ ld [wNamedObjectTypeBuffer], a
+
+ ld a, [wNamedObjectIndexBuffer] ; move id
+ ld [CurSpecies], a
+
+ call GetName
+ ld de, StringBuffer1
+
+ pop hl
+ ret
+; 350c
--- a/home/text.asm
+++ b/home/text.asm
@@ -8,9 +8,6 @@
TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
TEXTBOX_INNERY EQU TEXTBOX_Y + 2
-TEXTBOX_PAL EQU 7
-
-
ClearBox:: ; fb6
; Fill a c*b box at hl with blank tiles.
@@ -51,7 +48,7 @@
ClearScreen:: ; fdb
- ld a, TEXTBOX_PAL
+ ld a, PAL_BG_TEXT
hlcoord 0, 0, AttrMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
@@ -133,7 +130,7 @@
inc b
inc c
inc c
- ld a, TEXTBOX_PAL
+ ld a, PAL_BG_TEXT
.col
push bc
push hl
@@ -230,42 +227,42 @@
._\@:
endm
- dict "<DAY>", Char15
- dict "<LINE>", LineChar
- dict "<NEXT>", NextLineChar
- dict TX_FAR, TextFar
- dict $00, NullChar
- dict $4c, Char4C
- dict $4b, Char4B
- dict "<PARA>", Paragraph
- dict "<MOM>", PrintMomsName
- dict "<PLAYER>", PrintPlayerName
- dict "<RIVAL>", PrintRivalName
- dict $35, Char35
- dict $36, Char36
- dict $37, Char37
- dict "<RED>", PrintRedsName
- dict "<GREEN>", PrintGreensName
- dict "#", PlacePOKe
- dict "<PC>", PCChar
- dict "<ROCKET>", RocketChar
- dict "<TM>", TMChar
- dict "<TRNER>", TrainerChar
- dict $23, PlaceKougeki
- dict "<LNBRK>", Char22
- dict "<CONT>", ContText
- dict "<......>", SixDotsChar
- dict "<DONE>", DoneText
- dict "<PROMPT>", PromptText
- dict "<PKMN>", PlacePKMN
- dict "<POKE>", PlacePOKE
- dict $25, NextChar
- dict2 $1f, " "
- dict "<DEXEND>", PlaceDexEnd
- dict "<TARGET>", PlaceMoveTargetsName
- dict "<USER>", PlaceMoveUsersName
- dict "<ENEMY>", PlaceEnemysName
- dict "<PLAY_G>", PlaceGenderedPlayerName
+ dict "<DAY>", Char15
+ dict "<LINE>", LineChar
+ dict "<NEXT>", NextLineChar
+ dict TX_FAR, TextFar
+ dict $00, NullChar
+ dict $4c, Char4C
+ dict $4b, Char4B
+ dict "<PARA>", Paragraph
+ dict "<MOM>", PrintMomsName
+ dict "<PLAYER>", PrintPlayerName
+ dict "<RIVAL>", PrintRivalName
+ dict $35, Char35
+ dict $36, Char36
+ dict $37, Char37
+ dict "<RED>", PrintRedsName
+ dict "<GREEN>", PrintGreensName
+ dict "#", PlacePOKe
+ dict "<PC>", PCChar
+ dict "<ROCKET>", RocketChar
+ dict "<TM>", TMChar
+ dict "<TRNER>", TrainerChar
+ dict "<KOUGEKI>", PlaceKougeki
+ dict "<LNBRK>", Char22
+ dict "<CONT>", ContText
+ dict "<......>", SixDotsChar
+ dict "<DONE>", DoneText
+ dict "<PROMPT>", PromptText
+ dict "<PKMN>", PlacePKMN
+ dict "<POKE>", PlacePOKE
+ dict "%", NextChar
+ dict2 "¯", " "
+ dict "<DEXEND>", PlaceDexEnd
+ dict "<TARGET>", PlaceMoveTargetsName
+ dict "<USER>", PlaceMoveUsersName
+ dict "<ENEMY>", PlaceEnemysName
+ dict "<PLAY_G>", PlaceGenderedPlayerName
cp "゚"
jr z, .place ; should be .diacritic
--- a/home/time.asm
+++ b/home/time.asm
@@ -49,19 +49,16 @@
ld [hl], RTC_S
ld a, [de]
maskbits 60
- and x
ld [hRTCSeconds], a
ld [hl], RTC_M
ld a, [de]
maskbits 60
- and x
ld [hRTCMinutes], a
ld [hl], RTC_H
ld a, [de]
maskbits 24
- and x
ld [hRTCHours], a
ld [hl], RTC_DL
--- /dev/null
+++ b/home/trainers.asm
@@ -1,0 +1,263 @@
+CheckTrainerBattle2:: ; 3600
+ ld a, [hROMBank]
+ push af
+
+ call SwitchToMapScriptHeaderBank
+ call CheckTrainerBattle
+
+ pop bc
+ ld a, b
+ rst Bankswitch
+ ret
+; 360d
+
+CheckTrainerBattle:: ; 360d
+; Check if any trainer on the map sees the player and wants to battle.
+
+; Skip the player object.
+ ld a, 1
+ ld de, MapObjects + OBJECT_LENGTH
+
+.loop
+
+; Start a battle if the object:
+
+ push af
+ push de
+
+; Has a sprite
+ ld hl, MAPOBJECT_SPRITE
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .next
+
+; Is a trainer
+ ld hl, MAPOBJECT_COLOR
+ add hl, de
+ ld a, [hl]
+ and $f
+ cp $2
+ jr nz, .next
+
+; Is visible on the map
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
+ add hl, de
+ ld a, [hl]
+ cp -1
+ jr z, .next
+
+; Is facing the player...
+ call GetObjectStruct
+ call FacingPlayerDistance_bc
+ jr nc, .next
+
+; ...within their sight range
+ ld hl, MAPOBJECT_RANGE
+ add hl, de
+ ld a, [hl]
+ cp b
+ jr c, .next
+
+; And hasn't already been beaten
+ push bc
+ push de
+ ld hl, MAPOBJECT_SCRIPT_POINTER
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ld a, c
+ pop de
+ pop bc
+ and a
+ jr z, .startbattle
+
+.next
+ pop de
+ ld hl, OBJECT_LENGTH
+ add hl, de
+ ld d, h
+ ld e, l
+
+ pop af
+ inc a
+ cp NUM_OBJECTS
+ jr nz, .loop
+ xor a
+ ret
+
+.startbattle
+ pop de
+ pop af
+ ld [hLastTalked], a
+ ld a, b
+ ld [EngineBuffer2], a
+ ld a, c
+ ld [EngineBuffer3], a
+ jr LoadTrainer_continue
+; 3674
+
+TalkToTrainer:: ; 3674
+ ld a, 1
+ ld [EngineBuffer2], a
+ ld a, -1
+ ld [EngineBuffer3], a
+
+LoadTrainer_continue:: ; 367e
+ call GetMapScriptHeaderBank
+ ld [EngineBuffer1], a
+
+ ld a, [hLastTalked]
+ call GetMapObject
+
+ ld hl, MAPOBJECT_SCRIPT_POINTER
+ add hl, bc
+ ld a, [EngineBuffer1]
+ call GetFarHalfword
+ ld de, wTempTrainerHeader
+ ld bc, wTempTrainerHeaderEnd - wTempTrainerHeader
+ ld a, [EngineBuffer1]
+ call FarCopyBytes
+ xor a
+ ld [wRunningTrainerBattleScript], a
+ scf
+ ret
+; 36a5
+
+FacingPlayerDistance_bc:: ; 36a5
+
+ push de
+ call FacingPlayerDistance
+ ld b, d
+ ld c, e
+ pop de
+ ret
+; 36ad
+
+FacingPlayerDistance:: ; 36ad
+; Return carry if the sprite at bc is facing the player,
+; and its distance in d.
+
+ ld hl, OBJECT_NEXT_MAP_X ; x
+ add hl, bc
+ ld d, [hl]
+
+ ld hl, OBJECT_NEXT_MAP_Y ; y
+ add hl, bc
+ ld e, [hl]
+
+ ld a, [PlayerStandingMapX]
+ cp d
+ jr z, .CheckY
+
+ ld a, [PlayerStandingMapY]
+ cp e
+ jr z, .CheckX
+
+ and a
+ ret
+
+.CheckY:
+ ld a, [PlayerStandingMapY]
+ sub e
+ jr z, .NotFacing
+ jr nc, .Above
+
+; Below
+ cpl
+ inc a
+ ld d, a
+ ld e, OW_UP
+ jr .CheckFacing
+
+.Above:
+ ld d, a
+ ld e, OW_DOWN
+ jr .CheckFacing
+
+.CheckX:
+ ld a, [PlayerStandingMapX]
+ sub d
+ jr z, .NotFacing
+ jr nc, .Left
+
+; Right
+ cpl
+ inc a
+ ld d, a
+ ld e, OW_LEFT
+ jr .CheckFacing
+
+.Left:
+ ld d, a
+ ld e, OW_RIGHT
+
+.CheckFacing:
+ call GetSpriteDirection
+ cp e
+ jr nz, .NotFacing
+ scf
+ ret
+
+.NotFacing:
+ and a
+ ret
+; 36f5
+
+CheckTrainerFlag:: ; 36f5
+ push bc
+ ld hl, OBJECT_MAP_OBJECT_INDEX
+ add hl, bc
+ ld a, [hl]
+ call GetMapObject
+ ld hl, MAPOBJECT_SCRIPT_POINTER
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call GetMapScriptHeaderBank
+ call GetFarHalfword
+ ld d, h
+ ld e, l
+ push de
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ pop de
+ ld a, c
+ and a
+ pop bc
+ ret
+; 3718
+
+PrintWinLossText:: ; 3718
+ ld a, [BattleType]
+ cp BATTLETYPE_CANLOSE
+ jr .canlose ; ??????????
+
+; unreferenced
+ ld hl, wWinTextPointer
+ jr .ok
+
+.canlose
+ ld a, [wBattleResult]
+ ld hl, wWinTextPointer
+ and $f
+ jr z, .ok
+ ld hl, wLossTextPointer
+
+.ok
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call GetMapScriptHeaderBank
+ call FarPrintText
+ call WaitBGMap
+ call WaitPressAorB_BlinkCursor
+ ret
+; 3741
--- a/items/item_attributes.asm
+++ /dev/null
@@ -1,521 +1,0 @@
-item_attribute: MACRO
-; price, held effect, parameter, property, pocket, field menu, battle menu
- dw \1
- db \2, \3, \4, \5
- dn \6, \7
-ENDM
-
-ItemAttributes: ; 67c1
-; entries correspond to constants/item_constants.asm
-; MASTER BALL
- item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; ULTRA BALL
- item_attribute 1200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; BRIGHTPOWDER
- item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; GREAT BALL
- item_attribute 600, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; # BALL
- item_attribute 200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BICYCLE
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; MOON STONE
- item_attribute 0, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; ANTIDOTE
- item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; BURN HEAL
- item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ICE HEAL
- item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; AWAKENING
- item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; PARLYZ HEAL
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; FULL RESTORE
- item_attribute 3000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; MAX POTION
- item_attribute 2500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; HYPER POTION
- item_attribute 1200, 0, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; SUPER POTION
- item_attribute 700, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; POTION
- item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ESCAPE ROPE
- item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; REPEL
- item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; MAX ELIXER
- item_attribute 4500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; FIRE STONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; THUNDERSTONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; WATER STONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; HP UP
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; PROTEIN
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; IRON
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; CARBOS
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; LUCKY PUNCH
- item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CALCIUM
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; RARE CANDY
- item_attribute 4800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; X ACCURACY
- item_attribute 950, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; LEAF STONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; METAL POWDER
- item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; NUGGET
- item_attribute 10000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; # DOLL
- item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; FULL HEAL
- item_attribute 600, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; REVIVE
- item_attribute 1500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; MAX REVIVE
- item_attribute 4000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; GUARD SPEC.
- item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; SUPER REPEL
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; MAX REPEL
- item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; DIRE HIT
- item_attribute 650, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; FRESH WATER
- item_attribute 200, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; SODA POP
- item_attribute 300, 0, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; LEMONADE
- item_attribute 350, 0, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; X ATTACK
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; X DEFEND
- item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; X SPEED
- item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; X SPECIAL
- item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; COIN CASE
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; ITEMFINDER
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; EXP.SHARE
- item_attribute 3000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; OLD ROD
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; GOOD ROD
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; SILVER LEAF
- item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SUPER ROD
- item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; PP UP
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; ETHER
- item_attribute 1200, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; MAX ETHER
- item_attribute 2000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ELIXER
- item_attribute 3000, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; RED SCALE
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SECRETPOTION
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; S.S.TICKET
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MYSTERY EGG
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CLEAR BELL
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SILVER WING
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MOOMOO MILK
- item_attribute 500, 0, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; QUICK CLAW
- item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PSNCUREBERRY
- item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; GOLD LEAF
- item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SOFT SAND
- item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SHARP BEAK
- item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PRZCUREBERRY
- item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; BURNT BERRY
- item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ICE BERRY
- item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; POISON BARB
- item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; KING'S ROCK
- item_attribute 100, HELD_TRADE_EVOLVE, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BITTER BERRY
- item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY
-; MINT BERRY
- item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; RED APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TINYMUSHROOM
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BIG MUSHROOM
- item_attribute 5000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SILVERPOWDER
- item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLU APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; AMULET COIN
- item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; YLW APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; GRN APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CLEANSE TAG
- item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MYSTIC WATER
- item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TWISTEDSPOON
- item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; WHT APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLACKBELT
- item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLK APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PNK APRICORN
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLACKGLASSES
- item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SLOWPOKETAIL
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PINK BOW
- item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; STICK
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SMOKE BALL
- item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; NEVERMELTICE
- item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MAGNET
- item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MIRACLEBERRY
- item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; PEARL
- item_attribute 1400, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BIG PEARL
- item_attribute 7500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; EVERSTONE
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SPELL TAG
- item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; RAGECANDYBAR
- item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; GS BALL
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLUE CARD
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; MIRACLE SEED
- item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; THICK CLUB
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; FOCUS BAND
- item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; ENERGYPOWDER
- item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ENERGY ROOT
- item_attribute 800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; HEAL POWDER
- item_attribute 450, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; REVIVAL HERB
- item_attribute 2800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; HARD STONE
- item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LUCKY EGG
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CARD KEY
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; MACHINE PART
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; EGG TICKET
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LOST ITEM
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; STARDUST
- item_attribute 2000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; STAR PIECE
- item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BASEMENT KEY
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; PASS
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CHARCOAL
- item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BERRY JUICE
- item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; SCOPE LENS
- item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; METAL COAT
- item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; DRAGON FANG
- item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LEFTOVERS
- item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MYSTERYBERRY
- item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; DRAGON SCALE
- item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BERSERK GENE
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SACRED ASH
- item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; HEAVY BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; FLOWER MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LEVEL BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; LURE BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; FAST BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LIGHT BALL
- item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; FRIEND BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; MOON BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; LOVE BALL
- item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; NORMAL BOX
- item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; GORGEOUS BOX
- item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; SUN STONE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; POLKADOT BOW
- item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; UP-GRADE
- item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BERRY
- item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; GOLD BERRY
- item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; SQUIRTBOTTLE
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PARK BALL
- item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; RAINBOW WING
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BRICK PIECE
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SURF MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LITEBLUEMAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PORTRAITMAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LOVELY MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; EON MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MORPH MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLUESKY MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MUSIC MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MIRAGE MAIL
- item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TM01
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM02
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM03
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM04
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TM05
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM06
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM07
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM08
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM09
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM10
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM11
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM12
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM13
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM14
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM15
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM16
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM17
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM18
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM19
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM20
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM21
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM22
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM23
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM24
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM25
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM26
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM27
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM28
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TM29
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM30
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM31
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM32
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM33
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM34
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM35
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM36
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM37
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM38
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM39
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM40
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM41
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM42
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM43
- item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM44
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM45
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM46
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM47
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM48
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM49
- item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM50
- item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM01
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM02
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM03
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM04
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM05
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM06
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM07
- item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; ?
- item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
--- a/items/item_descriptions.asm
+++ /dev/null
@@ -1,1042 +1,0 @@
-PrintItemDescription: ; 0x1c8955
-; Print the description for item [CurSpecies] at de.
-
- ld a, [CurSpecies]
- cp TM01
- jr c, .not_a_tm
-
- ld [CurItem], a
- push de
- callba GetTMHMItemMove
- pop hl
- ld a, [wd265]
- ld [CurSpecies], a
- predef PrintMoveDesc
- ret
-
-.not_a_tm
- push de
- ld hl, ItemDescriptions
- ld a, [CurSpecies]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- jp PlaceString
-; 0x1c8987
-
-
-ItemDescriptions:
- dw MasterBallDesc
- dw UltraBallDesc
- dw BrightpowderDesc
- dw GreatBallDesc
- dw PokeBallDesc
- dw TeruSama1Desc
- dw BicycleDesc
- dw MoonStoneDesc
- dw AntidoteDesc
- dw BurnHealDesc
- dw IceHealDesc
- dw AwakeningDesc
- dw ParlyzHealDesc
- dw FullRestoreDesc
- dw MaxPotionDesc
- dw HyperPotionDesc
- dw SuperPotionDesc
- dw PotionDesc
- dw EscapeRopeDesc
- dw RepelDesc
- dw MaxElixerDesc
- dw FireStoneDesc
- dw ThunderStoneDesc
- dw WaterStoneDesc
- dw TeruSama2Desc
- dw HPUpDesc
- dw ProteinDesc
- dw IronDesc
- dw CarbosDesc
- dw LuckyPunchDesc
- dw CalciumDesc
- dw RareCandyDesc
- dw XAccuracyDesc
- dw LeafStoneDesc
- dw MetalPowderDesc
- dw NuggetDesc
- dw PokeDollDesc
- dw FullHealDesc
- dw ReviveDesc
- dw MaxReviveDesc
- dw GuardSpecDesc
- dw SuperRepelDesc
- dw MaxRepelDesc
- dw DireHitDesc
- dw TeruSama3Desc
- dw FreshWaterDesc
- dw SodaPopDesc
- dw LemonadeDesc
- dw XAttackDesc
- dw TeruSama4Desc
- dw XDefendDesc
- dw XSpeedDesc
- dw XSpecialDesc
- dw CoinCaseDesc
- dw ItemfinderDesc
- dw TeruSama5Desc
- dw ExpShareDesc
- dw OldRodDesc
- dw GoodRodDesc
- dw SilverLeafDesc
- dw SuperRodDesc
- dw PPUpDesc
- dw EtherDesc
- dw MaxEtherDesc
- dw ElixerDesc
- dw RedScaleDesc
- dw SecretPotionDesc
- dw SSTicketDesc
- dw MysteryEggDesc
- dw ClearBellDesc
- dw SilverWingDesc
- dw MoomooMilkDesc
- dw QuickClawDesc
- dw PsnCureBerryDesc
- dw GoldLeafDesc
- dw SoftSandDesc
- dw SharpBeakDesc
- dw PrzCureBerryDesc
- dw BurntBerryDesc
- dw IceBerryDesc
- dw PoisonBarbDesc
- dw KingsRockDesc
- dw BitterBerryDesc
- dw MintBerryDesc
- dw RedApricornDesc
- dw TinyMushroomDesc
- dw BigMushroomDesc
- dw SilverPowderDesc
- dw BluApricornDesc
- dw TeruSama6Desc
- dw AmuletCoinDesc
- dw YlwApricornDesc
- dw GrnApricornDesc
- dw CleanseTagDesc
- dw MysticWaterDesc
- dw TwistedSpoonDesc
- dw WhtApricornDesc
- dw BlackbeltDesc
- dw BlkApricornDesc
- dw TeruSama7Desc
- dw PnkApricornDesc
- dw BlackGlassesDesc
- dw SlowpokeTailDesc
- dw PinkBowDesc
- dw StickDesc
- dw SmokeBallDesc
- dw NeverMeltIceDesc
- dw MagnetDesc
- dw MiracleBerryDesc
- dw PearlDesc
- dw BigPearlDesc
- dw EverStoneDesc
- dw SpellTagDesc
- dw RageCandyBarDesc
- dw GSBallDesc
- dw BlueCardDesc
- dw MiracleSeedDesc
- dw ThickClubDesc
- dw FocusBandDesc
- dw TeruSama8Desc
- dw EnergyPowderDesc
- dw EnergyRootDesc
- dw HealPowderDesc
- dw RevivalHerbDesc
- dw HardStoneDesc
- dw LuckyEggDesc
- dw CardKeyDesc
- dw MachinePartDesc
- dw EggTicketDesc
- dw LostItemDesc
- dw StardustDesc
- dw StarPieceDesc
- dw BasementKeyDesc
- dw PassDesc
- dw TeruSama9Desc
- dw TeruSama10Desc
- dw TeruSama11Desc
- dw CharcoalDesc
- dw BerryJuiceDesc
- dw ScopeLensDesc
- dw TeruSama12Desc
- dw TeruSama13Desc
- dw MetalCoatDesc
- dw DragonFangDesc
- dw TeruSama14Desc
- dw LeftoversDesc
- dw TeruSama15Desc
- dw TeruSama16Desc
- dw TeruSama17Desc
- dw MysteryBerryDesc
- dw DragonScaleDesc
- dw BerserkGeneDesc
- dw TeruSama18Desc
- dw TeruSama19Desc
- dw TeruSama20Desc
- dw SacredAshDesc
- dw HeavyBallDesc
- dw FlowerMailDesc
- dw LevelBallDesc
- dw LureBallDesc
- dw FastBallDesc
- dw TeruSama21Desc
- dw LightBallDesc
- dw FriendBallDesc
- dw MoonBallDesc
- dw LoveBallDesc
- dw NormalBoxDesc
- dw GorgeousBoxDesc
- dw SunStoneDesc
- dw PolkadotBowDesc
- dw TeruSama22Desc
- dw UpGradeDesc
- dw BerryDesc
- dw GoldBerryDesc
- dw SquirtBottleDesc
- dw TeruSama23Desc
- dw ParkBallDesc
- dw RainbowWingDesc
- dw TeruSama24Desc
- dw BrickPieceDesc
- dw SurfMailDesc
- dw LiteBlueMailDesc
- dw PortraitMailDesc
- dw LovelyMailDesc
- dw EonMailDesc
- dw MorphMailDesc
- dw BlueSkyMailDesc
- dw MusicMailDesc
- dw MewMailDesc
- dw TeruSama25Desc
- dw TeruSama26Desc
- dw TeruSama26Desc
- dw TeruSama26Desc
- dw TeruSama26Desc
- dw TeruSama26Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama27Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama28Desc
- dw TeruSama29Desc
- dw TeruSama30Desc
- dw TeruSama31Desc
- dw TeruSama32Desc
- dw TeruSama33Desc
-
-MasterBallDesc:
- db "The best BALL. It"
- next "never misses.@"
-
-UltraBallDesc:
- db "A BALL with a high"
- next "rate of success.@"
-
-BrightpowderDesc:
- db "Lowers the foe's"
- next "accuracy. (HOLD)@"
-
-GreatBallDesc:
- db "A BALL with a de-"
- next "cent success rate.@"
-
-PokeBallDesc:
- db "An item for catch-"
- next "ing #MON.@"
-
-TeruSama1Desc:
- db "?@"
-
-BicycleDesc:
- db "A collapsible bike"
- next "for fast movement.@"
-
-MoonStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-AntidoteDesc:
- db "Cures poisoned"
- next "#MON.@"
-
-BurnHealDesc:
- db "Heals burned"
- next "#MON.@"
-
-IceHealDesc:
- db "Defrosts frozen"
- next "#MON.@"
-
-AwakeningDesc:
- db "Awakens sleeping"
- next "#MON.@"
-
-ParlyzHealDesc:
- db "Heals paralyzed"
- next "#MON.@"
-
-FullRestoreDesc:
- db "Fully restores HP"
- next "& status.@"
-
-MaxPotionDesc:
- db "Fully restores"
- next "#MON HP.@"
-
-HyperPotionDesc:
- db "Restores #MON"
- next "HP by 200.@"
-
-SuperPotionDesc:
- db "Restores #MON"
- next "HP by 50.@"
-
-PotionDesc:
- db "Restores #MON"
- next "HP by 20.@"
-
-EscapeRopeDesc:
- db "Use for escaping"
- next "from caves, etc.@"
-
-RepelDesc:
- db "Repels weak #-"
- next "MON for 100 steps.@"
-
-MaxElixerDesc:
- db "Fully restores the"
- next "PP of one #MON.@"
-
-FireStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-ThunderStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-WaterStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-TeruSama2Desc:
- db "?@"
-
-HPUpDesc:
- db "Raises the HP of"
- next "one #MON.@"
-
-ProteinDesc:
- db "Raises ATTACK of"
- next "one #MON.@"
-
-IronDesc:
- db "Raises DEFENSE of"
- next "one #MON.@"
-
-CarbosDesc:
- db "Raises SPEED of"
- next "one #MON.@"
-
-LuckyPunchDesc:
- db "Ups critical hit"
- next "ratio of CHANSEY.@"
-
-CalciumDesc:
- db "Ups SPECIAL stats"
- next "of one #MON.@"
-
-RareCandyDesc:
- db "Raises level of a"
- next "#MON by one.@"
-
-XAccuracyDesc:
- db "Raises accuracy."
- next "(1 BTL)@"
-
-LeafStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-MetalPowderDesc:
- db "Raises DEFENSE of"
- next "DITTO. (HOLD)@"
-
-NuggetDesc:
- db "Made of pure gold."
- next "Sell high.@"
-
-PokeDollDesc:
- db "Use to escape from"
- next "a wild #MON.@"
-
-FullHealDesc:
- db "Eliminates all"
- next "status problems.@"
-
-ReviveDesc:
- db "Restores a fainted"
- next "#MON to 1/2 HP.@"
-
-MaxReviveDesc:
- db "Fully restores a"
- next "fainted #MON.@"
-
-GuardSpecDesc:
- db "Prevents stats"
- next "reduction. (1 BTL)@"
-
-SuperRepelDesc:
- db "Repels weak #-"
- next "MON for 200 steps.@"
-
-MaxRepelDesc:
- db "Repels weak #-"
- next "MON for 250 steps.@"
-
-DireHitDesc:
- db "Ups critical hit"
- next "ratio. (1 BTL)@"
-
-TeruSama3Desc:
- db "?@"
-
-FreshWaterDesc:
- db "Restores #MON"
- next "HP by 50.@"
-
-SodaPopDesc:
- db "Restores #MON"
- next "HP by 60.@"
-
-LemonadeDesc:
- db "Restores #MON"
- next "HP by 80.@"
-
-XAttackDesc:
- db "Raises ATTACK."
- next "(1 BTL)@"
-
-TeruSama4Desc:
- db "?@"
-
-XDefendDesc:
- db "Raises DEFENSE."
- next "(1 BTL)@"
-
-XSpeedDesc:
- db "Raises SPEED."
- next "(1 BTL)@"
-
-XSpecialDesc:
- db "Raises SPECIAL"
- next "ATTACK. (1 BTL)@"
-
-CoinCaseDesc:
- db "Holds up to 9,999"
- next "game coins.@"
-
-ItemfinderDesc:
- db "Checks for unseen"
- next "items in the area.@"
-
-TeruSama5Desc:
- db "?@"
-
-ExpShareDesc:
- db "Shares battle EXP."
- next "Points. (HOLD)@"
-
-OldRodDesc:
- db "Use by water to"
- next "fish for #MON.@"
-
-GoodRodDesc:
- db "A good ROD for"
- next "catching #MON.@"
-
-SilverLeafDesc:
- db "A strange, silver-"
- next "colored leaf.@"
-
-SuperRodDesc:
- db "The best ROD for"
- next "catching #MON.@"
-
-PPUpDesc:
- db "Raises max PP of"
- next "a selected move.@"
-
-EtherDesc:
- db "Restores PP of one"
- next "move by 10.@"
-
-MaxEtherDesc:
- db "Fully restores PP"
- next "of one move.@"
-
-ElixerDesc:
- db "Restores PP of all"
- next "moves by 10.@"
-
-RedScaleDesc:
- db "A scale from the"
- next "red GYARADOS.@"
-
-SecretPotionDesc:
- db "Fully heals any"
- next "#MON.@"
-
-SSTicketDesc:
- db "A ticket for the"
- next "S.S.AQUA.@"
-
-MysteryEggDesc:
- db "An EGG obtained"
- next "from MR.#MON.@"
-
-ClearBellDesc:
- db "Makes a gentle"
- next "ringing.@"
-
-SilverWingDesc:
- db "A strange, silver-"
- next "colored feather.@"
-
-MoomooMilkDesc:
- db "Restores #MON"
- next "HP by 100.@"
-
-QuickClawDesc:
- db "Raises 1st strike"
- next "ratio. (HOLD)@"
-
-PsnCureBerryDesc:
- db "A self-cure for"
- next "poison. (HOLD)@"
-
-GoldLeafDesc:
- db "A strange, gold-"
- next "colored leaf.@"
-
-SoftSandDesc:
- db "Powers up ground-"
- next "type moves. (HOLD)@"
-
-SharpBeakDesc:
- db "Powers up flying-"
- next "type moves. (HOLD)@"
-
-PrzCureBerryDesc:
- db "A self-cure for"
- next "paralysis. (HOLD)@"
-
-BurntBerryDesc:
- db "A self-cure for"
- next "freezing. (HOLD)@"
-
-IceBerryDesc:
- db "A self-heal for a"
- next "burn. (HOLD)@"
-
-PoisonBarbDesc:
- db "Powers up poison-"
- next "type moves. (HOLD)@"
-
-KingsRockDesc:
- db "May make the foe"
- next "flinch. (HOLD)@"
-
-BitterBerryDesc:
- db "A self-cure for"
- next "confusion. (HOLD)@"
-
-MintBerryDesc:
- db "A self-awakening"
- next "for sleep. (HOLD)@"
-
-RedApricornDesc:
- db "A red APRICORN.@"
-
-TinyMushroomDesc:
- db "An ordinary mush-"
- next "room. Sell low.@"
-
-BigMushroomDesc:
- db "A rare mushroom."
- next "Sell high.@"
-
-SilverPowderDesc:
- db "Powers up bug-type"
- next "moves. (HOLD)@"
-
-BluApricornDesc:
- db "A blue APRICORN.@"
-
-TeruSama6Desc:
- db "?@"
-
-AmuletCoinDesc:
- db "Doubles monetary"
- next "earnings. (HOLD)@"
-
-YlwApricornDesc:
- db "A yellow APRICORN.@"
-
-GrnApricornDesc:
- db "A green APRICORN.@"
-
-CleanseTagDesc:
- db "Helps repel wild"
- next "#MON. (HOLD)@"
-
-MysticWaterDesc:
- db "Powers up water-"
- next "type moves. (HOLD)@"
-
-TwistedSpoonDesc:
- db "Powers up psychic-"
- next "type moves. (HOLD)@"
-
-WhtApricornDesc:
- db "A white APRICORN.@"
-
-BlackbeltDesc:
- db "Boosts fighting-"
- next "type moves. (HOLD)@"
-
-BlkApricornDesc:
- db "A black APRICORN."
- next "@"
-
-TeruSama7Desc:
- db "?@"
-
-PnkApricornDesc:
- db "A pink APRICORN."
- next "@"
-
-BlackGlassesDesc:
- db "Powers up dark-"
- next "type moves. (HOLD)@"
-
-SlowpokeTailDesc:
- db "Very tasty. Sell"
- next "high.@"
-
-PinkBowDesc:
- db "Powers up normal-"
- next "type moves. (HOLD)@"
-
-StickDesc:
- db "An ordinary stick."
- next "Sell low.@"
-
-SmokeBallDesc:
- db "Escape from wild"
- next "#MON. (HOLD)@"
-
-NeverMeltIceDesc:
- db "Powers up ice-type"
- next "moves. (HOLD)@"
-
-MagnetDesc:
- db "Boosts electric-"
- next "type moves. (HOLD)@"
-
-MiracleBerryDesc:
- db "Cures all status"
- next "problems. (HOLD)@"
-
-PearlDesc:
- db "A beautiful pearl."
- next "Sell low.@"
-
-BigPearlDesc:
- db "A big, beautiful"
- next "pearl. Sell high.@"
-
-EverStoneDesc:
- db "Stops evolution."
- next "(HOLD)@"
-
-SpellTagDesc:
- db "Powers up ghost-"
- next "type moves. (HOLD)@"
-
-RageCandyBarDesc:
- db "Restores #MON"
- next "HP by 20.@"
-
-GSBallDesc:
- db "The mysterious"
- next "BALL.@"
-
-BlueCardDesc:
- db "Card to save"
- next "points.@"
-
-MiracleSeedDesc:
- db "Powers up grass-"
- next "type moves. (HOLD)@"
-
-ThickClubDesc:
- db "A bone of some"
- next "sort. Sell low.@"
-
-FocusBandDesc:
- db "May prevent faint-"
- next "ing. (HOLD)@"
-
-TeruSama8Desc:
- db "?@"
-
-EnergyPowderDesc:
- db "Restores #MON"
- next "HP by 50. Bitter.@"
-
-EnergyRootDesc:
- db "Restores #MON"
- next "HP by 200. Bitter.@"
-
-HealPowderDesc:
- db "Cures all status"
- next "problems. Bitter.@"
-
-RevivalHerbDesc:
- db "Revives fainted"
- next "#MON. Bitter.@"
-
-HardStoneDesc:
- db "Powers up rock-"
- next "type moves. (HOLD)@"
-
-LuckyEggDesc:
- db "Earns extra EXP."
- next "points. (HOLD)@"
-
-CardKeyDesc:
- db "Opens shutters in"
- next "the RADIO TOWER.@"
-
-MachinePartDesc:
- db "A machine part for"
- next "the POWER PLANT.@"
-
-EggTicketDesc:
- db "May use at Golden-"
- next "rod trade corner.@"
-
-LostItemDesc:
- db "The # DOLL lost"
- next "by the COPYCAT.@"
-
-StardustDesc:
- db "Pretty, red sand."
- next "Sell high.@"
-
-StarPieceDesc:
- db "A hunk of red gem."
- next "Sell very high.@"
-
-BasementKeyDesc:
- db "Opens doors.@"
-
-PassDesc:
- db "A ticket for the"
- next "MAGNET TRAIN.@"
-
-TeruSama9Desc:
- db "?@"
-
-TeruSama10Desc:
- db "?@"
-
-TeruSama11Desc:
- db "?@"
-
-CharcoalDesc:
- db "Powers up fire-"
- next "type moves. (HOLD)@"
-
-BerryJuiceDesc:
- db "Restores #MON"
- next "HP by 20.@"
-
-ScopeLensDesc:
- db "Raises critical"
- next "hit ratio. (HOLD)@"
-
-TeruSama12Desc:
- db "?@"
-
-TeruSama13Desc:
- db "?@"
-
-MetalCoatDesc:
- db "Powers up steel-"
- next "type moves. (HOLD)@"
-
-DragonFangDesc:
- db "Powers up dragon-"
- next "type moves. (HOLD)@"
-
-TeruSama14Desc:
- db "?@"
-
-LeftoversDesc:
- db "Restores HP during"
- next "battle. (HOLD)@"
-
-TeruSama15Desc:
- db "?@"
-
-TeruSama16Desc:
- db "?@"
-
-TeruSama17Desc:
- db "?@"
-
-MysteryBerryDesc:
- db "A self-restore"
- next "for PP. (HOLD)@"
-
-DragonScaleDesc:
- db "A rare dragon-type"
- next "item.@"
-
-BerserkGeneDesc:
- db "Boosts ATTACK but"
- next "causes confusion.@"
-
-TeruSama18Desc:
- db "?@"
-
-TeruSama19Desc:
- db "?@"
-
-TeruSama20Desc:
- db "?@"
-
-SacredAshDesc:
- db "Fully revives all"
- next "fainted #MON.@"
-
-HeavyBallDesc:
- db "A BALL for catch-"
- next "ing heavy #MON.@"
-
-FlowerMailDesc:
- db "Flower-print MAIL."
- next "(HOLD)@"
-
-LevelBallDesc:
- db "A BALL for lower-"
- next "level #MON.@"
-
-LureBallDesc:
- db "A BALL for #MON"
- next "hooked by a ROD.@"
-
-FastBallDesc:
- db "A BALL for catch-"
- next "ing fast #MON.@"
-
-TeruSama21Desc:
- db "?@"
-
-LightBallDesc:
- db "An odd, electrical"
- next "orb. (HOLD)@"
-
-FriendBallDesc:
- db "A BALL that makes"
- next "#MON friendly.@"
-
-MoonBallDesc:
- db "A BALL for MOON"
- next "STONE evolvers.@"
-
-LoveBallDesc:
- db "For catching the"
- next "opposite gender.@"
-
-NormalBoxDesc:
- db "Open it and see"
- next "what's inside.@"
-
-GorgeousBoxDesc:
- db "Open it and see"
- next "what's inside.@"
-
-SunStoneDesc:
- db "Evolves certain"
- next "kinds of #MON.@"
-
-PolkadotBowDesc:
- db "Powers up normal-"
- next "type moves. (HOLD)@"
-
-TeruSama22Desc:
- db "?@"
-
-UpGradeDesc:
- db "A mysterious box"
- next "made by SILPH CO.@"
-
-BerryDesc:
- db "A self-restore"
- next "item. (10HP, HOLD)@"
-
-GoldBerryDesc:
- db "A self-restore"
- next "item. (30HP, HOLD)@"
-
-SquirtBottleDesc:
- db "A bottle used for"
- next "watering plants.@"
-
-TeruSama23Desc:
- db "?@"
-
-ParkBallDesc:
- db "The Bug-Catching"
- next "Contest BALL.@"
-
-RainbowWingDesc:
- db "A mystical feather"
- next "of rainbow colors.@"
-
-TeruSama24Desc:
- db "?@"
-
-BrickPieceDesc:
- db "A rare chunk of"
- next "tile.@"
-
-SurfMailDesc:
- db "LAPRAS-print MAIL."
- next "(HOLD)@"
-
-LiteBlueMailDesc:
- db "DRATINI-print"
- next "MAIL. (HOLD)@"
-
-PortraitMailDesc:
- db "MAIL featuring the"
- next "holder's likeness.@"
-
-LovelyMailDesc:
- db "Heart-print MAIL."
- next "(HOLD)@"
-
-EonMailDesc:
- db "EEVEE-print MAIL."
- next "(HOLD)@"
-
-MorphMailDesc:
- db "DITTO-print MAIL."
- next "(HOLD)@"
-
-BlueSkyMailDesc:
- db "Sky-print MAIL."
- next "(HOLD)@"
-
-MusicMailDesc:
- db "NATU-print MAIL."
- next "(HOLD)@"
-
-MewMailDesc:
- db "MEW-print MAIL."
- next "(HOLD)@"
-
-TeruSama25Desc:
- db "?@"
-
-TeruSama26Desc:
- db "?@"
-
-TeruSama27Desc:
- db "?@"
-
-TeruSama28Desc:
- db "?@"
-
-TeruSama29Desc:
- db "?@"
-
-TeruSama30Desc:
- db "?@"
-
-TeruSama31Desc:
- db "?@"
-
-TeruSama32Desc:
- db "?@"
-
-TeruSama33Desc:
- db "?@"
--- a/items/item_effects.asm
+++ /dev/null
@@ -1,3313 +1,0 @@
-_DoItemEffect:: ; e722
- ld a, [CurItem]
- ld [wd265], a
- call GetItemName
- call CopyName1
- ld a, 1
- ld [wItemEffectSucceeded], a
- ld a, [CurItem]
- dec a
- ld hl, ItemEffects
- rst JumpTable
- ret
-; e73c
-
-
-ItemEffects: ; e73c
- dw MasterBall
- dw UltraBall
- dw Brightpowder
- dw GreatBall
- dw PokeBall
- dw TownMap
- dw Bicycle
- dw MoonStone
- dw Antidote
- dw BurnHeal
- dw IceHeal
- dw Awakening
- dw ParlyzHeal
- dw FullRestore
- dw MaxPotion
- dw HyperPotion
- dw SuperPotion
- dw Potion
- dw EscapeRope
- dw Repel
- dw MaxElixer
- dw FireStone
- dw Thunderstone
- dw WaterStone
- dw Item19
- dw HPUp
- dw Protein
- dw Iron
- dw Carbos
- dw LuckyPunch
- dw Calcium
- dw RareCandy
- dw XAccuracy
- dw LeafStone
- dw MetalPowder
- dw Nugget
- dw PokeDoll
- dw FullHeal
- dw Revive
- dw MaxRevive
- dw GuardSpec
- dw SuperRepel
- dw MaxRepel
- dw DireHit
- dw Item2D
- dw FreshWater
- dw SodaPop
- dw Lemonade
- dw XAttack
- dw Item32
- dw XDefend
- dw XSpeed
- dw XSpecial
- dw CoinCase
- dw Itemfinder
- dw PokeFlute
- dw ExpShare
- dw OldRod
- dw GoodRod
- dw SilverLeaf
- dw SuperRod
- dw PPUp
- dw Ether
- dw MaxEther
- dw Elixer
- dw RedScale
- dw Secretpotion
- dw SSTicket
- dw MysteryEgg
- dw ClearBell
- dw SilverWing
- dw MoomooMilk
- dw QuickClaw
- dw Psncureberry
- dw GoldLeaf
- dw SoftSand
- dw SharpBeak
- dw Przcureberry
- dw BurntBerry
- dw IceBerry
- dw PoisonBarb
- dw KingsRock
- dw BitterBerry
- dw MintBerry
- dw RedApricorn
- dw Tinymushroom
- dw BigMushroom
- dw Silverpowder
- dw BluApricorn
- dw Item5A
- dw AmuletCoin
- dw YlwApricorn
- dw GrnApricorn
- dw CleanseTag
- dw MysticWater
- dw Twistedspoon
- dw WhtApricorn
- dw Blackbelt
- dw BlkApricorn
- dw Item64
- dw PnkApricorn
- dw Blackglasses
- dw Slowpoketail
- dw PinkBow
- dw Stick
- dw SmokeBall
- dw Nevermeltice
- dw Magnet
- dw Miracleberry
- dw Pearl
- dw BigPearl
- dw Everstone
- dw SpellTag
- dw Ragecandybar
- dw GsBall
- dw BlueCard
- dw MiracleSeed
- dw ThickClub
- dw FocusBand
- dw Item78
- dw Energypowder
- dw EnergyRoot
- dw HealPowder
- dw RevivalHerb
- dw HardStone
- dw LuckyEgg
- dw CardKey
- dw MachinePart
- dw EggTicket
- dw LostItem
- dw Stardust
- dw StarPiece
- dw BasementKey
- dw Pass
- dw Item87
- dw Item88
- dw Item89
- dw Charcoal
- dw BerryJuice
- dw ScopeLens
- dw Item8D
- dw Item8E
- dw MetalCoat
- dw DragonFang
- dw Item91
- dw Leftovers
- dw Item93
- dw Item94
- dw Item95
- dw Mysteryberry
- dw DragonScale
- dw BerserkGene
- dw Item99
- dw Item9A
- dw Item9B
- dw SacredAsh
- dw HeavyBall
- dw FlowerMail
- dw LevelBall
- dw LureBall
- dw FastBall
- dw ItemA2
- dw LightBall
- dw FriendBall
- dw MoonBall
- dw LoveBall
- dw NormalBox
- dw GorgeousBox
- dw SunStone
- dw PolkadotBow
- dw ItemAB
- dw UpGrade
- dw Berry
- dw GoldBerry
- dw Squirtbottle
- dw ItemB0
- dw ParkBall
- dw RainbowWing
- dw ItemB3
-; e8a2
-
-
-MasterBall:
-UltraBall:
-GreatBall:
-PokeBall:
-HeavyBall:
-LevelBall:
-LureBall:
-FastBall:
-FriendBall:
-MoonBall:
-LoveBall:
-ParkBall: ; e8a2
- ld a, [wBattleMode]
- dec a
- jp nz, UseBallInTrainerBattle
-
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr nz, .room_in_party
-
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld a, [sBoxCount]
- cp MONS_PER_BOX
- call CloseSRAM
- jp z, Ball_BoxIsFullMessage
-
-.room_in_party
- xor a
- ld [wWildMon], a
- ld a, [CurItem]
- cp PARK_BALL
- call nz, ReturnToBattle_UseBall
-
- ld hl, Options
- res NO_TEXT_SCROLL, [hl]
- ld hl, UsedItemText
- call PrintText
-
- ld a, [EnemyMonCatchRate]
- ld b, a
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jp z, .catch_without_fail
- ld a, [CurItem]
- cp MASTER_BALL
- jp z, .catch_without_fail
- ld a, [CurItem]
- ld c, a
- ld hl, BallMultiplierFunctionTable
-
-.get_multiplier_loop
- ld a, [hli]
- cp $ff
- jr z, .skip_or_return_from_ball_fn
- cp c
- jr z, .call_ball_function
- inc hl
- inc hl
- jr .get_multiplier_loop
-
-.call_ball_function
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .skip_or_return_from_ball_fn
- push de
- jp hl
-
-.skip_or_return_from_ball_fn
- ld a, [CurItem]
- cp LEVEL_BALL
- ld a, b
- jp z, .skip_hp_calc
-
- ld a, b
- ld [hMultiplicand + 2], a
-
- ld hl, EnemyMonHP
- ld b, [hl]
- inc hl
- ld c, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld e, [hl]
- sla c
- rl b
-
- ld h, d
- ld l, e
- add hl, de
- add hl, de
- ld d, h
- ld e, l
- ld a, d
- and a
- jr z, .okay_1
-
- srl d
- rr e
- srl d
- rr e
- srl b
- rr c
- srl b
- rr c
-
- ld a, c
- and a
- jr nz, .okay_1
- ld c, $1
-.okay_1
- ld b, e
-
- push bc
- ld a, b
- sub c
- ld [hMultiplier], a
- xor a
- ld [hDividend + 0], a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- call Multiply
- pop bc
-
- ld a, b
- ld [hDivisor], a
- ld b, $4
- call Divide
-
- ld a, [hQuotient + 2]
- and a
- jr nz, .statuscheck
- ld a, 1
-.statuscheck
-; This routine is buggy. It was intended that SLP and FRZ provide a higher
-; catch rate than BRN/PSN/PAR, which in turn provide a higher catch rate than
-; no status effect at all. But instead, it makes BRN/PSN/PAR provide no
-; benefit.
-; Uncomment the line below to fix this.
- ld b, a
- ld a, [EnemyMonStatus]
- and 1 << FRZ | SLP
- ld c, 10
- jr nz, .addstatus
- ; ld a, [EnemyMonStatus]
- and a
- ld c, 5
- jr nz, .addstatus
- ld c, 0
-.addstatus
- ld a, b
- add c
- jr nc, .max_1
- ld a, $ff
-.max_1
-
- ld d, a
- push de
-
- ; BUG: callba overwrites a,
- ; and GetItemHeldEffect takes b anyway.
-
- ; This is probably the reason
- ; the HELD_CATCH_CHANCE effect
- ; is never used.
-
- ; Uncomment the line below to fix.
-
- ld a, [BattleMonItem]
-; ld b, a
- callba GetItemHeldEffect
- ld a, b
- cp HELD_CATCH_CHANCE
-
- pop de
- ld a, d
-
- jr nz, .skip_hp_calc
- add c
- jr nc, .skip_hp_calc
- ld a, $ff
-.skip_hp_calc
-
- ld b, a
- ld [Buffer1], a
- call Random
-
- cp b
- ld a, 0
- jr z, .catch_without_fail
- jr nc, .fail_to_catch
-
-.catch_without_fail
- ld a, [EnemyMonSpecies]
-
-.fail_to_catch
- ld [wWildMon], a
- ld c, 20
- call DelayFrames
-
- ld a, [CurItem]
- cp POKE_BALL + 1 ; Assumes Master/Ultra/Great come before
- jr c, .not_kurt_ball
- ld a, POKE_BALL
-.not_kurt_ball
- ld [wBattleAnimParam], a
-
- ld de, ANIM_THROW_POKE_BALL
- ld a, e
- ld [FXAnimID], a
- ld a, d
- ld [FXAnimID + 1], a
- xor a
- ld [hBattleTurn], a
- ld [Buffer2], a
- ld [wNumHits], a
- predef PlayBattleAnim
-
- ld a, [wWildMon]
- and a
- jr nz, .caught
- ld a, [Buffer2]
- cp $1
- ld hl, Text_NoShake
- jp z, .shake_and_break_free
- cp $2
- ld hl, Text_OneShake
- jp z, .shake_and_break_free
- cp $3
- ld hl, Text_TwoShakes
- jp z, .shake_and_break_free
- cp $4
- ld hl, Text_ThreeShakes
- jp z, .shake_and_break_free
-.caught
-
- ld hl, EnemyMonStatus
- ld a, [hli]
- push af
- inc hl
- ld a, [hli]
- push af
- ld a, [hl]
- push af
- push hl
- ld hl, EnemyMonItem
- ld a, [hl]
- push af
- push hl
- ld hl, EnemySubStatus5
- ld a, [hl]
- push af
- set SUBSTATUS_TRANSFORMED, [hl]
- bit SUBSTATUS_TRANSFORMED, a
- jr nz, .ditto
- jr .not_ditto
-
-.ditto
- ld a, DITTO
- ld [TempEnemyMonSpecies], a
- jr .load_data
-
-.not_ditto
- set SUBSTATUS_TRANSFORMED, [hl]
- ld hl, wEnemyBackupDVs
- ld a, [EnemyMonDVs]
- ld [hli], a
- ld a, [EnemyMonDVs + 1]
- ld [hl], a
-
-.load_data
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld a, [EnemyMonLevel]
- ld [CurPartyLevel], a
- callba LoadEnemyMon
-
- pop af
- ld [EnemySubStatus5], a
-
- pop hl
- pop af
- ld [hl], a
- pop hl
- pop af
- ld [hld], a
- pop af
- ld [hld], a
- dec hl
- pop af
- ld [hl], a
-
- ld hl, EnemySubStatus5
- bit SUBSTATUS_TRANSFORMED, [hl]
- jr nz, .Transformed
- ld hl, wWildMonMoves
- ld de, EnemyMonMoves
- ld bc, NUM_MOVES
- call CopyBytes
-
- ld hl, wWildMonPP
- ld de, EnemyMonPP
- ld bc, NUM_MOVES
- call CopyBytes
-.Transformed:
-
- ld a, [EnemyMonSpecies]
- ld [wWildMon], a
- ld [CurPartySpecies], a
- ld [wd265], a
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jp z, .FinishTutorial
-
- callba TrainerRankings_WildMonsCaught
-
- ld hl, Text_GotchaMonWasCaught
- call PrintText
-
- call ClearSprites
-
- ld a, [wd265]
- dec a
- call CheckCaughtMon
-
- ld a, c
- push af
- ld a, [wd265]
- dec a
- call SetSeenAndCaughtMon
- pop af
- and a
- jr nz, .skip_pokedex
-
- call CheckReceivedDex
- jr z, .skip_pokedex
-
- ld hl, Text_AddedToPokedex
- call PrintText
-
- call ClearSprites
-
- ld a, [EnemyMonSpecies]
- ld [wd265], a
- predef NewPokedexEntry
-
-.skip_pokedex
- ld a, [BattleType]
- cp BATTLETYPE_CONTEST
- jp z, .catch_bug_contest_mon
- cp BATTLETYPE_CELEBI
- jr nz, .not_celebi
- ld hl, wBattleResult
- set 6, [hl]
-.not_celebi
-
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr z, .SendToPC
-
- xor a ; PARTYMON
- ld [MonType], a
- call ClearSprites
-
- predef TryAddMonToParty
-
- callba SetCaughtData
-
- ld a, [CurItem]
- cp FRIEND_BALL
- jr nz, .SkipPartyMonFriendBall
-
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Happiness
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
-
- ld a, FRIEND_BALL_HAPPINESS
- ld [hl], a
-.SkipPartyMonFriendBall:
-
- ld hl, Text_AskNicknameNewlyCaughtMon
- call PrintText
-
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
-
- call YesNoBox
- jp c, .return_from_capture
-
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
-
- ld d, h
- ld e, l
- push de
- xor a ; PARTYMON
- ld [MonType], a
- ld b, 0
- callba NamingScreen
-
- call RotateThreePalettesRight
-
- call LoadStandardFont
-
- pop hl
- ld de, StringBuffer1
- call InitName
-
- jp .return_from_capture
-
-.SendToPC:
- call ClearSprites
-
- predef SentPkmnIntoBox
-
- callba SetBoxMonCaughtData
-
- ld a, BANK(sBoxCount)
- call GetSRAMBank
-
- ld a, [sBoxCount]
- cp MONS_PER_BOX
- jr nz, .BoxNotFullYet
- ld hl, wBattleResult
- set 7, [hl]
-.BoxNotFullYet:
- ld a, [CurItem]
- cp FRIEND_BALL
- jr nz, .SkipBoxMonFriendBall
- ; Bug: overwrites the happiness of the first mon in the box!
- ld a, FRIEND_BALL_HAPPINESS
- ld [sBoxMon1Happiness], a
-.SkipBoxMonFriendBall:
- call CloseSRAM
-
- ld hl, Text_AskNicknameNewlyCaughtMon
- call PrintText
-
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
-
- call YesNoBox
- jr c, .SkipBoxMonNickname
-
- xor a
- ld [CurPartyMon], a
- ld a, BOXMON
- ld [MonType], a
- ld de, wMonOrItemNameBuffer
- ld b, $0
- callba NamingScreen
-
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
-
- ld hl, wMonOrItemNameBuffer
- ld de, sBoxMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
- ld hl, sBoxMonNicknames
- ld de, StringBuffer1
- call InitName
-
- call CloseSRAM
-
-.SkipBoxMonNickname:
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
-
- ld hl, sBoxMonNicknames
- ld de, wMonOrItemNameBuffer
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
- call CloseSRAM
-
- ld hl, Text_SentToBillsPC
- call PrintText
-
- call RotateThreePalettesRight
- call LoadStandardFont
- jr .return_from_capture
-
-.catch_bug_contest_mon
- callba BugContest_SetCaughtContestMon
- jr .return_from_capture
-
-.FinishTutorial:
- ld hl, Text_GotchaMonWasCaught
-
-.shake_and_break_free
- call PrintText
- call ClearSprites
-
-.return_from_capture
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- ret z
- cp BATTLETYPE_DEBUG
- ret z
- cp BATTLETYPE_CONTEST
- jr z, .used_park_ball
-
- ld a, [wWildMon]
- and a
- jr z, .toss
-
- call ClearBGPalettes
- call ClearTileMap
-
-.toss
- ld hl, NumItems
- inc a
- ld [wItemQuantityChangeBuffer], a
- jp TossItem
-
-.used_park_ball
- ld hl, wParkBallsRemaining
- dec [hl]
- ret
-; ec0a
-
-
-BallMultiplierFunctionTable:
-; table of routines that increase or decrease the catch rate based on
-; which ball is used in a certain situation.
- dbw ULTRA_BALL, UltraBallMultiplier
- dbw GREAT_BALL, GreatBallMultiplier
- dbw SAFARI_BALL, SafariBallMultiplier ; Safari Ball, leftover from RBY
- dbw HEAVY_BALL, HeavyBallMultiplier
- dbw LEVEL_BALL, LevelBallMultiplier
- dbw LURE_BALL, LureBallMultiplier
- dbw FAST_BALL, FastBallMultiplier
- dbw MOON_BALL, MoonBallMultiplier
- dbw LOVE_BALL, LoveBallMultiplier
- dbw PARK_BALL, ParkBallMultiplier
- db $ff
-
-UltraBallMultiplier:
-; multiply catch rate by 2
- sla b
- ret nc
- ld b, $ff
- ret
-
-SafariBallMultiplier:
-GreatBallMultiplier:
-ParkBallMultiplier:
-; multiply catch rate by 1.5
- ld a, b
- srl a
- add b
- ld b, a
- ret nc
- ld b, $ff
- ret
-
-GetPokedexEntryBank:
- push hl
- push de
- ld a, [EnemyMonSpecies]
- rlca
- rlca
- and 3
- ld hl, .PokedexEntryBanks
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-
-.PokedexEntryBanks:
-
-GLOBAL PokedexEntries1
-GLOBAL PokedexEntries2
-GLOBAL PokedexEntries3
-GLOBAL PokedexEntries4
-
- db BANK(PokedexEntries1)
- db BANK(PokedexEntries2)
- db BANK(PokedexEntries3)
- db BANK(PokedexEntries4)
-
-HeavyBallMultiplier:
-; subtract 20 from catch rate if weight < 102.4 kg
-; else add 0 to catch rate if weight < 204.8 kg
-; else add 20 to catch rate if weight < 307.2 kg
-; else add 30 to catch rate if weight < 409.6 kg
-; else add 40 to catch rate (never happens)
- ld a, [EnemyMonSpecies]
- ld hl, PokedexDataPointerTable
- dec a
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, BANK(PokedexDataPointerTable)
- call GetFarHalfword
-
-.SkipText:
- call GetPokedexEntryBank
- call GetFarByte
- inc hl
- cp "@"
- jr nz, .SkipText
-
- call GetPokedexEntryBank
- push bc
- inc hl
- inc hl
- call GetFarHalfword
-
- srl h
- rr l
- ld b, h
- ld c, l
-
- rept 4
- srl b
- rr c
- endr
- call .subbc
-
- srl b
- rr c
- call .subbc
-
- ld a, h
- pop bc
- jr .compare
-
-.subbc
- ; subtract bc from hl
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- pop bc
- ret
-
-.compare
- ld c, a
- cp 1024 >> 8 ; 102.4 kg
- jr c, .lightmon
-
- ld hl, .WeightsTable
-.lookup
- ld a, c
- cp [hl]
- jr c, .heavymon
- inc hl
- inc hl
- jr .lookup
-
-.heavymon
- inc hl
- ld a, b
- add [hl]
- ld b, a
- ret nc
- ld b, $ff
- ret
-
-.lightmon
- ld a, b
- sub 20
- ld b, a
- ret nc
- ld b, $1
- ret
-
-.WeightsTable:
-; weight factor, boost
- db 2048 >> 8, 0
- db 3072 >> 8, 20
- db 4096 >> 8, 30
- db 65280 >> 8, 40
-
-LureBallMultiplier:
-; multiply catch rate by 3 if this is a fishing rod battle
- ld a, [BattleType]
- cp BATTLETYPE_FISH
- ret nz
-
- ld a, b
- add a
- jr c, .max
-
- add b
- jr nc, .done
-.max
- ld a, $ff
-.done
- ld b, a
- ret
-
-MoonBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 4 if mon evolves with moon stone
-; Reality: no boost
-
-GLOBAL EvosAttacks
-GLOBAL EvosAttacksPointers
-
- push bc
- ld a, [TempEnemyMonSpecies]
- dec a
- ld c, a
- ld b, 0
- ld hl, EvosAttacksPointers
- add hl, bc
- add hl, bc
- ld a, BANK(EvosAttacksPointers)
- call GetFarHalfword
- pop bc
-
- push bc
- ld a, BANK(EvosAttacks)
- call GetFarByte
- cp EVOLVE_ITEM
- pop bc
- ret nz
-
- inc hl
- inc hl
- inc hl
-
-; Moon Stone's constant from Pokémon Red is used.
-; No Pokémon evolve with Burn Heal,
-; so Moon Balls always have a catch rate of 1×.
- push bc
- ld a, BANK(EvosAttacks)
- call GetFarByte
- cp MOON_STONE_RED ; BURN_HEAL
- pop bc
- ret nz
-
- sla b
- jr c, .max
- sla b
- jr nc, .done
-.max
- ld b, $ff
-.done
- ret
-
-LoveBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 8 if mons are of same species, different sex
-; Reality: multiply catch rate by 8 if mons are of same species, same sex
-
- ; does species match?
- ld a, [TempEnemyMonSpecies]
- ld c, a
- ld a, [TempBattleMonSpecies]
- cp c
- ret nz
-
- ; check player mon species
- push bc
- ld a, [TempBattleMonSpecies]
- ld [CurPartySpecies], a
- xor a ; PARTYMON
- ld [MonType], a
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- callba GetGender
- jr c, .done1 ; no effect on genderless
-
- ld d, 0 ; male
- jr nz, .playermale
- inc d ; female
-.playermale
-
- ; check wild mon species
- push de
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld a, WILDMON
- ld [MonType], a
- callba GetGender
- jr c, .done2 ; no effect on genderless
-
- ld d, 0 ; male
- jr nz, .wildmale
- inc d ; female
-.wildmale
-
- ld a, d
- pop de
- cp d
- pop bc
- ret nz ; for the intended effect, this should be "ret z"
-
- sla b
- jr c, .max
- sla b
- jr c, .max
- sla b
- ret nc
-.max
- ld b, $ff
- ret
-
-.done2
- pop de
-
-.done1
- pop bc
- ret
-
-FastBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 4 if enemy mon is in one of the three
-; FleeMons tables.
-; Reality: multiply catch rate by 4 if enemy mon is one of the first three in
-; the first FleeMons table.
- ld a, [TempEnemyMonSpecies]
- ld c, a
- ld hl, FleeMons
- ld d, 3
-
-.loop
- ld a, BANK(FleeMons)
- call GetFarByte
-
- inc hl
- cp -1
- jr z, .next
- cp c
- jr nz, .next ; for the intended effect, this should be "jr nz, .loop"
- sla b
- jr c, .max
-
- sla b
- ret nc
-
-.max
- ld b, $ff
- ret
-
-.next
- dec d
- jr nz, .loop
- ret
-
-LevelBallMultiplier:
-; multiply catch rate by 8 if player mon level / 4 > enemy mon level
-; multiply catch rate by 4 if player mon level / 2 > enemy mon level
-; multiply catch rate by 2 if player mon level > enemy mon level
- ld a, [BattleMonLevel]
- ld c, a
- ld a, [EnemyMonLevel]
- cp c
- ret nc ; if player is lower level, we're done here
- sla b
- jr c, .max
-
- srl c
- cp c
- ret nc ; if player/2 is lower level, we're done here
- sla b
- jr c, .max
-
- srl c
- cp c
- ret nc ; if player/4 is lower level, we're done here
- sla b
- ret nc
-
-.max
- ld b, $ff
- ret
-
-; These two texts were carried over from gen 1.
-; They are not used in gen 2, and are dummied out.
-
-Text_RBY_CatchMarowak: ; 0xedab
- ; It dodged the thrown BALL! This #MON can't be caught!
- text_jump UnknownText_0x1c5a5a
- db "@"
-; 0xedb0
-
-Text_RBY_NoShake: ; 0xedb0
- ; You missed the #MON!
- text_jump UnknownText_0x1c5a90
- db "@"
-; 0xedb5
-
-Text_NoShake: ; 0xedb5
- ; Oh no! The #MON broke free!
- text_jump UnknownText_0x1c5aa6
- db "@"
-; 0xedba
-
-Text_OneShake: ; 0xedba
- ; Aww! It appeared to be caught!
- text_jump UnknownText_0x1c5ac3
- db "@"
-; 0xedbf
-
-Text_TwoShakes: ; 0xedbf
- ; Aargh! Almost had it!
- text_jump UnknownText_0x1c5ae3
- db "@"
-; 0xedc4
-
-Text_ThreeShakes: ; 0xedc4
- ; Shoot! It was so close too!
- text_jump UnknownText_0x1c5afa
- db "@"
-; 0xedc9
-
-Text_GotchaMonWasCaught: ; 0xedc9
- ; Gotcha! @ was caught!@ @
- text_jump UnknownText_0x1c5b17
- start_asm
- call WaitSFX
- push bc
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld de, MUSIC_CAPTURE
- call PlayMusic
- pop bc
- ld hl, TextJump_Waitbutton
- ret
-; ede6
-
-TextJump_Waitbutton: ; 0xede6
- ; @
- text_jump Text_Waitbutton_2
- db "@"
-; 0xedeb
-
-Text_SentToBillsPC: ; 0xedeb
- ; was sent to BILL's PC.
- text_jump UnknownText_0x1c5b38
- db "@"
-; 0xedf0
-
-Text_AddedToPokedex: ; 0xedf0
- ; 's data was newly added to the #DEX.@ @
- text_jump UnknownText_0x1c5b53
- db "@"
-; 0xedf5
-
-Text_AskNicknameNewlyCaughtMon: ; 0xedf5
- ; Give a nickname to @ ?
- text_jump UnknownText_0x1c5b7f
- db "@"
-; 0xedfa
-
-ReturnToBattle_UseBall: ; edfa (3:6dfa)
- callba _ReturnToBattle_UseBall
- ret
-
-TownMap: ; ee01
- callba PokegearMap
- ret
-; ee08
-
-
-Bicycle: ; ee08
- callba BikeFunction
- ret
-; ee0f
-
-
-MoonStone:
-FireStone:
-Thunderstone:
-WaterStone:
-LeafStone:
-SunStone: ; ee0f
- ld b, PARTYMENUACTION_EVO_STONE
- call UseItem_SelectMon
-
- jp c, .DecidedNotToUse
-
- ld a, MON_ITEM
- call GetPartyParamLocation
-
- ld a, [hl]
- cp EVERSTONE
- jr z, .NoEffect
-
- ld a, $1
- ld [wForceEvolution], a
- callba EvolvePokemon
-
- ld a, [wMonTriedToEvolve]
- and a
- jr z, .NoEffect
-
- jp UseDisposableItem
-
-.NoEffect:
- call WontHaveAnyEffectMessage
-
-.DecidedNotToUse:
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; ee3d
-
-
-HPUp:
-Protein:
-Iron:
-Carbos:
-Calcium: ; ee3d
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, RareCandy_StatBooster_ExitMenu
-
- call RareCandy_StatBooster_GetParameters
-
- call GetStatExpRelativePointer
-
- ld a, MON_STAT_EXP
- call GetPartyParamLocation
-
- add hl, bc
- ld a, [hl]
- cp 100
- jr nc, NoEffectMessage
-
- add 10
- ld [hl], a
- call UpdateStatsAfterItem
-
- call GetStatExpRelativePointer
-
- ld hl, StatStrings
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, StringBuffer2
- ld bc, ITEM_NAME_LENGTH
- call CopyBytes
-
- call Play_SFX_FULL_HEAL
-
- ld hl, Text_StatRose
- call PrintText
-
- ld c, HAPPINESS_USEDITEM
- callba ChangeHappiness
-
- jp UseDisposableItem
-
-
-NoEffectMessage: ; ee83
- ld hl, WontHaveAnyEffectText
- call PrintText
- jp ClearPalettes
-; ee8c
-
-
-UpdateStatsAfterItem: ; ee8c
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld d, h
- ld e, l
- ld a, MON_STAT_EXP - 1
- call GetPartyParamLocation
- ld b, $1
- predef_jump CalcPkmnStats
-; ee9f
-
-RareCandy_StatBooster_ExitMenu: ; ee9f
- xor a
- ld [wItemEffectSucceeded], a
- jp ClearPalettes
-; eea6
-
-
-Text_StatRose: ; 0xeea6
- ; 's @ rose.
- text_jump UnknownText_0x1c5b9a
- db "@"
-; 0xeeab
-
-
-StatStrings: ; eeab
- dw .health
- dw .attack
- dw .defense
- dw .speed
- dw .special
-
-.health db "HEALTH@"
-.attack db "ATTACK@"
-.defense db "DEFENSE@"
-.speed db "SPEED@"
-.special db "SPECIAL@"
-; eed9
-
-
-GetStatExpRelativePointer: ; eed9
- ld a, [CurItem]
- ld hl, Table_eeeb
-.next
- cp [hl]
- inc hl
- jr z, .got_it
- inc hl
- jr .next
-
-.got_it
- ld a, [hl]
- ld c, a
- ld b, 0
- ret
-; eeeb
-
-Table_eeeb: ; eeeb
- db HP_UP, MON_HP_EXP - MON_STAT_EXP
- db PROTEIN, MON_ATK_EXP - MON_STAT_EXP
- db IRON, MON_DEF_EXP - MON_STAT_EXP
- db CARBOS, MON_SPD_EXP - MON_STAT_EXP
- db CALCIUM, MON_SPC_EXP - MON_STAT_EXP
-; eef5
-
-
-RareCandy_StatBooster_GetParameters: ; eef5
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- ld [wd265], a
- ld a, MON_LEVEL
- call GetPartyParamLocation
- ld a, [hl]
- ld [CurPartyLevel], a
- call GetBaseData
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- ret
-; 0xef14
-
-
-RareCandy: ; ef14
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, RareCandy_StatBooster_ExitMenu
-
- call RareCandy_StatBooster_GetParameters
-
- ld a, MON_LEVEL
- call GetPartyParamLocation
-
- ld a, [hl]
- cp MAX_LEVEL
- jp nc, NoEffectMessage
-
- inc a
- ld [hl], a
- ld [CurPartyLevel], a
- push de
- ld d, a
- callba CalcExpAtLevel
-
- pop de
- ld a, MON_EXP
- call GetPartyParamLocation
-
- ld a, [hMultiplicand]
- ld [hli], a
- ld a, [hMultiplicand + 1]
- ld [hli], a
- ld a, [hMultiplicand + 2]
- ld [hl], a
-
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld b, a
- ld c, [hl]
- push bc
- call UpdateStatsAfterItem
-
- ld a, MON_MAXHP + 1
- call GetPartyParamLocation
-
- pop bc
- ld a, [hld]
- sub c
- ld c, a
- ld a, [hl]
- sbc b
- ld b, a
- dec hl
- ld a, [hl]
- add c
- ld [hld], a
- ld a, [hl]
- adc b
- ld [hl], a
- callba LevelUpHappinessMod
-
- ld a, PARTYMENUTEXT_LEVEL_UP
- call ItemActionText
-
- xor a ; PARTYMON
- ld [MonType], a
- predef CopyPkmnToTempMon
-
- hlcoord 9, 0
- ld b, 10
- ld c, 9
- call TextBox
-
- hlcoord 11, 1
- ld bc, $0004
- predef PrintTempMonStats
-
- call WaitPressAorB_BlinkCursor
-
- xor a ; PARTYMON
- ld [MonType], a
- ld a, [CurPartySpecies]
- ld [wd265], a
- predef LearnLevelMoves
-
- xor a
- ld [wForceEvolution], a
- callba EvolvePokemon
-
- jp UseDisposableItem
-; efad
-
-
-HealPowder: ; efad
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, StatusHealer_ExitMenu
-
- call UseStatusHealer
-
- cp $0
- jr nz, .asm_efc9
- ld c, HAPPINESS_BITTERPOWDER
- callba ChangeHappiness
-
- call LooksBitterMessage
-
- ld a, $0
-
-.asm_efc9
- jp StatusHealer_Jumptable
-; efcc
-
-
-Antidote:
-BurnHeal:
-IceHeal:
-Awakening:
-ParlyzHeal:
-FullHeal:
-Psncureberry:
-Przcureberry:
-BurntBerry:
-IceBerry:
-MintBerry:
-Miracleberry: ; efcc
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
-FullyHealStatus: ; efd4
- call UseStatusHealer
- jp StatusHealer_Jumptable
-; efda
-
-
-UseStatusHealer: ; efda (3:6fda)
- call IsMonFainted
- ld a, $1
- ret z
- call GetItemHealingAction
- ld a, MON_STATUS
- call GetPartyParamLocation
- ld a, [hl]
- and c
- jr nz, .good
- call IsItemUsedOnConfusedMon
- ld a, $1
- ret nc
- ld b, PARTYMENUTEXT_HEAL_CONFUSION
-.good
- xor a
- ld [hl], a
- ld a, b
- ld [PartyMenuActionText], a
- call HealStatus
- call Play_SFX_FULL_HEAL
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, $0
- ret
-
-IsItemUsedOnConfusedMon: ; f009 (3:7009)
- call IsItemUsedOnBattleMon
- jr nc, .nope
- ld a, [PlayerSubStatus3]
- bit SUBSTATUS_CONFUSED, a
- jr z, .nope
- ld a, c
- cp $ff
- jr nz, .nope
- scf
- ret
-
-.nope
- and a
- ret
-
-BattlemonRestoreHealth: ; f01e (3:701e)
- call IsItemUsedOnBattleMon
- ret nc
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [BattleMonHP], a
- ld a, [hld]
- ld [BattleMonHP + 1], a
- ret
-
-HealStatus: ; f030 (3:7030)
- call IsItemUsedOnBattleMon
- ret nc
- xor a
- ld [BattleMonStatus], a
- ld hl, PlayerSubStatus5
- res SUBSTATUS_TOXIC, [hl]
- ld hl, PlayerSubStatus1
- res SUBSTATUS_NIGHTMARE, [hl]
- call GetItemHealingAction
- ld a, c
- cp %11111111
- jr nz, .not_full_heal
- ld hl, PlayerSubStatus3
- res SUBSTATUS_CONFUSED, [hl]
-.not_full_heal
- push bc
- callba CalcPlayerStats
- pop bc
- ret
-
-GetItemHealingAction: ; f058 (3:7058)
- push hl
- ld a, [CurItem]
- ld hl, .healingactions
- ld bc, 3
-.next
- cp [hl]
- jr z, .found_it
- add hl, bc
- jr .next
-
-.found_it
- inc hl
- ld b, [hl]
- inc hl
- ld a, [hl]
- ld c, a
- cp %11111111
- pop hl
- ret
-; f071 (3:7071)
-
-.healingactions ; f071
-; item, party menu action text, status
- db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
- db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
- db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
- db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP
- db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
- db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111
- db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111
- db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111
- db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
- db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
- db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
- db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
- db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP
- db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111
- db -1, 0, 0
-; f09e
-
-StatusHealer_Jumptable: ; f09e (3:709e)
- ld hl, .dw
- rst JumpTable
- ret
-
-.dw ; f0a3 (3:70a3)
- dw StatusHealer_ClearPalettes
- dw StatusHealer_NoEffect
- dw StatusHealer_ExitMenu
-
-
-RevivalHerb: ; f0a9
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call RevivePokemon
- cp 0
- jr nz, .asm_f0c5
-
- ld c, HAPPINESS_REVIVALHERB
- callba ChangeHappiness
- call LooksBitterMessage
- ld a, 0
-
-.asm_f0c5
- jp StatusHealer_Jumptable
-; f0c8
-
-
-Revive:
-MaxRevive: ; f0c8
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call RevivePokemon
- jp StatusHealer_Jumptable
-; f0d6
-
-
-RevivePokemon: ; f0d6
- call IsMonFainted
- ld a, 1
- ret nz
- ld a, [wBattleMode]
- and a
- jr z, .skip_to_revive
-
- ld a, [CurPartyMon]
- ld c, a
- ld d, 0
- ld hl, wBattleParticipantsIncludingFainted
- ld b, CHECK_FLAG
- predef FlagPredef
- ld a, c
- and a
- jr z, .skip_to_revive
-
- ld a, [CurPartyMon]
- ld c, a
- ld hl, wBattleParticipantsNotFainted
- ld b, SET_FLAG
- predef FlagPredef
-
-.skip_to_revive
- xor a
- ld [Danger], a
- ld a, [CurItem]
- cp REVIVE
- jr z, .revive_half_hp
-
- call ReviveFullHP
- jr .finish_revive
-
-.revive_half_hp
- call ReviveHalfHP
-
-.finish_revive
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_REVIVE
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-; f128
-
-
-FullRestore: ; f128
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call IsMonFainted
- jp z, StatusHealer_NoEffect
-
- call IsMonAtFullHealth
- jr c, .NotAtFullHealth
-
- jp FullyHealStatus
-
-.NotAtFullHealth:
- call .FullRestore
- jp StatusHealer_Jumptable
-; f144
-
-
-.FullRestore: ; f144
- xor a
- ld [Danger], a
- call ReviveFullHP
- ld a, MON_STATUS
- call GetPartyParamLocation
- xor a
- ld [hli], a
- ld [hl], a
- call HealStatus
- call BattlemonRestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-; f16a
-
-
-BitterBerry: ; f16a
- ld hl, PlayerSubStatus3
- bit SUBSTATUS_CONFUSED, [hl]
- ld a, 1
- jr z, .done
-
- res SUBSTATUS_CONFUSED, [hl]
- xor a
- ld [hBattleTurn], a
- call UseItemText
-
- ld hl, ConfusedNoMoreText
- call StdBattleTextBox
-
- ld a, 0
-
-.done
- jp StatusHealer_Jumptable
-; f186
-
-
-MaxPotion:
-HyperPotion:
-SuperPotion:
-Potion:
-FreshWater:
-SodaPop:
-Lemonade:
-MoomooMilk:
-Ragecandybar:
-BerryJuice:
-Berry:
-GoldBerry: ; f186
- call ItemRestoreHP
- jp StatusHealer_Jumptable
-; f18c
-
-
-Energypowder: ; f18c
- ld c, HAPPINESS_BITTERPOWDER
- jr EnergypowderEnergyRootCommon
-; f190
-
-EnergyRoot: ; f190
- ld c, HAPPINESS_ENERGYROOT
-; f192
-
-EnergypowderEnergyRootCommon: ; f192
- push bc
- call ItemRestoreHP
- pop bc
- cp 0
- jr nz, .skip_happiness
-
- callba ChangeHappiness
- call LooksBitterMessage
- ld a, 0
-
-.skip_happiness
- jp StatusHealer_Jumptable
-; f1a9
-
-
-ItemRestoreHP: ; f1a9 (3:71a9)
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- ld a, 2
- ret c
-
- call IsMonFainted
- ld a, 1
- ret z
-
- call IsMonAtFullHealth
- ld a, 1
- ret nc
-
- xor a
- ld [Danger], a
- call GetHealingItemAmount
- call RestoreHealth
- call BattlemonRestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-
-HealHP_SFX_GFX: ; f1db (3:71db)
- push de
- ld de, SFX_POTION
- call WaitPlaySFX
- pop de
- ld a, [CurPartyMon]
- hlcoord 11, 0
- ld bc, SCREEN_WIDTH * 2
- call AddNTimes
- ld a, $2
- ld [wWhichHPBar], a
- predef_jump AnimateHPBar
-
-UseItem_SelectMon: ; f1f9 (3:71f9)
- call .SelectMon
- ret c
-
- ld a, [CurPartySpecies]
- cp EGG
- jr nz, .not_egg
-
- call CantUseOnEggMessage
- scf
- ret
-
-.not_egg
- and a
- ret
-
-.SelectMon: ; f20b (3:720b)
- ld a, b
- ld [PartyMenuActionText], a
- push hl
- push de
- push bc
- call ClearBGPalettes
- call ChoosePkmnToUseItemOn
- pop bc
- pop de
- pop hl
- ret
-
-ChoosePkmnToUseItemOn: ; f21c (3:721c)
- callba LoadPartyMenuGFX
- callba InitPartyMenuWithCancel
- callba InitPartyMenuGFX
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- callba PartyMenuSelect
- ret
-
-ItemActionText: ; f24a (3:724a)
- ld [PartyMenuActionText], a
- ld a, [CurPartySpecies]
- push af
- ld a, [CurPartyMon]
- push af
- push hl
- push de
- push bc
- callba WritePartyMenuTilemap
- callba PrintPartyMenuActionText
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- pop bc
- pop de
- pop hl
- pop af
- ld [CurPartyMon], a
- pop af
- ld [CurPartySpecies], a
- ret
-
-ItemActionTextWaitButton: ; f279 (3:7279)
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, TileMapEnd - TileMap
- ld a, " "
- call ByteFill
- ld a, [PartyMenuActionText]
- call ItemActionText
- ld a, $1
- ld [hBGMapMode], a
- ld c, 50
- call DelayFrames
- jp WaitPressAorB_BlinkCursor
-
-StatusHealer_NoEffect: ; f299 (3:7299)
- call WontHaveAnyEffectMessage
- jr StatusHealer_ClearPalettes
-
-StatusHealer_ExitMenu: ; f29e (3:729e)
- xor a
- ld [wItemEffectSucceeded], a
-StatusHealer_ClearPalettes: ; f2a2 (3:72a2)
- call ClearPalettes
- ret
-
-IsItemUsedOnBattleMon: ; f2a6 (3:72a6)
- ld a, [wBattleMode]
- and a
- ret z
- ld a, [CurPartyMon]
- push hl
- ld hl, CurBattleMon
- cp [hl]
- pop hl
- jr nz, .nope
- scf
- ret
-
-.nope
- xor a
- ret
-
-ReviveHalfHP: ; f2ba (3:72ba)
- call LoadHPFromBuffer1
- srl d
- rr e
- jr ContinueRevive
-
-ReviveFullHP: ; f2c3 (3:72c3)
- call LoadHPFromBuffer1
-ContinueRevive: ; f2c6 (3:72c6)
- ld a, MON_HP
- call GetPartyParamLocation
- ld [hl], d
- inc hl
- ld [hl], e
- jp LoadCurHPIntoBuffer5
-
-RestoreHealth: ; f2d1 (3:72d1)
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld a, [hl]
- add e
- ld [hld], a
- ld a, [hl]
- adc d
- ld [hl], a
- jr c, .full_hp
- call LoadCurHPIntoBuffer5
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld d, h
- ld e, l
- ld a, MON_MAXHP + 1
- call GetPartyParamLocation
- ld a, [de]
- sub [hl]
- dec de
- dec hl
- ld a, [de]
- sbc [hl]
- jr c, .finish
-.full_hp
- call ReviveFullHP
-.finish
- ret
-
-RemoveHP: ; f2f9 (3:72f9)
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld a, [hl]
- sub e
- ld [hld], a
- ld a, [hl]
- sbc d
- ld [hl], a
- jr nc, .okay
- xor a
- ld [hld], a
- ld [hl], a
-.okay
- call LoadCurHPIntoBuffer5
- ret
-
-IsMonFainted: ; f30d (3:730d)
- push de
- call LoadMaxHPToBuffer1
- call LoadCurHPToBuffer3
- call LoadHPFromBuffer3
- ld a, d
- or e
- pop de
- ret
-
-IsMonAtFullHealth: ; f31b (3:731b)
- call LoadHPFromBuffer3
- ld h, d
- ld l, e
- call LoadHPFromBuffer1
- ld a, l
- sub e
- ld a, h
- sbc d
- ret
-
-LoadCurHPIntoBuffer5: ; f328 (3:7328)
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer6], a
- ld a, [hl]
- ld [Buffer5], a
- ret
-; f336 (3:7336)
-
-LoadHPIntoBuffer5: ; f336
- ld a, d
- ld [Buffer6], a
- ld a, e
- ld [Buffer5], a
- ret
-; f33f
-
-LoadHPFromBuffer5: ; f33f
- ld a, [Buffer6]
- ld d, a
- ld a, [Buffer5]
- ld e, a
- ret
-; f348
-
-LoadCurHPToBuffer3: ; f348 (3:7348)
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer4], a
- ld a, [hl]
- ld [Buffer3], a
- ret
-
-LoadHPFromBuffer3: ; f356 (3:7356)
- ld a, [Buffer4]
- ld d, a
- ld a, [Buffer3]
- ld e, a
- ret
-
-LoadMaxHPToBuffer1: ; f35f (3:735f)
- push hl
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hl]
- ld [Buffer1], a
- pop hl
- ret
-
-LoadHPFromBuffer1: ; f36f (3:736f)
- ld a, [Buffer2]
- ld d, a
- ld a, [Buffer1]
- ld e, a
- ret
-
-GetOneFifthMaxHP: ; f378 (3:7378)
- push bc
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld [hDividend + 0], a
- ld a, [hl]
- ld [hDividend + 1], a
- ld a, 5
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hQuotient + 1]
- ld d, a
- ld a, [hQuotient + 2]
- ld e, a
- pop bc
- ret
-
-GetHealingItemAmount: ; f395 (3:7395)
- push hl
- ld a, [CurItem]
- ld hl, .Healing
- ld d, a
-.next
- ld a, [hli]
- cp -1
- jr z, .NotFound
- cp d
- jr z, .done
- inc hl
- inc hl
- jr .next
-
-.NotFound:
- scf
-.done
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- ret
-; f3af (3:73af)
-
-.Healing: ; f3af
- dbw FRESH_WATER, 50
- dbw SODA_POP, 60
- dbw LEMONADE, 80
- dbw HYPER_POTION, 200
- dbw SUPER_POTION, 50
- dbw POTION, 20
- dbw MAX_POTION, 999
- dbw FULL_RESTORE, 999
- dbw MOOMOO_MILK, 100
- dbw BERRY, 10
- dbw GOLD_BERRY, 30
- dbw ENERGYPOWDER, 50
- dbw ENERGY_ROOT, 200
- dbw RAGECANDYBAR, 20
- dbw BERRY_JUICE, 20
- dbw -1, 0
-; f3df
-
-Softboiled_MilkDrinkFunction: ; f3df (3:73df)
-; Softboiled/Milk Drink in the field
- ld a, [wPartyMenuCursor]
- dec a
- ld b, a
- call .SelectMilkDrinkRecipient ; select pokemon
- jr c, .skip
- ld a, b
- ld [CurPartyMon], a
- call IsMonFainted
- call GetOneFifthMaxHP
- call RemoveHP
- push bc
- call HealHP_SFX_GFX
- pop bc
- call GetOneFifthMaxHP
- ld a, c
- ld [CurPartyMon], a
- call IsMonFainted
- call RestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- call ItemActionText
- call JoyWaitAorB
-.skip
- ld a, b
- inc a
- ld [wPartyMenuCursor], a
- ret
-
-.SelectMilkDrinkRecipient: ; f419 (3:7419)
-.loop
- push bc
- ld a, PARTYMENUACTION_HEALING_ITEM
- ld [PartyMenuActionText], a
- call ChoosePkmnToUseItemOn
- pop bc
- jr c, .set_carry
- ld a, [wPartyMenuCursor]
- dec a
- ld c, a
- ld a, b
- cp c
- jr z, .cant_use ; chose the same mon as user
- ld a, c
- ld [CurPartyMon], a
- call IsMonFainted
- jr z, .cant_use
- call IsMonAtFullHealth
- jr nc, .cant_use
- xor a
- ret
-
-.set_carry
- scf
- ret
-
-.cant_use
- push bc
- ld hl, .Text_CantBeUsed
- call MenuTextBoxBackup
- pop bc
- jr .loop
-; f44a (3:744a)
-
-.Text_CantBeUsed: ; 0xf44a
- ; That can't be used on this #MON.
- text_jump UnknownText_0x1c5bac
- db "@"
-; 0xf44f
-
-
-EscapeRope: ; f44f
- xor a
- ld [wItemEffectSucceeded], a
- callba EscapeRopeFunction
-
- ld a, [wItemEffectSucceeded]
- cp 1
- call z, UseDisposableItem
- ret
-; f462
-
-
-SuperRepel: ; f462
- ld b, 200
- jr UseRepel
-; f466
-
-MaxRepel: ; f466
- ld b, 250
- jr UseRepel
-; f466
-
-Repel: ; f46a
- ld b, 100
-; f46c
-
-UseRepel: ; f46c
- ld a, [wRepelEffect]
- and a
- ld hl, TextJump_RepelUsedEarlierIsStillInEffect
- jp nz, PrintText
-
- ld a, b
- ld [wRepelEffect], a
- jp UseItemText
-
-
-TextJump_RepelUsedEarlierIsStillInEffect: ; 0xf47d
- ; The REPEL used earlier is still in effect.
- text_jump Text_RepelUsedEarlierIsStillInEffect
- db "@"
-; 0xf482
-
-
-XAccuracy: ; f482
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_X_ACCURACY, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_X_ACCURACY, [hl]
- jp UseItemText
-; f48f
-
-
-PokeDoll: ; f48f
- ld a, [wBattleMode]
- dec a
- jr nz, .asm_f4a6
- inc a
- ld [wForcedSwitch], a
- ld a, [wBattleResult]
- and 3 << 6
- or $2
- ld [wBattleResult], a
- jp UseItemText
-
-.asm_f4a6
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; f4ab
-
-
-GuardSpec: ; f4ab
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_MIST, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_MIST, [hl]
- jp UseItemText
-; f4b8
-
-
-DireHit: ; f4b8
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_FOCUS_ENERGY, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_FOCUS_ENERGY, [hl]
- jp UseItemText
-; f4c5
-
-
-XAttack:
-XDefend:
-XSpeed:
-XSpecial: ; f4c5
- call UseItemText
-
- ld a, [CurItem]
- ld hl, .x_item_table
-
-.loop
- cp [hl]
- jr z, .got_it
- inc hl
- inc hl
- jr .loop
-
-.got_it
- inc hl
- ld b, [hl]
- xor a
- ld [hBattleTurn], a
- ld [AttackMissed], a
- ld [EffectFailed], a
- callba CheckIfStatCanBeRaised
- call WaitSFX
-
- callba BattleCommand_StatUpMessage
- callba BattleCommand_StatUpFailText
-
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- ld c, HAPPINESS_USEDXITEM
- callba ChangeHappiness
- ret
-; f504
-
-.x_item_table ; f504
- db X_ATTACK, ATTACK
- db X_DEFEND, DEFENSE
- db X_SPEED, SPEED
- db X_SPECIAL, SP_ATTACK
-; f50c
-
-
-PokeFlute: ; f50c
- ld a, [wBattleMode]
- and a
- jr nz, .dummy
-.dummy
-
- xor a
- ld [wd002], a
-
- ld b, $ff ^ SLP
-
- ld hl, PartyMon1Status
- call .CureSleep
-
- ld a, [wBattleMode]
- cp WILD_BATTLE
- jr z, .skip_otrainer
- ld hl, OTPartyMon1Status
- call .CureSleep
-.skip_otrainer
-
- ld hl, BattleMonStatus
- ld a, [hl]
- and b
- ld [hl], a
- ld hl, EnemyMonStatus
- ld a, [hl]
- and b
- ld [hl], a
-
- ld a, [wd002]
- and a
- ld hl, .CatchyTune
- jp z, PrintText
- ld hl, .PlayedTheFlute
- call PrintText
-
- ld a, [Danger]
- and $80
- jr nz, .dummy2
-.dummy2
- ld hl, .AllSleepingMonWokeUp
- jp PrintText
-
-
-.CureSleep:
- ld de, PARTYMON_STRUCT_LENGTH
- ld c, PARTY_LENGTH
-
-.loop
- ld a, [hl]
- push af
- and SLP
- jr z, .not_asleep
- ld a, 1
- ld [wd002], a
-.not_asleep
- pop af
- and b
- ld [hl], a
- add hl, de
- dec c
- jr nz, .loop
- ret
-; f56c
-
-
-.CatchyTune: ; 0xf56c
- ; Played the # FLUTE. Now, that's a catchy tune!
- text_jump UnknownText_0x1c5bf9
- db "@"
-; 0xf571
-
-.AllSleepingMonWokeUp: ; 0xf571
- ; All sleeping #MON woke up.
- text_jump UnknownText_0x1c5c28
- db "@"
-; 0xf576
-
-.PlayedTheFlute: ; 0xf576
- ; played the # FLUTE.@ @
- text_jump UnknownText_0x1c5c44
- start_asm
- ld a, [wBattleMode]
- and a
- jr nz, .battle
-
- push de
- ld de, SFX_POKEFLUTE
- call WaitPlaySFX
- call WaitSFX
- pop de
-
-.battle
- jp PokeFluteTerminatorCharacter
-; f58f
-
-
-BlueCard: ; f58f
- ld hl, .bluecardtext
- jp MenuTextBoxWaitButton
-
-.bluecardtext
- text_jump UnknownText_0x1c5c5e
- db "@"
-; f59a
-
-
-CoinCase: ; f59a
- ld hl, .coincasetext
- jp MenuTextBoxWaitButton
-
-.coincasetext
- text_jump UnknownText_0x1c5c7b
- db "@"
-; f5a5
-
-
-OldRod: ; f5a5
- ld e, $0
- jr UseRod
-; f5a9
-
-GoodRod: ; f5a9
- ld e, $1
- jr UseRod
-; f5ad
-
-SuperRod: ; f5ad
- ld e, $2
- jr UseRod
-; f5b1
-
-UseRod: ; f5b1
- callba FishFunction
- ret
-; f5b8
-
-
-Itemfinder: ; f5b8
- callba ItemFinder
- ret
-; f5bf
-
-
-MaxElixer:
-PPUp:
-Ether:
-MaxEther:
-Elixer:
-Mysteryberry: ; f5bf
- ld a, [CurItem]
- ld [wd002], a
-
-.loop
- ; Party Screen opens to choose on which Pkmn to use the Item
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, PPRestoreItem_Cancel
-
-.loop2
- ld a, [wd002]
- cp MAX_ELIXER
- jp z, Elixer_RestorePPofAllMoves
- cp ELIXER
- jp z, Elixer_RestorePPofAllMoves
-
- ld hl, TextJump_RaiseThePPOfWhichMove
- ld a, [wd002]
- cp PP_UP
- jr z, .ppup
- ld hl, TextJump_RestoreThePPOfWhichMove
-
-.ppup
- call PrintText
-
- ld a, [CurMoveNum]
- push af
- xor a
- ld [CurMoveNum], a
- ld a, $2
- ld [wMoveSelectionMenuType], a
- callba MoveSelectionScreen
- pop bc
-
- ld a, b
- ld [CurMoveNum], a
- jr nz, .loop
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
-
- push hl
- ld a, [hl]
- ld [wd265], a
- call GetMoveName
- call CopyName1
- pop hl
-
- ld a, [wd002]
- cp PP_UP
- jp nz, Not_PP_Up
-
- ld a, [hl]
- cp SKETCH
- jr z, .CantUsePPUpOnSketch
-
- ld bc, $0015
- add hl, bc
- ld a, [hl]
- cp 3 << 6 ; have 3 PP Ups already been used?
- jr c, .do_ppup
-
-.CantUsePPUpOnSketch:
-.pp_is_maxed_out
- ld hl, TextJump_PPIsMaxedOut
- call PrintText
- jr .loop2
-
-.do_ppup
- ld a, [hl]
- add 1 << 6 ; increase PP Up count by 1
- ld [hl], a
- ld a, $1
- ld [wd265], a
- call ApplyPPUp
- call Play_SFX_FULL_HEAL
-
- ld hl, TextJump_PPsIncreased
- call PrintText
-
-FinishPPRestore: ; f64c
- call ClearPalettes
- jp UseDisposableItem
-; f652
-
-BattleRestorePP: ; f652
- ld a, [wBattleMode]
- and a
- jr z, .not_in_battle
- ld a, [CurPartyMon]
- ld b, a
- ld a, [CurBattleMon]
- cp b
- jr nz, .not_in_battle
- ld a, [PlayerSubStatus5]
- bit SUBSTATUS_TRANSFORMED, a
- jr nz, .not_in_battle
- call .UpdateBattleMonPP
-
-.not_in_battle
- call Play_SFX_FULL_HEAL
- ld hl, UnknownText_0xf739
- call PrintText
- jr FinishPPRestore
-
-.UpdateBattleMonPP:
- ld a, [CurPartyMon]
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld de, BattleMonMoves
- ld b, NUM_MOVES
-.loop
- ld a, [de]
- and a
- jr z, .done
- cp [hl]
- jr nz, .next
- push hl
- push de
- push bc
- rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves
- inc de
- endr
- ld bc, MON_PP - MON_MOVES
- add hl, bc
- ld a, [hl]
- ld [de], a
- pop bc
- pop de
- pop hl
-
-.next
- inc hl
- inc de
- dec b
- jr nz, .loop
-
-.done
- ret
-; f6a7
-
-Not_PP_Up: ; f6a7
- call RestorePP
- jr nz, BattleRestorePP
- jp PPRestoreItem_NoEffect
-; f6af
-
-Elixer_RestorePPofAllMoves: ; f6af
- xor a
- ld hl, wMenuCursorY
- ld [hli], a
- ld [hl], a
- ld b, NUM_MOVES
-.moveLoop
- push bc
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
- ld a, [hl]
- and a
- jr z, .next
-
- call RestorePP
- jr z, .next
- ld hl, wMenuCursorX
- inc [hl]
-
-.next
- ld hl, wMenuCursorY
- inc [hl]
- pop bc
- dec b
- jr nz, .moveLoop
- ld a, [wMenuCursorX]
- and a
- jp nz, BattleRestorePP
-
-PPRestoreItem_NoEffect: ; f6dd
- call WontHaveAnyEffectMessage
-
-PPRestoreItem_Cancel: ; f6e0
- call ClearPalettes
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; f6e8
-
-RestorePP: ; f6e8
- xor a ; PARTYMON
- ld [MonType], a
- call GetMaxPPOfMove
- ld hl, PartyMon1PP
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
- ld a, [wd265]
- ld b, a
- ld a, [hl]
- and (1 << 6) - 1
- cp b
- jr nc, .dont_restore
-
- ld a, [wd002]
- cp MAX_ELIXER
- jr z, .restore_all
- cp MAX_ETHER
- jr z, .restore_all
-
- ld c, 5
- cp MYSTERYBERRY
- jr z, .restore_some
-
- ld c, 10
-
-.restore_some
- ld a, [hl]
- and (1 << 6) - 1
- add c
- cp b
- jr nc, .restore_all
- ld b, a
-
-.restore_all
- ld a, [hl]
- and 3 << 6
- or b
- ld [hl], a
- ret
-
-.dont_restore
- xor a
- ret
-; f725
-
-TextJump_RaiseThePPOfWhichMove: ; 0xf725
- ; Raise the PP of which move?
- text_jump Text_RaiseThePPOfWhichMove
- db "@"
-; 0xf72a
-
-TextJump_RestoreThePPOfWhichMove: ; 0xf72a
- ; Restore the PP of which move?
- text_jump Text_RestoreThePPOfWhichMove
- db "@"
-; 0xf72f
-
-TextJump_PPIsMaxedOut: ; 0xf72f
- ; 's PP is maxed out.
- text_jump Text_PPIsMaxedOut
- db "@"
-; 0xf734
-
-TextJump_PPsIncreased: ; 0xf734
- ; 's PP increased.
- text_jump Text_PPsIncreased
- db "@"
-; 0xf739
-
-UnknownText_0xf739: ; 0xf739
- ; PP was restored.
- text_jump UnknownText_0x1c5cf1
- db "@"
-; 0xf73e
-
-
-Squirtbottle: ; f73e
- callba _Squirtbottle
- ret
-; f745
-
-
-CardKey: ; f745
- callba _CardKey
- ret
-; f74c
-
-
-BasementKey: ; f74c
- callba _BasementKey
- ret
-; f753
-
-
-SacredAsh: ; f753
- callba _SacredAsh
- ld a, [wItemEffectSucceeded]
- cp $1
- ret nz
- call UseDisposableItem
- ret
-; f763
-
-
-NormalBox: ; f763
- ld c, DECOFLAG_SILVER_TROPHY_DOLL
- jr OpenBox
-; f767
-
-GorgeousBox: ; f767
- ld c, DECOFLAG_GOLD_TROPHY_DOLL
-OpenBox: ; f769
- callba SetSpecificDecorationFlag
-
- ld hl, .text
- call PrintText
-
- jp UseDisposableItem
-; f778
-
-.text ; 0xf778
- ; There was a trophy inside!
- text_jump UnknownText_0x1c5d03
- db "@"
-; 0xf77d
-
-Brightpowder:
-Item19:
-LuckyPunch:
-MetalPowder:
-Nugget:
-Item2D:
-Item32:
-ExpShare:
-SilverLeaf:
-RedScale:
-Secretpotion:
-SSTicket:
-MysteryEgg:
-ClearBell:
-SilverWing:
-QuickClaw:
-GoldLeaf:
-SoftSand:
-SharpBeak:
-PoisonBarb:
-KingsRock:
-RedApricorn:
-Tinymushroom:
-BigMushroom:
-Silverpowder:
-BluApricorn:
-Item5A:
-AmuletCoin:
-YlwApricorn:
-GrnApricorn:
-CleanseTag:
-MysticWater:
-Twistedspoon:
-WhtApricorn:
-Blackbelt:
-BlkApricorn:
-Item64:
-PnkApricorn:
-Blackglasses:
-Slowpoketail:
-PinkBow:
-Stick:
-SmokeBall:
-Nevermeltice:
-Magnet:
-Pearl:
-BigPearl:
-Everstone:
-SpellTag:
-GsBall:
-MiracleSeed:
-ThickClub:
-FocusBand:
-Item78:
-HardStone:
-LuckyEgg:
-MachinePart:
-EggTicket:
-LostItem:
-Stardust:
-StarPiece:
-Pass:
-Item87:
-Item88:
-Item89:
-Charcoal:
-ScopeLens:
-Item8D:
-Item8E:
-MetalCoat:
-DragonFang:
-Item91:
-Leftovers:
-Item93:
-Item94:
-Item95:
-DragonScale:
-BerserkGene:
-Item99:
-Item9A:
-Item9B:
-FlowerMail:
-ItemA2:
-LightBall:
-PolkadotBow:
-ItemAB:
-UpGrade:
-ItemB0:
-RainbowWing:
-ItemB3:
-TeruSama: ; f77d
- jp IsntTheTimeMessage
-; f780
-
-
-Play_SFX_FULL_HEAL: ; f780
- push de
- ld de, SFX_FULL_HEAL
- call WaitPlaySFX
- pop de
- ret
-; f789
-
-UseItemText: ; f789
- ld hl, UsedItemText
- call PrintText
- call Play_SFX_FULL_HEAL
- call WaitPressAorB_BlinkCursor
-UseDisposableItem: ; f795
- ld hl, NumItems
- ld a, 1
- ld [wItemQuantityChangeBuffer], a
- jp TossItem
-; f7a0
-
-UseBallInTrainerBattle: ; f7a0
- call ReturnToBattle_UseBall
- ld de, ANIM_THROW_POKE_BALL
- ld a, e
- ld [FXAnimID], a
- ld a, d
- ld [FXAnimID + 1], a
- xor a
- ld [wBattleAnimParam], a
- ld [hBattleTurn], a
- ld [wNumHits], a
- predef PlayBattleAnim
- ld hl, BlockedTheBallText
- call PrintText
- ld hl, DontBeAThiefText
- call PrintText
- jr UseDisposableItem
-; f7ca
-
-WontHaveAnyEffect_NotUsedMessage: ; f7ca
- ld hl, WontHaveAnyEffectText
- call PrintText
-
- ; Item wasn't used.
- ld a, $2
- ld [wItemEffectSucceeded], a
- ret
-; f7d6
-
-LooksBitterMessage: ; f7d6
- ld hl, LooksBitterText
- jp PrintText
-; f7dc
-
-Ball_BoxIsFullMessage: ; f7dc
- ld hl, Ball_BoxIsFullText
- call PrintText
-
- ; Item wasn't used.
- ld a, $2
- ld [wItemEffectSucceeded], a
- ret
-; f7e8
-
-CantUseOnEggMessage: ; f7e8
- ld hl, CantUseOnEggText
- jr CantUseItemMessage
-
-IsntTheTimeMessage: ; f7ed
- ld hl, IsntTheTimeText
- jr CantUseItemMessage
-
-WontHaveAnyEffectMessage: ; f7f2
- ld hl, WontHaveAnyEffectText
- jr CantUseItemMessage
-
-BelongsToSomeoneElseMessage: ; f7f7
- ld hl, BelongsToSomeoneElseText
- jr CantUseItemMessage
-
-CyclingIsntAllowedMessage: ; f7fc
- ld hl, CyclingIsntAllowedText
- jr CantUseItemMessage
-
-CantGetOnYourBikeMessage: ; f801
- ld hl, CantGetOnYourBikeText
-
-CantUseItemMessage: ; f804
-; Item couldn't be used.
- xor a
- ld [wItemEffectSucceeded], a
- jp PrintText
-; f80b
-
-LooksBitterText: ; 0xf80b
- ; It looks bitter…
- text_jump UnknownText_0x1c5d3e
- db "@"
-; 0xf810
-
-CantUseOnEggText: ; 0xf810
- ; That can't be used on an EGG.
- text_jump UnknownText_0x1c5d50
- db "@"
-; 0xf815
-
-IsntTheTimeText: ; 0xf815
- ; OAK: ! This isn't the time to use that!
- text_jump UnknownText_0x1c5d6e
- db "@"
-; 0xf81a
-
-BelongsToSomeoneElseText: ; 0xf81a
- ; That belongs to someone else!
- text_jump UnknownText_0x1c5d97
- db "@"
-; 0xf81f
-
-WontHaveAnyEffectText: ; 0xf81f
- ; It won't have any effect.
- text_jump UnknownText_0x1c5db6
- db "@"
-; 0xf824
-
-BlockedTheBallText: ; 0xf824
- ; The trainer blocked the BALL!
- text_jump UnknownText_0x1c5dd0
- db "@"
-; 0xf829
-
-DontBeAThiefText: ; 0xf829
- ; Don't be a thief!
- text_jump UnknownText_0x1c5def
- db "@"
-; 0xf82e
-
-CyclingIsntAllowedText: ; 0xf82e
- ; Cycling isn't allowed here.
- text_jump UnknownText_0x1c5e01
- db "@"
-; 0xf833
-
-CantGetOnYourBikeText: ; 0xf833
- ; Can't get on your @ now.
- text_jump UnknownText_0x1c5e1d
- db "@"
-; 0xf838
-
-Ball_BoxIsFullText: ; 0xf838
- ; The #MON BOX is full. That can't be used now.
- text_jump UnknownText_0x1c5e3a
- db "@"
-; 0xf83d
-
-UsedItemText: ; 0xf83d
- ; used the@ .
- text_jump UnknownText_0x1c5e68
- db "@"
-; 0xf842
-
-GotOnTheItemText: ; 0xf842
- ; got on the@ .
- text_jump UnknownText_0x1c5e7b
- db "@"
-; 0xf847
-
-GotOffTheItemText: ; 0xf847
- ; got off@ the @ .
- text_jump UnknownText_0x1c5e90
- db "@"
-; 0xf84c
-
-
-ApplyPPUp: ; f84c
- ld a, MON_MOVES
- call GetPartyParamLocation
- push hl
- ld de, Buffer1
- predef FillPP
- pop hl
- ld bc, MON_PP - MON_MOVES
- add hl, bc
- ld de, Buffer1
- ld b, 0
-.loop
- inc b
- ld a, b
- cp NUM_MOVES + 1
- ret z
- ld a, [wd265]
- dec a
- jr nz, .use
- ld a, [wMenuCursorY]
- inc a
- cp b
- jr nz, .skip
-
-.use
- ld a, [hl]
- and 3 << 6
- ld a, [de] ; wasted cycle
- call nz, ComputeMaxPP
-
-.skip
- inc hl
- inc de
- jr .loop
-; f881
-
-
-
-ComputeMaxPP: ; f881
- push bc
- ; Divide the base PP by 5.
- ld a, [de]
- ld [hDividend + 3], a
- xor a
- ld [hDividend], a
- ld [hDividend + 1], a
- ld [hDividend + 2], a
- ld a, 5
- ld [hDivisor], a
- ld b, 4
- call Divide
- ; Get the number of PP, which are bits 6 and 7 of the PP value stored in RAM.
- ld a, [hl]
- ld b, a
- swap a
- and $f
- srl a
- srl a
- ld c, a
- ; If this value is 0, we are done
- and a
- jr z, .NoPPUp
-
-.loop
- ; Normally, a move with 40 PP would have 64 PP with three PP Ups.
- ; Since this would overflow into bit 6, we prevent that from happening
- ; by decreasing the extra amount of PP each PP Up provides, resulting
- ; in a maximum of 61.
- ld a, [hQuotient + 2]
- cp $8
- jr c, .okay
- ld a, $7
-
-.okay
- add b
- ld b, a
- ld a, [wd265]
- dec a
- jr z, .NoPPUp
- dec c
- jr nz, .loop
-
-.NoPPUp:
- ld [hl], b
- pop bc
- ret
-; f8b9
-
-RestoreAllPP: ; f8b9
- ld a, MON_PP
- call GetPartyParamLocation
- push hl
- ld a, MON_MOVES
- call GetPartyParamLocation
- pop de
- xor a ; PARTYMON
- ld [wMenuCursorY], a
- ld [MonType], a
- ld c, NUM_MOVES
-.loop
- ld a, [hli]
- and a
- ret z
- push hl
- push de
- push bc
- call GetMaxPPOfMove
- pop bc
- pop de
- ld a, [de]
- and 3 << 6
- ld b, a
- ld a, [wd265]
- add b
- ld [de], a
- inc de
- ld hl, wMenuCursorY
- inc [hl]
- pop hl
- dec c
- jr nz, .loop
- ret
-; f8ec
-
-
-GetMaxPPOfMove: ; f8ec
- ld a, [StringBuffer1 + 0]
- push af
- ld a, [StringBuffer1 + 1]
- push af
-
- ld a, [MonType]
- and a
-
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- jr z, .got_partymon ; PARTYMON
-
- ld hl, OTPartyMon1Moves
- dec a
- jr z, .got_partymon ; OTPARTYMON
-
- ld hl, TempMonMoves
- dec a
- jr z, .got_nonpartymon ; BOXMON
-
- ld hl, TempMonMoves ; Wasted cycles
- dec a
- jr z, .got_nonpartymon ; TEMPMON
-
- ld hl, BattleMonMoves ; WILDMON
-
-.got_nonpartymon ; BOXMON, TEMPMON, WILDMON
- call GetMthMoveOfCurrentMon
- jr .gotdatmove
-
-.got_partymon ; PARTYMON, OTPARTYMON
- call GetMthMoveOfNthPartymon
-
-.gotdatmove
- ld a, [hl]
- dec a
-
- push hl
- ld hl, Moves + MOVE_PP
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
- ld b, a
- ld de, StringBuffer1
- ld [de], a
- pop hl
-
- push bc
- ld bc, MON_PP - MON_MOVES
- ld a, [MonType]
- cp WILDMON
- jr nz, .notwild
- ld bc, EnemyMonPP - EnemyMonMoves
-.notwild
- add hl, bc
- ld a, [hl]
- and 3 << 6
- pop bc
-
- or b
- ld hl, StringBuffer1 + 1
- ld [hl], a
- xor a
- ld [wd265], a
- ld a, b ; this gets lost anyway
- call ComputeMaxPP
- ld a, [hl]
- and (1 << 6) - 1
- ld [wd265], a
-
- pop af
- ld [StringBuffer1 + 1], a
- pop af
- ld [StringBuffer1 + 0], a
- ret
-; f963
-
-GetMthMoveOfNthPartymon: ; f963
- ld a, [CurPartyMon]
- call AddNTimes
-
-GetMthMoveOfCurrentMon: ; f969
- ld a, [wMenuCursorY]
- ld c, a
- ld b, 0
- add hl, bc
- ret
-; f971
-
-INCLUDE "items/pokeball_wobble.asm"
--- a/items/item_names.asm
+++ /dev/null
@@ -1,257 +1,0 @@
-ItemNames::
- db "MASTER BALL@"
- db "ULTRA BALL@"
- db "BRIGHTPOWDER@"
- db "GREAT BALL@"
- db "# BALL@"
- db "TERU-SAMA@"
- db "BICYCLE@"
- db "MOON STONE@"
- db "ANTIDOTE@"
- db "BURN HEAL@"
- db "ICE HEAL@"
- db "AWAKENING@"
- db "PARLYZ HEAL@"
- db "FULL RESTORE@"
- db "MAX POTION@"
- db "HYPER POTION@"
- db "SUPER POTION@"
- db "POTION@"
- db "ESCAPE ROPE@"
- db "REPEL@"
- db "MAX ELIXER@"
- db "FIRE STONE@"
- db "THUNDERSTONE@"
- db "WATER STONE@"
- db "TERU-SAMA@"
- db "HP UP@"
- db "PROTEIN@"
- db "IRON@"
- db "CARBOS@"
- db "LUCKY PUNCH@"
- db "CALCIUM@"
- db "RARE CANDY@"
- db "X ACCURACY@"
- db "LEAF STONE@"
- db "METAL POWDER@"
- db "NUGGET@"
- db "# DOLL@"
- db "FULL HEAL@"
- db "REVIVE@"
- db "MAX REVIVE@"
- db "GUARD SPEC.@"
- db "SUPER REPEL@"
- db "MAX REPEL@"
- db "DIRE HIT@"
- db "TERU-SAMA@"
- db "FRESH WATER@"
- db "SODA POP@"
- db "LEMONADE@"
- db "X ATTACK@"
- db "TERU-SAMA@"
- db "X DEFEND@"
- db "X SPEED@"
- db "X SPECIAL@"
- db "COIN CASE@"
- db "ITEMFINDER@"
- db "TERU-SAMA@"
- db "EXP.SHARE@"
- db "OLD ROD@"
- db "GOOD ROD@"
- db "SILVER LEAF@"
- db "SUPER ROD@"
- db "PP UP@"
- db "ETHER@"
- db "MAX ETHER@"
- db "ELIXER@"
- db "RED SCALE@"
- db "SECRETPOTION@"
- db "S.S.TICKET@"
- db "MYSTERY EGG@"
- db "CLEAR BELL@"
- db "SILVER WING@"
- db "MOOMOO MILK@"
- db "QUICK CLAW@"
- db "PSNCUREBERRY@"
- db "GOLD LEAF@"
- db "SOFT SAND@"
- db "SHARP BEAK@"
- db "PRZCUREBERRY@"
- db "BURNT BERRY@"
- db "ICE BERRY@"
- db "POISON BARB@"
- db "KING'S ROCK@"
- db "BITTER BERRY@"
- db "MINT BERRY@"
- db "RED APRICORN@"
- db "TINYMUSHROOM@"
- db "BIG MUSHROOM@"
- db "SILVERPOWDER@"
- db "BLU APRICORN@"
- db "TERU-SAMA@"
- db "AMULET COIN@"
- db "YLW APRICORN@"
- db "GRN APRICORN@"
- db "CLEANSE TAG@"
- db "MYSTIC WATER@"
- db "TWISTEDSPOON@"
- db "WHT APRICORN@"
- db "BLACKBELT@"
- db "BLK APRICORN@"
- db "TERU-SAMA@"
- db "PNK APRICORN@"
- db "BLACKGLASSES@"
- db "SLOWPOKETAIL@"
- db "PINK BOW@"
- db "STICK@"
- db "SMOKE BALL@"
- db "NEVERMELTICE@"
- db "MAGNET@"
- db "MIRACLEBERRY@"
- db "PEARL@"
- db "BIG PEARL@"
- db "EVERSTONE@"
- db "SPELL TAG@"
- db "RAGECANDYBAR@"
- db "GS BALL@"
- db "BLUE CARD@"
- db "MIRACLE SEED@"
- db "THICK CLUB@"
- db "FOCUS BAND@"
- db "TERU-SAMA@"
- db "ENERGYPOWDER@"
- db "ENERGY ROOT@"
- db "HEAL POWDER@"
- db "REVIVAL HERB@"
- db "HARD STONE@"
- db "LUCKY EGG@"
- db "CARD KEY@"
- db "MACHINE PART@"
- db "EGG TICKET@"
- db "LOST ITEM@"
- db "STARDUST@"
- db "STAR PIECE@"
- db "BASEMENT KEY@"
- db "PASS@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "CHARCOAL@"
- db "BERRY JUICE@"
- db "SCOPE LENS@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "METAL COAT@"
- db "DRAGON FANG@"
- db "TERU-SAMA@"
- db "LEFTOVERS@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "MYSTERYBERRY@"
- db "DRAGON SCALE@"
- db "BERSERK GENE@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "SACRED ASH@"
- db "HEAVY BALL@"
- db "FLOWER MAIL@"
- db "LEVEL BALL@"
- db "LURE BALL@"
- db "FAST BALL@"
- db "TERU-SAMA@"
- db "LIGHT BALL@"
- db "FRIEND BALL@"
- db "MOON BALL@"
- db "LOVE BALL@"
- db "NORMAL BOX@"
- db "GORGEOUS BOX@"
- db "SUN STONE@"
- db "POLKADOT BOW@"
- db "TERU-SAMA@"
- db "UP-GRADE@"
- db "BERRY@"
- db "GOLD BERRY@"
- db "SQUIRTBOTTLE@"
- db "TERU-SAMA@"
- db "PARK BALL@"
- db "RAINBOW WING@"
- db "TERU-SAMA@"
- db "BRICK PIECE@"
- db "SURF MAIL@"
- db "LITEBLUEMAIL@"
- db "PORTRAITMAIL@"
- db "LOVELY MAIL@"
- db "EON MAIL@"
- db "MORPH MAIL@"
- db "BLUESKY MAIL@"
- db "MUSIC MAIL@"
- db "MIRAGE MAIL@"
- db "TERU-SAMA@"
- db "TM01@"
- db "TM02@"
- db "TM03@"
- db "TM04@"
- db "TERU-SAMA@"
- db "TM05@"
- db "TM06@"
- db "TM07@"
- db "TM08@"
- db "TM09@"
- db "TM10@"
- db "TM11@"
- db "TM12@"
- db "TM13@"
- db "TM14@"
- db "TM15@"
- db "TM16@"
- db "TM17@"
- db "TM18@"
- db "TM19@"
- db "TM20@"
- db "TM21@"
- db "TM22@"
- db "TM23@"
- db "TM24@"
- db "TM25@"
- db "TM26@"
- db "TM27@"
- db "TM28@"
- db "TERU-SAMA@"
- db "TM29@"
- db "TM30@"
- db "TM31@"
- db "TM32@"
- db "TM33@"
- db "TM34@"
- db "TM35@"
- db "TM36@"
- db "TM37@"
- db "TM38@"
- db "TM39@"
- db "TM40@"
- db "TM41@"
- db "TM42@"
- db "TM43@"
- db "TM44@"
- db "TM45@"
- db "TM46@"
- db "TM47@"
- db "TM48@"
- db "TM49@"
- db "TM50@"
- db "HM01@"
- db "HM02@"
- db "HM03@"
- db "HM04@"
- db "HM05@"
- db "HM06@"
- db "HM07@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "TERU-SAMA@"
- db "?@"
--- a/items/marts.asm
+++ /dev/null
@@ -1,442 +1,0 @@
-Marts: ; 160a9
- dw MartCherrygrove
- dw MartCherrygroveDex
- dw MartViolet
- dw MartAzalea
- dw MartCianwood
- dw MartGoldenrod2F1
- dw MartGoldenrod2F2
- dw MartGoldenrod3F
- dw MartGoldenrod4F
- dw MartGoldenrod5F1
- dw MartGoldenrod5F2
- dw MartGoldenrod5F3
- dw MartGoldenrod5F4
- dw MartOlivine
- dw MartEcruteak
- dw MartMahogany1
- dw MartMahogany2
- dw MartBlackthorn
- dw MartViridian
- dw MartPewter
- dw MartCerulean
- dw MartLavender
- dw MartVermilion
- dw MartCeladon2F1
- dw MartCeladon2F2
- dw MartCeladon3F
- dw MartCeladon4F
- dw MartCeladon5F1
- dw MartCeladon5F2
- dw MartFuchsia
- dw MartSaffron
- dw MartMtMoon
- dw MartIndigoPlateau
- dw MartUnderground
-MartsEnd
-; 160ed
-
-
-MartCherrygrove: ; 160ed
- db 4 ; # items
- db POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db $ff
-; 160f3
-
-MartCherrygroveDex: ; 160f3
- db 5 ; # items
- db POKE_BALL
- db POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db $ff
-; 160fa
-
-MartViolet: ; 160fa
- db 10 ; # items
- db POKE_BALL
- db POTION
- db ESCAPE_ROPE
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db X_DEFEND
- db X_ATTACK
- db X_SPEED
- db FLOWER_MAIL
- db $ff
-; 16106
-
-MartAzalea: ; 16106
- db 9 ; # items
- db CHARCOAL
- db POKE_BALL
- db POTION
- db SUPER_POTION
- db ESCAPE_ROPE
- db REPEL
- db ANTIDOTE
- db PARLYZ_HEAL
- db FLOWER_MAIL
- db $ff
-; 16111
-
-MartCianwood: ; 16111
- db 5 ; # items
- db POTION
- db SUPER_POTION
- db HYPER_POTION
- db FULL_HEAL
- db REVIVE
- db $ff
-; 16118
-
-MartGoldenrod2F1: ; 16118
- db 7 ; # items
- db POTION
- db SUPER_POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db ICE_HEAL
- db $ff
-; 16121
-
-MartGoldenrod2F2: ; 16121
- db 8 ; # items
- db POKE_BALL
- db GREAT_BALL
- db ESCAPE_ROPE
- db REPEL
- db REVIVE
- db FULL_HEAL
- db POKE_DOLL
- db FLOWER_MAIL
- db $ff
-; 1612b
-
-MartGoldenrod3F: ; 1612b
- db 7 ; # items
- db X_SPEED
- db X_SPECIAL
- db X_DEFEND
- db X_ATTACK
- db DIRE_HIT
- db GUARD_SPEC
- db X_ACCURACY
- db $ff
-; 16134
-
-MartGoldenrod4F: ; 16134
- db 5 ; # items
- db PROTEIN
- db IRON
- db CARBOS
- db CALCIUM
- db HP_UP
- db $ff
-; 1613b
-
-MartGoldenrod5F1: ; 1613b
- db 3 ; # items
- db TM_THUNDERPUNCH
- db TM_FIRE_PUNCH
- db TM_ICE_PUNCH
- db $ff
-; 16140
-
-MartGoldenrod5F2: ; 16140
- db 4 ; # items
- db TM_THUNDERPUNCH
- db TM_FIRE_PUNCH
- db TM_ICE_PUNCH
- db TM_HEADBUTT
- db $ff
-; 16146
-
-MartGoldenrod5F3: ; 16146
- db 4 ; # items
- db TM_THUNDERPUNCH
- db TM_FIRE_PUNCH
- db TM_ICE_PUNCH
- db TM_ROCK_SMASH
- db $ff
-; 1614c
-
-MartGoldenrod5F4: ; 1614c
- db 5 ; # items
- db TM_THUNDERPUNCH
- db TM_FIRE_PUNCH
- db TM_ICE_PUNCH
- db TM_HEADBUTT
- db TM_ROCK_SMASH
- db $ff
-; 16153
-
-MartOlivine: ; 16153
- db 9 ; # items
- db GREAT_BALL
- db SUPER_POTION
- db HYPER_POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db ICE_HEAL
- db SUPER_REPEL
- db SURF_MAIL
- db $ff
-; 1615e
-
-MartEcruteak: ; 1615e
- db 10 ; # items
- db POKE_BALL
- db GREAT_BALL
- db POTION
- db SUPER_POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db ICE_HEAL
- db REVIVE
- db $ff
-; 1616a
-
-MartMahogany1: ; 1616a
- db 4 ; # items
- db TINYMUSHROOM
- db SLOWPOKETAIL
- db POKE_BALL
- db POTION
- db $ff
-; 16170
-
-MartMahogany2: ; 16170
- db 9 ; # items
- db RAGECANDYBAR
- db GREAT_BALL
- db SUPER_POTION
- db HYPER_POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db SUPER_REPEL
- db REVIVE
- db FLOWER_MAIL
- db $ff
-; 1617b
-
-MartBlackthorn: ; 1617b
- db 9 ; # items
- db GREAT_BALL
- db ULTRA_BALL
- db HYPER_POTION
- db MAX_POTION
- db FULL_HEAL
- db REVIVE
- db MAX_REPEL
- db X_DEFEND
- db X_ATTACK
- db $ff
-; 16186
-
-MartViridian: ; 16186
- db 9 ; # items
- db ULTRA_BALL
- db HYPER_POTION
- db FULL_HEAL
- db REVIVE
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db FLOWER_MAIL
- db $ff
-; 16191
-
-MartPewter: ; 16191
- db 7 ; # items
- db GREAT_BALL
- db SUPER_POTION
- db SUPER_REPEL
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db $ff
-; 1619a
-
-MartCerulean: ; 1619a
- db 9 ; # items
- db GREAT_BALL
- db ULTRA_BALL
- db SUPER_POTION
- db SUPER_REPEL
- db FULL_HEAL
- db X_DEFEND
- db X_ATTACK
- db DIRE_HIT
- db SURF_MAIL
- db $ff
-; 161a5
-
-MartLavender: ; 161a5
- db 8 ; # items
- db GREAT_BALL
- db POTION
- db SUPER_POTION
- db MAX_REPEL
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db $ff
-; 161af
-
-MartVermilion: ; 161af
- db 8 ; # items
- db ULTRA_BALL
- db SUPER_POTION
- db HYPER_POTION
- db REVIVE
- db PARLYZ_HEAL
- db AWAKENING
- db BURN_HEAL
- db LITEBLUEMAIL
- db $ff
-; 161b9
-
-MartCeladon2F1: ; 161b9
- db 7 ; # items
- db POTION
- db SUPER_POTION
- db HYPER_POTION
- db MAX_POTION
- db REVIVE
- db SUPER_REPEL
- db MAX_REPEL
- db $ff
-; 161c2
-
-MartCeladon2F2: ; 161c2
- db 10 ; # items
- db POKE_BALL
- db GREAT_BALL
- db ULTRA_BALL
- db ESCAPE_ROPE
- db FULL_HEAL
- db ANTIDOTE
- db BURN_HEAL
- db ICE_HEAL
- db AWAKENING
- db PARLYZ_HEAL
- db $ff
-; 161ce
-
-MartCeladon3F: ; 161ce
- db 5 ; # items
- db TM_HIDDEN_POWER
- db TM_SUNNY_DAY
- db TM_PROTECT
- db TM_RAIN_DANCE
- db TM_SANDSTORM
- db $ff
-; 161d5
-
-MartCeladon4F: ; 161d5
- db 3 ; # items
- db POKE_DOLL
- db LOVELY_MAIL
- db SURF_MAIL
- db $ff
-; 161da
-
-MartCeladon5F1: ; 161da
- db 5 ; # items
- db HP_UP
- db PROTEIN
- db IRON
- db CARBOS
- db CALCIUM
- db $ff
-; 161e1
-
-MartCeladon5F2: ; 161e1
- db 7 ; # items
- db X_ACCURACY
- db GUARD_SPEC
- db DIRE_HIT
- db X_ATTACK
- db X_DEFEND
- db X_SPEED
- db X_SPECIAL
- db $ff
-; 161ea
-
-MartFuchsia: ; 161ea
- db 7 ; # items
- db GREAT_BALL
- db ULTRA_BALL
- db SUPER_POTION
- db HYPER_POTION
- db FULL_HEAL
- db MAX_REPEL
- db FLOWER_MAIL
- db $ff
-; 161f3
-
-MartSaffron: ; 161f3
- db 8 ; # items
- db GREAT_BALL
- db ULTRA_BALL
- db HYPER_POTION
- db MAX_POTION
- db FULL_HEAL
- db X_ATTACK
- db X_DEFEND
- db FLOWER_MAIL
- db $ff
-; 161fd
-
-MartMtMoon: ; 161fd
- db 6 ; # items
- db POKE_DOLL
- db FRESH_WATER
- db SODA_POP
- db LEMONADE
- db REPEL
- db PORTRAITMAIL
- db $ff
-; 16205
-
-MartIndigoPlateau: ; 16205
- db 7 ; # items
- db ULTRA_BALL
- db MAX_REPEL
- db HYPER_POTION
- db MAX_POTION
- db FULL_RESTORE
- db REVIVE
- db FULL_HEAL
- db $ff
-; 1620e
-
-MartUnderground: ; 1620e
- db 4 ; # items
- db ENERGYPOWDER
- db ENERGY_ROOT
- db HEAL_POWDER
- db REVIVAL_HERB
- db $ff
-; 16214
-
-DefaultMart: ; 16214
- db 2 ; # items
- db POKE_BALL
- db POTION
- db $ff
-; 16218
--- a/items/pokeball_wobble.asm
+++ /dev/null
@@ -1,88 +1,0 @@
-GetPokeBallWobble: ; f971 (3:7971)
-; Returns whether a Poke Ball will wobble in the catch animation.
-; Whether a Pokemon is caught is determined beforehand.
-
- push de
-
- ld a, [rSVBK]
- ld d, a
- push de
-
- ld a, 1 ; BANK(Buffer2)
- ld [rSVBK], a
-
- ld a, [Buffer2]
- inc a
- ld [Buffer2], a
-
-; Wobble up to 3 times.
- cp 3 + 1
- jr z, .finished
-
- ld a, [wWildMon]
- and a
- ld c, 0 ; next
- jr nz, .done
-
- ld hl, .WobbleProbabilities
- ld a, [Buffer1]
- ld b, a
-.loop
- ld a, [hli]
- cp b
- jr nc, .checkwobble
- inc hl
- jr .loop
-
-.checkwobble
- ld b, [hl]
- call Random
- cp b
- ld c, 0 ; next
- jr c, .done
- ld c, 2 ; escaped
- jr .done
-
-.finished
- ld a, [wWildMon]
- and a
- ld c, 1 ; caught
- jr nz, .done
- ld c, 2 ; escaped
-
-.done
- pop de
- ld e, a
- ld a, d
- ld [rSVBK], a
- ld a, e
- pop de
- ret
-
-.WobbleProbabilities: ; f9ba
-; catch rate, chance of wobbling / 255
-; nLeft/255 = (nRight/255) ** 4
- db 1, 63
- db 2, 75
- db 3, 84
- db 4, 90
- db 5, 95
- db 7, 103
- db 10, 113
- db 15, 126
- db 20, 134
- db 30, 149
- db 40, 160
- db 50, 169
- db 60, 177
- db 80, 191
- db 100, 201
- db 120, 211
- db 140, 220
- db 160, 227
- db 180, 234
- db 200, 240
- db 220, 246
- db 240, 251
- db 254, 253
- db 255, 255
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -2,7 +2,7 @@
charmap "<CR>", $d
-INCLUDE "gbhw.asm"
+INCLUDE "constants/hardware_constants.asm"
SECTION "Main", ROMX
--- a/macros.asm
+++ b/macros.asm
@@ -1,320 +1,26 @@
INCLUDE "macros/enum.asm"
-INCLUDE "macros/basestats.asm"
-INCLUDE "macros/event.asm"
-INCLUDE "macros/sound.asm"
-INCLUDE "macros/text.asm"
INCLUDE "macros/charmap.asm"
-INCLUDE "macros/move_anim.asm"
-INCLUDE "macros/movement.asm"
-INCLUDE "macros/map.asm"
-INCLUDE "macros/pic.asm"
INCLUDE "macros/predef.asm"
INCLUDE "macros/rst.asm"
-INCLUDE "macros/mobile.asm"
-INCLUDE "macros/trainer.asm"
-INCLUDE "macros/trade_anim.asm"
+INCLUDE "macros/data.asm"
+INCLUDE "macros/code.asm"
+INCLUDE "macros/coords.asm"
+INCLUDE "macros/color.asm"
+INCLUDE "macros/base_stats.asm"
INCLUDE "macros/tilesets.asm"
-RGB: MACRO
-rept _NARG / 3
- dw ((\3) << 10) + ((\2) << 5) + (\1)
- shift
- shift
- shift
-endr
- ENDM
+INCLUDE "macros/scripts/audio.asm"
+INCLUDE "macros/scripts/maps.asm"
+INCLUDE "macros/scripts/event.asm"
+INCLUDE "macros/scripts/text.asm"
+INCLUDE "macros/scripts/movement.asm"
+INCLUDE "macros/scripts/effect_commands.asm"
+INCLUDE "macros/scripts/move_anim.asm"
+INCLUDE "macros/scripts/trade_anim.asm"
+INCLUDE "macros/scripts/gfx_anim.asm"
percent EQUS "* $ff / 100"
-
-dwb: MACRO
- dw \1
- db \2
- ENDM
-
-dbw: MACRO
- db \1
- dw \2
- ENDM
-
-dbbw: MACRO
- db \1, \2
- dw \3
- ENDM
-
-dbww: MACRO
- db \1
- dw \2, \3
- ENDM
-
-dbwww: MACRO
- db \1
- dw \2, \3, \4
- ENDM
-
-dn: MACRO
- rept _NARG / 2
- db (\1) << 4 + (\2)
- shift
- shift
- endr
- ENDM
-
-dx: MACRO
-x = 8 * ((\1) - 1)
- rept \1
- db ((\2) >> x) & $ff
-x = x + -8
- endr
- ENDM
-
-dt: MACRO ; three-byte (big-endian)
- dx 3, \1
- ENDM
-
-dd: MACRO ; four-byte (big-endian)
- dx 4, \1
- ENDM
-
-bigdw: MACRO ; big-endian word
- dx 2, \1
- ENDM
-
-dba: MACRO ; dbw bank, address
- rept _NARG
- dbw BANK(\1), \1
- shift
- endr
- ENDM
-
-dab: MACRO ; dwb address, bank
- rept _NARG
- dwb \1, BANK(\1)
- shift
- endr
- ENDM
-
-lb: MACRO ; r, hi, lo
- ld \1, (\2 & $ff) << 8 + (\3 & $ff)
- ENDM
-
-ln: MACRO ; r, hi, lo
- ld \1, (\2 & $f) << 4 + (\3 & $f)
- ENDM
-
-bccoord equs "coord bc,"
-decoord equs "coord de,"
-hlcoord equs "coord hl,"
-
-coord: MACRO
-; register, x, y[, origin]
- if _NARG < 4
- ld \1, TileMap + SCREEN_WIDTH * (\3) + (\2)
- else
- ld \1, \4 + SCREEN_WIDTH * (\3) + (\2)
- endc
- ENDM
-
-dwcoord: MACRO
- rept _NARG / 2
- dw TileMap + SCREEN_WIDTH * (\2) + (\1)
- shift
- shift
- endr
- ENDM
-
-ldcoord_a: MACRO
- if _NARG < 3
- ld [TileMap + SCREEN_WIDTH * (\2) + (\1)], a
- else
- ld [\3 + SCREEN_WIDTH * (\2) + (\1)], a
- endc
- ENDM
-
-lda_coord: MACRO
- if _NARG < 3
- ld a, [TileMap + SCREEN_WIDTH * (\2) + (\1)]
- else
- ld a, [\3 + SCREEN_WIDTH * (\2) + (\1)]
- endc
- ENDM
-
-; pic animations
-frame: MACRO
- db \1
-x = \2
-IF _NARG > 2
-rept _NARG +- 2
-x = x | (1 << (\3 + 1))
- shift
-endr
-endc
- db x
- ENDM
-setrepeat: MACRO
- db $fe
- db \1
- ENDM
-dorepeat: MACRO
- db $fd
- db \1
- ENDM
-endanim: MACRO
- db $ff
- ENDM
-
-
-delanim: MACRO
- db $fc
- ENDM
-dorestart: MACRO
- db $fe
- ENDM
-
-sine_wave: MACRO
-; \1: amplitude
-
-x = 0
- rept $20
- ; Round up.
- dw (sin(x) + (sin(x) & $ff)) >> 8
-x = x + (\1) * $40000
- endr
-ENDM
-
-
-bcd: MACRO
- rept _NARG
- dn ((\1) % 100) / 10, (\1) % 10
- shift
- endr
-ENDM
-
-tiles EQUS "* $10"
-tile EQUS "+ $10 *"
-
-partymon: MACRO
- db \1
- db \2
- db \3, \4, \5, \6
- dw \7
- dt \8
-rept 8
- shift
-endr
-rept 5
- bigdw \1
- shift
-endr
- db \1, \2
- db \3, \4, \5, \6
-rept 6
- shift
-endr
- db \1
- db \2, \3, \4
- db \5
- db \6, \7
-rept 7
- shift
-endr
-rept 7
- bigdw \1
- shift
-endr
- db \1
-ENDM
-
-palettes EQUS "* 8"
-palette EQUS "+ 8 *"
-
-ldpixel: MACRO
-if _NARG >= 5
- lb \1, \2 * 8 + \4, \3 * 8 + \5
-else
- lb \1, \2 * 8, \3 * 8
-endc
-endm
-
-depixel EQUS "ldpixel de,"
-bcpixel EQUS "ldpixel bc,"
-
-dbpixel: MACRO
-if _NARG >= 4
- db \1 * 8 + \3, \2 * 8 + \4
-else
- db \1 * 8, \2 * 8
-endc
-endm
-
-bgcoord: MACRO
-IF _NARG >= 4
- ld \1, \3 * $20 + \2 + \4
-ELSE
- ld \1, \3 * $20 + \2 + VBGMap0
-ENDC
-ENDM
-
-hlbgcoord EQUS "bgcoord hl,"
-debgcoord EQUS "bgcoord de,"
-bcbgcoord EQUS "bgcoord bc,"
-bgrows EQUS "* $20"
-
-palred EQUS "$0001 *"
-palgreen EQUS "$0020 *"
-palblue EQUS "$0400 *"
-
-dsprite: MACRO
-; conditional segment is there because not every instance of
-; this macro is directly OAM
-if _NARG >= 7 ; y tile, y pxl, x tile, x pxl, vtile offset, flags, palette
- db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, (\6 << 3) + (\7 & 7)
-else
- db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6
-endc
-endm
-
-jumptable: MACRO
- ld a, [\2]
- ld e, a
- ld d, 0
- ld hl, \1
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-endm
-
-maskbits: macro
-; returns to x
-; usage in rejection sampling
-; .loop
-; call Random
-; maskbits 30
-; and x
-; cp 30
-; jr nc, .loop
-
-x = 1
-rept 8
-IF \1 > x
-x = (x + 1) * 2 +- 1
-ENDC
-endr
-endm
-
-homecall: MACRO
- ld a, [hROMBank]
- push af
- ld a, BANK(\1)
- rst Bankswitch
-
- call \1
-
- pop af
- rst Bankswitch
-ENDM
-
+tiles EQUS "* LEN_2BPP_TILE"
+tile EQUS "+ LEN_2BPP_TILE *"
--- /dev/null
+++ b/macros/base_stats.asm
@@ -1,0 +1,67 @@
+; Used in data/pokemon/base_stats/*.asm
+
+define: macro
+if !def(\1)
+\1 equs \2
+endc
+endm
+
+const_value = 0
+
+add_tm: MACRO
+if !def(TM01)
+TM01 = const_value
+ enum_start 1
+endc
+ define _\@_1, "TM_\1"
+ const _\@_1
+ enum \1_TMNUM
+ENDM
+
+add_hm: MACRO
+if !def(HM01)
+HM01 = const_value
+endc
+ define _\@_1, "HM_\1"
+ const _\@_1
+ enum \1_TMNUM
+ENDM
+
+add_mt: MACRO
+ enum \1_TMNUM
+ENDM
+
+; N TMs/HMs need (N+7)/8 bytes for their bit flags.
+; The rgbasm integers tms1, tms2, tms3 each hold 3 bytes, or 24 bits.
+tmhm: MACRO
+tms1 = 0
+tms2 = 0
+tms3 = 0
+rept _NARG
+ if def(\1_TMNUM)
+ if \1_TMNUM < 24 + 1
+tms1 = tms1 | (1 << ((\1_TMNUM) - 1))
+ elif \1_TMNUM < 48 + 1
+tms2 = tms2 | (1 << ((\1_TMNUM) - 1 - 24))
+ else
+tms3 = tms3 | (1 << ((\1_TMNUM) - 1 - 48))
+ endc
+ else
+ fail "\1 is not a TM, HM, or move tutor move"
+ endc
+ shift
+endr
+
+rept 3
+ db tms1 & $ff
+tms1 = tms1 >> 8
+endr
+rept 3
+ db tms2 & $ff
+tms2 = tms2 >> 8
+endr
+rept 2
+ db tms3 & $ff
+tms3 = tms3 >> 8
+endr
+ENDM
--- a/macros/basestats.asm
+++ /dev/null
@@ -1,65 +1,0 @@
-define: macro
-if !def(\1)
-\1 equs \2
-endc
-endm
-
-const_value = 0
-
-add_tm: MACRO
-if !def(TM01)
-TM01 = const_value
- enum_start 1
-endc
- define _\@_1, "TM_\1"
- const _\@_1
- enum \1_TMNUM
-ENDM
-
-add_hm: MACRO
-if !def(HM01)
-HM01 = const_value
-endc
- define _\@_1, "HM_\1"
- const _\@_1
- enum \1_TMNUM
-ENDM
-
-add_mt: MACRO
- enum \1_TMNUM
-ENDM
-
-; N TMs/HMs need (N+7)/8 bytes for their bit flags.
-; The rgbasm integers tms1, tms2, tms3 each hold 3 bytes, or 24 bits.
-tmhm: MACRO
-tms1 = 0
-tms2 = 0
-tms3 = 0
-rept _NARG
- if def(\1_TMNUM)
- if \1_TMNUM < 24 + 1
-tms1 = tms1 | (1 << ((\1_TMNUM) - 1))
- elif \1_TMNUM < 48 + 1
-tms2 = tms2 | (1 << ((\1_TMNUM) - 1 - 24))
- else
-tms3 = tms3 | (1 << ((\1_TMNUM) - 1 - 48))
- endc
- else
- fail "\1 is not a TM, HM, or move tutor move"
- endc
- shift
-endr
-
-rept 3
- db tms1 & $ff
-tms1 = tms1 >> 8
-endr
-rept 3
- db tms2 & $ff
-tms2 = tms2 >> 8
-endr
-rept 2
- db tms3 & $ff
-tms3 = tms3 >> 8
-endr
-ENDM
--- a/macros/charmap.asm
+++ b/macros/charmap.asm
@@ -1,208 +1,209 @@
; Control characters
- charmap "<START>", $00
- charmap "<PLAY_G>", $14 ; gendered PlayerName; same as "<PLAYER>" in English
- charmap "<DAY>", $15
- charmap "¯", $1f ; soft linebreak
- charmap "<LNBRK>", $22
- charmap "<POKE>", $24 ; "<PO><KE>"
- charmap "%", $25
- charmap "<RED>", $38 ; RedsName
- charmap "<GREEN>", $39 ; GreensName
- charmap "<ENEMY>", $3f
- charmap "<MOM>", $49 ; MomsName
- charmap "<PKMN>", $4a ; "<PK><MN>"
- charmap "<NEXT>", $4e
- charmap "<LINE>", $4f
+ charmap "<START>", $00
+ charmap "<PLAY_G>", $14 ; gendered PlayerName; same as "<PLAYER>" in English
+ charmap "<DAY>", $15
+ charmap "¯", $1f ; soft linebreak
+ charmap "<LNBRK>", $22
+ charmap "<KOUGEKI>", $23 ; "こうげき"
+ charmap "<POKE>", $24 ; "<PO><KE>"
+ charmap "%", $25
+ charmap "<RED>", $38 ; RedsName
+ charmap "<GREEN>", $39 ; GreensName
+ charmap "<ENEMY>", $3f
+ charmap "<MOM>", $49 ; MomsName
+ charmap "<PKMN>", $4a ; "<PK><MN>"
+ charmap "<NEXT>", $4e
+ charmap "<LINE>", $4f
- charmap "@", $50
- charmap "<PARA>", $51
- charmap "<PLAYER>", $52 ; PlayerName
- charmap "<RIVAL>", $53
- charmap "#", $54
- charmap "<CONT>", $55
- charmap "<......>", $56 ; "……"
- charmap "<DONE>", $57
- charmap "<PROMPT>", $58
- charmap "<TARGET>", $59
- charmap "<USER>", $5a
- charmap "<PC>", $5b ; "PC"
- charmap "<TM>", $5c ; "TM"
- charmap "<TRNER>", $5d ; "TRAINER"
- charmap "<ROCKET>", $5e ; "ROCKET"
- charmap "<DEXEND>", $5f
+ charmap "@", $50 ; string terminator
+ charmap "<PARA>", $51
+ charmap "<PLAYER>", $52 ; PlayerName
+ charmap "<RIVAL>", $53
+ charmap "#", $54 ; "POKé"
+ charmap "<CONT>", $55
+ charmap "<......>", $56 ; "……"
+ charmap "<DONE>", $57
+ charmap "<PROMPT>", $58
+ charmap "<TARGET>", $59
+ charmap "<USER>", $5a
+ charmap "<PC>", $5b ; "PC"
+ charmap "<TM>", $5c ; "TM"
+ charmap "<TRNER>", $5d ; "TRAINER"
+ charmap "<ROCKET>", $5e ; "ROCKET"
+ charmap "<DEXEND>", $5f
-; Actual characters (from gfx/misc/font_extra.png)
+; Actual characters (from gfx/font/font_extra.png)
- charmap "<BOLD_A>", $60 ; unused
- charmap "<BOLD_B>", $61 ; unused
- charmap "<BOLD_C>", $62 ; unused
- charmap "<BOLD_D>", $63 ; unused
- charmap "<BOLD_E>", $64 ; unused
- charmap "<BOLD_F>", $65 ; unused
- charmap "<BOLD_G>", $66 ; unused
- charmap "<BOLD_H>", $67 ; unused
- charmap "<BOLD_I>", $68 ; unused
- charmap "<BOLD_V>", $69
- charmap "<BOLD_S>", $6a
- charmap "<BOLD_L>", $6b ; unused
- charmap "<BOLD_M>", $6c ; unused
- charmap "<COLON>", $6d ; colon with tinier dots than ":"
- charmap "ぃ", $6e ; hiragana small i, unused
- charmap "ぅ", $6f ; hiragana small u, unused
- charmap "<PO>", $70
- charmap "<KE>", $71
- charmap "<``>", $72 ; opening quote
- charmap "<''>", $73 ; closing quote
- charmap "·", $74 ; middle dot, unused
- charmap "…", $75 ; ellipsis
- charmap "ぁ", $76 ; hiragana small a, unused
- charmap "ぇ", $77 ; hiragana small e, unused
- charmap "ぉ", $78 ; hiragana small o, unused
+ charmap "<BOLD_A>", $60 ; unused
+ charmap "<BOLD_B>", $61 ; unused
+ charmap "<BOLD_C>", $62 ; unused
+ charmap "<BOLD_D>", $63 ; unused
+ charmap "<BOLD_E>", $64 ; unused
+ charmap "<BOLD_F>", $65 ; unused
+ charmap "<BOLD_G>", $66 ; unused
+ charmap "<BOLD_H>", $67 ; unused
+ charmap "<BOLD_I>", $68 ; unused
+ charmap "<BOLD_V>", $69
+ charmap "<BOLD_S>", $6a
+ charmap "<BOLD_L>", $6b ; unused
+ charmap "<BOLD_M>", $6c ; unused
+ charmap "<COLON>", $6d ; colon with tinier dots than ":"
+ charmap "ぃ", $6e ; hiragana small i, unused
+ charmap "ぅ", $6f ; hiragana small u, unused
+ charmap "<PO>", $70
+ charmap "<KE>", $71
+ charmap "<``>", $72 ; opening quote
+ charmap "<''>", $73 ; closing quote
+ charmap "·", $74 ; middle dot, unused
+ charmap "…", $75 ; ellipsis
+ charmap "ぁ", $76 ; hiragana small a, unused
+ charmap "ぇ", $77 ; hiragana small e, unused
+ charmap "ぉ", $78 ; hiragana small o, unused
- charmap "┌", $79
- charmap "─", $7a
- charmap "┐", $7b
- charmap "│", $7c
- charmap "└", $7d
- charmap "┘", $7e
- charmap " ", $7f
+ charmap "┌", $79
+ charmap "─", $7a
+ charmap "┐", $7b
+ charmap "│", $7c
+ charmap "└", $7d
+ charmap "┘", $7e
+ charmap " ", $7f
-; Actual characters (from gfx/misc/font_battle_extra.png)
+; Actual characters (from gfx/font/font_battle_extra.png)
- charmap "<LV>", $6e
+ charmap "<LV>", $6e
- charmap "<ど>", $70 ; hiragana small do, unused
- charmap "◀", $71
- charmap "『", $72 ; Japanese opening quote, unused
- charmap "<ID>", $73
- charmap "№", $74
+ charmap "<ど>", $70 ; hiragana small do, unused
+ charmap "◀", $71
+ charmap "『", $72 ; Japanese opening quote, unused
+ charmap "<ID>", $73
+ charmap "№", $74
; Actual characters (from other graphics files)
- charmap "|", $31 ; from gfx/stats/stats_tiles
+ charmap "|", $31 ; from gfx/stats/stats_tiles
- charmap "<SHINY>", $3f ; gfx/stats/shiny
+ charmap "<SHINY>", $3f ; gfx/stats/shiny
- charmap "<BLACK>", $60 ; from gfx/mobile/phone_tiles.2bpp
- charmap "▲", $61 ; gfx/font/up_arrow.png
- charmap "<PHONE>", $62 ; gfx/mobile/overworld_phone_icon.2bpp
- charmap "_", $62 ; from gfx/battle/hp_exp_bar_border.1bpp
+ charmap "<BLACK>", $60 ; from gfx/mobile/phone_tiles.2bpp
+ charmap "▲", $61 ; gfx/font/up_arrow.png
+ charmap "<PHONE>", $62 ; gfx/font/overworld_phone_icon.2bpp
+ charmap "_", $62 ; from gfx/battle/hp_exp_bar_border.1bpp
- charmap "′", $6e ; gfx/font/feet_inches.png
- charmap "″", $6f ; gfx/font/feet_inches.png
+ charmap "′", $6e ; gfx/font/feet_inches.png
+ charmap "″", $6f ; gfx/font/feet_inches.png
-; Actual characters (from gfx/misc/font.png)
+; Actual characters (from gfx/font/font.png)
- charmap "A", $80
- charmap "B", $81
- charmap "C", $82
- charmap "D", $83
- charmap "E", $84
- charmap "F", $85
- charmap "G", $86
- charmap "H", $87
- charmap "I", $88
- charmap "J", $89
- charmap "K", $8a
- charmap "L", $8b
- charmap "M", $8c
- charmap "N", $8d
- charmap "O", $8e
- charmap "P", $8f
- charmap "Q", $90
- charmap "R", $91
- charmap "S", $92
- charmap "T", $93
- charmap "U", $94
- charmap "V", $95
- charmap "W", $96
- charmap "X", $97
- charmap "Y", $98
- charmap "Z", $99
+ charmap "A", $80
+ charmap "B", $81
+ charmap "C", $82
+ charmap "D", $83
+ charmap "E", $84
+ charmap "F", $85
+ charmap "G", $86
+ charmap "H", $87
+ charmap "I", $88
+ charmap "J", $89
+ charmap "K", $8a
+ charmap "L", $8b
+ charmap "M", $8c
+ charmap "N", $8d
+ charmap "O", $8e
+ charmap "P", $8f
+ charmap "Q", $90
+ charmap "R", $91
+ charmap "S", $92
+ charmap "T", $93
+ charmap "U", $94
+ charmap "V", $95
+ charmap "W", $96
+ charmap "X", $97
+ charmap "Y", $98
+ charmap "Z", $99
- charmap "(", $9a
- charmap ")", $9b
- charmap ":", $9c
- charmap ";", $9d
- charmap "[", $9e
- charmap "]", $9f
+ charmap "(", $9a
+ charmap ")", $9b
+ charmap ":", $9c
+ charmap ";", $9d
+ charmap "[", $9e
+ charmap "]", $9f
- charmap "a", $a0
- charmap "b", $a1
- charmap "c", $a2
- charmap "d", $a3
- charmap "e", $a4
- charmap "f", $a5
- charmap "g", $a6
- charmap "h", $a7
- charmap "i", $a8
- charmap "j", $a9
- charmap "k", $aa
- charmap "l", $ab
- charmap "m", $ac
- charmap "n", $ad
- charmap "o", $ae
- charmap "p", $af
- charmap "q", $b0
- charmap "r", $b1
- charmap "s", $b2
- charmap "t", $b3
- charmap "u", $b4
- charmap "v", $b5
- charmap "w", $b6
- charmap "x", $b7
- charmap "y", $b8
- charmap "z", $b9
+ charmap "a", $a0
+ charmap "b", $a1
+ charmap "c", $a2
+ charmap "d", $a3
+ charmap "e", $a4
+ charmap "f", $a5
+ charmap "g", $a6
+ charmap "h", $a7
+ charmap "i", $a8
+ charmap "j", $a9
+ charmap "k", $aa
+ charmap "l", $ab
+ charmap "m", $ac
+ charmap "n", $ad
+ charmap "o", $ae
+ charmap "p", $af
+ charmap "q", $b0
+ charmap "r", $b1
+ charmap "s", $b2
+ charmap "t", $b3
+ charmap "u", $b4
+ charmap "v", $b5
+ charmap "w", $b6
+ charmap "x", $b7
+ charmap "y", $b8
+ charmap "z", $b9
- charmap "Ä", $c0
- charmap "Ö", $c1
- charmap "Ü", $c2
- charmap "ä", $c3
- charmap "ö", $c4
- charmap "ü", $c5
+ charmap "Ä", $c0
+ charmap "Ö", $c1
+ charmap "Ü", $c2
+ charmap "ä", $c3
+ charmap "ö", $c4
+ charmap "ü", $c5
- charmap "'d", $d0
- charmap "'l", $d1
- charmap "'m", $d2
- charmap "'r", $d3
- charmap "'s", $d4
- charmap "'t", $d5
- charmap "'v", $d6
+ charmap "'d", $d0
+ charmap "'l", $d1
+ charmap "'m", $d2
+ charmap "'r", $d3
+ charmap "'s", $d4
+ charmap "'t", $d5
+ charmap "'v", $d6
- charmap "←", $df
- charmap "'", $e0
- charmap "<PK>", $e1
- charmap "<MN>", $e2
- charmap "-", $e3
+ charmap "←", $df
+ charmap "'", $e0
+ charmap "<PK>", $e1
+ charmap "<MN>", $e2
+ charmap "-", $e3
- charmap "?", $e6
- charmap "!", $e7
- charmap ".", $e8
- charmap "&", $e9
+ charmap "?", $e6
+ charmap "!", $e7
+ charmap ".", $e8
+ charmap "&", $e9
- charmap "é", $ea
- charmap "→", $eb
- charmap "▷", $ec
- charmap "▶", $ed
- charmap "▼", $ee
- charmap "♂", $ef
- charmap "¥", $f0
- charmap "×", $f1
- charmap "<DOT>", $f2 ; same as "." in English
- charmap "/", $f3
- charmap ",", $f4
- charmap "♀", $f5
+ charmap "é", $ea
+ charmap "→", $eb
+ charmap "▷", $ec
+ charmap "▶", $ed
+ charmap "▼", $ee
+ charmap "♂", $ef
+ charmap "¥", $f0
+ charmap "×", $f1
+ charmap "<DOT>", $f2 ; same as "." in English
+ charmap "/", $f3
+ charmap ",", $f4
+ charmap "♀", $f5
- charmap "0", $f6
- charmap "1", $f7
- charmap "2", $f8
- charmap "3", $f9
- charmap "4", $fa
- charmap "5", $fb
- charmap "6", $fc
- charmap "7", $fd
- charmap "8", $fe
- charmap "9", $ff
+ charmap "0", $f6
+ charmap "1", $f7
+ charmap "2", $f8
+ charmap "3", $f9
+ charmap "4", $fa
+ charmap "5", $fb
+ charmap "6", $fc
+ charmap "7", $fd
+ charmap "8", $fe
+ charmap "9", $ff
; Japanese kana, for those bits of text that were not translated to English
--- /dev/null
+++ b/macros/code.asm
@@ -1,0 +1,55 @@
+; Syntactic sugar macros
+
+lb: MACRO ; r, hi, lo
+ ld \1, (\2 & $ff) << 8 + (\3 & $ff)
+ ENDM
+
+ln: MACRO ; r, hi, lo
+ ld \1, (\2 & $f) << 4 + (\3 & $f)
+ ENDM
+
+ldpixel: MACRO
+if _NARG >= 5
+ lb \1, \2 * 8 + \4, \3 * 8 + \5
+else
+ lb \1, \2 * 8, \3 * 8
+endc
+endm
+
+depixel EQUS "ldpixel de,"
+bcpixel EQUS "ldpixel bc,"
+
+
+; Design patterns
+
+jumptable: MACRO
+ ld a, [\2]
+ ld e, a
+ ld d, 0
+ ld hl, \1
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+endm
+
+; Many mobile functions were dummied out in localization.
+mobile EQUS "ret"
+
+maskbits: macro
+; example usage in rejection sampling:
+; .loop
+; call Random
+; maskbits 30
+; cp 30
+; jr nc, .loop
+x = 1
+rept 8
+IF \1 > x
+x = (x + 1) * 2 +- 1
+ENDC
+endr
+ and x
+endm
--- /dev/null
+++ b/macros/color.asm
@@ -1,0 +1,15 @@
+RGB: MACRO
+rept _NARG / 3
+ dw ((\3) << 10) + ((\2) << 5) + (\1)
+ shift
+ shift
+ shift
+endr
+ENDM
+
+palettes EQUS "* 8"
+palette EQUS "+ 8 *"
+
+palred EQUS "$0001 *"
+palgreen EQUS "$0020 *"
+palblue EQUS "$0400 *"
--- /dev/null
+++ b/macros/coords.asm
@@ -1,0 +1,51 @@
+bccoord equs "coord bc,"
+decoord equs "coord de,"
+hlcoord equs "coord hl,"
+
+coord: MACRO
+; register, x, y[, origin]
+ if _NARG < 4
+ ld \1, TileMap + SCREEN_WIDTH * (\3) + (\2)
+ else
+ ld \1, \4 + SCREEN_WIDTH * (\3) + (\2)
+ endc
+ ENDM
+
+dwcoord: MACRO
+ rept _NARG / 2
+ dw TileMap + SCREEN_WIDTH * (\2) + (\1)
+ shift
+ shift
+ endr
+ ENDM
+
+ldcoord_a: MACRO
+ if _NARG < 3
+ ld [TileMap + SCREEN_WIDTH * (\2) + (\1)], a
+ else
+ ld [\3 + SCREEN_WIDTH * (\2) + (\1)], a
+ endc
+ ENDM
+
+lda_coord: MACRO
+ if _NARG < 3
+ ld a, [TileMap + SCREEN_WIDTH * (\2) + (\1)]
+ else
+ ld a, [\3 + SCREEN_WIDTH * (\2) + (\1)]
+ endc
+ ENDM
+
+
+bgrows EQUS "* $20" ; SCREEN_WIDTH
+
+hlbgcoord EQUS "bgcoord hl,"
+debgcoord EQUS "bgcoord de,"
+bcbgcoord EQUS "bgcoord bc,"
+
+bgcoord: MACRO
+IF _NARG >= 4
+ ld \1, \3 bgrows + \2 + \4
+ELSE
+ ld \1, \3 bgrows + \2 + VBGMap0
+ENDC
+ENDM
--- /dev/null
+++ b/macros/data.asm
@@ -1,0 +1,121 @@
+; Constant data (db, dw, dl) macros
+
+dwb: MACRO
+ dw \1
+ db \2
+ ENDM
+
+dbw: MACRO
+ db \1
+ dw \2
+ ENDM
+
+dbbw: MACRO
+ db \1, \2
+ dw \3
+ ENDM
+
+dbww: MACRO
+ db \1
+ dw \2, \3
+ ENDM
+
+dbwww: MACRO
+ db \1
+ dw \2, \3, \4
+ ENDM
+
+dn: MACRO ; nybbles
+ rept _NARG / 2
+ db ((\1) << 4) | (\2)
+ shift
+ shift
+ endr
+ ENDM
+
+dc: MACRO ; "crumbs"
+ rept _NARG / 4
+ db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
+ shift
+ shift
+ shift
+ shift
+ endr
+ ENDM
+
+dx: MACRO
+x = 8 * ((\1) - 1)
+ rept \1
+ db ((\2) >> x) & $ff
+x = x + -8
+ endr
+ ENDM
+
+dt: MACRO ; three-byte (big-endian)
+ dx 3, \1
+ ENDM
+
+dd: MACRO ; four-byte (big-endian)
+ dx 4, \1
+ ENDM
+
+bigdw: MACRO ; big-endian word
+ dx 2, \1
+ ENDM
+
+dba: MACRO ; dbw bank, address
+ rept _NARG
+ dbw BANK(\1), \1
+ shift
+ endr
+ ENDM
+
+dab: MACRO ; dwb address, bank
+ rept _NARG
+ dwb \1, BANK(\1)
+ shift
+ endr
+ ENDM
+
+dba_pic: MACRO ; dbw bank, address
+ db BANK(\1) - PICS_FIX
+ dw \1
+ENDM
+
+
+dbpixel: MACRO
+if _NARG >= 4
+ db \1 * 8 + \3, \2 * 8 + \4
+else
+ db \1 * 8, \2 * 8
+endc
+endm
+
+dsprite: MACRO
+; conditional segment is there because not every instance of
+; this macro is directly OAM
+if _NARG >= 7 ; y tile, y pxl, x tile, x pxl, vtile offset, flags, palette
+ db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, (\6 << 3) + (\7 & 7)
+else
+ db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6
+endc
+endm
+
+
+sine_wave: MACRO
+; \1: amplitude
+x = 0
+ rept $20
+ ; Round up.
+ dw (sin(x) + (sin(x) & $ff)) >> 8
+x = x + (\1) * $40000
+ endr
+ENDM
+
+
+bcd: MACRO
+ rept _NARG
+ dn ((\1) % 100) / 10, (\1) % 10
+ shift
+ endr
+ENDM
--- a/macros/event.asm
+++ /dev/null
@@ -1,1069 +1,0 @@
-; ScriptCommandTable indexes (see engine/scripting.asm)
- enum_start
-
- enum scall_command
-scall: macro
- db scall_command
- dw \1 ; pointer
- endm
-
- enum farscall_command
-farscall: macro
- db farscall_command
- dba \1
- endm
-
- enum ptcall_command
-ptcall: macro
- db ptcall_command
- dw \1 ; pointer
- endm
-
- enum jump_command
-jump: macro
- db jump_command
- dw \1 ; pointer
- endm
-
- enum farjump_command
-farjump: macro
- db farjump_command
- dba \1
- endm
-
- enum ptjump_command
-ptjump: macro
- db ptjump_command
- dw \1 ; pointer
- endm
-
- enum if_equal_command
-if_equal: macro
- db if_equal_command
- db \1 ; byte
- dw \2 ; pointer
- endm
-
- enum if_not_equal_command
-if_not_equal: macro
- db if_not_equal_command
- db \1 ; byte
- dw \2 ; pointer
- endm
-
- enum iffalse_command
-iffalse: macro
- db iffalse_command
- dw \1 ; pointer
- endm
-
- enum iftrue_command
-iftrue: macro
- db iftrue_command
- dw \1 ; pointer
- endm
-
- enum if_greater_than_command
-if_greater_than: macro
- db if_greater_than_command
- db \1 ; byte
- dw \2 ; pointer
- endm
-
- enum if_less_than_command
-if_less_than: macro
- db if_less_than_command
- db \1 ; byte
- dw \2 ; pointer
- endm
-
- enum jumpstd_command
-jumpstd: macro
- db jumpstd_command
- dw \1 ; predefined_script
- endm
-
- enum callstd_command
-callstd: macro
- db callstd_command
- dw \1 ; predefined_script
- endm
-
- enum callasm_command
-callasm: macro
- db callasm_command
- dba \1
- endm
-
- enum special_command
-special: macro
- db special_command
- dw (\1Special - SpecialsPointers) / 3
- endm
-
-add_special: MACRO
-\1Special::
- dba \1
-ENDM
-
- enum ptcallasm_command
-ptcallasm: macro
- db ptcallasm_command
- dw \1 ; asm
- endm
-
- enum checkmaptriggers_command
-checkmaptriggers: macro
- db checkmaptriggers_command
- map \1 ; map
- endm
-
- enum domaptrigger_command
-domaptrigger: macro
- db domaptrigger_command
- map \1 ; map
- db \2 ; trigger_id
- endm
-
- enum checktriggers_command
-checktriggers: macro
- db checktriggers_command
- endm
-
- enum dotrigger_command
-dotrigger: macro
- db dotrigger_command
- db \1 ; trigger_id
- endm
-
- enum writebyte_command
-writebyte: macro
- db writebyte_command
- db \1 ; value
- endm
-
- enum addvar_command
-addvar: macro
- db addvar_command
- db \1 ; value
- endm
-
- enum random_command
-random: macro
- db random_command
- db \1 ; input
- endm
-
- enum checkver_command
-checkver: macro
- db checkver_command
- endm
-
- enum copybytetovar_command
-copybytetovar: macro
- db copybytetovar_command
- dw \1 ; address
- endm
-
- enum copyvartobyte_command
-copyvartobyte: macro
- db copyvartobyte_command
- dw \1 ; address
- endm
-
- enum loadvar_command
-loadvar: macro
- db loadvar_command
- dw \1 ; address
- db \2 ; value
- endm
-
- enum checkcode_command
-checkcode: macro
- db checkcode_command
- db \1 ; variable_id
- endm
-
- enum writevarcode_command
-writevarcode: macro
- db writevarcode_command
- db \1 ; variable_id
- endm
-
- enum writecode_command
-writecode: macro
- db writecode_command
- db \1 ; variable_id
- db \2 ; value
- endm
-
- enum giveitem_command
-giveitem: macro
- db giveitem_command
- db \1 ; item
-if _NARG == 2
- db \2 ; quantity
-else
- db 1
-endc
- endm
-
- enum takeitem_command
-takeitem: macro
- db takeitem_command
- db \1 ; item
-if _NARG == 2
- db \2 ; quantity
-else
- db 1
-endc
- endm
-
- enum checkitem_command
-checkitem: macro
- db checkitem_command
- db \1 ; item
- endm
-
- enum givemoney_command
-givemoney: macro
- db givemoney_command
- db \1 ; account
- dt \2 ; money
- endm
-
- enum takemoney_command
-takemoney: macro
- db takemoney_command
- db \1 ; account
- dt \2 ; money
- endm
-
- enum checkmoney_command
-checkmoney: macro
- db checkmoney_command
- db \1 ; account
- dt \2 ; money
- endm
-
- enum givecoins_command
-givecoins: macro
- db givecoins_command
- dw \1 ; coins
- endm
-
- enum takecoins_command
-takecoins: macro
- db takecoins_command
- dw \1 ; coins
- endm
-
- enum checkcoins_command
-checkcoins: macro
- db checkcoins_command
- dw \1 ; coins
- endm
-
- enum addcellnum_command
-addcellnum: macro
- db addcellnum_command
- db \1 ; person
- endm
-
- enum delcellnum_command
-delcellnum: macro
- db delcellnum_command
- db \1 ; person
- endm
-
- enum checkcellnum_command
-checkcellnum: macro
- db checkcellnum_command
- db \1 ; person
- endm
-
- enum checktime_command
-checktime: macro
- db checktime_command
- db \1 ; time
- endm
-
-checkmorn EQUS "checktime MORN"
-checkday EQUS "checktime DAY"
-checknite EQUS "checktime NITE"
-
- enum checkpoke_command
-checkpoke: macro
- db checkpoke_command
- db \1 ; pkmn
- endm
-
- enum givepoke_command
-givepoke: macro
- db givepoke_command
- db \1 ; pokemon
- db \2 ; level
- if _NARG >= 3
- db \3 ; item
- if _NARG >= 4
- db \4 ; trainer
- if \4
- dw \5 ; trainer_name_pointer
- dw \6 ; pkmn_nickname
- endc
- else
- db 0
- endc
- else
- db 0, 0
- endc
- endm
-
- enum giveegg_command
-giveegg: macro
- db giveegg_command
- db \1 ; pkmn
- db \2 ; level
- endm
-
- enum givepokeitem_command
-givepokeitem: macro
- db givepokeitem_command
- dw \1 ; pointer
- endm
-
- enum checkpokeitem_command
-checkpokeitem: macro
- db checkpokeitem_command
- dw \1 ; pointer
- endm
-
- enum checkevent_command
-checkevent: macro
- db checkevent_command
- dw \1 ; event_flag
- endm
-
- enum clearevent_command
-clearevent: macro
- db clearevent_command
- dw \1 ; event_flag
- endm
-
- enum setevent_command
-setevent: macro
- db setevent_command
- dw \1 ; event_flag
- endm
-
- enum checkflag_command
-checkflag: macro
- db checkflag_command
- dw \1 ; engine_flag
- endm
-
- enum clearflag_command
-clearflag: macro
- db clearflag_command
- dw \1 ; engine_flag
- endm
-
- enum setflag_command
-setflag: macro
- db setflag_command
- dw \1 ; engine_flag
- endm
-
- enum wildon_command
-wildon: macro
- db wildon_command
- endm
-
- enum wildoff_command
-wildoff: macro
- db wildoff_command
- endm
-
- enum xycompare_command
-xycompare: macro
- db xycompare_command
- dw \1 ; pointer
- endm
-
- enum warpmod_command
-warpmod: macro
- db warpmod_command
- db \1 ; warp_id
- map \2 ; map
- endm
-
- enum blackoutmod_command
-blackoutmod: macro
- db blackoutmod_command
- map \1 ; map
- endm
-
- enum warp_command
-warp: macro
- db warp_command
- map \1 ; map
- db \2 ; x
- db \3 ; y
- endm
-
- enum readmoney_command
-readmoney: macro
- db readmoney_command
- db \1 ; account
- db \2 ; memory
- endm
-
- enum readcoins_command
-readcoins: macro
- db readcoins_command
- db \1 ; memory
- endm
-
- enum RAM2MEM_command
-RAM2MEM: macro
- db RAM2MEM_command
- db \1 ; memory
- endm
-
- enum pokenamemem_command
-pokenamemem: macro
- db pokenamemem_command
- db \1 ; pokemon
- db \2 ; memory
- endm
-
- enum itemtotext_command
-itemtotext: macro
- db itemtotext_command
- db \1 ; item
- db \2 ; memory
- endm
-
- enum mapnametotext_command
-mapnametotext: macro
- db mapnametotext_command
- db \1 ; memory
- endm
-
- enum trainertotext_command
-trainertotext: macro
- db trainertotext_command
- db \1 ; trainer_id
- db \2 ; trainer_group
- db \3 ; memory
- endm
-
- enum stringtotext_command
-stringtotext: macro
- db stringtotext_command
- dw \1 ; text_pointer
- db \2 ; memory
- endm
-
- enum itemnotify_command
-itemnotify: macro
- db itemnotify_command
- endm
-
- enum pocketisfull_command
-pocketisfull: macro
- db pocketisfull_command
- endm
-
- enum opentext_command
-opentext: macro
- db opentext_command
- endm
-
- enum refreshscreen_command
-refreshscreen: macro
- db refreshscreen_command
- db \1 ; dummy
- endm
-
- enum closetext_command
-closetext: macro
- db closetext_command
- endm
-
- enum loadbytec2cf_command
-loadbytec2cf: macro
- db loadbytec2cf_command
- db \1 ; byte
- endm
-
- enum farwritetext_command
-farwritetext: macro
- db farwritetext_command
- dba \1
- endm
-
- enum writetext_command
-writetext: macro
- db writetext_command
- dw \1 ; text_pointer
- endm
-
- enum repeattext_command
-repeattext: macro
- db repeattext_command
- db \1 ; byte
- db \2 ; byte
- endm
-
- enum yesorno_command
-yesorno: macro
- db yesorno_command
- endm
-
- enum loadmenudata_command
-loadmenudata: macro
- db loadmenudata_command
- dw \1 ; data
- endm
-
- enum closewindow_command
-closewindow: macro
- db closewindow_command
- endm
-
- enum jumptextfaceplayer_command
-jumptextfaceplayer: macro
- db jumptextfaceplayer_command
- dw \1 ; text_pointer
- endm
-
-; IF _CRYSTAL
- enum farjumptext_command
-farjumptext: macro
- db farjumptext_command
- dba \1
- endm
-; ENDC
-
- enum jumptext_command
-jumptext: macro
- db jumptext_command
- dw \1 ; text_pointer
- endm
-
- enum waitbutton_command
-waitbutton: macro
- db waitbutton_command
- endm
-
- enum buttonsound_command
-buttonsound: macro
- db buttonsound_command
- endm
-
- enum pokepic_command
-pokepic: macro
- db pokepic_command
- db \1 ; pokemon
- endm
-
- enum closepokepic_command
-closepokepic: macro
- db closepokepic_command
- endm
-
- enum _2dmenu_command
-_2dmenu: macro
- db _2dmenu_command
- endm
-
- enum verticalmenu_command
-verticalmenu: macro
- db verticalmenu_command
- endm
-
- enum loadpikachudata_command
-loadpikachudata: macro
- db loadpikachudata_command
- endm
-
- enum randomwildmon_command
-randomwildmon: macro
- db randomwildmon_command
- endm
-
- enum loadmemtrainer_command
-loadmemtrainer: macro
- db loadmemtrainer_command
- endm
-
- enum loadwildmon_command
-loadwildmon: macro
- db loadwildmon_command
- db \1 ; pokemon
- db \2 ; level
- endm
-
- enum loadtrainer_command
-loadtrainer: macro
- db loadtrainer_command
- db \1 ; trainer_group
- db \2 ; trainer_id
- endm
-
- enum startbattle_command
-startbattle: macro
- db startbattle_command
- endm
-
- enum reloadmapafterbattle_command
-reloadmapafterbattle: macro
- db reloadmapafterbattle_command
- endm
-
- enum catchtutorial_command
-catchtutorial: macro
- db catchtutorial_command
- db \1 ; byte
- endm
-
- enum trainertext_command
-trainertext: macro
- db trainertext_command
- db \1 ; which_text
- endm
-
- enum trainerflagaction_command
-trainerflagaction: macro
- db trainerflagaction_command
- db \1 ; action
- endm
-
- enum winlosstext_command
-winlosstext: macro
- db winlosstext_command
- dw \1 ; win_text_pointer
- dw \2 ; loss_text_pointer
- endm
-
- enum scripttalkafter_command
-scripttalkafter: macro
- db scripttalkafter_command
- endm
-
- enum end_if_just_battled_command
-end_if_just_battled: macro
- db end_if_just_battled_command
- endm
-
- enum check_just_battled_command
-check_just_battled: macro
- db check_just_battled_command
- endm
-
- enum setlasttalked_command
-setlasttalked: macro
- db setlasttalked_command
- db \1 ; person
- endm
-
- enum applymovement_command
-applymovement: macro
- db applymovement_command
- db \1 ; person
- dw \2 ; data
- endm
-
- enum applymovement2_command
-applymovement2: macro
- db applymovement2_command
- dw \1 ; data
- endm
-
- enum faceplayer_command
-faceplayer: macro
- db faceplayer_command
- endm
-
- enum faceperson_command
-faceperson: macro
- db faceperson_command
- db \1 ; person1
- db \2 ; person2
- endm
-
- enum variablesprite_command
-variablesprite: macro
- db variablesprite_command
- db \1 - SPRITE_VARS ; byte
- db \2 ; sprite
- endm
-
- enum disappear_command
-disappear: macro
- db disappear_command
- db \1 ; person
- endm
-
- enum appear_command
-appear: macro
- db appear_command
- db \1 ; person
- endm
-
- enum follow_command
-follow: macro
- db follow_command
- db \1 ; person2
- db \2 ; person1
- endm
-
- enum stopfollow_command
-stopfollow: macro
- db stopfollow_command
- endm
-
- enum moveperson_command
-moveperson: macro
- db moveperson_command
- db \1 ; person
- db \2 ; x
- db \3 ; y
- endm
-
- enum writepersonxy_command
-writepersonxy: macro
- db writepersonxy_command
- db \1 ; person
- endm
-
- enum loademote_command
-loademote: macro
- db loademote_command
- db \1 ; bubble
- endm
-
- enum showemote_command
-showemote: macro
- db showemote_command
- db \1 ; bubble
- db \2 ; person
- db \3 ; time
- endm
-
- enum spriteface_command
-spriteface: macro
- db spriteface_command
- db \1 ; person
- db \2 ; facing
- endm
-
- enum follownotexact_command
-follownotexact: macro
- db follownotexact_command
- db \1 ; person2
- db \2 ; person1
- endm
-
- enum earthquake_command
-earthquake: macro
- db earthquake_command
- db \1 ; param
- endm
-
- enum changemap_command
-changemap: macro
- db changemap_command
- db \1 ; map_bank
- dw \2 ; map_data_pointer
- endm
-
- enum changeblock_command
-changeblock: macro
- db changeblock_command
- db \1 ; x
- db \2 ; y
- db \3 ; block
- endm
-
- enum reloadmap_command
-reloadmap: macro
- db reloadmap_command
- endm
-
- enum reloadmappart_command
-reloadmappart: macro
- db reloadmappart_command
- endm
-
- enum writecmdqueue_command
-writecmdqueue: macro
- db writecmdqueue_command
- dw \1 ; queue_pointer
- endm
-
- enum delcmdqueue_command
-delcmdqueue: macro
- db delcmdqueue_command
- db \1 ; byte
- endm
-
- enum playmusic_command
-playmusic: macro
- db playmusic_command
- dw \1 ; music_pointer
- endm
-
- enum encountermusic_command
-encountermusic: macro
- db encountermusic_command
- endm
-
- enum musicfadeout_command
-musicfadeout: macro
- db musicfadeout_command
- dw \1 ; music
- db \2 ; fadetime
- endm
-
- enum playmapmusic_command
-playmapmusic: macro
- db playmapmusic_command
- endm
-
- enum dontrestartmapmusic_command
-dontrestartmapmusic: macro
- db dontrestartmapmusic_command
- endm
-
- enum cry_command
-cry: macro
- db cry_command
- dw \1 ; cry_id
- endm
-
- enum playsound_command
-playsound: macro
- db playsound_command
- dw \1 ; sound_pointer
- endm
-
- enum waitsfx_command
-waitsfx: macro
- db waitsfx_command
- endm
-
- enum warpsound_command
-warpsound: macro
- db warpsound_command
- endm
-
- enum specialsound_command
-specialsound: macro
- db specialsound_command
- endm
-
- enum passtoengine_command
-passtoengine: macro
- db passtoengine_command
- db \1 ; data_pointer
- endm
-
- enum newloadmap_command
-newloadmap: macro
- db newloadmap_command
- db \1 ; which_method
- endm
-
- enum pause_command
-pause: macro
- db pause_command
- db \1 ; length
- endm
-
- enum deactivatefacing_command
-deactivatefacing: macro
- db deactivatefacing_command
- db \1 ; time
- endm
-
- enum priorityjump_command
-priorityjump: macro
- db priorityjump_command
- dw \1 ; pointer
- endm
-
- enum warpcheck_command
-warpcheck: macro
- db warpcheck_command
- endm
-
- enum ptpriorityjump_command
-ptpriorityjump: macro
- db ptpriorityjump_command
- dw \1 ; pointer
- endm
-
- enum return_command
-return: macro
- db return_command
- endm
-
- enum end_command
-end: macro
- db end_command
- endm
-
- enum reloadandreturn_command
-reloadandreturn: macro
- db reloadandreturn_command
- db \1 ; which_method
- endm
-
- enum end_all_command
-end_all: macro
- db end_all_command
- endm
-
- enum pokemart_command
-pokemart: macro
- db pokemart_command
- db \1 ; dialog_id
- dw \2 ; mart_id
- endm
-
- enum elevator_command
-elevator: macro
- db elevator_command
- dw \1 ; floor_list_pointer
- endm
-
- enum trade_command
-trade: macro
- db trade_command
- db \1 ; trade_id
- endm
-
- enum askforphonenumber_command
-askforphonenumber: macro
- db askforphonenumber_command
- db \1 ; number
- endm
-
- enum phonecall_command
-phonecall: macro
- db phonecall_command
- dw \1 ; caller_name
- endm
-
- enum hangup_command
-hangup: macro
- db hangup_command
- endm
-
- enum describedecoration_command
-describedecoration: macro
- db describedecoration_command
- db \1 ; byte
- endm
-
- enum fruittree_command
-fruittree: macro
- db fruittree_command
- db \1 ; tree_id
- endm
-
- enum specialphonecall_command
-specialphonecall: macro
- db specialphonecall_command
- dw \1 ; call_id
- endm
-
- enum checkphonecall_command
-checkphonecall: macro
- db checkphonecall_command
- endm
-
- enum verbosegiveitem_command
-verbosegiveitem: macro
- db verbosegiveitem_command
- db \1 ; item
-if _NARG == 2
- db \2 ; quantity
-else
- db 1
-endc
- endm
-
- enum verbosegiveitem2_command
-verbosegiveitem2: macro
- db verbosegiveitem2_command
- db \1 ; item
- db \2 ; var
- endm
-
- enum swarm_command
-swarm: macro
- db swarm_command
- db \1 ; flag
- map \2 ; map
- endm
-
- enum halloffame_command
-halloffame: macro
- db halloffame_command
- endm
-
- enum credits_command
-credits: macro
- db credits_command
- endm
-
- enum warpfacing_command
-warpfacing: macro
- db warpfacing_command
- db \1 ; facing
- map \2 ; map
- db \3 ; x
- db \4 ; y
- endm
-
- enum battletowertext_command
-battletowertext: macro
- db battletowertext_command
- db \1 ; memory
- endm
-
- enum landmarktotext_command
-landmarktotext: macro
- db landmarktotext_command
- db \1 ; id
- db \2 ; memory
- endm
-
- enum trainerclassname_command
-trainerclassname: macro
- db trainerclassname_command
- db \1 ; id
- db \2 ; memory
- endm
-
- enum name_command
-name: macro
- db name_command
- db \1 ; type
- db \2 ; id
- db \3 ; memory
- endm
-
- enum wait_command
-wait: macro
- db wait_command
- db \1 ; duration
- endm
-
- enum check_save_command
-check_save: macro
- db check_save_command
- endm
--- a/macros/map.asm
+++ /dev/null
@@ -1,211 +1,0 @@
-map: macro
-;\1: map id
- db GROUP_\1, MAP_\1
-endm
-
-maptrigger: macro
-;\1: script pointer
- dw \1, 0
-endm
-
-warp_def: macro
-;\1: y: top to bottom, starts at 0
-;\2: x: left to right, starts at 0
-;\3: warp destination: starts at 1
-;\4: map id: from constants/map_constants.asm
- db \1, \2, \3
- map \4
-endm
-
-xy_trigger: macro
-;\1: number: controlled by dotrigger/domaptrigger
-;\2: y: top to bottom, starts at 0
-;\3: x: left to right, starts at 0
-;\4: script pointer
- db \1, \2, \3, $0
- dw \4
- db $0, $0
-endm
-
-signpost: macro
-;\1: y: top to bottom, starts at 0
-;\2: x: left to right, starts at 0
-;\3: function: a SIGNPOST_* constant
-;\4: script pointer
- db \1, \2, \3
- dw \4
-endm
-
-person_event: macro
-;\1: sprite: a SPRITE_* constant
-;\2: y: top to bottom, starts at 0
-;\3: x: left to right, starts at 0
-;\4: movement function: a SPRITEMOVEDATA_* constant
-;\5, \6: movement radius: y, x
-;\7: clock hour: ???
-;\8: clock daytime: sum of MORN, DAY, and/or NITE, or 0 for always
-;\9: color: a PAL_NPC_* constant, or 0 for sprite default
-;\10: function: a PERSONTYPE_* constant
-;\11: sight range: applies to PERSONTYPE_TRAINER
-;\12: script pointer
-;\13: event flag: an EVENT_* constant, or 0 for always
- db \1, \2 + 4, \3 + 4, \4
- dn \5, \6
- db \7, \8
- shift
- dn \8, \9
- shift
- db \9
- shift
- dw \9
- shift
- dw \9
-endm
-
-
-newgroup: macro
-const_value = const_value + 1
- enum_start 1
-endm
-
-mapgroup: macro
-;\1: map id
-;\2: height: in blocks
-;\3: width: in blocks
-GROUP_\1 EQU const_value
- enum MAP_\1
-\1_HEIGHT EQU \2
-\1_WIDTH EQU \3
-endm
-
-
-map_header: macro
-;\1: map label
-;\2: tileset: a TILESET_* constant
-;\3: permission: TOWN, ROUTE, INDOOR, CAVE, PERM_5, GATE, or DUNGEON
-;\4: location: from constants/landmark_constants.asm
-;\5: music: a MUSIC_* constant
-;\6: phone service flag: 1 to prevent phone calls
-;\7: time of day: a PALETTE_* constant
-;\8: fishing group: a FISHGROUP_* constant
-\1_MapHeader:
- db BANK(\1_SecondMapHeader), \2, \3
- dw \1_SecondMapHeader
- db \4, \5
- dn \6, \7
- db \8
-endm
-
-
-map_header_2: macro
-;\1: map label
-;\2: map id
-;\3: border block
-;\4: connections: sum of NORTH, SOUTH, WEST, and/or EAST, or 0 for none
-\1_SecondMapHeader::
- db \3
- db \2_HEIGHT, \2_WIDTH
- db BANK(\1_BlockData)
- dw \1_BlockData
- db BANK(\1_MapScriptHeader)
- dw \1_MapScriptHeader
- dw \1_MapEventHeader
- db \4
-endm
-
-connection: macro
-if "\1" == "north"
-;\2: map id
-;\3: map label (eventually will be rolled into map id)
-;\4: x
-;\5: offset?
-;\6: strip length
-;\7: this map id
- map \2
- dw \3_BlockData + \2_WIDTH * (\2_HEIGHT - 3) + \5
- dw OverworldMap + \4 + 3
- db \6
- db \2_WIDTH
- db \2_HEIGHT * 2 - 1
- db (\4 - \5) * -2
- dw OverworldMap + \2_HEIGHT * (\2_WIDTH + 6) + 1
-endc
-
-if "\1" == "south"
-;\2: map id
-;\3: map label (eventually will be rolled into map id)
-;\4: x
-;\5: offset?
-;\6: strip length
-;\7: this map id
- map \2
- dw \3_BlockData + \5
- dw OverworldMap + (\7_HEIGHT + 3) * (\7_WIDTH + 6) + \4 + 3
- db \6
- db \2_WIDTH
- db 0
- db (\4 - \5) * -2
- dw OverworldMap + \2_WIDTH + 7
-endc
-
-if "\1" == "west"
-;\2: map id
-;\3: map label (eventually will be rolled into map id)
-;\4: y
-;\5: offset?
-;\6: strip length
-;\7: this map id
- map \2
- dw \3_BlockData + (\2_WIDTH * \5) + \2_WIDTH - 3
- dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3)
- db \6
- db \2_WIDTH
- db (\4 - \5) * -2
- db \2_WIDTH * 2 - 1
- dw OverworldMap + \2_WIDTH * 2 + 6
-endc
-
-if "\1" == "east"
-;\2: map id
-;\3: map label (eventually will be rolled into map id)
-;\4: y
-;\5: offset?
-;\6: strip length
-;\7: this map id
- map \2
- dw \3_BlockData + (\2_WIDTH * \5)
- dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3 + 1) - 3
- db \6
- db \2_WIDTH
- db (\4 - \5) * -2
- db 0
- dw OverworldMap + \2_WIDTH + 7
-endc
-endm
-
-
-itemball: macro
-;\1: item: from constants/item_constants.asm
-;\2: quantity: default 1
-if _NARG == 2
- db \1, \2
-else
- db \1, 1
-endc
-endm
-
-elevfloor: macro
-;\1: floor: a FLOOR_* constant
-;\2: warp destination: starts at 1
-;\3: map id
- db \1, \2
- map \3
-ENDM
-
-stonetable: macro
-;\1: warp id
-;\2: person_event id
-;\3: script pointer
- db \1, \2
- dw \3
-endm
--- a/macros/mobile.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-; Many mobile functions were dummied out in localization.
-mobile EQUS "ret"
--- a/macros/move_anim.asm
+++ /dev/null
@@ -1,294 +1,0 @@
-anim_wait: macro
-if \1 >= $d0
- flip out
-endc
- db \1
- endm
-
-; BattleAnimCommands indexes (see battle/anim_commands.asm)
- enum_start $d0
-
- enum anim_obj_command ; d0
-anim_obj: macro
- db anim_obj_command
- db \1 ; obj
- db (\2 << 3) + \3 ; x
- db (\4 << 3) + \5 ; y
- db \6 ; param
- endm
-
- enum anim_1gfx_command ; d1
-anim_1gfx: macro
- db anim_1gfx_command
- db \1 ; gfx1
- endm
-
- enum anim_2gfx_command ; d2
-anim_2gfx: macro
- db anim_2gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- endm
-
- enum anim_3gfx_command ; d3
-anim_3gfx: macro
- db anim_3gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- endm
-
- enum anim_4gfx_command ; d4
-anim_4gfx: macro
- db anim_4gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- db \4 ; gfx4
- endm
-
- enum anim_5gfx_command ; d5
-anim_5gfx: macro
- db anim_5gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- db \4 ; gfx4
- db \5 ; gfx5
- endm
-
- enum anim_incobj_command ; d6
-anim_incobj: macro
- db anim_incobj_command
- db \1 ; id
- endm
-
- enum anim_setobj_command ; d7
-anim_setobj: macro
- db anim_setobj_command
- db \1 ; id
- db \2 ; obj
- endm
-
- enum anim_incbgeffect_command ; d8
-anim_incbgeffect: macro
- db anim_incbgeffect_command
- db \1 ; effect
- endm
-
- enum anim_enemyfeetobj_command ; d9
-anim_enemyfeetobj: macro
- db anim_enemyfeetobj_command
- endm
-
- enum anim_playerheadobj_command ; da
-anim_playerheadobj: macro
- db anim_playerheadobj_command
- endm
-
- enum anim_checkpokeball_command ; db
-anim_checkpokeball: macro
- db anim_checkpokeball_command
- endm
-
- enum anim_transform_command ; dc
-anim_transform: macro
- db anim_transform_command
- endm
-
- enum anim_raisesub_command ; dd
-anim_raisesub: macro
- db anim_raisesub_command
- endm
-
- enum anim_dropsub_command ; de
-anim_dropsub: macro
- db anim_dropsub_command
- endm
-
- enum anim_resetobp0_command ; df
-anim_resetobp0: macro
- db anim_resetobp0_command
- endm
-
- enum anim_sound_command ; e0
-anim_sound: macro
- db anim_sound_command
- db (\1 << 2) | \2 ; duration, tracks
- db \3 ; id
- endm
-
- enum anim_cry_command ; e1
-anim_cry: macro
- db anim_cry_command
- db \1 ; pitch
- endm
-
- enum anim_minimizeopp_command ; e2
-anim_minimizeopp: macro
- db anim_minimizeopp_command
- endm
-
- enum anim_oamon_command ; e3
-anim_oamon: macro
- db anim_oamon_command
- endm
-
- enum anim_oamoff_command ; e4
-anim_oamoff: macro
- db anim_oamoff_command
- endm
-
- enum anim_clearobjs_command ; e5
-anim_clearobjs: macro
- db anim_clearobjs_command
- endm
-
- enum anim_beatup_command ; e6
-anim_beatup: macro
- db anim_beatup_command
- endm
-
- enum anim_0xe7_command ; e7
-anim_0xe7: macro
- db anim_0xe7_command
- endm
-
- enum anim_updateactorpic_command ; e8
-anim_updateactorpic: macro
- db anim_updateactorpic_command
- endm
-
- enum anim_minimize_command ; e9
-anim_minimize: macro
- db anim_minimize_command
- endm
-
- enum anim_0xea_command ; ea
-anim_0xea: macro
- db anim_0xea_command
- endm
-
- enum anim_0xeb_command ; eb
-anim_0xeb: macro
- db anim_0xeb_command
- endm
-
- enum anim_0xec_command ; ec
-anim_0xec: macro
- db anim_0xec_command
- endm
-
- enum anim_0xed_command ; ed
-anim_0xed: macro
- db anim_0xed_command
- endm
-
- enum anim_if_param_and_command ; ee
-anim_if_param_and: macro
- db anim_if_param_and_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_jumpuntil_command ; ef
-anim_jumpuntil: macro
- db anim_jumpuntil_command
- dw \1 ; address
- endm
-
- enum anim_bgeffect_command ; f0
-anim_bgeffect: macro
- db anim_bgeffect_command
- db \1 ; effect
- db \2 ; unknown
- db \3 ; unknown
- db \4 ; unknown
- endm
-
- enum anim_bgp_command ; f1
-anim_bgp: macro
- db anim_bgp_command
- db \1 ; colors
- endm
-
- enum anim_obp0_command ; f2
-anim_obp0: macro
- db anim_obp0_command
- db \1 ; colors
- endm
-
- enum anim_obp1_command ; f3
-anim_obp1: macro
- db anim_obp1_command
- db \1 ; colors
- endm
-
- enum anim_clearsprites_command ; f4
-anim_clearsprites: macro
- db anim_clearsprites_command
- endm
-
- enum anim_0xf5_command ; f5
-anim_0xf5: macro
- db anim_0xf5_command
- endm
-
- enum anim_0xf6_command ; f6
-anim_0xf6: macro
- db anim_0xf6_command
- endm
-
- enum anim_0xf7_command ; f7
-anim_0xf7: macro
- db anim_0xf7_command
- endm
-
- enum anim_if_param_equal_command ; f8
-anim_if_param_equal: macro
- db anim_if_param_equal_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_setvar_command ; f9
-anim_setvar: macro
- db anim_setvar_command
- db \1 ; value
- endm
-
- enum anim_incvar_command ; fa
-anim_incvar: macro
- db anim_incvar_command
- endm
-
- enum anim_if_var_equal_command ; fb
-anim_if_var_equal: macro
- db anim_if_var_equal_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_jump_command ; fc
-anim_jump: macro
- db anim_jump_command
- dw \1 ; address
- endm
-
- enum anim_loop_command ; fd
-anim_loop: macro
- db anim_loop_command
- db \1 ; count
- dw \2 ; address
- endm
-
- enum anim_call_command ; fe
-anim_call: macro
- db anim_call_command
- dw \1 ; address
- endm
-
- enum anim_ret_command ; ff
-anim_ret: macro
- db anim_ret_command
- endm
--- a/macros/movement.asm
+++ /dev/null
@@ -1,247 +1,0 @@
-; MovementPointers indexes (see engine/movement.asm)
- enum_start
-
-; Directional movements
-
- enum movement_turn_head
-turn_head: macro
- db movement_turn_head | \1 ; $00
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_turn_step
-turn_step: macro
- db movement_turn_step | \1 ; $04
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_slow_step
-slow_step: macro
- db movement_slow_step | \1; $08
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_step
-step: macro
- db movement_step | \1 ; $0c
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_big_step
-big_step: macro
- db movement_big_step | \1 ; $10
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_slow_slide_step
-slow_slide_step: macro
- db movement_slow_slide_step | \1 ; $14
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_slide_step
-slide_step: macro
- db movement_slide_step | \1 ; $18
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_fast_slide_step
-fast_slide_step: macro
- db movement_fast_slide_step | \1 ; $1c
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_turn_away
-turn_away: macro
- db movement_turn_away | \1 ; $20
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_turn_in
-turn_in: macro
- db movement_turn_in | \1 ; $24
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_turn_waterfall
-turn_waterfall: macro
- db movement_turn_waterfall | \1 ; $28
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_slow_jump_step
-slow_jump_step: macro
- db movement_slow_jump_step | \1 ; $2c
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_jump_step
-jump_step: macro
- db movement_jump_step | \1 ; $30
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_fast_jump_step
-fast_jump_step: macro
- db movement_fast_jump_step | \1 ; $34
- endm
-
-__enum__ = __enum__ + 3
-
-; Control
- enum movement_remove_sliding
-remove_sliding: macro
- db movement_remove_sliding ; $38
- endm
-
- enum movement_set_sliding
-set_sliding: macro
- db movement_set_sliding ; $39
- endm
-
- enum movement_remove_fixed_facing
-remove_fixed_facing: macro
- db movement_remove_fixed_facing ; $3a
- endm
-
- enum movement_fix_facing
-fix_facing: macro
- db movement_fix_facing ; $3b
- endm
-
- enum movement_show_person
-show_person: macro
- db movement_show_person ; $3c
- endm
-
- enum movement_hide_person
-hide_person: macro
- db movement_hide_person ; $3d
- endm
-
-; Sleep
-
- enum movement_step_sleep
-step_sleep: macro
-if \1 <= 8
- db movement_step_sleep + \1 - 1
-else
- db movement_step_sleep + 8, \1
-endc
-endm
-
-__enum__ = __enum__ + 8
-
- enum movement_step_end
-step_end: macro
- db movement_step_end ; $47
- endm
-
-; Whatever Movement_48 is, it takes a one-byte parameter
- enum movement_step_48
-step_48: macro
- db movement_step_48
- db \1
- endm
-
- enum movement_remove_person
-remove_person: macro
- db movement_remove_person ; $49
- endm
-
- enum movement_step_loop
-step_loop: macro
- db movement_step_loop ; $4a
- endm
-
- enum movement_step_4b
-step_4b: macro
- db movement_step_4b ; $4b
- endm
-
- enum movement_teleport_from
-teleport_from: macro
- db movement_teleport_from ; $4c
- endm
-
- enum movement_teleport_to
-teleport_to: macro
- db movement_teleport_to ; $4d
- endm
-
- enum movement_skyfall
-skyfall: macro
- db movement_skyfall ; $4e
- endm
-
- enum movement_step_dig
-step_dig: macro
- db movement_step_dig ; $4f
- db \1
- endm
-
- enum movement_step_bump
-step_bump: macro
- db movement_step_bump ; $50
- endm
-
- enum movement_fish_got_bite
-fish_got_bite: macro
- db movement_fish_got_bite ; $51
- endm
-
- enum movement_fish_cast_rod
-fish_cast_rod: macro
- db movement_fish_cast_rod ; $52
- endm
-
- enum movement_hide_emote
-hide_emote: macro
- db movement_hide_emote ; $53
- endm
-
- enum movement_show_emote
-show_emote: macro
- db movement_show_emote ; $54
- endm
-
- enum movement_step_shake
-step_shake: macro
- db movement_step_shake ; $55
- db \1 ; displacement
- endm
-
- enum movement_tree_shake
-tree_shake: macro
- db movement_tree_shake
- endm
-
- enum movement_rock_smash
-rock_smash: macro
- db movement_rock_smash ; $57
- db \1
- endm
-
- enum movement_return_dig
-return_dig: macro
- db movement_return_dig ; $58
- db \1
- endm
-
- enum movement_skyfall_top
-skyfall_top: macro
- db movement_skyfall_top ; $59
- endm
--- a/macros/pic.asm
+++ /dev/null
@@ -1,4 +1,0 @@
-add_pic: MACRO
- db BANK(\1) - PICS_FIX
- dw \1
-ENDM
--- a/macros/rst.asm
+++ b/macros/rst.asm
@@ -15,3 +15,15 @@
ld a, BANK(\1)
rst FarCall
ENDM
+
+homecall: MACRO
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(\1)
+ rst Bankswitch
+
+ call \1
+
+ pop af
+ rst Bankswitch
+ENDM
--- /dev/null
+++ b/macros/scripts/audio.asm
@@ -1,0 +1,265 @@
+note: MACRO
+ dn (\1), (\2) - 1
+ ENDM
+
+sound: macro
+ note \1, \2
+ db \3 ; intensity
+ dw \4 ; frequency
+ endm
+
+noise: macro
+ note \1, \2 ; duration
+ db \3 ; intensity
+ db \4 ; frequency
+ endm
+
+musicheader: macro
+ ; number of tracks, track idx, address
+ dbw ((\1 - 1) << 6) + (\2 - 1), \3
+ endm
+
+cry_header: macro
+ dw \1, \2, \3
+ endm
+
+; MusicCommands indexes (see audio/engine.asm)
+ enum_start $d8
+
+ enum notetype_cmd ; $d8
+octave: macro
+ db notetype_cmd - (\1)
+ endm
+
+notetype: macro
+ db notetype_cmd
+ db \1 ; note_length
+ if _NARG >= 2
+ db \2 ; intensity
+ endc
+ endm
+
+ enum pitchoffset_cmd ; $d9
+pitchoffset: macro
+ db pitchoffset_cmd
+ dn \1, \2 - 1 ; octave, key
+ endm
+
+ enum tempo_cmd ; $da
+tempo: macro
+ db tempo_cmd
+ bigdw \1 ; tempo
+ endm
+
+ enum dutycycle_cmd ; $db
+dutycycle: macro
+ db dutycycle_cmd
+ db \1 ; duty_cycle
+ endm
+
+ enum intensity_cmd ; $dc
+intensity: macro
+ db intensity_cmd
+ db \1 ; intensity
+ endm
+
+ enum soundinput_cmd ; $dd
+soundinput: macro
+ db soundinput_cmd
+ db \1 ; input
+ endm
+
+ enum sound_duty_cmd ; $de
+sound_duty: macro
+ db sound_duty_cmd
+ db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence
+ endm
+
+ enum togglesfx_cmd ; $df
+togglesfx: macro
+ db togglesfx_cmd
+ endm
+
+ enum slidepitchto_cmd ; $e0
+slidepitchto: macro
+ db slidepitchto_cmd
+ db \1 - 1 ; duration
+ dn \2, \3 ; octave, pitch
+ endm
+
+ enum vibrato_cmd ; $e1
+vibrato: macro
+ db vibrato_cmd
+ db \1 ; delay
+ db \2 ; extent
+ endm
+
+ enum unknownmusic0xe2_cmd ; $e2
+unknownmusic0xe2: macro
+ db unknownmusic0xe2_cmd
+ db \1 ; unknown
+ endm
+
+ enum togglenoise_cmd ; $e3
+togglenoise: macro
+ db togglenoise_cmd
+ db \1 ; id
+ endm
+
+ enum panning_cmd ; $e4
+panning: macro
+ db panning_cmd
+ db \1 ; tracks
+ endm
+
+ enum volume_cmd ; $e5
+volume: macro
+ db volume_cmd
+ db \1 ; volume
+ endm
+
+ enum tone_cmd ; $e6
+tone: macro
+ db tone_cmd
+ bigdw \1 ; tone
+ endm
+
+ enum unknownmusic0xe7_cmd ; $e7
+unknownmusic0xe7: macro
+ db unknownmusic0xe7_cmd
+ db \1 ; unknown
+ endm
+
+ enum unknownmusic0xe8_cmd ; $e8
+unknownmusic0xe8: macro
+ db unknownmusic0xe8_cmd
+ db \1 ; unknown
+ endm
+
+ enum tempo_relative_cmd ; $e9
+tempo_relative: macro
+ db tempo_relative_cmd
+ bigdw \1 ; value
+ endm
+
+ enum restartchannel_cmd ; $ea
+restartchannel: macro
+ db restartchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum newsong_cmd ; $eb
+newsong: macro
+ db newsong_cmd
+ bigdw \1 ; id
+ endm
+
+ enum sfxpriorityon_cmd ; $ec
+sfxpriorityon: macro
+ db sfxpriorityon_cmd
+ endm
+
+ enum sfxpriorityoff_cmd ; $ed
+sfxpriorityoff: macro
+ db sfxpriorityoff_cmd
+ endm
+
+ enum unknownmusic0xee_cmd ; $ee
+unknownmusic0xee: macro
+ db unknownmusic0xee_cmd
+ dw \1 ; address
+ endm
+
+ enum stereopanning_cmd ; $ef
+stereopanning: macro
+ db stereopanning_cmd
+ db \1 ; tracks
+ endm
+
+ enum sfxtogglenoise_cmd ; $f0
+sfxtogglenoise: macro
+ db sfxtogglenoise_cmd
+ db \1 ; id
+ endm
+
+ enum music0xf1_cmd ; $f1
+music0xf1: macro
+ db music0xf1_cmd
+ endm
+
+ enum music0xf2_cmd ; $f2
+music0xf2: macro
+ db music0xf2_cmd
+ endm
+
+ enum music0xf3_cmd ; $f3
+music0xf3: macro
+ db music0xf3_cmd
+ endm
+
+ enum music0xf4_cmd ; $f4
+music0xf4: macro
+ db music0xf4_cmd
+ endm
+
+ enum music0xf5_cmd ; $f5
+music0xf5: macro
+ db music0xf5_cmd
+ endm
+
+ enum music0xf6_cmd ; $f6
+music0xf6: macro
+ db music0xf6_cmd
+ endm
+
+ enum music0xf7_cmd ; $f7
+music0xf7: macro
+ db music0xf7_cmd
+ endm
+
+ enum music0xf8_cmd ; $f8
+music0xf8: macro
+ db music0xf8_cmd
+ endm
+
+ enum unknownmusic0xf9_cmd ; $f9
+unknownmusic0xf9: macro
+ db unknownmusic0xf9_cmd
+ endm
+
+ enum setcondition_cmd ; $fa
+setcondition: macro
+ db setcondition_cmd
+ db \1 ; condition
+ endm
+
+ enum jumpif_cmd ; $fb
+jumpif: macro
+ db jumpif_cmd
+ db \1 ; condition
+ dw \2 ; address
+ endm
+
+ enum jumpchannel_cmd ; $fc
+jumpchannel: macro
+ db jumpchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum loopchannel_cmd ; $fd
+loopchannel: macro
+ db loopchannel_cmd
+ db \1 ; count
+ dw \2 ; address
+ endm
+
+ enum callchannel_cmd ; $fe
+callchannel: macro
+ db callchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum endchannel_cmd ; $ff
+endchannel: macro
+ db endchannel_cmd
+ endm
--- /dev/null
+++ b/macros/scripts/effect_commands.asm
@@ -1,0 +1,187 @@
+command: macro
+ enum \1_command
+\1 equs "db \1_command"
+endm
+
+; BattleCommandPointers indexes (see battle/effect_commands.asm)
+ enum_start 1
+ command checkturn ; 01
+ command checkobedience ; 02
+ command usedmovetext ; 03
+ command doturn ; 04
+ command critical ; 05
+ command damagestats ; 06
+ command stab ; 07
+ command damagevariation ; 08
+ command checkhit ; 09
+ command lowersub ; 0a
+ command hittargetnosub ; 0b
+ command raisesub ; 0c
+ command failuretext ; 0d
+ command checkfaint ; 0e
+ command criticaltext ; 0f
+ command supereffectivetext ; 10
+ command checkdestinybond ; 11
+ command buildopponentrage ; 12
+ command poisontarget ; 13
+ command sleeptarget ; 14
+ command draintarget ; 15
+ command eatdream ; 16
+ command burntarget ; 17
+ command freezetarget ; 18
+ command paralyzetarget ; 19
+ command selfdestruct ; 1a
+ command mirrormove ; 1b
+ command statup ; 1c
+ command statdown ; 1d
+ command payday ; 1e
+ command conversion ; 1f
+ command resetstats ; 20
+ command storeenergy ; 21
+ command unleashenergy ; 22
+ command forceswitch ; 23
+ command endloop ; 24
+ command flinchtarget ; 25
+ command ohko ; 26
+ command recoil ; 27
+ command mist ; 28
+ command focusenergy ; 29
+ command confuse ; 2a
+ command confusetarget ; 2b
+ command heal ; 2c
+ command transform ; 2d
+ command screen ; 2e
+ command poison ; 2f
+ command paralyze ; 30
+ command substitute ; 31
+ command rechargenextturn ; 32
+ command mimic ; 33
+ command metronome ; 34
+ command leechseed ; 35
+ command splash ; 36
+ command disable ; 37
+ command cleartext ; 38
+ command charge ; 39
+ command checkcharge ; 3a
+ command traptarget ; 3b
+ command effect0x3c ; 3c
+ command rampage ; 3d
+ command checkrampage ; 3e
+ command constantdamage ; 3f
+ command counter ; 40
+ command encore ; 41
+ command painsplit ; 42
+ command snore ; 43
+ command conversion2 ; 44
+ command lockon ; 45
+ command sketch ; 46
+ command defrostopponent ; 47
+ command sleeptalk ; 48
+ command destinybond ; 49
+ command spite ; 4a
+ command falseswipe ; 4b
+ command healbell ; 4c
+ command kingsrock ; 4d
+ command triplekick ; 4e
+ command kickcounter ; 4f
+ command thief ; 50
+ command arenatrap ; 51
+ command nightmare ; 52
+ command defrost ; 53
+ command curse ; 54
+ command protect ; 55
+ command spikes ; 56
+ command foresight ; 57
+ command perishsong ; 58
+ command startsandstorm ; 59
+ command endure ; 5a
+ command checkcurl ; 5b
+ command rolloutpower ; 5c
+ command effect0x5d ; 5d
+ command furycutter ; 5e
+ command attract ; 5f
+ command happinesspower ; 60
+ command present ; 61
+ command damagecalc ; 62
+ command frustrationpower ; 63
+ command safeguard ; 64
+ command checksafeguard ; 65
+ command getmagnitude ; 66
+ command batonpass ; 67
+ command pursuit ; 68
+ command clearhazards ; 69
+ command healmorn ; 6a
+ command healday ; 6b
+ command healnite ; 6c
+ command hiddenpower ; 6d
+ command startrain ; 6e
+ command startsun ; 6f
+ command attackup ; 70
+ command defenseup ; 71
+ command speedup ; 72
+ command specialattackup ; 73
+ command specialdefenseup ; 74
+ command accuracyup ; 75
+ command evasionup ; 76
+ command attackup2 ; 77
+ command defenseup2 ; 78
+ command speedup2 ; 79
+ command specialattackup2 ; 7a
+ command specialdefenseup2 ; 7b
+ command accuracyup2 ; 7c
+ command evasionup2 ; 7d
+ command attackdown ; 7e
+ command defensedown ; 7f
+ command speeddown ; 80
+ command specialattackdown ; 81
+ command specialdefensedown ; 82
+ command accuracydown ; 83
+ command evasiondown ; 84
+ command attackdown2 ; 85
+ command defensedown2 ; 86
+ command speeddown2 ; 87
+ command specialattackdown2 ; 88
+ command specialdefensedown2 ; 89
+ command accuracydown2 ; 8a
+ command evasiondown2 ; 8b
+ command statupmessage ; 8c
+ command statdownmessage ; 8d
+ command statupfailtext ; 8e
+ command statdownfailtext ; 8f
+ command effectchance ; 90
+ command statdownanim ; 91
+ command statupanim ; 92
+ command switchturn ; 93
+ command fakeout ; 94
+ command bellydrum ; 95
+ command psychup ; 96
+ command rage ; 97
+ command doubleflyingdamage ; 98
+ command doubleundergrounddamage ; 99
+ command mirrorcoat ; 9a
+ command checkfuturesight ; 9b
+ command futuresight ; 9c
+ command doubleminimizedamage ; 9d
+ command skipsuncharge ; 9e
+ command thunderaccuracy ; 9f
+ command teleport ; a0
+ command beatup ; a1
+ command ragedamage ; a2
+ command resettypematchup ; a3
+ command allstatsup ; a4
+ command effect0xa5 ; a5
+ command raisesubnoanim ; a6
+ command lowersubnoanim ; a7
+ command effect0xa8 ; a8
+ command clearmissdamage ; a9
+ command movedelay ; aa
+ command hittarget ; ab
+ command tristatuschance ; ac
+ command supereffectivelooptext ; ad
+ command startloop ; ae
+ command curl ; af
+
+__enum__ set $fe
+
+ command endturn ; fe
+ command endmove ; ff
--- /dev/null
+++ b/macros/scripts/event.asm
@@ -1,0 +1,1069 @@
+; ScriptCommandTable indexes (see engine/scripting.asm)
+ enum_start
+
+ enum scall_command ; $00
+scall: macro
+ db scall_command
+ dw \1 ; pointer
+ endm
+
+ enum farscall_command ; $01
+farscall: macro
+ db farscall_command
+ dba \1
+ endm
+
+ enum ptcall_command ; $02
+ptcall: macro
+ db ptcall_command
+ dw \1 ; pointer
+ endm
+
+ enum jump_command ; $03
+jump: macro
+ db jump_command
+ dw \1 ; pointer
+ endm
+
+ enum farjump_command ; $04
+farjump: macro
+ db farjump_command
+ dba \1
+ endm
+
+ enum ptjump_command ; $05
+ptjump: macro
+ db ptjump_command
+ dw \1 ; pointer
+ endm
+
+ enum if_equal_command ; $06
+if_equal: macro
+ db if_equal_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum if_not_equal_command ; $07
+if_not_equal: macro
+ db if_not_equal_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum iffalse_command ; $08
+iffalse: macro
+ db iffalse_command
+ dw \1 ; pointer
+ endm
+
+ enum iftrue_command ; $09
+iftrue: macro
+ db iftrue_command
+ dw \1 ; pointer
+ endm
+
+ enum if_greater_than_command ; $0a
+if_greater_than: macro
+ db if_greater_than_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum if_less_than_command ; $0b
+if_less_than: macro
+ db if_less_than_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum jumpstd_command ; $0c
+jumpstd: macro
+ db jumpstd_command
+ dw \1 ; predefined_script
+ endm
+
+ enum callstd_command ; $0d
+callstd: macro
+ db callstd_command
+ dw \1 ; predefined_script
+ endm
+
+ enum callasm_command ; $0e
+callasm: macro
+ db callasm_command
+ dba \1
+ endm
+
+ enum special_command ; $0f
+special: macro
+ db special_command
+ dw (\1Special - SpecialsPointers) / 3
+ endm
+
+add_special: MACRO
+\1Special::
+ dba \1
+ENDM
+
+ enum ptcallasm_command ; $10
+ptcallasm: macro
+ db ptcallasm_command
+ dw \1 ; asm
+ endm
+
+ enum checkmaptriggers_command ; $11
+checkmaptriggers: macro
+ db checkmaptriggers_command
+ map \1 ; map
+ endm
+
+ enum domaptrigger_command ; $12
+domaptrigger: macro
+ db domaptrigger_command
+ map \1 ; map
+ db \2 ; trigger_id
+ endm
+
+ enum checktriggers_command ; $13
+checktriggers: macro
+ db checktriggers_command
+ endm
+
+ enum dotrigger_command ; $14
+dotrigger: macro
+ db dotrigger_command
+ db \1 ; trigger_id
+ endm
+
+ enum writebyte_command ; $15
+writebyte: macro
+ db writebyte_command
+ db \1 ; value
+ endm
+
+ enum addvar_command ; $16
+addvar: macro
+ db addvar_command
+ db \1 ; value
+ endm
+
+ enum random_command ; $17
+random: macro
+ db random_command
+ db \1 ; input
+ endm
+
+ enum checkver_command ; $18
+checkver: macro
+ db checkver_command
+ endm
+
+ enum copybytetovar_command ; $19
+copybytetovar: macro
+ db copybytetovar_command
+ dw \1 ; address
+ endm
+
+ enum copyvartobyte_command ; $1a
+copyvartobyte: macro
+ db copyvartobyte_command
+ dw \1 ; address
+ endm
+
+ enum loadvar_command ; $1b
+loadvar: macro
+ db loadvar_command
+ dw \1 ; address
+ db \2 ; value
+ endm
+
+ enum checkcode_command ; $1c
+checkcode: macro
+ db checkcode_command
+ db \1 ; variable_id
+ endm
+
+ enum writevarcode_command ; $1d
+writevarcode: macro
+ db writevarcode_command
+ db \1 ; variable_id
+ endm
+
+ enum writecode_command ; $1e
+writecode: macro
+ db writecode_command
+ db \1 ; variable_id
+ db \2 ; value
+ endm
+
+ enum giveitem_command ; $1f
+giveitem: macro
+ db giveitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum takeitem_command ; $20
+takeitem: macro
+ db takeitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum checkitem_command ; $21
+checkitem: macro
+ db checkitem_command
+ db \1 ; item
+ endm
+
+ enum givemoney_command ; $22
+givemoney: macro
+ db givemoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum takemoney_command ; $23
+takemoney: macro
+ db takemoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum checkmoney_command ; $24
+checkmoney: macro
+ db checkmoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum givecoins_command ; $25
+givecoins: macro
+ db givecoins_command
+ dw \1 ; coins
+ endm
+
+ enum takecoins_command ; $26
+takecoins: macro
+ db takecoins_command
+ dw \1 ; coins
+ endm
+
+ enum checkcoins_command ; $27
+checkcoins: macro
+ db checkcoins_command
+ dw \1 ; coins
+ endm
+
+ enum addcellnum_command ; $28
+addcellnum: macro
+ db addcellnum_command
+ db \1 ; person
+ endm
+
+ enum delcellnum_command ; $29
+delcellnum: macro
+ db delcellnum_command
+ db \1 ; person
+ endm
+
+ enum checkcellnum_command ; $2a
+checkcellnum: macro
+ db checkcellnum_command
+ db \1 ; person
+ endm
+
+ enum checktime_command ; $2b
+checktime: macro
+ db checktime_command
+ db \1 ; time
+ endm
+
+checkmorn EQUS "checktime MORN"
+checkday EQUS "checktime DAY"
+checknite EQUS "checktime NITE"
+
+ enum checkpoke_command ; $2c
+checkpoke: macro
+ db checkpoke_command
+ db \1 ; pkmn
+ endm
+
+ enum givepoke_command ; $2d
+givepoke: macro
+ db givepoke_command
+ db \1 ; pokemon
+ db \2 ; level
+ if _NARG >= 3
+ db \3 ; item
+ if _NARG >= 4
+ db \4 ; trainer
+ if \4
+ dw \5 ; trainer_name_pointer
+ dw \6 ; pkmn_nickname
+ endc
+ else
+ db 0
+ endc
+ else
+ db 0, 0
+ endc
+ endm
+
+ enum giveegg_command ; $2e
+giveegg: macro
+ db giveegg_command
+ db \1 ; pkmn
+ db \2 ; level
+ endm
+
+ enum givepokeitem_command ; $2f
+givepokeitem: macro
+ db givepokeitem_command
+ dw \1 ; pointer
+ endm
+
+ enum checkpokeitem_command ; $30
+checkpokeitem: macro
+ db checkpokeitem_command
+ dw \1 ; pointer
+ endm
+
+ enum checkevent_command ; $31
+checkevent: macro
+ db checkevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum clearevent_command ; $32
+clearevent: macro
+ db clearevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum setevent_command ; $33
+setevent: macro
+ db setevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum checkflag_command ; $34
+checkflag: macro
+ db checkflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum clearflag_command ; $35
+clearflag: macro
+ db clearflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum setflag_command ; $36
+setflag: macro
+ db setflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum wildon_command ; $37
+wildon: macro
+ db wildon_command
+ endm
+
+ enum wildoff_command ; $38
+wildoff: macro
+ db wildoff_command
+ endm
+
+ enum xycompare_command ; $39
+xycompare: macro
+ db xycompare_command
+ dw \1 ; pointer
+ endm
+
+ enum warpmod_command ; $3a
+warpmod: macro
+ db warpmod_command
+ db \1 ; warp_id
+ map \2 ; map
+ endm
+
+ enum blackoutmod_command ; $3b
+blackoutmod: macro
+ db blackoutmod_command
+ map \1 ; map
+ endm
+
+ enum warp_command ; $3c
+warp: macro
+ db warp_command
+ map \1 ; map
+ db \2 ; x
+ db \3 ; y
+ endm
+
+ enum readmoney_command ; $3d
+readmoney: macro
+ db readmoney_command
+ db \1 ; account
+ db \2 ; memory
+ endm
+
+ enum readcoins_command ; $3e
+readcoins: macro
+ db readcoins_command
+ db \1 ; memory
+ endm
+
+ enum RAM2MEM_command ; $3f
+RAM2MEM: macro
+ db RAM2MEM_command
+ db \1 ; memory
+ endm
+
+ enum pokenamemem_command ; $40
+pokenamemem: macro
+ db pokenamemem_command
+ db \1 ; pokemon
+ db \2 ; memory
+ endm
+
+ enum itemtotext_command ; $41
+itemtotext: macro
+ db itemtotext_command
+ db \1 ; item
+ db \2 ; memory
+ endm
+
+ enum mapnametotext_command ; $42
+mapnametotext: macro
+ db mapnametotext_command
+ db \1 ; memory
+ endm
+
+ enum trainertotext_command ; $43
+trainertotext: macro
+ db trainertotext_command
+ db \1 ; trainer_id
+ db \2 ; trainer_group
+ db \3 ; memory
+ endm
+
+ enum stringtotext_command ; $44
+stringtotext: macro
+ db stringtotext_command
+ dw \1 ; text_pointer
+ db \2 ; memory
+ endm
+
+ enum itemnotify_command ; $45
+itemnotify: macro
+ db itemnotify_command
+ endm
+
+ enum pocketisfull_command ; $46
+pocketisfull: macro
+ db pocketisfull_command
+ endm
+
+ enum opentext_command ; $47
+opentext: macro
+ db opentext_command
+ endm
+
+ enum refreshscreen_command ; $48
+refreshscreen: macro
+ db refreshscreen_command
+ db \1 ; dummy
+ endm
+
+ enum closetext_command ; $49
+closetext: macro
+ db closetext_command
+ endm
+
+ enum loadbytec2cf_command ; $4a
+loadbytec2cf: macro
+ db loadbytec2cf_command
+ db \1 ; byte
+ endm
+
+ enum farwritetext_command ; $4b
+farwritetext: macro
+ db farwritetext_command
+ dba \1
+ endm
+
+ enum writetext_command ; $4c
+writetext: macro
+ db writetext_command
+ dw \1 ; text_pointer
+ endm
+
+ enum repeattext_command ; $4d
+repeattext: macro
+ db repeattext_command
+ db \1 ; byte
+ db \2 ; byte
+ endm
+
+ enum yesorno_command ; $4e
+yesorno: macro
+ db yesorno_command
+ endm
+
+ enum loadmenudata_command ; $4f
+loadmenudata: macro
+ db loadmenudata_command
+ dw \1 ; data
+ endm
+
+ enum closewindow_command ; $50
+closewindow: macro
+ db closewindow_command
+ endm
+
+ enum jumptextfaceplayer_command ; $51
+jumptextfaceplayer: macro
+ db jumptextfaceplayer_command
+ dw \1 ; text_pointer
+ endm
+
+; IF _CRYSTAL
+ enum farjumptext_command ; $52
+farjumptext: macro
+ db farjumptext_command
+ dba \1
+ endm
+; ENDC
+
+ enum jumptext_command ; $53
+jumptext: macro
+ db jumptext_command
+ dw \1 ; text_pointer
+ endm
+
+ enum waitbutton_command ; $54
+waitbutton: macro
+ db waitbutton_command
+ endm
+
+ enum buttonsound_command ; $55
+buttonsound: macro
+ db buttonsound_command
+ endm
+
+ enum pokepic_command ; $56
+pokepic: macro
+ db pokepic_command
+ db \1 ; pokemon
+ endm
+
+ enum closepokepic_command ; $57
+closepokepic: macro
+ db closepokepic_command
+ endm
+
+ enum _2dmenu_command ; $58
+_2dmenu: macro
+ db _2dmenu_command
+ endm
+
+ enum verticalmenu_command ; $59
+verticalmenu: macro
+ db verticalmenu_command
+ endm
+
+ enum loadpikachudata_command ; $5a
+loadpikachudata: macro
+ db loadpikachudata_command
+ endm
+
+ enum randomwildmon_command ; $5b
+randomwildmon: macro
+ db randomwildmon_command
+ endm
+
+ enum loadmemtrainer_command ; $5c
+loadmemtrainer: macro
+ db loadmemtrainer_command
+ endm
+
+ enum loadwildmon_command ; $5d
+loadwildmon: macro
+ db loadwildmon_command
+ db \1 ; pokemon
+ db \2 ; level
+ endm
+
+ enum loadtrainer_command ; $5e
+loadtrainer: macro
+ db loadtrainer_command
+ db \1 ; trainer_group
+ db \2 ; trainer_id
+ endm
+
+ enum startbattle_command ; $5f
+startbattle: macro
+ db startbattle_command
+ endm
+
+ enum reloadmapafterbattle_command ; $60
+reloadmapafterbattle: macro
+ db reloadmapafterbattle_command
+ endm
+
+ enum catchtutorial_command ; $61
+catchtutorial: macro
+ db catchtutorial_command
+ db \1 ; byte
+ endm
+
+ enum trainertext_command ; $62
+trainertext: macro
+ db trainertext_command
+ db \1 ; which_text
+ endm
+
+ enum trainerflagaction_command ; $63
+trainerflagaction: macro
+ db trainerflagaction_command
+ db \1 ; action
+ endm
+
+ enum winlosstext_command ; $64
+winlosstext: macro
+ db winlosstext_command
+ dw \1 ; win_text_pointer
+ dw \2 ; loss_text_pointer
+ endm
+
+ enum scripttalkafter_command ; $65
+scripttalkafter: macro
+ db scripttalkafter_command
+ endm
+
+ enum end_if_just_battled_command ; $66
+end_if_just_battled: macro
+ db end_if_just_battled_command
+ endm
+
+ enum check_just_battled_command ; $67
+check_just_battled: macro
+ db check_just_battled_command
+ endm
+
+ enum setlasttalked_command ; $68
+setlasttalked: macro
+ db setlasttalked_command
+ db \1 ; person
+ endm
+
+ enum applymovement_command ; $69
+applymovement: macro
+ db applymovement_command
+ db \1 ; person
+ dw \2 ; data
+ endm
+
+ enum applymovement2_command ; $6a
+applymovement2: macro
+ db applymovement2_command
+ dw \1 ; data
+ endm
+
+ enum faceplayer_command ; $6b
+faceplayer: macro
+ db faceplayer_command
+ endm
+
+ enum faceperson_command ; $6c
+faceperson: macro
+ db faceperson_command
+ db \1 ; person1
+ db \2 ; person2
+ endm
+
+ enum variablesprite_command ; $6d
+variablesprite: macro
+ db variablesprite_command
+ db \1 - SPRITE_VARS ; byte
+ db \2 ; sprite
+ endm
+
+ enum disappear_command ; $6e
+disappear: macro
+ db disappear_command
+ db \1 ; person
+ endm
+
+ enum appear_command ; $6f
+appear: macro
+ db appear_command
+ db \1 ; person
+ endm
+
+ enum follow_command ; $70
+follow: macro
+ db follow_command
+ db \1 ; person2
+ db \2 ; person1
+ endm
+
+ enum stopfollow_command ; $71
+stopfollow: macro
+ db stopfollow_command
+ endm
+
+ enum moveperson_command ; $72
+moveperson: macro
+ db moveperson_command
+ db \1 ; person
+ db \2 ; x
+ db \3 ; y
+ endm
+
+ enum writepersonxy_command ; $73
+writepersonxy: macro
+ db writepersonxy_command
+ db \1 ; person
+ endm
+
+ enum loademote_command ; $74
+loademote: macro
+ db loademote_command
+ db \1 ; bubble
+ endm
+
+ enum showemote_command ; $75
+showemote: macro
+ db showemote_command
+ db \1 ; bubble
+ db \2 ; person
+ db \3 ; time
+ endm
+
+ enum spriteface_command ; $76
+spriteface: macro
+ db spriteface_command
+ db \1 ; person
+ db \2 ; facing
+ endm
+
+ enum follownotexact_command ; $77
+follownotexact: macro
+ db follownotexact_command
+ db \1 ; person2
+ db \2 ; person1
+ endm
+
+ enum earthquake_command ; $78
+earthquake: macro
+ db earthquake_command
+ db \1 ; param
+ endm
+
+ enum changemap_command ; $79
+changemap: macro
+ db changemap_command
+ db \1 ; map_bank
+ dw \2 ; map_data_pointer
+ endm
+
+ enum changeblock_command ; $7a
+changeblock: macro
+ db changeblock_command
+ db \1 ; x
+ db \2 ; y
+ db \3 ; block
+ endm
+
+ enum reloadmap_command ; $7b
+reloadmap: macro
+ db reloadmap_command
+ endm
+
+ enum reloadmappart_command ; $7c
+reloadmappart: macro
+ db reloadmappart_command
+ endm
+
+ enum writecmdqueue_command ; $7d
+writecmdqueue: macro
+ db writecmdqueue_command
+ dw \1 ; queue_pointer
+ endm
+
+ enum delcmdqueue_command ; $7e
+delcmdqueue: macro
+ db delcmdqueue_command
+ db \1 ; byte
+ endm
+
+ enum playmusic_command ; $7f
+playmusic: macro
+ db playmusic_command
+ dw \1 ; music_pointer
+ endm
+
+ enum encountermusic_command ; $80
+encountermusic: macro
+ db encountermusic_command
+ endm
+
+ enum musicfadeout_command ; $81
+musicfadeout: macro
+ db musicfadeout_command
+ dw \1 ; music
+ db \2 ; fadetime
+ endm
+
+ enum playmapmusic_command ; $82
+playmapmusic: macro
+ db playmapmusic_command
+ endm
+
+ enum dontrestartmapmusic_command ; $83
+dontrestartmapmusic: macro
+ db dontrestartmapmusic_command
+ endm
+
+ enum cry_command ; $84
+cry: macro
+ db cry_command
+ dw \1 ; cry_id
+ endm
+
+ enum playsound_command ; $85
+playsound: macro
+ db playsound_command
+ dw \1 ; sound_pointer
+ endm
+
+ enum waitsfx_command ; $86
+waitsfx: macro
+ db waitsfx_command
+ endm
+
+ enum warpsound_command ; $87
+warpsound: macro
+ db warpsound_command
+ endm
+
+ enum specialsound_command ; $88
+specialsound: macro
+ db specialsound_command
+ endm
+
+ enum passtoengine_command ; $89
+passtoengine: macro
+ db passtoengine_command
+ db \1 ; data_pointer
+ endm
+
+ enum newloadmap_command ; $8a
+newloadmap: macro
+ db newloadmap_command
+ db \1 ; which_method
+ endm
+
+ enum pause_command ; $8b
+pause: macro
+ db pause_command
+ db \1 ; length
+ endm
+
+ enum deactivatefacing_command ; $8c
+deactivatefacing: macro
+ db deactivatefacing_command
+ db \1 ; time
+ endm
+
+ enum priorityjump_command ; $8d
+priorityjump: macro
+ db priorityjump_command
+ dw \1 ; pointer
+ endm
+
+ enum warpcheck_command ; $8e
+warpcheck: macro
+ db warpcheck_command
+ endm
+
+ enum ptpriorityjump_command ; $8f
+ptpriorityjump: macro
+ db ptpriorityjump_command
+ dw \1 ; pointer
+ endm
+
+ enum return_command ; $90
+return: macro
+ db return_command
+ endm
+
+ enum end_command ; $91
+end: macro
+ db end_command
+ endm
+
+ enum reloadandreturn_command ; $92
+reloadandreturn: macro
+ db reloadandreturn_command
+ db \1 ; which_method
+ endm
+
+ enum end_all_command ; $93
+end_all: macro
+ db end_all_command
+ endm
+
+ enum pokemart_command ; $94
+pokemart: macro
+ db pokemart_command
+ db \1 ; dialog_id
+ dw \2 ; mart_id
+ endm
+
+ enum elevator_command ; $95
+elevator: macro
+ db elevator_command
+ dw \1 ; floor_list_pointer
+ endm
+
+ enum trade_command ; $96
+trade: macro
+ db trade_command
+ db \1 ; trade_id
+ endm
+
+ enum askforphonenumber_command ; $97
+askforphonenumber: macro
+ db askforphonenumber_command
+ db \1 ; number
+ endm
+
+ enum phonecall_command ; $98
+phonecall: macro
+ db phonecall_command
+ dw \1 ; caller_name
+ endm
+
+ enum hangup_command ; $99
+hangup: macro
+ db hangup_command
+ endm
+
+ enum describedecoration_command ; $9a
+describedecoration: macro
+ db describedecoration_command
+ db \1 ; byte
+ endm
+
+ enum fruittree_command ; $9b
+fruittree: macro
+ db fruittree_command
+ db \1 ; tree_id
+ endm
+
+ enum specialphonecall_command ; $9c
+specialphonecall: macro
+ db specialphonecall_command
+ dw \1 ; call_id
+ endm
+
+ enum checkphonecall_command ; $9d
+checkphonecall: macro
+ db checkphonecall_command
+ endm
+
+ enum verbosegiveitem_command ; $9e
+verbosegiveitem: macro
+ db verbosegiveitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum verbosegiveitem2_command ; $9f
+verbosegiveitem2: macro
+ db verbosegiveitem2_command
+ db \1 ; item
+ db \2 ; var
+ endm
+
+ enum swarm_command ; $a0
+swarm: macro
+ db swarm_command
+ db \1 ; flag
+ map \2 ; map
+ endm
+
+ enum halloffame_command ; $a1
+halloffame: macro
+ db halloffame_command
+ endm
+
+ enum credits_command ; $a2
+credits: macro
+ db credits_command
+ endm
+
+ enum warpfacing_command ; $a3
+warpfacing: macro
+ db warpfacing_command
+ db \1 ; facing
+ map \2 ; map
+ db \3 ; x
+ db \4 ; y
+ endm
+
+ enum battletowertext_command ; $a4
+battletowertext: macro
+ db battletowertext_command
+ db \1 ; memory
+ endm
+
+ enum landmarktotext_command ; $a5
+landmarktotext: macro
+ db landmarktotext_command
+ db \1 ; id
+ db \2 ; memory
+ endm
+
+ enum trainerclassname_command ; $a6
+trainerclassname: macro
+ db trainerclassname_command
+ db \1 ; id
+ db \2 ; memory
+ endm
+
+ enum name_command ; $a7
+name: macro
+ db name_command
+ db \1 ; type
+ db \2 ; id
+ db \3 ; memory
+ endm
+
+ enum wait_command ; $a8
+wait: macro
+ db wait_command
+ db \1 ; duration
+ endm
+
+ enum check_save_command ; $a9
+check_save: macro
+ db check_save_command
+ endm
--- /dev/null
+++ b/macros/scripts/gfx_anim.asm
@@ -1,0 +1,44 @@
+; pic + oam animations
+
+frame: macro
+ db \1
+x = \2
+if _NARG > 2
+rept _NARG +- 2
+x = x | (1 << (\3 + 1))
+ shift
+endr
+endc
+ db x
+ endm
+
+ enum_start $fc
+
+ enum delanim_command ; $fc
+delanim: macro ; used for oam
+ db delanim_command
+ endm
+
+ enum dorepeat_command ; $fd
+dorepeat: macro
+ db dorepeat_command
+ db \1 ; #
+ endm
+
+ enum setrepeat_command ; $fe
+setrepeat: macro
+ db setrepeat_command
+ db \1 ; #
+ endm
+
+ enum endanim_command ; $ff
+endanim: macro
+ db endanim_command
+ endm
+
+__enum__ = $fe
+
+ enum dorestart_command ; $fe
+dorestart: macro ; used for oam
+ db dorestart_command
+ endm
--- /dev/null
+++ b/macros/scripts/maps.asm
@@ -1,0 +1,108 @@
+map: macro
+;\1: map id
+ db GROUP_\1, MAP_\1
+endm
+
+
+maptrigger: macro
+;\1: script pointer
+ dw \1, 0
+endm
+
+warp_def: macro
+;\1: y: top to bottom, starts at 0
+;\2: x: left to right, starts at 0
+;\3: warp destination: starts at 1
+;\4: map id: from constants/map_constants.asm
+ db \1, \2, \3
+ map \4
+endm
+
+xy_trigger: macro
+;\1: number: controlled by dotrigger/domaptrigger
+;\2: y: top to bottom, starts at 0
+;\3: x: left to right, starts at 0
+;\4: script pointer
+ db \1, \2, \3, $0
+ dw \4
+ db $0, $0
+endm
+
+signpost: macro
+;\1: y: top to bottom, starts at 0
+;\2: x: left to right, starts at 0
+;\3: function: a SIGNPOST_* constant
+;\4: script pointer
+ db \1, \2, \3
+ dw \4
+endm
+
+person_event: macro
+;\1: sprite: a SPRITE_* constant
+;\2: y: top to bottom, starts at 0
+;\3: x: left to right, starts at 0
+;\4: movement function: a SPRITEMOVEDATA_* constant
+;\5, \6: movement radius: y, x
+;\7, \8: hour1 and hour2: control the hours a person_event is visible (0-23)
+; * if hour1 < hour2, the person_event will only appear from hour1 to hour2
+; * if hour1 > hour2, the person_event will not appear from hour2 to hour1
+; * if hour1 == hour2, the person_event will always appear
+; * if hour1 == -1, hour2 is treated as a time-of-day value:
+; a combo of MORN, DAY, and/or NITE, or -1 to always appear
+;\9: color: a PAL_NPC_* constant, or 0 for sprite default
+;\10: function: a PERSONTYPE_* constant
+;\11: sight range: applies to PERSONTYPE_TRAINER
+;\12: script pointer
+;\13: event flag: an EVENT_* constant, or 0 for always
+ db \1, \2 + 4, \3 + 4, \4
+ dn \5, \6
+ db \7, \8
+ shift
+ dn \8, \9
+ shift
+ db \9
+ shift
+ dw \9
+ shift
+ dw \9
+endm
+
+
+trainer: macro
+;\1: flag: an EVENT_BEAT_* constant
+;\2: trainer group
+;\3: trainer id
+;\4: seen text
+;\5: win text
+;\6: loss text
+;\7: after-battle text
+ dw \1
+ db \2, \3
+ dw \4, \5, \6, \7
+endm
+
+itemball: macro
+;\1: item: from constants/item_constants.asm
+;\2: quantity: default 1
+if _NARG == 2
+ db \1, \2
+else
+ db \1, 1
+endc
+endm
+
+elevfloor: macro
+;\1: floor: a FLOOR_* constant
+;\2: warp destination: starts at 1
+;\3: map id
+ db \1, \2
+ map \3
+ENDM
+
+stonetable: macro
+;\1: warp id
+;\2: person_event id
+;\3: script pointer
+ db \1, \2
+ dw \3
+endm
--- /dev/null
+++ b/macros/scripts/move_anim.asm
@@ -1,0 +1,294 @@
+anim_wait: macro
+if \1 >= $d0
+ flip out
+endc
+ db \1
+ endm
+
+; BattleAnimCommands indexes (see battle/anim_commands.asm)
+ enum_start $d0
+
+ enum anim_obj_command ; $d0
+anim_obj: macro
+ db anim_obj_command
+ db \1 ; obj
+ db (\2 << 3) + \3 ; x
+ db (\4 << 3) + \5 ; y
+ db \6 ; param
+ endm
+
+ enum anim_1gfx_command ; $d1
+anim_1gfx: macro
+ db anim_1gfx_command
+ db \1 ; gfx1
+ endm
+
+ enum anim_2gfx_command ; $d2
+anim_2gfx: macro
+ db anim_2gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ endm
+
+ enum anim_3gfx_command ; $d3
+anim_3gfx: macro
+ db anim_3gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ endm
+
+ enum anim_4gfx_command ; $d4
+anim_4gfx: macro
+ db anim_4gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ db \4 ; gfx4
+ endm
+
+ enum anim_5gfx_command ; $d5
+anim_5gfx: macro
+ db anim_5gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ db \4 ; gfx4
+ db \5 ; gfx5
+ endm
+
+ enum anim_incobj_command ; $d6
+anim_incobj: macro
+ db anim_incobj_command
+ db \1 ; id
+ endm
+
+ enum anim_setobj_command ; $d7
+anim_setobj: macro
+ db anim_setobj_command
+ db \1 ; id
+ db \2 ; obj
+ endm
+
+ enum anim_incbgeffect_command ; $d8
+anim_incbgeffect: macro
+ db anim_incbgeffect_command
+ db \1 ; effect
+ endm
+
+ enum anim_enemyfeetobj_command ; $d9
+anim_enemyfeetobj: macro
+ db anim_enemyfeetobj_command
+ endm
+
+ enum anim_playerheadobj_command ; $da
+anim_playerheadobj: macro
+ db anim_playerheadobj_command
+ endm
+
+ enum anim_checkpokeball_command ; $db
+anim_checkpokeball: macro
+ db anim_checkpokeball_command
+ endm
+
+ enum anim_transform_command ; $dc
+anim_transform: macro
+ db anim_transform_command
+ endm
+
+ enum anim_raisesub_command ; $dd
+anim_raisesub: macro
+ db anim_raisesub_command
+ endm
+
+ enum anim_dropsub_command ; $de
+anim_dropsub: macro
+ db anim_dropsub_command
+ endm
+
+ enum anim_resetobp0_command ; $df
+anim_resetobp0: macro
+ db anim_resetobp0_command
+ endm
+
+ enum anim_sound_command ; $e0
+anim_sound: macro
+ db anim_sound_command
+ db (\1 << 2) | \2 ; duration, tracks
+ db \3 ; id
+ endm
+
+ enum anim_cry_command ; $e1
+anim_cry: macro
+ db anim_cry_command
+ db \1 ; pitch
+ endm
+
+ enum anim_minimizeopp_command ; $e2
+anim_minimizeopp: macro
+ db anim_minimizeopp_command
+ endm
+
+ enum anim_oamon_command ; $e3
+anim_oamon: macro
+ db anim_oamon_command
+ endm
+
+ enum anim_oamoff_command ; $e4
+anim_oamoff: macro
+ db anim_oamoff_command
+ endm
+
+ enum anim_clearobjs_command ; $e5
+anim_clearobjs: macro
+ db anim_clearobjs_command
+ endm
+
+ enum anim_beatup_command ; $e6
+anim_beatup: macro
+ db anim_beatup_command
+ endm
+
+ enum anim_0xe7_command ; $e7
+anim_0xe7: macro
+ db anim_0xe7_command
+ endm
+
+ enum anim_updateactorpic_command ; $e8
+anim_updateactorpic: macro
+ db anim_updateactorpic_command
+ endm
+
+ enum anim_minimize_command ; $e9
+anim_minimize: macro
+ db anim_minimize_command
+ endm
+
+ enum anim_0xea_command ; $ea
+anim_0xea: macro
+ db anim_0xea_command
+ endm
+
+ enum anim_0xeb_command ; $eb
+anim_0xeb: macro
+ db anim_0xeb_command
+ endm
+
+ enum anim_0xec_command ; $ec
+anim_0xec: macro
+ db anim_0xec_command
+ endm
+
+ enum anim_0xed_command ; $ed
+anim_0xed: macro
+ db anim_0xed_command
+ endm
+
+ enum anim_if_param_and_command ; $ee
+anim_if_param_and: macro
+ db anim_if_param_and_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_jumpuntil_command ; $ef
+anim_jumpuntil: macro
+ db anim_jumpuntil_command
+ dw \1 ; address
+ endm
+
+ enum anim_bgeffect_command ; $f0
+anim_bgeffect: macro
+ db anim_bgeffect_command
+ db \1 ; effect
+ db \2 ; unknown
+ db \3 ; unknown
+ db \4 ; unknown
+ endm
+
+ enum anim_bgp_command ; $f1
+anim_bgp: macro
+ db anim_bgp_command
+ db \1 ; colors
+ endm
+
+ enum anim_obp0_command ; $f2
+anim_obp0: macro
+ db anim_obp0_command
+ db \1 ; colors
+ endm
+
+ enum anim_obp1_command ; $f3
+anim_obp1: macro
+ db anim_obp1_command
+ db \1 ; colors
+ endm
+
+ enum anim_clearsprites_command ; $f4
+anim_clearsprites: macro
+ db anim_clearsprites_command
+ endm
+
+ enum anim_0xf5_command ; $f5
+anim_0xf5: macro
+ db anim_0xf5_command
+ endm
+
+ enum anim_0xf6_command ; $f6
+anim_0xf6: macro
+ db anim_0xf6_command
+ endm
+
+ enum anim_0xf7_command ; $f7
+anim_0xf7: macro
+ db anim_0xf7_command
+ endm
+
+ enum anim_if_param_equal_command ; $f8
+anim_if_param_equal: macro
+ db anim_if_param_equal_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_setvar_command ; $f9
+anim_setvar: macro
+ db anim_setvar_command
+ db \1 ; value
+ endm
+
+ enum anim_incvar_command ; $fa
+anim_incvar: macro
+ db anim_incvar_command
+ endm
+
+ enum anim_if_var_equal_command ; $fb
+anim_if_var_equal: macro
+ db anim_if_var_equal_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_jump_command ; $fc
+anim_jump: macro
+ db anim_jump_command
+ dw \1 ; address
+ endm
+
+ enum anim_loop_command ; $fd
+anim_loop: macro
+ db anim_loop_command
+ db \1 ; count
+ dw \2 ; address
+ endm
+
+ enum anim_call_command ; $fe
+anim_call: macro
+ db anim_call_command
+ dw \1 ; address
+ endm
+
+ enum anim_ret_command ; $ff
+anim_ret: macro
+ db anim_ret_command
+ endm
--- /dev/null
+++ b/macros/scripts/movement.asm
@@ -1,0 +1,246 @@
+; MovementPointers indexes (see engine/movement.asm)
+ enum_start
+
+; Directional movements
+
+ enum movement_turn_head ; $00
+turn_head: macro
+ db movement_turn_head | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_step ; $04
+turn_step: macro
+ db movement_turn_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_step ; $08
+slow_step: macro
+ db movement_slow_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_step ; $0c
+step: macro
+ db movement_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_big_step ; $10
+big_step: macro
+ db movement_big_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_slide_step ; $14
+slow_slide_step: macro
+ db movement_slow_slide_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slide_step ; $18
+slide_step: macro
+ db movement_slide_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_fast_slide_step ; $1c
+fast_slide_step: macro
+ db movement_fast_slide_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_away ; $20
+turn_away: macro
+ db movement_turn_away | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_in ; $24
+turn_in: macro
+ db movement_turn_in | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_waterfall ; $28
+turn_waterfall: macro
+ db movement_turn_waterfall | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_jump_step ; $2c
+slow_jump_step: macro
+ db movement_slow_jump_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_jump_step ; $30
+jump_step: macro
+ db movement_jump_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_fast_jump_step ; $34
+fast_jump_step: macro
+ db movement_fast_jump_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+; Control
+ enum movement_remove_sliding ; $38
+remove_sliding: macro
+ db movement_remove_sliding
+ endm
+
+ enum movement_set_sliding ; $39
+set_sliding: macro
+ db movement_set_sliding
+ endm
+
+ enum movement_remove_fixed_facing ; $3a
+remove_fixed_facing: macro
+ db movement_remove_fixed_facing
+ endm
+
+ enum movement_fix_facing ; $3b
+fix_facing: macro
+ db movement_fix_facing
+ endm
+
+ enum movement_show_person ; $3c
+show_person: macro
+ db movement_show_person
+ endm
+
+ enum movement_hide_person ; $3d
+hide_person: macro
+ db movement_hide_person
+ endm
+
+; Sleep
+
+ enum movement_step_sleep ; $3e
+step_sleep: macro
+if \1 <= 8
+ db movement_step_sleep + \1 - 1
+else
+ db movement_step_sleep + 8, \1
+endc
+endm
+
+__enum__ = __enum__ + 8
+
+ enum movement_step_end ; $47
+step_end: macro
+ db movement_step_end
+ endm
+
+ enum movement_step_48 ; $48
+step_48: macro
+ db movement_step_48
+ db \1 ; ???
+ endm
+
+ enum movement_remove_person ; $49
+remove_person: macro
+ db movement_remove_person
+ endm
+
+ enum movement_step_loop ; $4a
+step_loop: macro
+ db movement_step_loop
+ endm
+
+ enum movement_step_4b ; $4b
+step_4b: macro
+ db movement_step_4b
+ endm
+
+ enum movement_teleport_from ; $4c
+teleport_from: macro
+ db movement_teleport_from
+ endm
+
+ enum movement_teleport_to ; $4d
+teleport_to: macro
+ db movement_teleport_to
+ endm
+
+ enum movement_skyfall ; $4e
+skyfall: macro
+ db movement_skyfall
+ endm
+
+ enum movement_step_dig ; $4f
+step_dig: macro
+ db movement_step_dig
+ db \1 ; length
+ endm
+
+ enum movement_step_bump ; $50
+step_bump: macro
+ db movement_step_bump
+ endm
+
+ enum movement_fish_got_bite ; $51
+fish_got_bite: macro
+ db movement_fish_got_bite
+ endm
+
+ enum movement_fish_cast_rod ; $52
+fish_cast_rod: macro
+ db movement_fish_cast_rod
+ endm
+
+ enum movement_hide_emote ; $53
+hide_emote: macro
+ db movement_hide_emote
+ endm
+
+ enum movement_show_emote ; $54
+show_emote: macro
+ db movement_show_emote
+ endm
+
+ enum movement_step_shake ; $55
+step_shake: macro
+ db movement_step_shake
+ db \1 ; displacement
+ endm
+
+ enum movement_tree_shake ; $56
+tree_shake: macro
+ db movement_tree_shake
+ endm
+
+ enum movement_rock_smash ; $57
+rock_smash: macro
+ db movement_rock_smash
+ db \1 ; length
+ endm
+
+ enum movement_return_dig ; $58
+return_dig: macro
+ db movement_return_dig
+ db \1 ; length
+ endm
+
+ enum movement_skyfall_top ; $59
+skyfall_top: macro
+ db movement_skyfall_top
+ endm
--- /dev/null
+++ b/macros/scripts/text.asm
@@ -1,0 +1,133 @@
+text EQUS "db \"<START>\"," ; Start writing text.
+next EQUS "db \"<NEXT>\"," ; Move a line down.
+line EQUS "db \"<LINE>\"," ; Start writing at the bottom line.
+page EQUS "db \"@\"," ; Start a new Pokédex page.
+para EQUS "db \"<PARA>\"," ; Start a new paragraph.
+cont EQUS "db \"<CONT>\"," ; Scroll to the next line.
+done EQUS "db \"<DONE>\"" ; End a text box.
+prompt EQUS "db \"<PROMPT>\"" ; Prompt the player to end a text box (initiating some other event).
+
+; TextCommands indexes (see home/text.asm)
+ enum_start $01
+
+ enum TX_RAM ; $01
+text_from_ram: MACRO
+ db TX_RAM
+ dw \1
+ ENDM
+
+ enum TX_BCD ; $02
+text_bcd: macro
+ db TX_BCD
+ dw \1
+ db \2
+ ENDM
+
+ enum TX_MOVE ; $03
+text_move: macro
+ db TX_MOVE
+ dw \1
+ ENDM
+
+ enum TX_BOX ; $04
+text_box: macro
+ db TX_BOX
+ dw \1
+ db \2, \3
+ ENDM
+
+ enum TX_LOW ; $05
+text_low: macro
+ db TX_LOW
+ endm
+
+ enum WAIT_BUTTON ; $06
+text_waitbutton: macro
+ db WAIT_BUTTON
+ endm
+
+ enum TX_SCROLL ; $07
+text_scroll: macro
+ db TX_SCROLL
+ endm
+
+ enum START_ASM ; $08
+start_asm: macro
+ db START_ASM
+ endm
+
+ enum TX_NUM ; $09
+deciram: macro
+ db TX_NUM
+ dw \1 ; address
+ dn \2, \3 ; bytes, digits
+ endm
+
+ enum TX_EXIT ; $0a
+interpret_data: macro
+ db TX_EXIT
+ endm
+
+ enum TX_SOUND_0B ; $0b
+sound_dex_fanfare_50_79: macro
+ db TX_SOUND_0B
+ endm
+
+ enum TX_DOTS ; $0c
+limited_interpret_data: macro
+ db TX_DOTS
+ db \1
+ endm
+
+ enum TX_LINK_WAIT_BUTTON ; $0d
+link_wait_button: macro
+ db TX_LINK_WAIT_BUTTON
+ endm
+
+ enum TX_SOUND_0E ; $0e
+sound_dex_fanfare_20_49: macro
+ db TX_SOUND_0E
+ endm
+
+ enum TX_SOUND_0F ; $0f
+sound_item: macro
+ db TX_SOUND_0F
+ endm
+
+ enum TX_SOUND_10 ; $10
+sound_caught_mon: macro
+ db TX_SOUND_10
+ endm
+
+ enum TX_SOUND_11 ; $11
+sound_dex_fanfare_80_109: macro
+ db TX_SOUND_11
+ endm
+
+ enum TX_SOUND_12 ; $12
+sound_fanfare: macro
+ db TX_SOUND_12
+ endm
+
+ enum TX_SOUND_13 ; $13
+sound_slot_machine_start: macro
+ db TX_SOUND_13
+ endm
+
+ enum TX_STRINGBUFFER ; $14
+text_buffer: macro
+ db TX_STRINGBUFFER
+ db \1
+ endm
+
+ enum TX_DAY ; $15
+current_day: macro
+ db TX_DAY
+ endm
+
+ enum TX_FAR ; $16
+text_jump: MACRO
+ db TX_FAR
+ dw \1
+ db BANK(\1)
+ ENDM
--- /dev/null
+++ b/macros/scripts/trade_anim.asm
@@ -1,0 +1,255 @@
+; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm)
+ enum_start
+
+ enum tradeanim_next_command ; $00
+tradeanim_next: macro
+ db tradeanim_next_command
+endm
+
+ enum tradeanim_show_givemon_data_command ; $01
+tradeanim_show_givemon_data: macro
+ db tradeanim_show_givemon_data_command
+endm
+
+ enum tradeanim_show_getmon_data_command ; $02
+tradeanim_show_getmon_data: macro
+ db tradeanim_show_getmon_data_command
+endm
+
+ enum tradeanim_enter_link_tube_command ; $03
+tradeanim_enter_link_tube: macro
+ db tradeanim_enter_link_tube_command
+endm
+
+__enum__ set $5
+
+ enum tradeanim_exit_link_tube_command ; $05
+tradeanim_exit_link_tube: macro
+ db tradeanim_exit_link_tube_command
+endm
+
+ enum tradeanim_tube_to_ot_command ; $06
+tradeanim_tube_to_ot: macro
+ db tradeanim_tube_to_ot_command
+endm
+
+__enum__ set $0e
+
+ enum tradeanim_tube_to_player_command ; $0e
+tradeanim_tube_to_player: macro
+ db tradeanim_tube_to_player_command
+endm
+
+__enum__ set $16
+
+ enum tradeanim_sent_to_ot_text_command ; $16
+tradeanim_sent_to_ot_text: macro
+ db tradeanim_sent_to_ot_text_command
+endm
+
+ enum tradeanim_ot_bids_farewell_command ; $17
+tradeanim_ot_bids_farewell: macro
+ db tradeanim_ot_bids_farewell_command
+endm
+
+ enum tradeanim_take_care_of_text_command ; $18
+tradeanim_take_care_of_text: macro
+ db tradeanim_take_care_of_text_command
+endm
+
+ enum tradeanim_ot_sends_text_1_command ; $19
+tradeanim_ot_sends_text_1: macro
+ db tradeanim_ot_sends_text_1_command
+endm
+
+ enum tradeanim_ot_sends_text_2_command ; $1a
+tradeanim_ot_sends_text_2: macro
+ db tradeanim_ot_sends_text_2_command
+endm
+
+ enum tradeanim_setup_givemon_scroll_command ; $1b
+tradeanim_setup_givemon_scroll: macro
+ db tradeanim_setup_givemon_scroll_command
+endm
+
+ enum tradeanim_do_givemon_scroll_command ; $1c
+tradeanim_do_givemon_scroll: macro
+ db tradeanim_do_givemon_scroll_command
+endm
+
+ enum tradeanim_frontpic_scroll_command ; $1d
+tradeanim_frontpic_scroll: macro
+ db tradeanim_frontpic_scroll_command
+endm
+
+ enum tradeanim_textbox_scroll_command ; $1e
+tradeanim_textbox_scroll: macro
+ db tradeanim_textbox_scroll_command
+endm
+
+ enum tradeanim_scroll_out_right_command ; $1f
+tradeanim_scroll_out_right: macro
+ db tradeanim_scroll_out_right_command
+endm
+
+__enum__ set $21
+
+ enum tradeanim_wait_80_command ; $21
+tradeanim_wait_80: macro
+ db tradeanim_wait_80_command
+endm
+
+ enum tradeanim_wait_40_command ; $22
+tradeanim_wait_40: macro
+ db tradeanim_wait_40_command
+endm
+
+ enum tradeanim_rocking_ball_command ; $23
+tradeanim_rocking_ball: macro
+ db tradeanim_rocking_ball_command
+endm
+
+ enum tradeanim_drop_ball_command ; $24
+tradeanim_drop_ball: macro
+ db tradeanim_drop_ball_command
+endm
+
+ enum tradeanim_wait_anim_command ; $25
+tradeanim_wait_anim: macro
+ db tradeanim_wait_anim_command
+endm
+
+__enum__ set $27
+
+ enum tradeanim_poof_command ; $27
+tradeanim_poof: macro
+ db tradeanim_poof_command
+endm
+
+ enum tradeanim_bulge_through_tube_command ; $28
+tradeanim_bulge_through_tube: macro
+ db tradeanim_bulge_through_tube_command
+endm
+
+ enum tradeanim_give_trademon_sfx_command ; $29
+tradeanim_give_trademon_sfx: macro
+ db tradeanim_give_trademon_sfx_command
+endm
+
+ enum tradeanim_get_trademon_sfx_command ; $2a
+tradeanim_get_trademon_sfx: macro
+ db tradeanim_get_trademon_sfx_command
+endm
+
+ enum tradeanim_end_command ; $2b
+tradeanim_end: macro
+ db tradeanim_end_command
+endm
+
+ enum tradeanim_animate_frontpic_command ; $2c
+tradeanim_animate_frontpic: macro
+ db tradeanim_animate_frontpic_command
+endm
+
+ enum tradeanim_wait_96_command ; $2d
+tradeanim_wait_96: macro
+ db tradeanim_wait_96_command
+endm
+
+ enum tradeanim_wait_80_if_ot_egg_command ; $2e
+tradeanim_wait_80_if_ot_egg: macro
+ db tradeanim_wait_80_if_ot_egg_command
+endm
+
+ enum tradeanim_wait_180_if_ot_egg_command ; $2f
+tradeanim_wait_180_if_ot_egg: macro
+ db tradeanim_wait_180_if_ot_egg_command
+endm
+
+
+; Mobile
+ enum_start $01
+
+ enum mobiletradeanim_showgivemon_command ; $01
+mobiletradeanim_showgivemon: macro
+ db mobiletradeanim_showgivemon_command
+endm
+
+ enum mobiletradeanim_02_command ; $02
+mobiletradeanim_02: macro
+ db mobiletradeanim_02_command
+endm
+
+ enum mobiletradeanim_sendmon_command ; $03
+mobiletradeanim_sendmon: macro
+ db mobiletradeanim_sendmon_command
+endm
+
+__enum__ set $05
+
+ enum mobiletradeanim_05_command ; $05
+mobiletradeanim_05: macro
+ db mobiletradeanim_05_command
+endm
+
+ enum mobiletradeanim_06_command ; $06
+mobiletradeanim_06: macro
+ db mobiletradeanim_06_command
+endm
+
+ enum mobiletradeanim_07_command ; $07
+mobiletradeanim_07: macro
+ db mobiletradeanim_07_command
+endm
+
+ enum mobiletradeanim_receivemon_command ; $08
+mobiletradeanim_receivemon: macro
+ db mobiletradeanim_receivemon_command
+endm
+
+__enum__ set $0b
+
+ enum mobiletradeanim_showgetmon_command ; $0b
+mobiletradeanim_showgetmon: macro
+ db mobiletradeanim_showgetmon_command
+endm
+
+ enum mobiletradeanim_end_command ; $0c
+mobiletradeanim_end: macro
+ db mobiletradeanim_end_command
+endm
+
+ enum mobiletradeanim_showgtsgivemon_command ; $0d
+mobiletradeanim_showgtsgivemon: macro
+ db mobiletradeanim_showgtsgivemon_command
+endm
+
+ enum mobiletradeanim_showgtsgetmon_command ; $0e
+mobiletradeanim_showgtsgetmon: macro
+ db mobiletradeanim_showgtsgetmon_command
+endm
+
+ enum mobiletradeanim_0f_command ; $0f
+mobiletradeanim_0f: macro
+ db mobiletradeanim_0f_command
+endm
+
+ enum mobiletradeanim_10_command ; $10
+mobiletradeanim_10: macro
+ db mobiletradeanim_10_command
+endm
+
+ enum mobiletradeanim_11_command ; $11
+mobiletradeanim_11: macro
+ db mobiletradeanim_11_command
+endm
+
+ enum mobiletradeanim_12_command ; $12
+mobiletradeanim_12: macro
+ db mobiletradeanim_12_command
+endm
+
+ enum mobiletradeanim_showoddegg_command ; $13
+mobiletradeanim_showoddegg: macro
+ db mobiletradeanim_showoddegg_command
+endm
--- a/macros/sound.asm
+++ /dev/null
@@ -1,265 +1,0 @@
-note: MACRO
- dn (\1), (\2) - 1
- ENDM
-
-sound: macro
- note \1, \2
- db \3 ; intensity
- dw \4 ; frequency
- endm
-
-noise: macro
- note \1, \2 ; duration
- db \3 ; intensity
- db \4 ; frequency
- endm
-
-musicheader: macro
- ; number of tracks, track idx, address
- dbw ((\1 - 1) << 6) + (\2 - 1), \3
- endm
-
-cry_header: macro
- dw \1, \2, \3
- endm
-
-; MusicCommands indexes (see audio/engine.asm)
- enum_start $d8
-
- enum notetype_cmd
-octave: macro
- db notetype_cmd - (\1)
- endm
-
-notetype: macro
- db notetype_cmd
- db \1 ; note_length
- if _NARG >= 2
- db \2 ; intensity
- endc
- endm
-
- enum pitchoffset_cmd
-pitchoffset: macro
- db pitchoffset_cmd
- dn \1, \2 - 1 ; octave, key
- endm
-
- enum tempo_cmd
-tempo: macro
- db tempo_cmd
- bigdw \1 ; tempo
- endm
-
- enum dutycycle_cmd
-dutycycle: macro
- db dutycycle_cmd
- db \1 ; duty_cycle
- endm
-
- enum intensity_cmd
-intensity: macro
- db intensity_cmd
- db \1 ; intensity
- endm
-
- enum soundinput_cmd
-soundinput: macro
- db soundinput_cmd
- db \1 ; input
- endm
-
- enum sound_duty_cmd
-sound_duty: macro
- db sound_duty_cmd
- db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence
- endm
-
- enum togglesfx_cmd
-togglesfx: macro
- db togglesfx_cmd
- endm
-
- enum slidepitchto_cmd
-slidepitchto: macro
- db slidepitchto_cmd
- db \1 - 1 ; duration
- dn \2, \3 ; octave, pitch
- endm
-
- enum vibrato_cmd
-vibrato: macro
- db vibrato_cmd
- db \1 ; delay
- db \2 ; extent
- endm
-
- enum unknownmusic0xe2_cmd
-unknownmusic0xe2: macro
- db unknownmusic0xe2_cmd
- db \1 ; unknown
- endm
-
- enum togglenoise_cmd
-togglenoise: macro
- db togglenoise_cmd
- db \1 ; id
- endm
-
- enum panning_cmd
-panning: macro
- db panning_cmd
- db \1 ; tracks
- endm
-
- enum volume_cmd
-volume: macro
- db volume_cmd
- db \1 ; volume
- endm
-
- enum tone_cmd
-tone: macro
- db tone_cmd
- bigdw \1 ; tone
- endm
-
- enum unknownmusic0xe7_cmd
-unknownmusic0xe7: macro
- db unknownmusic0xe7_cmd
- db \1 ; unknown
- endm
-
- enum unknownmusic0xe8_cmd
-unknownmusic0xe8: macro
- db unknownmusic0xe8_cmd
- db \1 ; unknown
- endm
-
- enum tempo_relative_cmd
-tempo_relative: macro
- db tempo_relative_cmd
- bigdw \1 ; value
- endm
-
- enum restartchannel_cmd
-restartchannel: macro
- db restartchannel_cmd
- dw \1 ; address
- endm
-
- enum newsong_cmd
-newsong: macro
- db newsong_cmd
- bigdw \1 ; id
- endm
-
- enum sfxpriorityon_cmd
-sfxpriorityon: macro
- db sfxpriorityon_cmd
- endm
-
- enum sfxpriorityoff_cmd
-sfxpriorityoff: macro
- db sfxpriorityoff_cmd
- endm
-
- enum unknownmusic0xee_cmd
-unknownmusic0xee: macro
- db unknownmusic0xee_cmd
- dw \1 ; address
- endm
-
- enum stereopanning_cmd
-stereopanning: macro
- db stereopanning_cmd
- db \1 ; tracks
- endm
-
- enum sfxtogglenoise_cmd
-sfxtogglenoise: macro
- db sfxtogglenoise_cmd
- db \1 ; id
- endm
-
- enum music0xf1_cmd
-music0xf1: macro
- db music0xf1_cmd
- endm
-
- enum music0xf2_cmd
-music0xf2: macro
- db music0xf2_cmd
- endm
-
- enum music0xf3_cmd
-music0xf3: macro
- db music0xf3_cmd
- endm
-
- enum music0xf4_cmd
-music0xf4: macro
- db music0xf4_cmd
- endm
-
- enum music0xf5_cmd
-music0xf5: macro
- db music0xf5_cmd
- endm
-
- enum music0xf6_cmd
-music0xf6: macro
- db music0xf6_cmd
- endm
-
- enum music0xf7_cmd
-music0xf7: macro
- db music0xf7_cmd
- endm
-
- enum music0xf8_cmd
-music0xf8: macro
- db music0xf8_cmd
- endm
-
- enum unknownmusic0xf9_cmd
-unknownmusic0xf9: macro
- db unknownmusic0xf9_cmd
- endm
-
- enum setcondition_cmd
-setcondition: macro
- db setcondition_cmd
- db \1 ; condition
- endm
-
- enum jumpif_cmd
-jumpif: macro
- db jumpif_cmd
- db \1 ; condition
- dw \2 ; address
- endm
-
- enum jumpchannel_cmd
-jumpchannel: macro
- db jumpchannel_cmd
- dw \1 ; address
- endm
-
- enum loopchannel_cmd
-loopchannel: macro
- db loopchannel_cmd
- db \1 ; count
- dw \2 ; address
- endm
-
- enum callchannel_cmd
-callchannel: macro
- db callchannel_cmd
- dw \1 ; address
- endm
-
- enum endchannel_cmd
-endchannel: macro
- db endchannel_cmd
- endm
--- a/macros/text.asm
+++ /dev/null
@@ -1,133 +1,0 @@
-text EQUS "db $00," ; Start writing text.
-next EQUS "db $4e," ; Move a line down.
-line EQUS "db $4f," ; Start writing at the bottom line.
-page EQUS "db $50," ; Start a new Pokédex page.
-para EQUS "db $51," ; Start a new paragraph.
-cont EQUS "db $55," ; Scroll to the next line.
-done EQUS "db $57" ; End a text box.
-prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event).
-
-; TextCommands indexes (see home/text.asm)
- enum_start $01
-
- enum TX_RAM
-text_from_ram: MACRO
- db TX_RAM
- dw \1
- ENDM
-
- enum TX_BCD
-text_bcd: macro
- db TX_BCD
- dw \1
- db \2
- ENDM
-
- enum TX_MOVE
-text_move: macro
- db TX_MOVE
- dw \1
- ENDM
-
- enum TX_BOX
-text_box: macro
- db TX_BOX
- dw \1
- db \2, \3
- ENDM
-
- enum TX_LOW
-text_low: macro
- db TX_LOW
- endm
-
- enum WAIT_BUTTON
-text_waitbutton: macro
- db WAIT_BUTTON
- endm
-
- enum TX_SCROLL
-text_scroll: macro
- db TX_SCROLL
- endm
-
- enum START_ASM
-start_asm: macro
- db START_ASM
- endm
-
- enum TX_NUM
-deciram: macro
- db TX_NUM
- dw \1 ; address
- dn \2, \3 ; bytes, digits
- endm
-
- enum TX_EXIT
-interpret_data: macro
- db TX_EXIT
- endm
-
- enum TX_SOUND_0B
-sound_dex_fanfare_50_79: macro
- db TX_SOUND_0B
- endm
-
- enum TX_DOTS
-limited_interpret_data: macro
- db TX_DOTS
- db \1
- endm
-
- enum TX_LINK_WAIT_BUTTON
-link_wait_button: macro
- db TX_LINK_WAIT_BUTTON
- endm
-
- enum TX_SOUND_0E
-sound_dex_fanfare_20_49: macro
- db TX_SOUND_0E
- endm
-
- enum TX_SOUND_0F
-sound_item: macro
- db TX_SOUND_0F
- endm
-
- enum TX_SOUND_10
-sound_caught_mon: macro
- db TX_SOUND_10
- endm
-
- enum TX_SOUND_11
-sound_dex_fanfare_80_109: macro
- db TX_SOUND_11
- endm
-
- enum TX_SOUND_12
-sound_fanfare: macro
- db TX_SOUND_12
- endm
-
- enum TX_SOUND_13
-sound_slot_machine_start: macro
- db TX_SOUND_13
- endm
-
- enum TX_STRINGBUFFER
-text_buffer: macro
- db TX_STRINGBUFFER
- db \1
- endm
-
- enum TX_DAY
-current_day: macro
- db TX_DAY
- endm
-
- enum TX_FAR
-text_jump: MACRO
- db TX_FAR
- dw \1
- db BANK(\1)
- ENDM
--- a/macros/tilesets.asm
+++ b/macros/tilesets.asm
@@ -1,3 +1,5 @@
+; Used in tilesets/*.asm
+
tilepal: MACRO
; vram bank, pals
x = \1 << OAM_TILE_BANK
--- a/macros/trade_anim.asm
+++ /dev/null
@@ -1,255 +1,0 @@
-; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm)
- enum_start
-
- enum tradeanim_next_command
-tradeanim_next: macro
- db tradeanim_next_command ; 00
-endm
-
- enum tradeanim_show_givemon_data_command
-tradeanim_show_givemon_data: macro
- db tradeanim_show_givemon_data_command ; 01
-endm
-
- enum tradeanim_show_getmon_data_command
-tradeanim_show_getmon_data: macro
- db tradeanim_show_getmon_data_command ; 02
-endm
-
- enum tradeanim_enter_link_tube_command
-tradeanim_enter_link_tube: macro
- db tradeanim_enter_link_tube_command ; 03
-endm
-
-__enum__ set $5
-
- enum tradeanim_exit_link_tube_command
-tradeanim_exit_link_tube: macro
- db tradeanim_exit_link_tube_command ; 05
-endm
-
- enum tradeanim_tube_to_ot_command
-tradeanim_tube_to_ot: macro
- db tradeanim_tube_to_ot_command ; 06
-endm
-
-__enum__ set $e
-
- enum tradeanim_tube_to_player_command
-tradeanim_tube_to_player: macro
- db tradeanim_tube_to_player_command ; 0e
-endm
-
-__enum__ set $16
-
- enum tradeanim_sent_to_ot_text_command
-tradeanim_sent_to_ot_text: macro
- db tradeanim_sent_to_ot_text_command ; 16
-endm
-
- enum tradeanim_ot_bids_farewell_command
-tradeanim_ot_bids_farewell: macro
- db tradeanim_ot_bids_farewell_command ; 17
-endm
-
- enum tradeanim_take_care_of_text_command
-tradeanim_take_care_of_text: macro
- db tradeanim_take_care_of_text_command ; 18
-endm
-
- enum tradeanim_ot_sends_text_1_command
-tradeanim_ot_sends_text_1: macro
- db tradeanim_ot_sends_text_1_command ; 19
-endm
-
- enum tradeanim_ot_sends_text_2_command
-tradeanim_ot_sends_text_2: macro
- db tradeanim_ot_sends_text_2_command ; 1a
-endm
-
- enum tradeanim_setup_givemon_scroll_command
-tradeanim_setup_givemon_scroll: macro
- db tradeanim_setup_givemon_scroll_command ; 1b
-endm
-
- enum tradeanim_do_givemon_scroll_command
-tradeanim_do_givemon_scroll: macro
- db tradeanim_do_givemon_scroll_command ; 1c
-endm
-
- enum tradeanim_frontpic_scroll_command
-tradeanim_frontpic_scroll: macro
- db tradeanim_frontpic_scroll_command ; 1d
-endm
-
- enum tradeanim_textbox_scroll_command
-tradeanim_textbox_scroll: macro
- db tradeanim_textbox_scroll_command ; 1e
-endm
-
- enum tradeanim_scroll_out_right_command
-tradeanim_scroll_out_right: macro
- db tradeanim_scroll_out_right_command ; 1f
-endm
-
-__enum__ set $21
-
- enum tradeanim_wait_80_command
-tradeanim_wait_80: macro
- db tradeanim_wait_80_command ; 21
-endm
-
- enum tradeanim_wait_40_command
-tradeanim_wait_40: macro
- db tradeanim_wait_40_command ; 22
-endm
-
- enum tradeanim_rocking_ball_command
-tradeanim_rocking_ball: macro
- db tradeanim_rocking_ball_command ; 23
-endm
-
- enum tradeanim_drop_ball_command
-tradeanim_drop_ball: macro
- db tradeanim_drop_ball_command ; 24
-endm
-
- enum tradeanim_wait_anim_command
-tradeanim_wait_anim: macro
- db tradeanim_wait_anim_command ; 25
-endm
-
-__enum__ set $27
-
- enum tradeanim_poof_command
-tradeanim_poof: macro
- db tradeanim_poof_command ; 27
-endm
-
- enum tradeanim_bulge_through_tube_command
-tradeanim_bulge_through_tube: macro
- db tradeanim_bulge_through_tube_command ; 28
-endm
-
- enum tradeanim_give_trademon_sfx_command
-tradeanim_give_trademon_sfx: macro
- db tradeanim_give_trademon_sfx_command ; 29
-endm
-
- enum tradeanim_get_trademon_sfx_command
-tradeanim_get_trademon_sfx: macro
- db tradeanim_get_trademon_sfx_command ; 2a
-endm
-
- enum tradeanim_end_command
-tradeanim_end: macro
- db tradeanim_end_command ; 2b
-endm
-
- enum tradeanim_animate_frontpic_command
-tradeanim_animate_frontpic: macro
- db tradeanim_animate_frontpic_command ; 2c
-endm
-
- enum tradeanim_wait_96_command
-tradeanim_wait_96: macro
- db tradeanim_wait_96_command ; 2d
-endm
-
- enum tradeanim_wait_80_if_ot_egg_command
-tradeanim_wait_80_if_ot_egg: macro
- db tradeanim_wait_80_if_ot_egg_command ; 2e
-endm
-
- enum tradeanim_wait_180_if_ot_egg_command
-tradeanim_wait_180_if_ot_egg: macro
- db tradeanim_wait_180_if_ot_egg_command ; 2f
-endm
-
-
-; Mobile
- enum_start 1
-
- enum mobiletradeanim_showgivemon_command
-mobiletradeanim_showgivemon: macro
- db mobiletradeanim_showgivemon_command ; 01
-endm
-
- enum mobiletradeanim_02_command
-mobiletradeanim_02: macro
- db mobiletradeanim_02_command ; 02
-endm
-
- enum mobiletradeanim_sendmon_command
-mobiletradeanim_sendmon: macro
- db mobiletradeanim_sendmon_command ; 03
-endm
-
-__enum__ set $05
-
- enum mobiletradeanim_05_command
-mobiletradeanim_05: macro
- db mobiletradeanim_05_command ; 05
-endm
-
- enum mobiletradeanim_06_command
-mobiletradeanim_06: macro
- db mobiletradeanim_06_command ; 06
-endm
-
- enum mobiletradeanim_07_command
-mobiletradeanim_07: macro
- db mobiletradeanim_07_command ; 07
-endm
-
- enum mobiletradeanim_receivemon_command
-mobiletradeanim_receivemon: macro
- db mobiletradeanim_receivemon_command ; 08
-endm
-
-__enum__ set $0b
-
- enum mobiletradeanim_showgetmon_command
-mobiletradeanim_showgetmon: macro
- db mobiletradeanim_showgetmon_command ; 0b
-endm
-
- enum mobiletradeanim_end_command
-mobiletradeanim_end: macro
- db mobiletradeanim_end_command ; 0c
-endm
-
- enum mobiletradeanim_showgtsgivemon_command
-mobiletradeanim_showgtsgivemon: macro
- db mobiletradeanim_showgtsgivemon_command ; 0d
-endm
-
- enum mobiletradeanim_showgtsgetmon_command
-mobiletradeanim_showgtsgetmon: macro
- db mobiletradeanim_showgtsgetmon_command ; 0e
-endm
-
- enum mobiletradeanim_0f_command
-mobiletradeanim_0f: macro
- db mobiletradeanim_0f_command ; 0f
-endm
-
- enum mobiletradeanim_10_command
-mobiletradeanim_10: macro
- db mobiletradeanim_10_command ; 10
-endm
-
- enum mobiletradeanim_11_command
-mobiletradeanim_11: macro
- db mobiletradeanim_11_command ; 11
-endm
-
- enum mobiletradeanim_12_command
-mobiletradeanim_12: macro
- db mobiletradeanim_12_command ; 12
-endm
-
- enum mobiletradeanim_showoddegg_command
-mobiletradeanim_showoddegg: macro
- db mobiletradeanim_showoddegg_command ; 13
-endm
--- a/macros/trainer.asm
+++ /dev/null
@@ -1,11 +1,0 @@
-trainerclass: MACRO
- enum \1
-const_value = 1
-ENDM
-
-trainer: MACRO
- ; flag, group, id, seen text, win text, lost text, talk-again text
- dw \1
- db \2, \3
- dw \4, \5, \6, \7
-ENDM
--- a/macros/wram.asm
+++ b/macros/wram.asm
@@ -1,3 +1,4 @@
+; Used in wram.asm
flag_array: MACRO
ds ((\1) + 7) / 8
@@ -15,7 +16,7 @@
\1DefExp:: dw
\1SpdExp:: dw
\1SpcExp:: dw
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
\1Happiness:: db
\1PokerusStatus:: db
@@ -60,7 +61,7 @@
\1DefenseExp:: dw
\1SpeedExp:: dw
\1SpecialExp:: dw
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
ENDM
@@ -81,7 +82,7 @@
\1Item:: db
\1Moves:: ds NUM_MOVES
\1MovesEnd::
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
\1Happiness:: db
\1Level:: db
@@ -103,7 +104,7 @@
box: MACRO
\1::
-\1Count:: ds 1
+\1Count:: db
\1Species:: ds MONS_PER_BOX + 1
\1Mons::
\1Mon1:: box_struct \1Mon1
@@ -115,6 +116,18 @@
ENDM
+map_connection_struct: MACRO
+\1ConnectedMapGroup:: db
+\1ConnectedMapNumber:: db
+\1ConnectionStripPointer:: dw
+\1ConnectionStripLocation:: dw
+\1ConnectionStripLength:: db
+\1ConnectedMapWidth:: db
+\1ConnectionStripYOffset:: db
+\1ConnectionStripXOffset:: db
+\1ConnectionWindow:: dw
+ENDM
+
channel_struct: MACRO
; Addreses are Channel1 (c101).
\1MusicID:: dw
@@ -134,7 +147,7 @@
\1FrequencyHi:: db
\1Pitch:: db ; 0:rest 1-c:note
\1Octave:: db ; 7-0 (0 is highest)
-\1PitchOffset:: db ; raises existing octaves (to repeat phrases)
+\1PitchOffset:: db ; raises existing octaves (to repeat phrases)
\1NoteDuration:: db ; frames remaining for the current note
\1Field0x16:: ds 1 ; c117
ds 1 ; c118
@@ -141,7 +154,7 @@
\1LoopCount:: db
\1Tempo:: dw
\1Tracks:: db ; hi:left lo:right
-\1SFXDutyLoop:: ds 1 ; c11d
+\1SFXDutyLoop:: db ; c11d
\1VibratoDelayCount:: db ; initialized by \1VibratoDelay
\1VibratoDelay:: db ; number of frames a note plays until vibrato starts
\1VibratoExtent:: db
@@ -149,7 +162,7 @@
\1PitchWheelTarget:: dw ; frequency endpoint for pitch wheel
\1PitchWheelAmount:: db ; c124
\1PitchWheelAmountFraction:: db ; c125
-\1Field0x25:: ds 1 ; c126
+\1Field0x25:: db ; c126
ds 1 ; c127
\1CryPitch:: dw
\1Field0x29:: ds 1
@@ -179,43 +192,42 @@
endm
mailmsg: MACRO
-\1Message:: ds MAIL_MSG_LENGTH
+\1Message:: ds MAIL_MSG_LENGTH
\1MessageEnd:: ds 1
-\1Author:: ds PLAYER_NAME_LENGTH
+\1Author:: ds PLAYER_NAME_LENGTH
\1AuthorNationality:: ds 2
-\1AuthorID:: ds 2
-\1Species:: ds 1
-\1Type:: ds 1
+\1AuthorID:: dw
+\1Species:: db
+\1Type:: db
\1End::
endm
-hof_mon: MACRO
-\1Species:: ds 1
-\1ID:: ds 2
-\1DVs:: ds 2
-\1Level:: ds 1
-\1Nickname:: ds PKMN_NAME_LENGTH +- 1
-\1End::
-endm
-
roam_struct: MACRO
\1Species:: db
\1Level:: db
\1MapGroup:: db
\1MapNumber:: db
-\1HP:: ds 1
-\1DVs:: ds 2
+\1HP:: db
+\1DVs:: dw
ENDM
bugcontestwinner: macro
-\1PersonID:: ds 1
-\1Mon:: ds 1
-\1Score:: ds 2
+\1PersonID:: db
+\1Mon:: db
+\1Score:: dw
endm
+hof_mon: MACRO
+\1Species:: db
+\1ID:: dw
+\1DVs:: dw
+\1Level:: db
+\1Nickname:: ds PKMN_NAME_LENGTH +- 1
+\1End::
+endm
+
hall_of_fame: MACRO
-\1::
-\1WinCount:: ds 1
+\1WinCount:: db
\1Mon1:: hof_mon \1Mon1
\1Mon2:: hof_mon \1Mon2
\1Mon3:: hof_mon \1Mon3
@@ -225,26 +237,34 @@
\1End:: ds 1
ENDM
+link_battle_record: MACRO
+\1Name:: ds NAME_LENGTH +- 1
+\1ID:: dw
+\1Wins:: dw
+\1Losses:: dw
+\1Draws:: dw
+ENDM
+
trademon: MACRO
-\1Species:: ds 1 ; wc6d0 | wc702
+\1Species:: db ; wc6d0 | wc702
\1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wc703
-\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e
-\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719
-\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724
-\1DVs:: ds 2 ; wc6fd | wc72f
-\1ID:: ds 2 ; wc6ff | wc731
-\1CaughtData:: ds 1 ; wc701 | wc733
+\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e
+\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719
+\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724
+\1DVs:: dw ; wc6fd | wc72f
+\1ID:: dw ; wc6ff | wc731
+\1CaughtData:: db ; wc701 | wc733
\1End::
ENDM
move_struct: MACRO
-\1Animation:: ds 1
-\1Effect:: ds 1
-\1Power:: ds 1
-\1Type:: ds 1
-\1Accuracy:: ds 1
-\1PP:: ds 1
-\1EffectChance:: ds 1
+\1Animation:: db
+\1Effect:: db
+\1Power:: db
+\1Type:: db
+\1Accuracy:: db
+\1PP:: db
+\1EffectChance:: db
endm
slot_reel: MACRO
@@ -266,38 +286,38 @@
object_struct: MACRO
\1Struct::
-\1Sprite:: ds 1
-\1MapObjectIndex:: ds 1
-\1SpriteTile:: ds 1
-\1MovementType:: ds 1
-\1Flags:: ds 2
-\1Palette:: ds 1
-\1Walking:: ds 1
-\1Direction:: ds 1
-\1StepType:: ds 1
-\1StepDuration:: ds 1
-\1Action:: ds 1
-\1ObjectStepFrame:: ds 1
-\1Facing:: ds 1
-\1StandingTile:: ds 1 ; collision
-\1LastTile:: ds 1 ; collision
-\1StandingMapX:: ds 1
-\1StandingMapY:: ds 1
-\1LastMapX:: ds 1
-\1LastMapY:: ds 1
-\1ObjectInitX:: ds 1
-\1ObjectInitY:: ds 1
-\1Radius:: ds 1
-\1SpriteX:: ds 1
-\1SpriteY:: ds 1
-\1SpriteXOffset:: ds 1
-\1SpriteYOffset:: ds 1
-\1MovementByteIndex:: ds 1
-\1Object28:: ds 1
-\1Object29:: ds 1
-\1Object30:: ds 1
-\1Object31:: ds 1
-\1Range:: ds 1
+\1Sprite:: db
+\1MapObjectIndex:: db
+\1SpriteTile:: db
+\1MovementType:: db
+\1Flags:: dw
+\1Palette:: db
+\1Walking:: db
+\1Direction:: db
+\1StepType:: db
+\1StepDuration:: db
+\1Action:: db
+\1ObjectStepFrame:: db
+\1Facing:: db
+\1StandingTile:: db ; collision
+\1LastTile:: db ; collision
+\1StandingMapX:: db
+\1StandingMapY:: db
+\1LastMapX:: db
+\1LastMapY:: db
+\1ObjectInitX:: db
+\1ObjectInitY:: db
+\1Radius:: db
+\1SpriteX:: db
+\1SpriteY:: db
+\1SpriteXOffset:: db
+\1SpriteYOffset:: db
+\1MovementByteIndex:: db
+\1Object28:: ds 1
+\1Object29:: ds 1
+\1Object30:: ds 1
+\1Object31:: ds 1
+\1Range:: db
ds 7
\1StructEnd::
ENDM
@@ -304,71 +324,71 @@
map_object: MACRO
\1Object::
-\1ObjectStructID:: ds 1
-\1ObjectSprite:: ds 1
-\1ObjectYCoord:: ds 1
-\1ObjectXCoord:: ds 1
-\1ObjectMovement:: ds 1
-\1ObjectRadius:: ds 1
-\1ObjectHour:: ds 1
-\1ObjectTimeOfDay:: ds 1
-\1ObjectColor:: ds 1
-\1ObjectRange:: ds 1
-\1ObjectScript:: ds 2
-\1ObjectEventFlag:: ds 2
+\1ObjectStructID:: db
+\1ObjectSprite:: db
+\1ObjectYCoord:: db
+\1ObjectXCoord:: db
+\1ObjectMovement:: db
+\1ObjectRadius:: db
+\1ObjectHour:: db
+\1ObjectTimeOfDay:: db
+\1ObjectColor:: db
+\1ObjectRange:: db
+\1ObjectScript:: dw
+\1ObjectEventFlag:: dw
ds 2
endm
sprite_anim_struct: MACRO
-\1Index:: ds 1 ; 0
-\1FramesetID:: ds 1 ; 1
-\1AnimSeqID:: ds 1 ; 2
-\1TileID:: ds 1 ; 3
-\1XCoord:: ds 1 ; 4
-\1YCoord:: ds 1 ; 5
-\1XOffset:: ds 1 ; 6
-\1YOffset:: ds 1 ; 7
-\1Duration:: ds 1 ; 8
-\1DurationOffset:: ds 1 ; 9
-\1FrameIndex:: ds 1 ; a
-\1Sprite0b:: ds 1
-\1Sprite0c:: ds 1
-\1Sprite0d:: ds 1
-\1Sprite0e:: ds 1
-\1Sprite0f:: ds 1
+\1Index:: db
+\1FramesetID:: db
+\1AnimSeqID:: db
+\1TileID:: db
+\1XCoord:: db
+\1YCoord:: db
+\1XOffset:: db
+\1YOffset:: db
+\1Duration:: db
+\1DurationOffset:: db
+\1FrameIndex:: db
+\1Sprite0b:: ds 1
+\1Sprite0c:: ds 1
+\1Sprite0d:: ds 1
+\1Sprite0e:: ds 1
+\1Sprite0f:: ds 1
ENDM
battle_anim_struct: MACRO
; Placeholder until we can figure out what it all means
-\1_Index:: ds 1
-\1_Anim01:: ds 1
-\1_Anim02:: ds 1
-\1_FramesetIndex:: ds 1
-\1_FunctionIndex:: ds 1
-\1_Anim05:: ds 1
-\1_TileID:: ds 1
-\1_XCoord:: ds 1
-\1_YCoord:: ds 1
-\1_XOffset:: ds 1
-\1_YOffset:: ds 1
-\1_Anim0b:: ds 1
-\1_Anim0c:: ds 1
-\1_Anim0d:: ds 1
-\1_AnonJumptableIndex:: ds 1
-\1_Anim0f:: ds 1
-\1_Anim10:: ds 1
-\1_Anim11:: ds 1
-\1_Anim12:: ds 1
-\1_Anim13:: ds 1
-\1_Anim14:: ds 1
-\1_Anim15:: ds 1
-\1_Anim16:: ds 1
-\1_Anim17:: ds 1
+\1_Index:: db
+\1_Anim01:: ds 1
+\1_Anim02:: ds 1
+\1_FramesetIndex:: db
+\1_FunctionIndex:: db
+\1_Anim05:: ds 1
+\1_TileID:: db
+\1_XCoord:: db
+\1_YCoord:: db
+\1_XOffset:: db
+\1_YOffset:: db
+\1_Anim0b:: ds 1
+\1_Anim0c:: ds 1
+\1_Anim0d:: ds 1
+\1_AnonJumptableIndex:: db
+\1_Anim0f:: ds 1
+\1_Anim10:: ds 1
+\1_Anim11:: ds 1
+\1_Anim12:: ds 1
+\1_Anim13:: ds 1
+\1_Anim14:: ds 1
+\1_Anim15:: ds 1
+\1_Anim16:: ds 1
+\1_Anim17:: ds 1
endm
battle_bg_effect: MACRO
-\1_Function:: ds 1
-\1_01:: ds 1
-\1_02:: ds 1
-\1_03:: ds 1
+\1_Function:: db
+\1_01:: ds 1
+\1_02:: ds 1
+\1_03:: ds 1
endm
--- a/main.asm
+++ b/main.asm
@@ -51,201 +51,17 @@
PushOAMEnd
INCLUDE "engine/map_objects.asm"
-
INCLUDE "engine/intro_menu.asm"
-
-ReanchorBGMap_NoOAMUpdate:: ; 6454
- call DelayFrame
- ld a, [hOAMUpdate]
- push af
-
- ld a, $1
- ld [hOAMUpdate], a
- ld a, [hBGMapMode]
- push af
- xor a
- ld [hBGMapMode], a
-
- call .ReanchorBGMap
-
- pop af
- ld [hBGMapMode], a
- pop af
- ld [hOAMUpdate], a
- ld hl, VramState
- set 6, [hl]
- ret
-
-.ReanchorBGMap:
- xor a
- ld [hLCDCPointer], a
- ld [hBGMapMode], a
- ld a, $90
- ld [hWY], a
- call OverworldTextModeSwitch
- ld a, VBGMap1 / $100
- call .LoadBGMapAddrIntoHRAM
- call _OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- callba LoadOW_BGPal7
- callba ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- xor a
- ld [hBGMapMode], a
- ld [hWY], a
- callba HDMATransfer_FillBGMap0WithBlack ; no need to farcall
- ld a, VBGMap0 / $100
- call .LoadBGMapAddrIntoHRAM
- xor a
- ld [wBGMapAnchor], a
- ld a, VBGMap0 / $100
- ld [wBGMapAnchor + 1], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- call ApplyBGMapAnchorToObjects
- ret
-
-.LoadBGMapAddrIntoHRAM: ; 64b9
- ld [hBGMapAddress + 1], a
- xor a
- ld [hBGMapAddress], a
- ret
-
-LoadFonts_NoOAMUpdate:: ; 64bf
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
-
- call .LoadGFX
-
- pop af
- ld [hOAMUpdate], a
- ret
-
-.LoadGFX:
- call LoadFontsExtra
- ld a, $90
- ld [hWY], a
- call SafeUpdateSprites
- call LoadStandardFont
- ret
-
-HDMATransfer_FillBGMap0WithBlack: ; 64db
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- ld a, "<BLACK>" ; $60
- ld hl, wDecompressScratch
- ld bc, wScratchAttrMap - wDecompressScratch
- call ByteFill
- ld a, wDecompressScratch / $100
- ld [rHDMA1], a
- ld a, wDecompressScratch % $100
- ld [rHDMA2], a
- ld a, (VBGMap0 % $8000) / $100
- ld [rHDMA3], a
- ld a, (VBGMap0 % $8000) % $100
- ld [rHDMA4], a
- ld a, $3f
- ld [hDMATransfer], a
- call DelayFrame
-
- pop af
- ld [rSVBK], a
- ret
-
+INCLUDE "engine/init_map.asm"
INCLUDE "engine/learn.asm"
-
-CheckNickErrors:: ; 669f
-; error-check monster nick before use
-; must be a peace offering to gamesharkers
-
-; input: de = nick location
-
- push bc
- push de
- ld b, PKMN_NAME_LENGTH
-
-.checkchar
-; end of nick?
- ld a, [de]
- cp "@" ; terminator
- jr z, .end
-
-; check if this char is a text command
- ld hl, .textcommands
- dec hl
-.loop
-; next entry
- inc hl
-; reached end of commands table?
- ld a, [hl]
- cp -1
- jr z, .done
-
-; is the current char between this value (inclusive)...
- ld a, [de]
- cp [hl]
- inc hl
- jr c, .loop
-; ...and this one?
- cp [hl]
- jr nc, .loop
-
-; replace it with a "?"
- ld a, "?"
- ld [de], a
- jr .loop
-
-.done
-; next char
- inc de
-; reached end of nick without finding a terminator?
- dec b
- jr nz, .checkchar
-
-; change nick to "?@"
- pop de
- push de
- ld a, "?"
- ld [de], a
- inc de
- ld a, "@"
- ld [de], a
-.end
-; if the nick has any errors at this point it's out of our hands
- pop de
- pop bc
- ret
-
-.textcommands ; 66cf
-; table defining which characters are actually text commands
-; format:
- ; ≥ <
- db "<START>", $04 + 1
- db "<PLAY_G>", $18 + 1
- db $1d, "%" + 1
- db $35, "<GREEN>" + 1
- db "<ENEMY>", "<ENEMY>" + 1
- db $49, "<TM>" + 1
- db "<ROCKET>", "┘" + 1
- db -1 ; end
-
+INCLUDE "engine/check_nick_errors.asm"
INCLUDE "engine/math.asm"
-INCLUDE "items/item_attributes.asm"
+INCLUDE "data/items/item_attributes.asm"
INCLUDE "engine/npc_movement.asm"
INCLUDE "event/happiness_egg.asm"
INCLUDE "event/special.asm"
-Predef1: ; 747a
-; not used
- ret
-
SECTION "bank2", ROMX
INCLUDE "engine/player_object.asm"
@@ -256,26 +72,7 @@
SECTION "bank3", ROMX
-CheckTime:: ; c000
- ld a, [TimeOfDay]
- ld hl, TimeOfDayTable
- ld de, 2
- call IsInArray
- inc hl
- ld c, [hl]
- ret c
-
- xor a
- ld c, a
- ret
-
-TimeOfDayTable: ; c012
- db MORN_F, MORN
- db DAY_F, DAY
- db NITE_F, NITE
- db NITE_F, NITE
- db -1
-
+INCLUDE "engine/check_time.asm"
INCLUDE "engine/specials.asm"
INCLUDE "engine/printnum.asm"
INCLUDE "engine/health.asm"
@@ -285,103 +82,12 @@
INCLUDE "engine/anim_hp_bar.asm"
INCLUDE "engine/move_mon.asm"
INCLUDE "engine/billspctop.asm"
+INCLUDE "engine/get_breedmon_growth.asm"
+INCLUDE "event/bug_contest/caught_mon.asm"
+INCLUDE "engine/item_effects.asm"
+INCLUDE "engine/knows_move.asm"
-GetBreedMon1LevelGrowth: ; e698
- ld hl, wBreedMon1Stats
- ld de, TempMon
- ld bc, BOXMON_STRUCT_LENGTH
- call CopyBytes
- callab CalcLevel
- ld a, [wBreedMon1Level]
- ld b, a
- ld a, d
- ld e, a
- sub b
- ld d, a
- ret
-GetBreedMon2LevelGrowth: ; e6b3
- ld hl, wBreedMon2Stats
- ld de, TempMon
- ld bc, BOXMON_STRUCT_LENGTH
- call CopyBytes
- callab CalcLevel
- ld a, [wBreedMon2Level]
- ld b, a
- ld a, d
- ld e, a
- sub b
- ld d, a
- ret
-
-BugContest_SetCaughtContestMon: ; e6ce
- ld a, [wContestMon]
- and a
- jr z, .firstcatch
- ld [wd265], a
- callba DisplayAlreadyCaughtText
- callba DisplayCaughtContestMonStats
- lb bc, 14, 7
- call PlaceYesNoBox
- ret c
-
-.firstcatch
- call .generatestats
- ld a, [TempEnemyMonSpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, .caughttext
- call PrintText
- ret
-
-.generatestats ; e6fd
- ld a, [TempEnemyMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- call GetBaseData
- xor a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, wContestMon
- call ByteFill
- xor a
- ld [MonType], a
- ld hl, wContestMon
- jp GeneratePartyMonStats
-
-.caughttext ; 0xe71d
- ; Caught @ !
- text_jump UnknownText_0x1c10c0
- db "@"
-
-INCLUDE "items/item_effects.asm"
-
-KnowsMove: ; f9ea
- ld a, MON_MOVES
- call GetPartyParamLocation
- ld a, [wPutativeTMHMMove]
- ld b, a
- ld c, NUM_MOVES
-.loop
- ld a, [hli]
- cp b
- jr z, .knows_move
- dec c
- jr nz, .loop
- and a
- ret
-
-.knows_move
- ld hl, .Text_knows
- call PrintText
- scf
- ret
-
-.Text_knows: ; 0xfa06
- ; knows @ .
- text_jump UnknownText_0x1c5ea8
- db "@"
-
-
SECTION "bank4", ROMX
INCLUDE "engine/pack.asm"
@@ -388,215 +94,24 @@
INCLUDE "engine/time.asm"
INCLUDE "engine/tmhm.asm"
INCLUDE "engine/namingscreen.asm"
-
-Script_AbortBugContest: ; 0x122c1
- checkflag ENGINE_BUG_CONTEST_TIMER
- iffalse .finish
- setflag ENGINE_DAILY_BUG_CONTEST
- special ContestReturnMons
-.finish
- end
-
-INCLUDE "event/itemball.asm"
-INCLUDE "engine/healmachineanim.asm"
+INCLUDE "event/misc_scripts.asm"
+INCLUDE "event/heal_machine_anim.asm"
INCLUDE "event/whiteout.asm"
INCLUDE "event/forced_movement.asm"
INCLUDE "event/itemfinder.asm"
-INCLUDE "engine/startmenu.asm"
-INCLUDE "engine/selectmenu.asm"
+INCLUDE "engine/start_menu.asm"
+INCLUDE "engine/select_menu.asm"
INCLUDE "event/elevator.asm"
+INCLUDE "event/bug_contest/contest.asm"
+INCLUDE "event/misc_scripts_2.asm"
+INCLUDE "event/std_collision.asm"
+INCLUDE "event/bug_contest/judging.asm"
+INCLUDE "engine/pokerus_tick.asm"
+INCLUDE "event/bug_contest/contest_2.asm"
+INCLUDE "engine/unused_correct_party.asm"
+INCLUDE "engine/square_root.asm"
-Special_GiveParkBalls: ; 135db
- xor a
- ld [wContestMon], a
- ld a, 20
- ld [wParkBallsRemaining], a
- callba StartBugContestTimer
- ret
-BugCatchingContestBattleScript:: ; 0x135eb
- writecode VAR_BATTLETYPE, BATTLETYPE_CONTEST
- randomwildmon
- startbattle
- reloadmapafterbattle
- copybytetovar wParkBallsRemaining
- iffalse BugCatchingContestOutOfBallsScript
- end
-
-BugCatchingContestOverScript:: ; 0x135f8
- playsound SFX_ELEVATOR_END
- opentext
- writetext BugCatchingContestText_BeeepTimesUp
- waitbutton
- jump BugCatchingContestReturnToGateScript
-
-BugCatchingContestOutOfBallsScript: ; 0x13603
- playsound SFX_ELEVATOR_END
- opentext
- writetext BugCatchingContestText_ContestIsOver
- waitbutton
-
-BugCatchingContestReturnToGateScript: ; 0x1360b
- closetext
- jumpstd bugcontestresultswarp
-
-BugCatchingContestText_BeeepTimesUp: ; 0x1360f
- ; ANNOUNCER: BEEEP! Time's up!
- text_jump UnknownText_0x1bd2ca
- db "@"
-
-BugCatchingContestText_ContestIsOver: ; 0x13614
- ; ANNOUNCER: The Contest is over!
- text_jump UnknownText_0x1bd2e7
- db "@"
-
-RepelWoreOffScript:: ; 0x13619
- opentext
- writetext .text
- waitbutton
- closetext
- end
-
-.text ; 0x13620
- ; REPEL's effect wore off.
- text_jump UnknownText_0x1bd308
- db "@"
-
-HiddenItemScript:: ; 0x13625
- opentext
- copybytetovar EngineBuffer3
- itemtotext 0, 0
- writetext .found_text
- giveitem ITEM_FROM_MEM
- iffalse .bag_full
- callasm SetMemEvent
- specialsound
- itemnotify
- jump .finish
-
-.bag_full ; 0x1363e
- buttonsound
- writetext .no_room_text
- waitbutton
-
-.finish ; 13643
- closetext
- end
-
-.found_text ; 0x13645
- ; found @ !
- text_jump UnknownText_0x1bd321
- db "@"
-
-.no_room_text ; 0x1364a
- ; But has no space left…
- text_jump UnknownText_0x1bd331
- db "@"
-
-SetMemEvent: ; 1364f
- ld hl, EngineBuffer1
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ld b, SET_FLAG
- call EventFlagAction
- ret
-
-CheckFacingTileForStd:: ; 1365b
-; Checks to see if the tile you're facing has a std script associated with it. If so, executes the script and returns carry.
- ld a, c
- ld de, 3
- ld hl, TileCollisionStdScripts
- call IsInArray
- jr nc, .notintable
-
- ld a, jumpstd_command
- ld [wJumpStdScriptBuffer], a
- inc hl
- ld a, [hli]
- ld [wJumpStdScriptBuffer + 1], a
- ld a, [hli]
- ld [wJumpStdScriptBuffer + 2], a
- ld a, BANK(Script_JumpStdFromRAM)
- ld hl, Script_JumpStdFromRAM
- call CallScript
- scf
- ret
-
-.notintable
- xor a
- ret
-
-INCLUDE "data/collision_stdscripts.asm"
-
-Script_JumpStdFromRAM: ; 0x1369a
- jump wJumpStdScriptBuffer
-
-INCLUDE "event/bug_contest_judging.asm"
-
-ApplyPokerusTick: ; 13988
-; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured.
- ld hl, PartyMon1PokerusStatus ; PartyMon1 + MON_PKRS
- ld a, [PartyCount]
- and a
- ret z ; make sure it's not wasting time on an empty party
- ld c, a
-.loop
- ld a, [hl]
- and $f ; lower nybble is the number of days remaining
- jr z, .next ; if already 0, skip
- sub b ; subtract the number of days
- jr nc, .ok ; max(result, 0)
- xor a
-.ok
- ld d, a ; back up this value because we need to preserve the strain (upper nybble)
- ld a, [hl]
- and $f0
- add d
- ld [hl], a ; this prevents a cured pokemon from recontracting pokerus
-.next
- ld de, PARTYMON_STRUCT_LENGTH
- add hl, de
- dec c
- jr nz, .loop
- ret
-
-INCLUDE "event/bug_contest_2.asm"
-
-INCLUDE "unknown/013a47.asm"
-
-GetSquareRoot: ; 13b87
-; Return the square root of de in b.
-
-; Rather than calculating the result, we take the index of the
-; first value in a table of squares that isn't lower than de.
-
- ld hl, Squares
- ld b, 0
-.loop
-; Make sure we don't go past the end of the table.
- inc b
- ld a, b
- cp $ff
- ret z
-
-; Iterate over the table until b**2 >= de.
- ld a, [hli]
- sub e
- ld a, [hli]
- sbc d
-
- jr c, .loop
- ret
-
-Squares: ; 13b98
-root set 1
- rept $ff
- dw root*root
-root set root+1
- endr
-
-
SECTION "bank5", ROMX
INCLUDE "engine/rtc.asm"
@@ -608,13 +123,12 @@
INCLUDE "engine/pokecenter_pc.asm"
INCLUDE "engine/mart.asm"
INCLUDE "engine/money.asm"
-INCLUDE "items/marts.asm"
+INCLUDE "data/items/marts.asm"
INCLUDE "event/mom.asm"
INCLUDE "event/daycare.asm"
-INCLUDE "event/photo.asm"
-INCLUDE "engine/breeding/egg.asm"
-
-
+INCLUDE "event/print_unown.asm"
+INCLUDE "event/print_photo.asm"
+INCLUDE "engine/breeding.asm"
INCLUDE "tilesets/data.asm"
@@ -625,15 +139,7 @@
SECTION "bank9", ROMX
-StringBufferPointers:: ; 24000
- dw StringBuffer3
- dw StringBuffer4
- dw StringBuffer5
- dw StringBuffer2
- dw StringBuffer1
- dw EnemyMonNick
- dw BattleMonNick
-
+INCLUDE "data/text_buffers.asm"
INCLUDE "engine/menu.asm"
UpdateItemDescription: ; 0x244c3
@@ -651,345 +157,10 @@
ret
INCLUDE "engine/pokepic.asm"
-
-LoadObjectMasks: ; 2454f
- ld hl, wObjectMasks
- xor a
- ld bc, NUM_OBJECTS
- call ByteFill
- nop
- ld bc, MapObjects
- ld de, wObjectMasks
- xor a
-.loop
- push af
- push bc
- push de
- call GetObjectTimeMask
- jr c, .next
- call CheckObjectFlag
-.next
- pop de
- ld [de], a
- inc de
- pop bc
- ld hl, OBJECT_LENGTH
- add hl, bc
- ld b, h
- ld c, l
- pop af
- inc a
- cp NUM_OBJECTS
- jr nz, .loop
- ret
-
-CheckObjectFlag: ; 2457d (9:457d)
- ld hl, MAPOBJECT_SPRITE
- add hl, bc
- ld a, [hl]
- and a
- jr z, .masked
- ld hl, MAPOBJECT_EVENT_FLAG
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- cp -1
- jr nz, .check
- ld a, e
- cp -1
- jr z, .unmasked
- jr .masked
-.check
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- and a
- jr nz, .masked
-.unmasked
- xor a
- ret
-
-.masked
- ld a, -1
- scf
- ret
-
-GetObjectTimeMask: ; 245a7 (9:45a7)
- call CheckObjectTime
- ld a, -1
- ret c
- xor a
- ret
-
+INCLUDE "engine/map_objects_2.asm"
INCLUDE "engine/scrolling_menu.asm"
INCLUDE "engine/switch_items.asm"
-
-PlaceMenuItemName: ; 0x24ab4
- push de
- ld a, [MenuSelection]
- ld [wNamedObjectIndexBuffer], a
- call GetItemName
- pop hl
- call PlaceString
- ret
-
-PlaceMenuItemQuantity: ; 0x24ac3
- push de
- ld a, [MenuSelection]
- ld [CurItem], a
- callba _CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- pop hl
- and a
- jr nz, .done
- ld de, $15
- add hl, de
- ld [hl], "×"
- inc hl
- ld de, MenuSelectionQuantity
- lb bc, 1, 2
- call PrintNum
-
-.done
- ret
-
-PlaceMoneyTopRight: ; 24ae8
- ld hl, MenuDataHeader_0x24b15
- call CopyMenuDataHeader
- jr PlaceMoneyDataHeader
-
-PlaceMoneyBottomLeft: ; 24af0
- ld hl, MenuDataHeader_0x24b1d
- call CopyMenuDataHeader
- jr PlaceMoneyDataHeader
-
-PlaceMoneyAtTopLeftOfTextbox: ; 24af8
- ld hl, MenuDataHeader_0x24b15
- lb de, 0, 11
- call OffsetMenuDataHeader
-
-PlaceMoneyDataHeader: ; 24b01
- call MenuBox
- call MenuBoxCoord2Tile
- ld de, SCREEN_WIDTH + 1
- add hl, de
- ld de, Money
- lb bc, PRINTNUM_MONEY | 3, 6
- call PrintNum
- ret
-
-MenuDataHeader_0x24b15: ; 0x24b15
- db $40 ; flags
- db 00, 11 ; start coords
- db 02, 19 ; end coords
- dw NULL
- db 1 ; default option
-
-MenuDataHeader_0x24b1d: ; 0x24b1d
- db $40 ; flags
- db 11, 00 ; start coords
- db 13, 08 ; end coords
- dw NULL
- db 1 ; default option
-
-Special_DisplayCoinCaseBalance: ; 24b25
- ; Place a text box of size 1x7 at 11, 0.
- hlcoord 11, 0
- ld b, 1
- ld c, 7
- call TextBox
- hlcoord 12, 0
- ld de, CoinString
- call PlaceString
- hlcoord 17, 1
- ld de, ShowMoney_TerminatorString
- call PlaceString
- ld de, Coins
- lb bc, 2, 4
- hlcoord 13, 1
- call PrintNum
- ret
-
-Special_DisplayMoneyAndCoinBalance: ; 24b4e
- hlcoord 5, 0
- ld b, 3
- ld c, 13
- call TextBox
- hlcoord 6, 1
- ld de, MoneyString
- call PlaceString
- hlcoord 12, 1
- ld de, Money
- lb bc, PRINTNUM_MONEY | 3, 6
- call PrintNum
- hlcoord 6, 3
- ld de, CoinString
- call PlaceString
- hlcoord 15, 3
- ld de, Coins
- lb bc, 2, 4
- call PrintNum
- ret
-
-MoneyString: ; 24b83
- db "MONEY@"
-CoinString: ; 24b89
- db "COIN@"
-ShowMoney_TerminatorString: ; 24b8e
- db "@"
-
-Function24b8f: ; 24b8f
-; unreferenced, related to safari?
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- hlcoord 0, 0
- ld b, 3
- ld c, 7
- call TextBox
- hlcoord 1, 1
- ld de, wSafariTimeRemaining
- lb bc, 2, 3
- call PrintNum
- hlcoord 4, 1
- ld de, .slash_500
- call PlaceString
- hlcoord 1, 3
- ld de, .booru_ko
- call PlaceString
- hlcoord 5, 3
- ld de, wSafariBallsRemaining
- lb bc, 1, 2
- call PrintNum
- pop af
- ld [Options], a
- ret
-
-.slash_500 ; 24bcf
- db "/500@"
-.booru_ko ; 24bd4
- db "ボール こ@"
-
-StartMenu_DrawBugContestStatusBox: ; 24bdc
- hlcoord 0, 0
- ld b, 5
- ld c, 17
- call TextBox
- ret
-
-StartMenu_PrintBugContestStatus: ; 24be7
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call StartMenu_DrawBugContestStatusBox
- hlcoord 1, 5
- ld de, .Balls_EN
- call PlaceString
- hlcoord 8, 5
- ld de, wParkBallsRemaining
- lb bc, PRINTNUM_RIGHTALIGN | 1, 2
- call PrintNum
- hlcoord 1, 1
- ld de, .CAUGHT
- call PlaceString
- ld a, [wContestMon]
- and a
- ld de, .None
- jr z, .no_contest_mon
- ld [wd265], a
- call GetPokemonName
-
-.no_contest_mon
- hlcoord 8, 1
- call PlaceString
- ld a, [wContestMon]
- and a
- jr z, .skip_level
- hlcoord 1, 3
- ld de, .LEVEL
- call PlaceString
- ld a, [wContestMonLevel]
- ld h, b
- ld l, c
- inc hl
- ld c, 3
- call Print8BitNumRightAlign
-
-.skip_level
- pop af
- ld [Options], a
- ret
-
-.Balls_JP: ; 24c43
- db "ボール こ@"
-.CAUGHT: ; 24c4b
- db "CAUGHT@"
-.Balls_EN: ; 24c52
- db "BALLS:@"
-.None: ; 24c59
- db "None@"
-.LEVEL: ; 24c5e
- db "LEVEL@"
-
-FindApricornsInBag: ; 24c64
-; Checks the bag for Apricorns.
- ld hl, Buffer1
- xor a
- ld [hli], a
- dec a
- ld bc, 10
- call ByteFill
-
- ld hl, .ApricornBalls
-.loop
- ld a, [hl]
- cp -1
- jr z, .done
- push hl
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- pop hl
- jr nc, .nope
- ld a, [hl]
- call .addtobuffer
-.nope
- inc hl
- inc hl
- jr .loop
-
-.done
- ld a, [Buffer1]
- and a
- ret nz
- scf
- ret
-
-.addtobuffer ; 24c94
- push hl
- ld hl, Buffer1
- inc [hl]
- ld e, [hl]
- ld d, 0
- add hl, de
- ld [hl], a
- pop hl
- ret
-
-.ApricornBalls: ; 24ca0
- db RED_APRICORN, LEVEL_BALL
- db BLU_APRICORN, LURE_BALL
- db YLW_APRICORN, MOON_BALL
- db GRN_APRICORN, FRIEND_BALL
- db WHT_APRICORN, FAST_BALL
- db BLK_APRICORN, HEAVY_BALL
- db PNK_APRICORN, LOVE_BALL
- db -1
-
+INCLUDE "engine/menu_2.asm"
INCLUDE "engine/mon_menu.asm"
INCLUDE "battle/menu.asm"
INCLUDE "engine/buy_sell_toss.asm"
@@ -997,16 +168,6 @@
INCLUDE "engine/prof_oaks_pc.asm"
INCLUDE "engine/decorations.asm"
-PadCoords_de: ; 27092
- ld a, d
- add 4
- ld d, a
- ld a, e
- add 4
- ld e, a
- call GetBlockLocation
- ret
-
LevelUpHappinessMod: ; 2709e
ld a, [CurPartyMon]
ld hl, PartyMon1CaughtLocation
@@ -1028,7 +189,7 @@
callab ChangeHappiness
ret
-INCLUDE "trainers/dvs.asm"
+INCLUDE "data/trainers/trainer_dvs.asm"
_ReturnToBattle_UseBall: ; 2715c
call ClearBGPalettes
@@ -1050,91 +211,8 @@
call WaitBGMap
jp SetPalettes
-ConsumeHeldItem: ; 27192
- push hl
- push de
- push bc
- ld a, [hBattleTurn]
- and a
- ld hl, OTPartyMon1Item
- ld de, EnemyMonItem
- ld a, [CurOTMon]
- jr z, .theirturn
- ld hl, PartyMon1Item
- ld de, BattleMonItem
- ld a, [CurBattleMon]
-
-.theirturn
- push hl
- push af
- ld a, [de]
- ld b, a
- callba GetItemHeldEffect
- ld hl, .ConsumableEffects
-.loop
- ld a, [hli]
- cp b
- jr z, .ok
- inc a
- jr nz, .loop
- pop af
- pop hl
- pop bc
- pop de
- pop hl
- ret
-
-.ok
- xor a
- ld [de], a
- pop af
- pop hl
- call GetPartyLocation
- ld a, [hBattleTurn]
- and a
- jr nz, .ourturn
- ld a, [wBattleMode]
- dec a
- jr z, .done
-
-.ourturn
- ld [hl], $0
-
-.done
- pop bc
- pop de
- pop hl
- ret
-
-.ConsumableEffects: ; 271de
-; Consumable items?
- db HELD_BERRY
- db HELD_2
- db HELD_5
- db HELD_HEAL_POISON
- db HELD_HEAL_FREEZE
- db HELD_HEAL_BURN
- db HELD_HEAL_SLEEP
- db HELD_HEAL_PARALYZE
- db HELD_HEAL_STATUS
- db HELD_30
- db HELD_ATTACK_UP
- db HELD_DEFENSE_UP
- db HELD_SPEED_UP
- db HELD_SP_ATTACK_UP
- db HELD_SP_DEFENSE_UP
- db HELD_ACCURACY_UP
- db HELD_EVASION_UP
- db HELD_38
- db HELD_71
- db HELD_ESCAPE
- db HELD_CRITICAL_UP
- db -1
-
-MoveEffectsPointers: ; 271f4
+INCLUDE "engine/consume_held_item.asm"
INCLUDE "battle/moves/move_effects_pointers.asm"
-
-MoveEffects: ; 2732e
INCLUDE "battle/moves/move_effects.asm"
Kurt_SelectQuantity_InterpretJoypad: ; 27a28
@@ -1146,464 +224,25 @@
SECTION "bankA", ROMX
INCLUDE "engine/link.asm"
-
-Function29fe4: ; unreferenced
- ld a, $0
- call GetSRAMBank
- ld d, $0
- ld b, CHECK_FLAG
- predef FlagPredef
- call CloseSRAM
- ld a, c
- and a
- ret
-
INCLUDE "engine/wildmons.asm"
INCLUDE "battle/link_result.asm"
+INCLUDE "engine/player_gfx_2.asm"
-ChrisBackpic: ; 2ba1a
-INCBIN "gfx/player/chris_back.2bpp.lz"
-DudeBackpic: ; 2bbaa
-INCBIN "gfx/battle/dude.2bpp.lz"
-
-
SECTION "bankB", ROMX
INCLUDE "battle/trainer_huds.asm"
-
-TrainerClassNames:: ; 2c1ef
-INCLUDE "text/trainer_class_names.asm"
-
+INCLUDE "data/trainers/trainer_class_names.asm"
INCLUDE "battle/ai/redundant.asm"
-
INCLUDE "event/move_deleter.asm"
-
-INCLUDE "engine/mysterygift2.asm"
-
+INCLUDE "engine/mystery_gift_2.asm"
INCLUDE "engine/tmhm2.asm"
-
-MoveDescriptions:: ; 2cb52
INCLUDE "battle/moves/move_descriptions.asm"
+INCLUDE "engine/pokerus.asm"
+INCLUDE "engine/start_battle.asm"
+INCLUDE "engine/place_graphics.asm"
-GivePokerusAndConvertBerries: ; 2ed44
- call ConvertBerriesToBerryJuice
- ld hl, PartyMon1PokerusStatus
- ld a, [PartyCount]
- ld b, a
- ld de, PARTYMON_STRUCT_LENGTH
-; Check to see if any of your Pokemon already has Pokerus.
-; If so, sample its spread through your party.
-; This means that you cannot get Pokerus de novo while
-; a party member has an active infection.
-.loopMons
- ld a, [hl]
- and $f
- jr nz, .TrySpreadPokerus
- add hl, de
- dec b
- jr nz, .loopMons
-; If we haven't been to Goldenrod City at least once,
-; prevent the contraction of Pokerus.
- ld hl, StatusFlags2
- bit 6, [hl]
- ret z
- call Random
- ld a, [hRandomAdd]
- and a
- ret nz
- ld a, [hRandomSub]
- cp $3
- ret nc ; 3/65536 chance (00 00, 00 01 or 00 02)
- ld a, [PartyCount]
- ld b, a
-.randomMonSelectLoop
- call Random
- and $7
- cp b
- jr nc, .randomMonSelectLoop
- ld hl, PartyMon1PokerusStatus
- call GetPartyLocation ; get pokerus byte of random mon
- ld a, [hl]
- and $f0
- ret nz ; if it already has pokerus, do nothing
-.randomPokerusLoop ; Simultaneously sample the strain and duration
- call Random
- and a
- jr z, .randomPokerusLoop
- ld b, a
- and $f0
- jr z, .load_pkrs
- ld a, b
- and $7
- inc a
-.load_pkrs
- ld b, a ; this should come before the label
- swap b
- and $3
- inc a
- add b
- ld [hl], a
- ret
-
-.TrySpreadPokerus:
- call Random
- cp 1 + 33 percent
- ret nc ; 1/3 chance
-
- ld a, [PartyCount]
- cp 1
- ret z ; only one mon, nothing to do
-
- ld c, [hl]
- ld a, b
- cp 2
- jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards
-
- call Random
- cp 1 + 50 percent
- jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards
-.checkFollowingMonsLoop
- add hl, de
- ld a, [hl]
- and a
- jr z, .infectMon
- ld c, a
- and $3
- ret z ; if mon has cured pokerus, stop searching
- dec b ; go on to next mon
- ld a, b
- cp 1
- jr nz, .checkFollowingMonsLoop ; no more mons left
- ret
-
-.checkPreviousMonsLoop
- ld a, [PartyCount]
- cp b
- ret z ; no more mons
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- ld a, [hl]
- and a
- jr z, .infectMon
- ld c, a
- and $3
- ret z ; if mon has cured pokerus, stop searching
- inc b ; go on to next mon
- jr .checkPreviousMonsLoop
-
-.infectMon
- ld a, c
- and $f0
- ld b, a
- ld a, c
- swap a
- and $3
- inc a
- add b
- ld [hl], a
- ret
-
-; any berry held by a Shuckle may be converted to berry juice
-ConvertBerriesToBerryJuice: ; 2ede6
- ld hl, StatusFlags2
- bit 6, [hl]
- ret z
- call Random
- cp $10
- ret nc ; 1/16 chance
- ld hl, PartyMons
- ld a, [PartyCount]
-.partyMonLoop
- push af
- push hl
- ld a, [hl]
- cp SHUCKLE
- jr nz, .loopMon
- ld bc, MON_ITEM
- add hl, bc
- ld a, [hl]
- cp BERRY
- jr z, .convertToJuice
-
-.loopMon
- pop hl
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop af
- dec a
- jr nz, .partyMonLoop
- ret
-
-.convertToJuice
- ld a, BERRY_JUICE
- ld [hl], a
- pop hl
- pop af
- ret
-
-ShowLinkBattleParticipants: ; 2ee18
-; If we're not in a communications room,
-; we don't need to be here.
- ld a, [wLinkMode]
- and a
- ret z
-
- callba _ShowLinkBattleParticipants
- ld c, 150
- call DelayFrames
- call ClearTileMap
- call ClearSprites
- ret
-
-FindFirstAliveMonAndStartBattle: ; 2ee2f
- xor a
- ld [hMapAnims], a
- call DelayFrame
- ld b, 6
- ld hl, PartyMon1HP
- ld de, PARTYMON_STRUCT_LENGTH - 1
-
-.loop
- ld a, [hli]
- or [hl]
- jr nz, .okay
- add hl, de
- dec b
- jr nz, .loop
-
-.okay
- ld de, MON_LEVEL - MON_HP
- add hl, de
- ld a, [hl]
- ld [BattleMonLevel], a
- predef Predef_StartBattle
- callba _LoadBattleFontsHPBar
- ld a, 1
- ld [hBGMapMode], a
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld [hWY], a
- ld [rWY], a
- ld [hMapAnims], a
- ret
-
-PlayBattleMusic: ; 2ee6c
-
- push hl
- push de
- push bc
-
- xor a
- ld [MusicFade], a
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- call MaxVolume
-
- ld a, [BattleType]
- cp BATTLETYPE_SUICUNE
- ld de, MUSIC_SUICUNE_BATTLE
- jp z, .done
- cp BATTLETYPE_ROAMING
- jp z, .done
-
- ; Are we fighting a trainer?
- ld a, [OtherTrainerClass]
- and a
- jr nz, .trainermusic
-
- callba RegionCheck
- ld a, e
- and a
- jr nz, .kantowild
-
- ld de, MUSIC_JOHTO_WILD_BATTLE
- ld a, [TimeOfDay]
- cp NITE_F
- jr nz, .done
- ld de, MUSIC_JOHTO_WILD_BATTLE_NIGHT
- jr .done
-
-.kantowild
- ld de, MUSIC_KANTO_WILD_BATTLE
- jr .done
-
-.trainermusic
- ld de, MUSIC_CHAMPION_BATTLE
- cp CHAMPION
- jr z, .done
- cp RED
- jr z, .done
-
- ; really, they should have included admins and scientists here too...
- ld de, MUSIC_ROCKET_BATTLE
- cp GRUNTM
- jr z, .done
- cp GRUNTF
- jr z, .done
-
- ld de, MUSIC_KANTO_GYM_LEADER_BATTLE
- callba IsKantoGymLeader
- jr c, .done
-
- ld de, MUSIC_JOHTO_GYM_LEADER_BATTLE
- callba IsJohtoGymLeader
- jr c, .done
-
- ld de, MUSIC_RIVAL_BATTLE
- ld a, [OtherTrainerClass]
- cp RIVAL1
- jr z, .done
- cp RIVAL2
- jr nz, .othertrainer
-
- ld a, [OtherTrainerID]
- cp RIVAL2_2_CHIKORITA ; Rival in Indigo Plateau
- jr c, .done
- ld de, MUSIC_CHAMPION_BATTLE
- jr .done
-
-.othertrainer
- ld a, [wLinkMode]
- and a
- jr nz, .johtotrainer
-
- callba RegionCheck
- ld a, e
- and a
- jr nz, .kantotrainer
-
-.johtotrainer
- ld de, MUSIC_JOHTO_TRAINER_BATTLE
- jr .done
-
-.kantotrainer
- ld de, MUSIC_KANTO_TRAINER_BATTLE
-
-.done
- call PlayMusic
-
- pop bc
- pop de
- pop hl
- ret
-
-ClearBattleRAM: ; 2ef18
- xor a
- ld [wPlayerAction], a
- ld [wBattleResult], a
-
- ld hl, wPartyMenuCursor
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
- ld [wMenuScrollPosition], a
- ld [CriticalHit], a
- ld [BattleMonSpecies], a
- ld [wBattleParticipantsNotFainted], a
- ld [CurBattleMon], a
- ld [wForcedSwitch], a
- ld [TimeOfDayPal], a
- ld [PlayerTurnsTaken], a
- ld [EnemyTurnsTaken], a
- ld [EvolvableFlags], a
-
- ld hl, PlayerHPPal
- ld [hli], a
- ld [hl], a
-
- ld hl, BattleMonDVs
- ld [hli], a
- ld [hl], a
-
- ld hl, EnemyMonDVs
- ld [hli], a
- ld [hl], a
-
-; Clear the entire BattleMons area
- ld hl, wBattle
- ld bc, wBattleEnd - wBattle
- xor a
- call ByteFill
-
- callab ResetEnemyStatLevels
-
- call ClearWindowData
-
- ld hl, hBGMapAddress
- xor a
- ld [hli], a
- ld [hl], VBGMap0 / $100
- ret
-
-PlaceGraphic: ; 2ef6e
-; Fill wBoxAlignment-aligned box width b height c
-; with iterating tile starting from hGraphicStartTile at hl.
-; Predef $13
-
- ld de, SCREEN_WIDTH
-
- ld a, [wBoxAlignment]
- and a
- jr nz, .right
-
- ld a, [hGraphicStartTile]
-.x1
- push bc
- push hl
-
-.y1
- ld [hl], a
- add hl, de
- inc a
- dec c
- jr nz, .y1
-
- pop hl
- inc hl
- pop bc
- dec b
- jr nz, .x1
- ret
-
-.right
-; Right-aligned.
- push bc
- ld b, 0
- dec c
- add hl, bc
- pop bc
-
- ld a, [hGraphicStartTile]
-.x2
- push bc
- push hl
-
-.y2
- ld [hl], a
- add hl, de
- inc a
- dec c
- jr nz, .y2
-
- pop hl
- dec hl
- pop bc
- dec b
- jr nz, .x2
- ret
-
-
SECTION "Effect Commands", ROMX
INCLUDE "battle/effect_commands.asm"
@@ -1613,11 +252,11 @@
INCLUDE "battle/ai/items.asm"
INCLUDE "battle/ai/scoring.asm"
-INCLUDE "trainers/read_attributes.asm"
-INCLUDE "trainers/attributes.asm"
-INCLUDE "trainers/read_party.asm"
-INCLUDE "trainers/trainer_pointers.asm"
-INCLUDE "trainers/trainers.asm"
+INCLUDE "engine/read_trainer_attributes.asm"
+INCLUDE "data/trainers/trainer_attributes.asm"
+INCLUDE "engine/read_trainer_party.asm"
+INCLUDE "data/trainers/party_pointers.asm"
+INCLUDE "data/trainers/parties.asm"
SECTION "Battle Core", ROMX
@@ -1638,7 +277,7 @@
INCLUDE "engine/fruit_trees.asm"
INCLUDE "battle/ai/move.asm"
INCLUDE "engine/pokedex_2.asm"
-INCLUDE "data/pokedex/entry_pointers.asm"
+INCLUDE "data/pokemon/dex_entry_pointers.asm"
INCLUDE "engine/mail.asm"
@@ -1645,324 +284,31 @@
SECTION "Crystal Unique", ROMX
INCLUDE "engine/init_gender.asm"
-
-DrawKrisPackGFX: ; 48e81
- ld hl, PackFGFXPointers
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld hl, VTiles2 tile $50
- lb bc, BANK(PackFGFX), 15
- call Request2bpp
- ret
-
-PackFGFXPointers: ; 48e93
- dw PackFGFX + (15 tiles) * 1
- dw PackFGFX + (15 tiles) * 3
- dw PackFGFX + (15 tiles) * 0
- dw PackFGFX + (15 tiles) * 2
-
-PackFGFX: ; 48e9b
-INCBIN "gfx/pack/pack_f.2bpp"
-
-Special_MoveTutor: ; 4925b
- call FadeToMenu
- call ClearBGPalettes
- call ClearScreen
- call DelayFrame
- ld b, SCGB_PACKPALS
- call GetSGBLayout
- xor a
- ld [wItemAttributeParamBuffer], a
- call .GetMoveTutorMove
- ld [wd265], a
- ld [wPutativeTMHMMove], a
- call GetMoveName
- call CopyName1
- callba ChooseMonToLearnTMHM
- jr c, .cancel
- jr .enter_loop
-
-.loop
- callba ChooseMonToLearnTMHM_NoRefresh
- jr c, .cancel
-.enter_loop
- call CheckCanLearnMoveTutorMove
- jr nc, .loop
- xor a
- ld [ScriptVar], a
- jr .quit
-
-.cancel
- ld a, -1
- ld [ScriptVar], a
-.quit
- call CloseSubmenu
- ret
-
-.GetMoveTutorMove: ; 492a5
- ld a, [ScriptVar]
- cp 1
- jr z, .flamethrower
- cp 2
- jr z, .thunderbolt
- ld a, ICE_BEAM
- ret
-
-.flamethrower
- ld a, FLAMETHROWER
- ret
-
-.thunderbolt
- ld a, THUNDERBOLT
- ret
-
-CheckCanLearnMoveTutorMove: ; 492b9
- ld hl, .MenuDataHeader
- call LoadMenuDataHeader
-
- predef CanLearnTMHMMove
-
- push bc
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- pop bc
-
- ld a, c
- and a
- jr nz, .can_learn
- push de
- ld de, SFX_WRONG
- call PlaySFX
- pop de
- ld a, BANK(Text_TMHMNotCompatible)
- ld hl, Text_TMHMNotCompatible
- call FarPrintText
- jr .didnt_learn
-
-.can_learn
- callab KnowsMove
- jr c, .didnt_learn
-
- predef LearnMove
- ld a, b
- and a
- jr z, .didnt_learn
-
- ld c, HAPPINESS_LEARNMOVE
- callab ChangeHappiness
- jr .learned
-
-.didnt_learn
- call ExitMenu
- and a
- ret
-
-.learned
- call ExitMenu
- scf
- ret
-
-.MenuDataHeader: ; 0x4930a
- db $40 ; flags
- db 12, 00 ; start coords
- db 17, 19 ; end coords
-
-INCLUDE "predef/crystal.asm"
-
-Unknown_4985a: ; unreferenced
- db $ab, $03, $57, $24, $ac, $0e, $13, $32
- db $be, $30, $5b, $4c, $47, $60, $ed, $f2
- db $ab, $03, $55, $26, $aa, $0a, $13, $3a
- db $be, $28, $33, $24, $6e, $71, $df, $b0
- db $a8, $00, $e5, $e0, $9a, $fc, $f4, $2c
- db $fe, $4c, $a3, $5e, $c6, $3a, $ab, $4d
- db $a8, $00, $b5, $b0, $de, $e8, $fc, $1c
- db $ba, $66, $f7, $0e, $ba, $5e, $43, $bd
-
+INCLUDE "engine/pack_f.asm"
+INCLUDE "event/move_tutor.asm"
+INCLUDE "engine/crystal_colors.asm"
INCLUDE "event/celebi.asm"
INCLUDE "engine/main_menu.asm"
-INCLUDE "misc/mobile_menu.asm"
+INCLUDE "mobile/mobile_menu.asm"
INCLUDE "engine/search.asm"
-INCLUDE "misc/mobile_12_2.asm"
-; mobile battle selection
+INCLUDE "mobile/mobile_12_2.asm"
+INCLUDE "event/buena_menu.asm"
-AskRememberPassword: ; 4ae12
- call .DoMenu
- ld a, $0
- jr c, .okay
- ld a, $1
-.okay
- ld [ScriptVar], a
- ret
-
-.DoMenu: ; 4ae1f
- lb bc, 14, 7
- push bc
- ld hl, YesNoMenuDataHeader
- call CopyMenuDataHeader
- pop bc
- ld a, b
- ld [wMenuBorderLeftCoord], a
- add $5
- ld [wMenuBorderRightCoord], a
- ld a, c
- ld [wMenuBorderTopCoord], a
- add $4
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- call VerticalMenu
- push af
- ld c, 15
- call DelayFrames
- call Buena_ExitMenu
- pop af
- jr c, .refused
- ld a, [wMenuCursorY]
- cp $2
- jr z, .refused
- and a
- ret
-
-.refused
- ld a, $2
- ld [wMenuCursorY], a
- scf
- ret
-
-Buena_ExitMenu: ; 4ae5e
- ld a, [hOAMUpdate]
- push af
- call ExitMenu
- call UpdateSprites
- xor a
- ld [hOAMUpdate], a
- call DelayFrame
- ld a, $1
- ld [hOAMUpdate], a
- call ApplyTilemap
- pop af
- ld [hOAMUpdate], a
- ret
-
-
SECTION "bank13", ROMX
-SwapTextboxPalettes:: ; 4c000
- hlcoord 0, 0
- decoord 0, 0, AttrMap
- ld b, SCREEN_HEIGHT
-.loop
- push bc
- ld c, SCREEN_WIDTH
-.innerloop
- ld a, [hl]
- push hl
- srl a
- jr c, .UpperNybble
- ld hl, TilesetPalettes
- add [hl]
- ld l, a
- ld a, [TilesetPalettes + 1]
- adc $0
- ld h, a
- ld a, [hl]
- and $f
- jr .next
-
-.UpperNybble:
- ld hl, TilesetPalettes
- add [hl]
- ld l, a
- ld a, [TilesetPalettes + 1]
- adc $0
- ld h, a
- ld a, [hl]
- swap a
- and $f
-
-.next
- pop hl
- ld [de], a
- res 7, [hl]
- inc hl
- inc de
- dec c
- jr nz, .innerloop
- pop bc
- dec b
- jr nz, .loop
- ret
-
-ScrollBGMapPalettes:: ; 4c03f
- ld hl, BGMapBuffer
- ld de, BGMapPalBuffer
-.loop
- ld a, [hl]
- push hl
- srl a
- jr c, .UpperNybble
-
-; .LowerNybble
- ld hl, TilesetPalettes
- add [hl]
- ld l, a
- ld a, [TilesetPalettes + 1]
- adc $0
- ld h, a
- ld a, [hl]
- and $f
- jr .next
-
-.UpperNybble:
- ld hl, TilesetPalettes
- add [hl]
- ld l, a
- ld a, [TilesetPalettes + 1]
- adc $0
- ld h, a
- ld a, [hl]
- swap a
- and $f
-
-.next
- pop hl
- ld [de], a
- res 7, [hl]
- inc hl
- inc de
- dec c
- jr nz, .loop
- ret
-
+INCLUDE "engine/map_palettes.asm"
INCLUDE "tilesets/palette_maps.asm"
+Unknown_4ce05: ; unreferenced
+rept 26
+ db $06
+endr
+; 0x4ce1f
+
INCLUDE "data/collision_permissions.asm"
+INCLUDE "engine/empty_sram.asm"
-EmptyAllSRAMBanks: ; 4cf1f
- ld a, $0
- call .EmptyBank
- ld a, $1
- call .EmptyBank
- ld a, $2
- call .EmptyBank
- ld a, $3
- call .EmptyBank
- ret
-
-.EmptyBank: ; 4cf34
- call GetSRAMBank
- ld hl, SRAM_Begin
- ld bc, SRAM_End - SRAM_Begin
- xor a
- call ByteFill
- call CloseSRAM
- ret
-
SaveMenu_LoadEDTile: ; 4cf45 (13:4f45)
ld a, [hCGB]
and a
@@ -2042,18 +388,18 @@
ret
CheckSave:: ; 4cffe
- ld a, BANK(s1_a008)
+ ld a, BANK(sCheckValue1) ; BANK(sCheckValue2)
call GetSRAMBank
- ld a, [s1_a008]
+ ld a, [sCheckValue1]
ld b, a
- ld a, [s1_ad0f]
+ ld a, [sCheckValue2]
ld c, a
call CloseSRAM
ld a, b
- cp 99
+ cp SAVE_CHECK_VALUE_1
jr nz, .ok
ld a, c
- cp " "
+ cp SAVE_CHECK_VALUE_2
jr nz, .ok
ld c, $1
ret
@@ -2062,7 +408,7 @@
ld c, $0
ret
-INCLUDE "data/map_triggers.asm"
+INCLUDE "data/maps/map_triggers.asm"
_LoadMapPart:: ; 4d15b
ld hl, wMisc
@@ -2281,119 +627,10 @@
ret
INCLUDE "engine/delete_save_change_clock.asm"
-
INCLUDE "tilesets/tileset_headers.asm"
+INCLUDE "engine/flag_predef.asm"
+INCLUDE "engine/trademon_frontpic.asm"
-FlagPredef: ; 4d7c1
-; Perform action b on flag c in flag array hl.
-; If checking a flag, check flag array d:hl unless d is 0.
-
-; For longer flag arrays, see FlagAction.
-
- push hl
- push bc
-
-; Divide by 8 to get the byte we want.
- push bc
- srl c
- srl c
- srl c
- ld b, 0
- add hl, bc
- pop bc
-
-; Which bit we want from the byte
- ld a, c
- and 7
- ld c, a
-
-; Shift left until we can mask the bit
- ld a, 1
- jr z, .shifted
-.shift
- add a
- dec c
- jr nz, .shift
-.shifted
- ld c, a
-
-; What are we doing to this flag?
- dec b
- jr z, .set ; 1
- dec b
- jr z, .check ; 2
-
-.reset
- ld a, c
- cpl
- and [hl]
- ld [hl], a
- jr .done
-
-.set
- ld a, [hl]
- or c
- ld [hl], a
- jr .done
-
-.check
- ld a, d
- cp 0
- jr nz, .farcheck
-
- ld a, [hl]
- and c
- jr .done
-
-.farcheck
- call GetFarByte
- and c
-
-.done
- pop bc
- pop hl
- ld c, a
- ret
-
-GetTrademonFrontpic: ; 4d7fd
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- ld de, VTiles2
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef FrontpicPredef
- ret
-
-AnimateTrademonFrontpic: ; 4d81e
- ld a, [wOTTrademonSpecies]
- call IsAPokemon
- ret c
- callba ShowOTTrademonStats
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- callba TradeAnim_ShowGetmonFrontpic
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- hlcoord 7, 2
- ld d, $0
- ld e, ANIM_MON_TRADE
- predef AnimateFrontpic
- ret
-
CheckPokerus: ; 4d860
; Return carry if a monster in your party has Pokerus
@@ -2420,779 +657,18 @@
scf
ret
-Special_CheckForLuckyNumberWinners: ; 4d87a
- xor a
- ld [ScriptVar], a
- ld [wFoundMatchingIDInParty], a
- ld a, [PartyCount]
- and a
- ret z
- ld d, a
- ld hl, PartyMon1ID
- ld bc, PartySpecies
-.PartyLoop:
- ld a, [bc]
- inc bc
- cp EGG
- call nz, .CompareLuckyNumberToMonID
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .PartyLoop
- ld a, BANK(sBox)
- call GetSRAMBank
- ld a, [sBoxCount]
- and a
- jr z, .SkipOpenBox
- ld d, a
- ld hl, sBoxMon1ID
- ld bc, sBoxSpecies
-.OpenBoxLoop:
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .SkipOpenBoxMon
- call .CompareLuckyNumberToMonID
- jr nc, .SkipOpenBoxMon
- ld a, 1
- ld [wFoundMatchingIDInParty], a
-
-.SkipOpenBoxMon:
- push bc
- ld bc, BOXMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .OpenBoxLoop
-
-.SkipOpenBox:
- call CloseSRAM
- ld c, $0
-.BoxesLoop:
- ld a, [wCurBox]
- and $f
- cp c
- jr z, .SkipBox
- ld hl, .BoxBankAddresses
- ld b, 0
- add hl, bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- call GetSRAMBank
- ld a, [hli]
- ld h, [hl]
- ld l, a ; hl now contains the address of the loaded box in SRAM
- ld a, [hl]
- and a
- jr z, .SkipBox ; no mons in this box
- push bc
- ld b, h
- ld c, l
- inc bc
- ld de, sBoxMon1ID - sBox
- add hl, de
- ld d, a
-.BoxNLoop:
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .SkipBoxMon
-
- call .CompareLuckyNumberToMonID ; sets ScriptVar and CurPartySpecies appropriately
- jr nc, .SkipBoxMon
- ld a, 1
- ld [wFoundMatchingIDInParty], a
-
-.SkipBoxMon:
- push bc
- ld bc, BOXMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .BoxNLoop
- pop bc
-
-.SkipBox:
- inc c
- ld a, c
- cp NUM_BOXES
- jr c, .BoxesLoop
-
- call CloseSRAM
- ld a, [ScriptVar]
- and a
- ret z ; found nothing
- callba TrainerRankings_LuckyNumberShow
- ld a, [wFoundMatchingIDInParty]
- and a
- push af
- ld a, [CurPartySpecies]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, .FoundPartymonText
- pop af
- jr z, .print
- ld hl, .FoundBoxmonText
-
- jp PrintText
-
-.CompareLuckyNumberToMonID: ; 4d939
- push bc
- push de
- push hl
- ld d, h
- ld e, l
- ld hl, Buffer1
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld hl, LuckyNumberDigit1Buffer
- ld de, wLuckyIDNumber
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld b, 5
- ld c, 0
- ld hl, LuckyNumberDigit5Buffer
- ld de, Buffer5
-.loop
- ld a, [de]
- cp [hl]
- jr nz, .done
- dec de
- dec hl
- inc c
- dec b
- jr nz, .loop
-
-.done
- pop hl
- push hl
- ld de, -6
- add hl, de
- ld a, [hl]
- pop hl
- pop de
- push af
- ld a, c
- ld b, 1
- cp 5
- jr z, .okay
- ld b, 2
- cp 3
- jr nc, .okay
- ld b, 3
- cp 2
- jr nz, .nomatch
-
-.okay
- inc b
- ld a, [ScriptVar]
- and a
- jr z, .bettermatch
- cp b
- jr c, .nomatch
-
-.bettermatch
- dec b
- ld a, b
- ld [ScriptVar], a
- pop bc
- ld a, b
- ld [CurPartySpecies], a
- pop bc
- scf
- ret
-
-.nomatch
- pop bc
- pop bc
- and a
- ret
-
-.BoxBankAddresses: ; 4d99f
- dba sBox1
- dba sBox2
- dba sBox3
- dba sBox4
- dba sBox5
- dba sBox6
- dba sBox7
- dba sBox8
- dba sBox9
- dba sBox10
- dba sBox11
- dba sBox12
- dba sBox13
- dba sBox14
-
-.FoundPartymonText: ; 0x4d9c9
- ; Congratulations! We have a match with the ID number of @ in your party.
- text_jump UnknownText_0x1c1261
- db "@"
-
-.FoundBoxmonText: ; 0x4d9ce
- ; Congratulations! We have a match with the ID number of @ in your PC BOX.
- text_jump UnknownText_0x1c12ae
- db "@"
-
-Special_PrintTodaysLuckyNumber: ; 4d9d3
- ld hl, StringBuffer3
- ld de, wLuckyIDNumber
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld a, "@"
- ld [StringBuffer3 + 5], a
- ret
-
-CheckPartyFullAfterContest: ; 4d9e5
- ld a, [wContestMon]
- and a
- jp z, .DidntCatchAnything
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld hl, PartyCount
- ld a, [hl]
- cp 6
- jp nc, .TryAddToBox
- inc a
- ld [hl], a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [wContestMon]
- ld [hli], a
- ld [CurSpecies], a
- ld a, $ff
- ld [hl], a
- ld hl, PartyMon1Species
- ld a, [PartyCount]
- dec a
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, wContestMon
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonOT
- call SkipNames
- ld d, h
- ld e, l
- ld hl, PlayerName
- call CopyBytes
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, wMonOrItemNameBuffer
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- call GiveANickname_YesNo
- jr c, .Party_SkipNickname
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- xor a
- ld [MonType], a
- ld de, wMonOrItemNameBuffer
- callab InitNickname
-
-.Party_SkipNickname:
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonNicknames
- call SkipNames
- ld d, h
- ld e, l
- ld hl, wMonOrItemNameBuffer
- call CopyBytes
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Level
- call GetPartyLocation
- ld a, [hl]
- ld [CurPartyLevel], a
- call SetCaughtData
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1CaughtLocation
- call GetPartyLocation
- ld a, [hl]
- and $80
- ld b, $13
- or b
- ld [hl], a
- xor a
- ld [wContestMon], a
- and a
- ld [ScriptVar], a
- ret
-
-.TryAddToBox: ; 4daa3
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld hl, sBoxCount
- ld a, [hl]
- cp MONS_PER_BOX
- call CloseSRAM
- jr nc, .BoxFull
- xor a
- ld [CurPartyMon], a
- ld hl, wContestMon
- ld de, wBufferMon
- ld bc, BOXMON_STRUCT_LENGTH
- call CopyBytes
- ld hl, PlayerName
- ld de, wBufferMonOT
- ld bc, NAME_LENGTH
- call CopyBytes
- callab InsertPokemonIntoBox
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
- call GiveANickname_YesNo
- ld hl, StringBuffer1
- jr c, .Box_SkipNickname
- ld a, BOXMON
- ld [MonType], a
- ld de, wMonOrItemNameBuffer
- callab InitNickname
- ld hl, wMonOrItemNameBuffer
-
-.Box_SkipNickname:
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
- ld de, sBoxMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- call CloseSRAM
-
-.BoxFull:
- ld a, BANK(sBoxMon1Level)
- call GetSRAMBank
- ld a, [sBoxMon1Level]
- ld [CurPartyLevel], a
- call CloseSRAM
- call SetBoxMonCaughtData
- ld a, BANK(sBoxMon1CaughtLocation)
- call GetSRAMBank
- ld hl, sBoxMon1CaughtLocation
- ld a, [hl]
- and $80
- ld b, $13
- or b
- ld [hl], a
- call CloseSRAM
- xor a
- ld [wContestMon], a
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.DidntCatchAnything: ; 4db35
- ld a, $2
- ld [ScriptVar], a
- ret
-
-GiveANickname_YesNo: ; 4db3b
- ld hl, TextJump_GiveANickname
- call PrintText
- jp YesNoBox
-
-TextJump_GiveANickname: ; 0x4db44
- ; Give a nickname to the @ you received?
- text_jump UnknownText_0x1c12fc
- db "@"
-
-SetCaughtData: ; 4db49
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1CaughtLevel
- call GetPartyLocation
-SetBoxmonOrEggmonCaughtData: ; 4db53
- ld a, [TimeOfDay]
- inc a
- rrca
- rrca
- ld b, a
- ld a, [CurPartyLevel]
- or b
- ld [hli], a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- cp MAP_POKECENTER_2F
- jr nz, .NotPokecenter2F
- ld a, b
- cp GROUP_POKECENTER_2F
- jr nz, .NotPokecenter2F
-
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
-
-.NotPokecenter2F:
- call GetWorldMapLocation
- ld b, a
- ld a, [PlayerGender]
- rrca
- or b
- ld [hl], a
- ret
-
-SetBoxMonCaughtData: ; 4db83
- ld a, BANK(sBoxMon1CaughtLevel)
- call GetSRAMBank
- ld hl, sBoxMon1CaughtLevel
- call SetBoxmonOrEggmonCaughtData
- call CloseSRAM
- ret
-
-SetGiftBoxMonCaughtData: ; 4db92
- push bc
- ld a, BANK(sBoxMon1CaughtLevel)
- call GetSRAMBank
- ld hl, sBoxMon1CaughtLevel
- pop bc
- call SetGiftMonCaughtData
- call CloseSRAM
- ret
-
-SetGiftPartyMonCaughtData: ; 4dba3
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1CaughtLevel
- push bc
- call GetPartyLocation
- pop bc
-SetGiftMonCaughtData: ; 4dbaf
- xor a
- ld [hli], a
- ld a, $7e
- rrc b
- or b
- ld [hl], a
- ret
-
-SetEggMonCaughtData: ; 4dbb8 (13:5bb8)
- ld a, [CurPartyMon]
- ld hl, PartyMon1CaughtLevel
- call GetPartyLocation
- ld a, [CurPartyLevel]
- push af
- ld a, $1
- ld [CurPartyLevel], a
- call SetBoxmonOrEggmonCaughtData
- pop af
- ld [CurPartyLevel], a
- ret
-
+INCLUDE "event/lucky_number.asm"
+INCLUDE "engine/caught_data.asm"
INCLUDE "engine/search2.asm"
-
INCLUDE "engine/stats_screen.asm"
-
-CatchTutorial:: ; 4e554
- ld a, [BattleType]
- dec a
- ld c, a
- ld hl, .dw
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.dw ; 4e564 (13:6564)
- dw .DudeTutorial
- dw .DudeTutorial
- dw .DudeTutorial
-
-.DudeTutorial: ; 4e56a (13:656a)
-; Back up your name to your Mom's name.
- ld hl, PlayerName
- ld de, MomsName
- ld bc, NAME_LENGTH
- call CopyBytes
-; Copy Dude's name to your name
- ld hl, .Dude
- ld de, PlayerName
- ld bc, NAME_LENGTH
- call CopyBytes
-
- call .LoadDudeData
-
- xor a
- ld [hJoyDown], a
- ld [hJoyPressed], a
- ld a, [Options]
- push af
- and $f8
- add $3
- ld [Options], a
- ld hl, .AutoInput
- ld a, BANK(.AutoInput)
- call StartAutoInput
- callab StartBattle
- call StopAutoInput
- pop af
-
- ld [Options], a
- ld hl, MomsName
- ld de, PlayerName
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-
-.LoadDudeData: ; 4e5b7 (13:65b7)
- ld hl, wDudeNumItems
- ld [hl], 1
- inc hl
- ld [hl], POTION
- inc hl
- ld [hl], 1
- inc hl
- ld [hl], -1
- ld hl, wDudeNumKeyItems
- ld [hl], 0
- inc hl
- ld [hl], -1
- ld hl, wDudeNumBalls
- ld a, 1
- ld [hli], a
- ld a, POKE_BALL ; 5
- ld [hli], a
- ld [hli], a
- ld [hl], -1
- ret
-
-.Dude: ; 4e5da
- db "DUDE@"
-
-.AutoInput: ; 4e5df
- db NO_INPUT, $ff ; end
-
+INCLUDE "event/catch_tutorial.asm"
INCLUDE "engine/evolution_animation.asm"
-
-InitDisplayForHallOfFame: ; 4e881
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- call LoadStandardFont
- call LoadFontsBattleExtra
- hlbgcoord 0, 0
- ld bc, VBGMap1 - VBGMap0
- ld a, " "
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- xor a
- ld [hSCY], a
- ld [hSCX], a
- call EnableLCD
- ld hl, .SavingRecordDontTurnOff
- call PrintText
- call WaitBGMap2
- call SetPalettes
- ret
-
-.SavingRecordDontTurnOff: ; 0x4e8bd
- ; SAVING RECORD… DON'T TURN OFF!
- text_jump UnknownText_0x1bd39e
- db "@"
-
-InitDisplayForRedCredits: ; 4e8c2
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- call LoadStandardFont
- call LoadFontsBattleExtra
- hlbgcoord 0, 0
- ld bc, VBGMap1 - VBGMap0
- ld a, " "
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- ld hl, UnknBGPals
- ld c, 4 tiles
-.load_white_palettes
- ld a, (palred 31 + palgreen 31 + palblue 31) % $100
- ld [hli], a
- ld a, (palred 31 + palgreen 31 + palblue 31) / $100
- ld [hli], a
- dec c
- jr nz, .load_white_palettes
- xor a
- ld [hSCY], a
- ld [hSCX], a
- call EnableLCD
- call WaitBGMap2
- call SetPalettes
- ret
-
-ResetDisplayBetweenHallOfFameMons: ; 4e906
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, wDecompressScratch
- ld bc, wScratchAttrMap - wDecompressScratch
- ld a, " "
- call ByteFill
- hlbgcoord 0, 0
- ld de, wDecompressScratch
- ld b, 0
- ld c, 4 tiles
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-
-GetMobileOTTrainerClass: ; mobile function
- ld h, b
- ld l, c
- call .GetMobileOTTrainerClass
- ld c, a
- ret
-
-.GetMobileOTTrainerClass: ; 4e930
- ld a, [hli]
- xor [hl]
- ld c, a
- jr z, .skip_male_trainers
- srl c
- srl c
-.male_trainer_loop
- srl c
- ld a, c
- cp MaleTrainersEnd - MaleTrainers - 1
- jr nc, .male_trainer_loop
- inc c
-
-.skip_male_trainers
- ld a, [de]
- cp $1
- ld hl, MaleTrainers
- jr nz, .finished
-
- ld hl, FemaleTrainers
- ld a, c
- and a
- jr z, .finished
-
-.female_trainer_loop
- srl c
- ld a, c
- cp FemaleTrainersEnd - FemaleTrainers - 1
- jr nc, .female_trainer_loop
- inc c
-
-.finished
- ld b, $0
- add hl, bc
- ld a, [hl]
- ret
-
-INCLUDE "trainers/gendered_trainers.asm"
-
+INCLUDE "engine/init_hof_credits.asm"
+INCLUDE "mobile/get_trainer_class.asm"
INCLUDE "battle/sliding_intro.asm"
-
-Mobile_PrintOpponentBattleMessage: ; 4ea0a
- ld a, c
- push af
- call SpeechTextBox
- call MobileTextBorder
- pop af
- dec a
- ld bc, $c
- ld hl, w5_MobileOpponentBattleMessages
- call AddNTimes
- ld de, wMobileOpponentBattleMessage
- ld bc, $c
- ld a, $5 ; BANK(w5_MobileOpponentBattleMessages)
- call FarCopyWRAM
-
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
-
- ld bc, wMobileOpponentBattleMessage
- decoord 1, 14
- callba PrintEZChatBattleMessage
-
- pop af
- ld [rSVBK], a
-
- ld c, 180
- call DelayFrames
- ret
-
-CheckBattleScene: ; 4ea44
-; Return carry if battle scene is turned off.
-
- ld a, 0
- ld hl, wLinkMode
- call GetFarWRAMByte
- cp LINK_MOBILE
- jr z, .mobile
-
- ld a, [Options]
- bit BATTLE_SCENE, a
- jr nz, .off
-
- and a
- ret
-
-.mobile
- ld a, [wcd2f]
- and a
- jr nz, .from_wram
-
- ld a, $4
- call GetSRAMBank
- ld a, [$a60c]
- ld c, a
- call CloseSRAM
-
- ld a, c
- bit 0, c
- jr z, .off
-
- and a
- ret
-
-.from_wram
- ld a, $5
- ld hl, w5_dc00
- call GetFarWRAMByte
- bit 0, a
- jr z, .off
-
- and a
- ret
-
-.off
- scf
- ret
-
-INCLUDE "misc/gbc_only.asm"
-
+INCLUDE "mobile/print_opp_message.asm"
+INCLUDE "engine/check_battle_scene.asm"
+INCLUDE "engine/gbc_only.asm"
INCLUDE "event/poke_seer.asm"
@@ -3205,1089 +681,18 @@
INCLUDE "event/card_key.asm"
INCLUDE "event/basement_key.asm"
INCLUDE "event/sacred_ash.asm"
-
-CopyPkmnToTempMon: ; 5084a
-; gets the BaseData of a Pkmn
-; and copys the PkmnStructure to TempMon
-
- ld a, [CurPartyMon]
- ld e, a
- call GetPkmnSpecies
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- call GetBaseData
-
- ld a, [MonType]
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- and a
- jr z, .copywholestruct
- ld hl, OTPartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- cp OTPARTYMON
- jr z, .copywholestruct
- ld bc, BOXMON_STRUCT_LENGTH
- callab CopyBoxmonToTempMon
- jr .done
-
-.copywholestruct
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, TempMon
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
-
-.done
- ret
-
-CalcwBufferMonStats: ; 5088b
- ld bc, wBufferMon
- jr _TempMonStatsCalculation
-
-CalcTempmonStats: ; 50890
- ld bc, TempMon
-_TempMonStatsCalculation: ; 50893
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- ld [CurPartyLevel], a
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- ld hl, MON_STAT_EXP - 1
- add hl, bc
- push bc
- ld b, $1
- predef CalcPkmnStats
- pop bc
- ld hl, MON_HP
- add hl, bc
- ld d, h
- ld e, l
- ld a, [CurPartySpecies]
- cp EGG
- jr nz, .not_egg
- xor a
- ld [de], a
- inc de
- ld [de], a
- jr .zero_status
-
-.not_egg
- push bc
- ld hl, MON_MAXHP
- add hl, bc
- ld bc, 2
- call CopyBytes
- pop bc
-
-.zero_status
- ld hl, MON_STATUS
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- ret
-
-GetPkmnSpecies: ; 508d5
-; [MonType] has the type of the Pkmn
-; e = Nr. of Pkmn (i.e. [CurPartyMon])
-
- ld a, [MonType]
- and a ; PARTYMON
- jr z, .partymon
- cp OTPARTYMON
- jr z, .otpartymon
- cp BOXMON
- jr z, .boxmon
- cp TEMPMON
- jr z, .breedmon
- ; WILDMON
-
-.partymon
- ld hl, PartySpecies
- jr .done
-
-.otpartymon
- ld hl, OTPartySpecies
- jr .done
-
-.boxmon
- ld a, BANK(sBoxSpecies)
- call GetSRAMBank
- ld hl, sBoxSpecies
- call .done
- call CloseSRAM
- ret
-
-.breedmon
- ld a, [wBreedMon1Species]
- jr .done2
-
-.done
- ld d, 0
- add hl, de
- ld a, [hl]
-
-.done2
- ld [CurPartySpecies], a
- ret
-
+INCLUDE "engine/tempmon.asm"
INCLUDE "text/types.asm"
-
-Function50a28: ; 50a28
-; XXX
- ld hl, .Strings
- ld a, [TrainerClass]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, StringBuffer1
-.copy
- ld a, [hli]
- ld [de], a
- inc de
- cp "@"
- jr nz, .copy
- ret
-
-.Strings: ; 50a42
-; Untranslated trainer class names from Red.
- dw .Youngster
- dw .BugCatcher
- dw .Lass
- dw OTClassName
- dw .JrTrainerM
- dw .JrTrainerF
- dw .Pokemaniac
- dw .SuperNerd
- dw OTClassName
- dw OTClassName
- dw .Burglar
- dw .Engineer
- dw .Jack
- dw OTClassName
- dw .Swimmer
- dw OTClassName
- dw OTClassName
- dw .Beauty
- dw OTClassName
- dw .Rocker
- dw .Juggler
- dw OTClassName
- dw OTClassName
- dw .Blackbelt
- dw OTClassName
- dw .ProfOak
- dw .Chief
- dw .Scientist
- dw OTClassName
- dw .Rocket
- dw .CooltrainerM
- dw .CooltrainerF
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
-
-.Youngster: db "たんパン@"
-.BugCatcher: db "むしとり@"
-.Lass: db "ミニスカ@"
-.JrTrainerM: db "ボーイ@"
-.JrTrainerF: db "ガール@"
-.Pokemaniac: db "マニア@"
-.SuperNerd: db "りかけい@"
-.Burglar: db "どろぼう@"
-.Engineer: db "ォヤジ@"
-.Jack: db "ジャック@"
-.Swimmer: db "かいパン@"
-.Beauty: db "おねえさん@"
-.Rocker: db "グループ@"
-.Juggler: db "ジャグラー@"
-.Blackbelt: db "からて@"
-.ProfOak: db "ォーキド@"
-.Chief: db "チーフ@"
-.Scientist: db "けんきゅういん@"
-.Rocket: db "だんいん@"
-.CooltrainerM: db "エりート♂@"
-.CooltrainerF: db "エりート♀@"
-
-DrawPlayerHP: ; 50b0a
- ld a, $1
- jr DrawHP
-
-DrawEnemyHP: ; 50b0e
- ld a, $2
-
-DrawHP: ; 50b10
- ld [wWhichHPBar], a
- push hl
- push bc
- ; box mons have full HP
- ld a, [MonType]
- cp BOXMON
- jr z, .at_least_1_hp
-
- ld a, [TempMonHP]
- ld b, a
- ld a, [TempMonHP + 1]
- ld c, a
-
-; Any HP?
- or b
- jr nz, .at_least_1_hp
-
- xor a
- ld c, a
- ld e, a
- ld a, 6
- ld d, a
- jp .fainted
-
-.at_least_1_hp
- ld a, [TempMonMaxHP]
- ld d, a
- ld a, [TempMonMaxHP + 1]
- ld e, a
- ld a, [MonType]
- cp BOXMON
- jr nz, .not_boxmon
-
- ld b, d
- ld c, e
-
-.not_boxmon
- predef ComputeHPBarPixels
- ld a, 6
- ld d, a
- ld c, a
-
-.fainted
- ld a, c
- pop bc
- ld c, a
- pop hl
- push de
- push hl
- push hl
- call DrawBattleHPBar
- pop hl
-
-; Print HP
- bccoord 1, 1, 0
- add hl, bc
- ld de, TempMonHP
- ld a, [MonType]
- cp BOXMON
- jr nz, .not_boxmon_2
- ld de, TempMonMaxHP
-.not_boxmon_2
- lb bc, 2, 3
- call PrintNum
-
- ld a, "/"
- ld [hli], a
-
-; Print max HP
- ld de, TempMonMaxHP
- lb bc, 2, 3
- call PrintNum
- pop hl
- pop de
- ret
-
-PrintTempMonStats: ; 50b7b
-; Print TempMon's stats at hl, with spacing bc.
- push bc
- push hl
- ld de, .StatNames
- call PlaceString
- pop hl
- pop bc
- add hl, bc
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld de, TempMonAttack
- lb bc, 2, 3
- call .PrintStat
- ld de, TempMonDefense
- call .PrintStat
- ld de, TempMonSpclAtk
- call .PrintStat
- ld de, TempMonSpclDef
- call .PrintStat
- ld de, TempMonSpeed
- jp PrintNum
-
-.PrintStat: ; 50bab
- push hl
- call PrintNum
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- ret
-
-.StatNames: ; 50bb5
- db "ATTACK"
- next "DEFENSE"
- next "SPCL.ATK"
- next "SPCL.DEF"
- next "SPEED"
- next "@"
-
-GetGender: ; 50bdd
-; Return the gender of a given monster (CurPartyMon/CurOTMon/CurWildMon).
-; When calling this function, a should be set to an appropriate MonType value.
-
-; return values:
-; a = 1: f = nc|nz; male
-; a = 0: f = nc|z; female
-; f = c: genderless
-
-; This is determined by comparing the Attack and Speed DVs
-; with the species' gender ratio.
-
-; Figure out what type of monster struct we're looking at.
-
-; 0: PartyMon
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [MonType]
- and a
- jr z, .PartyMon
-
-; 1: OTPartyMon
- ld hl, OTPartyMon1DVs
- dec a
- jr z, .PartyMon
-
-; 2: sBoxMon
- ld hl, sBoxMon1DVs
- ld bc, BOXMON_STRUCT_LENGTH
- dec a
- jr z, .sBoxMon
-
-; 3: Unknown
- ld hl, TempMonDVs
- dec a
- jr z, .DVs
-
-; else: WildMon
- ld hl, EnemyMonDVs
- jr .DVs
-
-; Get our place in the party/box.
-
-.PartyMon:
-.sBoxMon
- ld a, [CurPartyMon]
- call AddNTimes
-
-.DVs:
-
-; sBoxMon data is read directly from SRAM.
- ld a, [MonType]
- cp BOXMON
- ld a, 1
- call z, GetSRAMBank
-
-; Attack DV
- ld a, [hli]
- and $f0
- ld b, a
-; Speed DV
- ld a, [hl]
- and $f0
- swap a
-
-; Put our DVs together.
- or b
- ld b, a
-
-; Close SRAM if we were dealing with a sBoxMon.
- ld a, [MonType]
- cp BOXMON
- call z, CloseSRAM
-
-; We need the gender ratio to do anything with this.
- push bc
- ld a, [CurPartySpecies]
- dec a
- ld hl, BaseData + BASE_GENDER
- ld bc, BASE_DATA_SIZE
- call AddNTimes
- pop bc
-
- ld a, BANK(BaseData)
- call GetFarByte
-
-; The higher the ratio, the more likely the monster is to be female.
-
- cp $ff
- jr z, .Genderless
-
- and a
- jr z, .Male
-
- cp $fe
- jr z, .Female
-
-; Values below the ratio are male, and vice versa.
- cp b
- jr c, .Male
-
-.Female:
- xor a
- ret
-
-.Male:
- ld a, 1
- and a
- ret
-
-.Genderless:
- scf
- ret
-
-ListMovePP: ; 50c50
- ld a, [wNumMoves]
- inc a
- ld c, a
- ld a, NUM_MOVES
- sub c
- ld b, a
- push hl
- ld a, [Buffer1]
- ld e, a
- ld d, $0
- ld a, $3e ; P
- call .load_loop
- ld a, b
- and a
- jr z, .skip
- ld c, a
- ld a, "-"
- call .load_loop
-
-.skip
- pop hl
- inc hl
- inc hl
- inc hl
- ld d, h
- ld e, l
- ld hl, TempMonMoves
- ld b, 0
-.loop
- ld a, [hli]
- and a
- jr z, .done
- push bc
- push hl
- push de
- ld hl, wMenuCursorY
- ld a, [hl]
- push af
- ld [hl], b
- push hl
- callab GetMaxPPOfMove
- pop hl
- pop af
- ld [hl], a
- pop de
- pop hl
- push hl
- ld bc, TempMonPP - (TempMonMoves + 1)
- add hl, bc
- ld a, [hl]
- and $3f
- ld [StringBuffer1 + 4], a
- ld h, d
- ld l, e
- push hl
- ld de, StringBuffer1 + 4
- lb bc, 1, 2
- call PrintNum
- ld a, "/"
- ld [hli], a
- ld de, wd265
- lb bc, 1, 2
- call PrintNum
- pop hl
- ld a, [Buffer1]
- ld e, a
- ld d, 0
- add hl, de
- ld d, h
- ld e, l
- pop hl
- pop bc
- inc b
- ld a, b
- cp NUM_MOVES
- jr nz, .loop
-
-.done
- ret
-
-.load_loop ; 50cc9
- ld [hli], a
- ld [hld], a
- add hl, de
- dec c
- jr nz, .load_loop
- ret
-
-Function50cd0: ; 50cd0
-; XXX
-.loop
- ld [hl], $32
- inc hl
- ld [hl], $3e
- dec hl
- add hl, de
- dec c
- jr nz, .loop
- ret
-
-Predef22: ; unreferenced predef
- push hl
- push hl
- ld hl, PartyMonNicknames
- ld a, [CurPartyMon]
- call GetNick
- pop hl
- call PlaceString
- call CopyPkmnToTempMon
- pop hl
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
- push hl
- ld bc, -12
- add hl, bc
- ld b, $0
- call DrawEnemyHP
- pop hl
- ld bc, 5
- add hl, bc
- push de
- call PrintLevel
- pop de
-
-.egg
- ret
-
-PlaceStatusString: ; 50d0a
- push de
- inc de
- inc de
- ld a, [de]
- ld b, a
- inc de
- ld a, [de]
- or b
- pop de
- jr nz, PlaceNonFaintStatus
- push de
- ld de, FntString
- call CopyStatusString
- pop de
- ld a, $1
- and a
- ret
-
-FntString: ; 50d22
- db "FNT@"
-
-CopyStatusString: ; 50d25
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- ret
-
-PlaceNonFaintStatus: ; 50d2e
- push de
- ld a, [de]
- ld de, PsnString
- bit PSN, a
- jr nz, .place
- ld de, BrnString
- bit BRN, a
- jr nz, .place
- ld de, FrzString
- bit FRZ, a
- jr nz, .place
- ld de, ParString
- bit PAR, a
- jr nz, .place
- ld de, SlpString
- and SLP
- jr z, .no_status
-
-.place
- call CopyStatusString
- ld a, $1
- and a
-
-.no_status
- pop de
- ret
-
-SlpString: db "SLP@"
-PsnString: db "PSN@"
-BrnString: db "BRN@"
-FrzString: db "FRZ@"
-ParString: db "PAR@"
-
-ListMoves: ; 50d6f
-; List moves at hl, spaced every [Buffer1] tiles.
- ld de, wListMoves_MoveIndicesBuffer
- ld b, $0
-.moves_loop
- ld a, [de]
- inc de
- and a
- jr z, .no_more_moves
- push de
- push hl
- push hl
- ld [CurSpecies], a
- ld a, MOVE_NAME
- ld [wNamedObjectTypeBuffer], a
- call GetName
- ld de, StringBuffer1
- pop hl
- push bc
- call PlaceString
- pop bc
- ld a, b
- ld [wNumMoves], a
- inc b
- pop hl
- push bc
- ld a, [Buffer1]
- ld c, a
- ld b, 0
- add hl, bc
- pop bc
- pop de
- ld a, b
- cp NUM_MOVES
- jr z, .done
- jr .moves_loop
-
-.no_more_moves
- ld a, b
-.nonmove_loop
- push af
- ld [hl], "-"
- ld a, [Buffer1]
- ld c, a
- ld b, 0
- add hl, bc
- pop af
- inc a
- cp NUM_MOVES
- jr nz, .nonmove_loop
-
-.done
- ret
-
-InitList: ; 50db9
- ld a, [wInitListType]
-
- cp INIT_ENEMYOT_LIST
- jr nz, .check_party_ot_name
- ld hl, OTPartyCount
- ld de, OTPartyMonOT
- ld a, ENEMY_OT_NAME
- jr .done
-
-.check_party_ot_name
- cp INIT_PLAYEROT_LIST
- jr nz, .check_mon_name
- ld hl, PartyCount
- ld de, PartyMonOT
- ld a, PARTY_OT_NAME
- jr .done
-
-.check_mon_name
- cp INIT_MON_LIST
- jr nz, .check_item_name
- ld hl, CurMart
- ld de, PokemonNames
- ld a, PKMN_NAME
- jr .done
-
-.check_item_name
- cp INIT_BAG_ITEM_LIST
- jr nz, .check_ob_item_name
- ld hl, NumItems
- ld de, ItemNames
- ld a, ITEM_NAME
- jr .done
-
-.check_ob_item_name
- ld hl, CurMart
- ld de, ItemNames
- ld a, ITEM_NAME
-.done
- ld [wNamedObjectTypeBuffer], a ; d265
- ld a, l
- ld [wListPointer], a
- ld a, h
- ld [wListPointer + 1], a
- ld a, e
- ld [wUnusedD102], a
- ld a, d
- ld [wUnusedD102 + 1], a
- ld bc, ItemAttributes ; ParseEnemyAction, HandleMapTimeAndJoypad, Music_LakeOfRage_Ch3, String_11a7c1 $67c1
- ld a, c
- ld [wItemAttributesPtr], a
- ld a, b
- ld [wItemAttributesPtr + 1], a
- ret
-
-CalcLevel: ; 50e1b
- ld a, [TempMonSpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld d, 1
-.next_level
- inc d
- ld a, d
- cp (MAX_LEVEL + 1) % $100
- jr z, .got_level
- call CalcExpAtLevel
- push hl
- ld hl, TempMonExp + 2
- ld a, [hProduct + 3]
- ld c, a
- ld a, [hld]
- sub c
- ld a, [hProduct + 2]
- ld c, a
- ld a, [hld]
- sbc c
- ld a, [hProduct + 1]
- ld c, a
- ld a, [hl]
- sbc c
- pop hl
- jr nc, .next_level
-
-.got_level
- dec d
- ret
-
-CalcExpAtLevel: ; 50e47
-; (a/b)*n**3 + c*n**2 + d*n - e
- ld a, [BaseGrowthRate]
- add a
- add a
- ld c, a
- ld b, 0
- ld hl, GrowthRates
- add hl, bc
-; Cube the level
- call .LevelSquared
- ld a, d
- ld [hMultiplier], a
- call Multiply
-
-; Multiply by a
- ld a, [hl]
- and $f0
- swap a
- ld [hMultiplier], a
- call Multiply
-; Divide by b
- ld a, [hli]
- and $f
- ld [hDivisor], a
- ld b, 4
- call Divide
-; Push the cubic term to the stack
- ld a, [hQuotient + 0]
- push af
- ld a, [hQuotient + 1]
- push af
- ld a, [hQuotient + 2]
- push af
-; Square the level and multiply by the lower 7 bits of c
- call .LevelSquared
- ld a, [hl]
- and $7f
- ld [hMultiplier], a
- call Multiply
-; Push the absolute value of the quadratic term to the stack
- ld a, [hProduct + 1]
- push af
- ld a, [hProduct + 2]
- push af
- ld a, [hProduct + 3]
- push af
- ld a, [hli]
- push af
-; Multiply the level by d
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, d
- ld [hMultiplicand + 2], a
- ld a, [hli]
- ld [hMultiplier], a
- call Multiply
-; Subtract e
- ld b, [hl]
- ld a, [hProduct + 3]
- sub b
- ld [hMultiplicand + 2], a
- ld b, $0
- ld a, [hProduct + 2]
- sbc b
- ld [hMultiplicand + 1], a
- ld a, [hProduct + 1]
- sbc b
- ld [hMultiplicand], a
-; If bit 7 of c is set, c is negative; otherwise, it's positive
- pop af
- and $80
- jr nz, .subtract
-; Add c*n**2 to (d*n - e)
- pop bc
- ld a, [hProduct + 3]
- add b
- ld [hMultiplicand + 2], a
- pop bc
- ld a, [hProduct + 2]
- adc b
- ld [hMultiplicand + 1], a
- pop bc
- ld a, [hProduct + 1]
- adc b
- ld [hMultiplicand], a
- jr .done_quadratic
-
-.subtract
-; Subtract c*n**2 from (d*n - e)
- pop bc
- ld a, [hProduct + 3]
- sub b
- ld [hMultiplicand + 2], a
- pop bc
- ld a, [hProduct + 2]
- sbc b
- ld [hMultiplicand + 1], a
- pop bc
- ld a, [hProduct + 1]
- sbc b
- ld [hMultiplicand], a
-
-.done_quadratic
-; Add (a/b)*n**3 to (d*n - e +/- c*n**2)
- pop bc
- ld a, [hProduct + 3]
- add b
- ld [hMultiplicand + 2], a
- pop bc
- ld a, [hProduct + 2]
- adc b
- ld [hMultiplicand + 1], a
- pop bc
- ld a, [hProduct + 1]
- adc b
- ld [hMultiplicand], a
- ret
-
-.LevelSquared: ; 50eed
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, d
- ld [hMultiplicand + 2], a
- ld [hMultiplier], a
- jp Multiply
-
-INCLUDE "data/growth_rates.asm"
-
-_SwitchPartyMons:
- ld a, [wd0e3]
- dec a
- ld [Buffer3], a
- ld b, a
- ld a, [wMenuCursorY]
- dec a
- ld [Buffer2], a
- cp b
- jr z, .skip
- call .SwapMonAndMail
- ld a, [Buffer3]
- call .ClearSprite
- ld a, [Buffer2]
- call .ClearSprite
-.skip
- ret
-
-.ClearSprite: ; 50f34 (14:4f34)
- push af
- hlcoord 0, 1
- ld bc, 2 * SCREEN_WIDTH
- call AddNTimes
- ld bc, 2 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- pop af
- ld hl, Sprites
- ld bc, $10
- call AddNTimes
- ld de, $4
- ld c, $4
-.gfx_loop
- ld [hl], $a0
- add hl, de
- dec c
- jr nz, .gfx_loop
- ld de, SFX_SWITCH_POKEMON
- call WaitPlaySFX
- ret
-
-.SwapMonAndMail: ; 50f62 (14:4f62)
- push hl
- push de
- push bc
- ld bc, PartySpecies
- ld a, [Buffer2]
- ld l, a
- ld h, $0
- add hl, bc
- ld d, h
- ld e, l
- ld a, [Buffer3]
- ld l, a
- ld h, $0
- add hl, bc
- ld a, [hl]
- push af
- ld a, [de]
- ld [hl], a
- pop af
- ld [de], a
- ld a, [Buffer2]
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- push hl
- ld de, wd002
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, [Buffer3]
- ld hl, PartyMon1
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- pop de
- push hl
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- pop de
- ld hl, wd002
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, [Buffer2]
- ld hl, PartyMonOT
- call SkipNames
- push hl
- call .CopyNameTowd002
- ld a, [Buffer3]
- ld hl, PartyMonOT
- call SkipNames
- pop de
- push hl
- call .CopyName
- pop de
- ld hl, wd002
- call .CopyName
- ld hl, PartyMonNicknames
- ld a, [Buffer2]
- call SkipNames
- push hl
- call .CopyNameTowd002
- ld hl, PartyMonNicknames
- ld a, [Buffer3]
- call SkipNames
- pop de
- push hl
- call .CopyName
- pop de
- ld hl, wd002
- call .CopyName
- ld hl, sPartyMail
- ld a, [Buffer2]
- ld bc, MAIL_STRUCT_LENGTH
- call AddNTimes
- push hl
- ld de, wd002
- ld bc, MAIL_STRUCT_LENGTH
- ld a, BANK(sPartyMail)
- call GetSRAMBank
- call CopyBytes
- ld hl, sPartyMail
- ld a, [Buffer3]
- ld bc, MAIL_STRUCT_LENGTH
- call AddNTimes
- pop de
- push hl
- ld bc, MAIL_STRUCT_LENGTH
- call CopyBytes
- pop de
- ld hl, wd002
- ld bc, MAIL_STRUCT_LENGTH
- call CopyBytes
- call CloseSRAM
- pop bc
- pop de
- pop hl
- ret
-
-.CopyNameTowd002: ; 51036 (14:5036)
- ld de, wd002
-
-.CopyName: ; 51039 (14:5039)
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-
+INCLUDE "text/unused_gen_1_trainers.asm"
+INCLUDE "engine/mon_stats.asm"
+INCLUDE "engine/init_list.asm"
+INCLUDE "engine/experience.asm"
+INCLUDE "engine/switch_party_mons.asm"
INCLUDE "gfx/load_pics.asm"
-
INCLUDE "engine/move_mon_wo_mail.asm"
+INCLUDE "data/pokemon/base_stats.asm"
+INCLUDE "data/pokemon/pokemon_names.asm"
-INCLUDE "data/base_stats.asm"
-
-INCLUDE "data/pokemon_names.asm"
-
Unknown_53d84: ; unreferenced
db $1a, $15
db $33, $16
@@ -4331,300 +736,19 @@
SECTION "bank22", ROMX
INCLUDE "event/kurt.asm"
-
-Function88248: ; 88248
-; XXX
- ld c, CAL
- ld a, [PlayerGender]
- bit 0, a
- jr z, .okay
- ld c, KAREN
-
-.okay
- ld a, c
- ld [TrainerClass], a
- ret
-
-MovePlayerPicRight: ; 88258
- hlcoord 6, 4
- ld de, 1
- jr MovePlayerPic
-
-MovePlayerPicLeft: ; 88260
- hlcoord 13, 4
- ld de, -1
- ; fallthrough
-
-MovePlayerPic: ; 88266
-; Move player pic at hl by de * 7 tiles.
- ld c, $8
-.loop
- push bc
- push hl
- push de
- xor a
- ld [hBGMapMode], a
- lb bc, 7, 7
- predef PlaceGraphic
- xor a
- ld [hBGMapThird], a
- call WaitBGMap
- call DelayFrame
- pop de
- pop hl
- add hl, de
- pop bc
- dec c
- ret z
- push hl
- push bc
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- lb bc, 7, 7
- call ClearBox
- pop bc
- pop hl
- jr .loop
-
-ShowPlayerNamingChoices: ; 88297
- ld hl, ChrisNameMenuHeader
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotGender
- ld hl, KrisNameMenuHeader
-.GotGender:
- call LoadMenuDataHeader
- call VerticalMenu
- ld a, [wMenuCursorY]
- dec a
- call CopyNameFromMenu
- call CloseWindow
- ret
-
-ChrisNameMenuHeader: ; 882b5
- db $40 ; flags
- db 00, 00 ; start coords
- db 11, 10 ; end coords
- dw .MaleNames
- db 1 ; ????
- db 0 ; default option
-
-.MaleNames: ; 882be
- db $91 ; flags
- db 5 ; items
- db "NEW NAME@"
-MalePlayerNameArray: ; 882c9
- db "CHRIS@"
- db "MAT@"
- db "ALLAN@"
- db "JON@"
- db 2 ; displacement
- db " NAME @" ; title
-
-KrisNameMenuHeader: ; 882e5
- db $40 ; flags
- db 00, 00 ; start coords
- db 11, 10 ; end coords
- dw .FemaleNames
- db 1 ; ????
- db 0 ; default option
-
-.FemaleNames: ; 882ee
- db $91 ; flags
- db 5 ; items
- db "NEW NAME@"
-FemalePlayerNameArray: ; 882f9
- db "KRIS@"
- db "AMANDA@"
- db "JUANA@"
- db "JODI@"
- db 2 ; displacement
- db " NAME @" ; title
-
-GetPlayerNameArray: ; 88318 This Function is never called
- ld hl, PlayerName
- ld de, MalePlayerNameArray
- ld a, [PlayerGender]
- bit 0, a
- jr z, .done
- ld de, FemalePlayerNameArray
-
-.done
- call InitName
- ret
-
-GetPlayerIcon: ; 8832c
-; Get the player icon corresponding to gender
-
-; Male
- ld de, ChrisSpriteGFX
- ld b, BANK(ChrisSpriteGFX)
-
- ld a, [PlayerGender]
- bit 0, a
- jr z, .done
-
-; Female
- ld de, KrisSpriteGFX
- ld b, BANK(KrisSpriteGFX)
-
-.done
- ret
-
-GetCardPic: ; 8833e
- ld hl, ChrisCardPic
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotClass
- ld hl, KrisCardPic
-.GotClass:
- ld de, VTiles2 tile $00
- ld bc, $23 tiles
- ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic)
- call FarCopyBytes
- ld hl, CardGFX
- ld de, VTiles2 tile $23
- ld bc, 6 tiles
- ld a, BANK(CardGFX)
- call FarCopyBytes
- ret
-
-ChrisCardPic: ; 88365
-INCBIN "gfx/trainer_card/chris_card.2bpp"
-
-KrisCardPic: ; 88595
-INCBIN "gfx/trainer_card/kris_card.2bpp"
-
-CardGFX: ; 887c5
-INCBIN "gfx/trainer_card/trainer_card.2bpp"
-
-GetPlayerBackpic: ; 88825
- ld a, [PlayerGender]
- bit 0, a
- jr z, GetChrisBackpic
- call GetKrisBackpic
- ret
-
-GetChrisBackpic: ; 88830
- ld hl, ChrisBackpic
- ld b, BANK(ChrisBackpic)
- ld de, VTiles2 tile $31
- ld c, 7 * 7
- predef DecompressPredef
- ret
-
-HOF_LoadTrainerFrontpic: ; 88840
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld e, 0
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotClass
- ld e, 1
-
-.GotClass:
- ld a, e
- ld [TrainerClass], a
- ld de, ChrisPic
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotPic
- ld de, KrisPic
-
-.GotPic:
- ld hl, VTiles2
- ld b, BANK(ChrisPic) ; BANK(KrisPic)
- ld c, 7 * 7
- call Get2bpp
- call WaitBGMap
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-DrawIntroPlayerPic: ; 88874
-; Draw the player pic at (6,4).
-
-; Get class
- ld e, CHRIS
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotClass
- ld e, KRIS
-.GotClass:
- ld a, e
- ld [TrainerClass], a
-
-; Load pic
- ld de, ChrisPic
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotPic
- ld de, KrisPic
-.GotPic:
- ld hl, VTiles2
- ld b, BANK(ChrisPic) ; BANK(KrisPic)
- ld c, 7 * 7 ; dimensions
- call Get2bpp
-
-; Draw
- xor a
- ld [hGraphicStartTile], a
- hlcoord 6, 4
- lb bc, 7, 7
- predef PlaceGraphic
- ret
-
-ChrisPic: ; 888a9
-INCBIN "gfx/player/chris.2bpp"
-
-KrisPic: ; 88bb9
-INCBIN "gfx/player/kris.2bpp"
-
-GetKrisBackpic: ; 88ec9
-; Kris's backpic is uncompressed.
- ld de, KrisBackpic
- ld hl, VTiles2 tile $31
- lb bc, BANK(KrisBackpic), 7 * 7 ; dimensions
- call Get2bpp
- ret
-
-KrisBackpic: ; 88ed6
-INCBIN "gfx/player/kris_back.2bpp"
-
-String_89116:
- db "-----@"
-
-INCLUDE "misc/mobile_22.asm"
+INCLUDE "engine/player_gfx.asm"
+INCLUDE "mobile/mobile_22.asm"
INCLUDE "event/unown.asm"
INCLUDE "event/buena.asm"
INCLUDE "event/dratini.asm"
INCLUDE "event/battle_tower.asm"
-INCLUDE "misc/mobile_22_2.asm"
+INCLUDE "mobile/mobile_22_2.asm"
SECTION "bank23", ROMX
-Predef35: ; 8c000
-Predef36:
- ret
-
INCLUDE "engine/timeofdaypals.asm"
-INCLUDE "engine/battle_start.asm"
-
-Function8c7c9:
-; XXX
- ld a, $1
- ld [hBGMapMode], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ret
-
+INCLUDE "engine/battle_transition.asm"
INCLUDE "event/field_moves.asm"
INCLUDE "event/magnet_train.asm"
@@ -4683,96 +807,15 @@
INCLUDE "engine/std_scripts.asm"
INCLUDE "engine/phone_scripts.asm"
+INCLUDE "engine/trainer_scripts.asm"
-TalkToTrainerScript:: ; 0xbe66a
- faceplayer
- trainerflagaction CHECK_FLAG
- iftrue AlreadyBeatenTrainerScript
- loadmemtrainer
- encountermusic
- jump StartBattleWithMapTrainerScript
-SeenByTrainerScript:: ; 0xbe675
- loadmemtrainer
- encountermusic
- showemote EMOTE_SHOCK, LAST_TALKED, 30
- callasm TrainerWalkToPlayer
- applymovement2 MovementBuffer
- writepersonxy LAST_TALKED
- faceperson PLAYER, LAST_TALKED
- jump StartBattleWithMapTrainerScript
-
-StartBattleWithMapTrainerScript: ; 0xbe68a
- opentext
- trainertext $0
- waitbutton
- closetext
- loadmemtrainer
- startbattle
- reloadmapafterbattle
- trainerflagaction SET_FLAG
- loadvar wRunningTrainerBattleScript, -1
-
-AlreadyBeatenTrainerScript:
- scripttalkafter
-
-INCLUDE "gfx/sprites.asm"
-
-
SECTION "bank32", ROMX
INCLUDE "battle/bg_effects.asm"
INCLUDE "battle/anims.asm"
+INCLUDE "event/poisonstep_pals.asm"
-LoadPoisonBGPals: ; cbcdd
- call .LoadPals
- ld a, [hCGB]
- and a
- ret nz
- ret ; ????
-
-.LoadPals: ; cbce5
- ld a, [hCGB]
- and a
- jr nz, .cgb
- ld a, [TimeOfDayPal]
- and $3
- cp $3
- ld a, %00000000
- jr z, .convert_pals
- ld a, %10101010
-
-.convert_pals
- call DmgToCgbBGPals
- ld c, 4
- call DelayFrames
- callba _UpdateTimePals
- ret
-
-.cgb
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld c, $20
-.loop
-; RGB 28, 21, 31
- ld a, (palred 28 + palgreen 21 + palblue 31) % $100
- ld [hli], a
- ld a, (palred 28 + palgreen 21 + palblue 31) / $100
- ld [hli], a
- dec c
- jr nz, .loop
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ld c, 4
- call DelayFrames
- callba _UpdateTimePals
- ret
-
TheEndGFX:: ; cbd2e
INCBIN "gfx/credits/theend.2bpp"
@@ -4779,114 +822,7 @@
SECTION "bank33", ROMX
-DisplayCaughtContestMonStats: ; cc000
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call LoadFontsBattleExtra
-
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
-
- hlcoord 0, 0
- ld b, 4
- ld c, 13
- call TextBox
-
- hlcoord 0, 6
- ld b, 4
- ld c, 13
- call TextBox
-
- hlcoord 2, 0
- ld de, .Stock
- call PlaceString
-
- hlcoord 2, 6
- ld de, .This
- call PlaceString
-
- hlcoord 5, 4
- ld de, .Health
- call PlaceString
-
- hlcoord 5, 10
- ld de, .Health
- call PlaceString
-
- ld a, [wContestMon]
- ld [wd265], a
- call GetPokemonName
- ld de, StringBuffer1
- hlcoord 1, 2
- call PlaceString
-
- ld h, b
- ld l, c
- ld a, [wContestMonLevel]
- ld [TempMonLevel], a
- call PrintLevel
-
- ld de, EnemyMonNick
- hlcoord 1, 8
- call PlaceString
-
- ld h, b
- ld l, c
- ld a, [EnemyMonLevel]
- ld [TempMonLevel], a
- call PrintLevel
-
- hlcoord 11, 4
- ld de, wContestMonMaxHP
- lb bc, 2, 3
- call PrintNum
-
- hlcoord 11, 10
- ld de, EnemyMonMaxHP
- call PrintNum
-
- ld hl, SwitchMonText
- call PrintText
-
- pop af
- ld [Options], a
-
- call WaitBGMap
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- call SetPalettes
- ret
-
-.Health:
- db "HEALTH@"
-.Stock:
- db " STOCK ", $4a, " @"
-.This:
- db " THIS ", $4a, " @"
-
-SwitchMonText: ; cc0c2
- ; Switch #MON?
- text_jump UnknownText_0x1c10cf
- db "@"
-
-DisplayAlreadyCaughtText: ; cc0c7
- call GetPokemonName
- ld hl, .AlreadyCaughtText
- jp PrintText
-
-.AlreadyCaughtText: ; 0xcc0d0
- ; You already caught a @ .
- text_jump UnknownText_0x1c10dd
- db "@"
-
-Predef2F:
-Predef38:
-Predef39: ; cc0d5
- ret
-
+INCLUDE "event/bug_contest/display_stats.asm"
INCLUDE "battle/anim_commands.asm"
INCLUDE "battle/anim_objects.asm"
@@ -4929,118 +865,8 @@
SECTION "bank38", ROMX
-RotateUnownFrontpic: ; e0000
-; something to do with Unown printer
- push de
- xor a
- call GetSRAMBank
- ld hl, sScratch
- ld bc, 0
-.loop
- push bc
- push hl
- push bc
- ld de, wd002
- call .Copy
- call .Rotate
- ld hl, UnownPrinter_OverworldMapRectangle
- pop bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld hl, wd012
- call .Copy
- pop hl
- ld bc, $10
- add hl, bc
- pop bc
- inc c
- ld a, c
- cp 7 * 7
- jr c, .loop
+INCLUDE "event/print_unown_2.asm"
- ld hl, OverworldMap
- ld de, sScratch
- ld bc, 7 * 7 tiles
- call CopyBytes
- pop hl
- ld de, sScratch
- ld c, 7 * 7
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- call CloseSRAM
- ret
-
-.Copy: ; e004e
- ld c, $10
-.loop_copy
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop_copy
- ret
-
-.Rotate: ; e0057
- ld hl, wd012
- ld e, %10000000
- ld d, 8
-.loop_decompress
- push hl
- ld hl, wd002
- call .CountSetBit
- pop hl
- ld a, b
- ld [hli], a
- push hl
- ld hl, wd003
- call .CountSetBit
- pop hl
- ld a, b
- ld [hli], a
- srl e
- dec d
- jr nz, .loop_decompress
- ret
-
-.CountSetBit: ; e0078
- ld b, 0
- ld c, 8
-.loop_count
- ld a, [hli]
- and e
- jr z, .clear
- scf
- jr .apply
-
-.clear
- and a
-
-.apply
- rr b
- inc hl
- dec c
- jr nz, .loop_count
- ret
-
-overworldmaprect: MACRO
-y = 0
-rept \1
-x = \1 * (\2 +- 1) + y
-rept \2
- dw OverworldMap tile x
-x = x +- \2
-endr
-y = y + 1
-endr
-endm
-
-UnownPrinter_OverworldMapRectangle: ; e008b
- overworldmaprect 7, 7
-
Unknown_e00ed:
; Graphics for an unused Game Corner
; game were meant to be here.
@@ -5067,8 +893,12 @@
SECTION "bank3E", ROMX
INCLUDE "gfx/font.asm"
-INCLUDE "engine/time_capsule/conversion.asm"
-INCLUDE "engine/unowndex.asm"
+INCLUDE "engine/time_capsule.asm"
+INCLUDE "event/name_rater.asm"
+INCLUDE "engine/play_slow_cry.asm"
+INCLUDE "engine/new_pokedex_entry.asm"
+INCLUDE "engine/time_capsule_2.asm"
+INCLUDE "engine/unown_dex.asm"
INCLUDE "event/magikarp.asm"
INCLUDE "battle/hidden_power.asm"
INCLUDE "battle/misc.asm"
@@ -5081,41 +911,23 @@
INCLUDE "event/mom_phone.asm"
-SECTION "mobile_40", ROMX
+INCLUDE "mobile/mobile_40.asm"
-INCLUDE "misc/mobile_40.asm"
-
SECTION "bank41", ROMX
-INCLUDE "misc/gfx_41.asm"
-
+INCLUDE "engine/dma_transfer.asm"
+INCLUDE "gfx/emotes.asm"
INCLUDE "engine/warp_connection.asm"
-INCLUDE "engine/mysterygift.asm"
+INCLUDE "engine/mystery_gift.asm"
INCLUDE "battle/used_move_text.asm"
-INCLUDE "misc/mobile_41.asm"
+INCLUDE "mobile/mobile_41.asm"
+INCLUDE "gfx/overworld_font.asm"
-LoadOverworldFont:: ; 106594
- ld de, .font
- ld hl, VTiles1
- lb bc, BANK(.font), $80
- call Get2bpp
- ld de, .space
- ld hl, VTiles2 tile $7f
- lb bc, BANK(.space), 1
- call Get2bpp
- ret
-; 1065ad
-.font
-INCBIN "gfx/font/overworld.2bpp"
-.space
-INCBIN "gfx/font/space.2bpp"
-
-
SECTION "mobile_42", ROMX
-INCLUDE "misc/mobile_42.asm"
+INCLUDE "mobile/mobile_42.asm"
SECTION "Intro Logo", ROMX
@@ -5126,26 +938,30 @@
SECTION "bank43", ROMX
-INCLUDE "misc/unused_title.asm"
+INCLUDE "engine/unused_title.asm"
INCLUDE "engine/title.asm"
-INCLUDE "misc/mobile_45.asm"
-INCLUDE "misc/mobile_46.asm"
+INCLUDE "mobile/mobile_45.asm"
+
+
+INCLUDE "mobile/mobile_46.asm"
+
+
SECTION "battle_tower_47", ROMX
-INCLUDE "misc/battle_tower_47.asm"
+INCLUDE "mobile/battle_tower_47.asm"
SECTION "bank5B", ROMX
-INCLUDE "misc/mobile_5b.asm"
+INCLUDE "mobile/mobile_5b.asm"
INCLUDE "engine/link_trade.asm"
SECTION "mobile_5c", ROMX
-INCLUDE "misc/mobile_5c.asm"
+INCLUDE "mobile/mobile_5c.asm"
SECTION "Crystal Phone Text 2", ROMX
@@ -5165,9 +981,17 @@
callba FinishBattleAnim
ret
-INCLUDE "misc/mobile_5f.asm"
+SECTION "mobile_5e", ROMX
+INCLUDE "mobile/mobile_5e.asm"
+
+
+SECTION "bank5F", ROMX
+
+INCLUDE "mobile/mobile_5f.asm"
+
+
SECTION "Common Text 1", ROMX
INCLUDE "text/stdtext.asm"
@@ -5194,8 +1018,8 @@
SECTION "bank72", ROMX
-INCLUDE "items/item_names.asm"
-INCLUDE "items/item_descriptions.asm"
+INCLUDE "data/items/item_names.asm"
+INCLUDE "data/items/item_descriptions.asm"
INCLUDE "battle/move_names.asm"
INCLUDE "engine/landmarks.asm"
@@ -5205,447 +1029,19 @@
UnownFont: ; 1dc000
INCBIN "gfx/font/unown_font.2bpp"
-INCLUDE "misc/printer_77.asm"
+INCLUDE "engine/print_party.asm"
-MobileHPIcon: ; 1dc591
-INCBIN "gfx/mobile/hp.1bpp"
-MobileLvIcon: ; 1dc599
-INCBIN "gfx/mobile/lv.1bpp"
-
-
SECTION "bank77_2", ROMX
-Function1dd6a9: ; 1dd6a9
-; XXX
- ld a, b
- ld b, c
- ld c, a
- push bc
- push de
- ld hl, sp+$2
- ld d, h
- ld e, l
- pop hl
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- pop bc
- ret
-
-PrintHoursMins ; 1dd6bb (77:56bb)
-; Hours in b, minutes in c
- ld a, b
- cp 12
- push af
- jr c, .AM
- jr z, .PM
- sub 12
- jr .PM
-.AM:
- or a
- jr nz, .PM
- ld a, 12
-.PM:
- ld b, a
-; Crazy stuff happening with the stack
- push bc
- ld hl, sp+$1
- push de
- push hl
- pop de
- pop hl
- ld [hl], " "
- lb bc, 1, 2
- call PrintNum
- ld [hl], ":"
- inc hl
- ld d, h
- ld e, l
- ld hl, sp+$0
- push de
- push hl
- pop de
- pop hl
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- pop bc
- ld de, String_AM
- pop af
- jr c, .place_am_pm
- ld de, String_PM
-.place_am_pm
- inc hl
- call PlaceString
- ret
-
-String_AM: db "AM@" ; 1dd6fc
-String_PM: db "PM@" ; 1dd6ff
-
+INCLUDE "engine/printhoursmins.asm"
INCLUDE "engine/diploma.asm"
+INCLUDE "engine/pokedex_3.asm"
+INCLUDE "event/catch_tutorial_input.asm"
+INCLUDE "engine/pokegear_2.asm"
+INCLUDE "engine/european_mail.asm"
-LoadSGBPokedexGFX: ; 1ddf1c
- ld hl, SGBPokedexGFX_LZ
- ld de, VTiles2 tile $31
- call Decompress
- ret
-LoadSGBPokedexGFX2: ; 1ddf26 (77:5f26)
- ld hl, SGBPokedexGFX_LZ
- ld de, VTiles2 tile $31
- lb bc, BANK(SGBPokedexGFX_LZ), $3a
- call DecompressRequest2bpp
- ret
-
-SGBPokedexGFX_LZ: ; 1ddf33
-INCBIN "gfx/pokedex/sgb.2bpp.lz"
-
-LoadQuestionMarkPic: ; 1de0d7
- ld hl, .QuestionMarkLZ
- ld de, sScratch
- call Decompress
- ret
-
-.QuestionMarkLZ: ; 1de0e1
-INCBIN "gfx/pics/questionmark/front.2bpp.lz"
-
-DrawPokedexListWindow: ; 1de171 (77:6171)
- ld a, $32
- hlcoord 0, 17
- ld bc, 12
- call ByteFill
- hlcoord 0, 1
- lb bc, 15, 11
- call ClearBox
- ld a, $34
- hlcoord 0, 0
- ld bc, 11
- call ByteFill
- ld a, $39
- hlcoord 0, 16
- ld bc, 11
- call ByteFill
- hlcoord 5, 0
- ld [hl], $3f
- hlcoord 5, 16
- ld [hl], $40
- ld a, [wCurrentDexMode]
- cp DEXMODE_OLD
- jr z, .OldMode
-; scroll bar
- hlcoord 11, 0
- ld [hl], $50
- ld a, $51
- hlcoord 11, 1
- ld b, SCREEN_HEIGHT - 3
- call Bank77_FillColumn
- ld [hl], $52
- jr .Done
-
-.OldMode:
-; no scroll bar
- hlcoord 11, 0
- ld [hl], $66
- ld a, $67
- hlcoord 11, 1
- ld b, SCREEN_HEIGHT - 3
- call Bank77_FillColumn
- ld [hl], $68
-.Done:
- ret
-
-DrawPokedexSearchResultsWindow: ; 1de1d1 (77:61d1)
- ld a, $34
- hlcoord 0, 0
- ld bc, 11
- call ByteFill
- ld a, $39
- hlcoord 0, 10
- ld bc, 11
- call ByteFill
- hlcoord 5, 0
- ld [hl], $3f
- hlcoord 5, 10
- ld [hl], $40
- hlcoord 11, 0
- ld [hl], $66
- ld a, $67
- hlcoord 11, 1
- ld b, SCREEN_HEIGHT / 2
- call Bank77_FillColumn
- ld [hl], $68
- ld a, $34
- hlcoord 0, 11
- ld bc, 11
- call ByteFill
- ld a, $39
- hlcoord 0, 17
- ld bc, 11
- call ByteFill
- hlcoord 11, 11
- ld [hl], $66
- ld a, $67
- hlcoord 11, 12
- ld b, 5
- call Bank77_FillColumn
- ld [hl], $68
- hlcoord 0, 12
- lb bc, 5, 11
- call ClearBox
- ld de, .esults_D
- hlcoord 0, 12
- call PlaceString
- ret
-
-.esults_D ; 1de23c
-; (SEARCH R)
- db "ESULTS"
- next ""
-; (### FOUN)
- next "D!@"
-
-DrawDexEntryScreenRightEdge: ; 1de247
- ld a, [hBGMapAddress]
- ld l, a
- ld a, [hBGMapAddress + 1]
- ld h, a
- push hl
- inc hl
- ld a, l
- ld [hBGMapAddress], a
- ld a, h
- ld [hBGMapAddress + 1], a
- hlcoord 19, 0
- ld [hl], $66
- hlcoord 19, 1
- ld a, $67
- ld b, 15
- call Bank77_FillColumn
- ld [hl], $68
- hlcoord 19, 17
- ld [hl], $3c
- xor a
- ld b, SCREEN_HEIGHT
- hlcoord 19, 0, AttrMap
- call Bank77_FillColumn
- call WaitBGMap2
- pop hl
- ld a, l
- ld [hBGMapAddress], a
- ld a, h
- ld [hBGMapAddress + 1], a
- ret
-
-Bank77_FillColumn: ; 1de27f
- push de
- ld de, SCREEN_WIDTH
-.loop
- ld [hl], a
- add hl, de
- dec b
- jr nz, .loop
- pop de
- ret
-
-_DudeAutoInput_A:: ; 1de28a
- ld hl, DudeAutoInput_A
- jr _DudeAutoInput
-
-_DudeAutoInput_RightA: ; 1de28f
- ld hl, DudeAutoInput_RightA
- jr _DudeAutoInput
-
-_DudeAutoInput_DownA: ; 1de294
- ld hl, DudeAutoInput_DownA
- jr _DudeAutoInput
-
-_DudeAutoInput: ; 1de299
- ld a, BANK(DudeAutoInputs)
- call StartAutoInput
- ret
-
-DudeAutoInputs:
-
-DudeAutoInput_A: ; 1de29f
- db NO_INPUT, $50
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
-
-DudeAutoInput_RightA: ; 1de2a5
- db NO_INPUT, $08
- db D_RIGHT, $00
- db NO_INPUT, $08
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
-
-DudeAutoInput_DownA: ; 1de2af
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db D_DOWN, $00
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
-
-TownMap_ConvertLineBreakCharacters: ; 1de2c5
- ld hl, StringBuffer1
-.loop
- ld a, [hl]
- cp "@"
- jr z, .end
- cp "%"
- jr z, .line_break
- cp "¯"
- jr z, .line_break
- inc hl
- jr .loop
-
-.line_break
- ld [hl], "<LNBRK>"
-
-.end
- ld de, StringBuffer1
- hlcoord 9, 0
- call PlaceString
- ret
-
-PokegearGFX: ; 1de2e4
-INCBIN "gfx/pokegear/pokegear.2bpp.lz"
-
-IsMailEuropean: ; 1de5c8
-; return 1 if French
-; return 2 if German
-; return 3 if Italian
-; return 4 if Spanish
-; return 0 if none of the above
- ld c, $0
- ld hl, sPartyMon1MailAuthorNationality - sPartyMon1Mail
- add hl, de
- ld a, [hli]
- cp "E"
- ret nz
- ld a, [hli]
- inc c
- cp "F"
- ret z
- inc c
- cp "G"
- ret z
- inc c
- cp "I"
- ret z
- inc c
- cp "S"
- ret z
- ld c, $0
- ret
-
-; The regular font.
-StandardEnglishFont: ; 1de5e6
-INCBIN "gfx/font/english.1bpp"
-
-; An extended font.
-FrenchGermanFont: ; 1de9e6
-INCBIN "gfx/font/french_german.1bpp"
-
-; An even more extended font.
-SpanishItalianFont: ; 1dede6
-INCBIN "gfx/font/spanish_italian.1bpp"
-
-HandleFrenchGermanMail: ; 1df1e6
-; called if mail is french or german
-; fix 's 't 'v
- ld b, sPartyMon1MailAuthor - sPartyMon1Mail
- ld h, d
- ld l, e
-.loop
- ld a, [hl]
- cp $dc ; 's in french/german font
- jr nz, .check_intermediate_chars
- ld a, "'s"
- jr .replace
-
-.check_intermediate_chars
- sub "'s"
- jr c, .dont_replace
- cp "'v" - "'s" + 1
- jr nc, .dont_replace
- add $cd
-
-.replace
- ld [hl], a
-
-.dont_replace
- inc hl
- dec b
- jr nz, .loop
- ret
-
-LireLeCourrierAnglais:
-DeutenEnglischenPost: ; 1df203
-; Cette fonction convertit certains des caractères anglais pour
-; leur équivalent dans le jeu de caractères français.
-; Diese Funktion wandelt bestimmte englische Zeichen, um ihre
-; Entsprechung in der Deutschen-Zeichensatz.
- ld b, sPartyMon1MailAuthor - sPartyMon1Mail
- ld h, d
- ld l, e
-.loop
- ld a, [hl]
- cp "'s"
- jr nz, .check_intermediate_chars
- ld a, $dc
- jr .replace
-
-.check_intermediate_chars
- sub $cd
- jr c, .dont_replace
- cp "'v" - "'s" + 1
- jr nc, .dont_replace
- add "'s"
-
-.replace
- ld [hl], a
-
-.dont_replace
- inc hl
- dec b
- jr nz, .loop
- ret
-
-HandleSpanishItalianMail: ; 1df220
-LeerCorreosIngleses:
-LeggiPostaInglese:
-; This function converts certain characters between
-; the English and Spanish/Italian character sets.
-; Esta función convierte ciertos caracteres entre
-; el juego de caracteres Inglés y Español.
-; Questa funzione converte alcuni caratteri tra
-; l'inglese e il set di caratteri italiani.
- ld b, sPartyMon1MailAuthor - sPartyMon1Mail
- ld h, d
- ld l, e
-.loop
- ld a, [hl]
- and $f0
- cp $d0
- jr nz, .dont_replace
- ld a, [hl]
- add $8
- and $f
- or $d0
- ld [hl], a
-
-.dont_replace
- inc hl
- dec b
- jr nz, .loop
- ret
-
-
SECTION "Battle Tower Text", ROMX
INCLUDE "text/battle_tower.asm"
@@ -5656,52 +1052,11 @@
INCLUDE "data/battle_tower_2.asm"
-SECTION "bank7D", ROMX
+SECTION "Mobile News Data", ROMX
- db $cc, $6b, $1e ; XXX
+INCLUDE "mobile/news/news.asm"
-Function1f4003: ; 1f4003
-; XXX
- ld a, $6
- call GetSRAMBank
- ld hl, .unknown_data
- ld de, $a000
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- ret
-.unknown_data
-INCBIN "unknown/1f4018.bin"
-
-Function1f4dbe: ; 1f4dbe
-; XXX
- ld a, $6
- call GetSRAMBank
- ld hl, .unknown_data
- ld de, $a000
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- ret
-
-.unknown_data
-INCBIN "unknown/1f4dd3.bin"
-
-Function1f5d9f: ; 1f5d9f
- ld a, $6
- call GetSRAMBank
- ld hl, .unknown_data
- ld de, $a000
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- ret
-
-.unknown_data
-INCBIN "unknown/1f5db4.bin"
-
-
SECTION "bank7E", ROMX
INCLUDE "engine/battle_tower.asm"
@@ -5711,10 +1066,10 @@
SECTION "bank7F", ROMX
-SECTION "stadium2", ROMX
+SECTION "Mobile Stadium 2", ROMX
IF DEF(CRYSTAL11)
-INCBIN "misc/stadium2_2.bin"
+INCBIN "mobile/stadium/stadium2_2.bin"
ELSE
-INCBIN "misc/stadium2_1.bin"
+INCBIN "mobile/stadium/stadium2_1.bin"
ENDC
--- a/maps.asm
+++ b/maps.asm
@@ -89,7 +89,7 @@
INCLUDE "maps/EarlsPokemonAcademy.asm"
INCLUDE "maps/VioletNicknameSpeechHouse.asm"
INCLUDE "maps/VioletPokecenter1F.asm"
-INCLUDE "maps/VioletOnixTradeHouse.asm"
+INCLUDE "maps/VioletKylesHouse.asm"
INCLUDE "maps/Route32RuinsOfAlphGate.asm"
INCLUDE "maps/Route32Pokecenter1F.asm"
INCLUDE "maps/Route35GoldenrodGate.asm"
--- a/maps/BattleTower1F.asm
+++ b/maps/BattleTower1F.asm
@@ -60,7 +60,7 @@
opentext
writetext Text_BattleTowerWelcomesYou
buttonsound
- writebyte BATTLETOWERACTION_CHECK_EXPLANATION_READ ; if new save file: bit 1, [s1_be4f]
+ writebyte BATTLETOWERACTION_CHECK_EXPLANATION_READ ; if new save file: bit 1, [sBattleTowerSaveFileFlags]
special BattleTowerAction
if_not_equal $0, Script_Menu_ChallengeExplanationCancel
jump Script_BattleTowerIntroductionYesNo
@@ -85,7 +85,7 @@
special Special_TryQuickSave
iffalse Script_Menu_ChallengeExplanationCancel
dotrigger $1
- writebyte BATTLETOWERACTION_SET_EXPLANATION_READ ; set 1, [s1_be4f]
+ writebyte BATTLETOWERACTION_SET_EXPLANATION_READ ; set 1, [sBattleTowerSaveFileFlags]
special BattleTowerAction
special BattleTowerRoomMenu
if_equal $a, Script_Menu_ChallengeExplanationCancel
--- a/maps/BlackthornDragonSpeechHouse.asm
+++ b/maps/BlackthornDragonSpeechHouse.asm
@@ -9,12 +9,12 @@
.MapCallbacks:
db 0
-GrannyScript_0x195949:
- jumptextfaceplayer UnknownText_0x19595c
+BlackthornDragonSpeechHouseGrannyScript:
+ jumptextfaceplayer BlackthornDragonSpeechHouseGrannyText
-Dratini:
+BlackthornDragonSpeechHouseDratiniScript:
opentext
- writetext DratiniText
+ writetext BlackthornDragonSpeechHouseDratiniText
cry DRATINI
waitbutton
closetext
@@ -21,12 +21,14 @@
end
; unused
+BlackthornDragonSpeechHousePictureBookshelf:
jumpstd picturebookshelf
; unused
+BlackthornDragonSpeechHouseMagazineBookshelf:
jumpstd magazinebookshelf
-UnknownText_0x19595c:
+BlackthornDragonSpeechHouseGrannyText:
text "A clan of trainers"
line "who can freely"
@@ -41,7 +43,7 @@
line "this town."
done
-DratiniText:
+BlackthornDragonSpeechHouseDratiniText:
text "DRATINI: Draa!"
done
@@ -62,5 +64,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x195949, -1
- person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Dratini, -1
+ person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornDragonSpeechHouseGrannyScript, -1
+ person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, BlackthornDragonSpeechHouseDratiniScript, -1
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -93,9 +93,9 @@
end
TrainerCooltrainermPaul:
- trainer EVENT_BEAT_COOLTRAINERM_PAUL, COOLTRAINERM, PAUL, CooltrainermPaulSeenText, CooltrainermPaulBeatenText, 0, CooltrainermPaulScript
+ trainer EVENT_BEAT_COOLTRAINERM_PAUL, COOLTRAINERM, PAUL, CooltrainermPaulSeenText, CooltrainermPaulBeatenText, 0, .Script
-CooltrainermPaulScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermPaulAfterBattleText
@@ -104,9 +104,9 @@
end
TrainerCooltrainermMike:
- trainer EVENT_BEAT_COOLTRAINERM_MIKE, COOLTRAINERM, MIKE, CooltrainermMikeSeenText, CooltrainermMikeBeatenText, 0, CooltrainermMikeScript
+ trainer EVENT_BEAT_COOLTRAINERM_MIKE, COOLTRAINERM, MIKE, CooltrainermMikeSeenText, CooltrainermMikeBeatenText, 0, .Script
-CooltrainermMikeScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermMikeAfterBattleText
@@ -115,9 +115,9 @@
end
TrainerCooltrainerfLola:
- trainer EVENT_BEAT_COOLTRAINERF_LOLA, COOLTRAINERF, LOLA, CooltrainerfLolaSeenText, CooltrainerfLolaBeatenText, 0, CooltrainerfLolaScript
+ trainer EVENT_BEAT_COOLTRAINERF_LOLA, COOLTRAINERF, LOLA, CooltrainerfLolaSeenText, CooltrainerfLolaBeatenText, 0, .Script
-CooltrainerfLolaScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfLolaAfterBattleText
--- a/maps/BlackthornGym2F.asm
+++ b/maps/BlackthornGym2F.asm
@@ -61,9 +61,9 @@
jumpstd strengthboulder
TrainerCooltrainermCody:
- trainer EVENT_BEAT_COOLTRAINERM_CODY, COOLTRAINERM, CODY, CooltrainermCodySeenText, CooltrainermCodyBeatenText, 0, CooltrainermCodyScript
+ trainer EVENT_BEAT_COOLTRAINERM_CODY, COOLTRAINERM, CODY, CooltrainermCodySeenText, CooltrainermCodyBeatenText, 0, .Script
-CooltrainermCodyScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermCodyAfterBattleText
@@ -72,9 +72,9 @@
end
TrainerCooltrainerfFran:
- trainer EVENT_BEAT_COOLTRAINERF_FRAN, COOLTRAINERF, FRAN, CooltrainerfFranSeenText, CooltrainerfFranBeatenText, 0, CooltrainerfFranScript
+ trainer EVENT_BEAT_COOLTRAINERF_FRAN, COOLTRAINERF, FRAN, CooltrainerfFranSeenText, CooltrainerfFranBeatenText, 0, .Script
-CooltrainerfFranScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfFranAfterBattleText
--- a/maps/BlackthornMart.asm
+++ b/maps/BlackthornMart.asm
@@ -10,19 +10,19 @@
.MapCallbacks:
db 0
-ClerkScript_0x195a5d:
+BlackthornMartClerkScript:
opentext
pokemart MARTTYPE_STANDARD, MART_BLACKTHORN
closetext
end
-CooltrainerMScript_0x195a64:
- jumptextfaceplayer UnknownText_0x195a6a
+BlackthornMartCooltrainerMScript:
+ jumptextfaceplayer BlackthornMartCooltrainerMText
-BlackBeltScript_0x195a67:
- jumptextfaceplayer UnknownText_0x195ae9
+BlackthornMartBlackBeltScript:
+ jumptextfaceplayer BlackthornMartBlackBeltText
-UnknownText_0x195a6a:
+BlackthornMartCooltrainerMText:
text "You can't buy MAX"
line "REVIVE, but it"
@@ -36,7 +36,7 @@
line "needed for moves."
done
-UnknownText_0x195ae9:
+BlackthornMartBlackBeltText:
text "MAX REPEL keeps"
line "weak #MON away"
cont "from you."
@@ -63,6 +63,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x195a5d, -1
- person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x195a64, -1
- person_event SPRITE_BLACK_BELT, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x195a67, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornMartClerkScript, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornMartCooltrainerMScript, -1
+ person_event SPRITE_BLACK_BELT, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BlackthornMartBlackBeltScript, -1
--- a/maps/BlackthornPokecenter1F.asm
+++ b/maps/BlackthornPokecenter1F.asm
@@ -11,19 +11,19 @@
.MapCallbacks:
db 0
-NurseScript_0x195b79:
+BlackthornPokecenter1FNurseScript:
jumpstd pokecenternurse
-GentlemanScript_0x195b7c:
- jumptextfaceplayer UnknownText_0x195b85
+BlackthornPokecenter1FGentlemanScript:
+ jumptextfaceplayer BlackthornPokecenter1FGentlemanText
-TwinScript_0x195b7f:
- jumptextfaceplayer UnknownText_0x195bfd
+BlackthornPokecenter1FTwinScript:
+ jumptextfaceplayer BlackthornPokecenter1FTwinText
-CooltrainerMScript_0x195b82:
+BlackthornPokecenter1FCooltrainerMScript:
jumpstd happinesschecknpc
-UnknownText_0x195b85:
+BlackthornPokecenter1FGentlemanText:
text "Deep inside far-"
line "off INDIGO PLATEAU"
@@ -37,7 +37,7 @@
line "the country."
done
-UnknownText_0x195bfd:
+BlackthornPokecenter1FTwinText:
text "There was this"
line "move I just had"
@@ -67,7 +67,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x195b79, -1
- person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x195b7c, -1
- person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x195b7f, -1
- person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x195b82, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornPokecenter1FNurseScript, -1
+ person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornPokecenter1FGentlemanScript, -1
+ person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BlackthornPokecenter1FTwinScript, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BlackthornPokecenter1FCooltrainerMScript, -1
--- a/maps/BluesHouse.asm
+++ b/maps/BluesHouse.asm
@@ -8,29 +8,29 @@
.MapCallbacks:
db 0
-DaisyScript_0x19b0d0:
+DaisyScript:
faceplayer
opentext
checkcode VAR_HOUR
- if_equal $f, UnknownScript_0x19b0de
- writetext UnknownText_0x19b130
+ if_equal 15, .ThreePM
+ writetext DaisyHelloText
waitbutton
closetext
end
-UnknownScript_0x19b0de:
+.ThreePM:
checkflag ENGINE_TEA_IN_BLUES_HOUSE
- iftrue UnknownScript_0x19b11e
- writetext UnknownText_0x19b1b6
+ iftrue .AlreadyGroomedMon
+ writetext DaisyOfferGroomingText
yesorno
- iffalse UnknownScript_0x19b124
- writetext UnknownText_0x19b244
+ iffalse .Refused
+ writetext DaisyWhichMonText
waitbutton
special Special_DaisyMassage
- if_equal 0, UnknownScript_0x19b124
- if_equal 1, UnknownScript_0x19b12a
+ if_equal 0, .Refused
+ if_equal 1, .CantGroomEgg
setflag ENGINE_TEA_IN_BLUES_HOUSE
- writetext UnknownText_0x19b266
+ writetext DaisyAlrightText
waitbutton
closetext
special FadeOutPalettes
@@ -39,33 +39,33 @@
special FadeInPalettes
special RestartMapMusic
opentext
- writetext UnknownText_0x19b296
+ writetext GroomedMonLooksContentText
special PlayCurMonCry
buttonsound
- writetext UnknownText_0x19b2aa
+ writetext DaisyAllDoneText
waitbutton
closetext
end
-UnknownScript_0x19b11e:
- writetext UnknownText_0x19b2fa
+.AlreadyGroomedMon:
+ writetext DaisyAlreadyGroomedText
waitbutton
closetext
end
-UnknownScript_0x19b124:
- writetext UnknownText_0x19b334
+.Refused:
+ writetext DaisyRefusedText
waitbutton
closetext
end
-UnknownScript_0x19b12a:
- writetext UnknownText_0x19b377
+.CantGroomEgg:
+ writetext DaisyCantGroomEggText
waitbutton
closetext
end
-UnknownText_0x19b130:
+DaisyHelloText:
text "DAISY: Hi! My kid"
line "brother is the GYM"
@@ -79,7 +79,7 @@
line "for the trainers."
done
-UnknownText_0x19b1b6:
+DaisyOfferGroomingText:
text "DAISY: Hi! Good"
line "timing. I'm about"
cont "to have some tea."
@@ -94,24 +94,24 @@
line "to groom one?"
done
-UnknownText_0x19b244:
+DaisyWhichMonText:
text "DAISY: Which one"
line "should I groom?"
done
-UnknownText_0x19b266:
+DaisyAlrightText:
text "DAISY: OK, I'll"
line "get it looking"
cont "nice in no time."
done
-UnknownText_0x19b296:
+GroomedMonLooksContentText:
text_from_ram StringBuffer3
text " looks"
line "content."
done
-UnknownText_0x19b2aa:
+DaisyAllDoneText:
text "DAISY: There you"
line "go! All done."
@@ -122,7 +122,7 @@
line "#MON."
done
-UnknownText_0x19b2fa:
+DaisyAlreadyGroomedText:
text "DAISY: I always"
line "have tea around"
@@ -130,7 +130,7 @@
line "join me."
done
-UnknownText_0x19b334:
+DaisyRefusedText:
text "DAISY: You don't"
line "want to have one"
@@ -138,7 +138,7 @@
line "just have tea."
done
-UnknownText_0x19b377:
+DaisyCantGroomEggText:
text "DAISY: Oh, sorry."
line "I honestly can't"
cont "groom an EGG."
@@ -161,4 +161,4 @@
.PersonEvents:
db 1
- person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaisyScript_0x19b0d0, -1
+ person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaisyScript, -1
--- a/maps/CeladonCity.asm
+++ b/maps/CeladonCity.asm
@@ -21,8 +21,8 @@
setflag ENGINE_FLYPOINT_CELADON
return
-FisherScript_0x1a9f43:
- jumptextfaceplayer UnknownText_0x1a9f7d
+CeladonCityFisherScript:
+ jumptextfaceplayer CeladonCityFisherText
CeladonCityPoliwrath:
opentext
@@ -32,26 +32,26 @@
closetext
end
-TeacherScript_0x1a9f50:
- jumptextfaceplayer UnknownText_0x1a9fde
+CeladonCityTeacher1Script:
+ jumptextfaceplayer CeladonCityTeacher1Text
-GrampsScript_0x1a9f53:
- jumptextfaceplayer UnknownText_0x1aa043
+CeladonCityGramps1Script:
+ jumptextfaceplayer CeladonCityGramps1Text
-GrampsScript_0x1a9f56:
- jumptextfaceplayer UnknownText_0x1aa0dc
+CeladonCityGramps2Script:
+ jumptextfaceplayer CeladonCityGramps2Text
-YoungsterScript_0x1a9f59:
- jumptextfaceplayer UnknownText_0x1aa115
+CeladonCityYoungster1Script:
+ jumptextfaceplayer CeladonCityYoungster1Text
-YoungsterScript_0x1a9f5c:
- jumptextfaceplayer UnknownText_0x1aa155
+CeladonCityYoungster2Script:
+ jumptextfaceplayer CeladonCityYoungster2Text
-TeacherScript_0x1a9f5f:
- jumptextfaceplayer UnknownText_0x1aa1bd
+CeladonCityTeacher2Script:
+ jumptextfaceplayer CeladonCityTeacher2Text
-LassScript_0x1a9f62:
- jumptextfaceplayer UnknownText_0x1aa306
+CeladonCityLassScript:
+ jumptextfaceplayer CeladonCityLassText
CeladonCitySign:
jumptext CeladonCitySignText
@@ -77,7 +77,7 @@
CeladonCityHiddenPpUp:
dwb EVENT_CELADON_CITY_HIDDEN_PP_UP, PP_UP
-UnknownText_0x1a9f7d:
+CeladonCityFisherText:
text "This POLIWRATH is"
line "my partner."
@@ -90,7 +90,7 @@
text "POLIWRATH: Croak!"
done
-UnknownText_0x1a9fde:
+CeladonCityTeacher1Text:
text "I lost at the slot"
line "machines again…"
@@ -101,7 +101,7 @@
line "them out too."
done
-UnknownText_0x1aa043:
+CeladonCityGramps1Text:
text "GRIMER have been"
line "appearing lately."
@@ -116,7 +116,7 @@
cont "a serious problem…"
done
-UnknownText_0x1aa0dc:
+CeladonCityGramps2Text:
text "Nihihi! This GYM"
line "is great! Only"
@@ -124,7 +124,7 @@
line "here!"
done
-UnknownText_0x1aa115:
+CeladonCityYoungster1Text:
text "Want to know a"
line "secret?"
@@ -133,7 +133,7 @@
cont "door."
done
-UnknownText_0x1aa155:
+CeladonCityYoungster2Text:
text "They're holding an"
line "eating contest at"
cont "the restaurant."
@@ -143,7 +143,7 @@
cont "feel bloated…"
done
-UnknownText_0x1aa1bd:
+CeladonCityTeacher2Text:
text "CELADON DEPT.STORE"
line "has the biggest"
@@ -160,8 +160,8 @@
line "a sales clerk."
done
-; possibly unused
-UnknownText_0x1aa25b:
+; unused
+CeladonCityUnusedPokeComCenterText:
text "I love being"
line "surrounded by tall"
cont "buildings!"
@@ -179,7 +179,7 @@
line "KANTO…"
done
-UnknownText_0x1aa306:
+CeladonCityLassText:
text "Looking at the"
line "ground while I was"
@@ -266,12 +266,12 @@
.PersonEvents:
db 9
- person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a9f43, -1
+ person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonCityFisherScript, -1
person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonCityPoliwrath, -1
- person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a9f50, -1
- person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9f53, -1
- person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9f56, -1
- person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9f59, -1
- person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9f5c, -1
- person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a9f5f, -1
- person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x1a9f62, -1
+ person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonCityTeacher1Script, -1
+ person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, CeladonCityGramps1Script, -1
+ person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonCityGramps2Script, -1
+ person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonCityYoungster1Script, -1
+ person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonCityYoungster2Script, -1
+ person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonCityTeacher2Script, -1
+ person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonCityLassScript, -1
--- a/maps/CeladonDeptStore1F.asm
+++ b/maps/CeladonDeptStore1F.asm
@@ -10,14 +10,14 @@
.MapCallbacks:
db 0
-ReceptionistScript_0x709e0:
- jumptextfaceplayer UnknownText_0x709ef
+CeladonDeptStore1FReceptionistScript:
+ jumptextfaceplayer CeladonDeptStore1FReceptionistText
-GentlemanScript_0x709e3:
- jumptextfaceplayer UnknownText_0x70a35
+CeladonDeptStore1FGentlemanScript:
+ jumptextfaceplayer CeladonDeptStore1FGentlemanText
-TeacherScript_0x709e6:
- jumptextfaceplayer UnknownText_0x70aa9
+CeladonDeptStore1FTeacherScript:
+ jumptextfaceplayer CeladonDeptStore1FTeacherText
CeladonDeptStore1FDirectory:
jumptext CeladonDeptStore1FDirectoryText
@@ -25,7 +25,7 @@
CeladonDeptStore1FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x709ef:
+CeladonDeptStore1FReceptionistText:
text "Hello! Welcome to"
line "CELADON DEPT."
cont "STORE!"
@@ -34,7 +34,7 @@
line "on the wall."
done
-UnknownText_0x70a35:
+CeladonDeptStore1FGentlemanText:
text "This DEPT.STORE is"
line "part of the same"
@@ -46,7 +46,7 @@
cont "same time."
done
-UnknownText_0x70aa9:
+CeladonDeptStore1FTeacherText:
text "This is my first"
line "time here."
@@ -94,6 +94,6 @@
.PersonEvents:
db 3
- person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x709e0, -1
- person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x709e3, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x709e6, -1
+ person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore1FReceptionistScript, -1
+ person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonDeptStore1FGentlemanScript, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore1FTeacherScript, -1
--- a/maps/CeladonDeptStore2F.asm
+++ b/maps/CeladonDeptStore2F.asm
@@ -25,11 +25,11 @@
closetext
end
-PokefanMScript_0x70bbd:
- jumptextfaceplayer UnknownText_0x70bc9
+CeladonDeptStore2FPokefanMScript:
+ jumptextfaceplayer CeladonDeptStore2FPokefanMText
-YoungsterScript_0x70bc0:
- jumptextfaceplayer UnknownText_0x70c3e
+CeladonDeptStore2FYoungsterScript:
+ jumptextfaceplayer CeladonDeptStore2FYoungsterText
CeladonDeptStore2FDirectory:
jumptext CeladonDeptStore2FDirectoryText
@@ -37,7 +37,7 @@
CeladonDeptStore2FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x70bc9:
+CeladonDeptStore2FPokefanMText:
text "I just recently"
line "became a trainer."
@@ -49,7 +49,7 @@
cont "convenient items."
done
-UnknownText_0x70c3e:
+CeladonDeptStore2FYoungsterText:
text "My dad's having a"
line "hard time learning"
@@ -90,5 +90,5 @@
db 4
person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70bad, -1
person_event SPRITE_CLERK, 5, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70bb5, -1
- person_event SPRITE_POKEFAN_M, 2, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x70bbd, -1
- person_event SPRITE_YOUNGSTER, 2, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70bc0, -1
+ person_event SPRITE_POKEFAN_M, 2, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore2FPokefanMScript, -1
+ person_event SPRITE_YOUNGSTER, 2, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore2FYoungsterScript, -1
--- a/maps/CeladonDeptStore3F.asm
+++ b/maps/CeladonDeptStore3F.asm
@@ -19,29 +19,29 @@
closetext
end
-YoungsterScript_0x70d31:
- jumptextfaceplayer UnknownText_0x70d53
+CeladonDeptStore3FYoungsterScript:
+ jumptextfaceplayer CeladonDeptStore3FYoungsterText
-GameboyKidScript_0x70d34:
+CeladonDeptStore3FGameboyKid1Script:
faceplayer
opentext
- writetext UnknownText_0x70d86
+ writetext CeladonDeptStore3FGameboyKid1Text
waitbutton
closetext
spriteface CELADONDEPTSTORE3F_GAMEBOY_KID1, DOWN
end
-GameboyKidScript_0x70d3f:
+CeladonDeptStore3FGameboyKid2Script:
faceplayer
opentext
- writetext UnknownText_0x70dc7
+ writetext CeladonDeptStore3FGameboyKid2Text
waitbutton
closetext
spriteface CELADONDEPTSTORE3F_GAMEBOY_KID2, DOWN
end
-SuperNerdScript_0x70d4a:
- jumptextfaceplayer UnknownText_0x70e61
+CeladonDeptStore3FSuperNerdScript:
+ jumptextfaceplayer CeladonDeptStore3FSuperNerdText
CeladonDeptStore3FElevatorButton:
jumpstd elevatorbutton
@@ -49,7 +49,7 @@
CeladonDeptStore3FDirectory:
jumptext CeladonDeptStore3FDirectoryText
-UnknownText_0x70d53:
+CeladonDeptStore3FYoungsterText:
text "I can't decide"
line "which #MON I"
@@ -57,7 +57,7 @@
line "on…"
done
-UnknownText_0x70d86:
+CeladonDeptStore3FGameboyKid1Text:
text "Uh-oh! I traded my"
line "#MON without"
@@ -65,7 +65,7 @@
line "GRADE from it."
done
-UnknownText_0x70dc7:
+CeladonDeptStore3FGameboyKid2Text:
text "Yeah! I'm finally"
line "getting a PORYGON!"
@@ -82,7 +82,7 @@
cont "ferent #MON!"
done
-UnknownText_0x70e61:
+CeladonDeptStore3FSuperNerdText:
text "The TM SHOP sells"
line "some rare moves."
done
@@ -115,7 +115,7 @@
.PersonEvents:
db 5
person_event SPRITE_CLERK, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70d29, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70d31, -1
- person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x70d34, -1
- person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x70d3f, -1
- person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x70d4a, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore3FYoungsterScript, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore3FGameboyKid1Script, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonDeptStore3FGameboyKid2Script, -1
+ person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore3FSuperNerdScript, -1
--- a/maps/CeladonDeptStore4F.asm
+++ b/maps/CeladonDeptStore4F.asm
@@ -17,11 +17,11 @@
closetext
end
-SuperNerdScript_0x70f15:
- jumptextfaceplayer UnknownText_0x70f21
+CeladonDeptStore4FSuperNerdScript:
+ jumptextfaceplayer CeladonDeptStore4FSuperNerdText
-YoungsterScript_0x70f18:
- jumptextfaceplayer UnknownText_0x70f55
+CeladonDeptStore4FYoungsterScript:
+ jumptextfaceplayer CeladonDeptStore4FYoungsterText
CeladonDeptStore4FDirectory:
jumptext CeladonDeptStore4FDirectoryText
@@ -29,13 +29,13 @@
CeladonDeptStore4FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x70f21:
+CeladonDeptStore4FSuperNerdText:
text "I'm here to buy"
line "SURF MAIL to send"
cont "to my girlfriend."
done
-UnknownText_0x70f55:
+CeladonDeptStore4FYoungsterText:
text "This is the only"
line "place where you"
@@ -71,5 +71,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70f0d, -1
- person_event SPRITE_SUPER_NERD, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x70f15, -1
- person_event SPRITE_YOUNGSTER, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70f18, -1
+ person_event SPRITE_SUPER_NERD, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore4FSuperNerdScript, -1
+ person_event SPRITE_YOUNGSTER, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonDeptStore4FYoungsterScript, -1
--- a/maps/CeladonDeptStore5F.asm
+++ b/maps/CeladonDeptStore5F.asm
@@ -26,14 +26,14 @@
closetext
end
-GentlemanScript_0x71014:
- jumptextfaceplayer UnknownText_0x71023
+CeladonDeptStore5FGentlemanScript:
+ jumptextfaceplayer CeladonDeptStore5FGentlemanText
-SailorScript_0x71017:
- jumptextfaceplayer UnknownText_0x71072
+CeladonDeptStore5FSailorScript:
+ jumptextfaceplayer CeladonDeptStore5FSailorText
-TeacherScript_0x7101a:
- jumptextfaceplayer UnknownText_0x710b6
+CeladonDeptStore5FTeacherScript:
+ jumptextfaceplayer CeladonDeptStore5FTeacherText
CeladonDeptStore5FDirectory:
jumptext CeladonDeptStore5FDirectoryText
@@ -41,7 +41,7 @@
CeladonDeptStore5FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x71023:
+CeladonDeptStore5FGentlemanText:
text "I want to buy some"
line "items that raise"
@@ -50,7 +50,7 @@
cont "enough money…"
done
-UnknownText_0x71072:
+CeladonDeptStore5FSailorText:
text "I want PP UP, so I"
line "can raise the PP"
@@ -58,7 +58,7 @@
line "can't buy it…"
done
-UnknownText_0x710b6:
+CeladonDeptStore5FTeacherText:
text "Using items on"
line "them makes #-"
cont "MON happy."
@@ -93,6 +93,6 @@
db 5
person_event SPRITE_CLERK, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x71004, -1
person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7100c, -1
- person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x71014, -1
- person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x71017, -1
- person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7101a, -1
+ person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore5FGentlemanScript, -1
+ person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonDeptStore5FSailorScript, -1
+ person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore5FTeacherScript, -1
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -14,13 +14,13 @@
changeblock $c, $0, $3
return
-SuperNerdScript_0x7117a:
- jumptextfaceplayer UnknownText_0x712c7
+CeladonDeptStore6FSuperNerdScript:
+ jumptextfaceplayer CeladonDeptStore6FSuperNerdText
-YoungsterScript_0x7117d:
- jumptextfaceplayer UnknownText_0x71310
+CeladonDeptStore6FYoungsterScript:
+ jumptextfaceplayer CeladonDeptStore6FYoungsterText
-CeladonVendingMachine:
+CeladonDeptStore6FVendingMachine:
opentext
writetext CeladonVendingText
.Start:
@@ -98,7 +98,8 @@
CeladonDeptStore6FDirectory:
jumptext CeladonDeptStore6FDirectoryText
-UnknownScript_0x7124d:
+; unused
+CeladonDeptStore6FElevatorButton:
jumpstd elevatorbutton
CeladonVendingText:
@@ -125,7 +126,7 @@
line "room for stuff…"
done
-UnknownText_0x712c7:
+CeladonDeptStore6FSuperNerdText:
text "A vending machine"
line "with a prize rou-"
cont "lette…"
@@ -134,7 +135,7 @@
line "those anymore."
done
-UnknownText_0x71310:
+CeladonDeptStore6FYoungsterText:
text "Aww! There's no"
line "games here!"
@@ -162,12 +163,12 @@
db 6
signpost 0, 14, SIGNPOST_READ, CeladonDeptStore6FDirectory
signpost 0, 3, SIGNPOST_READ, CeladonDeptStore1FElevatorButton
- signpost 1, 8, SIGNPOST_UP, CeladonVendingMachine
- signpost 1, 9, SIGNPOST_UP, CeladonVendingMachine
- signpost 1, 10, SIGNPOST_UP, CeladonVendingMachine
- signpost 1, 11, SIGNPOST_UP, CeladonVendingMachine
+ signpost 1, 8, SIGNPOST_UP, CeladonDeptStore6FVendingMachine
+ signpost 1, 9, SIGNPOST_UP, CeladonDeptStore6FVendingMachine
+ signpost 1, 10, SIGNPOST_UP, CeladonDeptStore6FVendingMachine
+ signpost 1, 11, SIGNPOST_UP, CeladonDeptStore6FVendingMachine
.PersonEvents:
db 2
- person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7117a, -1
- person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7117d, -1
+ person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonDeptStore6FSuperNerdScript, -1
+ person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore6FYoungsterScript, -1
--- a/maps/CeladonDeptStoreElevator.asm
+++ b/maps/CeladonDeptStoreElevator.asm
@@ -5,20 +5,19 @@
.MapCallbacks:
db 0
-MapCeladonDeptStoreElevatorSignpost0Script:
+CeladonDeptStoreElevatorScript:
opentext
- elevator Elevator_0x713be
+ elevator CeladonDeptStoreElevatorData
closetext
- iffalse UnknownScript_0x713bd
+ iffalse .Done
pause 5
playsound SFX_ELEVATOR
earthquake 60
waitsfx
-UnknownScript_0x713bd:
+.Done:
end
-
-Elevator_0x713be:
+CeladonDeptStoreElevatorData:
db 6 ; floors
elevfloor FLOOR_1F, 4, CELADON_DEPT_STORE_1F
elevfloor FLOOR_2F, 3, CELADON_DEPT_STORE_2F
@@ -28,7 +27,6 @@
elevfloor FLOOR_6F, 2, CELADON_DEPT_STORE_6F
db $ff ; end
-
CeladonDeptStoreElevator_MapEventHeader:
; filler
db 0, 0
@@ -35,8 +33,8 @@
.Warps:
db 2
- warp_def $3, $1, 255, CELADON_DEPT_STORE_1F
- warp_def $3, $2, 255, CELADON_DEPT_STORE_1F
+ warp_def $3, $1, -1, CELADON_DEPT_STORE_1F
+ warp_def $3, $2, -1, CELADON_DEPT_STORE_1F
.XYTriggers:
db 0
@@ -43,7 +41,7 @@
.Signposts:
db 1
- signpost 0, 3, SIGNPOST_READ, MapCeladonDeptStoreElevatorSignpost0Script
+ signpost 0, 3, SIGNPOST_READ, CeladonDeptStoreElevatorScript
.PersonEvents:
db 0
--- a/maps/CeladonGameCorner.asm
+++ b/maps/CeladonGameCorner.asm
@@ -16,62 +16,62 @@
.MapCallbacks:
db 0
-ClerkScript_0x7211d:
+CeladonGameCornerClerkScript:
jumpstd gamecornercoinvendor
-ReceptionistScript_0x72120:
- jumptextfaceplayer UnknownText_0x721d0
+CeladonGameCornerReceptionistScript:
+ jumptextfaceplayer CeladonGameCornerReceptionistText
-PokefanMScript_0x72123:
+CeladonGameCornerPokefanMScript:
faceplayer
opentext
- writetext UnknownText_0x72215
+ writetext CeladonGameCornerPokefanMText
waitbutton
closetext
spriteface CELADONGAMECORNER_POKEFAN_M, LEFT
end
-TeacherScript_0x7212e:
+CeladonGameCornerTeacherScript:
faceplayer
opentext
- writetext UnknownText_0x72242
+ writetext CeladonGameCornerTeacherText
waitbutton
closetext
spriteface CELADONGAMECORNER_TEACHER, RIGHT
end
-FishingGuruScript_0x72139:
+CeladonGameCornerFishingGuruScript:
faceplayer
opentext
- writetext UnknownText_0x72295
+ writetext CeladonGameCornerFishingGuruText
waitbutton
closetext
spriteface CELADONGAMECORNER_FISHING_GURU, RIGHT
end
-FisherScript_0x72144:
+CeladonGameCornerFisherScript:
faceplayer
opentext
checkevent EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
- iftrue .UnknownScript_0x72169
- writetext UnknownText_0x722dc
+ iftrue .GotCoins
+ writetext CeladonGameCornerFisherText1
buttonsound
checkitem COIN_CASE
- iffalse UnknownScript_0x7217b
+ iffalse .NoCoinCase
checkcoins 9998
- if_equal $0, UnknownScript_0x72184
+ if_equal $0, .FullCoinCase
stringtotext .coinname, $1
- scall .UnknownScript_0x72172
+ scall .GiveCoins
givecoins 18
setevent EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
-.UnknownScript_0x72169:
- writetext UnknownText_0x72345
+.GotCoins:
+ writetext CeladonGameCornerFisherText2
waitbutton
closetext
spriteface LAST_TALKED, LEFT
end
-.UnknownScript_0x72172:
+.GiveCoins:
jumpstd receiveitem
end
@@ -78,15 +78,15 @@
.coinname
db "COIN@"
-UnknownScript_0x7217b:
- writetext UnknownText_0x7238a
+.NoCoinCase:
+ writetext CeladonGameCornerFisherNoCoinCaseText
waitbutton
closetext
spriteface LAST_TALKED, LEFT
end
-UnknownScript_0x72184:
- writetext UnknownText_0x723d9
+.FullCoinCase:
+ writetext CeladonGameCornerFisherFullCoinCaseText
waitbutton
closetext
spriteface LAST_TALKED, LEFT
@@ -95,24 +95,24 @@
CeladonGymGuyScript:
jumptextfaceplayer CeladonGymGuyText
-GrampsScript_0x72190:
+CeladonGameCornerGrampsScript:
faceplayer
opentext
- writetext UnknownText_0x724ad
+ writetext CeladonGameCornerGrampsText
waitbutton
closetext
spriteface CELADONGAMECORNER_GRAMPS, LEFT
end
-MapCeladonGameCornerSignpost36Script:
- jumptext UnknownText_0x724f3
+CeladonGameCornerPoster1Script:
+ jumptext CeladonGameCornerPoster1Text
-MapCeladonGameCornerSignpost37Script:
- jumptext UnknownText_0x72521
+CeladonGameCornerPoster2Script:
+ jumptext CeladonGameCornerPoster2Text
-MapCeladonGameCornerSignpost35Script:
+CeladonGameCornerLuckySlotMachineScript:
random $6
- if_equal $0, MapCeladonGameCornerSignpost16Script
+ if_equal $0, CeladonGameCornerSlotMachineScript
refreshscreen $0
writebyte $0
special Special_SlotMachine
@@ -119,7 +119,7 @@
closetext
end
-MapCeladonGameCornerSignpost16Script:
+CeladonGameCornerSlotMachineScript:
refreshscreen $0
writebyte $1
special Special_SlotMachine
@@ -126,14 +126,14 @@
closetext
end
-MapCeladonGameCornerSignpost11Script:
+CeladonGameCornerCardFlipScript:
refreshscreen $0
special Special_CardFlip
closetext
end
-MapCeladonGameCornerSignpost32Script:
- jumptext UnknownText_0x7254f
+CeladonGameCornerLighterScript:
+ jumptext CeladonGameCornerLighterText
MapCeladonGameCornerSignpost9Script:
opentext
@@ -149,7 +149,7 @@
turn_head LEFT
step_end
-UnknownText_0x721d0:
+CeladonGameCornerReceptionistText:
text "Welcome!"
para "You may exchange"
@@ -159,13 +159,13 @@
line "next door."
done
-UnknownText_0x72215:
+CeladonGameCornerPokefanMText:
text "The slot machines"
line "are all state of"
cont "the art."
done
-UnknownText_0x72242:
+CeladonGameCornerTeacherText:
text "It's this machine"
line "I want."
@@ -176,7 +176,7 @@
line "today."
done
-UnknownText_0x72295:
+CeladonGameCornerFishingGuruText:
text "I think this slot"
line "machine will pay"
cont "out…"
@@ -185,7 +185,7 @@
line "among machines."
done
-UnknownText_0x722dc:
+CeladonGameCornerFisherText1:
text "Gahahaha!"
para "The coins just"
@@ -198,7 +198,7 @@
line "with you!"
done
-UnknownText_0x72345:
+CeladonGameCornerFisherText2:
text "Gahahaha!"
para "It makes me feel"
@@ -208,7 +208,7 @@
line "people!"
done
-UnknownText_0x7238a:
+CeladonGameCornerFisherNoCoinCaseText:
text "Hey, you don't"
line "have a COIN CASE."
@@ -217,7 +217,7 @@
cont "coins, kid?"
done
-UnknownText_0x723d9:
+CeladonGameCornerFisherFullCoinCaseText:
text "Hey, your COIN"
line "CASE is full, kid."
@@ -241,7 +241,7 @@
line "enough coins yet…"
done
-UnknownText_0x724ad:
+CeladonGameCornerGrampsText:
text "Hmmm… The odds are"
line "surely better for"
@@ -249,7 +249,7 @@
line "but… What to do?"
done
-UnknownText_0x724f3:
+CeladonGameCornerPoster1Text:
text "Hey!"
para "Underneath this"
@@ -258,7 +258,7 @@
para "There's nothing!"
done
-UnknownText_0x72521:
+CeladonGameCornerPoster2Text:
text "Hey!"
para "Underneath this"
@@ -267,7 +267,7 @@
para "There's nothing!"
done
-UnknownText_0x7254f:
+CeladonGameCornerLighterText:
text "There's a lighter"
line "here."
done
@@ -295,53 +295,53 @@
.Signposts:
db 38
- signpost 6, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 7, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 8, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 9, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 10, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 11, 1, SIGNPOST_LEFT, MapCeladonGameCornerSignpost11Script
- signpost 6, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 7, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 8, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+ signpost 6, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 7, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 8, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 9, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 10, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 11, 1, SIGNPOST_LEFT, CeladonGameCornerCardFlipScript
+ signpost 6, 6, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 7, 6, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 8, 6, SIGNPOST_READ, CeladonGameCornerCardFlipScript
signpost 9, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost9Script
- signpost 10, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 11, 6, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost11Script
- signpost 6, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 7, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 8, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 9, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 10, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost16Script
- signpost 11, 7, SIGNPOST_LEFT, MapCeladonGameCornerSignpost35Script
- signpost 6, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 7, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 8, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 9, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 10, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 11, 12, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost35Script
- signpost 6, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 7, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 8, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 9, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 10, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 11, 13, SIGNPOST_LEFT, MapCeladonGameCornerSignpost35Script
- signpost 6, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 7, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 8, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost32Script
- signpost 9, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 10, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 11, 18, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost35Script
- signpost 0, 15, SIGNPOST_READ, MapCeladonGameCornerSignpost36Script
- signpost 0, 9, SIGNPOST_READ, MapCeladonGameCornerSignpost37Script
+ signpost 10, 6, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 11, 6, SIGNPOST_RIGHT, CeladonGameCornerCardFlipScript
+ signpost 6, 7, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 7, 7, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 8, 7, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 9, 7, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 10, 7, SIGNPOST_READ, CeladonGameCornerSlotMachineScript
+ signpost 11, 7, SIGNPOST_LEFT, CeladonGameCornerLuckySlotMachineScript
+ signpost 6, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 7, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 8, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 9, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 10, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 11, 12, SIGNPOST_RIGHT, CeladonGameCornerLuckySlotMachineScript
+ signpost 6, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 7, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 8, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 9, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 10, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 11, 13, SIGNPOST_LEFT, CeladonGameCornerLuckySlotMachineScript
+ signpost 6, 18, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 7, 18, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 8, 18, SIGNPOST_READ, CeladonGameCornerLighterScript
+ signpost 9, 18, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 10, 18, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 11, 18, SIGNPOST_RIGHT, CeladonGameCornerLuckySlotMachineScript
+ signpost 0, 15, SIGNPOST_READ, CeladonGameCornerPoster1Script
+ signpost 0, 9, SIGNPOST_READ, CeladonGameCornerPoster2Script
.PersonEvents:
db 9
- person_event SPRITE_CLERK, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7211d, -1
- person_event SPRITE_RECEPTIONIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x72120, -1
- person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x72123, -1
- person_event SPRITE_TEACHER, 7, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7212e, -1
- person_event SPRITE_FISHING_GURU, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x72139, -1
- person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x72144, -1
- person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, NITE, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x72144, -1
+ person_event SPRITE_CLERK, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonGameCornerClerkScript, -1
+ person_event SPRITE_RECEPTIONIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonGameCornerReceptionistScript, -1
+ person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonGameCornerPokefanMScript, -1
+ person_event SPRITE_TEACHER, 7, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonGameCornerTeacherScript, -1
+ person_event SPRITE_FISHING_GURU, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonGameCornerFishingGuruScript, -1
+ person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonGameCornerFisherScript, -1
+ person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, NITE, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonGameCornerFisherScript, -1
person_event SPRITE_GYM_GUY, 3, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonGymGuyScript, -1
- person_event SPRITE_GRAMPS, 8, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x72190, -1
+ person_event SPRITE_GRAMPS, 8, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonGameCornerGrampsScript, -1
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -50,9 +50,9 @@
end
TrainerLassMichelle:
- trainer EVENT_BEAT_LASS_MICHELLE, LASS, MICHELLE, LassMichelleSeenText, LassMichelleBeatenText, 0, LassMichelleScript
+ trainer EVENT_BEAT_LASS_MICHELLE, LASS, MICHELLE, LassMichelleSeenText, LassMichelleBeatenText, 0, .Script
-LassMichelleScript:
+.Script:
end_if_just_battled
opentext
writetext LassMichelleAfterBattleText
@@ -61,9 +61,9 @@
end
TrainerPicnickerTanya:
- trainer EVENT_BEAT_PICNICKER_TANYA, PICNICKER, TANYA, PicnickerTanyaSeenText, PicnickerTanyaBeatenText, 0, PicnickerTanyaScript
+ trainer EVENT_BEAT_PICNICKER_TANYA, PICNICKER, TANYA, PicnickerTanyaSeenText, PicnickerTanyaBeatenText, 0, .Script
-PicnickerTanyaScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerTanyaAfterBattleText
@@ -72,9 +72,9 @@
end
TrainerBeautyJulia:
- trainer EVENT_BEAT_BEAUTY_JULIA, BEAUTY, JULIA, BeautyJuliaSeenText, BeautyJuliaBeatenText, 0, BeautyJuliaScript
+ trainer EVENT_BEAT_BEAUTY_JULIA, BEAUTY, JULIA, BeautyJuliaSeenText, BeautyJuliaBeatenText, 0, .Script
-BeautyJuliaScript:
+.Script:
end_if_just_battled
opentext
writetext BeautyJuliaAfterBattleText
@@ -83,9 +83,9 @@
end
TrainerTwinsJoandzoe1:
- trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE1, TwinsJoandzoe1SeenText, TwinsJoandzoe1BeatenText, 0, TwinsJoandzoe1Script
+ trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE1, TwinsJoandzoe1SeenText, TwinsJoandzoe1BeatenText, 0, .Script
-TwinsJoandzoe1Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsJoandzoe1AfterBattleText
@@ -94,9 +94,9 @@
end
TrainerTwinsJoandzoe2:
- trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE2, TwinsJoandzoe2SeenText, TwinsJoandzoe2BeatenText, 0, TwinsJoandzoe2Script
+ trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE2, TwinsJoandzoe2SeenText, TwinsJoandzoe2BeatenText, 0, .Script
-TwinsJoandzoe2Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsJoandzoe2AfterBattleText
--- a/maps/CeladonMansion3F.asm
+++ b/maps/CeladonMansion3F.asm
@@ -65,11 +65,11 @@
closetext
end
-SuperNerdScript_0x716bc:
- jumptextfaceplayer UnknownText_0x71895
+CeladonMansion3FSuperNerdScript:
+ jumptextfaceplayer CeladonMansion3FSuperNerdText
-FisherScript_0x716bf:
- jumptextfaceplayer UnknownText_0x718ca
+CeladonMansion3FFisherScript:
+ jumptextfaceplayer CeladonMansion3FFisherText
MapCeladonMansion3FSignpost0Script:
jumptext UnknownText_0x7190b
@@ -145,7 +145,7 @@
cont "cel printing."
done
-UnknownText_0x71895:
+CeladonMansion3FSuperNerdText:
text "Who, me? I'm the"
line "PROGRAMMER."
@@ -153,7 +153,7 @@
line "machines!"
done
-UnknownText_0x718ca:
+CeladonMansion3FFisherText:
text "Aren't the TWINS"
line "adorable?"
@@ -214,5 +214,5 @@
db 4
person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x71670, -1
person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x71696, -1
- person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x716bc, -1
- person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x716bf, -1
+ person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonMansion3FSuperNerdScript, -1
+ person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonMansion3FFisherScript, -1
--- a/maps/CeladonMansionRoof.asm
+++ b/maps/CeladonMansionRoof.asm
@@ -8,13 +8,13 @@
.MapCallbacks:
db 0
-FisherScript_0x71a39:
- jumptextfaceplayer UnknownText_0x71a3f
+CeladonMansionRoofFisherScript:
+ jumptextfaceplayer CeladonMansionRoofFisherText
MapCeladonMansionRoofSignpost0Script:
jumptext UnknownText_0x71aa1
-UnknownText_0x71a3f:
+CeladonMansionRoofFisherText:
text "High places--I do"
line "love them so!"
@@ -52,4 +52,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHER, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x71a39, -1
+ person_event SPRITE_FISHER, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonMansionRoofFisherScript, -1
--- a/maps/CeladonPokecenter1F.asm
+++ b/maps/CeladonPokecenter1F.asm
@@ -18,11 +18,11 @@
GentlemanScript_0x71e25:
jumpstd happinesschecknpc
-CooltrainerFScript_0x71e28:
- jumptextfaceplayer UnknownText_0x71e70
+CeladonPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer CeladonPokecenter1FCooltrainerFText
-PharmacistScript_0x71e2b:
- jumptextfaceplayer UnknownText_0x71ec1
+CeladonPokecenter1FPharmacistScript:
+ jumptextfaceplayer CeladonPokecenter1FPharmacistText
CeladonEusine:
faceplayer
@@ -72,7 +72,7 @@
step DOWN
step_end
-UnknownText_0x71e70:
+CeladonPokecenter1FCooltrainerFText:
text "ERIKA is a master"
line "of grass #MON."
@@ -81,7 +81,7 @@
cont "watch yourself."
done
-UnknownText_0x71ec1:
+CeladonPokecenter1FPharmacistText:
text "TEAM ROCKET's"
line "hideout is in the"
@@ -165,6 +165,6 @@
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x71e22, -1
person_event SPRITE_GENTLEMAN, 5, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x71e25, -1
- person_event SPRITE_PHARMACIST, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x71e2b, -1
- person_event SPRITE_COOLTRAINER_F, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x71e28, -1
+ person_event SPRITE_PHARMACIST, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonPokecenter1FPharmacistScript, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonPokecenter1FCooltrainerFScript, -1
person_event SPRITE_SUPER_NERD, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonEusine, EVENT_SET_WHEN_FOUGHT_HO_OH
--- a/maps/CeruleanCity.asm
+++ b/maps/CeruleanCity.asm
@@ -18,24 +18,24 @@
setflag ENGINE_FLYPOINT_CERULEAN
return
-CooltrainerMScript_0x184009:
+CeruleanCityCooltrainerMScript:
faceplayer
opentext
checkevent EVENT_RETURNED_MACHINE_PART
- iftrue UnknownScript_0x184017
- writetext UnknownText_0x1840bc
+ iftrue .ReturnedMachinePart
+ writetext CeruleanCityCooltrainerMText1
waitbutton
closetext
end
-UnknownScript_0x184017:
- writetext UnknownText_0x184144
+.ReturnedMachinePart:
+ writetext CeruleanCityCooltrainerMText2
waitbutton
closetext
end
-SuperNerdScript_0x18401d:
- jumptextfaceplayer UnknownText_0x1841a8
+CeruleanCitySuperNerdScript:
+ jumptextfaceplayer CeruleanCitySuperNerdText
CeruleanCitySlowbro:
opentext
@@ -45,15 +45,15 @@
closetext
end
-CooltrainerFScript_0x18402a:
+CeruleanCityCooltrainerFScript:
faceplayer
opentext
- writetext UnknownText_0x1841fa
+ writetext CeruleanCityCooltrainerFText1
waitbutton
closetext
spriteface CERULEANCITY_COOLTRAINER_F, LEFT
opentext
- writetext UnknownText_0x184229
+ writetext CeruleanCityCooltrainerFText2
waitbutton
closetext
opentext
@@ -62,41 +62,41 @@
waitbutton
closetext
opentext
- writetext UnknownText_0x18424b
+ writetext CeruleanCityCooltrainerFText3
waitbutton
closetext
end
-FisherScript_0x18404a:
+CeruleanCityFisherScript:
faceplayer
opentext
checkevent EVENT_RETURNED_MACHINE_PART
- iftrue UnknownScript_0x184058
+ iftrue .ReturnedMachinePart
checkevent EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM
- iftrue UnknownScript_0x18405e
-UnknownScript_0x184058:
- writetext UnknownText_0x18424e
+ iftrue .MetCeruleanRocket
+.ReturnedMachinePart:
+ writetext CeruleanCityFisherText
waitbutton
closetext
end
-UnknownScript_0x18405e:
- writetext UnknownText_0x184275
+.MetCeruleanRocket:
+ writetext CeruleanCityFisherRocketTipText
waitbutton
closetext
end
-YoungsterScript_0x184064:
+CeruleanCityYoungsterScript:
faceplayer
opentext
- writetext UnknownText_0x1842a9
+ writetext CeruleanCityYoungsterText1
waitbutton
closetext
checkevent EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY
- iffalse UnknownScript_0x184072
+ iffalse .BerserkGenePingsItemfinder
end
-UnknownScript_0x184072:
+.BerserkGenePingsItemfinder:
waitsfx
playsound SFX_SECOND_PART_OF_ITEMFINDER
waitsfx
@@ -117,7 +117,7 @@
showemote EMOTE_SHOCK, CERULEANCITY_YOUNGSTER, 15
spriteface CERULEANCITY_YOUNGSTER, LEFT
opentext
- writetext UnknownText_0x1842ee
+ writetext CeruleanCityYoungsterText2
waitbutton
closetext
end
@@ -149,7 +149,7 @@
CeruleanCityHiddenBerserkGene:
dwb EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY, BERSERK_GENE
-UnknownText_0x1840bc:
+CeruleanCityCooltrainerMText1:
text "KANTO's POWER"
line "PLANT?"
@@ -164,7 +164,7 @@
cont "some sort there."
done
-UnknownText_0x184144:
+CeruleanCityCooltrainerMText2:
text "You're collecting"
line "every single kind"
cont "of #MON?"
@@ -174,7 +174,7 @@
cont "it sounds fun too."
done
-UnknownText_0x1841a8:
+CeruleanCitySuperNerdText:
text "The CAPE in the"
line "north is a good"
@@ -186,34 +186,34 @@
text "SLOWBRO: Yarah?"
done
-UnknownText_0x1841fa:
+CeruleanCityCooltrainerFText1:
text "My SLOWBRO and I"
line "make an awesome"
cont "combination!"
done
-UnknownText_0x184229:
+CeruleanCityCooltrainerFText2:
text "SLOWBRO, show me"
line "your CONFUSION!"
done
-UnknownText_0x18424b:
+CeruleanCityCooltrainerFText3:
text "…"
done
-UnknownText_0x18424e:
+CeruleanCityFisherText:
text "I'm a huge fan of"
line "CERULEAN GYM's"
cont "MISTY."
done
-UnknownText_0x184275:
+CeruleanCityFisherRocketTipText:
text "I saw this shady"
line "guy go off toward"
cont "CERULEAN's CAPE."
done
-UnknownText_0x1842a9:
+CeruleanCityYoungsterText1:
text "There used to be a"
line "cave here that had"
@@ -221,7 +221,7 @@
line "#MON in it."
done
-UnknownText_0x1842ee:
+CeruleanCityYoungsterText2:
text "Ayuh?"
para "My ITEMFINDER is"
@@ -305,9 +305,9 @@
.PersonEvents:
db 6
- person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x184009, -1
- person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x18401d, -1
+ person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanCityCooltrainerMScript, -1
+ person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanCitySuperNerdScript, -1
person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeruleanCitySlowbro, -1
- person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18402a, -1
- person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x18404a, -1
- person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x184064, -1
+ person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeruleanCityCooltrainerFScript, -1
+ person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeruleanCityFisherScript, -1
+ person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeruleanCityYoungsterScript, -1
--- a/maps/CeruleanGym.asm
+++ b/maps/CeruleanGym.asm
@@ -86,9 +86,9 @@
end
TrainerSwimmerfDiana:
- trainer EVENT_BEAT_SWIMMERF_DIANA, SWIMMERF, DIANA, SwimmerfDianaSeenText, SwimmerfDianaBeatenText, 0, SwimmerfDianaScript
+ trainer EVENT_BEAT_SWIMMERF_DIANA, SWIMMERF, DIANA, SwimmerfDianaSeenText, SwimmerfDianaBeatenText, 0, .Script
-SwimmerfDianaScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfDianaAfterBattleText
@@ -97,9 +97,9 @@
end
TrainerSwimmerfBriana:
- trainer EVENT_BEAT_SWIMMERF_BRIANA, SWIMMERF, BRIANA, SwimmerfBrianaSeenText, SwimmerfBrianaBeatenText, 0, SwimmerfBrianaScript
+ trainer EVENT_BEAT_SWIMMERF_BRIANA, SWIMMERF, BRIANA, SwimmerfBrianaSeenText, SwimmerfBrianaBeatenText, 0, .Script
-SwimmerfBrianaScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfBrianaAfterBattleText
@@ -108,9 +108,9 @@
end
TrainerSwimmermParker:
- trainer EVENT_BEAT_SWIMMERM_PARKER, SWIMMERM, PARKER, SwimmermParkerSeenText, SwimmermParkerBeatenText, 0, SwimmermParkerScript
+ trainer EVENT_BEAT_SWIMMERM_PARKER, SWIMMERM, PARKER, SwimmermParkerSeenText, SwimmermParkerBeatenText, 0, .Script
-SwimmermParkerScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermParkerAfterBattleText
--- a/maps/CeruleanGymBadgeSpeechHouse.asm
+++ b/maps/CeruleanGymBadgeSpeechHouse.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-PokefanMScript_0x188002:
- jumptextfaceplayer UnknownText_0x188005
+CeruleanGymBadgeSpeechHousePokefanMScript:
+ jumptextfaceplayer CeruleanGymBadgeSpeechHousePokefanMText
-UnknownText_0x188005:
+CeruleanGymBadgeSpeechHousePokefanMText:
text "Are you collecting"
line "KANTO GYM BADGES?"
done
@@ -33,4 +33,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x188002, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeruleanGymBadgeSpeechHousePokefanMScript, -1
--- a/maps/CeruleanPokecenter1F.asm
+++ b/maps/CeruleanPokecenter1F.asm
@@ -21,8 +21,8 @@
.mobile
jumptextfaceplayer UnknownText_0x18828c
-GymGuyScript_0x18821e:
- jumptextfaceplayer UnknownText_0x1882ff
+CeruleanPokecenter1FGymGuyScript:
+ jumptextfaceplayer CeruleanPokecenter1FGymGuyText
UnknownText_0x188221:
text "For battles, I'd"
@@ -48,7 +48,7 @@
cont "nerve wracking."
done
-UnknownText_0x1882ff:
+CeruleanPokecenter1FGymGuyText:
text "The MAGNET TRAIN"
line "travels at over"
@@ -82,4 +82,4 @@
db 3
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18820f, -1
person_event SPRITE_SUPER_NERD, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x188212, -1
- person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x18821e, -1
+ person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeruleanPokecenter1FGymGuyScript, -1
--- a/maps/CeruleanPoliceStation.asm
+++ b/maps/CeruleanPoliceStation.asm
@@ -10,11 +10,11 @@
.MapCallbacks:
db 0
-FishingGuruScript_0x18804a:
- jumptextfaceplayer UnknownText_0x18805a
+CeruleanPoliceStationFishingGuruScript:
+ jumptextfaceplayer CeruleanPoliceStationFishingGuruText
-PokefanFScript_0x18804d:
- jumptextfaceplayer UnknownText_0x1880c3
+CeruleanPoliceStationPokefanFScript:
+ jumptextfaceplayer CeruleanPoliceStationPokefanFText
CeruleanDiglett:
opentext
@@ -24,7 +24,7 @@
closetext
end
-UnknownText_0x18805a:
+CeruleanPoliceStationFishingGuruText:
text "I heard that some"
line "shady character is"
cont "skulking about."
@@ -34,7 +34,7 @@
cont "to be a thief."
done
-UnknownText_0x1880c3:
+CeruleanPoliceStationPokefanFText:
text "We were held up by"
line "robbers before."
done
@@ -60,6 +60,6 @@
.PersonEvents:
db 3
- person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x18804a, -1
- person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18804d, -1
+ person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeruleanPoliceStationFishingGuruScript, -1
+ person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanPoliceStationPokefanFScript, -1
person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, CeruleanDiglett, -1
--- a/maps/CeruleanTradeSpeechHouse.asm
+++ b/maps/CeruleanTradeSpeechHouse.asm
@@ -11,11 +11,11 @@
.MapCallbacks:
db 0
-GrannyScript_0x188133:
- jumptextfaceplayer UnknownText_0x18814d
+CeruleanTradeSpeechHouseGrannyScript:
+ jumptextfaceplayer CeruleanTradeSpeechHouseGrannyText
-GrampsScript_0x188136:
- jumptextfaceplayer UnknownText_0x18818a
+CeruleanTradeSpeechHouseGrampsScript:
+ jumptextfaceplayer CeruleanTradeSpeechHouseGrampsText
RhydonScript_0x188139:
opentext
@@ -33,7 +33,7 @@
closetext
end
-UnknownText_0x18814d:
+CeruleanTradeSpeechHouseGrannyText:
text "My husband lives"
line "happily with #-"
cont "MON he got through"
@@ -40,7 +40,7 @@
cont "trades."
done
-UnknownText_0x18818a:
+CeruleanTradeSpeechHouseGrampsText:
text "Ah… I'm so happy…"
done
@@ -70,7 +70,7 @@
.PersonEvents:
db 4
- person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrannyScript_0x188133, -1
- person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x188136, -1
+ person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanTradeSpeechHouseGrannyScript, -1
+ person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeruleanTradeSpeechHouseGrampsScript, -1
person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, RhydonScript_0x188139, -1
person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ZubatScript_0x188143, -1
--- a/maps/CherrygroveGymSpeechHouse.asm
+++ b/maps/CherrygroveGymSpeechHouse.asm
@@ -9,16 +9,16 @@
.MapCallbacks:
db 0
-PokefanMScript_0x196ae1:
- jumptextfaceplayer UnknownText_0x196aea
+CherrygroveGymSpeechHousePokefanMScript:
+ jumptextfaceplayer CherrygroveGymSpeechHousePokefanMText
-BugCatcherScript_0x196ae4:
- jumptextfaceplayer UnknownText_0x196b65
+CherrygroveGymSpeechHouseBugCatcherScript:
+ jumptextfaceplayer CherrygroveGymSpeechHouseBugCatcherText
CherrygroveGymSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x196aea:
+CherrygroveGymSpeechHousePokefanMText:
text "You're trying to"
line "see how good you"
@@ -32,7 +32,7 @@
line "collect BADGES."
done
-UnknownText_0x196b65:
+CherrygroveGymSpeechHouseBugCatcherText:
text "When I get older,"
line "I'm going to be a"
cont "GYM LEADER!"
@@ -63,5 +63,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x196ae1, -1
- person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x196ae4, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CherrygroveGymSpeechHousePokefanMScript, -1
+ person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CherrygroveGymSpeechHouseBugCatcherScript, -1
--- a/maps/CherrygroveMart.asm
+++ b/maps/CherrygroveMart.asm
@@ -39,8 +39,8 @@
closetext
end
-YoungsterScript_0x196831:
- jumptextfaceplayer UnknownText_0x1968a0
+CherrygroveMartYoungsterScript:
+ jumptextfaceplayer CherrygroveMartYoungsterText
UnknownText_0x196834:
text "They're fresh out"
@@ -56,7 +56,7 @@
cont "catch #MON!"
done
-UnknownText_0x1968a0:
+CherrygroveMartYoungsterText:
text "When I was walking"
line "in the grass, a"
@@ -90,4 +90,4 @@
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x19680a, -1
person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19681d, -1
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x196831, -1
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CherrygroveMartYoungsterScript, -1
--- a/maps/CherrygrovePokecenter1F.asm
+++ b/maps/CherrygrovePokecenter1F.asm
@@ -14,11 +14,11 @@
NurseScript_0x19696d:
jumpstd pokecenternurse
-FisherScript_0x196970:
- jumptextfaceplayer UnknownText_0x19698a
+CherrygrovePokecenter1FFisherScript:
+ jumptextfaceplayer CherrygrovePokecenter1FFisherText
-GentlemanScript_0x196973:
- jumptextfaceplayer UnknownText_0x1969c8
+CherrygrovePokecenter1FGentlemanScript:
+ jumptextfaceplayer CherrygrovePokecenter1FGentlemanText
TeacherScript_0x196976:
faceplayer
@@ -36,7 +36,7 @@
closetext
end
-UnknownText_0x19698a:
+CherrygrovePokecenter1FFisherText:
text "It's great. I can"
line "store any number"
@@ -44,7 +44,7 @@
line "it's all free."
done
-UnknownText_0x1969c8:
+CherrygrovePokecenter1FGentlemanText:
text "That PC is free"
line "for any trainer"
cont "to use."
@@ -87,6 +87,6 @@
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x19696d, -1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x196970, -1
- person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x196973, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CherrygrovePokecenter1FFisherScript, -1
+ person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CherrygrovePokecenter1FGentlemanScript, -1
person_event SPRITE_TEACHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x196976, -1
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -120,8 +120,8 @@
CianwoodCityLass:
jumptextfaceplayer CianwoodCityLassText
-UnknownScript_0x1a00bc:
- jumptextfaceplayer UnknownText_0x1a03cc
+CianwoodCityUnknownScript:
+ jumptextfaceplayer CianwoodCityUnknownText
CianwoodCitySign:
jumptext CianwoodCitySignText
@@ -267,7 +267,7 @@
done
; possibly unused
-UnknownText_0x1a03cc:
+CianwoodCityUnknownText:
text "There are several"
line "islands between"
cont "here and OLIVINE."
--- a/maps/CianwoodLugiaSpeechHouse.asm
+++ b/maps/CianwoodLugiaSpeechHouse.asm
@@ -10,19 +10,19 @@
.MapCallbacks:
db 0
-TeacherScript_0x9e1b0:
- jumptextfaceplayer UnknownText_0x9e1bc
+CianwoodLugiaSpeechHouseTeacherScript:
+ jumptextfaceplayer CianwoodLugiaSpeechHouseTeacherText
-LassScript_0x9e1b3:
- jumptextfaceplayer UnknownText_0x9e23f
+CianwoodLugiaSpeechHouseLassScript:
+ jumptextfaceplayer CianwoodLugiaSpeechHouseLassText
-TwinScript_0x9e1b6:
- jumptextfaceplayer UnknownText_0x9e2a9
+CianwoodLugiaSpeechHouseTwinScript:
+ jumptextfaceplayer CianwoodLugiaSpeechHouseTwinText
CianwoodLugiaSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x9e1bc:
+CianwoodLugiaSpeechHouseTeacherText:
text "You came from"
line "OLIVINE?"
@@ -36,7 +36,7 @@
cont "them."
done
-UnknownText_0x9e23f:
+CianwoodLugiaSpeechHouseLassText:
text "I heard that you"
line "can only see it if"
@@ -48,7 +48,7 @@
cont "creature."
done
-UnknownText_0x9e2a9:
+CianwoodLugiaSpeechHouseTwinText:
text "I've heard that"
line "the whirlpools"
@@ -80,6 +80,6 @@
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9e1b0, -1
- person_event SPRITE_LASS, 5, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9e1b3, -1
- person_event SPRITE_TWIN, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TwinScript_0x9e1b6, -1
+ person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodLugiaSpeechHouseTeacherScript, -1
+ person_event SPRITE_LASS, 5, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CianwoodLugiaSpeechHouseLassScript, -1
+ person_event SPRITE_TWIN, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CianwoodLugiaSpeechHouseTwinScript, -1
--- a/maps/CianwoodPokecenter1F.asm
+++ b/maps/CianwoodPokecenter1F.asm
@@ -14,8 +14,8 @@
NurseScript_0x9dbcf:
jumpstd pokecenternurse
-LassScript_0x9dbd2:
- jumptextfaceplayer UnknownText_0x9dbed
+CianwoodPokecenter1FLassScript:
+ jumptextfaceplayer CianwoodPokecenter1FLassText
CianwoodGymGuyScript:
faceplayer
@@ -34,10 +34,10 @@
closetext
end
-SuperNerdScript_0x9dbea:
- jumptextfaceplayer UnknownText_0x9ded7
+CianwoodPokecenter1FSuperNerdScript:
+ jumptextfaceplayer CianwoodPokecenter1FSuperNerdText
-UnknownText_0x9dbed:
+CianwoodPokecenter1FLassText:
text "Did you meet the"
line "#MANIAC?"
@@ -117,7 +117,7 @@
cont "gotta crank it up!"
done
-UnknownText_0x9ded7:
+CianwoodPokecenter1FSuperNerdText:
text "I love showing off"
line "the #MON that"
@@ -150,6 +150,6 @@
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9dbcf, -1
- person_event SPRITE_LASS, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9dbd2, -1
+ person_event SPRITE_LASS, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CianwoodPokecenter1FLassScript, -1
person_event SPRITE_GYM_GUY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CianwoodGymGuyScript, -1
- person_event SPRITE_SUPER_NERD, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x9dbea, -1
+ person_event SPRITE_SUPER_NERD, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CianwoodPokecenter1FSuperNerdScript, -1
--- a/maps/CinnabarPokecenter1F.asm
+++ b/maps/CinnabarPokecenter1F.asm
@@ -13,13 +13,13 @@
NurseScript_0x1ab32c:
jumpstd pokecenternurse
-CooltrainerFScript_0x1ab32f:
- jumptextfaceplayer UnknownText_0x1ab335
+CinnabarPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer CinnabarPokecenter1FCooltrainerFText
-FisherScript_0x1ab332:
- jumptextfaceplayer UnknownText_0x1ab37f
+CinnabarPokecenter1FFisherScript:
+ jumptextfaceplayer CinnabarPokecenter1FFisherText
-UnknownText_0x1ab335:
+CinnabarPokecenter1FCooltrainerFText:
text "CINNABAR GYM's"
line "BLAINE apparently"
@@ -28,7 +28,7 @@
cont "cave…"
done
-UnknownText_0x1ab37f:
+CinnabarPokecenter1FFisherText:
text "It's been a year"
line "since the volcano"
cont "erupted."
@@ -53,5 +53,5 @@
.PersonEvents:
db 3
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1ab32c, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1ab32f, -1
- person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1ab332, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CinnabarPokecenter1FCooltrainerFScript, -1
+ person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CinnabarPokecenter1FFisherScript, -1
--- a/maps/CopycatsHouse1F.asm
+++ b/maps/CopycatsHouse1F.asm
@@ -10,8 +10,8 @@
.MapCallbacks:
db 0
-PokefanMScript_0x18ad13:
- jumptextfaceplayer UnknownText_0x18ad34
+CopycatsHouse1FPokefanMScript:
+ jumptextfaceplayer CopycatsHouse1FPokefanMText
PokefanFScript_0x18ad16:
faceplayer
@@ -37,7 +37,7 @@
closetext
end
-UnknownText_0x18ad34:
+CopycatsHouse1FPokefanMText:
text "My daughter likes"
line "to mimic people."
@@ -90,6 +90,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x18ad13, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CopycatsHouse1FPokefanMScript, -1
person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18ad16, -1
person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClefairyScript_0x18ad2a, -1
--- a/maps/DanceTheatre.asm
+++ b/maps/DanceTheatre.asm
@@ -17,9 +17,9 @@
db 0
TrainerKimono_girlNaoko2:
- trainer EVENT_BEAT_KIMONO_GIRL_NAOKO, KIMONO_GIRL, NAOKO2, Kimono_girlNaoko2SeenText, Kimono_girlNaoko2BeatenText, 0, Kimono_girlNaoko2Script
+ trainer EVENT_BEAT_KIMONO_GIRL_NAOKO, KIMONO_GIRL, NAOKO2, Kimono_girlNaoko2SeenText, Kimono_girlNaoko2BeatenText, 0, .Script
-Kimono_girlNaoko2Script:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlNaoko2AfterBattleText
@@ -28,9 +28,9 @@
end
TrainerKimono_girlSayo:
- trainer EVENT_BEAT_KIMONO_GIRL_SAYO, KIMONO_GIRL, SAYO, Kimono_girlSayoSeenText, Kimono_girlSayoBeatenText, 0, Kimono_girlSayoScript
+ trainer EVENT_BEAT_KIMONO_GIRL_SAYO, KIMONO_GIRL, SAYO, Kimono_girlSayoSeenText, Kimono_girlSayoBeatenText, 0, .Script
-Kimono_girlSayoScript:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlSayoAfterBattleText
@@ -39,9 +39,9 @@
end
TrainerKimono_girlZuki:
- trainer EVENT_BEAT_KIMONO_GIRL_ZUKI, KIMONO_GIRL, ZUKI, Kimono_girlZukiSeenText, Kimono_girlZukiBeatenText, 0, Kimono_girlZukiScript
+ trainer EVENT_BEAT_KIMONO_GIRL_ZUKI, KIMONO_GIRL, ZUKI, Kimono_girlZukiSeenText, Kimono_girlZukiBeatenText, 0, .Script
-Kimono_girlZukiScript:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlZukiAfterBattleText
@@ -50,9 +50,9 @@
end
TrainerKimono_girlKuni:
- trainer EVENT_BEAT_KIMONO_GIRL_KUNI, KIMONO_GIRL, KUNI, Kimono_girlKuniSeenText, Kimono_girlKuniBeatenText, 0, Kimono_girlKuniScript
+ trainer EVENT_BEAT_KIMONO_GIRL_KUNI, KIMONO_GIRL, KUNI, Kimono_girlKuniSeenText, Kimono_girlKuniBeatenText, 0, .Script
-Kimono_girlKuniScript:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlKuniAfterBattleText
@@ -61,9 +61,9 @@
end
TrainerKimono_girlMiki:
- trainer EVENT_BEAT_KIMONO_GIRL_MIKI, KIMONO_GIRL, MIKI, Kimono_girlMikiSeenText, Kimono_girlMikiBeatenText, 0, Kimono_girlMikiScript
+ trainer EVENT_BEAT_KIMONO_GIRL_MIKI, KIMONO_GIRL, MIKI, Kimono_girlMikiSeenText, Kimono_girlMikiBeatenText, 0, .Script
-Kimono_girlMikiScript:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlMikiAfterBattleText
@@ -128,11 +128,11 @@
closetext
end
-CooltrainerMScript_0x99525:
- jumptextfaceplayer UnknownText_0x99a24
+DanceTheatreCooltrainerMScript:
+ jumptextfaceplayer DanceTheatreCooltrainerMText
-GrannyScript_0x99528:
- jumptextfaceplayer UnknownText_0x99aaa
+DanceTheatreGrannyScript:
+ jumptextfaceplayer DanceTheatreGrannyText
MapDanceTheatreSignpost1Script:
jumptext UnknownText_0x99b79
@@ -298,7 +298,7 @@
line "gugogooh!"
done
-UnknownText_0x99a24:
+DanceTheatreCooltrainerMText:
text "That man's always"
line "with his RHYDON."
@@ -312,7 +312,7 @@
cont "#MON?"
done
-UnknownText_0x99aaa:
+DanceTheatreGrannyText:
text "The KIMONO GIRLS"
line "are so beautiful…"
@@ -363,5 +363,5 @@
person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_TRAINER, 0, TrainerKimono_girlMiki, -1
person_event SPRITE_GENTLEMAN, 10, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x994c6, -1
person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, RhydonScript_0x9951b, -1
- person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x99525, -1
- person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x99528, -1
+ person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, DanceTheatreCooltrainerMScript, -1
+ person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DanceTheatreGrannyScript, -1
--- a/maps/DarkCaveBlackthornEntrance.asm
+++ b/maps/DarkCaveBlackthornEntrance.asm
@@ -10,20 +10,20 @@
.MapCallbacks:
db 0
-PharmacistScript_0x18c720:
+DarkCaveBlackthornEntrancePharmacistScript:
faceplayer
opentext
checkevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
- iftrue UnknownScript_0x18c735
- writetext UnknownText_0x18c73f
+ iftrue .GotBlackglasses
+ writetext DarkCaveBlackthornEntrancePharmacistText1
buttonsound
verbosegiveitem BLACKGLASSES
- iffalse UnknownScript_0x18c739
+ iffalse .PackFull
setevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
-UnknownScript_0x18c735:
- writetext UnknownText_0x18c80c
+.GotBlackglasses:
+ writetext DarkCaveBlackthornEntrancePharmacistText2
waitbutton
-UnknownScript_0x18c739:
+.PackFull:
closetext
end
@@ -33,7 +33,7 @@
DarkCaveBlackthornEntranceTMSnore:
itemball TM_SNORE
-UnknownText_0x18c73f:
+DarkCaveBlackthornEntrancePharmacistText1:
text "Whoa! You startled"
line "me there!"
@@ -55,7 +55,7 @@
cont "you saw me, OK?"
done
-UnknownText_0x18c80c:
+DarkCaveBlackthornEntrancePharmacistText2:
text "BLACKGLASSES ups"
line "the power of dark-"
cont "type moves."
@@ -78,6 +78,6 @@
.PersonEvents:
db 3
- person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x18c720, -1
+ person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveBlackthornEntrancePharmacistScript, -1
person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, DarkCaveBlackthornEntranceRevive, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, DarkCaveBlackthornEntranceTMSnore, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
--- a/maps/DiglettsCave.asm
+++ b/maps/DiglettsCave.asm
@@ -8,14 +8,14 @@
.MapCallbacks:
db 0
-PokefanMScript_0x74002:
- jumptextfaceplayer UnknownText_0x74008
+DiglettsCavePokefanMScript:
+ jumptextfaceplayer DiglettsCavePokefanMText
DiglettsCaveHiddenMaxRevive:
dwb EVENT_DIGLETTS_CAVE_HIDDEN_MAX_REVIVE, MAX_REVIVE
-UnknownText_0x74008:
+DiglettsCavePokefanMText:
text "A bunch of DIGLETT"
line "popped out of the"
@@ -45,4 +45,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 31, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x74002, -1
+ person_event SPRITE_POKEFAN_M, 31, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DiglettsCavePokefanMScript, -1
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -84,9 +84,9 @@
end
TrainerCooltrainermDarin:
- trainer EVENT_BEAT_COOLTRAINERM_DARIN, COOLTRAINERM, DARIN, CooltrainermDarinSeenText, CooltrainermDarinBeatenText, 0, CooltrainermDarinScript
+ trainer EVENT_BEAT_COOLTRAINERM_DARIN, COOLTRAINERM, DARIN, CooltrainermDarinSeenText, CooltrainermDarinBeatenText, 0, .Script
-CooltrainermDarinScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermDarinAfterBattleText
@@ -95,9 +95,9 @@
end
TrainerCooltrainerfCara:
- trainer EVENT_BEAT_COOLTRAINERF_CARA, COOLTRAINERF, CARA, CooltrainerfCaraSeenText, CooltrainerfCaraBeatenText, 0, CooltrainerfCaraScript
+ trainer EVENT_BEAT_COOLTRAINERF_CARA, COOLTRAINERF, CARA, CooltrainerfCaraSeenText, CooltrainerfCaraBeatenText, 0, .Script
-CooltrainerfCaraScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfCaraAfterBattleText
@@ -106,9 +106,9 @@
end
TrainerTwinsLeaandpia1:
- trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia1SeenText, TwinsLeaandpia1BeatenText, 0, TwinsLeaandpia1Script
+ trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia1SeenText, TwinsLeaandpia1BeatenText, 0, .Script
-TwinsLeaandpia1Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsLeaandpia1AfterBattleText
@@ -117,9 +117,9 @@
end
TrainerTwinsLeaandpia2:
- trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia2SeenText, TwinsLeaandpia2BeatenText, 0, TwinsLeaandpia2Script
+ trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia2SeenText, TwinsLeaandpia2BeatenText, 0, .Script
-TwinsLeaandpia2Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsLeaandpia2AfterBattleText
--- a/maps/EarlsPokemonAcademy.asm
+++ b/maps/EarlsPokemonAcademy.asm
@@ -38,29 +38,29 @@
closetext
end
-YoungsterScript_0x68a83:
- jumptextfaceplayer UnknownText_0x68d80
+EarlsPokemonAcademyYoungster1Script:
+ jumptextfaceplayer EarlsPokemonAcademyYoungster1Text
-GameboyKidScript_0x68a86:
+EarlsPokemonAcademyGameboyKid1Script:
faceplayer
opentext
- writetext UnknownText_0x68dda
+ writetext EarlsPokemonAcademyGameboyKid1Text
waitbutton
closetext
spriteface EARLSPOKEMONACADEMY_GAMEBOY_KID1, DOWN
end
-GameboyKidScript_0x68a91:
+EarlsPokemonAcademyGameboyKid2Script:
faceplayer
opentext
- writetext UnknownText_0x68e07
+ writetext EarlsPokemonAcademyGameboyKid2Text
waitbutton
closetext
spriteface EARLSPOKEMONACADEMY_GAMEBOY_KID2, DOWN
end
-YoungsterScript_0x68a9c:
- jumptextfaceplayer UnknownText_0x68e39
+EarlsPokemonAcademyYoungster2Script:
+ jumptextfaceplayer EarlsPokemonAcademyYoungster2Text
AcademyBlackboard:
opentext
@@ -231,7 +231,7 @@
line "you must be!"
done
-UnknownText_0x68d80:
+EarlsPokemonAcademyYoungster1Text:
text "I'm taking notes"
line "of the teacher's"
cont "lecture."
@@ -241,19 +241,19 @@
cont "blackboard too."
done
-UnknownText_0x68dda:
+EarlsPokemonAcademyGameboyKid1Text:
text "I traded my best"
line "#MON to the"
cont "guy beside me."
done
-UnknownText_0x68e07:
+EarlsPokemonAcademyGameboyKid2Text:
text "Huh? The #MON I"
line "just got is hold-"
cont "ing something!"
done
-UnknownText_0x68e39:
+EarlsPokemonAcademyYoungster2Text:
text "A #MON holding"
line "a BERRY will heal"
cont "itself in battle."
@@ -434,8 +434,8 @@
.PersonEvents:
db 6
person_event SPRITE_FISHER, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x68a83, -1
- person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x68a86, -1
- person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x68a91, -1
- person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x68a9c, -1
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, EarlsPokemonAcademyYoungster1Script, -1
+ person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EarlsPokemonAcademyGameboyKid1Script, -1
+ person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, EarlsPokemonAcademyGameboyKid2Script, -1
+ person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EarlsPokemonAcademyYoungster2Script, -1
person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, AcademyNotebook, -1
--- a/maps/EcruteakCity.asm
+++ b/maps/EcruteakCity.asm
@@ -19,17 +19,17 @@
setflag ENGINE_FLYPOINT_ECRUTEAK
return
-GrampsScript_0x1a4009:
- jumptextfaceplayer UnknownText_0x1a4105
+EcruteakCityGramps1Script:
+ jumptextfaceplayer EcruteakCityGramps1Text
-GrampsScript_0x1a400c:
- jumptextfaceplayer UnknownText_0x1a4147
+EcruteakCityGramps2Script:
+ jumptextfaceplayer EcruteakCityGramps2Text
-GrampsScript_0x1a400f:
- jumptextfaceplayer UnknownText_0x1a43cb
+EcruteakCityGramps3Script:
+ jumptextfaceplayer EcruteakCityGramps3Text
-LassScript_0x1a4012:
- jumptextfaceplayer UnknownText_0x1a41db
+EcruteakCityLassScript:
+ jumptextfaceplayer EcruteakCityLassText
LassScript_0x1a4015:
faceplayer
@@ -63,8 +63,8 @@
closetext
end
-YoungsterScript_0x1a403d:
- jumptextfaceplayer UnknownText_0x1a4386
+EcruteakCityYoungsterScript:
+ jumptextfaceplayer EcruteakCityYoungsterText
EcruteakCitySign:
jumptext EcruteakCitySignText
@@ -111,7 +111,7 @@
line "do…?"
done
-UnknownText_0x1a4105:
+EcruteakCityGramps1Text:
text "ECRUTEAK used to"
line "have two towers:"
@@ -119,7 +119,7 @@
line "east and west."
done
-UnknownText_0x1a4147:
+EcruteakCityGramps2Text:
text "Ah, child."
line "Have you learned"
@@ -134,7 +134,7 @@
cont "nice, I hear."
done
-UnknownText_0x1a41db:
+EcruteakCityLassText:
text "I'm going to prac-"
line "tice at the DANCE"
@@ -181,7 +181,7 @@
cont "night again."
done
-UnknownText_0x1a4386:
+EcruteakCityYoungsterText:
text "I hear #MON are"
line "rampaging at the"
@@ -189,7 +189,7 @@
line "like to see that."
done
-UnknownText_0x1a43cb:
+EcruteakCityGramps3Text:
text "In the distant"
line "past…"
@@ -297,10 +297,10 @@
.PersonEvents:
db 7
- person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a4009, -1
- person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a400c, -1
- person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x1a4012, -1
+ person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakCityGramps1Script, -1
+ person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakCityGramps2Script, -1
+ person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, EcruteakCityLassScript, -1
person_event SPRITE_LASS, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a4015, -1
person_event SPRITE_FISHER, 22, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a4029, -1
- person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a403d, -1
- person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS
+ person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, EcruteakCityYoungsterScript, -1
+ person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, EcruteakCityGramps3Script, EVENT_ECRUTEAK_CITY_GRAMPS
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -98,9 +98,9 @@
end
TrainerSageJeffrey:
- trainer EVENT_BEAT_SAGE_JEFFREY, SAGE, JEFFREY, SageJeffreySeenText, SageJeffreyBeatenText, 0, SageJeffreyScript
+ trainer EVENT_BEAT_SAGE_JEFFREY, SAGE, JEFFREY, SageJeffreySeenText, SageJeffreyBeatenText, 0, .Script
-SageJeffreyScript:
+.Script:
end_if_just_battled
opentext
writetext SageJeffreyAfterBattleText
@@ -109,9 +109,9 @@
end
TrainerSagePing:
- trainer EVENT_BEAT_SAGE_PING, SAGE, PING, SagePingSeenText, SagePingBeatenText, 0, SagePingScript
+ trainer EVENT_BEAT_SAGE_PING, SAGE, PING, SagePingSeenText, SagePingBeatenText, 0, .Script
-SagePingScript:
+.Script:
end_if_just_battled
opentext
writetext SagePingAfterBattleText
@@ -120,9 +120,9 @@
end
TrainerMediumMartha:
- trainer EVENT_BEAT_MEDIUM_MARTHA, MEDIUM, MARTHA, MediumMarthaSeenText, MediumMarthaBeatenText, 0, MediumMarthaScript
+ trainer EVENT_BEAT_MEDIUM_MARTHA, MEDIUM, MARTHA, MediumMarthaSeenText, MediumMarthaBeatenText, 0, .Script
-MediumMarthaScript:
+.Script:
end_if_just_battled
opentext
writetext MediumMarthaAfterBattleText
@@ -131,9 +131,9 @@
end
TrainerMediumGrace:
- trainer EVENT_BEAT_MEDIUM_GRACE, MEDIUM, GRACE, MediumGraceSeenText, MediumGraceBeatenText, 0, MediumGraceScript
+ trainer EVENT_BEAT_MEDIUM_GRACE, MEDIUM, GRACE, MediumGraceSeenText, MediumGraceBeatenText, 0, .Script
-MediumGraceScript:
+.Script:
end_if_just_battled
opentext
writetext MediumGraceAfterBattleText
--- a/maps/EcruteakHouse.asm
+++ b/maps/EcruteakHouse.asm
@@ -134,8 +134,8 @@
closetext
end
-GrampsScript_0x980c4:
- jumptextfaceplayer UnknownText_0x984ab
+EcruteakHouseGrampsScript:
+ jumptextfaceplayer EcruteakHouseGrampsText
MovementData_0x980c7:
fix_facing
@@ -266,7 +266,7 @@
line "to the top!"
done
-UnknownText_0x984ab:
+EcruteakHouseGrampsText:
text "Two towers…"
line "Two #MON…"
@@ -302,4 +302,4 @@
person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1
person_event SPRITE_SAGE, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2
person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
- person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+ person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakHouseGrampsScript, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
--- a/maps/EcruteakLugiaSpeechHouse.asm
+++ b/maps/EcruteakLugiaSpeechHouse.asm
@@ -9,16 +9,16 @@
.MapCallbacks:
db 0
-GrampsScript_0x99334:
- jumptextfaceplayer UnknownText_0x9933d
+EcruteakLugiaSpeechHouseGrampsScript:
+ jumptextfaceplayer EcruteakLugiaSpeechHouseGrampsText
-YoungsterScript_0x99337:
- jumptextfaceplayer UnknownText_0x993ec
+EcruteakLugiaSpeechHouseYoungsterScript:
+ jumptextfaceplayer EcruteakLugiaSpeechHouseYoungsterText
LugiaSpeechHouseRadio:
jumpstd radio2
-UnknownText_0x9933d:
+EcruteakLugiaSpeechHouseGrampsText:
text "This happened when"
line "I was young."
@@ -36,7 +36,7 @@
line "and a dragon."
done
-UnknownText_0x993ec:
+EcruteakLugiaSpeechHouseYoungsterText:
text "Is there really a"
line "#MON that big?"
@@ -62,5 +62,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x99334, -1
- person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x99337, -1
+ person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakLugiaSpeechHouseGrampsScript, -1
+ person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakLugiaSpeechHouseYoungsterScript, -1
--- a/maps/EcruteakMart.asm
+++ b/maps/EcruteakMart.asm
@@ -16,13 +16,13 @@
closetext
end
-SuperNerdScript_0x99c42:
- jumptextfaceplayer UnknownText_0x99c48
+EcruteakMartSuperNerdScript:
+ jumptextfaceplayer EcruteakMartSuperNerdText
-GrannyScript_0x99c45:
- jumptextfaceplayer UnknownText_0x99cd5
+EcruteakMartGrannyScript:
+ jumptextfaceplayer EcruteakMartGrannyText
-UnknownText_0x99c48:
+EcruteakMartSuperNerdText:
text "My EEVEE evolved"
line "into an ESPEON."
@@ -37,7 +37,7 @@
line "same way…"
done
-UnknownText_0x99cd5:
+EcruteakMartGrannyText:
text "If you use REVIVE,"
line "a #MON that's"
@@ -63,5 +63,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x99c3b, -1
- person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x99c42, -1
- person_event SPRITE_GRANNY, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x99c45, -1
+ person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, EcruteakMartSuperNerdScript, -1
+ person_event SPRITE_GRANNY, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakMartGrannyScript, -1
--- a/maps/FastShip1F.asm
+++ b/maps/FastShip1F.asm
@@ -116,8 +116,8 @@
closetext
end
-SailorScript_0x751e4:
- jumptextfaceplayer UnknownText_0x753c0
+FastShip1FSailorScript:
+ jumptextfaceplayer FastShip1FSailorText
WorriedGrandpaTriggerRight:
moveperson FASTSHIP1F_GENTLEMAN, $14, $6
@@ -250,7 +250,7 @@
cont "you're sleeping."
done
-UnknownText_0x753c0:
+FastShip1FSailorText:
text "The passengers are"
line "all trainers."
@@ -316,5 +316,5 @@
db 4
person_event SPRITE_SAILOR, 2, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x75160, -1
person_event SPRITE_SAILOR, 7, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x751d0, -1
- person_event SPRITE_SAILOR, 17, 22, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x751e4, -1
+ person_event SPRITE_SAILOR, 17, 22, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FastShip1FSailorScript, -1
person_event SPRITE_GENTLEMAN, 6, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_FAST_SHIP_1F_GENTLEMAN
--- a/maps/FastShipB1F.asm
+++ b/maps/FastShipB1F.asm
@@ -94,9 +94,9 @@
end
TrainerSailorJeff:
- trainer EVENT_BEAT_SAILOR_JEFF, SAILOR, JEFF, SailorJeffSeenText, SailorJeffBeatenText, 0, SailorJeffScript
+ trainer EVENT_BEAT_SAILOR_JEFF, SAILOR, JEFF, SailorJeffSeenText, SailorJeffBeatenText, 0, .Script
-SailorJeffScript:
+.Script:
end_if_just_battled
opentext
writetext SailorJeffAfterBattleText
@@ -105,9 +105,9 @@
end
TrainerPicnickerDebra:
- trainer EVENT_BEAT_PICNICKER_DEBRA, PICNICKER, DEBRA, PicnickerDebraSeenText, PicnickerDebraBeatenText, 0, PicnickerDebraScript
+ trainer EVENT_BEAT_PICNICKER_DEBRA, PICNICKER, DEBRA, PicnickerDebraSeenText, PicnickerDebraBeatenText, 0, .Script
-PicnickerDebraScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerDebraAfterBattleText
@@ -116,9 +116,9 @@
end
TrainerJugglerFritz:
- trainer EVENT_BEAT_JUGGLER_FRITZ, JUGGLER, FRITZ, JugglerFritzSeenText, JugglerFritzBeatenText, 0, JugglerFritzScript
+ trainer EVENT_BEAT_JUGGLER_FRITZ, JUGGLER, FRITZ, JugglerFritzSeenText, JugglerFritzBeatenText, 0, .Script
-JugglerFritzScript:
+.Script:
end_if_just_battled
opentext
writetext JugglerFritzAfterBattleText
@@ -127,9 +127,9 @@
end
TrainerSailorGarrett:
- trainer EVENT_BEAT_SAILOR_GARRETT, SAILOR, GARRETT, SailorGarrettSeenText, SailorGarrettBeatenText, 0, SailorGarrettScript
+ trainer EVENT_BEAT_SAILOR_GARRETT, SAILOR, GARRETT, SailorGarrettSeenText, SailorGarrettBeatenText, 0, .Script
-SailorGarrettScript:
+.Script:
end_if_just_battled
opentext
writetext SailorGarrettAfterBattleText
@@ -138,9 +138,9 @@
end
TrainerFisherJonah:
- trainer EVENT_BEAT_FISHER_JONAH, FISHER, JONAH, FisherJonahSeenText, FisherJonahBeatenText, 0, FisherJonahScript
+ trainer EVENT_BEAT_FISHER_JONAH, FISHER, JONAH, FisherJonahSeenText, FisherJonahBeatenText, 0, .Script
-FisherJonahScript:
+.Script:
end_if_just_battled
opentext
writetext FisherJonahAfterBattleText
@@ -149,9 +149,9 @@
end
TrainerBlackbeltWai:
- trainer EVENT_BEAT_BLACKBELT_WAI, BLACKBELT_T, WAI, BlackbeltWaiSeenText, BlackbeltWaiBeatenText, 0, BlackbeltWaiScript
+ trainer EVENT_BEAT_BLACKBELT_WAI, BLACKBELT_T, WAI, BlackbeltWaiSeenText, BlackbeltWaiBeatenText, 0, .Script
-BlackbeltWaiScript:
+.Script:
end_if_just_battled
opentext
writetext BlackbeltWaiAfterBattleText
@@ -160,9 +160,9 @@
end
TrainerSailorKenneth:
- trainer EVENT_BEAT_SAILOR_KENNETH, SAILOR, KENNETH, SailorKennethSeenText, SailorKennethBeatenText, 0, SailorKennethScript
+ trainer EVENT_BEAT_SAILOR_KENNETH, SAILOR, KENNETH, SailorKennethSeenText, SailorKennethBeatenText, 0, .Script
-SailorKennethScript:
+.Script:
end_if_just_battled
opentext
writetext SailorKennethAfterBattleText
@@ -171,9 +171,9 @@
end
TrainerTeacherShirley:
- trainer EVENT_BEAT_TEACHER_SHIRLEY, TEACHER, SHIRLEY, TeacherShirleySeenText, TeacherShirleyBeatenText, 0, TeacherShirleyScript
+ trainer EVENT_BEAT_TEACHER_SHIRLEY, TEACHER, SHIRLEY, TeacherShirleySeenText, TeacherShirleyBeatenText, 0, .Script
-TeacherShirleyScript:
+.Script:
end_if_just_battled
opentext
writetext TeacherShirleyAfterBattleText
@@ -182,9 +182,9 @@
end
TrainerSchoolboyNate:
- trainer EVENT_BEAT_SCHOOLBOY_NATE, SCHOOLBOY, NATE, SchoolboyNateSeenText, SchoolboyNateBeatenText, 0, SchoolboyNateScript
+ trainer EVENT_BEAT_SCHOOLBOY_NATE, SCHOOLBOY, NATE, SchoolboyNateSeenText, SchoolboyNateBeatenText, 0, .Script
-SchoolboyNateScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyNateAfterBattleText
@@ -193,9 +193,9 @@
end
TrainerSchoolboyRicky:
- trainer EVENT_BEAT_SCHOOLBOY_RICKY, SCHOOLBOY, RICKY, SchoolboyRickySeenText, SchoolboyRickyBeatenText, 0, SchoolboyRickyScript
+ trainer EVENT_BEAT_SCHOOLBOY_RICKY, SCHOOLBOY, RICKY, SchoolboyRickySeenText, SchoolboyRickyBeatenText, 0, .Script
-SchoolboyRickyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyRickyAfterBattleText
--- a/maps/FastShipCabins_NNW_NNE_NE.asm
+++ b/maps/FastShipCabins_NNW_NNE_NE.asm
@@ -15,9 +15,9 @@
db 0
TrainerCooltrainermSean:
- trainer EVENT_BEAT_COOLTRAINERM_SEAN, COOLTRAINERM, SEAN, CooltrainermSeanSeenText, CooltrainermSeanBeatenText, 0, CooltrainermSeanScript
+ trainer EVENT_BEAT_COOLTRAINERM_SEAN, COOLTRAINERM, SEAN, CooltrainermSeanSeenText, CooltrainermSeanBeatenText, 0, .Script
-CooltrainermSeanScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermSeanAfterBattleText
@@ -26,9 +26,9 @@
end
TrainerCooltrainerfCarol:
- trainer EVENT_BEAT_COOLTRAINERF_CAROL, COOLTRAINERF, CAROL, CooltrainerfCarolSeenText, CooltrainerfCarolBeatenText, 0, CooltrainerfCarolScript
+ trainer EVENT_BEAT_COOLTRAINERF_CAROL, COOLTRAINERF, CAROL, CooltrainerfCarolSeenText, CooltrainerfCarolBeatenText, 0, .Script
-CooltrainerfCarolScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfCarolAfterBattleText
@@ -37,9 +37,9 @@
end
TrainerPokemaniacEthan:
- trainer EVENT_BEAT_POKEMANIAC_ETHAN, POKEMANIAC, ETHAN, PokemaniacEthanSeenText, PokemaniacEthanBeatenText, 0, PokemaniacEthanScript
+ trainer EVENT_BEAT_POKEMANIAC_ETHAN, POKEMANIAC, ETHAN, PokemaniacEthanSeenText, PokemaniacEthanBeatenText, 0, .Script
-PokemaniacEthanScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacEthanAfterBattleText
@@ -48,9 +48,9 @@
end
TrainerHikerNoland:
- trainer EVENT_BEAT_HIKER_NOLAND, HIKER, NOLAND, HikerNolandSeenText, HikerNolandBeatenText, 0, HikerNolandScript
+ trainer EVENT_BEAT_HIKER_NOLAND, HIKER, NOLAND, HikerNolandSeenText, HikerNolandBeatenText, 0, .Script
-HikerNolandScript:
+.Script:
end_if_just_battled
opentext
writetext HikerNolandAfterBattleText
@@ -59,9 +59,9 @@
end
TrainerGentlemanEdward:
- trainer EVENT_BEAT_GENTLEMAN_EDWARD, GENTLEMAN, EDWARD, GentlemanEdwardSeenText, GentlemanEdwardBeatenText, 0, GentlemanEdwardScript
+ trainer EVENT_BEAT_GENTLEMAN_EDWARD, GENTLEMAN, EDWARD, GentlemanEdwardSeenText, GentlemanEdwardBeatenText, 0, .Script
-GentlemanEdwardScript:
+.Script:
end_if_just_battled
opentext
writetext GentlemanEdwardAfterBattleText
@@ -70,9 +70,9 @@
end
TrainerBurglarCorey:
- trainer EVENT_BEAT_BURGLAR_COREY, BURGLAR, COREY, BurglarCoreySeenText, BurglarCoreyBeatenText, 0, BurglarCoreyScript
+ trainer EVENT_BEAT_BURGLAR_COREY, BURGLAR, COREY, BurglarCoreySeenText, BurglarCoreyBeatenText, 0, .Script
-BurglarCoreyScript:
+.Script:
end_if_just_battled
opentext
writetext BurglarCoreyAfterBattleText
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -141,9 +141,9 @@
end
TrainerPokefanmColin:
- trainer EVENT_BEAT_POKEFANM_COLIN, POKEFANM, COLIN, PokefanmColinSeenText, PokefanmColinBeatenText, 0, PokefanmColinScript
+ trainer EVENT_BEAT_POKEFANM_COLIN, POKEFANM, COLIN, PokefanmColinSeenText, PokefanmColinBeatenText, 0, .Script
-PokefanmColinScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmColinAfterBattleText
@@ -152,9 +152,9 @@
end
TrainerTwinsMegandpeg1:
- trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG1, TwinsMegandpeg1SeenText, TwinsMegandpeg1BeatenText, 0, TwinsMegandpeg1Script
+ trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG1, TwinsMegandpeg1SeenText, TwinsMegandpeg1BeatenText, 0, .Script
-TwinsMegandpeg1Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsMegandpeg1AfterBattleText
@@ -163,9 +163,9 @@
end
TrainerTwinsMegandpeg2:
- trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG2, TwinsMegandpeg2SeenText, TwinsMegandpeg2BeatenText, 0, TwinsMegandpeg2Script
+ trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG2, TwinsMegandpeg2SeenText, TwinsMegandpeg2BeatenText, 0, .Script
-TwinsMegandpeg2Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsMegandpeg2AfterBattleText
@@ -174,9 +174,9 @@
end
TrainerPsychicRodney:
- trainer EVENT_BEAT_PSYCHIC_RODNEY, PSYCHIC_T, RODNEY, PsychicRodneySeenText, PsychicRodneyBeatenText, 0, PsychicRodneyScript
+ trainer EVENT_BEAT_PSYCHIC_RODNEY, PSYCHIC_T, RODNEY, PsychicRodneySeenText, PsychicRodneyBeatenText, 0, .Script
-PsychicRodneyScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicRodneyAfterBattleText
@@ -185,9 +185,9 @@
end
TrainerPokefanmJeremy:
- trainer EVENT_BEAT_POKEFANM_JEREMY, POKEFANM, JEREMY, PokefanmJeremySeenText, PokefanmJeremyBeatenText, 0, PokefanmJeremyScript
+ trainer EVENT_BEAT_POKEFANM_JEREMY, POKEFANM, JEREMY, PokefanmJeremySeenText, PokefanmJeremyBeatenText, 0, .Script
-PokefanmJeremyScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmJeremyAfterBattleText
@@ -196,9 +196,9 @@
end
TrainerPokefanfGeorgia:
- trainer EVENT_BEAT_POKEFANF_GEORGIA, POKEFANF, GEORGIA, PokefanfGeorgiaSeenText, PokefanfGeorgiaBeatenText, 0, PokefanfGeorgiaScript
+ trainer EVENT_BEAT_POKEFANF_GEORGIA, POKEFANF, GEORGIA, PokefanfGeorgiaSeenText, PokefanfGeorgiaBeatenText, 0, .Script
-PokefanfGeorgiaScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanfGeorgiaAfterBattleText
@@ -207,9 +207,9 @@
end
TrainerSupernerdShawn:
- trainer EVENT_BEAT_SUPER_NERD_SHAWN, SUPER_NERD, SHAWN, SupernerdShawnSeenText, SupernerdShawnBeatenText, 0, SupernerdShawnScript
+ trainer EVENT_BEAT_SUPER_NERD_SHAWN, SUPER_NERD, SHAWN, SupernerdShawnSeenText, SupernerdShawnBeatenText, 0, .Script
-SupernerdShawnScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdShawnAfterBattleText
--- a/maps/FastShipCabins_SW_SSW_NW.asm
+++ b/maps/FastShipCabins_SW_SSW_NW.asm
@@ -12,9 +12,9 @@
db 0
TrainerFirebreatherLyle:
- trainer EVENT_BEAT_FIREBREATHER_LYLE, FIREBREATHER, LYLE, FirebreatherLyleSeenText, FirebreatherLyleBeatenText, 0, FirebreatherLyleScript
+ trainer EVENT_BEAT_FIREBREATHER_LYLE, FIREBREATHER, LYLE, FirebreatherLyleSeenText, FirebreatherLyleBeatenText, 0, .Script
-FirebreatherLyleScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherLyleAfterBattleText
@@ -23,9 +23,9 @@
end
TrainerBug_catcherKen:
- trainer EVENT_BEAT_BUG_CATCHER_KEN, BUG_CATCHER, KEN, Bug_catcherKenSeenText, Bug_catcherKenBeatenText, 0, Bug_catcherKenScript
+ trainer EVENT_BEAT_BUG_CATCHER_KEN, BUG_CATCHER, KEN, Bug_catcherKenSeenText, Bug_catcherKenBeatenText, 0, .Script
-Bug_catcherKenScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherKenAfterBattleText
@@ -34,9 +34,9 @@
end
TrainerBeautyCassie:
- trainer EVENT_BEAT_BEAUTY_CASSIE, BEAUTY, CASSIE, BeautyCassieSeenText, BeautyCassieBeatenText, 0, BeautyCassieScript
+ trainer EVENT_BEAT_BEAUTY_CASSIE, BEAUTY, CASSIE, BeautyCassieSeenText, BeautyCassieBeatenText, 0, .Script
-BeautyCassieScript:
+.Script:
end_if_just_battled
opentext
writetext BeautyCassieAfterBattleText
@@ -45,9 +45,9 @@
end
TrainerGuitaristClyde:
- trainer EVENT_BEAT_GUITARIST_CLYDE, GUITARIST, CLYDE, GuitaristClydeSeenText, GuitaristClydeBeatenText, 0, GuitaristClydeScript
+ trainer EVENT_BEAT_GUITARIST_CLYDE, GUITARIST, CLYDE, GuitaristClydeSeenText, GuitaristClydeBeatenText, 0, .Script
-GuitaristClydeScript:
+.Script:
end_if_just_battled
special Mobile_DummyReturnFalse
iftrue .mobile
--- a/maps/FuchsiaBillSpeechHouse.asm
+++ b/maps/FuchsiaBillSpeechHouse.asm
@@ -9,19 +9,19 @@
.MapCallbacks:
db 0
-PokefanFScript_0x1963bd:
- jumptextfaceplayer UnknownText_0x1963c3
+FuchsiaBillSpeechHousePokefanFScript:
+ jumptextfaceplayer FuchsiaBillSpeechHousePokefanFText
-YoungsterScript_0x1963c0:
- jumptextfaceplayer UnknownText_0x1963f9
+FuchsiaBillSpeechHouseYoungsterScript:
+ jumptextfaceplayer FuchsiaBillSpeechHouseYoungsterText
-UnknownText_0x1963c3:
+FuchsiaBillSpeechHousePokefanFText:
text "My grandpa is at "
line "my brother BILL's"
cont "on CERULEAN CAPE."
done
-UnknownText_0x1963f9:
+FuchsiaBillSpeechHouseYoungsterText:
text "I saw these weird,"
line "slow #MON on"
cont "CYCLING ROAD."
@@ -44,5 +44,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x1963bd, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1963c0, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FuchsiaBillSpeechHousePokefanFScript, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FuchsiaBillSpeechHouseYoungsterScript, -1
--- a/maps/FuchsiaMart.asm
+++ b/maps/FuchsiaMart.asm
@@ -16,13 +16,13 @@
closetext
end
-FisherScript_0x195cef:
- jumptextfaceplayer UnknownText_0x195cf5
+FuchsiaMartFisherScript:
+ jumptextfaceplayer FuchsiaMartFisherText
-CooltrainerFScript_0x195cf2:
- jumptextfaceplayer UnknownText_0x195d36
+FuchsiaMartCooltrainerFScript:
+ jumptextfaceplayer FuchsiaMartCooltrainerFText
-UnknownText_0x195cf5:
+FuchsiaMartFisherText:
text "I was hoping to"
line "buy some SAFARI"
@@ -30,7 +30,7 @@
line "but it's closed…"
done
-UnknownText_0x195d36:
+FuchsiaMartCooltrainerFText:
text "The SAFARI ZONE"
line "WARDEN's grand-"
cont "daughter lives in"
@@ -55,5 +55,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x195ce8, -1
- person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x195cef, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x195cf2, -1
+ person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FuchsiaMartFisherScript, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FuchsiaMartCooltrainerFScript, -1
--- a/maps/FuchsiaPokecenter1F.asm
+++ b/maps/FuchsiaPokecenter1F.asm
@@ -18,11 +18,11 @@
NurseScript_0x196459:
jumpstd pokecenternurse
-CooltrainerMScript_0x19645c:
- jumptextfaceplayer UnknownText_0x196494
+FuchsiaPokecenter1FCooltrainerMScript:
+ jumptextfaceplayer FuchsiaPokecenter1FCooltrainerMText
-CooltrainerFScript_0x19645f:
- jumptextfaceplayer UnknownText_0x1964dc
+FuchsiaPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer FuchsiaPokecenter1FCooltrainerFText
JanineImpersonatorScript_0x196462:
faceplayer
@@ -60,7 +60,7 @@
turn_head DOWN
step_end
-UnknownText_0x196494:
+FuchsiaPokecenter1FCooltrainerMText:
text "Hey! You have a"
line "brand new kind of"
cont "#DEX."
@@ -69,7 +69,7 @@
line "that to you?"
done
-UnknownText_0x1964dc:
+FuchsiaPokecenter1FCooltrainerFText:
text "I got quite a"
line "shock at the GYM."
@@ -107,6 +107,6 @@
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, NurseScript_0x196459, -1
- person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19645c, -1
- person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x19645f, -1
+ person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FuchsiaPokecenter1FCooltrainerMScript, -1
+ person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FuchsiaPokecenter1FCooltrainerFScript, -1
person_event SPRITE_JANINE_IMPERSONATOR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, JanineImpersonatorScript_0x196462, -1
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -6,6 +6,7 @@
const GOLDENRODCITY_YOUNGSTER2
const GOLDENRODCITY_LASS
const GOLDENRODCITY_GRAMPS
+ const GOLDENRODCITY_ROCKETSCOUT
const GOLDENRODCITY_ROCKET1
const GOLDENRODCITY_ROCKET2
const GOLDENRODCITY_ROCKET3
@@ -12,7 +13,6 @@
const GOLDENRODCITY_ROCKET4
const GOLDENRODCITY_ROCKET5
const GOLDENRODCITY_ROCKET6
- const GOLDENRODCITY_ROCKET7
const GOLDENRODCITY_POKEFAN_M2
GoldenrodCity_MapScriptHeader:
@@ -160,11 +160,11 @@
closetext
end
-PokefanMScript_0x1989e3:
- jumptextfaceplayer UnknownText_0x198a69
+GoldenrodCityPokefanMScript:
+ jumptextfaceplayer GoldenrodCityPokefanMText
-YoungsterScript_0x1989e6:
- jumptextfaceplayer UnknownText_0x198aa9
+GoldenrodCityYoungster1Script:
+ jumptextfaceplayer GoldenrodCityYoungster1Text
CooltrainerFScript_0x1989e9:
faceplayer
@@ -198,43 +198,43 @@
closetext
end
-YoungsterScript_0x198a11:
- jumptextfaceplayer UnknownText_0x198c36
+GoldenrodCityYoungster2Script:
+ jumptextfaceplayer GoldenrodCityYoungster2Text
-LassScript_0x198a14:
- jumptextfaceplayer UnknownText_0x198c83
+GoldenrodCityLassScript:
+ jumptextfaceplayer GoldenrodCityLassText
-GrampsScript_0x198a17:
- jumptextfaceplayer UnknownText_0x198ccf
+GoldenrodCityGrampsScript:
+ jumptextfaceplayer GoldenrodCityGrampsText
-RocketScript_0x198a1a:
+GoldenrodCityRocketScoutScript:
opentext
- writetext UnknownText_0x198d0d
+ writetext GoldenrodCityRocketScoutText1
buttonsound
faceplayer
- writetext UnknownText_0x198d2a
+ writetext GoldenrodCityRocketScoutText2
waitbutton
closetext
- spriteface GOLDENRODCITY_ROCKET1, UP
+ spriteface GOLDENRODCITY_ROCKETSCOUT, UP
end
-RocketScript_0x198a29:
- jumptextfaceplayer UnknownText_0x198d4e
+GoldenrodCityRocket1Script:
+ jumptextfaceplayer GoldenrodCityRocket1Text
-RocketScript_0x198a2c:
- jumptextfaceplayer UnknownText_0x198d6d
+GoldenrodCityRocket2Script:
+ jumptextfaceplayer GoldenrodCityRocket2Text
-RocketScript_0x198a2f:
- jumptextfaceplayer UnknownText_0x198daa
+GoldenrodCityRocket3Script:
+ jumptextfaceplayer GoldenrodCityRocket3Text
-RocketScript_0x198a32:
- jumptextfaceplayer UnknownText_0x198de2
+GoldenrodCityRocket4Script:
+ jumptextfaceplayer GoldenrodCityRocket4Text
-RocketScript_0x198a35:
- jumptextfaceplayer UnknownText_0x198e1f
+GoldenrodCityRocket5Script:
+ jumptextfaceplayer GoldenrodCityRocket5Text
-RocketScript_0x198a38:
- jumptextfaceplayer UnknownText_0x198e4b
+GoldenrodCityRocket6Script:
+ jumptextfaceplayer GoldenrodCityRocket6Text
GoldenrodCityStationSign:
jumptext GoldenrodCityStationSignText
@@ -286,7 +286,7 @@
step UP
step_end
-UnknownText_0x198a69:
+GoldenrodCityPokefanMText:
text "They built the new"
line "RADIO TOWER to"
@@ -294,7 +294,7 @@
line "creaky one."
done
-UnknownText_0x198aa9:
+GoldenrodCityYoungster1Text:
text "I know there's a"
line "new BIKE SHOP, but"
@@ -339,7 +339,7 @@
line "works as a radio!"
done
-UnknownText_0x198c36:
+GoldenrodCityYoungster2Text:
text "E-he-he-he…"
para "I got in trouble"
@@ -349,7 +349,7 @@
line "DEPT.STORE."
done
-UnknownText_0x198c83:
+GoldenrodCityLassText:
text "The man at that"
line "house rates your"
cont "#MON names."
@@ -358,7 +358,7 @@
line "your #MON."
done
-UnknownText_0x198ccf:
+GoldenrodCityGrampsText:
text "Whew! This is one"
line "big town. I don't"
@@ -366,22 +366,22 @@
line "thing is."
done
-UnknownText_0x198d0d:
+GoldenrodCityRocketScoutText1:
text "So this is the"
line "RADIO TOWER…"
done
-UnknownText_0x198d2a:
+GoldenrodCityRocketScoutText2:
text "What do you want,"
line "you pest? Scram!"
done
-UnknownText_0x198d4e:
+GoldenrodCityRocket1Text:
text "Stay out of the"
line "way! Beat it!"
done
-UnknownText_0x198d6d:
+GoldenrodCityRocket2Text:
text "Take over the"
line "RADIO TOWER…"
@@ -389,7 +389,7 @@
line "your business!"
done
-UnknownText_0x198daa:
+GoldenrodCityRocket3Text:
text "#MON? They're"
line "nothing more than"
@@ -397,7 +397,7 @@
line "money!"
done
-UnknownText_0x198de2:
+GoldenrodCityRocket4Text:
text "Our dream will"
line "soon come true…"
@@ -405,13 +405,13 @@
line "struggle…"
done
-UnknownText_0x198e1f:
+GoldenrodCityRocket5Text:
text "Hey, brat! You"
line "don't belong here!"
cont "Get lost!"
done
-UnknownText_0x198e4b:
+GoldenrodCityRocket6Text:
text "Come taste the"
line "true terror of"
cont "TEAM ROCKET!"
@@ -596,18 +596,18 @@
.PersonEvents:
db 15
- person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityPokefanMScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityYoungster1Script, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_COOLTRAINER_F, 16, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
- person_event SPRITE_ROCKET, 20, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a29, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a2c, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 23, 16, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a2f, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodCityYoungster2Script, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodCityLassScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityGrampsScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocketScoutScript, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
+ person_event SPRITE_ROCKET, 20, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket1Script, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket2Script, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 23, 16, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket3Script, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket4Script, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket5Script, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket6Script, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR
--- a/maps/GoldenrodDeptStore1F.asm
+++ b/maps/GoldenrodDeptStore1F.asm
@@ -11,17 +11,17 @@
.MapCallbacks:
db 0
-ReceptionistScript_0x55981:
- jumptextfaceplayer UnknownText_0x55993
+GoldenrodDeptStore1FReceptionistScript:
+ jumptextfaceplayer GoldenrodDeptStore1FReceptionistText
-GentlemanScript_0x55984:
- jumptextfaceplayer UnknownText_0x559b7
+GoldenrodDeptStore1FGentlemanScript:
+ jumptextfaceplayer GoldenrodDeptStore1FGentlemanText
-PokefanFScript_0x55987:
- jumptextfaceplayer UnknownText_0x55a1a
+GoldenrodDeptStore1FPokefanFScript:
+ jumptextfaceplayer GoldenrodDeptStore1FPokefanFText
-BugCatcherScript_0x5598a:
- jumptextfaceplayer UnknownText_0x55a3a
+GoldenrodDeptStore1FBugCatcherScript:
+ jumptextfaceplayer GoldenrodDeptStore1FBugCatcherText
GoldenrodDeptStore1FDirectory:
jumptext GoldenrodDeptStore1FDirectoryText
@@ -29,12 +29,12 @@
GoldenrodDeptStore1FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x55993:
+GoldenrodDeptStore1FReceptionistText:
text "Welcome to GOLDEN-"
line "ROD DEPT.STORE."
done
-UnknownText_0x559b7:
+GoldenrodDeptStore1FGentlemanText:
text "The DEPT.STORE"
line "has a decent se-"
cont "lection."
@@ -46,12 +46,12 @@
line "prizes."
done
-UnknownText_0x55a1a:
+GoldenrodDeptStore1FPokefanFText:
text "I'm raring to shop"
line "again today!"
done
-UnknownText_0x55a3a:
+GoldenrodDeptStore1FBugCatcherText:
text "Mom's good at"
line "bargain hunting."
@@ -99,7 +99,7 @@
.PersonEvents:
db 4
- person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x55981, -1
- person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x55987, -1
- person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x5598a, -1
- person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55984, -1
+ person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore1FReceptionistScript, -1
+ person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore1FPokefanFScript, -1
+ person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore1FBugCatcherScript, -1
+ person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore1FGentlemanScript, -1
--- a/maps/GoldenrodDeptStore2F.asm
+++ b/maps/GoldenrodDeptStore2F.asm
@@ -26,14 +26,14 @@
closetext
end
-YoungsterScript_0x55b6d:
- jumptextfaceplayer UnknownText_0x55c25
+GoldenrodDeptStore2FYoungsterScript:
+ jumptextfaceplayer GoldenrodDeptStore2FYoungsterText
-CooltrainerFScript_0x55b70:
- jumptextfaceplayer UnknownText_0x55c7b
+GoldenrodDeptStore2FCooltrainerFScript:
+ jumptextfaceplayer GoldenrodDeptStore2FCooltrainerFText
-GentlemanScript_0x55b73:
- jumptextfaceplayer UnknownText_0x55cb7
+GoldenrodDeptStore2FGentlemanScript:
+ jumptextfaceplayer GoldenrodDeptStore2FGentlemanText
GoldenrodDeptStore2FDirectory:
jumptext GoldenrodDeptStore2FDirectoryText
@@ -62,7 +62,7 @@
cont "techniques."
done
-UnknownText_0x55c25:
+GoldenrodDeptStore2FYoungsterText:
text "#GEAR can store"
line "up to ten phone"
cont "numbers."
@@ -72,7 +72,7 @@
cont "to keep."
done
-UnknownText_0x55c7b:
+GoldenrodDeptStore2FCooltrainerFText:
text "I got my ABRA at"
line "the GAME CORNER."
@@ -80,7 +80,7 @@
line "partner."
done
-UnknownText_0x55cb7:
+GoldenrodDeptStore2FGentlemanText:
text "This DEPT.STORE"
line "makes me realize"
@@ -122,6 +122,6 @@
db 5
person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55b5d, -1
person_event SPRITE_CLERK, 6, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55b65, -1
- person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x55b6d, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x55b70, -1
- person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55b73, -1
+ person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore2FYoungsterScript, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore2FCooltrainerFScript, -1
+ person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore2FGentlemanScript, -1
--- a/maps/GoldenrodDeptStore3F.asm
+++ b/maps/GoldenrodDeptStore3F.asm
@@ -17,11 +17,11 @@
closetext
end
-SuperNerdScript_0x55dc0:
- jumptextfaceplayer UnknownText_0x55dcc
+GoldenrodDeptStore3FSuperNerdScript:
+ jumptextfaceplayer GoldenrodDeptStore3FSuperNerdText
-RockerScript_0x55dc3:
- jumptextfaceplayer UnknownText_0x55e15
+GoldenrodDeptStore3FRockerScript:
+ jumptextfaceplayer GoldenrodDeptStore3FRockerText
GoldenrodDeptStore3FDirectory:
jumptext GoldenrodDeptStore3FDirectoryText
@@ -29,7 +29,7 @@
GoldenrodDeptStore3FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x55dcc:
+GoldenrodDeptStore3FSuperNerdText:
text "I, I, I'm really"
line "impatient!"
@@ -38,7 +38,7 @@
cont "my #MON."
done
-UnknownText_0x55e15:
+GoldenrodDeptStore3FRockerText:
text "Hey! When you bat-"
line "tle, do you use X"
cont "SPECIAL?"
@@ -77,5 +77,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55db8, -1
- person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x55dc0, -1
- person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x55dc3, -1
+ person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore3FSuperNerdScript, -1
+ person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore3FRockerScript, -1
--- a/maps/GoldenrodDeptStore4F.asm
+++ b/maps/GoldenrodDeptStore4F.asm
@@ -18,11 +18,11 @@
closetext
end
-CooltrainerMScript_0x55ef1:
- jumptextfaceplayer UnknownText_0x55f08
+GoldenrodDeptStore4FCooltrainerMScript:
+ jumptextfaceplayer GoldenrodDeptStore4FCooltrainerMText
-BugCatcherScript_0x55ef4:
- jumptextfaceplayer UnknownText_0x55f52
+GoldenrodDeptStore4FBugCatcherScript:
+ jumptextfaceplayer GoldenrodDeptStore4FBugCatcherText
GameboyKidScript_0x55ef7:
faceplayer
@@ -39,7 +39,7 @@
GoldenrodDeptStore4FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x55f08:
+GoldenrodDeptStore4FCooltrainerMText:
text "Hey. I love strong"
line "#MON."
@@ -48,7 +48,7 @@
cont "their ATTACK."
done
-UnknownText_0x55f52:
+GoldenrodDeptStore4FBugCatcherText:
text "IRON adds to your"
line "#MON's DEFENSE."
done
@@ -98,6 +98,6 @@
.PersonEvents:
db 4
person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55ee9, -1
- person_event SPRITE_COOLTRAINER_M, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x55ef1, -1
- person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x55ef4, -1
+ person_event SPRITE_COOLTRAINER_M, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore4FCooltrainerMScript, -1
+ person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore4FBugCatcherScript, -1
person_event SPRITE_GAMEBOY_KID, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x55ef7, -1
--- a/maps/GoldenrodDeptStore5F.asm
+++ b/maps/GoldenrodDeptStore5F.asm
@@ -120,8 +120,8 @@
closetext
end
-LassScript_0x56130:
- jumptextfaceplayer UnknownText_0x562ad
+GoldenrodDeptStore5FLassScript:
+ jumptextfaceplayer GoldenrodDeptStore5FLassText
Mike:
faceplayer
@@ -131,8 +131,8 @@
closetext
end
-PokefanMScript_0x5613a:
- jumptextfaceplayer UnknownText_0x562f3
+GoldenrodDeptStore5FPokefanMScript:
+ jumptextfaceplayer GoldenrodDeptStore5FPokefanMText
GoldenrodDeptStore5FDirectory:
jumptext GoldenrodDeptStore5FDirectoryText
@@ -189,7 +189,7 @@
cont "Game Boy Color."
done
-UnknownText_0x562ad:
+GoldenrodDeptStore5FLassText:
text "On Sundays, a lady"
line "comes to check out"
cont "#MON."
@@ -198,7 +198,7 @@
line "away TMs!"
done
-UnknownText_0x562f3:
+GoldenrodDeptStore5FPokefanMText:
text "You can't rename a"
line "#MON you get in"
cont "a trade."
@@ -238,8 +238,8 @@
.PersonEvents:
db 6
person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x5609c, -1
- person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x56130, -1
+ person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore5FLassScript, -1
person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Mike, -1
- person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5613a, -1
+ person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore5FPokefanMScript, -1
person_event SPRITE_TWIN, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Carrie, -1
person_event SPRITE_RECEPTIONIST, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -84,11 +84,11 @@
db "CANCEL@"
-LassScript_0x564bf:
- jumptextfaceplayer UnknownText_0x5654b
+GoldenrodDeptStore6FLassScript:
+ jumptextfaceplayer GoldenrodDeptStore6FLassText
-SuperNerdScript_0x564c2:
- jumptextfaceplayer UnknownText_0x565ca
+GoldenrodDeptStore6FSuperNerdScript:
+ jumptextfaceplayer GoldenrodDeptStore6FSuperNerdText
GoldenrodDeptStore6FDirectory:
jumptext GoldenrodDeptStore6FDirectoryText
@@ -119,7 +119,7 @@
line "room for stuff."
done
-UnknownText_0x5654b:
+GoldenrodDeptStore6FLassText:
text "Do you listen to"
line "LUCKY CHANNEL?"
@@ -133,7 +133,7 @@
line "numbers."
done
-UnknownText_0x565ca:
+GoldenrodDeptStore6FSuperNerdText:
text "If you're tired,"
line "try the vending"
cont "machine's drinks."
@@ -173,5 +173,5 @@
.PersonEvents:
db 2
- person_event SPRITE_LASS, 2, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x564bf, -1
- person_event SPRITE_SUPER_NERD, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x564c2, -1
+ person_event SPRITE_LASS, 2, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore6FLassScript, -1
+ person_event SPRITE_SUPER_NERD, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore6FSuperNerdScript, -1
--- a/maps/GoldenrodDeptStoreB1F.asm
+++ b/maps/GoldenrodDeptStoreB1F.asm
@@ -46,14 +46,14 @@
clearevent EVENT_WAREHOUSE_BLOCKED_OFF
return
-BlackBeltScript_0x7d7b0:
- jumptextfaceplayer UnknownText_0x7d7cb
+GoldenrodDeptStoreB1FBlackBelt1Script:
+ jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt1Text
-BlackBeltScript_0x7d7b3:
- jumptextfaceplayer UnknownText_0x7d82c
+GoldenrodDeptStoreB1FBlackBelt2Script:
+ jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt2Text
-BlackBeltScript_0x7d7b6:
- jumptextfaceplayer UnknownText_0x7d875
+GoldenrodDeptStoreB1FBlackBelt3Script:
+ jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt3Text
MachopScript_0x7d7b9:
opentext
@@ -75,7 +75,7 @@
GoldenrodDeptStoreB1FUltraBall:
itemball ULTRA_BALL
-UnknownText_0x7d7cb:
+GoldenrodDeptStoreB1FBlackBelt1Text:
text "Hey, kid! You're"
line "holding us up!"
@@ -86,7 +86,7 @@
line "one can see us!"
done
-UnknownText_0x7d82c:
+GoldenrodDeptStoreB1FBlackBelt2Text:
text "I lose my passion"
line "for work if some-"
cont "one's watching."
@@ -95,7 +95,7 @@
line "scoot!"
done
-UnknownText_0x7d875:
+GoldenrodDeptStoreB1FBlackBelt3Text:
text "Oohah! Oohah!"
para "The stuff on the"
@@ -131,7 +131,7 @@
person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FAmuletCoin, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FBurnHeal, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FUltraBall, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
- person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b0, -1
- person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b3, -1
- person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b6, -1
+ person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt1Script, -1
+ person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt2Script, -1
+ person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt3Script, -1
person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, MachopScript_0x7d7b9, -1
--- a/maps/GoldenrodDeptStoreElevator.asm
+++ b/maps/GoldenrodDeptStoreElevator.asm
@@ -62,8 +62,8 @@
.Warps:
db 2
- warp_def $3, $1, 255, GOLDENROD_DEPT_STORE_1F
- warp_def $3, $2, 255, GOLDENROD_DEPT_STORE_1F
+ warp_def $3, $1, -1, GOLDENROD_DEPT_STORE_1F
+ warp_def $3, $2, -1, GOLDENROD_DEPT_STORE_1F
.XYTriggers:
db 0
--- a/maps/GoldenrodDeptStoreRoof.asm
+++ b/maps/GoldenrodDeptStoreRoof.asm
@@ -45,8 +45,8 @@
closetext
end
-PokefanFScript_0x56746:
- jumptextfaceplayer UnknownText_0x5677f
+GoldenrodDeptStoreRoofPokefanFScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofPokefanFText
FisherScript_0x56749:
faceplayer
@@ -57,8 +57,8 @@
spriteface GOLDENRODDEPTSTOREROOF_FISHER, UP
end
-TwinScript_0x56754:
- jumptextfaceplayer UnknownText_0x56839
+GoldenrodDeptStoreRoofTwinScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofTwinText
SuperNerdScript_0x56757:
opentext
@@ -73,14 +73,14 @@
spriteface GOLDENRODDEPTSTOREROOF_SUPER_NERD, RIGHT
end
-PokefanMScript_0x5676a:
- jumptextfaceplayer UnknownText_0x5688e
+GoldenrodDeptStoreRoofPokefanMScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofPokefanMText
-TeacherScript_0x5676d:
- jumptextfaceplayer UnknownText_0x56901
+GoldenrodDeptStoreRoofTeacherScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofTeacherText
-BugCatcherScript_0x56770:
- jumptextfaceplayer UnknownText_0x56942
+GoldenrodDeptStoreRoofBugCatcherScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofBugCatcherText
Binoculars1:
jumptext Binoculars1Text
@@ -94,7 +94,7 @@
PokeDollVendingMachine:
jumptext PokeDollVendingMachineText
-UnknownText_0x5677f:
+GoldenrodDeptStoreRoofPokefanFText:
text "Whew, I'm tired."
para "I sometimes come"
@@ -116,7 +116,7 @@
line "dolls!"
done
-UnknownText_0x56839:
+GoldenrodDeptStoreRoofTwinText:
text "They have bargain"
line "sales here every"
cont "so often."
@@ -131,7 +131,7 @@
line "bothering me?"
done
-UnknownText_0x5688e:
+GoldenrodDeptStoreRoofPokefanMText:
text "There's something"
line "I really want, but"
@@ -143,7 +143,7 @@
cont "I've collected…"
done
-UnknownText_0x56901:
+GoldenrodDeptStoreRoofTeacherText:
text "Oh, everything is"
line "so cheap!"
@@ -151,7 +151,7 @@
line "my PACK's crammed!"
done
-UnknownText_0x56942:
+GoldenrodDeptStoreRoofBugCatcherText:
text "My #MON always"
line "get paralyzed or"
@@ -232,10 +232,10 @@
.PersonEvents:
db 8
person_event SPRITE_CLERK, 4, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x56746, -1
+ person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofPokefanFScript, -1
person_event SPRITE_FISHER, 1, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x56749, -1
- person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON
+ person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofTwinScript, EVENT_GOLDENROD_SALE_ON
person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON
- person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofPokefanMScript, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofTeacherScript, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofBugCatcherScript, EVENT_GOLDENROD_SALE_OFF
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -93,9 +93,9 @@
jumpstd radiotowerrockets
TrainerLassCarrie:
- trainer EVENT_BEAT_LASS_CARRIE, LASS, CARRIE, LassCarrieSeenText, LassCarrieBeatenText, 0, LassCarrieScript
+ trainer EVENT_BEAT_LASS_CARRIE, LASS, CARRIE, LassCarrieSeenText, LassCarrieBeatenText, 0, .Script
-LassCarrieScript:
+.Script:
end_if_just_battled
opentext
writetext LassCarrieAfterBattleText
@@ -117,9 +117,9 @@
end
TrainerLassBridget:
- trainer EVENT_BEAT_LASS_BRIDGET, LASS, BRIDGET, LassBridgetSeenText, LassBridgetBeatenText, 0, LassBridgetScript
+ trainer EVENT_BEAT_LASS_BRIDGET, LASS, BRIDGET, LassBridgetSeenText, LassBridgetBeatenText, 0, .Script
-LassBridgetScript:
+.Script:
end_if_just_battled
opentext
writetext LassBridgetAfterBattleText
@@ -128,9 +128,9 @@
end
TrainerBeautyVictoria:
- trainer EVENT_BEAT_BEAUTY_VICTORIA, BEAUTY, VICTORIA, BeautyVictoriaSeenText, BeautyVictoriaBeatenText, 0, BeautyVictoriaScript
+ trainer EVENT_BEAT_BEAUTY_VICTORIA, BEAUTY, VICTORIA, BeautyVictoriaSeenText, BeautyVictoriaBeatenText, 0, .Script
-BeautyVictoriaScript:
+.Script:
end_if_just_battled
opentext
writetext BeautyVictoriaAfterBattleText
@@ -139,9 +139,9 @@
end
TrainerBeautySamantha:
- trainer EVENT_BEAT_BEAUTY_SAMANTHA, BEAUTY, SAMANTHA, BeautySamanthaSeenText, BeautySamanthaBeatenText, 0, BeautySamanthaScript
+ trainer EVENT_BEAT_BEAUTY_SAMANTHA, BEAUTY, SAMANTHA, BeautySamanthaSeenText, BeautySamanthaBeatenText, 0, .Script
-BeautySamanthaScript:
+.Script:
end_if_just_battled
opentext
writetext BeautySamanthaAfterBattleText
--- a/maps/GoldenrodHappinessRater.asm
+++ b/maps/GoldenrodHappinessRater.asm
@@ -59,11 +59,11 @@
closetext
end
-PokefanMScript_0x54997:
- jumptextfaceplayer UnknownText_0x54b04
+GoldenrodHappinessRaterPokefanMScript:
+ jumptextfaceplayer GoldenrodHappinessRaterPokefanMText
-TwinScript_0x5499a:
- jumptextfaceplayer UnknownText_0x54b67
+GoldenrodHappinessRaterTwinScript:
+ jumptextfaceplayer GoldenrodHappinessRaterTwinText
HappinessRatersHouseBookshelf:
jumpstd difficultbookshelf
@@ -118,7 +118,7 @@
cont "It looks mean."
done
-UnknownText_0x54b04:
+GoldenrodHappinessRaterPokefanMText:
text "I keep losing in"
line "battles, and my"
@@ -130,7 +130,7 @@
cont "like me much…"
done
-UnknownText_0x54b67:
+GoldenrodHappinessRaterTwinText:
text "When I use an item"
line "on my #MON, it"
cont "acts really glad!"
@@ -157,5 +157,5 @@
.PersonEvents:
db 3
person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x54953, -1
- person_event SPRITE_POKEFAN_M, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x54997, -1
- person_event SPRITE_TWIN, 6, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x5499a, -1
+ person_event SPRITE_POKEFAN_M, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodHappinessRaterPokefanMScript, -1
+ person_event SPRITE_TWIN, 6, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodHappinessRaterTwinScript, -1
--- a/maps/GoldenrodMagnetTrainStation.asm
+++ b/maps/GoldenrodMagnetTrainStation.asm
@@ -68,8 +68,8 @@
closetext
end
-GentlemanScript_0x55143:
- jumptextfaceplayer UnknownText_0x552a3
+GoldenrodMagnetTrainStationGentlemanScript:
+ jumptextfaceplayer GoldenrodMagnetTrainStationGentlemanText
MovementData_0x55146:
step UP
@@ -150,7 +150,7 @@
line "again."
done
-UnknownText_0x552a3:
+GoldenrodMagnetTrainStationGentlemanText:
text "I'm the PRESIDENT."
para "My dream was to"
@@ -185,4 +185,4 @@
.PersonEvents:
db 2
person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x550ec, -1
- person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+ person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodMagnetTrainStationGentlemanScript, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
--- a/maps/GoldenrodNameRater.asm
+++ b/maps/GoldenrodNameRater.asm
@@ -22,7 +22,7 @@
GoldenrodNameRaterRadio:
jumpstd radio2
-INCLUDE "text/sweethoney.asm"
+INCLUDE "text/unused_sweet_honey.asm"
GoldenrodNameRater_MapEventHeader:
; filler
--- a/maps/GoldenrodPPSpeechHouse.asm
+++ b/maps/GoldenrodPPSpeechHouse.asm
@@ -9,11 +9,11 @@
.MapCallbacks:
db 0
-FisherScript_0x5564a:
- jumptextfaceplayer UnknownText_0x55659
+GoldenrodPPSpeechHouseFisherScript:
+ jumptextfaceplayer GoldenrodPPSpeechHouseFisherText
-LassScript_0x5564d:
- jumptextfaceplayer UnknownText_0x556ca
+GoldenrodPPSpeechHouseLassScript:
+ jumptextfaceplayer GoldenrodPPSpeechHouseLassText
GoldenrodPPSpeechHouseBookshelf2:
jumpstd difficultbookshelf
@@ -24,7 +24,7 @@
GoldenrodPPSpeechHouseRadio:
jumpstd radio2
-UnknownText_0x55659:
+GoldenrodPPSpeechHouseFisherText:
text "Once while I was"
line "battling, my"
@@ -38,7 +38,7 @@
line "gone."
done
-UnknownText_0x556ca:
+GoldenrodPPSpeechHouseLassText:
text "Sometimes, a"
line "healthy #MON"
@@ -71,5 +71,5 @@
.PersonEvents:
db 2
- person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x5564a, -1
- person_event SPRITE_LASS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x5564d, -1
+ person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodPPSpeechHouseFisherScript, -1
+ person_event SPRITE_LASS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodPPSpeechHouseLassScript, -1
--- a/maps/GoldenrodPokeComCenter2FMobile.asm
+++ b/maps/GoldenrodPokeComCenter2FMobile.asm
@@ -10,14 +10,14 @@
.MapCallbacks:
db 0
-ScientistScript_0x625d1:
- jumptextfaceplayer UnknownText_0x62674
+GoldenrodPokeComCenter2FMobileScientist1Script:
+ jumptextfaceplayer GoldenrodPokeComCenter2FMobileScientist1Text
-ScientistScript_0x625d4:
- jumptextfaceplayer UnknownText_0x626f9
+GoldenrodPokeComCenter2FMobileScientist2Script:
+ jumptextfaceplayer GoldenrodPokeComCenter2FMobileScientist2Text
-ScientistScript_0x625d7:
- jumptextfaceplayer UnknownText_0x62795
+GoldenrodPokeComCenter2FMobileScientist3Script:
+ jumptextfaceplayer GoldenrodPokeComCenter2FMobileScientist3Text
MapGoldenrodPokeComCenter2FMobileSignpost0Script:
opentext
@@ -112,7 +112,7 @@
MapGoldenrodPokeComCenter2FMobileSignpost2Script:
jumptext UnknownText_0x62b26
-UnknownText_0x62674:
+GoldenrodPokeComCenter2FMobileScientist1Text:
text "#COM CENTER and"
line "MOBILE CENTER were"
@@ -126,7 +126,7 @@
line "strangers."
done
-UnknownText_0x626f9:
+GoldenrodPokeComCenter2FMobileScientist2Text:
text "When you linked"
line "with someone by"
@@ -143,7 +143,7 @@
line "got the shakes!"
done
-UnknownText_0x62795:
+GoldenrodPokeComCenter2FMobileScientist3Text:
text "They were able to"
line "build this huge"
@@ -288,6 +288,6 @@
.PersonEvents:
db 3
- person_event SPRITE_SCIENTIST, 28, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d1, -1
- person_event SPRITE_SCIENTIST, 27, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d4, -1
- person_event SPRITE_SCIENTIST, 29, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d7, -1
+ person_event SPRITE_SCIENTIST, 28, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodPokeComCenter2FMobileScientist1Script, -1
+ person_event SPRITE_SCIENTIST, 27, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GoldenrodPokeComCenter2FMobileScientist2Script, -1
+ person_event SPRITE_SCIENTIST, 29, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodPokeComCenter2FMobileScientist3Script, -1
--- a/maps/GoldenrodPokecenter1F.asm
+++ b/maps/GoldenrodPokecenter1F.asm
@@ -79,11 +79,11 @@
.cancel
end
-GameboyKidScript_0x6101e:
- jumptextfaceplayer UnknownText_0x62105
+GoldenrodPokecenter1FGameboyKidScript:
+ jumptextfaceplayer GoldenrodPokecenter1FGameboyKidText
-LassScript_0x61021:
- jumptextfaceplayer UnknownText_0x62260
+GoldenrodPokecenter1FLassScript:
+ jumptextfaceplayer GoldenrodPokecenter1FLassText
PokefanFScript_0x61024:
faceplayer
@@ -663,7 +663,7 @@
cont "NEWS?"
done
-UnknownText_0x62105:
+GoldenrodPokecenter1FGameboyKidText:
text "The COLOSSEUM"
line "upstairs is for"
cont "link battles."
@@ -701,7 +701,7 @@
line "younger!"
done
-UnknownText_0x62260:
+GoldenrodPokecenter1FLassText:
text "A higher level"
line "#MON doesn't"
cont "always win."
@@ -827,6 +827,6 @@
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x60f91, -1
person_event SPRITE_LINK_RECEPTIONIST, 8, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1
- person_event SPRITE_GAMEBOY_KID, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x6101e, -1
- person_event SPRITE_LASS, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x61021, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodPokecenter1FGameboyKidScript, -1
+ person_event SPRITE_LASS, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodPokecenter1FLassScript, -1
person_event SPRITE_POKEFAN_F, 5, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x61024, -1
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -388,9 +388,9 @@
end
TrainerBug_catcherWayne:
- trainer EVENT_BEAT_BUG_CATCHER_WAYNE, BUG_CATCHER, WAYNE, Bug_catcherWayneSeenText, Bug_catcherWayneBeatenText, 0, Bug_catcherWayneScript
+ trainer EVENT_BEAT_BUG_CATCHER_WAYNE, BUG_CATCHER, WAYNE, Bug_catcherWayneSeenText, Bug_catcherWayneBeatenText, 0, .Script
-Bug_catcherWayneScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherWayneAfterBattleText
--- a/maps/IlexForestAzaleaGate.asm
+++ b/maps/IlexForestAzaleaGate.asm
@@ -9,19 +9,19 @@
.MapCallbacks:
db 0
-OfficerScript_0x62c7a:
- jumptextfaceplayer UnknownText_0x62c80
+IlexForestAzaleaGateOfficerScript:
+ jumptextfaceplayer IlexForestAzaleaGateOfficerText
-GrannyScript_0x62c7d:
- jumptextfaceplayer UnknownText_0x62cb0
+IlexForestAzaleaGateGrannyScript:
+ jumptextfaceplayer IlexForestAzaleaGateGrannyText
-UnknownText_0x62c80:
+IlexForestAzaleaGateOfficerText:
text "ILEX FOREST is"
line "big. Be careful!"
cont "Don't get lost."
done
-UnknownText_0x62cb0:
+IlexForestAzaleaGateGrannyText:
text "The FOREST is"
line "watched over by"
cont "its protector."
@@ -49,5 +49,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x62c7a, -1
- person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x62c7d, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, IlexForestAzaleaGateOfficerScript, -1
+ person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, IlexForestAzaleaGateGrannyScript, -1
--- a/maps/IndigoPlateauPokecenter1F.asm
+++ b/maps/IndigoPlateauPokecenter1F.asm
@@ -145,8 +145,8 @@
closetext
end
-CooltrainerMScript_0x180136:
- jumptextfaceplayer UnknownText_0x180178
+IndigoPlateauPokecenter1FCooltrainerMScript:
+ jumptextfaceplayer IndigoPlateauPokecenter1FCooltrainerMText
TeleportGuyScript:
faceplayer
@@ -203,7 +203,7 @@
step DOWN
step_end
-UnknownText_0x180178:
+IndigoPlateauPokecenter1FCooltrainerMText:
text "At the #MON"
line "LEAGUE, you'll get"
@@ -325,7 +325,7 @@
db 6
person_event SPRITE_NURSE, 7, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18012c, -1
person_event SPRITE_CLERK, 7, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18012f, -1
- person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x180136, -1
+ person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IndigoPlateauPokecenter1FCooltrainerMScript, -1
person_event SPRITE_SILVER, 9, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
person_event SPRITE_GRAMPS, 9, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeleportGuyScript, EVENT_TELEPORT_GUY
person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, AbraScript, EVENT_TELEPORT_GUY
--- a/maps/LakeOfRage.asm
+++ b/maps/LakeOfRage.asm
@@ -121,11 +121,11 @@
closetext
end
-SuperNerdScript_0x700a2:
- jumptextfaceplayer UnknownText_0x70444
+LakeOfRageSuperNerdScript:
+ jumptextfaceplayer LakeOfRageSuperNerdText
-CooltrainerFScript_0x700a5:
- jumptextfaceplayer UnknownText_0x704bb
+LakeOfRageCooltrainerFScript:
+ jumptextfaceplayer LakeOfRageCooltrainerFText
MapLakeOfRageSignpost0Script:
jumptext UnknownText_0x708d7
@@ -146,9 +146,9 @@
end
TrainerFisherAndre:
- trainer EVENT_BEAT_FISHER_ANDRE, FISHER, ANDRE, FisherAndreSeenText, FisherAndreBeatenText, 0, FisherAndreScript
+ trainer EVENT_BEAT_FISHER_ANDRE, FISHER, ANDRE, FisherAndreSeenText, FisherAndreBeatenText, 0, .Script
-FisherAndreScript:
+.Script:
end_if_just_battled
opentext
writetext FisherAndreAfterBattleText
@@ -157,9 +157,9 @@
end
TrainerFisherRaymond:
- trainer EVENT_BEAT_FISHER_RAYMOND, FISHER, RAYMOND, FisherRaymondSeenText, FisherRaymondBeatenText, 0, FisherRaymondScript
+ trainer EVENT_BEAT_FISHER_RAYMOND, FISHER, RAYMOND, FisherRaymondSeenText, FisherRaymondBeatenText, 0, .Script
-FisherRaymondScript:
+.Script:
end_if_just_battled
opentext
writetext FisherRaymondAfterBattleText
@@ -168,9 +168,9 @@
end
TrainerCooltrainermAaron:
- trainer EVENT_BEAT_COOLTRAINERM_AARON, COOLTRAINERM, AARON, CooltrainermAaronSeenText, CooltrainermAaronBeatenText, 0, CooltrainermAaronScript
+ trainer EVENT_BEAT_COOLTRAINERM_AARON, COOLTRAINERM, AARON, CooltrainermAaronSeenText, CooltrainermAaronBeatenText, 0, .Script
-CooltrainermAaronScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermAaronAfterBattleText
@@ -179,9 +179,9 @@
end
TrainerCooltrainerfLois:
- trainer EVENT_BEAT_COOLTRAINERF_LOIS, COOLTRAINERF, LOIS, CooltrainerfLoisSeenText, CooltrainerfLoisBeatenText, 0, CooltrainerfLoisScript
+ trainer EVENT_BEAT_COOLTRAINERF_LOIS, COOLTRAINERF, LOIS, CooltrainerfLoisSeenText, CooltrainerfLoisBeatenText, 0, .Script
-CooltrainerfLoisScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfLoisAfterBattleText
@@ -336,7 +336,7 @@
line "KARP are biting!"
done
-UnknownText_0x70444:
+LakeOfRageSuperNerdText:
text "I heard this lake"
line "was made by ram-"
cont "paging GYARADOS."
@@ -348,7 +348,7 @@
line "break now?"
done
-UnknownText_0x704bb:
+LakeOfRageCooltrainerFText:
text "Did my eyes de-"
line "ceive me? I saw a"
@@ -520,8 +520,8 @@
db 12
person_event SPRITE_LANCE, 28, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LanceScript_0x70022, EVENT_LAKE_OF_RAGE_LANCE
person_event SPRITE_GRAMPS, 26, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7008e, -1
- person_event SPRITE_SUPER_NERD, 13, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x700a2, -1
- person_event SPRITE_COOLTRAINER_F, 29, 25, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x700a5, -1
+ person_event SPRITE_SUPER_NERD, 13, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LakeOfRageSuperNerdScript, -1
+ person_event SPRITE_COOLTRAINER_F, 29, 25, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LakeOfRageCooltrainerFScript, -1
person_event SPRITE_FISHER, 23, 30, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS
person_event SPRITE_FISHER, 26, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS
person_event SPRITE_COOLTRAINER_M, 15, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS
--- a/maps/LavRadioTower1F.asm
+++ b/maps/LavRadioTower1F.asm
@@ -12,14 +12,14 @@
.MapCallbacks:
db 0
-ReceptionistScript_0x7ee63:
- jumptextfaceplayer UnknownText_0x7eebf
+LavRadioTower1FReceptionistScript:
+ jumptextfaceplayer LavRadioTower1FReceptionistText
-OfficerScript_0x7ee66:
- jumptextfaceplayer UnknownText_0x7eefa
+LavRadioTower1FOfficerScript:
+ jumptextfaceplayer LavRadioTower1FOfficerText
-SuperNerdScript_0x7ee69:
- jumptextfaceplayer UnknownText_0x7ef90
+LavRadioTower1FSuperNerdScript:
+ jumptextfaceplayer LavRadioTower1FSuperNerdText
GentlemanScript_0x7ee6c:
faceplayer
@@ -77,7 +77,7 @@
UnknownScript_0x7eebc:
jumptext UnknownText_0x7f36b
-UnknownText_0x7eebf:
+LavRadioTower1FReceptionistText:
text "Welcome!"
line "Feel free to look"
@@ -85,7 +85,7 @@
line "this floor."
done
-UnknownText_0x7eefa:
+LavRadioTower1FOfficerText:
text "Sorry, but you can"
line "only tour the"
cont "ground floor."
@@ -100,7 +100,7 @@
line "up our security."
done
-UnknownText_0x7ef90:
+LavRadioTower1FSuperNerdText:
text "Many people are"
line "hard at work here"
@@ -240,8 +240,8 @@
.PersonEvents:
db 5
- person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x7ee63, -1
- person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7ee66, -1
- person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7ee69, -1
+ person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LavRadioTower1FReceptionistScript, -1
+ person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LavRadioTower1FOfficerScript, -1
+ person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LavRadioTower1FSuperNerdScript, -1
person_event SPRITE_GENTLEMAN, 1, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7ee6c, -1
person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7eea2, -1
--- a/maps/LavenderMart.asm
+++ b/maps/LavenderMart.asm
@@ -16,13 +16,13 @@
closetext
end
-PokefanMScript_0x7eb23:
- jumptextfaceplayer UnknownText_0x7eb29
+LavenderMartPokefanMScript:
+ jumptextfaceplayer LavenderMartPokefanMText
-RockerScript_0x7eb26:
- jumptextfaceplayer UnknownText_0x7ebac
+LavenderMartRockerScript:
+ jumptextfaceplayer LavenderMartRockerText
-UnknownText_0x7eb29:
+LavenderMartPokefanMText:
text "REPEL is a neces-"
line "sity if you are"
@@ -36,7 +36,7 @@
line "all the caves."
done
-UnknownText_0x7ebac:
+LavenderMartRockerText:
text "I heard about a"
line "craftsman who"
@@ -65,5 +65,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7eb1c, -1
- person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x7eb23, -1
- person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x7eb26, -1
+ person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LavenderMartPokefanMScript, -1
+ person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LavenderMartRockerScript, -1
--- a/maps/LavenderPokecenter1F.asm
+++ b/maps/LavenderPokecenter1F.asm
@@ -14,11 +14,11 @@
NurseScript_0x7e6a0:
jumpstd pokecenternurse
-GentlemanScript_0x7e6a3:
- jumptextfaceplayer UnknownText_0x7e6bd
+LavenderPokecenter1FGentlemanScript:
+ jumptextfaceplayer LavenderPokecenter1FGentlemanText
-TeacherScript_0x7e6a6:
- jumptextfaceplayer UnknownText_0x7e710
+LavenderPokecenter1FTeacherScript:
+ jumptextfaceplayer LavenderPokecenter1FTeacherText
YoungsterScript_0x7e6a9:
faceplayer
@@ -36,7 +36,7 @@
closetext
end
-UnknownText_0x7e6bd:
+LavenderPokecenter1FGentlemanText:
text "To the north of"
line "LAVENDER is ROCK"
@@ -45,7 +45,7 @@
cont "POWER PLANT."
done
-UnknownText_0x7e710:
+LavenderPokecenter1FTeacherText:
text "There's a radio"
line "program that plays"
cont "# FLUTE music."
@@ -99,6 +99,6 @@
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x7e6a0, -1
- person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7e6a3, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7e6a6, -1
+ person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LavenderPokecenter1FGentlemanScript, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LavenderPokecenter1FTeacherScript, -1
person_event SPRITE_YOUNGSTER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7e6a9, -1
--- a/maps/LavenderTown.asm
+++ b/maps/LavenderTown.asm
@@ -16,17 +16,17 @@
setflag ENGINE_FLYPOINT_LAVENDER
return
-PokefanMScript_0x1ad6e4:
- jumptextfaceplayer UnknownText_0x1ad702
+LavenderTownPokefanMScript:
+ jumptextfaceplayer LavenderTownPokefanMText
-TeacherScript_0x1ad6e7:
- jumptextfaceplayer UnknownText_0x1ad73a
+LavenderTownTeacherScript:
+ jumptextfaceplayer LavenderTownTeacherText
-GrampsScript_0x1ad6ea:
- jumptextfaceplayer UnknownText_0x1ad75c
+LavenderTownGrampsScript:
+ jumptextfaceplayer LavenderTownGrampsText
-YoungsterScript_0x1ad6ed:
- jumptextfaceplayer UnknownText_0x1ad7ac
+LavenderTownYoungsterScript:
+ jumptextfaceplayer LavenderTownYoungsterText
LavenderTownSign:
jumptext LavenderTownSignText
@@ -46,7 +46,7 @@
LavenderMartSignText:
jumpstd martsign
-UnknownText_0x1ad702:
+LavenderTownPokefanMText:
text "That's quite some"
line "building, eh?"
@@ -54,12 +54,12 @@
line "TOWER."
done
-UnknownText_0x1ad73a:
+LavenderTownTeacherText:
text "KANTO has many"
line "good radio shows."
done
-UnknownText_0x1ad75c:
+LavenderTownGrampsText:
text "People come from"
line "all over to pay"
@@ -68,7 +68,7 @@
cont "of #MON."
done
-UnknownText_0x1ad7ac:
+LavenderTownYoungsterText:
text "You need a #"
line "FLUTE to wake"
cont "sleeping #MON."
@@ -133,7 +133,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKEFAN_M, 7, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1ad6e4, -1
- person_event SPRITE_TEACHER, 15, 2, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1ad6e7, -1
- person_event SPRITE_GRAMPS, 12, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1ad6ea, -1
- person_event SPRITE_YOUNGSTER, 11, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 1, YoungsterScript_0x1ad6ed, -1
+ person_event SPRITE_POKEFAN_M, 7, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LavenderTownPokefanMScript, -1
+ person_event SPRITE_TEACHER, 15, 2, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, LavenderTownTeacherScript, -1
+ person_event SPRITE_GRAMPS, 12, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LavenderTownGrampsScript, -1
+ person_event SPRITE_YOUNGSTER, 11, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 1, LavenderTownYoungsterScript, -1
--- a/maps/LavenderTownSpeechHouse.asm
+++ b/maps/LavenderTownSpeechHouse.asm
@@ -8,13 +8,13 @@
.MapCallbacks:
db 0
-PokefanFScript_0x7ea47:
- jumptextfaceplayer UnknownText_0x7ea4d
+LavenderTownSpeechHousePokefanFScript:
+ jumptextfaceplayer LavenderTownSpeechHousePokefanFText
LavenderTownSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x7ea4d:
+LavenderTownSpeechHousePokefanFText:
text "LAVENDER is a"
line "tiny, quiet town"
@@ -47,4 +47,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x7ea47, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, LavenderTownSpeechHousePokefanFScript, -1
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -71,9 +71,9 @@
jumpstd radiotowerrockets
TrainerSkierRoxanne:
- trainer EVENT_BEAT_SKIER_ROXANNE, SKIER, ROXANNE, SkierRoxanneSeenText, SkierRoxanneBeatenText, 0, SkierRoxanneScript
+ trainer EVENT_BEAT_SKIER_ROXANNE, SKIER, ROXANNE, SkierRoxanneSeenText, SkierRoxanneBeatenText, 0, .Script
-SkierRoxanneScript:
+.Script:
end_if_just_battled
opentext
writetext SkierRoxanneAfterBattleText
@@ -82,9 +82,9 @@
end
TrainerSkierClarissa:
- trainer EVENT_BEAT_SKIER_CLARISSA, SKIER, CLARISSA, SkierClarissaSeenText, SkierClarissaBeatenText, 0, SkierClarissaScript
+ trainer EVENT_BEAT_SKIER_CLARISSA, SKIER, CLARISSA, SkierClarissaSeenText, SkierClarissaBeatenText, 0, .Script
-SkierClarissaScript:
+.Script:
end_if_just_battled
opentext
writetext SkierClarissaAfterBattleText
@@ -93,9 +93,9 @@
end
TrainerBoarderRonald:
- trainer EVENT_BEAT_BOARDER_RONALD, BOARDER, RONALD, BoarderRonaldSeenText, BoarderRonaldBeatenText, 0, BoarderRonaldScript
+ trainer EVENT_BEAT_BOARDER_RONALD, BOARDER, RONALD, BoarderRonaldSeenText, BoarderRonaldBeatenText, 0, .Script
-BoarderRonaldScript:
+.Script:
end_if_just_battled
opentext
writetext BoarderRonaldAfterBattleText
@@ -104,9 +104,9 @@
end
TrainerBoarderBrad:
- trainer EVENT_BEAT_BOARDER_BRAD, BOARDER, BRAD, BoarderBradSeenText, BoarderBradBeatenText, 0, BoarderBradScript
+ trainer EVENT_BEAT_BOARDER_BRAD, BOARDER, BRAD, BoarderBradSeenText, BoarderBradBeatenText, 0, .Script
-BoarderBradScript:
+.Script:
end_if_just_battled
opentext
writetext BoarderBradAfterBattleText
@@ -115,9 +115,9 @@
end
TrainerBoarderDouglas:
- trainer EVENT_BEAT_BOARDER_DOUGLAS, BOARDER, DOUGLAS, BoarderDouglasSeenText, BoarderDouglasBeatenText, 0, BoarderDouglasScript
+ trainer EVENT_BEAT_BOARDER_DOUGLAS, BOARDER, DOUGLAS, BoarderDouglasSeenText, BoarderDouglasBeatenText, 0, .Script
-BoarderDouglasScript:
+.Script:
end_if_just_battled
opentext
writetext BoarderDouglasAfterBattleText
--- a/maps/MahoganyPokecenter1F.asm
+++ b/maps/MahoganyPokecenter1F.asm
@@ -14,16 +14,16 @@
NurseScript_0x19a356:
jumpstd pokecenternurse
-PokefanMScript_0x19a359:
- jumptextfaceplayer UnknownText_0x19a362
+MahoganyPokecenter1FPokefanMScript:
+ jumptextfaceplayer MahoganyPokecenter1FPokefanMText
-YoungsterScript_0x19a35c:
- jumptextfaceplayer UnknownText_0x19a3b3
+MahoganyPokecenter1FYoungsterScript:
+ jumptextfaceplayer MahoganyPokecenter1FYoungsterText
-CooltrainerFScript_0x19a35f:
- jumptextfaceplayer UnknownText_0x19a418
+MahoganyPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer MahoganyPokecenter1FCooltrainerFText
-UnknownText_0x19a362:
+MahoganyPokecenter1FPokefanMText:
text "What's this? TEAM"
line "ROCKET has come"
cont "back?"
@@ -33,7 +33,7 @@
cont "RAGE…"
done
-UnknownText_0x19a3b3:
+MahoganyPokecenter1FYoungsterText:
text "I stop my #MON"
line "from evolving too"
cont "early."
@@ -44,7 +44,7 @@
cont "evolve."
done
-UnknownText_0x19a418:
+MahoganyPokecenter1FCooltrainerFText:
text "#MON do become"
line "stronger when they"
@@ -72,6 +72,6 @@
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x19a356, -1
- person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19a359, -1
- person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19a35c, -1
- person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x19a35f, -1
+ person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, MahoganyPokecenter1FPokefanMScript, -1
+ person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, MahoganyPokecenter1FYoungsterScript, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MahoganyPokecenter1FCooltrainerFScript, -1
--- a/maps/MahoganyRedGyaradosSpeechHouse.asm
+++ b/maps/MahoganyRedGyaradosSpeechHouse.asm
@@ -9,8 +9,8 @@
.MapCallbacks:
db 0
-BlackBeltScript_0x19997f:
- jumptextfaceplayer UnknownText_0x19999c
+MahoganyRedGyaradosSpeechHouseBlackBeltScript:
+ jumptextfaceplayer MahoganyRedGyaradosSpeechHouseBlackBeltText
TeacherScript_0x199982:
faceplayer
@@ -34,7 +34,7 @@
UnknownScript_0x195999:
jumpstd magazinebookshelf
-UnknownText_0x19999c:
+MahoganyRedGyaradosSpeechHouseBlackBeltText:
text "I heard that a red"
line "GYARADOS appeared"
cont "at the LAKE."
@@ -77,5 +77,5 @@
.PersonEvents:
db 2
- person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x19997f, -1
+ person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MahoganyRedGyaradosSpeechHouseBlackBeltScript, -1
person_event SPRITE_TEACHER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x199982, -1
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -103,11 +103,11 @@
closetext
end
-FisherScript_0x190092:
- jumptextfaceplayer UnknownText_0x190276
+MahoganyTownFisherScript:
+ jumptextfaceplayer MahoganyTownFisherText
-LassScript_0x190095:
- jumptextfaceplayer UnknownText_0x1902f2
+MahoganyTownLassScript:
+ jumptextfaceplayer MahoganyTownLassText
MahoganyTownSign:
jumptext MahoganyTownSignText
@@ -200,7 +200,7 @@
cont "anglers there."
done
-UnknownText_0x190276:
+MahoganyTownFisherText:
text "Since you came"
line "this far, take the"
@@ -214,7 +214,7 @@
line "right now."
done
-UnknownText_0x1902f2:
+MahoganyTownLassText:
text "Visit Grandma's"
line "shop. She sells"
@@ -272,5 +272,5 @@
db 4
person_event SPRITE_POKEFAN_M, 8, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19002e, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
person_event SPRITE_GRAMPS, 9, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x19007e, -1
- person_event SPRITE_FISHER, 14, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x190092, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
- person_event SPRITE_LASS, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x190095, EVENT_MAHOGANY_MART_OWNERS
+ person_event SPRITE_FISHER, 14, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, MahoganyTownFisherScript, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
+ person_event SPRITE_LASS, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MahoganyTownLassScript, EVENT_MAHOGANY_MART_OWNERS
--- a/maps/MountMoonGiftShop.asm
+++ b/maps/MountMoonGiftShop.asm
@@ -18,10 +18,10 @@
closetext
end
-LassScript_0x771b0:
- jumptextfaceplayer UnknownText_0x771b3
+MountMoonGiftShopLassScript:
+ jumptextfaceplayer MountMoonGiftShopLassText
-UnknownText_0x771b3:
+MountMoonGiftShopLassText:
text "When the sun goes"
line "down, CLEFAIRY"
cont "come out to play."
@@ -46,5 +46,5 @@
db 4
person_event SPRITE_GRAMPS, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, MORN, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x771a8, -1
person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, DAY, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x771a8, -1
- person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, MORN, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x771b0, -1
- person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, DAY, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x771b0, -1
+ person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, MORN, 0, PERSONTYPE_SCRIPT, 0, MountMoonGiftShopLassScript, -1
+ person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, DAY, 0, PERSONTYPE_SCRIPT, 0, MountMoonGiftShopLassScript, -1
--- a/maps/MountMortar1FInside.asm
+++ b/maps/MountMortar1FInside.asm
@@ -18,9 +18,9 @@
db 0
TrainerPokemaniacMiller:
- trainer EVENT_BEAT_POKEMANIAC_MILLER, POKEMANIAC, MILLER, PokemaniacMillerSeenText, PokemaniacMillerBeatenText, 0, PokemaniacMillerScript
+ trainer EVENT_BEAT_POKEMANIAC_MILLER, POKEMANIAC, MILLER, PokemaniacMillerSeenText, PokemaniacMillerBeatenText, 0, .Script
-PokemaniacMillerScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacMillerAfterBattleText
@@ -29,9 +29,9 @@
end
TrainerSupernerdMarkus:
- trainer EVENT_BEAT_SUPER_NERD_MARKUS, SUPER_NERD, MARKUS, SupernerdMarkusSeenText, SupernerdMarkusBeatenText, 0, SupernerdMarkusScript
+ trainer EVENT_BEAT_SUPER_NERD_MARKUS, SUPER_NERD, MARKUS, SupernerdMarkusSeenText, SupernerdMarkusBeatenText, 0, .Script
-SupernerdMarkusScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdMarkusAfterBattleText
--- a/maps/MountMortar2FInside.asm
+++ b/maps/MountMortar2FInside.asm
@@ -15,9 +15,9 @@
db 0
TrainerSupernerdHugh:
- trainer EVENT_BEAT_SUPER_NERD_HUGH, SUPER_NERD, HUGH, SupernerdHughSeenText, SupernerdHughBeatenText, 0, SupernerdHughScript
+ trainer EVENT_BEAT_SUPER_NERD_HUGH, SUPER_NERD, HUGH, SupernerdHughSeenText, SupernerdHughBeatenText, 0, .Script
-SupernerdHughScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdHughAfterBattleText
--- a/maps/MrFujisHouse.asm
+++ b/maps/MrFujisHouse.asm
@@ -12,11 +12,11 @@
.MapCallbacks:
db 0
-SuperNerdScript_0x7e8ca:
- jumptextfaceplayer UnknownText_0x7e8f1
+MrFujisHouseSuperNerdScript:
+ jumptextfaceplayer MrFujisHouseSuperNerdText
-LassScript_0x7e8cd:
- jumptextfaceplayer UnknownText_0x7e940
+MrFujisHouseLassScript:
+ jumptextfaceplayer MrFujisHouseLassText
MrFujisPsyduck:
opentext
@@ -45,7 +45,7 @@
MrFujisHouseBookshelf:
jumpstd difficultbookshelf
-UnknownText_0x7e8f1:
+MrFujisHouseSuperNerdText:
text "MR.FUJI does live"
line "here, but he's not"
@@ -55,7 +55,7 @@
line "the SOUL HOUSE."
done
-UnknownText_0x7e940:
+MrFujisHouseLassText:
text "Some cold-hearted"
line "people stop caring"
cont "for their #MON."
@@ -98,8 +98,8 @@
.PersonEvents:
db 5
- person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7e8ca, -1
- person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x7e8cd, -1
+ person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, MrFujisHouseSuperNerdScript, -1
+ person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MrFujisHouseLassScript, -1
person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MrFujisPsyduck, -1
person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, MrFujisNidorino, -1
person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, MrFujisPidgey, -1
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -21,11 +21,11 @@
.MapCallbacks:
db 0
-LassScript_0x5c002:
- jumptextfaceplayer UnknownText_0x5c1d3
+NationalParkLassScript:
+ jumptextfaceplayer NationalParkLassText
-PokefanFScript_0x5c005:
- jumptextfaceplayer UnknownText_0x5c22e
+NationalParkPokefanFScript:
+ jumptextfaceplayer NationalParkPokefanFText
TeacherScript_0x5c008:
faceplayer
@@ -44,14 +44,14 @@
closetext
end
-YoungsterScript_0x5c023:
- jumptextfaceplayer UnknownText_0x5c35d
+NationalParkYoungster1Script:
+ jumptextfaceplayer NationalParkYoungster1Text
-YoungsterScript_0x5c026:
- jumptextfaceplayer UnknownText_0x5c38f
+NationalParkYoungster2Script:
+ jumptextfaceplayer NationalParkYoungster2Text
-TeacherScript_0x5c029:
- jumptextfaceplayer UnknownText_0x5c3bc
+NationalParkTeacherScript:
+ jumptextfaceplayer NationalParkTeacherText
NationalParkPersian:
faceplayer
@@ -72,9 +72,9 @@
end
TrainerSchoolboyJack1:
- trainer EVENT_BEAT_SCHOOLBOY_JACK, SCHOOLBOY, JACK1, SchoolboyJack1SeenText, SchoolboyJack1BeatenText, 0, SchoolboyJack1Script
+ trainer EVENT_BEAT_SCHOOLBOY_JACK, SCHOOLBOY, JACK1, SchoolboyJack1SeenText, SchoolboyJack1BeatenText, 0, .Script
-SchoolboyJack1Script:
+.Script:
writecode VAR_CALLERID, PHONE_SCHOOLBOY_JACK
end_if_just_battled
opentext
@@ -189,9 +189,9 @@
end
TrainerPokefanmWilliam:
- trainer EVENT_BEAT_POKEFANM_WILLIAM, POKEFANM, WILLIAM, PokefanmWilliamSeenText, PokefanmWilliamBeatenText, 0, PokefanmWilliamScript
+ trainer EVENT_BEAT_POKEFANM_WILLIAM, POKEFANM, WILLIAM, PokefanmWilliamSeenText, PokefanmWilliamBeatenText, 0, .Script
-PokefanmWilliamScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmWilliamAfterBattleText
@@ -200,9 +200,9 @@
end
TrainerPokefanfBeverly1:
- trainer EVENT_BEAT_POKEFANF_BEVERLY, POKEFANF, BEVERLY1, PokefanfBeverly1SeenText, PokefanfBeverly1BeatenText, 0, PokefanfBeverly1Script
+ trainer EVENT_BEAT_POKEFANF_BEVERLY, POKEFANF, BEVERLY1, PokefanfBeverly1SeenText, PokefanfBeverly1BeatenText, 0, .Script
-PokefanfBeverly1Script:
+.Script:
writecode VAR_CALLERID, PHONE_POKEFAN_BEVERLY
end_if_just_battled
opentext
@@ -279,9 +279,9 @@
end
TrainerLassKrise:
- trainer EVENT_BEAT_LASS_KRISE, LASS, KRISE, LassKriseSeenText, LassKriseBeatenText, 0, LassKriseScript
+ trainer EVENT_BEAT_LASS_KRISE, LASS, KRISE, LassKriseSeenText, LassKriseBeatenText, 0, .Script
-LassKriseScript:
+.Script:
end_if_just_battled
opentext
writetext LassKriseAfterBattleText
@@ -308,7 +308,7 @@
dwb EVENT_NATIONAL_PARK_HIDDEN_FULL_HEAL, FULL_HEAL
-UnknownText_0x5c1d3:
+NationalParkLassText:
text "Look! Check out my"
line "bag!"
@@ -319,7 +319,7 @@
line "them on my bag."
done
-UnknownText_0x5c22e:
+NationalParkPokefanFText:
text "This is MAIL I got"
line "from my daughter."
cont "It cheers me up."
@@ -354,19 +354,19 @@
cont "during battle."
done
-UnknownText_0x5c35d:
+NationalParkYoungster1Text:
text "I'm playing with"
line "stickers I printed"
cont "from my #DEX."
done
-UnknownText_0x5c38f:
+NationalParkYoungster2Text:
text "I get the other"
line "guy's #DEX"
cont "sticker if I win."
done
-UnknownText_0x5c3bc:
+NationalParkTeacherText:
text "I take walks in"
line "the PARK, but I"
@@ -537,12 +537,12 @@
.PersonEvents:
db 14
- person_event SPRITE_LASS, 24, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x5c002, -1
- person_event SPRITE_POKEFAN_F, 4, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x5c005, -1
+ person_event SPRITE_LASS, 24, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, NationalParkLassScript, -1
+ person_event SPRITE_POKEFAN_F, 4, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NationalParkPokefanFScript, -1
person_event SPRITE_TEACHER, 40, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5c008, -1
- person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c023, -1
- person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c026, -1
- person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5c029, -1
+ person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NationalParkYoungster1Script, -1
+ person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, NationalParkYoungster2Script, -1
+ person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NationalParkTeacherScript, -1
person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NationalParkPersian, -1
person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyJack1, -1
person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 2, TrainerPokefanfBeverly1, -1
--- a/maps/OlivineCafe.asm
+++ b/maps/OlivineCafe.asm
@@ -25,11 +25,11 @@
closetext
end
-FishingGuruScript_0x9c8d9:
- jumptextfaceplayer UnknownText_0x9c9c5
+OlivineCafeFishingGuruScript:
+ jumptextfaceplayer OlivineCafeFishingGuruText
-SailorScript_0x9c8dc:
- jumptextfaceplayer UnknownText_0x9ca09
+OlivineCafeSailorScript:
+ jumptextfaceplayer OlivineCafeSailorText
UnknownText_0x9c8df:
text "Hah! Your #MON"
@@ -56,7 +56,7 @@
line "buff bod!"
done
-UnknownText_0x9c9c5:
+OlivineCafeFishingGuruText:
text "OLIVINE CAFE's"
line "menu is chock full"
@@ -64,7 +64,7 @@
line "beefy SAILORS!"
done
-UnknownText_0x9ca09:
+OlivineCafeSailorText:
text "Whenever I roll"
line "into this town, I"
@@ -96,5 +96,5 @@
.PersonEvents:
db 3
person_event SPRITE_SAILOR, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9c8c1, -1
- person_event SPRITE_FISHING_GURU, 3, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9c8d9, -1
- person_event SPRITE_SAILOR, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9c8dc, -1
+ person_event SPRITE_FISHING_GURU, 3, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineCafeFishingGuruScript, -1
+ person_event SPRITE_SAILOR, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineCafeSailorScript, -1
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -72,8 +72,8 @@
special MapCallbackSprites_LoadUsedSpritesGFX
end
-SailorScript_0x1a88a3:
- jumptextfaceplayer UnknownText_0x1a8a58
+OlivineCitySailor1Script:
+ jumptextfaceplayer OlivineCitySailor1Text
StandingYoungsterScript_0x1a88a6:
faceplayer
@@ -91,8 +91,8 @@
closetext
end
-SailorScript_0x1a88ba:
- jumptextfaceplayer UnknownText_0x1a8b71
+OlivineCitySailor2Script:
+ jumptextfaceplayer OlivineCitySailor2Text
OlivineCitySign:
jumptext OlivineCitySignText
@@ -207,7 +207,7 @@
cont "less weak!"
done
-UnknownText_0x1a8a58:
+OlivineCitySailor1Text:
text "Dark roads are"
line "dangerous at"
cont "night."
@@ -240,7 +240,7 @@
line "awesome."
done
-UnknownText_0x1a8b71:
+OlivineCitySailor2Text:
text "The sea is sweet!"
para "Sunsets on the sea"
@@ -322,7 +322,7 @@
.PersonEvents:
db 4
- person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x1a88a3, -1
+ person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineCitySailor1Script, -1
person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a88a6, -1
- person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x1a88ba, -1
+ person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineCitySailor2Script, -1
person_event SPRITE_OLIVINE_RIVAL, 11, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY
--- a/maps/OlivineHouseBeta.asm
+++ b/maps/OlivineHouseBeta.asm
@@ -9,8 +9,8 @@
.MapCallbacks:
db 0
-TeacherScript_0x9c58f:
- jumptextfaceplayer UnknownText_0x9c5a2
+OlivineHouseBetaTeacherScript:
+ jumptextfaceplayer OlivineHouseBetaTeacherText
RhydonScript_0x9c592:
opentext
@@ -26,7 +26,7 @@
OlivineHouseBetaBookshelf2:
jumpstd magazinebookshelf
-UnknownText_0x9c5a2:
+OlivineHouseBetaTeacherText:
text "When my #MON"
line "got sick, the"
@@ -58,5 +58,5 @@
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9c58f, -1
+ person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineHouseBetaTeacherScript, -1
person_event SPRITE_RHYDON, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RhydonScript_0x9c592, -1
--- a/maps/OlivineLighthouse1F.asm
+++ b/maps/OlivineLighthouse1F.asm
@@ -9,13 +9,13 @@
.MapCallbacks:
db 0
-SailorScript_0x5ae67:
- jumptextfaceplayer UnknownText_0x5ae6d
+OlivineLighthouse1FSailorScript:
+ jumptextfaceplayer OlivineLighthouse1FSailorText
-PokefanFScript_0x5ae6a:
- jumptextfaceplayer UnknownText_0x5aec2
+OlivineLighthouse1FPokefanFScript:
+ jumptextfaceplayer OlivineLighthouse1FPokefanFText
-UnknownText_0x5ae6d:
+OlivineLighthouse1FSailorText:
text "People train at"
line "this LIGHTHOUSE."
@@ -24,7 +24,7 @@
cont "all the trainers."
done
-UnknownText_0x5aec2:
+OlivineLighthouse1FPokefanFText:
text "In the past, #-"
line "MON used to light"
@@ -56,5 +56,5 @@
.PersonEvents:
db 2
- person_event SPRITE_SAILOR, 2, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x5ae67, -1
- person_event SPRITE_POKEFAN_F, 9, 16, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x5ae6a, -1
+ person_event SPRITE_SAILOR, 2, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineLighthouse1FSailorScript, -1
+ person_event SPRITE_POKEFAN_F, 9, 16, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineLighthouse1FPokefanFScript, -1
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -10,9 +10,9 @@
db 0
TrainerGentlemanAlfred:
- trainer EVENT_BEAT_GENTLEMAN_ALFRED, GENTLEMAN, ALFRED, GentlemanAlfredSeenText, GentlemanAlfredBeatenText, 0, GentlemanAlfredScript
+ trainer EVENT_BEAT_GENTLEMAN_ALFRED, GENTLEMAN, ALFRED, GentlemanAlfredSeenText, GentlemanAlfredBeatenText, 0, .Script
-GentlemanAlfredScript:
+.Script:
end_if_just_battled
opentext
writetext GentlemanAlfredAfterBattleText
@@ -21,9 +21,9 @@
end
TrainerSailorHuey1:
- trainer EVENT_BEAT_SAILOR_HUEY, SAILOR, HUEY1, SailorHuey1SeenText, SailorHuey1BeatenText, 0, SailorHuey1Script
+ trainer EVENT_BEAT_SAILOR_HUEY, SAILOR, HUEY1, SailorHuey1SeenText, SailorHuey1BeatenText, 0, .Script
-SailorHuey1Script:
+.Script:
writecode VAR_CALLERID, PHONE_SAILOR_HUEY
end_if_just_battled
opentext
--- a/maps/OlivineLighthouse3F.asm
+++ b/maps/OlivineLighthouse3F.asm
@@ -12,9 +12,9 @@
db 0
TrainerBird_keeperTheo:
- trainer EVENT_BEAT_BIRD_KEEPER_THEO, BIRD_KEEPER, THEO, Bird_keeperTheoSeenText, Bird_keeperTheoBeatenText, 0, Bird_keeperTheoScript
+ trainer EVENT_BEAT_BIRD_KEEPER_THEO, BIRD_KEEPER, THEO, Bird_keeperTheoSeenText, Bird_keeperTheoBeatenText, 0, .Script
-Bird_keeperTheoScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperTheoAfterBattleText
@@ -23,9 +23,9 @@
end
TrainerGentlemanPreston:
- trainer EVENT_BEAT_GENTLEMAN_PRESTON, GENTLEMAN, PRESTON, GentlemanPrestonSeenText, GentlemanPrestonBeatenText, 0, GentlemanPrestonScript
+ trainer EVENT_BEAT_GENTLEMAN_PRESTON, GENTLEMAN, PRESTON, GentlemanPrestonSeenText, GentlemanPrestonBeatenText, 0, .Script
-GentlemanPrestonScript:
+.Script:
end_if_just_battled
opentext
writetext GentlemanPrestonAfterBattleText
@@ -34,9 +34,9 @@
end
TrainerSailorTerrell:
- trainer EVENT_BEAT_SAILOR_TERRELL, SAILOR, TERRELL, SailorTerrellSeenText, SailorTerrellBeatenText, 0, SailorTerrellScript
+ trainer EVENT_BEAT_SAILOR_TERRELL, SAILOR, TERRELL, SailorTerrellSeenText, SailorTerrellBeatenText, 0, .Script
-SailorTerrellScript:
+.Script:
end_if_just_battled
opentext
writetext SailorTerrellAfterBattleText
--- a/maps/OlivineLighthouse4F.asm
+++ b/maps/OlivineLighthouse4F.asm
@@ -10,9 +10,9 @@
db 0
TrainerLassConnie:
- trainer EVENT_BEAT_LASS_CONNIE, LASS, CONNIE1, LassConnie1SeenText, LassConnie1BeatenText, 0, LassConnie1Script
+ trainer EVENT_BEAT_LASS_CONNIE, LASS, CONNIE1, LassConnie1SeenText, LassConnie1BeatenText, 0, .Script
-LassConnie1Script:
+.Script:
end_if_just_battled
opentext
writetext LassConnie1AfterBattleText
@@ -21,9 +21,9 @@
end
TrainerSailorKent:
- trainer EVENT_BEAT_SAILOR_KENT, SAILOR, KENT, SailorKentSeenText, SailorKentBeatenText, 0, SailorKentScript
+ trainer EVENT_BEAT_SAILOR_KENT, SAILOR, KENT, SailorKentSeenText, SailorKentBeatenText, 0, .Script
-SailorKentScript:
+.Script:
end_if_just_battled
opentext
writetext SailorKentAfterBattleText
--- a/maps/OlivineLighthouse5F.asm
+++ b/maps/OlivineLighthouse5F.asm
@@ -13,9 +13,9 @@
db 0
TrainerBird_keeperDenis:
- trainer EVENT_BEAT_BIRD_KEEPER_DENIS, BIRD_KEEPER, DENIS, Bird_keeperDenisSeenText, Bird_keeperDenisBeatenText, 0, Bird_keeperDenisScript
+ trainer EVENT_BEAT_BIRD_KEEPER_DENIS, BIRD_KEEPER, DENIS, Bird_keeperDenisSeenText, Bird_keeperDenisBeatenText, 0, .Script
-Bird_keeperDenisScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperDenisAfterBattleText
@@ -24,9 +24,9 @@
end
TrainerSailorErnest:
- trainer EVENT_BEAT_SAILOR_ERNEST, SAILOR, ERNEST, SailorErnestSeenText, SailorErnestBeatenText, 0, SailorErnestScript
+ trainer EVENT_BEAT_SAILOR_ERNEST, SAILOR, ERNEST, SailorErnestSeenText, SailorErnestBeatenText, 0, .Script
-SailorErnestScript:
+.Script:
end_if_just_battled
opentext
writetext SailorErnestAfterBattleText
--- a/maps/OlivineMart.asm
+++ b/maps/OlivineMart.asm
@@ -16,13 +16,13 @@
closetext
end
-CooltrainerFScript_0x9cace:
- jumptextfaceplayer UnknownText_0x9cad4
+OlivineMartCooltrainerFScript:
+ jumptextfaceplayer OlivineMartCooltrainerFText
-LassScript_0x9cad1:
- jumptextfaceplayer UnknownText_0x9cb16
+OlivineMartLassScript:
+ jumptextfaceplayer OlivineMartLassText
-UnknownText_0x9cad4:
+OlivineMartCooltrainerFText:
text "Do your #MON"
line "already know the"
@@ -30,7 +30,7 @@
line "people on water?"
done
-UnknownText_0x9cb16:
+OlivineMartLassText:
text "My BUTTERFREE came"
line "from my boyfriend"
cont "overseas."
@@ -63,5 +63,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x9cac7, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9cace, -1
- person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x9cad1, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OlivineMartCooltrainerFScript, -1
+ person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineMartLassScript, -1
--- a/maps/OlivinePokecenter1F.asm
+++ b/maps/OlivinePokecenter1F.asm
@@ -17,13 +17,13 @@
FishingGuruScript_0x9c005:
jumpstd happinesschecknpc
-FisherScript_0x9c008:
- jumptextfaceplayer UnknownText_0x9c00e
+OlivinePokecenter1FFisherScript:
+ jumptextfaceplayer OlivinePokecenter1FFisherText
-TeacherScript_0x9c00b:
- jumptextfaceplayer UnknownText_0x9c086
+OlivinePokecenter1FTeacherScript:
+ jumptextfaceplayer OlivinePokecenter1FTeacherText
-UnknownText_0x9c00e:
+OlivinePokecenter1FFisherText:
text "The SAILOR in the"
line "OLIVINE CAFE next"
@@ -37,7 +37,7 @@
line "big boulders."
done
-UnknownText_0x9c086:
+OlivinePokecenter1FTeacherText:
text "There's a person"
line "in CIANWOOD CITY"
cont "across the sea."
@@ -67,5 +67,5 @@
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9c002, -1
person_event SPRITE_FISHING_GURU, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9c005, -1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x9c008, -1
- person_event SPRITE_TEACHER, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9c00b, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OlivinePokecenter1FFisherScript, -1
+ person_event SPRITE_TEACHER, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePokecenter1FTeacherScript, -1
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -194,8 +194,8 @@
closetext
end
-SailorScript_0x749fe:
- jumptextfaceplayer UnknownText_0x74cd7
+OlivinePortSailorScript:
+ jumptextfaceplayer OlivinePortSailorText
FishingGuruScript_0x74a01:
faceplayer
@@ -377,7 +377,7 @@
para "I wish I could go…"
done
-UnknownText_0x74cd7:
+OlivinePortSailorText:
text "We don't want you"
line "to fall into the"
@@ -405,7 +405,7 @@
.PersonEvents:
db 7
person_event SPRITE_SAILOR, 23, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x748c0, EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
- person_event SPRITE_SAILOR, 15, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x749fe, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+ person_event SPRITE_SAILOR, 15, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePortSailorScript, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
person_event SPRITE_SAILOR, 15, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x7499c, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
person_event SPRITE_FISHING_GURU, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x74a01, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
person_event SPRITE_FISHING_GURU, 14, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x74a0c, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
--- a/maps/OlivinePortPassage.asm
+++ b/maps/OlivinePortPassage.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-PokefanMScript_0x76fac:
- jumptextfaceplayer UnknownText_0x76faf
+OlivinePortPassagePokefanMScript:
+ jumptextfaceplayer OlivinePortPassagePokefanMText
-UnknownText_0x76faf:
+OlivinePortPassagePokefanMText:
text "FAST SHIP S.S.AQUA"
line "sails to KANTO on"
@@ -39,4 +39,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
+ person_event SPRITE_POKEFAN_M, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePortPassagePokefanMScript, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
--- a/maps/PalletTown.asm
+++ b/maps/PalletTown.asm
@@ -14,11 +14,11 @@
setflag ENGINE_FLYPOINT_PALLET
return
-TeacherScript_0x1ac6d5:
- jumptextfaceplayer UnknownText_0x1ac6e7
+PalletTownTeacherScript:
+ jumptextfaceplayer PalletTownTeacherText
-FisherScript_0x1ac6d8:
- jumptextfaceplayer UnknownText_0x1ac720
+PalletTownFisherScript:
+ jumptextfaceplayer PalletTownFisherText
PalletTownSign:
jumptext PalletTownSignText
@@ -32,7 +32,7 @@
BluesHouseSign:
jumptext BluesHouseSignText
-UnknownText_0x1ac6e7:
+PalletTownTeacherText:
text "I'm raising #-"
line "MON too."
@@ -40,7 +40,7 @@
line "private guards."
done
-UnknownText_0x1ac720:
+PalletTownFisherText:
text "Technology is"
line "incredible!"
@@ -91,5 +91,5 @@
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1ac6d5, -1
- person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1ac6d8, -1
+ person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PalletTownTeacherScript, -1
+ person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PalletTownFisherScript, -1
--- a/maps/PewterCity.asm
+++ b/maps/PewterCity.asm
@@ -17,11 +17,11 @@
setflag ENGINE_FLYPOINT_PEWTER
return
-CooltrainerFScript_0x18c009:
- jumptextfaceplayer UnknownText_0x18c042
+PewterCityCooltrainerFScript:
+ jumptextfaceplayer PewterCityCooltrainerFText
-BugCatcherScript_0x18c00c:
- jumptextfaceplayer UnknownText_0x18c080
+PewterCityBugCatcherScript:
+ jumptextfaceplayer PewterCityBugCatcherText
GrampsScript_0x18c00f:
faceplayer
@@ -68,7 +68,7 @@
FruitTreeScript_0x18c040:
fruittree FRUITTREE_PEWTER_CITY_2
-UnknownText_0x18c042:
+PewterCityCooltrainerFText:
text "Have you visited"
line "PEWTER GYM?"
@@ -76,7 +76,7 @@
line "rock-type #MON."
done
-UnknownText_0x18c080:
+PewterCityBugCatcherText:
text "At night, CLEFAIRY"
line "come out to play"
cont "at MT.MOON."
@@ -179,8 +179,8 @@
.PersonEvents:
db 5
- person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18c009, -1
- person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x18c00c, -1
+ person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PewterCityCooltrainerFScript, -1
+ person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PewterCityBugCatcherScript, -1
person_event SPRITE_GRAMPS, 17, 29, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x18c00f, -1
person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x18c03e, -1
person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x18c040, -1
--- a/maps/PewterGym.asm
+++ b/maps/PewterGym.asm
@@ -41,9 +41,9 @@
end
TrainerCamperJerry:
- trainer EVENT_BEAT_CAMPER_JERRY, CAMPER, JERRY, CamperJerrySeenText, CamperJerryBeatenText, 0, CamperJerryScript
+ trainer EVENT_BEAT_CAMPER_JERRY, CAMPER, JERRY, CamperJerrySeenText, CamperJerryBeatenText, 0, .Script
-CamperJerryScript:
+.Script:
end_if_just_battled
opentext
writetext CamperJerryAfterBattleText
--- a/maps/PewterMart.asm
+++ b/maps/PewterMart.asm
@@ -16,13 +16,13 @@
closetext
end
-YoungsterScript_0x1a2dd2:
- jumptextfaceplayer UnknownText_0x1a2dd8
+PewterMartYoungsterScript:
+ jumptextfaceplayer PewterMartYoungsterText
-SuperNerdScript_0x1a2dd5:
- jumptextfaceplayer UnknownText_0x1a2e3a
+PewterMartSuperNerdScript:
+ jumptextfaceplayer PewterMartSuperNerdText
-UnknownText_0x1a2dd8:
+PewterMartYoungsterText:
text "Hi! Check out my"
line "GYARADOS!"
@@ -33,7 +33,7 @@
line "it has become."
done
-UnknownText_0x1a2e3a:
+PewterMartSuperNerdText:
text "There once was a"
line "weird old man who"
cont "sold MAGIKARP."
@@ -63,5 +63,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x1a2dcb, -1
- person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a2dd2, -1
- person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a2dd5, -1
+ person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PewterMartYoungsterScript, -1
+ person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PewterMartSuperNerdScript, -1
--- a/maps/PewterNidoranSpeechHouse.asm
+++ b/maps/PewterNidoranSpeechHouse.asm
@@ -9,8 +9,8 @@
.MapCallbacks:
db 0
-SuperNerdScript_0x1a2807:
- jumptextfaceplayer UnknownText_0x1a2814
+PewterNidoranSpeechHouseSuperNerdScript:
+ jumptextfaceplayer PewterNidoranSpeechHouseSuperNerdText
PewterNidoran:
opentext
@@ -20,7 +20,7 @@
closetext
end
-UnknownText_0x1a2814:
+PewterNidoranSpeechHouseSuperNerdText:
text "NIDORAN, shake!"
done
@@ -45,5 +45,5 @@
.PersonEvents:
db 2
- person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a2807, -1
+ person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PewterNidoranSpeechHouseSuperNerdScript, -1
person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PewterNidoran, -1
--- a/maps/PewterPokecenter1F.asm
+++ b/maps/PewterPokecenter1F.asm
@@ -15,8 +15,8 @@
NurseScript_0x1a2ee7:
jumpstd pokecenternurse
-TeacherScript_0x1a2eea:
- jumptextfaceplayer UnknownText_0x1a2f01
+PewterPokecenter1FTeacherScript:
+ jumptextfaceplayer PewterPokecenter1FTeacherText
PewterJigglypuff:
opentext
@@ -26,8 +26,8 @@
closetext
end
-BugCatcherScript_0x1a2ef7:
- jumptextfaceplayer UnknownText_0x1a2f75
+PewterPokecenter1FBugCatcherScript:
+ jumptextfaceplayer PewterPokecenter1FBugCatcherText
Chris:
faceplayer
@@ -37,7 +37,7 @@
closetext
end
-UnknownText_0x1a2f01:
+PewterPokecenter1FTeacherText:
text "…Yeah, and the"
line "GYM in CINNABAR's"
@@ -53,7 +53,7 @@
line "pupuu."
done
-UnknownText_0x1a2f75:
+PewterPokecenter1FBugCatcherText:
text "Most #MON get"
line "drowsy if they"
@@ -86,7 +86,7 @@
.PersonEvents:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1a2ee7, -1
- person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a2eea, -1
+ person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PewterPokecenter1FTeacherScript, -1
person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PewterJigglypuff, -1
- person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x1a2ef7, -1
+ person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PewterPokecenter1FBugCatcherScript, -1
person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Chris, -1
--- a/maps/PewterSnoozeSpeechHouse.asm
+++ b/maps/PewterSnoozeSpeechHouse.asm
@@ -8,13 +8,13 @@
.MapCallbacks:
db 0
-GrampsScript_0x1a3059:
- jumptextfaceplayer UnknownText_0x1a305f
+PewterSnoozeSpeechHouseGrampsScript:
+ jumptextfaceplayer PewterSnoozeSpeechHouseGrampsText
PewterSnoozeSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x1a305f:
+PewterSnoozeSpeechHouseGrampsText:
text "I like snoozing"
line "with the radio on…"
cont "…Zzzz…"
@@ -39,4 +39,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GRAMPS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a3059, -1
+ person_event SPRITE_GRAMPS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PewterSnoozeSpeechHouseGrampsScript, -1
--- a/maps/PokemonFanClub.asm
+++ b/maps/PokemonFanClub.asm
@@ -49,8 +49,8 @@
closetext
end
-ReceptionistScript_0x191821:
- jumptextfaceplayer UnknownText_0x191b6d
+PokemonFanClubReceptionistScript:
+ jumptextfaceplayer PokemonFanClubReceptionistText
FisherScript_0x191824:
faceplayer
@@ -100,8 +100,8 @@
closetext
end
-TeacherScript_0x19186b:
- jumptextfaceplayer UnknownText_0x191d73
+PokemonFanClubTeacherScript:
+ jumptextfaceplayer PokemonFanClubTeacherText
ClefairyDoll:
jumptext ClefairyDollText
@@ -199,7 +199,7 @@
line "want to listen."
done
-UnknownText_0x191b6d:
+PokemonFanClubReceptionistText:
text "Our CHAIRMAN is"
line "very vocal when it"
cont "comes to #MON…"
@@ -264,7 +264,7 @@
line "jammed full."
done
-UnknownText_0x191d73:
+PokemonFanClubTeacherText:
text "Look at my darling"
line "BAYLEEF!"
@@ -316,8 +316,8 @@
.PersonEvents:
db 6
person_event SPRITE_GENTLEMAN, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x1917e9, -1
- person_event SPRITE_RECEPTIONIST, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x191821, -1
+ person_event SPRITE_RECEPTIONIST, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PokemonFanClubReceptionistScript, -1
person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x191824, -1
- person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x19186b, -1
+ person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokemonFanClubTeacherScript, -1
person_event SPRITE_FAIRY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClefairyDoll, EVENT_VERMILION_FAN_CLUB_DOLL
person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FanClubBayleef, -1
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -179,16 +179,16 @@
closetext
end
-LassScript_0x5ce51:
- jumptextfaceplayer UnknownText_0x5d476
+RadioTower1FLassScript:
+ jumptextfaceplayer RadioTower1FLassText
-YoungsterScript_0x5ce54:
- jumptextfaceplayer UnknownText_0x5d4ac
+RadioTower1FYoungsterScript:
+ jumptextfaceplayer RadioTower1FYoungsterText
TrainerGruntM3:
- trainer EVENT_BEAT_ROCKET_GRUNTM_3, GRUNTM, GRUNTM_3, GruntM3SeenText, GruntM3BeatenText, 0, GruntM3Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_3, GRUNTM, GRUNTM_3, GruntM3SeenText, GruntM3BeatenText, 0, .Script
-GruntM3Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM3AfterBattleText
@@ -405,7 +405,7 @@
cont "change your mind."
done
-UnknownText_0x5d476:
+RadioTower1FLassText:
text "BEN is a fabulous"
line "DJ."
@@ -413,7 +413,7 @@
line "makes me melt!"
done
-UnknownText_0x5d4ac:
+RadioTower1FYoungsterText:
text "I love MARY, from"
line "#MON TALK."
@@ -493,8 +493,8 @@
.PersonEvents:
db 6
person_event SPRITE_RECEPTIONIST, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x5cd29, -1
- person_event SPRITE_LASS, 4, 16, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x5ce51, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 4, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5ce54, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_LASS, 4, 16, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, RadioTower1FLassScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 4, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, RadioTower1FYoungsterScript, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x5cd3d, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_COOLTRAINER_F, 6, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x5cdd5, EVENT_GOLDENROD_CITY_CIVILIANS
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -21,8 +21,8 @@
UnknownScript_0x5d6fd:
end
-SuperNerdScript_0x5d6fe:
- jumptextfaceplayer UnknownText_0x5d924
+RadioTower2FSuperNerdScript:
+ jumptextfaceplayer RadioTower2FSuperNerdText
TeacherScript_0x5d701:
faceplayer
@@ -48,16 +48,16 @@
closetext
end
-BlackBeltScript_0x5d71f:
- jumptextfaceplayer UnknownText_0x5d9cb
+RadioTower2FBlackBelt1Script:
+ jumptextfaceplayer RadioTower2FBlackBelt1Text
-BlackBeltScript_0x5d722:
- jumptextfaceplayer UnknownText_0x5da44
+RadioTower2FBlackBelt2Script:
+ jumptextfaceplayer RadioTower2FBlackBelt2Text
TrainerGruntM4:
- trainer EVENT_BEAT_ROCKET_GRUNTM_4, GRUNTM, GRUNTM_4, GruntM4SeenText, GruntM4BeatenText, 0, GruntM4Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_4, GRUNTM, GRUNTM_4, GruntM4SeenText, GruntM4BeatenText, 0, .Script
-GruntM4Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM4AfterBattleText
@@ -66,9 +66,9 @@
end
TrainerGruntM5:
- trainer EVENT_BEAT_ROCKET_GRUNTM_5, GRUNTM, GRUNTM_5, GruntM5SeenText, GruntM5BeatenText, 0, GruntM5Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_5, GRUNTM, GRUNTM_5, GruntM5SeenText, GruntM5BeatenText, 0, .Script
-GruntM5Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM5AfterBattleText
@@ -77,9 +77,9 @@
end
TrainerGruntM6:
- trainer EVENT_BEAT_ROCKET_GRUNTM_6, GRUNTM, GRUNTM_6, GruntM6SeenText, GruntM6BeatenText, 0, GruntM6Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_6, GRUNTM, GRUNTM_6, GruntM6SeenText, GruntM6BeatenText, 0, .Script
-GruntM6Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM6AfterBattleText
@@ -88,9 +88,9 @@
end
TrainerGruntF2:
- trainer EVENT_BEAT_ROCKET_GRUNTF_2, GRUNTF, GRUNTF_2, GruntF2SeenText, GruntF2BeatenText, 0, GruntF2Script
+ trainer EVENT_BEAT_ROCKET_GRUNTF_2, GRUNTF, GRUNTF_2, GruntF2SeenText, GruntF2BeatenText, 0, .Script
-GruntF2Script:
+.Script:
end_if_just_battled
opentext
writetext GruntF2AfterBattleText
@@ -343,7 +343,7 @@
slow_step RIGHT
step_end
-UnknownText_0x5d924:
+RadioTower2FSuperNerdText:
text "You can listen to"
line "the radio any-"
cont "where. Tune in!"
@@ -366,7 +366,7 @@
line "Jiggly…"
done
-UnknownText_0x5d9cb:
+RadioTower2FBlackBelt1Text:
text "Sorry. Authorized"
line "personnel only"
cont "beyond this point."
@@ -379,7 +379,7 @@
cont "DIRECTOR…"
done
-UnknownText_0x5da44:
+RadioTower2FBlackBelt2Text:
text "Feel free to look"
line "around anywhere."
@@ -733,14 +733,14 @@
.PersonEvents:
db 11
- person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x5d6fe, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, RadioTower2FSuperNerdScript, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_TEACHER, 2, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5d701, -1
person_event SPRITE_ROCKET, 4, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 4, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET_GIRL, 5, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
- person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RadioTower2FBlackBelt1Script, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
+ person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RadioTower2FBlackBelt2Script, EVENT_RADIO_TOWER_CIVILIANS_AFTER
person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RadioTowerJigglypuff, -1
person_event SPRITE_BUENA, 5, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Buena, -1
person_event SPRITE_RECEPTIONIST, 7, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS
--- a/maps/RadioTower3F.asm
+++ b/maps/RadioTower3F.asm
@@ -25,8 +25,8 @@
changeblock $e, $4, $1
return
-SuperNerdScript_0x5e553:
- jumptextfaceplayer UnknownText_0x5e621
+RadioTower3FSuperNerdScript:
+ jumptextfaceplayer RadioTower3FSuperNerdText
GymGuyScript_0x5e556:
faceplayer
@@ -83,9 +83,9 @@
end
TrainerGruntM7:
- trainer EVENT_BEAT_ROCKET_GRUNTM_7, GRUNTM, GRUNTM_7, GruntM7SeenText, GruntM7BeatenText, 0, GruntM7Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_7, GRUNTM, GRUNTM_7, GruntM7SeenText, GruntM7BeatenText, 0, .Script
-GruntM7Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM7AfterBattleText
@@ -94,9 +94,9 @@
end
TrainerGruntM8:
- trainer EVENT_BEAT_ROCKET_GRUNTM_8, GRUNTM, GRUNTM_8, GruntM8SeenText, GruntM8BeatenText, 0, GruntM8Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_8, GRUNTM, GRUNTM_8, GruntM8SeenText, GruntM8BeatenText, 0, .Script
-GruntM8Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM8AfterBattleText
@@ -105,9 +105,9 @@
end
TrainerGruntM9:
- trainer EVENT_BEAT_ROCKET_GRUNTM_9, GRUNTM, GRUNTM_9, GruntM9SeenText, GruntM9BeatenText, 0, GruntM9Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_9, GRUNTM, GRUNTM_9, GruntM9SeenText, GruntM9BeatenText, 0, .Script
-GruntM9Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM9AfterBattleText
@@ -116,9 +116,9 @@
end
TrainerScientistMarc:
- trainer EVENT_BEAT_SCIENTIST_MARC, SCIENTIST, MARC, ScientistMarcSeenText, ScientistMarcBeatenText, 0, ScientistMarcScript
+ trainer EVENT_BEAT_SCIENTIST_MARC, SCIENTIST, MARC, ScientistMarcSeenText, ScientistMarcBeatenText, 0, .Script
-ScientistMarcScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistMarcAfterBattleText
@@ -156,7 +156,7 @@
MapRadioTower3FSignpost1Script:
jumptext UnknownText_0x5eae4
-UnknownText_0x5e621:
+RadioTower3FSuperNerdText:
text "We have recordings"
line "of the cries of"
@@ -349,7 +349,7 @@
.PersonEvents:
db 7
- person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, RadioTower3FSuperNerdScript, EVENT_RADIO_TOWER_CIVILIANS_AFTER
person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x5e556, -1
person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x5e56a, -1
person_event SPRITE_ROCKET, 1, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -14,8 +14,8 @@
.MapCallbacks:
db 0
-FisherScript_0x5eb82:
- jumptextfaceplayer UnknownText_0x5ec12
+RadioTower4FFisherScript:
+ jumptextfaceplayer RadioTower4FFisherText
TeacherScript_0x5eb85:
faceplayer
@@ -56,9 +56,9 @@
end
TrainerGruntM10:
- trainer EVENT_BEAT_ROCKET_GRUNTM_10, GRUNTM, GRUNTM_10, GruntM10SeenText, GruntM10BeatenText, 0, GruntM10Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_10, GRUNTM, GRUNTM_10, GruntM10SeenText, GruntM10BeatenText, 0, .Script
-GruntM10Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM10AfterBattleText
@@ -67,9 +67,9 @@
end
TrainerExecutivem2:
- trainer EVENT_BEAT_ROCKET_EXECUTIVEM_2, EXECUTIVEM, EXECUTIVEM_2, Executivem2SeenText, Executivem2BeatenText, 0, Executivem2Script
+ trainer EVENT_BEAT_ROCKET_EXECUTIVEM_2, EXECUTIVEM, EXECUTIVEM_2, Executivem2SeenText, Executivem2BeatenText, 0, .Script
-Executivem2Script:
+.Script:
end_if_just_battled
opentext
writetext Executivem2AfterBattleText
@@ -78,9 +78,9 @@
end
TrainerGruntF4:
- trainer EVENT_BEAT_ROCKET_GRUNTF_4, GRUNTF, GRUNTF_4, GruntF4SeenText, GruntF4BeatenText, 0, GruntF4Script
+ trainer EVENT_BEAT_ROCKET_GRUNTF_4, GRUNTF, GRUNTF_4, GruntF4SeenText, GruntF4BeatenText, 0, .Script
-GruntF4Script:
+.Script:
end_if_just_battled
opentext
writetext GruntF4AfterBattleText
@@ -89,9 +89,9 @@
end
TrainerScientistRich:
- trainer EVENT_BEAT_SCIENTIST_RICH, SCIENTIST, RICH, ScientistRichSeenText, ScientistRichBeatenText, 0, ScientistRichScript
+ trainer EVENT_BEAT_SCIENTIST_RICH, SCIENTIST, RICH, ScientistRichSeenText, ScientistRichBeatenText, 0, .Script
-ScientistRichScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistRichAfterBattleText
@@ -105,7 +105,7 @@
MapRadioTower4FSignpost1Script:
jumptext UnknownText_0x5f00d
-UnknownText_0x5ec12:
+RadioTower4FFisherText:
text "I listened to the"
line "radio while I was"
cont "at the RUINS."
@@ -266,7 +266,7 @@
.PersonEvents:
db 7
- person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, RadioTower4FFisherScript, EVENT_RADIO_TOWER_CIVILIANS_AFTER
person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5eb85, -1
person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, RadioTowerMeowth, -1
person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -68,9 +68,9 @@
end
TrainerExecutivef1:
- trainer EVENT_BEAT_ROCKET_EXECUTIVEF_1, EXECUTIVEF, EXECUTIVEF_1, Executivef1SeenText, Executivef1BeatenText, 0, Executivef1Script
+ trainer EVENT_BEAT_ROCKET_EXECUTIVEF_1, EXECUTIVEF, EXECUTIVEF_1, Executivef1SeenText, Executivef1BeatenText, 0, .Script
-Executivef1Script:
+.Script:
end_if_just_battled
opentext
writetext Executivef1AfterBattleText
--- a/maps/RedsHouse2F.asm
+++ b/maps/RedsHouse2F.asm
@@ -5,13 +5,13 @@
.MapCallbacks:
db 0
-MapRedsHouse2FSignpost0Script:
- jumptext UnknownText_0x19b050
+RedsHouse2FN64Script:
+ jumptext RedsHouse2FN64Text
-MapRedsHouse2FSignpost1Script:
- jumptext UnknownText_0x19b087
+RedsHouse2FPCScript:
+ jumptext RedsHouse2FPCText
-UnknownText_0x19b050:
+RedsHouse2FN64Text:
text "<PLAYER> played the"
line "N64."
@@ -19,7 +19,7 @@
line "no time to lose!"
done
-UnknownText_0x19b087:
+RedsHouse2FPCText:
text "It looks like it"
line "hasn't been used"
cont "in a long time…"
@@ -38,8 +38,8 @@
.Signposts:
db 2
- signpost 5, 3, SIGNPOST_READ, MapRedsHouse2FSignpost0Script
- signpost 1, 0, SIGNPOST_READ, MapRedsHouse2FSignpost1Script
+ signpost 5, 3, SIGNPOST_READ, RedsHouse2FN64Script
+ signpost 1, 0, SIGNPOST_READ, RedsHouse2FPCScript
.PersonEvents:
db 0
--- a/maps/Route1.asm
+++ b/maps/Route1.asm
@@ -11,9 +11,9 @@
db 0
TrainerSchoolboyDanny:
- trainer EVENT_BEAT_SCHOOLBOY_DANNY, SCHOOLBOY, DANNY, SchoolboyDannySeenText, SchoolboyDannyBeatenText, 0, SchoolboyDannyScript
+ trainer EVENT_BEAT_SCHOOLBOY_DANNY, SCHOOLBOY, DANNY, SchoolboyDannySeenText, SchoolboyDannyBeatenText, 0, .Script
-SchoolboyDannyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyDannyAfterBattleText
@@ -22,9 +22,9 @@
end
TrainerCooltrainerfQuinn:
- trainer EVENT_BEAT_COOLTRAINERF_QUINN, COOLTRAINERF, QUINN, CooltrainerfQuinnSeenText, CooltrainerfQuinnBeatenText, 0, CooltrainerfQuinnScript
+ trainer EVENT_BEAT_COOLTRAINERF_QUINN, COOLTRAINERF, QUINN, CooltrainerfQuinnSeenText, CooltrainerfQuinnBeatenText, 0, .Script
-CooltrainerfQuinnScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfQuinnAfterBattleText
--- a/maps/Route10Pokecenter1F.asm
+++ b/maps/Route10Pokecenter1F.asm
@@ -14,8 +14,8 @@
NurseScript_0x188bd4:
jumpstd pokecenternurse
-GentlemanScript_0x188bd7:
- jumptextfaceplayer UnknownText_0x188bf1
+Route10Pokecenter1FGentlemanScript:
+ jumptextfaceplayer Route10Pokecenter1FGentlemanText
GymGuyScript_0x188bda:
faceplayer
@@ -33,10 +33,10 @@
closetext
end
-CooltrainerFScript_0x188bee:
- jumptextfaceplayer UnknownText_0x188d0c
+Route10Pokecenter1FCooltrainerFScript:
+ jumptextfaceplayer Route10Pokecenter1FCooltrainerFText
-UnknownText_0x188bf1:
+Route10Pokecenter1FGentlemanText:
text "A #MON CENTER"
line "near a cave?"
@@ -69,7 +69,7 @@
line "thing about that."
done
-UnknownText_0x188d0c:
+Route10Pokecenter1FCooltrainerFText:
text "When you go out-"
line "side, you can see"
@@ -99,6 +99,6 @@
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x188bd4, -1
- person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x188bd7, -1
+ person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route10Pokecenter1FGentlemanScript, -1
person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188bda, -1
- person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x188bee, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route10Pokecenter1FCooltrainerFScript, -1
--- a/maps/Route10South.asm
+++ b/maps/Route10South.asm
@@ -10,9 +10,9 @@
db 0
TrainerHikerJim:
- trainer EVENT_BEAT_HIKER_JIM, HIKER, JIM, HikerJimSeenText, HikerJimBeatenText, 0, HikerJimScript
+ trainer EVENT_BEAT_HIKER_JIM, HIKER, JIM, HikerJimSeenText, HikerJimBeatenText, 0, .Script
-HikerJimScript:
+.Script:
end_if_just_battled
opentext
writetext HikerJimAfterBattleText
@@ -21,9 +21,9 @@
end
TrainerPokefanmRobert:
- trainer EVENT_BEAT_POKEFANM_ROBERT, POKEFANM, ROBERT, PokefanmRobertSeenText, PokefanmRobertBeatenText, 0, PokefanmRobertScript
+ trainer EVENT_BEAT_POKEFANM_ROBERT, POKEFANM, ROBERT, PokefanmRobertSeenText, PokefanmRobertBeatenText, 0, .Script
-PokefanmRobertScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmRobertAfterBattleText
--- a/maps/Route11.asm
+++ b/maps/Route11.asm
@@ -13,9 +13,9 @@
db 0
TrainerYoungsterOwen:
- trainer EVENT_BEAT_YOUNGSTER_OWEN, YOUNGSTER, OWEN, YoungsterOwenSeenText, YoungsterOwenBeatenText, 0, YoungsterOwenScript
+ trainer EVENT_BEAT_YOUNGSTER_OWEN, YOUNGSTER, OWEN, YoungsterOwenSeenText, YoungsterOwenBeatenText, 0, .Script
-YoungsterOwenScript:
+.Script:
end_if_just_battled
opentext
writetext YoungsterOwenAfterBattleText
@@ -24,9 +24,9 @@
end
TrainerYoungsterJason:
- trainer EVENT_BEAT_YOUNGSTER_JASON, YOUNGSTER, JASON, YoungsterJasonSeenText, YoungsterJasonBeatenText, 0, YoungsterJasonScript
+ trainer EVENT_BEAT_YOUNGSTER_JASON, YOUNGSTER, JASON, YoungsterJasonSeenText, YoungsterJasonBeatenText, 0, .Script
-YoungsterJasonScript:
+.Script:
end_if_just_battled
opentext
writetext YoungsterJasonAfterBattleText
@@ -35,9 +35,9 @@
end
TrainerPsychicHerman:
- trainer EVENT_BEAT_PSYCHIC_HERMAN, PSYCHIC_T, HERMAN, PsychicHermanSeenText, PsychicHermanBeatenText, 0, PsychicHermanScript
+ trainer EVENT_BEAT_PSYCHIC_HERMAN, PSYCHIC_T, HERMAN, PsychicHermanSeenText, PsychicHermanBeatenText, 0, .Script
-PsychicHermanScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicHermanAfterBattleText
@@ -46,9 +46,9 @@
end
TrainerPsychicFidel:
- trainer EVENT_BEAT_PSYCHIC_FIDEL, PSYCHIC_T, FIDEL, PsychicFidelSeenText, PsychicFidelBeatenText, 0, PsychicFidelScript
+ trainer EVENT_BEAT_PSYCHIC_FIDEL, PSYCHIC_T, FIDEL, PsychicFidelSeenText, PsychicFidelBeatenText, 0, .Script
-PsychicFidelScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicFidelAfterBattleText
--- a/maps/Route12.asm
+++ b/maps/Route12.asm
@@ -14,9 +14,9 @@
db 0
TrainerFisherKyle:
- trainer EVENT_BEAT_FISHER_KYLE, FISHER, KYLE, FisherKyleSeenText, FisherKyleBeatenText, 0, FisherKyleScript
+ trainer EVENT_BEAT_FISHER_KYLE, FISHER, KYLE, FisherKyleSeenText, FisherKyleBeatenText, 0, .Script
-FisherKyleScript:
+.Script:
end_if_just_battled
opentext
writetext FisherKyleAfterBattleText
@@ -25,9 +25,9 @@
end
TrainerFisherMartin:
- trainer EVENT_BEAT_FISHER_MARTIN, FISHER, MARTIN, FisherMartinSeenText, FisherMartinBeatenText, 0, FisherMartinScript
+ trainer EVENT_BEAT_FISHER_MARTIN, FISHER, MARTIN, FisherMartinSeenText, FisherMartinBeatenText, 0, .Script
-FisherMartinScript:
+.Script:
end_if_just_battled
opentext
writetext FisherMartinAfterBattleText
@@ -36,9 +36,9 @@
end
TrainerFisherStephen:
- trainer EVENT_BEAT_FISHER_STEPHEN, FISHER, STEPHEN, FisherStephenSeenText, FisherStephenBeatenText, 0, FisherStephenScript
+ trainer EVENT_BEAT_FISHER_STEPHEN, FISHER, STEPHEN, FisherStephenSeenText, FisherStephenBeatenText, 0, .Script
-FisherStephenScript:
+.Script:
end_if_just_battled
opentext
writetext FisherStephenAfterBattleText
@@ -47,9 +47,9 @@
end
TrainerFisherBarney:
- trainer EVENT_BEAT_FISHER_BARNEY, FISHER, BARNEY, FisherBarneySeenText, FisherBarneyBeatenText, 0, FisherBarneyScript
+ trainer EVENT_BEAT_FISHER_BARNEY, FISHER, BARNEY, FisherBarneySeenText, FisherBarneyBeatenText, 0, .Script
-FisherBarneyScript:
+.Script:
end_if_just_battled
opentext
writetext FisherBarneyAfterBattleText
--- a/maps/Route13.asm
+++ b/maps/Route13.asm
@@ -13,9 +13,9 @@
db 0
TrainerPokefanmAlex:
- trainer EVENT_BEAT_POKEFANM_ALEX, POKEFANM, ALEX, PokefanmAlexSeenText, PokefanmAlexBeatenText, 0, PokefanmAlexScript
+ trainer EVENT_BEAT_POKEFANM_ALEX, POKEFANM, ALEX, PokefanmAlexSeenText, PokefanmAlexBeatenText, 0, .Script
-PokefanmAlexScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmAlexAfterBattleText
@@ -24,9 +24,9 @@
end
TrainerPokefanmJoshua:
- trainer EVENT_BEAT_POKEFANM_JOSHUA, POKEFANM, JOSHUA, PokefanmJoshuaSeenText, PokefanmJoshuaBeatenText, 0, PokefanmJoshuaScript
+ trainer EVENT_BEAT_POKEFANM_JOSHUA, POKEFANM, JOSHUA, PokefanmJoshuaSeenText, PokefanmJoshuaBeatenText, 0, .Script
-PokefanmJoshuaScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmJoshuaAfterBattleText
@@ -35,9 +35,9 @@
end
TrainerBird_keeperPerry:
- trainer EVENT_BEAT_BIRD_KEEPER_PERRY, BIRD_KEEPER, PERRY, Bird_keeperPerrySeenText, Bird_keeperPerryBeatenText, 0, Bird_keeperPerryScript
+ trainer EVENT_BEAT_BIRD_KEEPER_PERRY, BIRD_KEEPER, PERRY, Bird_keeperPerrySeenText, Bird_keeperPerryBeatenText, 0, .Script
-Bird_keeperPerryScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperPerryAfterBattleText
@@ -46,9 +46,9 @@
end
TrainerBird_keeperBret:
- trainer EVENT_BEAT_BIRD_KEEPER_BRET, BIRD_KEEPER, BRET, Bird_keeperBretSeenText, Bird_keeperBretBeatenText, 0, Bird_keeperBretScript
+ trainer EVENT_BEAT_BIRD_KEEPER_BRET, BIRD_KEEPER, BRET, Bird_keeperBretSeenText, Bird_keeperBretBeatenText, 0, .Script
-Bird_keeperBretScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperBretAfterBattleText
@@ -57,9 +57,9 @@
end
TrainerHikerKenny:
- trainer EVENT_BEAT_HIKER_KENNY, HIKER, KENNY, HikerKennySeenText, HikerKennyBeatenText, 0, HikerKennyScript
+ trainer EVENT_BEAT_HIKER_KENNY, HIKER, KENNY, HikerKennySeenText, HikerKennyBeatenText, 0, .Script
-HikerKennyScript:
+.Script:
end_if_just_battled
opentext
writetext HikerKennyAfterBattleText
--- a/maps/Route14.asm
+++ b/maps/Route14.asm
@@ -20,9 +20,9 @@
end
TrainerPokefanmCarter:
- trainer EVENT_BEAT_POKEFANM_CARTER, POKEFANM, CARTER, PokefanmCarterSeenText, PokefanmCarterBeatenText, 0, PokefanmCarterScript
+ trainer EVENT_BEAT_POKEFANM_CARTER, POKEFANM, CARTER, PokefanmCarterSeenText, PokefanmCarterBeatenText, 0, .Script
-PokefanmCarterScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmCarterAfterBattleText
@@ -31,9 +31,9 @@
end
TrainerBird_keeperRoy:
- trainer EVENT_BEAT_BIRD_KEEPER_ROY, BIRD_KEEPER, ROY, Bird_keeperRoySeenText, Bird_keeperRoyBeatenText, 0, Bird_keeperRoyScript
+ trainer EVENT_BEAT_BIRD_KEEPER_ROY, BIRD_KEEPER, ROY, Bird_keeperRoySeenText, Bird_keeperRoyBeatenText, 0, .Script
-Bird_keeperRoyScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperRoyAfterBattleText
@@ -42,9 +42,9 @@
end
TrainerPokefanmTrevor:
- trainer EVENT_BEAT_POKEFANM_TREVOR, POKEFANM, TREVOR, PokefanmTrevorSeenText, PokefanmTrevorBeatenText, 0, PokefanmTrevorScript
+ trainer EVENT_BEAT_POKEFANM_TREVOR, POKEFANM, TREVOR, PokefanmTrevorSeenText, PokefanmTrevorBeatenText, 0, .Script
-PokefanmTrevorScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmTrevorAfterBattleText
--- a/maps/Route15.asm
+++ b/maps/Route15.asm
@@ -15,9 +15,9 @@
db 0
TrainerTeacherColette:
- trainer EVENT_BEAT_TEACHER_COLETTE, TEACHER, COLETTE, TeacherColetteSeenText, TeacherColetteBeatenText, 0, TeacherColetteScript
+ trainer EVENT_BEAT_TEACHER_COLETTE, TEACHER, COLETTE, TeacherColetteSeenText, TeacherColetteBeatenText, 0, .Script
-TeacherColetteScript:
+.Script:
end_if_just_battled
opentext
writetext TeacherColetteAfterBattleText
@@ -26,9 +26,9 @@
end
TrainerTeacherHillary:
- trainer EVENT_BEAT_TEACHER_HILLARY, TEACHER, HILLARY, TeacherHillarySeenText, TeacherHillaryBeatenText, 0, TeacherHillaryScript
+ trainer EVENT_BEAT_TEACHER_HILLARY, TEACHER, HILLARY, TeacherHillarySeenText, TeacherHillaryBeatenText, 0, .Script
-TeacherHillaryScript:
+.Script:
end_if_just_battled
opentext
writetext TeacherHillaryAfterBattleText
@@ -37,9 +37,9 @@
end
TrainerSchoolboyKipp:
- trainer EVENT_BEAT_SCHOOLBOY_KIP, SCHOOLBOY, KIPP, SchoolboyKippSeenText, SchoolboyKippBeatenText, 0, SchoolboyKippScript
+ trainer EVENT_BEAT_SCHOOLBOY_KIP, SCHOOLBOY, KIPP, SchoolboyKippSeenText, SchoolboyKippBeatenText, 0, .Script
-SchoolboyKippScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyKippAfterBattleText
@@ -48,9 +48,9 @@
end
TrainerSchoolboyTommy:
- trainer EVENT_BEAT_SCHOOLBOY_TOMMY, SCHOOLBOY, TOMMY, SchoolboyTommySeenText, SchoolboyTommyBeatenText, 0, SchoolboyTommyScript
+ trainer EVENT_BEAT_SCHOOLBOY_TOMMY, SCHOOLBOY, TOMMY, SchoolboyTommySeenText, SchoolboyTommyBeatenText, 0, .Script
-SchoolboyTommyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyTommyAfterBattleText
@@ -59,9 +59,9 @@
end
TrainerSchoolboyJohnny:
- trainer EVENT_BEAT_SCHOOLBOY_JOHNNY, SCHOOLBOY, JOHNNY, SchoolboyJohnnySeenText, SchoolboyJohnnyBeatenText, 0, SchoolboyJohnnyScript
+ trainer EVENT_BEAT_SCHOOLBOY_JOHNNY, SCHOOLBOY, JOHNNY, SchoolboyJohnnySeenText, SchoolboyJohnnyBeatenText, 0, .Script
-SchoolboyJohnnyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyJohnnyAfterBattleText
@@ -70,9 +70,9 @@
end
TrainerSchoolboyBilly:
- trainer EVENT_BEAT_SCHOOLBOY_BILLY, SCHOOLBOY, BILLY, SchoolboyBillySeenText, SchoolboyBillyBeatenText, 0, SchoolboyBillyScript
+ trainer EVENT_BEAT_SCHOOLBOY_BILLY, SCHOOLBOY, BILLY, SchoolboyBillySeenText, SchoolboyBillyBeatenText, 0, .Script
-SchoolboyBillyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyBillyAfterBattleText
--- a/maps/Route15FuchsiaGate.asm
+++ b/maps/Route15FuchsiaGate.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-OfficerScript_0x19679e:
- jumptextfaceplayer UnknownText_0x1967a1
+Route15FuchsiaGateOfficerScript:
+ jumptextfaceplayer Route15FuchsiaGateOfficerText
-UnknownText_0x1967a1:
+Route15FuchsiaGateOfficerText:
text "You're working on"
line "a #DEX? That's"
@@ -38,4 +38,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19679e, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route15FuchsiaGateOfficerScript, -1
--- a/maps/Route16FuchsiaSpeechHouse.asm
+++ b/maps/Route16FuchsiaSpeechHouse.asm
@@ -8,13 +8,13 @@
.MapCallbacks:
db 0
-SuperNerdScript_0x73373:
- jumptextfaceplayer UnknownText_0x73379
+Route16FuchsiaSpeechHouseSuperNerdScript:
+ jumptextfaceplayer Route16FuchsiaSpeechHouseSuperNerdText
Route16FuchsiaSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x73379:
+Route16FuchsiaSpeechHouseSuperNerdText:
text "If you cruise down"
line "CYCLING ROAD, you"
@@ -41,4 +41,4 @@
.PersonEvents:
db 1
- person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x73373, -1
+ person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route16FuchsiaSpeechHouseSuperNerdScript, -1
--- a/maps/Route16Gate.asm
+++ b/maps/Route16Gate.asm
@@ -12,8 +12,8 @@
.DummyTrigger:
end
-OfficerScript_0x733ea:
- jumptextfaceplayer UnknownText_0x73408
+Route16GateOfficerScript:
+ jumptextfaceplayer Route16GateOfficerText
UnknownScript_0x733ed:
checkitem BICYCLE
@@ -35,7 +35,7 @@
turn_head LEFT
step_end
-UnknownText_0x73408:
+Route16GateOfficerText:
text "CYCLING ROAD"
line "starts here."
@@ -81,4 +81,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x733ea, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route16GateOfficerScript, -1
--- a/maps/Route17.asm
+++ b/maps/Route17.asm
@@ -18,9 +18,9 @@
return
TrainerBikerCharles:
- trainer EVENT_BEAT_BIKER_CHARLES, BIKER, CHARLES, BikerCharlesSeenText, BikerCharlesBeatenText, 0, BikerCharlesScript
+ trainer EVENT_BEAT_BIKER_CHARLES, BIKER, CHARLES, BikerCharlesSeenText, BikerCharlesBeatenText, 0, .Script
-BikerCharlesScript:
+.Script:
end_if_just_battled
opentext
writetext BikerCharlesAfterBattleText
@@ -29,9 +29,9 @@
end
TrainerBikerRiley:
- trainer EVENT_BEAT_BIKER_RILEY, BIKER, RILEY, BikerRileySeenText, BikerRileyBeatenText, 0, BikerRileyScript
+ trainer EVENT_BEAT_BIKER_RILEY, BIKER, RILEY, BikerRileySeenText, BikerRileyBeatenText, 0, .Script
-BikerRileyScript:
+.Script:
end_if_just_battled
opentext
writetext BikerRileyAfterBattleText
@@ -40,9 +40,9 @@
end
TrainerBikerJoel:
- trainer EVENT_BEAT_BIKER_JOEL, BIKER, JOEL, BikerJoelSeenText, BikerJoelBeatenText, 0, BikerJoelScript
+ trainer EVENT_BEAT_BIKER_JOEL, BIKER, JOEL, BikerJoelSeenText, BikerJoelBeatenText, 0, .Script
-BikerJoelScript:
+.Script:
end_if_just_battled
opentext
writetext BikerJoelAfterBattleText
@@ -51,9 +51,9 @@
end
TrainerBikerGlenn:
- trainer EVENT_BEAT_BIKER_GLENN, BIKER, GLENN, BikerGlennSeenText, BikerGlennBeatenText, 0, BikerGlennScript
+ trainer EVENT_BEAT_BIKER_GLENN, BIKER, GLENN, BikerGlennSeenText, BikerGlennBeatenText, 0, .Script
-BikerGlennScript:
+.Script:
end_if_just_battled
opentext
writetext BikerGlennAfterBattleText
--- a/maps/Route1718Gate.asm
+++ b/maps/Route1718Gate.asm
@@ -12,8 +12,8 @@
.DummyTrigger:
end
-OfficerScript_0x7360e:
- jumptextfaceplayer UnknownText_0x7362c
+Route1718GateOfficerScript:
+ jumptextfaceplayer Route1718GateOfficerText
UnknownScript_0x73611:
checkitem BICYCLE
@@ -35,7 +35,7 @@
turn_head LEFT
step_end
-UnknownText_0x7362c:
+Route1718GateOfficerText:
text "CYCLING ROAD"
line "Uphill Starts Here"
done
@@ -72,4 +72,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7360e, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route1718GateOfficerScript, -1
--- a/maps/Route18.asm
+++ b/maps/Route18.asm
@@ -10,9 +10,9 @@
db 0
TrainerBird_keeperBoris:
- trainer EVENT_BEAT_BIRD_KEEPER_BORIS, BIRD_KEEPER, BORIS, Bird_keeperBorisSeenText, Bird_keeperBorisBeatenText, 0, Bird_keeperBorisScript
+ trainer EVENT_BEAT_BIRD_KEEPER_BORIS, BIRD_KEEPER, BORIS, Bird_keeperBorisSeenText, Bird_keeperBorisBeatenText, 0, .Script
-Bird_keeperBorisScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperBorisAfterBattleText
@@ -21,9 +21,9 @@
end
TrainerBird_keeperBob:
- trainer EVENT_BEAT_BIRD_KEEPER_BOB, BIRD_KEEPER, BOB, Bird_keeperBobSeenText, Bird_keeperBobBeatenText, 0, Bird_keeperBobScript
+ trainer EVENT_BEAT_BIRD_KEEPER_BOB, BIRD_KEEPER, BOB, Bird_keeperBobSeenText, Bird_keeperBobBeatenText, 0, .Script
-Bird_keeperBobScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperBobAfterBattleText
--- a/maps/Route19.asm
+++ b/maps/Route19.asm
@@ -27,9 +27,9 @@
return
TrainerSwimmerfDawn:
- trainer EVENT_BEAT_SWIMMERF_DAWN, SWIMMERF, DAWN, SwimmerfDawnSeenText, SwimmerfDawnBeatenText, 0, SwimmerfDawnScript
+ trainer EVENT_BEAT_SWIMMERF_DAWN, SWIMMERF, DAWN, SwimmerfDawnSeenText, SwimmerfDawnBeatenText, 0, .Script
-SwimmerfDawnScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfDawnAfterBattleText
@@ -38,9 +38,9 @@
end
TrainerSwimmermHarold:
- trainer EVENT_BEAT_SWIMMERM_HAROLD, SWIMMERM, HAROLD, SwimmermHaroldSeenText, SwimmermHaroldBeatenText, 0, SwimmermHaroldScript
+ trainer EVENT_BEAT_SWIMMERM_HAROLD, SWIMMERM, HAROLD, SwimmermHaroldSeenText, SwimmermHaroldBeatenText, 0, .Script
-SwimmermHaroldScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermHaroldAfterBattleText
@@ -49,9 +49,9 @@
end
TrainerSwimmermJerome:
- trainer EVENT_BEAT_SWIMMERM_JEROME, SWIMMERM, JEROME, SwimmermJeromeSeenText, SwimmermJeromeBeatenText, 0, SwimmermJeromeScript
+ trainer EVENT_BEAT_SWIMMERM_JEROME, SWIMMERM, JEROME, SwimmermJeromeSeenText, SwimmermJeromeBeatenText, 0, .Script
-SwimmermJeromeScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermJeromeAfterBattleText
@@ -60,9 +60,9 @@
end
TrainerSwimmermTucker:
- trainer EVENT_BEAT_SWIMMERM_TUCKER, SWIMMERM, TUCKER, SwimmermTuckerSeenText, SwimmermTuckerBeatenText, 0, SwimmermTuckerScript
+ trainer EVENT_BEAT_SWIMMERM_TUCKER, SWIMMERM, TUCKER, SwimmermTuckerSeenText, SwimmermTuckerBeatenText, 0, .Script
-SwimmermTuckerScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermTuckerAfterBattleText
--- a/maps/Route2.asm
+++ b/maps/Route2.asm
@@ -16,9 +16,9 @@
db 0
TrainerBug_catcherRob:
- trainer EVENT_BEAT_BUG_CATCHER_ROB, BUG_CATCHER, ROB, Bug_catcherRobSeenText, Bug_catcherRobBeatenText, 0, Bug_catcherRobScript
+ trainer EVENT_BEAT_BUG_CATCHER_ROB, BUG_CATCHER, ROB, Bug_catcherRobSeenText, Bug_catcherRobBeatenText, 0, .Script
-Bug_catcherRobScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherRobAfterBattleText
@@ -27,9 +27,9 @@
end
TrainerBug_catcherEd:
- trainer EVENT_BEAT_BUG_CATCHER_ED, BUG_CATCHER, ED, Bug_catcherEdSeenText, Bug_catcherEdBeatenText, 0, Bug_catcherEdScript
+ trainer EVENT_BEAT_BUG_CATCHER_ED, BUG_CATCHER, ED, Bug_catcherEdSeenText, Bug_catcherEdBeatenText, 0, .Script
-Bug_catcherEdScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherEdAfterBattleText
@@ -38,9 +38,9 @@
end
TrainerBug_catcherDoug:
- trainer EVENT_BEAT_BUG_CATCHER_DOUG, BUG_CATCHER, DOUG, Bug_catcherDougSeenText, Bug_catcherDougBeatenText, 0, Bug_catcherDougScript
+ trainer EVENT_BEAT_BUG_CATCHER_DOUG, BUG_CATCHER, DOUG, Bug_catcherDougSeenText, Bug_catcherDougBeatenText, 0, .Script
-Bug_catcherDougScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherDougAfterBattleText
--- a/maps/Route20.asm
+++ b/maps/Route20.asm
@@ -16,9 +16,9 @@
return
TrainerSwimmerfNicole:
- trainer EVENT_BEAT_SWIMMERF_NICOLE, SWIMMERF, NICOLE, SwimmerfNicoleSeenText, SwimmerfNicoleBeatenText, 0, SwimmerfNicoleScript
+ trainer EVENT_BEAT_SWIMMERF_NICOLE, SWIMMERF, NICOLE, SwimmerfNicoleSeenText, SwimmerfNicoleBeatenText, 0, .Script
-SwimmerfNicoleScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfNicoleAfterBattleText
@@ -27,9 +27,9 @@
end
TrainerSwimmerfLori:
- trainer EVENT_BEAT_SWIMMERF_LORI, SWIMMERF, LORI, SwimmerfLoriSeenText, SwimmerfLoriBeatenText, 0, SwimmerfLoriScript
+ trainer EVENT_BEAT_SWIMMERF_LORI, SWIMMERF, LORI, SwimmerfLoriSeenText, SwimmerfLoriBeatenText, 0, .Script
-SwimmerfLoriScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfLoriAfterBattleText
@@ -38,9 +38,9 @@
end
TrainerSwimmermCameron:
- trainer EVENT_BEAT_SWIMMERM_CAMERON, SWIMMERM, CAMERON, SwimmermCameronSeenText, SwimmermCameronBeatenText, 0, SwimmermCameronScript
+ trainer EVENT_BEAT_SWIMMERM_CAMERON, SWIMMERM, CAMERON, SwimmermCameronSeenText, SwimmermCameronBeatenText, 0, .Script
-SwimmermCameronScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermCameronAfterBattleText
--- a/maps/Route21.asm
+++ b/maps/Route21.asm
@@ -11,9 +11,9 @@
db 0
TrainerSwimmermSeth:
- trainer EVENT_BEAT_SWIMMERM_SETH, SWIMMERM, SETH, SwimmermSethSeenText, SwimmermSethBeatenText, 0, SwimmermSethScript
+ trainer EVENT_BEAT_SWIMMERM_SETH, SWIMMERM, SETH, SwimmermSethSeenText, SwimmermSethBeatenText, 0, .Script
-SwimmermSethScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermSethAfterBattleText
@@ -22,9 +22,9 @@
end
TrainerSwimmerfNikki:
- trainer EVENT_BEAT_SWIMMERF_NIKKI, SWIMMERF, NIKKI, SwimmerfNikkiSeenText, SwimmerfNikkiBeatenText, 0, SwimmerfNikkiScript
+ trainer EVENT_BEAT_SWIMMERF_NIKKI, SWIMMERF, NIKKI, SwimmerfNikkiSeenText, SwimmerfNikkiBeatenText, 0, .Script
-SwimmerfNikkiScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfNikkiAfterBattleText
@@ -33,9 +33,9 @@
end
TrainerFisherArnold:
- trainer EVENT_BEAT_FISHER_ARNOLD, FISHER, ARNOLD, FisherArnoldSeenText, FisherArnoldBeatenText, 0, FisherArnoldScript
+ trainer EVENT_BEAT_FISHER_ARNOLD, FISHER, ARNOLD, FisherArnoldSeenText, FisherArnoldBeatenText, 0, .Script
-FisherArnoldScript:
+.Script:
end_if_just_battled
opentext
writetext FisherArnoldAfterBattleText
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -79,9 +79,9 @@
end
TrainerSchoolboyDudley:
- trainer EVENT_BEAT_SCHOOLBOY_DUDLEY, SCHOOLBOY, DUDLEY, SchoolboyDudleySeenText, SchoolboyDudleyBeatenText, 0, SchoolboyDudleyScript
+ trainer EVENT_BEAT_SCHOOLBOY_DUDLEY, SCHOOLBOY, DUDLEY, SchoolboyDudleySeenText, SchoolboyDudleyBeatenText, 0, .Script
-SchoolboyDudleyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyDudleyAfterBattleText
@@ -90,9 +90,9 @@
end
TrainerLassEllen:
- trainer EVENT_BEAT_LASS_ELLEN, LASS, ELLEN, LassEllenSeenText, LassEllenBeatenText, 0, LassEllenScript
+ trainer EVENT_BEAT_LASS_ELLEN, LASS, ELLEN, LassEllenSeenText, LassEllenBeatenText, 0, .Script
-LassEllenScript:
+.Script:
end_if_just_battled
opentext
writetext LassEllenAfterBattleText
@@ -101,9 +101,9 @@
end
TrainerSchoolboyJoe:
- trainer EVENT_BEAT_SCHOOLBOY_JOE, SCHOOLBOY, JOE, SchoolboyJoeSeenText, SchoolboyJoeBeatenText, 0, SchoolboyJoeScript
+ trainer EVENT_BEAT_SCHOOLBOY_JOE, SCHOOLBOY, JOE, SchoolboyJoeSeenText, SchoolboyJoeBeatenText, 0, .Script
-SchoolboyJoeScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyJoeAfterBattleText
@@ -112,9 +112,9 @@
end
TrainerLassLaura:
- trainer EVENT_BEAT_LASS_LAURA, LASS, LAURA, LassLauraSeenText, LassLauraBeatenText, 0, LassLauraScript
+ trainer EVENT_BEAT_LASS_LAURA, LASS, LAURA, LassLauraSeenText, LassLauraBeatenText, 0, .Script
-LassLauraScript:
+.Script:
end_if_just_battled
opentext
writetext LassLauraAfterBattleText
@@ -123,9 +123,9 @@
end
TrainerCamperLloyd:
- trainer EVENT_BEAT_CAMPER_LLOYD, CAMPER, LLOYD, CamperLloydSeenText, CamperLloydBeatenText, 0, CamperLloydScript
+ trainer EVENT_BEAT_CAMPER_LLOYD, CAMPER, LLOYD, CamperLloydSeenText, CamperLloydBeatenText, 0, .Script
-CamperLloydScript:
+.Script:
end_if_just_battled
opentext
writetext CamperLloydAfterBattleText
@@ -134,9 +134,9 @@
end
TrainerLassShannon:
- trainer EVENT_BEAT_LASS_SHANNON, LASS, SHANNON, LassShannonSeenText, LassShannonBeatenText, 0, LassShannonScript
+ trainer EVENT_BEAT_LASS_SHANNON, LASS, SHANNON, LassShannonSeenText, LassShannonBeatenText, 0, .Script
-LassShannonScript:
+.Script:
end_if_just_battled
opentext
writetext LassShannonAfterBattleText
@@ -145,9 +145,9 @@
end
TrainerSupernerdPat:
- trainer EVENT_BEAT_SUPER_NERD_PAT, SUPER_NERD, PAT, SupernerdPatSeenText, SupernerdPatBeatenText, 0, SupernerdPatScript
+ trainer EVENT_BEAT_SUPER_NERD_PAT, SUPER_NERD, PAT, SupernerdPatSeenText, SupernerdPatBeatenText, 0, .Script
-SupernerdPatScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdPatAfterBattleText
--- a/maps/Route26.asm
+++ b/maps/Route26.asm
@@ -16,9 +16,9 @@
db 0
TrainerCooltrainermJake:
- trainer EVENT_BEAT_COOLTRAINERM_JAKE, COOLTRAINERM, JAKE, CooltrainermJakeSeenText, CooltrainermJakeBeatenText, 0, CooltrainermJakeScript
+ trainer EVENT_BEAT_COOLTRAINERM_JAKE, COOLTRAINERM, JAKE, CooltrainermJakeSeenText, CooltrainermJakeBeatenText, 0, .Script
-CooltrainermJakeScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermJakeAfterBattleText
@@ -27,9 +27,9 @@
end
TrainerCooltrainermGaven3:
- trainer EVENT_BEAT_COOLTRAINERM_GAVEN, COOLTRAINERM, GAVEN3, CooltrainermGaven3SeenText, CooltrainermGaven3BeatenText, 0, CooltrainermGaven3Script
+ trainer EVENT_BEAT_COOLTRAINERM_GAVEN, COOLTRAINERM, GAVEN3, CooltrainermGaven3SeenText, CooltrainermGaven3BeatenText, 0, .Script
-CooltrainermGaven3Script:
+.Script:
writecode VAR_CALLERID, PHONE_COOLTRAINERM_GAVEN
end_if_just_battled
opentext
@@ -120,9 +120,9 @@
end
TrainerCooltrainerfJoyce:
- trainer EVENT_BEAT_COOLTRAINERF_JOYCE, COOLTRAINERF, JOYCE, CooltrainerfJoyceSeenText, CooltrainerfJoyceBeatenText, 0, CooltrainerfJoyceScript
+ trainer EVENT_BEAT_COOLTRAINERF_JOYCE, COOLTRAINERF, JOYCE, CooltrainerfJoyceSeenText, CooltrainerfJoyceBeatenText, 0, .Script
-CooltrainerfJoyceScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfJoyceAfterBattleText
@@ -131,9 +131,9 @@
end
TrainerCooltrainerfBeth1:
- trainer EVENT_BEAT_COOLTRAINERF_BETH, COOLTRAINERF, BETH1, CooltrainerfBeth1SeenText, CooltrainerfBeth1BeatenText, 0, CooltrainerfBeth1Script
+ trainer EVENT_BEAT_COOLTRAINERF_BETH, COOLTRAINERF, BETH1, CooltrainerfBeth1SeenText, CooltrainerfBeth1BeatenText, 0, .Script
-CooltrainerfBeth1Script:
+.Script:
writecode VAR_CALLERID, PHONE_COOLTRAINERF_BETH
end_if_just_battled
opentext
@@ -224,9 +224,9 @@
end
TrainerPsychicRichard:
- trainer EVENT_BEAT_PSYCHIC_RICHARD, PSYCHIC_T, RICHARD, PsychicRichardSeenText, PsychicRichardBeatenText, 0, PsychicRichardScript
+ trainer EVENT_BEAT_PSYCHIC_RICHARD, PSYCHIC_T, RICHARD, PsychicRichardSeenText, PsychicRichardBeatenText, 0, .Script
-PsychicRichardScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicRichardAfterBattleText
@@ -235,9 +235,9 @@
end
TrainerFisherScott:
- trainer EVENT_BEAT_FISHER_SCOTT, FISHER, SCOTT, FisherScottSeenText, FisherScottBeatenText, 0, FisherScottScript
+ trainer EVENT_BEAT_FISHER_SCOTT, FISHER, SCOTT, FisherScottSeenText, FisherScottBeatenText, 0, .Script
-FisherScottScript:
+.Script:
end_if_just_battled
opentext
writetext FisherScottAfterBattleText
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -39,19 +39,19 @@
opentext
writetext UnknownText_0x1a0a6b
buttonsound
- writetext UnknownText_0x1a0a71
+ writetext Route27FisherText
waitbutton
closetext
dotrigger $1
end
-FisherScript_0x1a089c:
- jumptextfaceplayer UnknownText_0x1a0a71
+Route27FisherScript:
+ jumptextfaceplayer Route27FisherText
TrainerPsychicGilbert:
- trainer EVENT_BEAT_PSYCHIC_GILBERT, PSYCHIC_T, GILBERT, PsychicGilbertSeenText, PsychicGilbertBeatenText, 0, PsychicGilbertScript
+ trainer EVENT_BEAT_PSYCHIC_GILBERT, PSYCHIC_T, GILBERT, PsychicGilbertSeenText, PsychicGilbertBeatenText, 0, .Script
-PsychicGilbertScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicGilbertAfterBattleText
@@ -60,9 +60,9 @@
end
TrainerBird_keeperJose2:
- trainer EVENT_BEAT_BIRD_KEEPER_JOSE2, BIRD_KEEPER, JOSE2, Bird_keeperJose2SeenText, Bird_keeperJose2BeatenText, 0, Bird_keeperJose2Script
+ trainer EVENT_BEAT_BIRD_KEEPER_JOSE2, BIRD_KEEPER, JOSE2, Bird_keeperJose2SeenText, Bird_keeperJose2BeatenText, 0, .Script
-Bird_keeperJose2Script:
+.Script:
writecode VAR_CALLERID, PHONE_BIRDKEEPER_JOSE
end_if_just_battled
opentext
@@ -173,9 +173,9 @@
end
TrainerCooltrainermBlake:
- trainer EVENT_BEAT_COOLTRAINERM_BLAKE, COOLTRAINERM, BLAKE, CooltrainermBlakeSeenText, CooltrainermBlakeBeatenText, 0, CooltrainermBlakeScript
+ trainer EVENT_BEAT_COOLTRAINERM_BLAKE, COOLTRAINERM, BLAKE, CooltrainermBlakeSeenText, CooltrainermBlakeBeatenText, 0, .Script
-CooltrainermBlakeScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermBlakeAfterBattleText
@@ -184,9 +184,9 @@
end
TrainerCooltrainermBrian:
- trainer EVENT_BEAT_COOLTRAINERM_BRIAN, COOLTRAINERM, BRIAN, CooltrainermBrianSeenText, CooltrainermBrianBeatenText, 0, CooltrainermBrianScript
+ trainer EVENT_BEAT_COOLTRAINERM_BRIAN, COOLTRAINERM, BRIAN, CooltrainermBrianSeenText, CooltrainermBrianBeatenText, 0, .Script
-CooltrainermBrianScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermBrianAfterBattleText
@@ -195,9 +195,9 @@
end
TrainerCooltrainerfReena:
- trainer EVENT_BEAT_COOLTRAINERF_REENA, COOLTRAINERF, REENA1, CooltrainerfReena1SeenText, CooltrainerfReena1BeatenText, 0, CooltrainerfReena1Script
+ trainer EVENT_BEAT_COOLTRAINERF_REENA, COOLTRAINERF, REENA1, CooltrainerfReena1SeenText, CooltrainerfReena1BeatenText, 0, .Script
-CooltrainerfReena1Script:
+.Script:
writecode VAR_CALLERID, PHONE_COOLTRAINERF_REENA
end_if_just_battled
opentext
@@ -288,9 +288,9 @@
end
TrainerCooltrainerfMegan:
- trainer EVENT_BEAT_COOLTRAINERF_MEGAN, COOLTRAINERF, MEGAN, CooltrainerfMeganSeenText, CooltrainerfMeganBeatenText, 0, CooltrainerfMeganScript
+ trainer EVENT_BEAT_COOLTRAINERF_MEGAN, COOLTRAINERF, MEGAN, CooltrainerfMeganSeenText, CooltrainerfMeganBeatenText, 0, .Script
-CooltrainerfMeganScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfMeganAfterBattleText
@@ -320,7 +320,7 @@
text "Hey!"
done
-UnknownText_0x1a0a71:
+Route27FisherText:
text "Do you know what"
line "you just did?"
@@ -496,4 +496,4 @@
person_event SPRITE_YOUNGSTER, 13, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperJose2, -1
person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, Route27TMSolarbeam, EVENT_ROUTE_27_TM_SOLARBEAM
person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, Route27RareCandy, EVENT_ROUTE_27_RARE_CANDY
- person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 3, FisherScript_0x1a089c, -1
+ person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 3, Route27FisherScript, -1
--- a/maps/Route2946Gate.asm
+++ b/maps/Route2946Gate.asm
@@ -9,13 +9,13 @@
.MapCallbacks:
db 0
-OfficerScript_0x7b5bb:
- jumptextfaceplayer UnknownText_0x7b5c1
+Route2946GateOfficerScript:
+ jumptextfaceplayer Route2946GateOfficerText
-YoungsterScript_0x7b5be:
- jumptextfaceplayer UnknownText_0x7b60d
+Route2946GateYoungsterScript:
+ jumptextfaceplayer Route2946GateYoungsterText
-UnknownText_0x7b5c1:
+Route2946GateOfficerText:
text "You can't climb"
line "ledges."
@@ -24,7 +24,7 @@
cont "take a shortcut."
done
-UnknownText_0x7b60d:
+Route2946GateYoungsterText:
text "Different kinds of"
line "#MON appear"
cont "past here."
@@ -55,5 +55,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7b5bb, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7b5be, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route2946GateOfficerScript, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route2946GateYoungsterScript, -1
--- a/maps/Route2Gate.asm
+++ b/maps/Route2Gate.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-ScientistScript_0x9b952:
- jumptextfaceplayer UnknownText_0x9b955
+Route2GateScientistScript:
+ jumptextfaceplayer Route2GateScientistText
-UnknownText_0x9b955:
+Route2GateScientistText:
text "Are you <PLAY_G>?"
para "I work as PROF."
@@ -44,4 +44,4 @@
.PersonEvents:
db 1
- person_event SPRITE_SCIENTIST, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x9b952, -1
+ person_event SPRITE_SCIENTIST, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route2GateScientistScript, -1
--- a/maps/Route3.asm
+++ b/maps/Route3.asm
@@ -12,9 +12,9 @@
db 0
TrainerFirebreatherOtis:
- trainer EVENT_BEAT_FIREBREATHER_OTIS, FIREBREATHER, OTIS, FirebreatherOtisSeenText, FirebreatherOtisBeatenText, 0, FirebreatherOtisScript
+ trainer EVENT_BEAT_FIREBREATHER_OTIS, FIREBREATHER, OTIS, FirebreatherOtisSeenText, FirebreatherOtisBeatenText, 0, .Script
-FirebreatherOtisScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherOtisAfterBattleText
@@ -23,9 +23,9 @@
end
TrainerYoungsterWarren:
- trainer EVENT_BEAT_YOUNGSTER_WARREN, YOUNGSTER, WARREN, YoungsterWarrenSeenText, YoungsterWarrenBeatenText, 0, YoungsterWarrenScript
+ trainer EVENT_BEAT_YOUNGSTER_WARREN, YOUNGSTER, WARREN, YoungsterWarrenSeenText, YoungsterWarrenBeatenText, 0, .Script
-YoungsterWarrenScript:
+.Script:
end_if_just_battled
opentext
writetext YoungsterWarrenAfterBattleText
@@ -34,9 +34,9 @@
end
TrainerYoungsterJimmy:
- trainer EVENT_BEAT_YOUNGSTER_JIMMY, YOUNGSTER, JIMMY, YoungsterJimmySeenText, YoungsterJimmyBeatenText, 0, YoungsterJimmyScript
+ trainer EVENT_BEAT_YOUNGSTER_JIMMY, YOUNGSTER, JIMMY, YoungsterJimmySeenText, YoungsterJimmyBeatenText, 0, .Script
-YoungsterJimmyScript:
+.Script:
end_if_just_battled
opentext
writetext YoungsterJimmyAfterBattleText
@@ -45,9 +45,9 @@
end
TrainerFirebreatherBurt:
- trainer EVENT_BEAT_FIREBREATHER_BURT, FIREBREATHER, BURT, FirebreatherBurtSeenText, FirebreatherBurtBeatenText, 0, FirebreatherBurtScript
+ trainer EVENT_BEAT_FIREBREATHER_BURT, FIREBREATHER, BURT, FirebreatherBurtSeenText, FirebreatherBurtBeatenText, 0, .Script
-FirebreatherBurtScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherBurtAfterBattleText
--- a/maps/Route31VioletGate.asm
+++ b/maps/Route31VioletGate.asm
@@ -9,19 +9,19 @@
.MapCallbacks:
db 0
-OfficerScript_0x197634:
- jumptextfaceplayer UnknownText_0x19763a
+Route31VioletGateOfficerScript:
+ jumptextfaceplayer Route31VioletGateOfficerText
-CooltrainerFScript_0x197637:
- jumptextfaceplayer UnknownText_0x197661
+Route31VioletGateCooltrainerFScript:
+ jumptextfaceplayer Route31VioletGateCooltrainerFText
-UnknownText_0x19763a:
+Route31VioletGateOfficerText:
text "Hi there!"
line "Did you visit"
cont "SPROUT TOWER?"
done
-UnknownText_0x197661:
+Route31VioletGateCooltrainerFText:
text "I came too far"
line "out. I'd better"
cont "phone home!"
@@ -46,5 +46,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x197634, -1
- person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x197637, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route31VioletGateOfficerScript, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route31VioletGateCooltrainerFScript, -1
--- a/maps/Route32Pokecenter1F.asm
+++ b/maps/Route32Pokecenter1F.asm
@@ -42,8 +42,8 @@
closetext
end
-CooltrainerFScript_0x69b80:
- jumptextfaceplayer UnknownText_0x69cac
+Route32Pokecenter1FCooltrainerFScript:
+ jumptextfaceplayer Route32Pokecenter1FCooltrainerFText
UnknownText_0x69b83:
text "This is a great"
@@ -85,7 +85,7 @@
line "they biting?"
done
-UnknownText_0x69cac:
+Route32Pokecenter1FCooltrainerFText:
text "What should I make"
line "my #MON hold?"
@@ -114,4 +114,4 @@
db 3
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x69b52, -1
person_event SPRITE_FISHING_GURU, 4, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x69b55, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x69b80, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route32Pokecenter1FCooltrainerFScript, -1
--- a/maps/Route32RuinsOfAlphGate.asm
+++ b/maps/Route32RuinsOfAlphGate.asm
@@ -10,16 +10,16 @@
.MapCallbacks:
db 0
-OfficerScript_0x69a2d:
- jumptextfaceplayer UnknownText_0x69a36
+Route32RuinsOfAlphGateOfficerScript:
+ jumptextfaceplayer Route32RuinsOfAlphGateOfficerText
-PokefanMScript_0x69a30:
- jumptextfaceplayer UnknownText_0x69a81
+Route32RuinsOfAlphGatePokefanMScript:
+ jumptextfaceplayer Route32RuinsOfAlphGatePokefanMText
-YoungsterScript_0x69a33:
- jumptextfaceplayer UnknownText_0x69abd
+Route32RuinsOfAlphGateYoungsterScript:
+ jumptextfaceplayer Route32RuinsOfAlphGateYoungsterText
-UnknownText_0x69a36:
+Route32RuinsOfAlphGateOfficerText:
text "RUINS OF ALPH"
para "A Look-and-Touch"
@@ -29,7 +29,7 @@
line "stone panels!"
done
-UnknownText_0x69a81:
+Route32RuinsOfAlphGatePokefanMText:
text "You're studying"
line "the RUINS?"
@@ -37,7 +37,7 @@
line "in the making."
done
-UnknownText_0x69abd:
+Route32RuinsOfAlphGateYoungsterText:
text "There are drawings"
line "on stone panels."
@@ -65,6 +65,6 @@
.PersonEvents:
db 3
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x69a2d, -1
- person_event SPRITE_POKEFAN_M, 2, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x69a30, -1
- person_event SPRITE_YOUNGSTER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69a33, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route32RuinsOfAlphGateOfficerScript, -1
+ person_event SPRITE_POKEFAN_M, 2, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, Route32RuinsOfAlphGatePokefanMScript, -1
+ person_event SPRITE_YOUNGSTER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route32RuinsOfAlphGateYoungsterScript, -1
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -75,8 +75,8 @@
closetext
end
-LassScript_0x62d94:
- jumptextfaceplayer UnknownText_0x62e97
+Route34IlexForestGateLassScript:
+ jumptextfaceplayer Route34IlexForestGateLassText
MovementData_0x62d97:
step UP
@@ -121,7 +121,7 @@
text "BUTTERFREE: Freeh!"
done
-UnknownText_0x62e97:
+Route34IlexForestGateLassText:
text "Did you see the"
line "shrine honoring"
cont "the protector?"
@@ -157,5 +157,5 @@
db 4
person_event SPRITE_TEACHER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, IlexGateButterfree, -1
- person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
+ person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route34IlexForestGateLassScript, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
person_event SPRITE_TEACHER, 7, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
--- a/maps/Route35.asm
+++ b/maps/Route35.asm
@@ -19,9 +19,9 @@
db 0
TrainerBird_keeperBryan:
- trainer EVENT_BEAT_BIRD_KEEPER_BRYAN, BIRD_KEEPER, BRYAN, Bird_keeperBryanSeenText, Bird_keeperBryanBeatenText, 0, Bird_keeperBryanScript
+ trainer EVENT_BEAT_BIRD_KEEPER_BRYAN, BIRD_KEEPER, BRYAN, Bird_keeperBryanSeenText, Bird_keeperBryanBeatenText, 0, .Script
-Bird_keeperBryanScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperBryanAfterBattleText
@@ -30,9 +30,9 @@
end
TrainerJugglerIrwin:
- trainer EVENT_BEAT_JUGGLER_IRWIN, JUGGLER, IRWIN1, JugglerIrwin1SeenText, JugglerIrwin1BeatenText, 0, JugglerIrwin1Script
+ trainer EVENT_BEAT_JUGGLER_IRWIN, JUGGLER, IRWIN1, JugglerIrwin1SeenText, JugglerIrwin1BeatenText, 0, .Script
-JugglerIrwin1Script:
+.Script:
writecode VAR_CALLERID, PHONE_JUGGLER_IRWIN
end_if_just_battled
opentext
@@ -85,9 +85,9 @@
end
TrainerCamperIvan:
- trainer EVENT_BEAT_CAMPER_IVAN, CAMPER, IVAN, CamperIvanSeenText, CamperIvanBeatenText, 0, CamperIvanScript
+ trainer EVENT_BEAT_CAMPER_IVAN, CAMPER, IVAN, CamperIvanSeenText, CamperIvanBeatenText, 0, .Script
-CamperIvanScript:
+.Script:
end_if_just_battled
opentext
writetext CamperIvanAfterBattleText
@@ -96,9 +96,9 @@
end
TrainerCamperElliot:
- trainer EVENT_BEAT_CAMPER_ELLIOT, CAMPER, ELLIOT, CamperElliotSeenText, CamperElliotBeatenText, 0, CamperElliotScript
+ trainer EVENT_BEAT_CAMPER_ELLIOT, CAMPER, ELLIOT, CamperElliotSeenText, CamperElliotBeatenText, 0, .Script
-CamperElliotScript:
+.Script:
end_if_just_battled
opentext
writetext CamperElliotAfterBattleText
@@ -107,9 +107,9 @@
end
TrainerPicnickerBrooke:
- trainer EVENT_BEAT_PICNICKER_BROOKE, PICNICKER, BROOKE, PicnickerBrookeSeenText, PicnickerBrookeBeatenText, 0, PicnickerBrookeScript
+ trainer EVENT_BEAT_PICNICKER_BROOKE, PICNICKER, BROOKE, PicnickerBrookeSeenText, PicnickerBrookeBeatenText, 0, .Script
-PicnickerBrookeScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerBrookeAfterBattleText
@@ -118,9 +118,9 @@
end
TrainerPicnickerKim:
- trainer EVENT_BEAT_PICNICKER_KIM, PICNICKER, KIM, PicnickerKimSeenText, PicnickerKimBeatenText, 0, PicnickerKimScript
+ trainer EVENT_BEAT_PICNICKER_KIM, PICNICKER, KIM, PicnickerKimSeenText, PicnickerKimBeatenText, 0, .Script
-PicnickerKimScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerKimAfterBattleText
@@ -129,9 +129,9 @@
end
TrainerBug_catcherArnie1:
- trainer EVENT_BEAT_BUG_CATCHER_ARNIE, BUG_CATCHER, ARNIE1, Bug_catcherArnie1SeenText, Bug_catcherArnie1BeatenText, 0, Bug_catcherArnie1Script
+ trainer EVENT_BEAT_BUG_CATCHER_ARNIE, BUG_CATCHER, ARNIE1, Bug_catcherArnie1SeenText, Bug_catcherArnie1BeatenText, 0, .Script
-Bug_catcherArnie1Script:
+.Script:
writecode VAR_CALLERID, PHONE_BUG_CATCHER_ARNIE
end_if_just_battled
opentext
@@ -226,9 +226,9 @@
end
TrainerFirebreatherWalt:
- trainer EVENT_BEAT_FIREBREATHER_WALT, FIREBREATHER, WALT, FirebreatherWaltSeenText, FirebreatherWaltBeatenText, 0, FirebreatherWaltScript
+ trainer EVENT_BEAT_FIREBREATHER_WALT, FIREBREATHER, WALT, FirebreatherWaltSeenText, FirebreatherWaltBeatenText, 0, .Script
-FirebreatherWaltScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherWaltAfterBattleText
--- a/maps/Route35GoldenrodGate.asm
+++ b/maps/Route35GoldenrodGate.asm
@@ -91,8 +91,8 @@
closetext
end
-FisherScript_0x69dda:
- jumptextfaceplayer UnknownText_0x6a0cb
+Route35GoldenrodGateFisherScript:
+ jumptextfaceplayer Route35GoldenrodGateFisherText
UnknownText_0x69ddd:
text "Excuse me, kid!"
@@ -181,7 +181,7 @@
cont "on the radio."
done
-UnknownText_0x6a0cb:
+Route35GoldenrodGateFisherText:
text "I wonder how many"
line "kinds of #MON"
@@ -216,4 +216,4 @@
db 3
person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x69d37, -1
person_event SPRITE_POKEFAN_F, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x69dc6, -1
- person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x69dda, -1
+ person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route35GoldenrodGateFisherScript, -1
--- a/maps/Route35NationalParkGate.asm
+++ b/maps/Route35NationalParkGate.asm
@@ -199,8 +199,8 @@
closetext
end
-YoungsterScript_0x6a2d8:
- jumptextfaceplayer UnknownText_0x6a8d8
+Route35NationalParkGateYoungsterScript:
+ jumptextfaceplayer Route35NationalParkGateYoungsterText
MapRoute36NationalParkGateSignpost0Script:
jumptext UnknownText_0x6a90e
@@ -411,7 +411,7 @@
line "give it a shot."
done
-UnknownText_0x6a8d8:
+Route35NationalParkGateYoungsterText:
text "When is the next"
line "Bug-Catching Con-"
cont "test going to be?"
@@ -458,5 +458,5 @@
.PersonEvents:
db 3
person_event SPRITE_OFFICER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
- person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
+ person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route35NationalParkGateYoungsterScript, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -310,7 +310,7 @@
.Script:
end_if_just_battled
opentext
- writetext UnknownText_0x19471e
+ writetext PsychicMarkAfterBattleText
waitbutton
closetext
end
@@ -553,7 +553,7 @@
text "I misread you!"
done
-UnknownText_0x19471e:
+PsychicMarkAfterBattleText:
text "I'd be strong if"
line "only I could tell"
--- a/maps/Route36RuinsOfAlphGate.asm
+++ b/maps/Route36RuinsOfAlphGate.asm
@@ -9,13 +9,13 @@
.MapCallbacks:
db 0
-OfficerScript_0x6aa1a:
- jumptextfaceplayer UnknownText_0x6aa20
+Route36RuinsOfAlphGateOfficerScript:
+ jumptextfaceplayer Route36RuinsOfAlphGateOfficerText
-GrampsScript_0x6aa1d:
- jumptextfaceplayer UnknownText_0x6aa5b
+Route36RuinsOfAlphGateGrampsScript:
+ jumptextfaceplayer Route36RuinsOfAlphGateGrampsText
-UnknownText_0x6aa20:
+Route36RuinsOfAlphGateOfficerText:
text "Don't you wonder"
line "who'd make some-"
cont "thing like this?"
@@ -22,7 +22,7 @@
cont "And why?"
done
-UnknownText_0x6aa5b:
+Route36RuinsOfAlphGateGrampsText:
text "Did you see that"
line "strange tree in"
cont "the road?"
@@ -53,5 +53,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6aa1a, -1
- person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x6aa1d, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route36RuinsOfAlphGateOfficerScript, -1
+ person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, Route36RuinsOfAlphGateGrampsScript, -1
--- a/maps/Route37.asm
+++ b/maps/Route37.asm
@@ -26,9 +26,9 @@
return
TrainerTwinsAnnandanne1:
- trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE1, TwinsAnnandanne1SeenText, TwinsAnnandanne1BeatenText, 0, TwinsAnnandanne1Script
+ trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE1, TwinsAnnandanne1SeenText, TwinsAnnandanne1BeatenText, 0, .Script
-TwinsAnnandanne1Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsAnnandanne1AfterBattleText
@@ -37,9 +37,9 @@
end
TrainerTwinsAnnandanne2:
- trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE2, TwinsAnnandanne2SeenText, TwinsAnnandanne2BeatenText, 0, TwinsAnnandanne2Script
+ trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE2, TwinsAnnandanne2SeenText, TwinsAnnandanne2BeatenText, 0, .Script
-TwinsAnnandanne2Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsAnnandanne2AfterBattleText
@@ -48,9 +48,9 @@
end
TrainerPsychicGreg:
- trainer EVENT_BEAT_PSYCHIC_GREG, PSYCHIC_T, GREG, PsychicGregSeenText, PsychicGregBeatenText, 0, PsychicGregScript
+ trainer EVENT_BEAT_PSYCHIC_GREG, PSYCHIC_T, GREG, PsychicGregSeenText, PsychicGregBeatenText, 0, .Script
-PsychicGregScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicGregAfterBattleText
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -15,31 +15,31 @@
db 0
TrainerBird_keeperToby:
- trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, 0, .script
+ trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, 0, .Script
-.script
+.Script
end_if_just_battled
opentext
- writetext UnknownText_0x1a1f86
+ writetext Bird_keeperTobyAfterBattleText
waitbutton
closetext
end
TrainerSailorHarry:
- trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, 0, .script
+ trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, 0, .Script
-.script
+.Script
end_if_just_battled
opentext
- writetext UnknownText_0x1a220c
+ writetext SailorHarryAfterBattleText
waitbutton
closetext
end
TrainerLassDana1:
- trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, 0, .script
+ trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, 0, .Script
-.script
+.Script
writecode VAR_CALLERID, PHONE_LASS_DANA
end_if_just_battled
opentext
@@ -175,9 +175,9 @@
end
TrainerSchoolboyChad1:
- trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, 0, .script
+ trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, 0, .Script
-.script
+.Script
writecode VAR_CALLERID, PHONE_SCHOOLBOY_CHAD
end_if_just_battled
opentext
@@ -292,23 +292,23 @@
end
TrainerBeautyValerie:
- trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, 0, .script
+ trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, 0, .Script
-.script
+.Script
end_if_just_battled
opentext
- writetext UnknownText_0x1a2185
+ writetext BeautyValerieAfterBattleText
waitbutton
closetext
end
TrainerBeautyOlivia:
- trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, 0, .script
+ trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, 0, .Script
-.script
+.Script
end_if_just_battled
opentext
- writetext UnknownText_0x1a229a
+ writetext BeautyOliviaAfterBattleText
waitbutton
closetext
end
@@ -333,7 +333,7 @@
line "flying away now."
done
-UnknownText_0x1a1f86:
+Bird_keeperTobyAfterBattleText:
text "I plan to train in"
line "CIANWOOD CITY to"
@@ -400,7 +400,7 @@
line "see your #MON!"
done
-UnknownText_0x1a2185:
+BeautyValerieAfterBattleText:
text "When I see #-"
line "MON, it seems to"
cont "soothe my nerves."
@@ -419,7 +419,7 @@
line "world class!"
done
-UnknownText_0x1a220c:
+SailorHarryAfterBattleText:
text "All kinds of peo-"
line "ple around the"
@@ -438,7 +438,7 @@
line "MILK every day."
done
-UnknownText_0x1a229a:
+BeautyOliviaAfterBattleText:
text "MOOMOO MILK is"
line "good for beauty"
--- a/maps/Route38EcruteakGate.asm
+++ b/maps/Route38EcruteakGate.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-OfficerScript_0x9cbd7:
- jumptextfaceplayer UnknownText_0x9cbda
+Route38EcruteakGateOfficerScript:
+ jumptextfaceplayer Route38EcruteakGateOfficerText
-UnknownText_0x9cbda:
+Route38EcruteakGateOfficerText:
text "Where did you say"
line "you're from?"
@@ -43,4 +43,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x9cbd7, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route38EcruteakGateOfficerScript, -1
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -26,9 +26,9 @@
end
TrainerPokefanmDerek1:
- trainer EVENT_BEAT_POKEFANM_DEREK, POKEFANM, DEREK1, PokefanmDerek1SeenText, PokefanmDerek1BeatenText, 0, PokefanmDerek1Script
+ trainer EVENT_BEAT_POKEFANM_DEREK, POKEFANM, DEREK1, PokefanmDerek1SeenText, PokefanmDerek1BeatenText, 0, .Script
-PokefanmDerek1Script:
+.Script:
writecode VAR_CALLERID, PHONE_POKEFANM_DEREK
end_if_just_battled
opentext
@@ -105,9 +105,9 @@
end
TrainerPokefanfRuth:
- trainer EVENT_BEAT_POKEFANF_RUTH, POKEFANF, RUTH, PokefanfRuthSeenText, PokefanfRuthBeatenText, 0, PokefanfRuthScript
+ trainer EVENT_BEAT_POKEFANF_RUTH, POKEFANF, RUTH, PokefanfRuthSeenText, PokefanfRuthBeatenText, 0, .Script
-PokefanfRuthScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanfRuthAfterBattleText
@@ -116,9 +116,9 @@
end
TrainerSailorEugene:
- trainer EVENT_BEAT_SAILOR_EUGENE, SAILOR, EUGENE, SailorEugeneSeenText, SailorEugeneBeatenText, 0, SailorEugeneScript
+ trainer EVENT_BEAT_SAILOR_EUGENE, SAILOR, EUGENE, SailorEugeneSeenText, SailorEugeneBeatenText, 0, .Script
-SailorEugeneScript:
+.Script:
end_if_just_battled
opentext
writetext SailorEugeneAfterBattleText
@@ -127,9 +127,9 @@
end
TrainerPsychicNorman:
- trainer EVENT_BEAT_PSYCHIC_NORMAN, PSYCHIC_T, NORMAN, PsychicNormanSeenText, PsychicNormanBeatenText, 0, PsychicNormanScript
+ trainer EVENT_BEAT_PSYCHIC_NORMAN, PSYCHIC_T, NORMAN, PsychicNormanSeenText, PsychicNormanBeatenText, 0, .Script
-PsychicNormanScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicNormanAfterBattleText
--- a/maps/Route4.asm
+++ b/maps/Route4.asm
@@ -12,9 +12,9 @@
db 0
TrainerBird_keeperHank:
- trainer EVENT_BEAT_BIRD_KEEPER_HANK, BIRD_KEEPER, HANK, Bird_keeperHankSeenText, Bird_keeperHankBeatenText, 0, Bird_keeperHankScript
+ trainer EVENT_BEAT_BIRD_KEEPER_HANK, BIRD_KEEPER, HANK, Bird_keeperHankSeenText, Bird_keeperHankBeatenText, 0, .Script
-Bird_keeperHankScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperHankAfterBattleText
@@ -23,9 +23,9 @@
end
TrainerPicnickerHope:
- trainer EVENT_BEAT_PICNICKER_HOPE, PICNICKER, HOPE, PicnickerHopeSeenText, PicnickerHopeBeatenText, 0, PicnickerHopeScript
+ trainer EVENT_BEAT_PICNICKER_HOPE, PICNICKER, HOPE, PicnickerHopeSeenText, PicnickerHopeBeatenText, 0, .Script
-PicnickerHopeScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerHopeAfterBattleText
@@ -34,9 +34,9 @@
end
TrainerPicnickerSharon:
- trainer EVENT_BEAT_PICNICKER_SHARON, PICNICKER, SHARON, PicnickerSharonSeenText, PicnickerSharonBeatenText, 0, PicnickerSharonScript
+ trainer EVENT_BEAT_PICNICKER_SHARON, PICNICKER, SHARON, PicnickerSharonSeenText, PicnickerSharonBeatenText, 0, .Script
-PicnickerSharonScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerSharonAfterBattleText
--- a/maps/Route40.asm
+++ b/maps/Route40.asm
@@ -32,9 +32,9 @@
return
TrainerSwimmerfElaine:
- trainer EVENT_BEAT_SWIMMERF_ELAINE, SWIMMERF, ELAINE, SwimmerfElaineSeenText, SwimmerfElaineBeatenText, 0, SwimmerfElaineScript
+ trainer EVENT_BEAT_SWIMMERF_ELAINE, SWIMMERF, ELAINE, SwimmerfElaineSeenText, SwimmerfElaineBeatenText, 0, .Script
-SwimmerfElaineScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfElaineAfterBattleText
@@ -43,9 +43,9 @@
end
TrainerSwimmerfPaula:
- trainer EVENT_BEAT_SWIMMERF_PAULA, SWIMMERF, PAULA, SwimmerfPaulaSeenText, SwimmerfPaulaBeatenText, 0, SwimmerfPaulaScript
+ trainer EVENT_BEAT_SWIMMERF_PAULA, SWIMMERF, PAULA, SwimmerfPaulaSeenText, SwimmerfPaulaBeatenText, 0, .Script
-SwimmerfPaulaScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfPaulaAfterBattleText
@@ -54,9 +54,9 @@
end
TrainerSwimmermSimon:
- trainer EVENT_BEAT_SWIMMERM_SIMON, SWIMMERM, SIMON, SwimmermSimonSeenText, SwimmermSimonBeatenText, 0, SwimmermSimonScript
+ trainer EVENT_BEAT_SWIMMERM_SIMON, SWIMMERM, SIMON, SwimmermSimonSeenText, SwimmermSimonBeatenText, 0, .Script
-SwimmermSimonScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermSimonAfterBattleText
@@ -65,9 +65,9 @@
end
TrainerSwimmermRandall:
- trainer EVENT_BEAT_SWIMMERM_RANDALL, SWIMMERM, RANDALL, SwimmermRandallSeenText, SwimmermRandallBeatenText, 0, SwimmermRandallScript
+ trainer EVENT_BEAT_SWIMMERM_RANDALL, SWIMMERM, RANDALL, SwimmermRandallSeenText, SwimmermRandallBeatenText, 0, .Script
-SwimmermRandallScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermRandallAfterBattleText
@@ -75,8 +75,8 @@
closetext
end
-LassScript_0x1a61c4:
- jumptextfaceplayer UnknownText_0x1a6429
+Route40Lass1Script:
+ jumptextfaceplayer Route40Lass1Text
PokefanMScript_0x1a61c7:
special Mobile_DummyReturnFalse
@@ -86,11 +86,11 @@
.mobile
jumptextfaceplayer UnknownText_0x1a649b
-LassScript_0x1a61d3:
- jumptextfaceplayer UnknownText_0x1a64e6
+Route40Lass2Script:
+ jumptextfaceplayer Route40Lass2Text
-StandingYoungsterScript_0x1a61d6:
- jumptextfaceplayer UnknownText_0x1a6564
+Route40StandingYoungsterScript:
+ jumptextfaceplayer Route40StandingYoungsterText
MonicaScript:
faceplayer
@@ -235,7 +235,7 @@
cont "carry me along."
done
-UnknownText_0x1a6429:
+Route40Lass1Text:
text "Although you can't"
line "see it from here,"
@@ -259,7 +259,7 @@
para "What? What?"
done
-UnknownText_0x1a64e6:
+Route40Lass2Text:
text "I came to OLIVINE"
line "by ship to see the"
@@ -271,7 +271,7 @@
cont "from a big city."
done
-UnknownText_0x1a6564:
+Route40StandingYoungsterText:
text "Have you gone to"
line "the BATTLE TOWER?"
@@ -362,8 +362,8 @@
person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
- person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a61c4, -1
+ person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Lass1Script, -1
person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY
person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1a61c7, -1
- person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x1a61d3, -1
- person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route40Lass2Script, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route40StandingYoungsterScript, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
--- a/maps/Route40BattleTowerGate.asm
+++ b/maps/Route40BattleTowerGate.asm
@@ -14,11 +14,11 @@
clearevent EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
return
-RockerScript_0x9f669:
- jumptextfaceplayer UnknownText_0x9f716
+Route40BattleTowerGateRockerScript:
+ jumptextfaceplayer Route40BattleTowerGateRockerText
-TwinScript_0x9f66c:
- jumptextfaceplayer UnknownText_0x9f7c8
+Route40BattleTowerGateTwinScript:
+ jumptextfaceplayer Route40BattleTowerGateTwinText
UnknownText_0x9f66f:
text "Did you come to"
@@ -40,7 +40,7 @@
line "when I win."
done
-UnknownText_0x9f716:
+Route40BattleTowerGateRockerText:
text "Are you going to"
line "the BATTLE TOWER?"
@@ -59,7 +59,7 @@
line "the BATTLE TOWER."
done
-UnknownText_0x9f7c8:
+Route40BattleTowerGateTwinText:
text "The levels of the"
line "#MON I want to"
@@ -89,5 +89,5 @@
.PersonEvents:
db 2
- person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
- person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TwinScript_0x9f66c, -1
+ person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route40BattleTowerGateRockerScript, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route40BattleTowerGateTwinScript, -1
--- a/maps/Route41.asm
+++ b/maps/Route41.asm
@@ -18,9 +18,9 @@
db 0
TrainerSwimmerfKaylee:
- trainer EVENT_BEAT_SWIMMERF_KAYLEE, SWIMMERF, KAYLEE, SwimmerfKayleeSeenText, SwimmerfKayleeBeatenText, 0, SwimmerfKayleeScript
+ trainer EVENT_BEAT_SWIMMERF_KAYLEE, SWIMMERF, KAYLEE, SwimmerfKayleeSeenText, SwimmerfKayleeBeatenText, 0, .Script
-SwimmerfKayleeScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfKayleeAfterBattleText
@@ -29,9 +29,9 @@
end
TrainerSwimmerfSusie:
- trainer EVENT_BEAT_SWIMMERF_SUSIE, SWIMMERF, SUSIE, SwimmerfSusieSeenText, SwimmerfSusieBeatenText, 0, SwimmerfSusieScript
+ trainer EVENT_BEAT_SWIMMERF_SUSIE, SWIMMERF, SUSIE, SwimmerfSusieSeenText, SwimmerfSusieBeatenText, 0, .Script
-SwimmerfSusieScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfSusieAfterBattleText
@@ -40,9 +40,9 @@
end
TrainerSwimmerfDenise:
- trainer EVENT_BEAT_SWIMMERF_DENISE, SWIMMERF, DENISE, SwimmerfDeniseSeenText, SwimmerfDeniseBeatenText, 0, SwimmerfDeniseScript
+ trainer EVENT_BEAT_SWIMMERF_DENISE, SWIMMERF, DENISE, SwimmerfDeniseSeenText, SwimmerfDeniseBeatenText, 0, .Script
-SwimmerfDeniseScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfDeniseAfterBattleText
@@ -51,9 +51,9 @@
end
TrainerSwimmerfKara:
- trainer EVENT_BEAT_SWIMMERF_KARA, SWIMMERF, KARA, SwimmerfKaraSeenText, SwimmerfKaraBeatenText, 0, SwimmerfKaraScript
+ trainer EVENT_BEAT_SWIMMERF_KARA, SWIMMERF, KARA, SwimmerfKaraSeenText, SwimmerfKaraBeatenText, 0, .Script
-SwimmerfKaraScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfKaraAfterBattleText
@@ -62,9 +62,9 @@
end
TrainerSwimmerfWendy:
- trainer EVENT_BEAT_SWIMMERF_WENDY, SWIMMERF, WENDY, SwimmerfWendySeenText, SwimmerfWendyBeatenText, 0, SwimmerfWendyScript
+ trainer EVENT_BEAT_SWIMMERF_WENDY, SWIMMERF, WENDY, SwimmerfWendySeenText, SwimmerfWendyBeatenText, 0, .Script
-SwimmerfWendyScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfWendyAfterBattleText
@@ -73,9 +73,9 @@
end
TrainerSwimmermCharlie:
- trainer EVENT_BEAT_SWIMMERM_CHARLIE, SWIMMERM, CHARLIE, SwimmermCharlieSeenText, SwimmermCharlieBeatenText, 0, SwimmermCharlieScript
+ trainer EVENT_BEAT_SWIMMERM_CHARLIE, SWIMMERM, CHARLIE, SwimmermCharlieSeenText, SwimmermCharlieBeatenText, 0, .Script
-SwimmermCharlieScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermCharlieAfterBattleText
@@ -84,9 +84,9 @@
end
TrainerSwimmermGeorge:
- trainer EVENT_BEAT_SWIMMERM_GEORGE, SWIMMERM, GEORGE, SwimmermGeorgeSeenText, SwimmermGeorgeBeatenText, 0, SwimmermGeorgeScript
+ trainer EVENT_BEAT_SWIMMERM_GEORGE, SWIMMERM, GEORGE, SwimmermGeorgeSeenText, SwimmermGeorgeBeatenText, 0, .Script
-SwimmermGeorgeScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermGeorgeAfterBattleText
@@ -95,9 +95,9 @@
end
TrainerSwimmermBerke:
- trainer EVENT_BEAT_SWIMMERM_BERKE, SWIMMERM, BERKE, SwimmermBerkeSeenText, SwimmermBerkeBeatenText, 0, SwimmermBerkeScript
+ trainer EVENT_BEAT_SWIMMERM_BERKE, SWIMMERM, BERKE, SwimmermBerkeSeenText, SwimmermBerkeBeatenText, 0, .Script
-SwimmermBerkeScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermBerkeAfterBattleText
@@ -106,9 +106,9 @@
end
TrainerSwimmermKirk:
- trainer EVENT_BEAT_SWIMMERM_KIRK, SWIMMERM, KIRK, SwimmermKirkSeenText, SwimmermKirkBeatenText, 0, SwimmermKirkScript
+ trainer EVENT_BEAT_SWIMMERM_KIRK, SWIMMERM, KIRK, SwimmermKirkSeenText, SwimmermKirkBeatenText, 0, .Script
-SwimmermKirkScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermKirkAfterBattleText
@@ -117,9 +117,9 @@
end
TrainerSwimmermMathew:
- trainer EVENT_BEAT_SWIMMERM_MATHEW, SWIMMERM, MATHEW, SwimmermMathewSeenText, SwimmermMathewBeatenText, 0, SwimmermMathewScript
+ trainer EVENT_BEAT_SWIMMERM_MATHEW, SWIMMERM, MATHEW, SwimmermMathewSeenText, SwimmermMathewBeatenText, 0, .Script
-SwimmermMathewScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermMathewAfterBattleText
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -37,9 +37,9 @@
end
TrainerFisherTully1:
- trainer EVENT_BEAT_FISHER_TULLY, FISHER, TULLY1, FisherTully1SeenText, FisherTully1BeatenText, 0, FisherTully1Script
+ trainer EVENT_BEAT_FISHER_TULLY, FISHER, TULLY1, FisherTully1SeenText, FisherTully1BeatenText, 0, .Script
-FisherTully1Script:
+.Script:
writecode VAR_CALLERID, PHONE_FISHER_TULLY
end_if_just_battled
opentext
@@ -163,9 +163,9 @@
end
TrainerPokemaniacShane:
- trainer EVENT_BEAT_POKEMANIAC_SHANE, POKEMANIAC, SHANE, PokemaniacShaneSeenText, PokemaniacShaneBeatenText, 0, PokemaniacShaneScript
+ trainer EVENT_BEAT_POKEMANIAC_SHANE, POKEMANIAC, SHANE, PokemaniacShaneSeenText, PokemaniacShaneBeatenText, 0, .Script
-PokemaniacShaneScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacShaneAfterBattleText
@@ -174,9 +174,9 @@
end
TrainerHikerBenjamin:
- trainer EVENT_BEAT_HIKER_BENJAMIN, HIKER, BENJAMIN, HikerBenjaminSeenText, HikerBenjaminBeatenText, 0, HikerBenjaminScript
+ trainer EVENT_BEAT_HIKER_BENJAMIN, HIKER, BENJAMIN, HikerBenjaminSeenText, HikerBenjaminBeatenText, 0, .Script
-HikerBenjaminScript:
+.Script:
end_if_just_battled
opentext
writetext HikerBenjaminAfterBattleText
--- a/maps/Route42EcruteakGate.asm
+++ b/maps/Route42EcruteakGate.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-OfficerScript_0x19a4b5:
- jumptextfaceplayer UnknownText_0x19a4b8
+Route42EcruteakGateOfficerScript:
+ jumptextfaceplayer Route42EcruteakGateOfficerText
-UnknownText_0x19a4b8:
+Route42EcruteakGateOfficerText:
text "MT.MORTAR is like"
line "a maze inside."
@@ -38,4 +38,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19a4b5, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route42EcruteakGateOfficerScript, -1
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -27,9 +27,9 @@
return
TrainerCamperSpencer:
- trainer EVENT_BEAT_CAMPER_SPENCER, CAMPER, SPENCER, CamperSpencerSeenText, CamperSpencerBeatenText, 0, CamperSpencerScript
+ trainer EVENT_BEAT_CAMPER_SPENCER, CAMPER, SPENCER, CamperSpencerSeenText, CamperSpencerBeatenText, 0, .Script
-CamperSpencerScript:
+.Script:
end_if_just_battled
opentext
writetext CamperSpencerAfterBattleText
@@ -38,9 +38,9 @@
end
TrainerPokemaniacBen:
- trainer EVENT_BEAT_POKEMANIAC_BEN, POKEMANIAC, BEN, PokemaniacBenSeenText, PokemaniacBenBeatenText, 0, PokemaniacBenScript
+ trainer EVENT_BEAT_POKEMANIAC_BEN, POKEMANIAC, BEN, PokemaniacBenSeenText, PokemaniacBenBeatenText, 0, .Script
-PokemaniacBenScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacBenAfterBattleText
@@ -49,9 +49,9 @@
end
TrainerPokemaniacBrent1:
- trainer EVENT_BEAT_POKEMANIAC_BRENT, POKEMANIAC, BRENT1, PokemaniacBrent1SeenText, PokemaniacBrent1BeatenText, 0, PokemaniacBrent1Script
+ trainer EVENT_BEAT_POKEMANIAC_BRENT, POKEMANIAC, BRENT1, PokemaniacBrent1SeenText, PokemaniacBrent1BeatenText, 0, .Script
-PokemaniacBrent1Script:
+.Script:
writecode VAR_CALLERID, PHONE_POKEMANIAC_BRENT
end_if_just_battled
opentext
@@ -154,9 +154,9 @@
end
TrainerPokemaniacRon:
- trainer EVENT_BEAT_POKEMANIAC_RON, POKEMANIAC, RON, PokemaniacRonSeenText, PokemaniacRonBeatenText, 0, PokemaniacRonScript
+ trainer EVENT_BEAT_POKEMANIAC_RON, POKEMANIAC, RON, PokemaniacRonSeenText, PokemaniacRonBeatenText, 0, .Script
-PokemaniacRonScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacRonAfterBattleText
@@ -165,9 +165,9 @@
end
TrainerFisherMarvin:
- trainer EVENT_BEAT_FISHER_MARVIN, FISHER, MARVIN, FisherMarvinSeenText, FisherMarvinBeatenText, 0, FisherMarvinScript
+ trainer EVENT_BEAT_FISHER_MARVIN, FISHER, MARVIN, FisherMarvinSeenText, FisherMarvinBeatenText, 0, .Script
-FisherMarvinScript:
+.Script:
end_if_just_battled
opentext
writetext FisherMarvinAfterBattleText
@@ -176,9 +176,9 @@
end
TrainerPicnickerTiffany3:
- trainer EVENT_BEAT_PICNICKER_TIFFANY, PICNICKER, TIFFANY3, PicnickerTiffany3SeenText, PicnickerTiffany3BeatenText, 0, PicnickerTiffany3Script
+ trainer EVENT_BEAT_PICNICKER_TIFFANY, PICNICKER, TIFFANY3, PicnickerTiffany3SeenText, PicnickerTiffany3BeatenText, 0, .Script
-PicnickerTiffany3Script:
+.Script:
writecode VAR_CALLERID, PHONE_PICNICKER_TIFFANY
end_if_just_battled
opentext
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -19,9 +19,9 @@
db 0
TrainerBird_keeperVance1:
- trainer EVENT_BEAT_BIRD_KEEPER_VANCE, BIRD_KEEPER, VANCE1, Bird_keeperVance1SeenText, Bird_keeperVance1BeatenText, 0, Bird_keeperVance1Script
+ trainer EVENT_BEAT_BIRD_KEEPER_VANCE, BIRD_KEEPER, VANCE1, Bird_keeperVance1SeenText, Bird_keeperVance1BeatenText, 0, .Script
-Bird_keeperVance1Script:
+.Script:
writecode VAR_CALLERID, PHONE_BIRDKEEPER_VANCE
end_if_just_battled
opentext
@@ -150,9 +150,9 @@
end
TrainerPsychicPhil:
- trainer EVENT_BEAT_PSYCHIC_PHIL, PSYCHIC_T, PHIL, PsychicPhilSeenText, PsychicPhilBeatenText, 0, PsychicPhilScript
+ trainer EVENT_BEAT_PSYCHIC_PHIL, PSYCHIC_T, PHIL, PsychicPhilSeenText, PsychicPhilBeatenText, 0, .Script
-PsychicPhilScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicPhilAfterBattleText
@@ -161,9 +161,9 @@
end
TrainerFisherWilton1:
- trainer EVENT_BEAT_FISHER_WILTON, FISHER, WILTON1, FisherWilton1SeenText, FisherWilton1BeatenText, 0, FisherWilton1Script
+ trainer EVENT_BEAT_FISHER_WILTON, FISHER, WILTON1, FisherWilton1SeenText, FisherWilton1BeatenText, 0, .Script
-FisherWilton1Script:
+.Script:
writecode VAR_CALLERID, PHONE_FISHER_WILTON
end_if_just_battled
opentext
@@ -256,9 +256,9 @@
jump UnknownScript_0x19d8ff
TrainerFisherEdgar:
- trainer EVENT_BEAT_FISHER_EDGAR, FISHER, EDGAR, FisherEdgarSeenText, FisherEdgarBeatenText, 0, FisherEdgarScript
+ trainer EVENT_BEAT_FISHER_EDGAR, FISHER, EDGAR, FisherEdgarSeenText, FisherEdgarBeatenText, 0, .Script
-FisherEdgarScript:
+.Script:
end_if_just_battled
opentext
writetext FisherEdgarAfterBattleText
@@ -267,9 +267,9 @@
end
TrainerCooltrainerfCybil:
- trainer EVENT_BEAT_COOLTRAINERF_CYBIL, COOLTRAINERF, CYBIL, CooltrainerfCybilSeenText, CooltrainerfCybilBeatenText, 0, CooltrainerfCybilScript
+ trainer EVENT_BEAT_COOLTRAINERF_CYBIL, COOLTRAINERF, CYBIL, CooltrainerfCybilSeenText, CooltrainerfCybilBeatenText, 0, .Script
-CooltrainerfCybilScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfCybilAfterBattleText
@@ -278,9 +278,9 @@
end
TrainerPokemaniacZach:
- trainer EVENT_BEAT_POKEMANIAC_ZACH, POKEMANIAC, ZACH, PokemaniacZachSeenText, PokemaniacZachBeatenText, 0, PokemaniacZachScript
+ trainer EVENT_BEAT_POKEMANIAC_ZACH, POKEMANIAC, ZACH, PokemaniacZachSeenText, PokemaniacZachBeatenText, 0, .Script
-PokemaniacZachScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacZachAfterBattleText
@@ -289,9 +289,9 @@
end
TrainerCooltrainermAllen:
- trainer EVENT_BEAT_COOLTRAINERM_ALLEN, COOLTRAINERM, ALLEN, CooltrainermAllenSeenText, CooltrainermAllenBeatenText, 0, CooltrainermAllenScript
+ trainer EVENT_BEAT_COOLTRAINERM_ALLEN, COOLTRAINERM, ALLEN, CooltrainermAllenSeenText, CooltrainermAllenBeatenText, 0, .Script
-CooltrainermAllenScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermAllenAfterBattleText
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -21,9 +21,9 @@
db 0
TrainerBlackbeltKenji:
- trainer EVENT_BEAT_BLACKBELT_KENJI, BLACKBELT_T, KENJI3, BlackbeltKenji3SeenText, BlackbeltKenji3BeatenText, 0, BlackbeltKenji3Script
+ trainer EVENT_BEAT_BLACKBELT_KENJI, BLACKBELT_T, KENJI3, BlackbeltKenji3SeenText, BlackbeltKenji3BeatenText, 0, .Script
-BlackbeltKenji3Script:
+.Script:
writecode VAR_CALLERID, PHONE_BLACKBELT_KENJI
end_if_just_battled
opentext
@@ -125,9 +125,9 @@
end
TrainerHikerErik:
- trainer EVENT_BEAT_HIKER_ERIK, HIKER, ERIK, HikerErikSeenText, HikerErikBeatenText, 0, HikerErikScript
+ trainer EVENT_BEAT_HIKER_ERIK, HIKER, ERIK, HikerErikSeenText, HikerErikBeatenText, 0, .Script
-HikerErikScript:
+.Script:
end_if_just_battled
opentext
writetext HikerErikAfterBattleText
@@ -136,9 +136,9 @@
end
TrainerHikerMichael:
- trainer EVENT_BEAT_HIKER_MICHAEL, HIKER, MICHAEL, HikerMichaelSeenText, HikerMichaelBeatenText, 0, HikerMichaelScript
+ trainer EVENT_BEAT_HIKER_MICHAEL, HIKER, MICHAEL, HikerMichaelSeenText, HikerMichaelBeatenText, 0, .Script
-HikerMichaelScript:
+.Script:
end_if_just_battled
opentext
writetext HikerMichaelAfterBattleText
@@ -147,9 +147,9 @@
end
TrainerHikerParry:
- trainer EVENT_BEAT_HIKER_PARRY, HIKER, PARRY3, HikerParry3SeenText, HikerParry3BeatenText, 0, HikerParry3Script
+ trainer EVENT_BEAT_HIKER_PARRY, HIKER, PARRY3, HikerParry3SeenText, HikerParry3BeatenText, 0, .Script
-HikerParry3Script:
+.Script:
writecode VAR_CALLERID, PHONE_HIKER_PARRY
end_if_just_battled
opentext
@@ -233,9 +233,9 @@
jump UnknownScript_0x19e127
TrainerHikerTimothy:
- trainer EVENT_BEAT_HIKER_TIMOTHY, HIKER, TIMOTHY, HikerTimothySeenText, HikerTimothyBeatenText, 0, HikerTimothyScript
+ trainer EVENT_BEAT_HIKER_TIMOTHY, HIKER, TIMOTHY, HikerTimothySeenText, HikerTimothyBeatenText, 0, .Script
-HikerTimothyScript:
+.Script:
end_if_just_battled
opentext
writetext HikerTimothyAfterBattleText
@@ -244,9 +244,9 @@
end
TrainerCooltrainermRyan:
- trainer EVENT_BEAT_COOLTRAINERM_RYAN, COOLTRAINERM, RYAN, CooltrainermRyanSeenText, CooltrainermRyanBeatenText, 0, CooltrainermRyanScript
+ trainer EVENT_BEAT_COOLTRAINERM_RYAN, COOLTRAINERM, RYAN, CooltrainermRyanSeenText, CooltrainermRyanBeatenText, 0, .Script
-CooltrainermRyanScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermRyanAfterBattleText
@@ -255,9 +255,9 @@
end
TrainerCooltrainerfKelly:
- trainer EVENT_BEAT_COOLTRAINERF_KELLY, COOLTRAINERF, KELLY, CooltrainerfKellySeenText, CooltrainerfKellyBeatenText, 0, CooltrainerfKellyScript
+ trainer EVENT_BEAT_COOLTRAINERF_KELLY, COOLTRAINERF, KELLY, CooltrainerfKellySeenText, CooltrainerfKellyBeatenText, 0, .Script
-CooltrainerfKellyScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfKellyAfterBattleText
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -14,9 +14,9 @@
db 0
TrainerCamperTed:
- trainer EVENT_BEAT_CAMPER_TED, CAMPER, TED, CamperTedSeenText, CamperTedBeatenText, 0, CamperTedScript
+ trainer EVENT_BEAT_CAMPER_TED, CAMPER, TED, CamperTedSeenText, CamperTedBeatenText, 0, .Script
-CamperTedScript:
+.Script:
end_if_just_battled
opentext
writetext CamperTedAfterBattleText
@@ -25,9 +25,9 @@
end
TrainerPicnickerErin1:
- trainer EVENT_BEAT_PICNICKER_ERIN, PICNICKER, ERIN1, PicnickerErin1SeenText, PicnickerErin1BeatenText, 0, PicnickerErin1Script
+ trainer EVENT_BEAT_PICNICKER_ERIN, PICNICKER, ERIN1, PicnickerErin1SeenText, PicnickerErin1BeatenText, 0, .Script
-PicnickerErin1Script:
+.Script:
writecode VAR_CALLERID, PHONE_PICNICKER_ERIN
end_if_just_battled
opentext
@@ -148,9 +148,9 @@
end
TrainerHikerBailey:
- trainer EVENT_BEAT_HIKER_BAILEY, HIKER, BAILEY, HikerBaileySeenText, HikerBaileyBeatenText, 0, HikerBaileyScript
+ trainer EVENT_BEAT_HIKER_BAILEY, HIKER, BAILEY, HikerBaileySeenText, HikerBaileyBeatenText, 0, .Script
-HikerBaileyScript:
+.Script:
end_if_just_battled
opentext
writetext HikerBaileyAfterBattleText
--- a/maps/Route5.asm
+++ b/maps/Route5.asm
@@ -8,8 +8,8 @@
.MapCallbacks:
db 0
-PokefanMScript_0x1adb19:
- jumptextfaceplayer UnknownText_0x1adb22
+Route5PokefanMScript:
+ jumptextfaceplayer Route5PokefanMText
Route5UndergroundPathSign:
jumptext Route5UndergroundPathSignText
@@ -17,7 +17,7 @@
HouseForSaleSign:
jumptext HouseForSaleSignText
-UnknownText_0x1adb22:
+Route5PokefanMText:
text "The road is closed"
line "until the problem"
@@ -60,4 +60,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 16, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1adb19, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+ person_event SPRITE_POKEFAN_M, 16, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route5PokefanMScript, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
--- a/maps/Route5CleanseTagSpeechHouse.asm
+++ b/maps/Route5CleanseTagSpeechHouse.asm
@@ -26,8 +26,8 @@
closetext
end
-TeacherScript_0x18b64f:
- jumptextfaceplayer UnknownText_0x18b6de
+Route5CleanseTagSpeechHouseTeacherScript:
+ jumptextfaceplayer Route5CleanseTagSpeechHouseTeacherText
HouseForSaleBookshelf:
jumpstd difficultbookshelf
@@ -49,7 +49,7 @@
cont "are protected now."
done
-UnknownText_0x18b6de:
+Route5CleanseTagSpeechHouseTeacherText:
text "My grandma is into"
line "warding off what"
@@ -80,4 +80,4 @@
.PersonEvents:
db 2
person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x18b634, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18b64f, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route5CleanseTagSpeechHouseTeacherScript, -1
--- a/maps/Route5SaffronCityGate.asm
+++ b/maps/Route5SaffronCityGate.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-OfficerScript_0x18b5b9:
- jumptextfaceplayer UnknownText_0x18b5bc
+Route5SaffronCityGateOfficerScript:
+ jumptextfaceplayer Route5SaffronCityGateOfficerText
-UnknownText_0x18b5bc:
+Route5SaffronCityGateOfficerText:
text "You're from JOHTO,"
line "aren't you?"
@@ -39,4 +39,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18b5b9, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route5SaffronCityGateOfficerScript, -1
--- a/maps/Route5UndergroundEntrance.asm
+++ b/maps/Route5UndergroundEntrance.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-TeacherScript_0x18b555:
- jumptextfaceplayer UnknownText_0x18b558
+Route5UndergroundEntranceTeacherScript:
+ jumptextfaceplayer Route5UndergroundEntranceTeacherText
-UnknownText_0x18b558:
+Route5UndergroundEntranceTeacherText:
text "Many cities in"
line "JOHTO have long"
@@ -37,4 +37,4 @@
.PersonEvents:
db 1
- person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18b555, -1
+ person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route5UndergroundEntranceTeacherScript, -1
--- a/maps/Route6.asm
+++ b/maps/Route6.asm
@@ -11,9 +11,9 @@
db 0
TrainerPokefanmRex:
- trainer EVENT_BEAT_POKEFANM_REX, POKEFANM, REX, PokefanmRexSeenText, PokefanmRexBeatenText, 0, PokefanmRexScript
+ trainer EVENT_BEAT_POKEFANM_REX, POKEFANM, REX, PokefanmRexSeenText, PokefanmRexBeatenText, 0, .Script
-PokefanmRexScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmRexAfterBattleText
@@ -22,9 +22,9 @@
end
TrainerPokefanmAllan:
- trainer EVENT_BEAT_POKEFANM_ALLAN, POKEFANM, ALLAN, PokefanmAllanSeenText, PokefanmAllanBeatenText, 0, PokefanmAllanScript
+ trainer EVENT_BEAT_POKEFANM_ALLAN, POKEFANM, ALLAN, PokefanmAllanSeenText, PokefanmAllanBeatenText, 0, .Script
-PokefanmAllanScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmAllanAfterBattleText
@@ -32,13 +32,13 @@
closetext
end
-PokefanMScript_0x1ad951:
- jumptextfaceplayer UnknownText_0x1ad957
+Route6PokefanMScript:
+ jumptextfaceplayer Route6PokefanMText
Route6UndergroundPathSign:
jumptext Route6UndergroundPathSignText
-UnknownText_0x1ad957:
+Route6PokefanMText:
text "The road is closed"
line "until the problem"
@@ -109,6 +109,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKEFAN_M, 4, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 2, PokefanMScript_0x1ad951, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+ person_event SPRITE_POKEFAN_M, 4, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 2, Route6PokefanMScript, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
person_event SPRITE_POKEFAN_M, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 0, TrainerPokefanmRex, -1
person_event SPRITE_POKEFAN_M, 12, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 0, TrainerPokefanmAllan, -1
--- a/maps/Route8.asm
+++ b/maps/Route8.asm
@@ -14,9 +14,9 @@
db 0
TrainerBikerDwayne:
- trainer EVENT_BEAT_BIKER_DWAYNE, BIKER, DWAYNE, BikerDwayneSeenText, BikerDwayneBeatenText, 0, BikerDwayneScript
+ trainer EVENT_BEAT_BIKER_DWAYNE, BIKER, DWAYNE, BikerDwayneSeenText, BikerDwayneBeatenText, 0, .Script
-BikerDwayneScript:
+.Script:
end_if_just_battled
opentext
writetext BikerDwayneAfterBattleText
@@ -25,9 +25,9 @@
end
TrainerBikerHarris:
- trainer EVENT_BEAT_BIKER_HARRIS, BIKER, HARRIS, BikerHarrisSeenText, BikerHarrisBeatenText, 0, BikerHarrisScript
+ trainer EVENT_BEAT_BIKER_HARRIS, BIKER, HARRIS, BikerHarrisSeenText, BikerHarrisBeatenText, 0, .Script
-BikerHarrisScript:
+.Script:
end_if_just_battled
opentext
writetext BikerHarrisAfterBattleText
@@ -36,9 +36,9 @@
end
TrainerBikerZeke:
- trainer EVENT_BEAT_BIKER_ZEKE, BIKER, ZEKE, BikerZekeSeenText, BikerZekeBeatenText, 0, BikerZekeScript
+ trainer EVENT_BEAT_BIKER_ZEKE, BIKER, ZEKE, BikerZekeSeenText, BikerZekeBeatenText, 0, .Script
-BikerZekeScript:
+.Script:
end_if_just_battled
opentext
writetext BikerZekeAfterBattleText
@@ -47,9 +47,9 @@
end
TrainerSupernerdSam:
- trainer EVENT_BEAT_SUPER_NERD_SAM, SUPER_NERD, SAM, SupernerdSamSeenText, SupernerdSamBeatenText, 0, SupernerdSamScript
+ trainer EVENT_BEAT_SUPER_NERD_SAM, SUPER_NERD, SAM, SupernerdSamSeenText, SupernerdSamBeatenText, 0, .Script
-SupernerdSamScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdSamAfterBattleText
@@ -58,9 +58,9 @@
end
TrainerSupernerdTom:
- trainer EVENT_BEAT_SUPER_NERD_TOM, SUPER_NERD, TOM, SupernerdTomSeenText, SupernerdTomBeatenText, 0, SupernerdTomScript
+ trainer EVENT_BEAT_SUPER_NERD_TOM, SUPER_NERD, TOM, SupernerdTomSeenText, SupernerdTomBeatenText, 0, .Script
-SupernerdTomScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdTomAfterBattleText
--- a/maps/Route8SaffronGate.asm
+++ b/maps/Route8SaffronGate.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-OfficerScript_0x7f416:
- jumptextfaceplayer UnknownText_0x7f419
+Route8SaffronGateOfficerScript:
+ jumptextfaceplayer Route8SaffronGateOfficerText
-UnknownText_0x7f419:
+Route8SaffronGateOfficerText:
text "Have you been to"
line "LAVENDER TOWN?"
@@ -38,4 +38,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7f416, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route8SaffronGateOfficerScript, -1
--- a/maps/Route9.asm
+++ b/maps/Route9.asm
@@ -14,9 +14,9 @@
db 0
TrainerCamperDean:
- trainer EVENT_BEAT_CAMPER_DEAN, CAMPER, DEAN, CamperDeanSeenText, CamperDeanBeatenText, 0, CamperDeanScript
+ trainer EVENT_BEAT_CAMPER_DEAN, CAMPER, DEAN, CamperDeanSeenText, CamperDeanBeatenText, 0, .Script
-CamperDeanScript:
+.Script:
end_if_just_battled
opentext
writetext CamperDeanAfterBattleText
@@ -25,9 +25,9 @@
end
TrainerPicnickerHeidi:
- trainer EVENT_BEAT_PICNICKER_HEIDI, PICNICKER, HEIDI, PicnickerHeidiSeenText, PicnickerHeidiBeatenText, 0, PicnickerHeidiScript
+ trainer EVENT_BEAT_PICNICKER_HEIDI, PICNICKER, HEIDI, PicnickerHeidiSeenText, PicnickerHeidiBeatenText, 0, .Script
-PicnickerHeidiScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerHeidiAfterBattleText
@@ -36,9 +36,9 @@
end
TrainerCamperSid:
- trainer EVENT_BEAT_CAMPER_SID, CAMPER, SID, CamperSidSeenText, CamperSidBeatenText, 0, CamperSidScript
+ trainer EVENT_BEAT_CAMPER_SID, CAMPER, SID, CamperSidSeenText, CamperSidBeatenText, 0, .Script
-CamperSidScript:
+.Script:
end_if_just_battled
opentext
writetext CamperSidAfterBattleText
@@ -47,9 +47,9 @@
end
TrainerPicnickerEdna:
- trainer EVENT_BEAT_PICNICKER_EDNA, PICNICKER, EDNA, PicnickerEdnaSeenText, PicnickerEdnaBeatenText, 0, PicnickerEdnaScript
+ trainer EVENT_BEAT_PICNICKER_EDNA, PICNICKER, EDNA, PicnickerEdnaSeenText, PicnickerEdnaBeatenText, 0, .Script
-PicnickerEdnaScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerEdnaAfterBattleText
@@ -58,9 +58,9 @@
end
TrainerHikerTim:
- trainer EVENT_BEAT_HIKER_TIM, HIKER, TIM, HikerTimSeenText, HikerTimBeatenText, 0, HikerTimScript
+ trainer EVENT_BEAT_HIKER_TIM, HIKER, TIM, HikerTimSeenText, HikerTimBeatenText, 0, .Script
-HikerTimScript:
+.Script:
end_if_just_battled
opentext
writetext HikerTimAfterBattleText
@@ -69,9 +69,9 @@
end
TrainerHikerSidney:
- trainer EVENT_BEAT_HIKER_SIDNEY, HIKER, SIDNEY, HikerSidneySeenText, HikerSidneyBeatenText, 0, HikerSidneyScript
+ trainer EVENT_BEAT_HIKER_SIDNEY, HIKER, SIDNEY, HikerSidneySeenText, HikerSidneyBeatenText, 0, .Script
-HikerSidneyScript:
+.Script:
end_if_just_battled
opentext
writetext HikerSidneyAfterBattleText
--- a/maps/RuinsOfAlphKabutoChamber.asm
+++ b/maps/RuinsOfAlphKabutoChamber.asm
@@ -51,8 +51,8 @@
closetext
end
-ReceptionistScript_0x58769:
- jumptextfaceplayer UnknownText_0x58800
+RuinsOfAlphKabutoChamberReceptionistScript:
+ jumptextfaceplayer RuinsOfAlphKabutoChamberReceptionistText
MapRuinsOfAlphKabutoChamberSignpost2Script:
refreshscreen $0
@@ -147,7 +147,7 @@
db $59 ; movement
step_end
-UnknownText_0x58800:
+RuinsOfAlphKabutoChamberReceptionistText:
text "Welcome to this"
line "chamber."
@@ -281,5 +281,5 @@
.PersonEvents:
db 2
- person_event SPRITE_RECEPTIONIST, 5, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x58769, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
+ person_event SPRITE_RECEPTIONIST, 5, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RuinsOfAlphKabutoChamberReceptionistScript, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
person_event SPRITE_SCIENTIST, 1, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x587a8, -1
--- a/maps/RuinsOfAlphOutside.asm
+++ b/maps/RuinsOfAlphOutside.asm
@@ -102,9 +102,9 @@
end
TrainerPsychicNathan:
- trainer EVENT_BEAT_PSYCHIC_NATHAN, PSYCHIC_T, NATHAN, PsychicNathanSeenText, PsychicNathanBeatenText, 0, PsychicNathanScript
+ trainer EVENT_BEAT_PSYCHIC_NATHAN, PSYCHIC_T, NATHAN, PsychicNathanSeenText, PsychicNathanBeatenText, 0, .Script
-PsychicNathanScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicNathanAfterBattleText
@@ -114,12 +114,12 @@
TrainerSuperNerdStan:
- trainer EVENT_BEAT_SUPER_NERD_STAN, SUPER_NERD, STAN, UnknownText_0x581e5, UnknownText_0x58217, 0, UnknownScript_0x580a9
+ trainer EVENT_BEAT_SUPER_NERD_STAN, SUPER_NERD, STAN, UnknownText_0x581e5, UnknownText_0x58217, 0, .Script
-UnknownScript_0x580a9:
+.Script:
end_if_just_battled
opentext
- writetext UnknownText_0x58250
+ writetext SuperNerdStanAfterBattleText
waitbutton
closetext
end
@@ -194,7 +194,7 @@
line "understanding…"
done
-UnknownText_0x58250:
+SuperNerdStanAfterBattleText:
text "The RUINS are from"
line "about 1500 years"
cont "ago."
--- a/maps/SaffronCity.asm
+++ b/maps/SaffronCity.asm
@@ -52,11 +52,11 @@
closetext
end
-CooltrainerMScript_0x199352:
- jumptextfaceplayer UnknownText_0x1994fe
+SaffronCityCooltrainerMScript:
+ jumptextfaceplayer SaffronCityCooltrainerMText
-CooltrainerFScript_0x199355:
- jumptextfaceplayer UnknownText_0x19958e
+SaffronCityCooltrainerFScript:
+ jumptextfaceplayer SaffronCityCooltrainerFText
FisherScript_0x199358:
faceplayer
@@ -74,14 +74,14 @@
closetext
end
-YoungsterScript_0x19936c:
- jumptextfaceplayer UnknownText_0x1996a5
+SaffronCityYoungster1Script:
+ jumptextfaceplayer SaffronCityYoungster1Text
-YoungsterScript_0x19936f:
- jumptextfaceplayer UnknownText_0x1996e5
+SaffronCityYoungster2Script:
+ jumptextfaceplayer SaffronCityYoungster2Text
-LassScript_0x199372:
- jumptextfaceplayer UnknownText_0x199745
+SaffronCityLassScript:
+ jumptextfaceplayer SaffronCityLassText
SaffronCitySign:
jumptext SaffronCitySignText
@@ -148,7 +148,7 @@
cont "the MAGNET TRAIN."
done
-UnknownText_0x1994fe:
+SaffronCityCooltrainerMText:
text "I went to the GYM,"
line "raring for battles"
cont "against trainers…"
@@ -163,7 +163,7 @@
line "embarrassed."
done
-UnknownText_0x19958e:
+SaffronCityCooltrainerFText:
text "This is SILPH CO.,"
line "famous for #MON"
cont "merchandise."
@@ -196,7 +196,7 @@
line "Haaah, I'm full!"
done
-UnknownText_0x1996a5:
+SaffronCityYoungster1Text:
text "Going into an"
line "alley for the"
@@ -204,7 +204,7 @@
line "me sorta anxious."
done
-UnknownText_0x1996e5:
+SaffronCityYoungster2Text:
text "There's a place"
line "called TRAINER"
@@ -215,7 +215,7 @@
line "over the place."
done
-UnknownText_0x199745:
+SaffronCityLassText:
text "Our city was"
line "featured on a"
cont "radio program."
@@ -305,9 +305,9 @@
db 8
person_event SPRITE_LASS, 14, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x19932a, -1
person_event SPRITE_POKEFAN_M, 30, 19, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19933e, -1
- person_event SPRITE_COOLTRAINER_M, 7, 32, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x199352, -1
- person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x199355, -1
+ person_event SPRITE_COOLTRAINER_M, 7, 32, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SaffronCityCooltrainerMScript, -1
+ person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SaffronCityCooltrainerFScript, -1
person_event SPRITE_FISHER, 12, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x199358, -1
- person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19936c, -1
- person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19936f, -1
- person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x199372, -1
+ person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SaffronCityYoungster1Script, -1
+ person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SaffronCityYoungster2Script, -1
+ person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SaffronCityLassScript, -1
--- a/maps/SaffronGym.asm
+++ b/maps/SaffronGym.asm
@@ -47,9 +47,9 @@
end
TrainerMediumRebecca:
- trainer EVENT_BEAT_MEDIUM_REBECCA, MEDIUM, REBECCA, MediumRebeccaSeenText, MediumRebeccaBeatenText, 0, MediumRebeccaScript
+ trainer EVENT_BEAT_MEDIUM_REBECCA, MEDIUM, REBECCA, MediumRebeccaSeenText, MediumRebeccaBeatenText, 0, .Script
-MediumRebeccaScript:
+.Script:
end_if_just_battled
opentext
writetext MediumRebeccaAfterBattleText
@@ -58,9 +58,9 @@
end
TrainerPsychicFranklin:
- trainer EVENT_BEAT_PSYCHIC_FRANKLIN, PSYCHIC_T, FRANKLIN, PsychicFranklinSeenText, PsychicFranklinBeatenText, 0, PsychicFranklinScript
+ trainer EVENT_BEAT_PSYCHIC_FRANKLIN, PSYCHIC_T, FRANKLIN, PsychicFranklinSeenText, PsychicFranklinBeatenText, 0, .Script
-PsychicFranklinScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicFranklinAfterBattleText
@@ -69,9 +69,9 @@
end
TrainerMediumDoris:
- trainer EVENT_BEAT_MEDIUM_DORIS, MEDIUM, DORIS, MediumDorisSeenText, MediumDorisBeatenText, 0, MediumDorisScript
+ trainer EVENT_BEAT_MEDIUM_DORIS, MEDIUM, DORIS, MediumDorisSeenText, MediumDorisBeatenText, 0, .Script
-MediumDorisScript:
+.Script:
end_if_just_battled
opentext
writetext MediumDorisAfterBattleText
@@ -80,9 +80,9 @@
end
TrainerPsychicJared:
- trainer EVENT_BEAT_PSYCHIC_JARED, PSYCHIC_T, JARED, PsychicJaredSeenText, PsychicJaredBeatenText, 0, PsychicJaredScript
+ trainer EVENT_BEAT_PSYCHIC_JARED, PSYCHIC_T, JARED, PsychicJaredSeenText, PsychicJaredBeatenText, 0, .Script
-PsychicJaredScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicJaredAfterBattleText
--- a/maps/SaffronMart.asm
+++ b/maps/SaffronMart.asm
@@ -16,19 +16,19 @@
closetext
end
-CooltrainerMScript_0x18a3c6:
- jumptextfaceplayer UnknownText_0x18a3cc
+SaffronMartCooltrainerMScript:
+ jumptextfaceplayer SaffronMartCooltrainerMText
-CooltrainerFScript_0x18a3c9:
- jumptextfaceplayer UnknownText_0x18a3f3
+SaffronMartCooltrainerFScript:
+ jumptextfaceplayer SaffronMartCooltrainerFText
-UnknownText_0x18a3cc:
+SaffronMartCooltrainerMText:
text "There's a big"
line "RADIO TOWER in"
cont "LAVENDER."
done
-UnknownText_0x18a3f3:
+SaffronMartCooltrainerFText:
text "I want to become"
line "stronger, but I'm"
cont "not good yet…"
@@ -55,5 +55,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18a3bf, -1
- person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x18a3c6, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18a3c9, -1
+ person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, SaffronMartCooltrainerMScript, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SaffronMartCooltrainerFScript, -1
--- a/maps/SaffronPokecenter1F.asm
+++ b/maps/SaffronPokecenter1F.asm
@@ -38,8 +38,8 @@
closetext
end
-YoungsterScript_0x18a4a0:
- jumptextfaceplayer UnknownText_0x18a6c5
+SaffronPokecenter1FYoungsterScript:
+ jumptextfaceplayer SaffronPokecenter1FYoungsterText
UnknownText_0x18a4a3:
text "What are JOHTO's"
@@ -100,7 +100,7 @@
cont "knowledge."
done
-UnknownText_0x18a6c5:
+SaffronPokecenter1FYoungsterText:
text "SILPH CO.'s HEAD"
line "OFFICE and the"
@@ -132,4 +132,4 @@
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18a47d, -1
person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18a480, -1
person_event SPRITE_FISHER, 6, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x18a48c, -1
- person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x18a4a0, -1
+ person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SaffronPokecenter1FYoungsterScript, -1
--- a/maps/SaffronTrainStation.asm
+++ b/maps/SaffronTrainStation.asm
@@ -86,11 +86,11 @@
closetext
end
-TeacherScript_0x18a889:
- jumptextfaceplayer UnknownText_0x18aaab
+SaffronTrainStationTeacherScript:
+ jumptextfaceplayer SaffronTrainStationTeacherText
-LassScript_0x18a88c:
- jumptextfaceplayer UnknownText_0x18ab20
+SaffronTrainStationLassScript:
+ jumptextfaceplayer SaffronTrainStationLassText
MovementData_0x18a88f:
step UP
@@ -192,7 +192,7 @@
line "KANTO and JOHTO?"
done
-UnknownText_0x18aaab:
+SaffronTrainStationTeacherText:
text "Before the MAGNET"
line "TRAIN STATION was"
@@ -204,7 +204,7 @@
cont "to live there."
done
-UnknownText_0x18ab20:
+SaffronTrainStationLassText:
text "Hi. Do you have a"
line "rail PASS? I have"
@@ -237,5 +237,5 @@
db 4
person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18a81e, -1
person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x18a875, -1
- person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION
- person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION
+ person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SaffronTrainStationTeacherScript, EVENT_SAFFRON_TRAIN_STATION_POPULATION
+ person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SaffronTrainStationLassScript, EVENT_SAFFRON_TRAIN_STATION_POPULATION
--- a/maps/SilverCavePokecenter1F.asm
+++ b/maps/SilverCavePokecenter1F.asm
@@ -12,10 +12,10 @@
NurseScript_0x1ae59a:
jumpstd pokecenternurse
-GrannyScript_0x1ae59d:
- jumptextfaceplayer UnknownText_0x1ae5a0
+SilverCavePokecenter1FGrannyScript:
+ jumptextfaceplayer SilverCavePokecenter1FGrannyText
-UnknownText_0x1ae5a0:
+SilverCavePokecenter1FGrannyText:
text "Trainers who seek"
line "power climb MT."
@@ -48,4 +48,4 @@
.PersonEvents:
db 2
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1ae59a, -1
- person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_STANDING_LEFT, 1, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x1ae59d, -1
+ person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_STANDING_LEFT, 1, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SilverCavePokecenter1FGrannyScript, -1
--- a/maps/SlowpokeWellB1F.asm
+++ b/maps/SlowpokeWellB1F.asm
@@ -16,13 +16,13 @@
.MapCallbacks:
db 0
-KurtScript_0x5a5d5:
- jumptextfaceplayer UnknownText_0x5a6b5
+SlowpokeWellB1FKurtScript:
+ jumptextfaceplayer SlowpokeWellB1FKurtText
TrainerGruntM29:
- trainer EVENT_BEAT_ROCKET_GRUNTM_29, GRUNTM, GRUNTM_29, GruntM29SeenText, GruntM29BeatenText, 0, GruntM29Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_29, GRUNTM, GRUNTM_29, GruntM29SeenText, GruntM29BeatenText, 0, .Script
-GruntM29Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM29AfterBattleText
@@ -31,9 +31,9 @@
end
TrainerGruntM1:
- trainer EVENT_BEAT_ROCKET_GRUNTM_1, GRUNTM, GRUNTM_1, GruntM1SeenText, GruntM1BeatenText, 0, GruntM1Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_1, GRUNTM, GRUNTM_1, GruntM1SeenText, GruntM1BeatenText, 0, .Script
-GruntM1Script:
+.Script:
opentext
writetext TrainerGruntM1WhenTalkText
waitbutton
@@ -74,9 +74,9 @@
end
TrainerGruntM2:
- trainer EVENT_BEAT_ROCKET_GRUNTM_2, GRUNTM, GRUNTM_2, GruntM2SeenText, GruntM2BeatenText, 0, GruntM2Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_2, GRUNTM, GRUNTM_2, GruntM2SeenText, GruntM2BeatenText, 0, .Script
-GruntM2Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM2AfterBattleText
@@ -85,9 +85,9 @@
end
TrainerGruntF1:
- trainer EVENT_BEAT_ROCKET_GRUNTF_1, GRUNTF, GRUNTF_1, GruntF1SeenText, GruntF1BeatenText, 0, GruntF1Script
+ trainer EVENT_BEAT_ROCKET_GRUNTF_1, GRUNTF, GRUNTF_1, GruntF1SeenText, GruntF1BeatenText, 0, .Script
-GruntF1Script:
+.Script:
end_if_just_battled
opentext
writetext GruntF1AfterBattleText
@@ -144,7 +144,7 @@
turn_head LEFT
step_end
-UnknownText_0x5a6b5:
+SlowpokeWellB1FKurtText:
text "KURT: Hey there,"
line "<PLAYER>!"
@@ -343,6 +343,6 @@
person_event SPRITE_ROCKET_GIRL, 4, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS
person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES
person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES
- person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT
+ person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeWellB1FKurtScript, EVENT_SLOWPOKE_WELL_KURT
person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeWellB1FBoulder, -1
person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, SlowpokeWellB1FSuperPotion, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
--- a/maps/SoulHouse.asm
+++ b/maps/SoulHouse.asm
@@ -14,14 +14,14 @@
MrFuji:
jumptextfaceplayer MrFujiText
-TeacherScript_0x7ec4a:
- jumptextfaceplayer UnknownText_0x7ed4d
+SoulHouseTeacherScript:
+ jumptextfaceplayer SoulHouseTeacherText
-LassScript_0x7ec4d:
- jumptextfaceplayer UnknownText_0x7edb1
+SoulHouseLassScript:
+ jumptextfaceplayer SoulHouseLassText
-GrannyScript_0x7ec50:
- jumptextfaceplayer UnknownText_0x7eddb
+SoulHouseGrannyScript:
+ jumptextfaceplayer SoulHouseGrannyText
MrFujiText:
text "MR.FUJI: Welcome."
@@ -48,7 +48,7 @@
line "make them happy."
done
-UnknownText_0x7ed4d:
+SoulHouseTeacherText:
text "There are other"
line "graves of #MON"
cont "here, I think."
@@ -58,13 +58,13 @@
cont "MR.FUJI may enter."
done
-UnknownText_0x7edb1:
+SoulHouseLassText:
text "I came with my mom"
line "to visit #MON"
cont "graves…"
done
-UnknownText_0x7eddb:
+SoulHouseGrannyText:
text "The #MON that"
line "lived with me…"
@@ -90,6 +90,6 @@
.PersonEvents:
db 4
person_event SPRITE_GRAMPS, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, MrFuji, -1
- person_event SPRITE_TEACHER, 3, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7ec4a, -1
- person_event SPRITE_LASS, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x7ec4d, -1
- person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrannyScript_0x7ec50, -1
+ person_event SPRITE_TEACHER, 3, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SoulHouseTeacherScript, -1
+ person_event SPRITE_LASS, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SoulHouseLassScript, -1
+ person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SoulHouseGrannyScript, -1
--- a/maps/SproutTower1F.asm
+++ b/maps/SproutTower1F.asm
@@ -13,22 +13,22 @@
.MapCallbacks:
db 0
-SageScript_0x1844fe:
- jumptextfaceplayer UnknownText_0x1845d8
+SproutTower1FSage1Script:
+ jumptextfaceplayer SproutTower1FSage1Text
-SageScript_0x184501:
- jumptextfaceplayer UnknownText_0x18460a
+SproutTower1FSage2Script:
+ jumptextfaceplayer SproutTower1FSage2Text
-GrannyScript_0x184504:
- jumptextfaceplayer UnknownText_0x184649
+SproutTower1FGrannyScript:
+ jumptextfaceplayer SproutTower1FGrannyText
-TeacherScript_0x184507:
- jumptextfaceplayer UnknownText_0x18469d
+SproutTower1FTeacherScript:
+ jumptextfaceplayer SproutTower1FTeacherText
TrainerSageChow:
- trainer EVENT_BEAT_SAGE_CHOW, SAGE, CHOW, SageChowSeenText, SageChowBeatenText, 0, SageChowScript
+ trainer EVENT_BEAT_SAGE_CHOW, SAGE, CHOW, SageChowSeenText, SageChowBeatenText, 0, .Script
-SageChowScript:
+.Script:
end_if_just_battled
opentext
writetext SageChowAfterBattleText
@@ -64,13 +64,13 @@
line "thankful for this."
done
-UnknownText_0x1845d8:
+SproutTower1FSage1Text:
text "Only if you reach"
line "the top will you"
cont "obtain an HM."
done
-UnknownText_0x18460a:
+SproutTower1FSage2Text:
text "SPROUT TOWER was"
line "built long ago"
@@ -78,7 +78,7 @@
line "#MON training."
done
-UnknownText_0x184649:
+SproutTower1FGrannyText:
text "A BELLSPROUT over"
line "100 feet tall…"
@@ -87,7 +87,7 @@
cont "pillar here."
done
-UnknownText_0x18469d:
+SproutTower1FTeacherText:
text "See the pillar"
line "shaking?"
@@ -124,9 +124,9 @@
.PersonEvents:
db 6
- person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SageScript_0x1844fe, -1
- person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SageScript_0x184501, -1
- person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x184504, -1
- person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x184507, -1
+ person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SproutTower1FSage1Script, -1
+ person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SproutTower1FSage2Script, -1
+ person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SproutTower1FGrannyScript, -1
+ person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SproutTower1FTeacherScript, -1
person_event SPRITE_SAGE, 5, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 4, TrainerSageChow, -1
person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, SproutTower1FParlyzHeal, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
--- a/maps/SproutTower2F.asm
+++ b/maps/SproutTower2F.asm
@@ -11,9 +11,9 @@
db 0
TrainerSageNico:
- trainer EVENT_BEAT_SAGE_NICO, SAGE, NICO, SageNicoSeenText, SageNicoBeatenText, 0, SageNicoScript
+ trainer EVENT_BEAT_SAGE_NICO, SAGE, NICO, SageNicoSeenText, SageNicoBeatenText, 0, .Script
-SageNicoScript:
+.Script:
end_if_just_battled
opentext
writetext SageNicoAfterBattleText
@@ -22,9 +22,9 @@
end
TrainerSageEdmond:
- trainer EVENT_BEAT_SAGE_EDMOND, SAGE, EDMOND, SageEdmondSeenText, SageEdmondBeatenText, 0, SageEdmondScript
+ trainer EVENT_BEAT_SAGE_EDMOND, SAGE, EDMOND, SageEdmondSeenText, SageEdmondBeatenText, 0, .Script
-SageEdmondScript:
+.Script:
end_if_just_battled
opentext
writetext SageEdmondAfterBattleText
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -93,9 +93,9 @@
end
TrainerSageJin:
- trainer EVENT_BEAT_SAGE_JIN, SAGE, JIN, SageJinSeenText, SageJinBeatenText, 0, SageJinScript
+ trainer EVENT_BEAT_SAGE_JIN, SAGE, JIN, SageJinSeenText, SageJinBeatenText, 0, .Script
-SageJinScript:
+.Script:
end_if_just_battled
opentext
writetext SageJinAfterBattleText
@@ -104,9 +104,9 @@
end
TrainerSageTroy:
- trainer EVENT_BEAT_SAGE_TROY, SAGE, TROY, SageTroySeenText, SageTroyBeatenText, 0, SageTroyScript
+ trainer EVENT_BEAT_SAGE_TROY, SAGE, TROY, SageTroySeenText, SageTroyBeatenText, 0, .Script
-SageTroyScript:
+.Script:
end_if_just_battled
opentext
writetext SageTroyAfterBattleText
@@ -115,9 +115,9 @@
end
TrainerSageNeal:
- trainer EVENT_BEAT_SAGE_NEAL, SAGE, NEAL, SageNealSeenText, SageNealBeatenText, 0, SageNealScript
+ trainer EVENT_BEAT_SAGE_NEAL, SAGE, NEAL, SageNealSeenText, SageNealBeatenText, 0, .Script
-SageNealScript:
+.Script:
end_if_just_battled
opentext
writetext SageNealAfterBattleText
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -481,9 +481,9 @@
end
TrainerScientistJed:
- trainer EVENT_BEAT_SCIENTIST_JED, SCIENTIST, JED, ScientistJedSeenText, ScientistJedBeatenText, 0, ScientistJedScript
+ trainer EVENT_BEAT_SCIENTIST_JED, SCIENTIST, JED, ScientistJedSeenText, ScientistJedBeatenText, 0, .Script
-ScientistJedScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistJedAfterBattleText
@@ -492,9 +492,9 @@
end
TrainerGruntM16:
- trainer EVENT_BEAT_ROCKET_GRUNTM_16, GRUNTM, GRUNTM_16, GruntM16SeenText, GruntM16BeatenText, 0, GruntM16Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_16, GRUNTM, GRUNTM_16, GruntM16SeenText, GruntM16BeatenText, 0, .Script
-GruntM16Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM16AfterBattleText
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -189,9 +189,9 @@
end
TrainerGruntM17:
- trainer EVENT_BEAT_ROCKET_GRUNTM_17, GRUNTM, GRUNTM_17, GruntM17SeenText, GruntM17BeatenText, 0, GruntM17Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_17, GRUNTM, GRUNTM_17, GruntM17SeenText, GruntM17BeatenText, 0, .Script
-GruntM17Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM17AfterBattleText
@@ -200,9 +200,9 @@
end
TrainerGruntM18:
- trainer EVENT_BEAT_ROCKET_GRUNTM_18, GRUNTM, GRUNTM_18, GruntM18SeenText, GruntM18BeatenText, 0, GruntM18Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_18, GRUNTM, GRUNTM_18, GruntM18SeenText, GruntM18BeatenText, 0, .Script
-GruntM18Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM18AfterBattleText
@@ -211,9 +211,9 @@
end
TrainerGruntM19:
- trainer EVENT_BEAT_ROCKET_GRUNTM_19, GRUNTM, GRUNTM_19, GruntM19SeenText, GruntM19BeatenText, 0, GruntM19Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_19, GRUNTM, GRUNTM_19, GruntM19SeenText, GruntM19BeatenText, 0, .Script
-GruntM19Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM19AfterBattleText
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -83,8 +83,8 @@
special RestartMapMusic
end
-RocketScript_0x6e048:
- jumptextfaceplayer UnknownText_0x6e235
+TeamRocketBaseB3FRocketScript:
+ jumptextfaceplayer TeamRocketBaseB3FRocketText
UnknownScript_0x6e04b:
applymovement PLAYER, MovementData_0x6e133
@@ -152,9 +152,9 @@
end
TrainerScientistRoss:
- trainer EVENT_BEAT_SCIENTIST_ROSS, SCIENTIST, ROSS, ScientistRossSeenText, ScientistRossBeatenText, 0, ScientistRossScript
+ trainer EVENT_BEAT_SCIENTIST_ROSS, SCIENTIST, ROSS, ScientistRossSeenText, ScientistRossBeatenText, 0, .Script
-ScientistRossScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistRossAfterBattleText
@@ -163,9 +163,9 @@
end
TrainerScientistMitch:
- trainer EVENT_BEAT_SCIENTIST_MITCH, SCIENTIST, MITCH, ScientistMitchSeenText, ScientistMitchBeatenText, 0, ScientistMitchScript
+ trainer EVENT_BEAT_SCIENTIST_MITCH, SCIENTIST, MITCH, ScientistMitchSeenText, ScientistMitchBeatenText, 0, .Script
-ScientistMitchScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistMitchAfterBattleText
@@ -337,7 +337,7 @@
line "get the passwords."
done
-UnknownText_0x6e235:
+TeamRocketBaseB3FRocketText:
text "Urrggh… The guy"
line "in the cape is"
cont "incredibly tough…"
@@ -604,7 +604,7 @@
person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, RaticateTailGrunt, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SCIENTIST, 11, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeamRocketBaseB3FRocketScript, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SILVER, 5, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE
person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, TeamRocketBaseB3FProtein, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, TeamRocketBaseB3FXSpecial, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -169,31 +169,31 @@
playmapmusic
end
-SageScript_0x185173:
- jumptextfaceplayer UnknownText_0x185386
+TinTower1FSage1Script:
+ jumptextfaceplayer TinTower1FSage1Text
-SageScript_0x185176:
- jumptextfaceplayer UnknownText_0x185433
+TinTower1FSage2Script:
+ jumptextfaceplayer TinTower1FSage2Text
-SageScript_0x185179:
- jumptextfaceplayer UnknownText_0x185544
+TinTower1FSage3Script:
+ jumptextfaceplayer TinTower1FSage3Text
-SageScript_0x18517c:
+TinTower1FSage4Script:
checkevent EVENT_FOUGHT_HO_OH
- iftrue UnknownScript_0x185185
- jumptextfaceplayer UnknownText_0x1855ee
+ iftrue .FoughtHoOh
+ jumptextfaceplayer TinTower1FSage4Text1
-UnknownScript_0x185185:
- jumptextfaceplayer UnknownText_0x185765
+.FoughtHoOh:
+ jumptextfaceplayer TinTower1FSage4Text2
-SageScript_0x185188:
+TinTower1FSage5Script:
faceplayer
opentext
checkevent EVENT_FOUGHT_HO_OH
- iftrue UnknownScript_0x1851b6
+ iftrue .FoughtHoOh
checkevent EVENT_GOT_RAINBOW_WING
- iftrue UnknownScript_0x1851b0
- writetext UnknownText_0x185629
+ iftrue .GotRainbowWing
+ writetext TinTower1FSage5Text1
buttonsound
verbosegiveitem RAINBOW_WING
closetext
@@ -206,25 +206,25 @@
setevent EVENT_GOT_RAINBOW_WING
closetext
opentext
-UnknownScript_0x1851b0:
- writetext UnknownText_0x18564a
+.GotRainbowWing:
+ writetext TinTower1FSage5Text2
waitbutton
closetext
end
-UnknownScript_0x1851b6:
- writetext UnknownText_0x185803
+.FoughtHoOh:
+ writetext TinTower1FSage5Text3
waitbutton
closetext
end
-SageScript_0x1851bc:
+TinTower1FSage6Script:
checkevent EVENT_FOUGHT_HO_OH
- iftrue UnknownScript_0x1851c5
- jumptextfaceplayer UnknownText_0x185654
+ iftrue .FoughtHoOh
+ jumptextfaceplayer TinTower1FSage6Text1
-UnknownScript_0x1851c5:
- jumptextfaceplayer UnknownText_0x1858d0
+.FoughtHoOh:
+ jumptextfaceplayer TinTower1FSage6Text2
TinTowerEusine:
jumptextfaceplayer TinTowerEusineHoOhText
@@ -347,7 +347,7 @@
para "Later, <PLAYER>!"
done
-UnknownText_0x185386:
+TinTower1FSage1Text:
text "According to"
line "legend…"
@@ -367,7 +367,7 @@
line "humans?"
done
-UnknownText_0x185433:
+TinTower1FSage2Text:
text "When the BRASS"
line "TOWER burned down,"
@@ -399,7 +399,7 @@
line "say."
done
-UnknownText_0x185544:
+TinTower1FSage3Text:
text "The two TOWERS are"
line "said to have been"
@@ -416,7 +416,7 @@
line "important today."
done
-UnknownText_0x1855ee:
+TinTower1FSage4Text1:
text "HO-OH appears to"
line "have descended"
@@ -424,16 +424,16 @@
line "TOWER!"
done
-UnknownText_0x185629:
+TinTower1FSage5Text1:
text "This will protect"
line "you. Take it."
done
-UnknownText_0x18564a:
+TinTower1FSage5Text2:
text "Now, go."
done
-UnknownText_0x185654:
+TinTower1FSage6Text1:
text "I believe you are"
line "being tested."
@@ -464,7 +464,7 @@
line "#MANIAC!"
done
-UnknownText_0x185765:
+TinTower1FSage4Text2:
text "The legendary"
line "#MON are said"
@@ -481,7 +481,7 @@
line "put out the fire…"
done
-UnknownText_0x185803:
+TinTower1FSage5Text3:
text "When the legendary"
line "#MON appeared…"
@@ -502,7 +502,7 @@
cont "frightened people."
done
-UnknownText_0x1858d0:
+TinTower1FSage6Text2:
text "Of the legendary"
line "#MON, SUICUNE"
@@ -544,9 +544,9 @@
person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU
person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI
person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TinTowerEusine, EVENT_TIN_TOWER_1F_EUSINE
- person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2
- person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2
- person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage1Script, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage2Script, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage3Script, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage4Script, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage5Script, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage6Script, EVENT_TIN_TOWER_1F_WISE_TRIO_2
--- a/maps/TinTower9F.asm
+++ b/maps/TinTower9F.asm
@@ -11,11 +11,13 @@
TinTower9FHPUp:
itemball HP_UP
-UnknownText_0x185b8a:
+; unused
+TinTower9FUnusedHoOhText:
text "HO-OH: Shaoooh!"
done
-UnknownText_0x185b9b:
+; unused
+TinTower9FUnusedLugiaText:
text "LUGIA: Gyaaan!"
done
--- a/maps/TrainerHouse1F.asm
+++ b/maps/TrainerHouse1F.asm
@@ -12,20 +12,20 @@
.MapCallbacks:
db 0
-ReceptionistScript_0x9af67:
- jumptextfaceplayer UnknownText_0x9af7f
+TrainerHouse1FReceptionistScript:
+ jumptextfaceplayer TrainerHouse1FReceptionistText
-CooltrainerMScript_0x9af6a:
- jumptextfaceplayer UnknownText_0x9b025
+TrainerHouse1FCooltrainerMScript:
+ jumptextfaceplayer TrainerHouse1FCooltrainerMText
-CooltrainerFScript_0x9af6d:
- jumptextfaceplayer UnknownText_0x9b0b5
+TrainerHouse1FCooltrainerFScript:
+ jumptextfaceplayer TrainerHouse1FCooltrainerFText
-YoungsterScript_0x9af70:
- jumptextfaceplayer UnknownText_0x9b11d
+TrainerHouse1FYoungsterScript:
+ jumptextfaceplayer TrainerHouse1FYoungsterText
-GentlemanScript_0x9af73:
- jumptextfaceplayer UnknownText_0x9b1c9
+TrainerHouse1FGentlemanScript:
+ jumptextfaceplayer TrainerHouse1FGentlemanText
MapTrainerHouse1FSignpost0Script:
jumptext UnknownText_0x9b1f4
@@ -36,7 +36,7 @@
MapTrainerHouse1FSignpost2Script:
jumptext UnknownText_0x9b2c1
-UnknownText_0x9af7f:
+TrainerHouse1FReceptionistText:
text "Welcome to TRAINER"
line "HOUSE, the newest"
@@ -53,7 +53,7 @@
line "downstairs."
done
-UnknownText_0x9b025:
+TrainerHouse1FCooltrainerMText:
text "VIRIDIAN is the"
line "town closest to"
cont "INDIGO PLATEAU."
@@ -68,7 +68,7 @@
line "PLATEAU."
done
-UnknownText_0x9b0b5:
+TrainerHouse1FCooltrainerFText:
text "They hold practice"
line "battles downstairs"
cont "here."
@@ -80,7 +80,7 @@
line "battles."
done
-UnknownText_0x9b11d:
+TrainerHouse1FYoungsterText:
text "I guess you can't"
line "become the CHAMP"
@@ -97,7 +97,7 @@
line "towns in KANTO."
done
-UnknownText_0x9b1c9:
+TrainerHouse1FGentlemanText:
text "Whew… I'm taking a"
line "rest from #MON"
cont "battles."
@@ -158,8 +158,8 @@
.PersonEvents:
db 5
- person_event SPRITE_RECEPTIONIST, 11, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x9af67, -1
- person_event SPRITE_COOLTRAINER_M, 11, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9af6a, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9af6d, -1
- person_event SPRITE_YOUNGSTER, 8, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x9af70, -1
- person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x9af73, -1
+ person_event SPRITE_RECEPTIONIST, 11, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TrainerHouse1FReceptionistScript, -1
+ person_event SPRITE_COOLTRAINER_M, 11, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TrainerHouse1FCooltrainerMScript, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TrainerHouse1FCooltrainerFScript, -1
+ person_event SPRITE_YOUNGSTER, 8, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TrainerHouse1FYoungsterScript, -1
+ person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TrainerHouse1FGentlemanScript, -1
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -206,9 +206,9 @@
end
TrainerGruntM11:
- trainer EVENT_BEAT_ROCKET_GRUNTM_11, GRUNTM, GRUNTM_11, GruntM11SeenText, GruntM11BeatenText, 0, GruntM11Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_11, GRUNTM, GRUNTM_11, GruntM11SeenText, GruntM11BeatenText, 0, .Script
-GruntM11Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM11AfterBattleText
@@ -217,9 +217,9 @@
end
TrainerGruntM25:
- trainer EVENT_BEAT_ROCKET_GRUNTM_25, GRUNTM, GRUNTM_25, GruntM25SeenText, GruntM25BeatenText, 0, GruntM25Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_25, GRUNTM, GRUNTM_25, GruntM25SeenText, GruntM25BeatenText, 0, .Script
-GruntM25Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM25AfterBattleText
@@ -228,9 +228,9 @@
end
TrainerBurglarDuncan:
- trainer EVENT_BEAT_BURGLAR_DUNCAN, BURGLAR, DUNCAN, BurglarDuncanSeenText, BurglarDuncanBeatenText, 0, BurglarDuncanScript
+ trainer EVENT_BEAT_BURGLAR_DUNCAN, BURGLAR, DUNCAN, BurglarDuncanSeenText, BurglarDuncanBeatenText, 0, .Script
-BurglarDuncanScript:
+.Script:
end_if_just_battled
opentext
writetext BurglarDuncanAfterBattleText
@@ -239,9 +239,9 @@
end
TrainerBurglarEddie:
- trainer EVENT_BEAT_BURGLAR_EDDIE, BURGLAR, EDDIE, BurglarEddieSeenText, BurglarEddieBeatenText, 0, BurglarEddieScript
+ trainer EVENT_BEAT_BURGLAR_EDDIE, BURGLAR, EDDIE, BurglarEddieSeenText, BurglarEddieBeatenText, 0, .Script
-BurglarEddieScript:
+.Script:
end_if_just_battled
opentext
writetext BurglarEddieAfterBattleText
@@ -250,9 +250,9 @@
end
TrainerGruntM13:
- trainer EVENT_BEAT_ROCKET_GRUNTM_13, GRUNTM, GRUNTM_13, GruntM13SeenText, GruntM13BeatenText, 0, GruntM13Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_13, GRUNTM, GRUNTM_13, GruntM13SeenText, GruntM13BeatenText, 0, .Script
-GruntM13Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM13AfterBattleText
@@ -261,9 +261,9 @@
end
TrainerGruntF3:
- trainer EVENT_BEAT_ROCKET_GRUNTF_3, GRUNTF, GRUNTF_3, GruntF3SeenText, GruntF3BeatenText, 0, GruntF3Script
+ trainer EVENT_BEAT_ROCKET_GRUNTF_3, GRUNTF, GRUNTF_3, GruntF3SeenText, GruntF3BeatenText, 0, .Script
-GruntF3Script:
+.Script:
end_if_just_battled
opentext
writetext GruntF3AfterBattleText
--- a/maps/UndergroundWarehouse.asm
+++ b/maps/UndergroundWarehouse.asm
@@ -36,9 +36,9 @@
return
TrainerGruntM24:
- trainer EVENT_BEAT_ROCKET_GRUNTM_24, GRUNTM, GRUNTM_24, GruntM24SeenText, GruntM24BeatenText, 0, GruntM24Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_24, GRUNTM, GRUNTM_24, GruntM24SeenText, GruntM24BeatenText, 0, .Script
-GruntM24Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM24AfterBattleText
@@ -47,9 +47,9 @@
end
TrainerGruntM14:
- trainer EVENT_BEAT_ROCKET_GRUNTM_14, GRUNTM, GRUNTM_14, GruntM14SeenText, GruntM14BeatenText, 0, GruntM14Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_14, GRUNTM, GRUNTM_14, GruntM14SeenText, GruntM14BeatenText, 0, .Script
-GruntM14Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM14AfterBattleText
@@ -58,9 +58,9 @@
end
TrainerGruntM15:
- trainer EVENT_BEAT_ROCKET_GRUNTM_15, GRUNTM, GRUNTM_15, GruntM15SeenText, GruntM15BeatenText, 0, GruntM15Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_15, GRUNTM, GRUNTM_15, GruntM15SeenText, GruntM15BeatenText, 0, .Script
-GruntM15Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM15AfterBattleText
--- a/maps/UnionCave1F.asm
+++ b/maps/UnionCave1F.asm
@@ -17,9 +17,9 @@
db 0
TrainerPokemaniacLarry:
- trainer EVENT_BEAT_POKEMANIAC_LARRY, POKEMANIAC, LARRY, PokemaniacLarrySeenText, PokemaniacLarryBeatenText, 0, PokemaniacLarryScript
+ trainer EVENT_BEAT_POKEMANIAC_LARRY, POKEMANIAC, LARRY, PokemaniacLarrySeenText, PokemaniacLarryBeatenText, 0, .Script
-PokemaniacLarryScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacLarryAfterBattleText
@@ -28,9 +28,9 @@
end
TrainerHikerRussell:
- trainer EVENT_BEAT_HIKER_RUSSELL, HIKER, RUSSELL, HikerRussellSeenText, HikerRussellBeatenText, 0, HikerRussellScript
+ trainer EVENT_BEAT_HIKER_RUSSELL, HIKER, RUSSELL, HikerRussellSeenText, HikerRussellBeatenText, 0, .Script
-HikerRussellScript:
+.Script:
end_if_just_battled
opentext
writetext HikerRussellAfterBattleText
@@ -39,9 +39,9 @@
end
TrainerHikerDaniel:
- trainer EVENT_BEAT_HIKER_DANIEL, HIKER, DANIEL, HikerDanielSeenText, HikerDanielBeatenText, 0, HikerDanielScript
+ trainer EVENT_BEAT_HIKER_DANIEL, HIKER, DANIEL, HikerDanielSeenText, HikerDanielBeatenText, 0, .Script
-HikerDanielScript:
+.Script:
end_if_just_battled
opentext
writetext HikerDanielAfterBattleText
@@ -50,9 +50,9 @@
end
TrainerFirebreatherBill:
- trainer EVENT_BEAT_FIREBREATHER_BILL, FIREBREATHER, BILL, FirebreatherBillSeenText, FirebreatherBillBeatenText, 0, FirebreatherBillScript
+ trainer EVENT_BEAT_FIREBREATHER_BILL, FIREBREATHER, BILL, FirebreatherBillSeenText, FirebreatherBillBeatenText, 0, .Script
-FirebreatherBillScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherBillAfterBattleText
@@ -61,9 +61,9 @@
end
TrainerFirebreatherRay:
- trainer EVENT_BEAT_FIREBREATHER_RAY, FIREBREATHER, RAY, FirebreatherRaySeenText, FirebreatherRayBeatenText, 0, FirebreatherRayScript
+ trainer EVENT_BEAT_FIREBREATHER_RAY, FIREBREATHER, RAY, FirebreatherRaySeenText, FirebreatherRayBeatenText, 0, .Script
-FirebreatherRayScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherRayAfterBattleText
--- a/maps/UnionCaveB1F.asm
+++ b/maps/UnionCaveB1F.asm
@@ -15,9 +15,9 @@
db 0
TrainerPokemaniacAndrew:
- trainer EVENT_BEAT_POKEMANIAC_ANDREW, POKEMANIAC, ANDREW, PokemaniacAndrewSeenText, PokemaniacAndrewBeatenText, 0, PokemaniacAndrewScript
+ trainer EVENT_BEAT_POKEMANIAC_ANDREW, POKEMANIAC, ANDREW, PokemaniacAndrewSeenText, PokemaniacAndrewBeatenText, 0, .Script
-PokemaniacAndrewScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacAndrewAfterBattleText
@@ -26,9 +26,9 @@
end
TrainerPokemaniacCalvin:
- trainer EVENT_BEAT_POKEMANIAC_CALVIN, POKEMANIAC, CALVIN, PokemaniacCalvinSeenText, PokemaniacCalvinBeatenText, 0, PokemaniacCalvinScript
+ trainer EVENT_BEAT_POKEMANIAC_CALVIN, POKEMANIAC, CALVIN, PokemaniacCalvinSeenText, PokemaniacCalvinBeatenText, 0, .Script
-PokemaniacCalvinScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacCalvinAfterBattleText
@@ -37,9 +37,9 @@
end
TrainerHikerPhillip:
- trainer EVENT_BEAT_HIKER_PHILLIP, HIKER, PHILLIP, HikerPhillipSeenText, HikerPhillipBeatenText, 0, HikerPhillipScript
+ trainer EVENT_BEAT_HIKER_PHILLIP, HIKER, PHILLIP, HikerPhillipSeenText, HikerPhillipBeatenText, 0, .Script
-HikerPhillipScript:
+.Script:
end_if_just_battled
opentext
writetext HikerPhillipAfterBattleText
@@ -48,9 +48,9 @@
end
TrainerHikerLeonard:
- trainer EVENT_BEAT_HIKER_LEONARD, HIKER, LEONARD, HikerLeonardSeenText, HikerLeonardBeatenText, 0, HikerLeonardScript
+ trainer EVENT_BEAT_HIKER_LEONARD, HIKER, LEONARD, HikerLeonardSeenText, HikerLeonardBeatenText, 0, .Script
-HikerLeonardScript:
+.Script:
end_if_just_battled
opentext
writetext HikerLeonardAfterBattleText
--- a/maps/UnionCaveB2F.asm
+++ b/maps/UnionCaveB2F.asm
@@ -38,9 +38,9 @@
end
TrainerCooltrainermNick:
- trainer EVENT_BEAT_COOLTRAINERM_NICK, COOLTRAINERM, NICK, CooltrainermNickSeenText, CooltrainermNickBeatenText, 0, CooltrainermNickScript
+ trainer EVENT_BEAT_COOLTRAINERM_NICK, COOLTRAINERM, NICK, CooltrainermNickSeenText, CooltrainermNickBeatenText, 0, .Script
-CooltrainermNickScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermNickAfterBattleText
@@ -49,9 +49,9 @@
end
TrainerCooltrainerfGwen:
- trainer EVENT_BEAT_COOLTRAINERF_GWEN, COOLTRAINERF, GWEN, CooltrainerfGwenSeenText, CooltrainerfGwenBeatenText, 0, CooltrainerfGwenScript
+ trainer EVENT_BEAT_COOLTRAINERF_GWEN, COOLTRAINERF, GWEN, CooltrainerfGwenSeenText, CooltrainerfGwenBeatenText, 0, .Script
-CooltrainerfGwenScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfGwenAfterBattleText
@@ -60,9 +60,9 @@
end
TrainerCooltrainerfEmma:
- trainer EVENT_BEAT_COOLTRAINERF_EMMA, COOLTRAINERF, EMMA, CooltrainerfEmmaSeenText, CooltrainerfEmmaBeatenText, 0, CooltrainerfEmmaScript
+ trainer EVENT_BEAT_COOLTRAINERF_EMMA, COOLTRAINERF, EMMA, CooltrainerfEmmaSeenText, CooltrainerfEmmaBeatenText, 0, .Script
-CooltrainerfEmmaScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfEmmaAfterBattleText
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -18,8 +18,8 @@
setflag ENGINE_FLYPOINT_VERMILION
return
-TeacherScript_0x1aa983:
- jumptextfaceplayer UnknownText_0x1aaa15
+VermilionCityTeacherScript:
+ jumptextfaceplayer VermilionCityTeacherText
VermilionMachopOwner:
jumptextfaceplayer VermilionMachopOwnerText
@@ -37,8 +37,8 @@
closetext
end
-SuperNerdScript_0x1aa99b:
- jumptextfaceplayer UnknownText_0x1aab1a
+VermilionCitySuperNerdScript:
+ jumptextfaceplayer VermilionCitySuperNerdText
VermilionSnorlax:
opentext
@@ -125,7 +125,7 @@
VermilionCityHiddenFullHeal:
dwb EVENT_VERMILION_CITY_HIDDEN_FULL_HEAL, FULL_HEAL
-UnknownText_0x1aaa15:
+VermilionCityTeacherText:
text "VERMILION PORT is"
line "KANTO's seaside"
cont "gateway."
@@ -156,7 +156,7 @@
cont "the ground flat."
done
-UnknownText_0x1aab1a:
+VermilionCitySuperNerdText:
text "There are eight"
line "GYMS in KANTO."
@@ -300,9 +300,9 @@
.PersonEvents:
db 6
- person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1aa983, -1
+ person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionCityTeacherScript, -1
person_event SPRITE_GRAMPS, 6, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionMachopOwner, -1
person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, VermilionMachop, -1
- person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1aa99b, -1
+ person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VermilionCitySuperNerdScript, -1
person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_SNORLAX, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX
person_event SPRITE_POKEFAN_M, 12, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VermilionGymBadgeGuy, -1
--- a/maps/VermilionGym.asm
+++ b/maps/VermilionGym.asm
@@ -45,9 +45,9 @@
end
TrainerGentlemanGregory:
- trainer EVENT_BEAT_GENTLEMAN_GREGORY, GENTLEMAN, GREGORY, GentlemanGregorySeenText, GentlemanGregoryBeatenText, 0, GentlemanGregoryScript
+ trainer EVENT_BEAT_GENTLEMAN_GREGORY, GENTLEMAN, GREGORY, GentlemanGregorySeenText, GentlemanGregoryBeatenText, 0, .Script
-GentlemanGregoryScript:
+.Script:
end_if_just_battled
opentext
writetext GentlemanGregoryAfterBattleText
@@ -56,9 +56,9 @@
end
TrainerGuitaristVincent:
- trainer EVENT_BEAT_GUITARIST_VINCENT, GUITARIST, VINCENT, GuitaristVincentSeenText, GuitaristVincentBeatenText, 0, GuitaristVincentScript
+ trainer EVENT_BEAT_GUITARIST_VINCENT, GUITARIST, VINCENT, GuitaristVincentSeenText, GuitaristVincentBeatenText, 0, .Script
-GuitaristVincentScript:
+.Script:
end_if_just_battled
opentext
writetext GuitaristVincentAfterBattleText
@@ -67,9 +67,9 @@
end
TrainerJugglerHorton:
- trainer EVENT_BEAT_JUGGLER_HORTON, JUGGLER, HORTON, JugglerHortonSeenText, JugglerHortonBeatenText, 0, JugglerHortonScript
+ trainer EVENT_BEAT_JUGGLER_HORTON, JUGGLER, HORTON, JugglerHortonSeenText, JugglerHortonBeatenText, 0, .Script
-JugglerHortonScript:
+.Script:
end_if_just_battled
opentext
writetext JugglerHortonAfterBattleText
--- a/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
+++ b/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-GentlemanScript_0x192031:
- jumptextfaceplayer UnknownText_0x192034
+VermilionHouseDiglettsCaveSpeechHouseGentlemanScript:
+ jumptextfaceplayer VermilionHouseDiglettsCaveSpeechHouseGentlemanText
-UnknownText_0x192034:
+VermilionHouseDiglettsCaveSpeechHouseGentlemanText:
text "Over many years,"
line "DIGLETT dug a"
cont "large tunnel."
@@ -37,4 +37,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GENTLEMAN, 3, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x192031, -1
+ person_event SPRITE_GENTLEMAN, 3, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VermilionHouseDiglettsCaveSpeechHouseGentlemanScript, -1
--- a/maps/VermilionMagnetTrainSpeechHouse.asm
+++ b/maps/VermilionMagnetTrainSpeechHouse.asm
@@ -9,16 +9,16 @@
.MapCallbacks:
db 0
-PokefanFScript_0x191eb7:
- jumptextfaceplayer UnknownText_0x191ec0
+VermilionMagnetTrainSpeechHousePokefanFScript:
+ jumptextfaceplayer VermilionMagnetTrainSpeechHousePokefanFText
-YoungsterScript_0x191eba:
- jumptextfaceplayer UnknownText_0x191f16
+VermilionMagnetTrainSpeechHouseYoungsterScript:
+ jumptextfaceplayer VermilionMagnetTrainSpeechHouseYoungsterText
VermilionMagnetTrainSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x191ec0:
+VermilionMagnetTrainSpeechHousePokefanFText:
text "Do you know about"
line "the MAGNET TRAIN?"
@@ -27,7 +27,7 @@
cont "DENROD in JOHTO."
done
-UnknownText_0x191f16:
+VermilionMagnetTrainSpeechHouseYoungsterText:
text "I want to go to"
line "SAFFRON to see"
cont "the MAGNET TRAIN."
@@ -52,5 +52,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x191eb7, -1
- person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x191eba, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionMagnetTrainSpeechHousePokefanFScript, -1
+ person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VermilionMagnetTrainSpeechHouseYoungsterScript, -1
--- a/maps/VermilionMart.asm
+++ b/maps/VermilionMart.asm
@@ -16,13 +16,13 @@
closetext
end
-SuperNerdScript_0x191f85:
- jumptextfaceplayer UnknownText_0x191f8b
+VermilionMartSuperNerdScript:
+ jumptextfaceplayer VermilionMartSuperNerdText
-BuenaScript_0x191f88:
- jumptextfaceplayer UnknownText_0x191fca
+VermilionMartBuenaScript:
+ jumptextfaceplayer VermilionMartBuenaText
-UnknownText_0x191f8b:
+VermilionMartSuperNerdText:
text "TEAM ROCKET is no"
line "longer in KANTO."
@@ -30,7 +30,7 @@
line "me happy."
done
-UnknownText_0x191fca:
+VermilionMartBuenaText:
text "I'm thinking about"
line "going shopping in"
cont "SAFFRON."
@@ -54,5 +54,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x191f7e, -1
- person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x191f85, -1
- person_event SPRITE_BUENA, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BuenaScript_0x191f88, -1
+ person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VermilionMartSuperNerdScript, -1
+ person_event SPRITE_BUENA, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VermilionMartBuenaScript, -1
--- a/maps/VermilionPokecenter1F.asm
+++ b/maps/VermilionPokecenter1F.asm
@@ -30,11 +30,11 @@
closetext
end
-SailorScript_0x19161a:
- jumptextfaceplayer UnknownText_0x1916fe
+VermilionPokecenter1FSailorScript:
+ jumptextfaceplayer VermilionPokecenter1FSailorText
-BugCatcherScript_0x19161d:
- jumptextfaceplayer UnknownText_0x19173b
+VermilionPokecenter1FBugCatcherScript:
+ jumptextfaceplayer VermilionPokecenter1FBugCatcherText
UnknownText_0x191620:
text "A sleeping #MON"
@@ -59,7 +59,7 @@
line "have disappeared."
done
-UnknownText_0x1916fe:
+VermilionPokecenter1FSailorText:
text "The FAST SHIP is a"
line "great place to"
@@ -67,7 +67,7 @@
line "trainers."
done
-UnknownText_0x19173b:
+VermilionPokecenter1FBugCatcherText:
text "Oh? You have some"
line "BADGES I've never"
cont "seen before."
@@ -96,5 +96,5 @@
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x191603, -1
person_event SPRITE_FISHING_GURU, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x191606, -1
- person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x19161a, -1
- person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x19161d, -1
+ person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, VermilionPokecenter1FSailorScript, -1
+ person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VermilionPokecenter1FBugCatcherScript, -1
--- a/maps/VermilionPortPassage.asm
+++ b/maps/VermilionPortPassage.asm
@@ -8,10 +8,10 @@
.MapCallbacks:
db 0
-TeacherScript_0x7701a:
- jumptextfaceplayer UnknownText_0x7701d
+VermilionPortPassageTeacherScript:
+ jumptextfaceplayer VermilionPortPassageTeacherText
-UnknownText_0x7701d:
+VermilionPortPassageTeacherText:
text "The FAST SHIP"
line "sails on Wednes-"
cont "days and Sundays"
@@ -38,4 +38,4 @@
.PersonEvents:
db 1
- person_event SPRITE_TEACHER, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7701a, -1
+ person_event SPRITE_TEACHER, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionPortPassageTeacherScript, -1
--- a/maps/VioletCity.asm
+++ b/maps/VioletCity.asm
@@ -289,7 +289,7 @@
warp_def $11, $1e, 1, EARLS_POKEMON_ACADEMY
warp_def $f, $3, 1, VIOLET_NICKNAME_SPEECH_HOUSE
warp_def $19, $1f, 1, VIOLET_POKECENTER_1F
- warp_def $1d, $15, 1, VIOLET_ONIX_TRADE_HOUSE
+ warp_def $1d, $15, 1, VIOLET_KYLES_HOUSE
warp_def $5, $17, 1, SPROUT_TOWER_1F
warp_def $18, $27, 1, ROUTE_31_VIOLET_GATE
warp_def $19, $27, 2, ROUTE_31_VIOLET_GATE
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -67,9 +67,9 @@
jumpstd radiotowerrockets
TrainerBird_keeperRod:
- trainer EVENT_BEAT_BIRD_KEEPER_ROD, BIRD_KEEPER, ROD, Bird_keeperRodSeenText, Bird_keeperRodBeatenText, 0, Bird_keeperRodScript
+ trainer EVENT_BEAT_BIRD_KEEPER_ROD, BIRD_KEEPER, ROD, Bird_keeperRodSeenText, Bird_keeperRodBeatenText, 0, .Script
-Bird_keeperRodScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperRodAfterBattleText
@@ -78,9 +78,9 @@
end
TrainerBird_keeperAbe:
- trainer EVENT_BEAT_BIRD_KEEPER_ABE, BIRD_KEEPER, ABE, Bird_keeperAbeSeenText, Bird_keeperAbeBeatenText, 0, Bird_keeperAbeScript
+ trainer EVENT_BEAT_BIRD_KEEPER_ABE, BIRD_KEEPER, ABE, Bird_keeperAbeSeenText, Bird_keeperAbeBeatenText, 0, .Script
-Bird_keeperAbeScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperAbeAfterBattleText
--- /dev/null
+++ b/maps/VioletKylesHouse.asm
@@ -1,0 +1,53 @@
+const_value set 2
+ const VIOLETKYLESHOUSE_POKEFAN_M
+ const VIOLETKYLESHOUSE_KYLE
+
+VioletKylesHouse_MapScriptHeader:
+.MapTriggers:
+ db 0
+
+.MapCallbacks:
+ db 0
+
+VioletKylesHousePokefanMScript:
+ jumptextfaceplayer VioletKylesHousePokefanMText
+
+Kyle:
+ faceplayer
+ opentext
+ trade NPCTRADE_KYLE
+ waitbutton
+ closetext
+ end
+
+VioletKylesHousePokefanMText:
+ text "A #MON you get"
+ line "in a trade grows"
+ cont "quickly."
+
+ para "But if you don't"
+ line "have the right GYM"
+
+ para "BADGE, they may"
+ line "disobey you."
+ done
+
+VioletKylesHouse_MapEventHeader:
+ ; filler
+ db 0, 0
+
+.Warps:
+ db 2
+ warp_def $7, $3, 6, VIOLET_CITY
+ warp_def $7, $4, 6, VIOLET_CITY
+
+.XYTriggers:
+ db 0
+
+.Signposts:
+ db 0
+
+.PersonEvents:
+ db 2
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletKylesHousePokefanMScript, -1
+ person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Kyle, -1
--- a/maps/VioletMart.asm
+++ b/maps/VioletMart.asm
@@ -16,13 +16,13 @@
closetext
end
-GrannyScript_0x6829c:
- jumptextfaceplayer UnknownText_0x682a2
+VioletMartGrannyScript:
+ jumptextfaceplayer VioletMartGrannyText
-CooltrainerMScript_0x6829f:
- jumptextfaceplayer UnknownText_0x68323
+VioletMartCooltrainerMScript:
+ jumptextfaceplayer VioletMartCooltrainerMText
-UnknownText_0x682a2:
+VioletMartGrannyText:
text "When you first"
line "catch a #MON,"
cont "it may be weak."
@@ -36,7 +36,7 @@
cont "love."
done
-UnknownText_0x68323:
+VioletMartCooltrainerMText:
text "#MON can hold"
line "items like POTION"
cont "and ANTIDOTE."
@@ -66,5 +66,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x68295, -1
- person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x6829c, -1
- person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x6829f, -1
+ person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletMartGrannyScript, -1
+ person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VioletMartCooltrainerMScript, -1
--- a/maps/VioletNicknameSpeechHouse.asm
+++ b/maps/VioletNicknameSpeechHouse.asm
@@ -10,11 +10,11 @@
.MapCallbacks:
db 0
-TeacherScript_0x693e9:
- jumptextfaceplayer UnknownText_0x693fa
+VioletNicknameSpeechHouseTeacherScript:
+ jumptextfaceplayer VioletNicknameSpeechHouseTeacherText
-LassScript_0x693ec:
- jumptextfaceplayer UnknownText_0x6945e
+VioletNicknameSpeechHouseLassScript:
+ jumptextfaceplayer VioletNicknameSpeechHouseLassText
BirdScript_0x693ef:
faceplayer
@@ -25,7 +25,7 @@
closetext
end
-UnknownText_0x693fa:
+VioletNicknameSpeechHouseTeacherText:
text "She uses the names"
line "of her favorite"
cont "things to eat."
@@ -35,7 +35,7 @@
cont "#MON, I mean."
done
-UnknownText_0x6945e:
+VioletNicknameSpeechHouseLassText:
text "I call my PIDGEY"
line "STRAWBERRY!"
done
@@ -61,6 +61,6 @@
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x693e9, -1
- person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x693ec, -1
+ person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletNicknameSpeechHouseTeacherScript, -1
+ person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VioletNicknameSpeechHouseLassScript, -1
person_event SPRITE_BIRD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, BirdScript_0x693ef, -1
--- a/maps/VioletOnixTradeHouse.asm
+++ /dev/null
@@ -1,53 +1,0 @@
-const_value set 2
- const VIOLETONIXTRADEHOUSE_POKEFAN_M
- const VIOLETONIXTRADEHOUSE_KYLE
-
-VioletOnixTradeHouse_MapScriptHeader:
-.MapTriggers:
- db 0
-
-.MapCallbacks:
- db 0
-
-PokefanMScript_0x6998d:
- jumptextfaceplayer UnknownText_0x69997
-
-Kyle:
- faceplayer
- opentext
- trade NPCTRADE_KYLE
- waitbutton
- closetext
- end
-
-UnknownText_0x69997:
- text "A #MON you get"
- line "in a trade grows"
- cont "quickly."
-
- para "But if you don't"
- line "have the right GYM"
-
- para "BADGE, they may"
- line "disobey you."
- done
-
-VioletOnixTradeHouse_MapEventHeader:
- ; filler
- db 0, 0
-
-.Warps:
- db 2
- warp_def $7, $3, 6, VIOLET_CITY
- warp_def $7, $4, 6, VIOLET_CITY
-
-.XYTriggers:
- db 0
-
-.Signposts:
- db 0
-
-.PersonEvents:
- db 2
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x6998d, -1
- person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Kyle, -1
--- a/maps/VioletPokecenter1F.asm
+++ b/maps/VioletPokecenter1F.asm
@@ -78,14 +78,14 @@
writetext UnknownText_0x69712
jump .AskTakeEgg
-GameboyKidScript_0x69540:
- jumptextfaceplayer UnknownText_0x69809
+VioletPokecenter1FGameboyKidScript:
+ jumptextfaceplayer VioletPokecenter1FGameboyKidText
-GentlemanScript_0x69543:
- jumptextfaceplayer UnknownText_0x6983c
+VioletPokecenter1FGentlemanScript:
+ jumptextfaceplayer VioletPokecenter1FGentlemanText
-YoungsterScript_0x69546:
- jumptextfaceplayer UnknownText_0x698b8
+VioletPokecenter1FYoungsterScript:
+ jumptextfaceplayer VioletPokecenter1FYoungsterText
MovementData_AideWalksStraightOutOfPokecenter:
step DOWN
@@ -182,13 +182,13 @@
line "a friend far away."
done
-UnknownText_0x69809:
+VioletPokecenter1FGameboyKidText:
text "A guy named BILL"
line "made the #MON"
cont "PC storage system."
done
-UnknownText_0x6983c:
+VioletPokecenter1FGentlemanText:
text "It was around"
line "three years ago."
@@ -201,7 +201,7 @@
cont "kid broke 'em up."
done
-UnknownText_0x698b8:
+VioletPokecenter1FYoungsterText:
text "#MON are smart."
line "They won't obey a"
@@ -234,7 +234,7 @@
.PersonEvents:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletPokecenterNurse, -1
- person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x69540, -1
- person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x69543, -1
- person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69546, -1
+ person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VioletPokecenter1FGameboyKidScript, -1
+ person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletPokecenter1FGentlemanScript, -1
+ person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VioletPokecenter1FYoungsterScript, -1
person_event SPRITE_SCIENTIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, VioletPokecenter1F_ElmsAideScript, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
--- a/maps/ViridianCity.asm
+++ b/maps/ViridianCity.asm
@@ -66,8 +66,8 @@
closetext
end
-YoungsterScript_0x1a9a90:
- jumptextfaceplayer UnknownText_0x1a9daa
+ViridianCityYoungsterScript:
+ jumptextfaceplayer ViridianCityYoungsterText
ViridianCitySign:
jumptext ViridianCitySignText
@@ -176,7 +176,7 @@
para "…Zzzzz…"
done
-UnknownText_0x1a9daa:
+ViridianCityYoungsterText:
text "I heard that there"
line "are many items on"
@@ -244,4 +244,4 @@
person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9a4c, -1
person_event SPRITE_GRAMPS, 8, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9a61, -1
person_event SPRITE_FISHER, 23, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a9a75, -1
- person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9a90, -1
+ person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ViridianCityYoungsterScript, -1
--- a/maps/ViridianMart.asm
+++ b/maps/ViridianMart.asm
@@ -16,19 +16,19 @@
closetext
end
-LassScript_0x9b5ee:
- jumptextfaceplayer UnknownText_0x9b5f4
+ViridianMartLassScript:
+ jumptextfaceplayer ViridianMartLassText
-CooltrainerMScript_0x9b5f1:
- jumptextfaceplayer UnknownText_0x9b61a
+ViridianMartCooltrainerMScript:
+ jumptextfaceplayer ViridianMartCooltrainerMText
-UnknownText_0x9b5f4:
+ViridianMartLassText:
text "The GYM LEADER"
line "here is totally"
cont "cool."
done
-UnknownText_0x9b61a:
+ViridianMartCooltrainerMText:
text "Have you been to"
line "CINNABAR?"
@@ -54,5 +54,5 @@
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x9b5e7, -1
- person_event SPRITE_LASS, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x9b5ee, -1
- person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9b5f1, -1
+ person_event SPRITE_LASS, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ViridianMartLassScript, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ViridianMartCooltrainerMScript, -1
--- a/maps/ViridianNicknameSpeechHouse.asm
+++ b/maps/ViridianNicknameSpeechHouse.asm
@@ -11,11 +11,11 @@
.MapCallbacks:
db 0
-PokefanMScript_0x9ae3a:
- jumptextfaceplayer UnknownText_0x9ae54
+ViridianNicknameSpeechHousePokefanMScript:
+ jumptextfaceplayer ViridianNicknameSpeechHousePokefanMText
-LassScript_0x9ae3d:
- jumptextfaceplayer UnknownText_0x9aecb
+ViridianNicknameSpeechHouseLassScript:
+ jumptextfaceplayer ViridianNicknameSpeechHouseLassText
Speary:
opentext
@@ -33,7 +33,7 @@
closetext
end
-UnknownText_0x9ae54:
+ViridianNicknameSpeechHousePokefanMText:
text "Do you put a lot"
line "of thought into"
@@ -47,7 +47,7 @@
line "with others."
done
-UnknownText_0x9aecb:
+ViridianNicknameSpeechHouseLassText:
text "They're SPEARY--"
line "a SPEAROW--and"
cont "RATTEY--a RATTATA."
@@ -78,7 +78,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x9ae3a, -1
- person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9ae3d, -1
+ person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ViridianNicknameSpeechHousePokefanMScript, -1
+ person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ViridianNicknameSpeechHouseLassScript, -1
person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, Speary, -1
person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Rattey, -1
--- a/maps/ViridianPokecenter1F.asm
+++ b/maps/ViridianPokecenter1F.asm
@@ -30,11 +30,11 @@
closetext
end
-CooltrainerFScript_0x9b6a7:
- jumptextfaceplayer UnknownText_0x9b76b
+ViridianPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer ViridianPokecenter1FCooltrainerFText
-BugCatcherScript_0x9b6aa:
- jumptextfaceplayer UnknownText_0x9b7c8
+ViridianPokecenter1FBugCatcherScript:
+ jumptextfaceplayer ViridianPokecenter1FBugCatcherText
UnknownText_0x9b6ad:
text "Where in the world"
@@ -56,7 +56,7 @@
line "any underlings."
done
-UnknownText_0x9b76b:
+ViridianPokecenter1FCooltrainerFText:
text "I heard that the"
line "GYM in CINNABAR is"
cont "gone."
@@ -66,7 +66,7 @@
cont "the GYM LEADER."
done
-UnknownText_0x9b7c8:
+ViridianPokecenter1FBugCatcherText:
text "My dream is to be-"
line "come a GYM LEADER."
done
@@ -91,5 +91,5 @@
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9b690, -1
person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9b693, -1
- person_event SPRITE_COOLTRAINER_F, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9b6a7, -1
- person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x9b6aa, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ViridianPokecenter1FCooltrainerFScript, -1
+ person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ViridianPokecenter1FBugCatcherScript, -1
--- a/maps/WarehouseEntrance.asm
+++ b/maps/WarehouseEntrance.asm
@@ -111,9 +111,9 @@
return
TrainerSupernerdEric:
- trainer EVENT_BEAT_SUPER_NERD_ERIC, SUPER_NERD, ERIC, SupernerdEricSeenText, SupernerdEricBeatenText, 0, SupernerdEricScript
+ trainer EVENT_BEAT_SUPER_NERD_ERIC, SUPER_NERD, ERIC, SupernerdEricSeenText, SupernerdEricBeatenText, 0, .Script
-SupernerdEricScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdEricAfterBattleText
@@ -122,9 +122,9 @@
end
TrainerSupernerdTeru:
- trainer EVENT_BEAT_SUPER_NERD_TERU, SUPER_NERD, TERU, SupernerdTeruSeenText, SupernerdTeruBeatenText, 0, SupernerdTeruScript
+ trainer EVENT_BEAT_SUPER_NERD_TERU, SUPER_NERD, TERU, SupernerdTeruSeenText, SupernerdTeruBeatenText, 0, .Script
-SupernerdTeruScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdTeruAfterBattleText
@@ -133,9 +133,9 @@
end
TrainerPokemaniacIssac:
- trainer EVENT_BEAT_POKEMANIAC_ISSAC, POKEMANIAC, ISSAC, PokemaniacIssacSeenText, PokemaniacIssacBeatenText, 0, PokemaniacIssacScript
+ trainer EVENT_BEAT_POKEMANIAC_ISSAC, POKEMANIAC, ISSAC, PokemaniacIssacSeenText, PokemaniacIssacBeatenText, 0, .Script
-PokemaniacIssacScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacIssacAfterBattleText
@@ -144,9 +144,9 @@
end
TrainerPokemaniacDonald:
- trainer EVENT_BEAT_POKEMANIAC_DONALD, POKEMANIAC, DONALD, PokemaniacDonaldSeenText, PokemaniacDonaldBeatenText, 0, PokemaniacDonaldScript
+ trainer EVENT_BEAT_POKEMANIAC_DONALD, POKEMANIAC, DONALD, PokemaniacDonaldSeenText, PokemaniacDonaldBeatenText, 0, .Script
-PokemaniacDonaldScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacDonaldAfterBattleText
--- a/maps/WiseTriosRoom.asm
+++ b/maps/WiseTriosRoom.asm
@@ -43,14 +43,14 @@
setevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
return
-SageScript_0x9859a:
- jumptextfaceplayer UnknownText_0x9862b
+WiseTriosRoomSage1Script:
+ jumptextfaceplayer WiseTriosRoomSage1Text
-SageScript_0x9859d:
- jumptextfaceplayer UnknownText_0x9868b
+WiseTriosRoomSage2Script:
+ jumptextfaceplayer WiseTriosRoomSage2Text
-SageScript_0x985a0:
- jumptextfaceplayer UnknownText_0x987af
+WiseTriosRoomSage3Script:
+ jumptextfaceplayer WiseTriosRoomSage3Text
UnknownScript_0x985a3:
spriteface WISETRIOSROOM_SAGE3, UP
@@ -69,9 +69,9 @@
end
TrainerSageGaku:
- trainer EVENT_BEAT_SAGE_GAKU, SAGE, GAKU, SageGakuSeenText, SageGakuBeatenText, 0, SageGakuScript
+ trainer EVENT_BEAT_SAGE_GAKU, SAGE, GAKU, SageGakuSeenText, SageGakuBeatenText, 0, .Script
-SageGakuScript:
+.Script:
opentext
writetext UnknownText_0x98938
waitbutton
@@ -79,9 +79,9 @@
end
TrainerSageMasa:
- trainer EVENT_BEAT_SAGE_MASA, SAGE, MASA, SageMasaSeenText, SageMasaBeatenText, 0, SageMasaScript
+ trainer EVENT_BEAT_SAGE_MASA, SAGE, MASA, SageMasaSeenText, SageMasaBeatenText, 0, .Script
-SageMasaScript:
+.Script:
opentext
writetext UnknownText_0x98a35
waitbutton
@@ -89,9 +89,9 @@
end
TrainerSageKoji:
- trainer EVENT_BEAT_SAGE_KOJI, SAGE, KOJI, SageKojiSeenText, SageKojiBeatenText, 0, SageKojiScript
+ trainer EVENT_BEAT_SAGE_KOJI, SAGE, KOJI, SageKojiSeenText, SageKojiBeatenText, 0, .Script
-SageKojiScript:
+.Script:
checkevent EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
iftrue UnknownScript_0x9861b
pause 10
@@ -130,7 +130,7 @@
step DOWN
step_end
-UnknownText_0x9862b:
+WiseTriosRoomSage1Text:
text "Astounding…"
para "SUICUNE, ENTEI and"
@@ -141,7 +141,7 @@
line "coming true?"
done
-UnknownText_0x9868b:
+WiseTriosRoomSage2Text:
text "We train at the"
line "BURNED TOWER, but"
@@ -172,7 +172,7 @@
line "entering!"
done
-UnknownText_0x987af:
+WiseTriosRoomSage3Text:
text "We, the WISE TRIO,"
line "are the protectors"
@@ -363,9 +363,9 @@
.PersonEvents:
db 6
- person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
- person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
- person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WiseTriosRoomSage1Script, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WiseTriosRoomSage2Script, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WiseTriosRoomSage3Script, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageMasa, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
person_event SPRITE_SAGE, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageKoji, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
--- a/maps/blockdata.asm
+++ b/maps/blockdata.asm
@@ -443,7 +443,7 @@
EcruteakLugiaSpeechHouse_BlockData:
EcruteakItemfinderHouse_BlockData:
VioletNicknameSpeechHouse_BlockData:
-VioletOnixTradeHouse_BlockData:
+VioletKylesHouse_BlockData:
INCBIN "maps/House2.blk"
BetaCave_BlockData:
--- a/maps/map_headers.asm
+++ b/maps/map_headers.asm
@@ -1,3 +1,20 @@
+map_header: macro
+;\1: map label
+;\2: tileset: a TILESET_* constant
+;\3: permission: TOWN, ROUTE, INDOOR, CAVE, PERM_5, GATE, or DUNGEON
+;\4: location: from constants/landmark_constants.asm
+;\5: music: a MUSIC_* constant
+;\6: phone service flag: 1 to prevent phone calls
+;\7: time of day: a PALETTE_* constant
+;\8: fishing group: a FISHGROUP_* constant
+\1_MapHeader:
+ db BANK(\1_SecondMapHeader), \2, \3
+ dw \1_SecondMapHeader
+ db \4, \5
+ dn \6, \7
+ db \8
+endm
+
MapGroupPointers::
; pointers to the first map header of each map group
dw MapGroup_Olivine ; 1
@@ -27,7 +44,6 @@
dw MapGroup_Saffron ; 25
dw MapGroup_Cherrygrove ; 26
-
MapGroup_Olivine:
map_header OlivinePokecenter1F, TILESET_POKECENTER, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header OlivineGym, TILESET_OLIVINE_GYM, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
@@ -235,7 +251,7 @@
map_header EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header VioletNicknameSpeechHouse, TILESET_KURTS_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header VioletPokecenter1F, TILESET_POKECENTER, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
- map_header VioletOnixTradeHouse, TILESET_KURTS_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+ map_header VioletKylesHouse, TILESET_KURTS_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header Route32RuinsOfAlphGate, TILESET_GATE, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header Route32Pokecenter1F, TILESET_POKECENTER, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header Route35GoldenrodGate, TILESET_GATE, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_DAY, FISHGROUP_SHORE
--- a/maps/second_map_headers.asm
+++ b/maps/second_map_headers.asm
@@ -1,3 +1,90 @@
+map_header_2: macro
+;\1: map label
+;\2: map id
+;\3: border block
+;\4: connections: combo of NORTH, SOUTH, WEST, and/or EAST, or 0 for none
+\1_SecondMapHeader::
+ db \3
+ db \2_HEIGHT, \2_WIDTH
+ db BANK(\1_BlockData)
+ dw \1_BlockData
+ db BANK(\1_MapScriptHeader)
+ dw \1_MapScriptHeader
+ dw \1_MapEventHeader
+ db \4
+endm
+
+connection: macro
+if "\1" == "north"
+;\2: map id
+;\3: map label (eventually will be rolled into map id)
+;\4: x
+;\5: offset?
+;\6: strip length
+;\7: this map id
+ map \2
+ dw \3_BlockData + \2_WIDTH * (\2_HEIGHT - 3) + \5
+ dw OverworldMap + \4 + 3
+ db \6
+ db \2_WIDTH
+ db \2_HEIGHT * 2 - 1
+ db (\4 - \5) * -2
+ dw OverworldMap + \2_HEIGHT * (\2_WIDTH + 6) + 1
+endc
+
+if "\1" == "south"
+;\2: map id
+;\3: map label (eventually will be rolled into map id)
+;\4: x
+;\5: offset?
+;\6: strip length
+;\7: this map id
+ map \2
+ dw \3_BlockData + \5
+ dw OverworldMap + (\7_HEIGHT + 3) * (\7_WIDTH + 6) + \4 + 3
+ db \6
+ db \2_WIDTH
+ db 0
+ db (\4 - \5) * -2
+ dw OverworldMap + \2_WIDTH + 7
+endc
+
+if "\1" == "west"
+;\2: map id
+;\3: map label (eventually will be rolled into map id)
+;\4: y
+;\5: offset?
+;\6: strip length
+;\7: this map id
+ map \2
+ dw \3_BlockData + (\2_WIDTH * \5) + \2_WIDTH - 3
+ dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3)
+ db \6
+ db \2_WIDTH
+ db (\4 - \5) * -2
+ db \2_WIDTH * 2 - 1
+ dw OverworldMap + \2_WIDTH * 2 + 6
+endc
+
+if "\1" == "east"
+;\2: map id
+;\3: map label (eventually will be rolled into map id)
+;\4: y
+;\5: offset?
+;\6: strip length
+;\7: this map id
+ map \2
+ dw \3_BlockData + (\2_WIDTH * \5)
+ dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3 + 1) - 3
+ db \6
+ db \2_WIDTH
+ db (\4 - \5) * -2
+ db 0
+ dw OverworldMap + \2_WIDTH + 7
+endc
+endm
+
+
map_header_2 NewBarkTown, NEW_BARK_TOWN, $5, WEST | EAST
connection west, ROUTE_29, Route29, 0, 0, 9, NEW_BARK_TOWN
connection east, ROUTE_27, Route27, 0, 0, 9, NEW_BARK_TOWN
@@ -427,7 +514,7 @@
map_header_2 EarlsPokemonAcademy, EARLS_POKEMON_ACADEMY, $0, 0
map_header_2 VioletNicknameSpeechHouse, VIOLET_NICKNAME_SPEECH_HOUSE, $0, 0
map_header_2 VioletPokecenter1F, VIOLET_POKECENTER_1F, $0, 0
- map_header_2 VioletOnixTradeHouse, VIOLET_ONIX_TRADE_HOUSE, $0, 0
+ map_header_2 VioletKylesHouse, VIOLET_KYLES_HOUSE, $0, 0
map_header_2 Route32RuinsOfAlphGate, ROUTE_32_RUINS_OF_ALPH_GATE, $0, 0
map_header_2 Route32Pokecenter1F, ROUTE_32_POKECENTER_1F, $0, 0
map_header_2 Route35GoldenrodGate, ROUTE_35_GOLDENROD_GATE, $0, 0
--- a/misc/battle_tower_47.asm
+++ /dev/null
@@ -1,784 +1,0 @@
-BattleTowerText:: ; 11c000
-; Print text c for trainer [BT_OTTrainerClass]
-; 1: Intro text
-; 2: Player lost
-; 3: Player won
- ld a, [rSVBK]
- push af
- ld a, 3 ; BANK(BT_OTTrainerClass)
- ld [rSVBK], a
-IF DEF(CRYSTAL11)
- ld hl, BT_OTTrainerClass
-ELSE
- ld hl, BT_OTName + 5
-; BUG ALERT
-; Instead of loading the Trainer Class, this routine
-; loads the 6th character in the Trainer's name, then
-; uses it to get the gender of the trainer.
-; As a consequence, the enemy trainer's dialog will
-; always be sampled from the female array.
-ENDC
- ld a, [hl]
- dec a
- ld e, a
- ld d, 0
- ld hl, BTTrainerClassGenders
- add hl, de
- ld a, [hl]
- and a
- jr nz, .female
- ; generate a random number between 0 and 24
- ld a, [hRandomAdd]
- and $1f
- cp 25
- jr c, .okay0
- sub 25
-
-.okay0
- ld hl, BTMaleTrainerTexts
- jr .proceed
-
-.female
- ; generate a random number between 0 and 14
- ld a, [hRandomAdd]
- and $f
- cp 15
- jr c, .okay1
- sub 15
-
-.okay1
- ld hl, BTFemaleTrainerTexts
-
-.proceed
- ld b, 0
- dec c
- jr nz, .restore
- ld [BT_TrainerTextIndex], a
- jr .okay2
-
-.restore
- ld a, [BT_TrainerTextIndex]
-
-.okay2
- push af
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld h, a
- ld l, c
- pop af
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld l, c
- ld h, a
- bccoord 1, 14
- pop af
- ld [rSVBK], a
- call PlaceHLTextAtBC
- ret
-; 11c05d
-
-INCLUDE "misc/fixed_words.asm"
-
-BTTrainerClassGenders: ; 11f2f0
- db MALE ; FALKNER
- db FEMALE ; WHITNEY
- db FEMALE ; BUGSY
- db MALE ; MORTY
- db MALE ; PRYCE
- db FEMALE ; JASMINE
- db MALE ; CHUCK
- db FEMALE ; CLAIR
- db MALE ; RIVAL1
- db MALE ; POKEMON_PROF
- db FEMALE ; WILL
- db MALE ; CAL
- db MALE ; BRUNO
- db FEMALE ; KAREN
- db MALE ; KOGA
- db MALE ; CHAMPION
- db MALE ; BROCK
- db FEMALE ; MISTY
- db MALE ; LT_SURGE
- db MALE ; SCIENTIST
- db FEMALE ; ERIKA
- db MALE ; YOUNGSTER
- db MALE ; SCHOOLBOY
- db MALE ; BIRD_KEEPER
- db FEMALE ; LASS
- db FEMALE ; JANINE
- db MALE ; COOLTRAINERM
- db FEMALE ; COOLTRAINERF
- db FEMALE ; BEAUTY
- db MALE ; POKEMANIAC
- db MALE ; GRUNTM
- db MALE ; GENTLEMAN
- db FEMALE ; SKIER
- db FEMALE ; TEACHER
- db FEMALE ; SABRINA
- db MALE ; BUG_CATCHER
- db MALE ; FISHER
- db MALE ; SWIMMERM
- db FEMALE ; SWIMMERF
- db MALE ; SAILOR
- db MALE ; SUPER_NERD
- db MALE ; RIVAL2
- db MALE ; GUITARIST
- db MALE ; HIKER
- db MALE ; BIKER
- db MALE ; BLAINE
- db MALE ; BURGLAR
- db MALE ; FIREBREATHER
- db MALE ; JUGGLER
- db MALE ; BLACKBELT_T
- db MALE ; EXECUTIVEM
- db MALE ; PSYCHIC_T
- db FEMALE ; PICNICKER
- db MALE ; CAMPER
- db FEMALE ; EXECUTIVEF
- db MALE ; SAGE
- db FEMALE ; MEDIUM
- db MALE ; BOARDER
- db MALE ; POKEFANM
- db FEMALE ; KIMONO_GIRL
- db FEMALE ; TWINS
- db FEMALE ; POKEFANF
- db MALE ; RED
- db MALE ; BLUE
- db MALE ; OFFICER
- db FEMALE ; GRUNTF
-
-
-BTMaleTrainerTexts: ; 11f332
- dw .Greetings
- dw .PlayerLost
- dw .PlayerWon
-
-.Greetings: ; 11f338
- dw BTGreetingM1
- dw BTGreetingM2
- dw BTGreetingM3
- dw BTGreetingM4
- dw BTGreetingM5
- dw BTGreetingM6
- dw BTGreetingM7
- dw BTGreetingM8
- dw BTGreetingM9
- dw BTGreetingM10
- dw BTGreetingM11
- dw BTGreetingM12
- dw BTGreetingM13
- dw BTGreetingM14
- dw BTGreetingM15
- dw BTGreetingM16
- dw BTGreetingM17
- dw BTGreetingM18
- dw BTGreetingM19
- dw BTGreetingM20
- dw BTGreetingM21
- dw BTGreetingM22
- dw BTGreetingM23
- dw BTGreetingM24
- dw BTGreetingM25
-
-.PlayerLost: ; 11f36a
- dw BTLossM1
- dw BTLossM2
- dw BTLossM3
- dw BTLossM4
- dw BTLossM5
- dw BTLossM6
- dw BTLossM7
- dw BTLossM8
- dw BTLossM9
- dw BTLossM10
- dw BTLossM11
- dw BTLossM12
- dw BTLossM13
- dw BTLossM14
- dw BTLossM15
- dw BTLossM16
- dw BTLossM17
- dw BTLossM18
- dw BTLossM19
- dw BTLossM20
- dw BTLossM21
- dw BTLossM22
- dw BTLossM23
- dw BTLossM24
- dw BTLossM25
-
-.PlayerWon: ; 11f39c
- dw BTWinM1
- dw BTWinM2
- dw BTWinM3
- dw BTWinM4
- dw BTWinM5
- dw BTWinM6
- dw BTWinM7
- dw BTWinM8
- dw BTWinM9
- dw BTWinM10
- dw BTWinM11
- dw BTWinM12
- dw BTWinM13
- dw BTWinM14
- dw BTWinM15
- dw BTWinM16
- dw BTWinM17
- dw BTWinM18
- dw BTWinM19
- dw BTWinM20
- dw BTWinM21
- dw BTWinM22
- dw BTWinM23
- dw BTWinM24
- dw BTWinM25
-
-
-BTFemaleTrainerTexts:
- dw .Greetings
- dw .PlayerLost
- dw .PlayerWon
-
-.Greetings: ; 11f3d4
- dw BTGreetingF1
- dw BTGreetingF2
- dw BTGreetingF3
- dw BTGreetingF4
- dw BTGreetingF5
- dw BTGreetingF6
- dw BTGreetingF7
- dw BTGreetingF8
- dw BTGreetingF9
- dw BTGreetingF10
- dw BTGreetingF11
- dw BTGreetingF12
- dw BTGreetingF13
- dw BTGreetingF14
- dw BTGreetingF15
-
-.PlayerLost: ; 11f3f2
- dw BTLossF1
- dw BTLossF2
- dw BTLossF3
- dw BTLossF4
- dw BTLossF5
- dw BTLossF6
- dw BTLossF7
- dw BTLossF8
- dw BTLossF9
- dw BTLossF10
- dw BTLossF11
- dw BTLossF12
- dw BTLossF13
- dw BTLossF14
- dw BTLossF15
-
-.PlayerWon: ; 11f410
- dw BTWinF1
- dw BTWinF2
- dw BTWinF3
- dw BTWinF4
- dw BTWinF5
- dw BTWinF6
- dw BTWinF7
- dw BTWinF8
- dw BTWinF9
- dw BTWinF10
- dw BTWinF11
- dw BTWinF12
- dw BTWinF13
- dw BTWinF14
- dw BTWinF15
-
-
-BTGreetingM1: ; 0x11f42e
- text_jump BattleTowerText_0x1ec000
- db "@"
-
-BTLossM1: ; 0x11f433
- text_jump BattleTowerText_0x1ec03b
- db "@"
-
-BTWinM1: ; 0x11f438
- text_jump UnknownText_0x1ec060
- db "@"
-
-BTGreetingM2: ; 0x11f43d
- text_jump BattleTowerText_0x1ec080
- db "@"
-
-BTLossM2: ; 0x11f442
- text_jump UnknownText_0x1ec0a3
- db "@"
-
-BTWinM2: ; 0x11f447
- text_jump UnknownText_0x1ec0c4
- db "@"
-
-BTGreetingM3: ; 0x11f44c
- text_jump UnknownText_0x1ec0e1
- db "@"
-
-BTLossM3: ; 0x11f451
- text_jump UnknownText_0x1ec108
- db "@"
-
-BTWinM3: ; 0x11f456
- text_jump UnknownText_0x1ec12a
- db "@"
-
-BTGreetingM4: ; 0x11f45b
- text_jump UnknownText_0x1ec14d
- db "@"
-
-BTLossM4: ; 0x11f460
- text_jump UnknownText_0x1ec16f
- db "@"
-
-BTWinM4: ; 0x11f465
- text_jump UnknownText_0x1ec190
- db "@"
-
-BTGreetingM5: ; 0x11f46a
- text_jump UnknownText_0x1ec1ae
- db "@"
-
-BTLossM5: ; 0x11f46f
- text_jump UnknownText_0x1ec1d0
- db "@"
-
-BTWinM5: ; 0x11f474
- text_jump UnknownText_0x1ec1f4
- db "@"
-
-BTGreetingM6: ; 0x11f479
- text_jump UnknownText_0x1ec216
- db "@"
-
-BTLossM6: ; 0x11f47e
- text_jump UnknownText_0x1ec238
- db "@"
-
-BTWinM6: ; 0x11f483
- text_jump UnknownText_0x1ec259
- db "@"
-
-BTGreetingM7: ; 0x11f488
- text_jump UnknownText_0x1ec27b
- db "@"
-
-BTLossM7: ; 0x11f48d
- text_jump UnknownText_0x1ec2a0
- db "@"
-
-BTWinM7: ; 0x11f492
- text_jump UnknownText_0x1ec2c0
- db "@"
-
-BTGreetingM8: ; 0x11f497
- text_jump UnknownText_0x1ec2d9
- db "@"
-
-BTLossM8: ; 0x11f49c
- text_jump UnknownText_0x1ec2fe
- db "@"
-
-BTWinM8: ; 0x11f4a1
- text_jump UnknownText_0x1ec320
- db "@"
-
-BTGreetingM9: ; 0x11f4a6
- text_jump UnknownText_0x1ec33f
- db "@"
-
-BTLossM9: ; 0x11f4ab
- text_jump UnknownText_0x1ec36c
- db "@"
-
-BTWinM9: ; 0x11f4b0
- text_jump UnknownText_0x1ec389
- db "@"
-
-BTGreetingM10: ; 0x11f4b5
- text_jump UnknownText_0x1ec3ad
- db "@"
-
-BTLossM10: ; 0x11f4ba
- text_jump UnknownText_0x1ec3c5
- db "@"
-
-BTWinM10: ; 0x11f4bf
- text_jump UnknownText_0x1ec3e5
- db "@"
-
-BTGreetingM11: ; 0x11f4c4
- text_jump UnknownText_0x1ec402
- db "@"
-
-BTLossM11: ; 0x11f4c9
- text_jump UnknownText_0x1ec411
- db "@"
-
-BTWinM11: ; 0x11f4ce
- text_jump UnknownText_0x1ec41f
- db "@"
-
-BTGreetingM12: ; 0x11f4d3
- text_jump UnknownText_0x1ec42e
- db "@"
-
-BTLossM12: ; 0x11f4d8
- text_jump UnknownText_0x1ec461
- db "@"
-
-BTWinM12: ; 0x11f4dd
- text_jump UnknownText_0x1ec4a0
- db "@"
-
-BTGreetingM13: ; 0x11f4e2
- text_jump UnknownText_0x1ec4d6
- db "@"
-
-BTLossM13: ; 0x11f4e7
- text_jump UnknownText_0x1ec4f5
- db "@"
-
-BTWinM13: ; 0x11f4ec
- text_jump UnknownText_0x1ec512
- db "@"
-
-BTGreetingM14: ; 0x11f4f1
- text_jump UnknownText_0x1ec532
- db "@"
-
-BTLossM14: ; 0x11f4f6
- text_jump UnknownText_0x1ec54b
- db "@"
-
-BTWinM14: ; 0x11f4fb
- text_jump UnknownText_0x1ec565
- db "@"
-
-BTGreetingM15: ; 0x11f500
- text_jump UnknownText_0x1ec580
- db "@"
-
-BTLossM15: ; 0x11f505
- text_jump UnknownText_0x1ec59d
- db "@"
-
-BTWinM15: ; 0x11f50a
- text_jump UnknownText_0x1ec5b5
- db "@"
-
-BTGreetingM16: ; 0x11f50f
- text_jump UnknownText_0x1ec5d3
- db "@"
-
-BTLossM16: ; 0x11f514
- text_jump UnknownText_0x1ec5ee
- db "@"
-
-BTWinM16: ; 0x11f519
- text_jump UnknownText_0x1ec60d
- db "@"
-
-BTGreetingM17: ; 0x11f51e
- text_jump UnknownText_0x1ec631
- db "@"
-
-BTLossM17: ; 0x11f523
- text_jump UnknownText_0x1ec651
- db "@"
-
-BTWinM17: ; 0x11f528
- text_jump UnknownText_0x1ec68f
- db "@"
-
-BTGreetingM18: ; 0x11f52d
- text_jump UnknownText_0x1ec6b1
- db "@"
-
-BTLossM18: ; 0x11f532
- text_jump UnknownText_0x1ec6d0
- db "@"
-
-BTWinM18: ; 0x11f537
- text_jump UnknownText_0x1ec708
- db "@"
-
-BTGreetingM19: ; 0x11f53c
- text_jump UnknownText_0x1ec720
- db "@"
-
-BTLossM19: ; 0x11f541
- text_jump UnknownText_0x1ec73e
- db "@"
-
-BTWinM19: ; 0x11f546
- text_jump UnknownText_0x1ec75b
- db "@"
-
-BTGreetingM20: ; 0x11f54b
- text_jump UnknownText_0x1ec77f
- db "@"
-
-BTLossM20: ; 0x11f550
- text_jump UnknownText_0x1ec798
- db "@"
-
-BTWinM20: ; 0x11f555
- text_jump UnknownText_0x1ec7bb
- db "@"
-
-BTGreetingM21: ; 0x11f55a
- text_jump UnknownText_0x1ec7d8
- db "@"
-
-BTLossM21: ; 0x11f55f
- text_jump UnknownText_0x1ec818
- db "@"
-
-BTWinM21: ; 0x11f564
- text_jump UnknownText_0x1ec837
- db "@"
-
-BTGreetingM22: ; 0x11f569
- text_jump UnknownText_0x1ec858
- db "@"
-
-BTLossM22: ; 0x11f56e
- text_jump UnknownText_0x1ec876
- db "@"
-
-BTWinM22: ; 0x11f573
- text_jump UnknownText_0x1ec898
- db "@"
-
-BTGreetingM23: ; 0x11f578
- text_jump UnknownText_0x1ec8b1
- db "@"
-
-BTLossM23: ; 0x11f57d
- text_jump UnknownText_0x1ec8d5
- db "@"
-
-BTWinM23: ; 0x11f582
- text_jump UnknownText_0x1ec8f0
- db "@"
-
-BTGreetingM24: ; 0x11f587
- text_jump UnknownText_0x1ec911
- db "@"
-
-BTLossM24: ; 0x11f58c
- text_jump UnknownText_0x1ec928
- db "@"
-
-BTWinM24: ; 0x11f591
- text_jump UnknownText_0x1ec949
- db "@"
-
-BTGreetingM25: ; 0x11f596
- text_jump UnknownText_0x1ec969
- db "@"
-
-BTLossM25: ; 0x11f59b
- text_jump UnknownText_0x1ec986
- db "@"
-
-BTWinM25: ; 0x11f5a0
- text_jump UnknownText_0x1ec99b
- db "@"
-
-
-
-
-BTGreetingF1: ; 0x11f5a5
- text_jump UnknownText_0x1ec9bd
- db "@"
-
-BTLossF1: ; 0x11f5aa
- text_jump UnknownText_0x1ec9d9
- db "@"
-
-BTWinF1: ; 0x11f5af
- text_jump UnknownText_0x1ec9f7
- db "@"
-
-BTGreetingF2: ; 0x11f5b4
- text_jump UnknownText_0x1eca0a
- db "@"
-
-BTLossF2: ; 0x11f5b9
- text_jump UnknownText_0x1eca2a
- db "@"
-
-BTWinF2: ; 0x11f5be
- text_jump UnknownText_0x1eca47
- db "@"
-
-BTGreetingF3: ; 0x11f5c3
- text_jump UnknownText_0x1eca64
- db "@"
-
-BTLossF3: ; 0x11f5c8
- text_jump UnknownText_0x1eca82
- db "@"
-
-BTWinF3: ; 0x11f5cd
- text_jump UnknownText_0x1eca9d
- db "@"
-
-BTGreetingF4: ; 0x11f5d2
- text_jump UnknownText_0x1ecabf
- db "@"
-
-BTLossF4: ; 0x11f5d7
- text_jump UnknownText_0x1ecade
- db "@"
-
-BTWinF4: ; 0x11f5dc
- text_jump UnknownText_0x1ecafa
- db "@"
-
-BTGreetingF5: ; 0x11f5e1
- text_jump UnknownText_0x1ecb19
- db "@"
-
-BTLossF5: ; 0x11f5e6
- text_jump UnknownText_0x1ecb37
- db "@"
-
-BTWinF5: ; 0x11f5eb
- text_jump UnknownText_0x1ecb55
- db "@"
-
-BTGreetingF6: ; 0x11f5f0
- text_jump UnknownText_0x1ecb70
- db "@"
-
-BTLossF6: ; 0x11f5f5
- text_jump UnknownText_0x1ecb92
- db "@"
-
-BTWinF6: ; 0x11f5fa
- text_jump UnknownText_0x1ecbb6
- db "@"
-
-BTGreetingF7: ; 0x11f5ff
- text_jump UnknownText_0x1ecbd9
- db "@"
-
-BTLossF7: ; 0x11f604
- text_jump UnknownText_0x1ecbf3
- db "@"
-
-BTWinF7: ; 0x11f609
- text_jump UnknownText_0x1ecc15
- db "@"
-
-BTGreetingF8: ; 0x11f60e
- text_jump UnknownText_0x1ecc39
- db "@"
-
-BTLossF8: ; 0x11f613
- text_jump UnknownText_0x1ecc55
- db "@"
-
-BTWinF8: ; 0x11f618
- text_jump UnknownText_0x1ecc75
- db "@"
-
-BTGreetingF9: ; 0x11f61d
- text_jump UnknownText_0x1ecc92
- db "@"
-
-BTLossF9: ; 0x11f622
- text_jump UnknownText_0x1ecca7
- db "@"
-
-BTWinF9: ; 0x11f627
- text_jump UnknownText_0x1eccc1
- db "@"
-
-BTGreetingF10: ; 0x11f62c
- text_jump UnknownText_0x1eccd7
- db "@"
-
-BTLossF10: ; 0x11f631
- text_jump UnknownText_0x1eccef
- db "@"
-
-BTWinF10: ; 0x11f636
- text_jump UnknownText_0x1ecd0e
- db "@"
-
-BTGreetingF11: ; 0x11f63b
- text_jump UnknownText_0x1ecd2b
- db "@"
-
-BTLossF11: ; 0x11f640
- text_jump UnknownText_0x1ecd4d
- db "@"
-
-BTWinF11: ; 0x11f645
- text_jump UnknownText_0x1ecd6b
- db "@"
-
-BTGreetingF12: ; 0x11f64a
- text_jump UnknownText_0x1ecd8d
- db "@"
-
-BTLossF12: ; 0x11f64f
- text_jump UnknownText_0x1ecdaf
- db "@"
-
-BTWinF12: ; 0x11f654
- text_jump UnknownText_0x1ecdcf
- db "@"
-
-BTGreetingF13: ; 0x11f659
- text_jump UnknownText_0x1ecded
- db "@"
-
-BTLossF13: ; 0x11f65e
- text_jump UnknownText_0x1ece0d
- db "@"
-
-BTWinF13: ; 0x11f663
- text_jump UnknownText_0x1ece2a
- db "@"
-
-BTGreetingF14: ; 0x11f668
- text_jump UnknownText_0x1ece4b
- db "@"
-
-BTLossF14: ; 0x11f66d
- text_jump UnknownText_0x1ece70
- db "@"
-
-BTWinF14: ; 0x11f672
- text_jump UnknownText_0x1ece8a
- db "@"
-
-BTGreetingF15: ; 0x11f677
- text_jump UnknownText_0x1ecea8
- db "@"
-
-BTLossF15: ; 0x11f67c
- text_jump UnknownText_0x1ecec9
- db "@"
-
-BTWinF15: ; 0x11f681
- text_jump UnknownText_0x1ecee8
- db "@"
--- a/misc/battle_tower_5c.asm
+++ /dev/null
@@ -1,1772 +1,0 @@
-BattleTowerRoomMenu: ; 1700b0
-; special
- call InitBattleTowerChallengeRAM
- callba _BattleTowerRoomMenu
- ret
-; 1700ba
-
-Function1700ba: ; 1700ba
- call InitBattleTowerChallengeRAM
- callba Function11811a
- ret
-; 1700c4
-
-Function1700c4: ; 1700c4
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-
- call Function17042c
-
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$be45], a
- xor a
- ld [$be46], a
- ld hl, w3_dffc
- ld de, $aa41
- ld bc, 4
- call CopyBytes
- ld hl, w3_d202Name
- ld de, $aa8e
- ld bc, 7 * $cc ; length of battle tower struct from japanese games?
- call CopyBytes
- ld hl, $aa5d ; some sort of count
- ld a, [hl]
- inc [hl]
- inc hl
- sla a
- sla a
- ld e, a
- ld d, $0
- add hl, de
- ld e, l
- ld d, h
- ld hl, w3_dffc
- ld bc, 4
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- ret
-; 170114
-
-Function170114: ; 170114
- call InitBattleTowerChallengeRAM
- call .Function170121
- callba Function11805f
- ret
-; 170121
-
-.Function170121: ; 170121
- ld a, $5
- call GetSRAMBank
- ld hl, $a948
- ld de, wMisc
- ld bc, $f6 ; 246
- call CopyBytes
- call CloseSRAM
- call Function170c8b
- ret
-; 170139
-
-Function170139: ; 170139
-; Convert the 4-digit decimal number at 5:aa41 into binary
- ld a, $5
- call GetSRAMBank
- ld de, $aa41
- ld h, $0
- ld l, h
- ld bc, 1000
- call .DecToBin
- ld bc, 100
- call .DecToBin
- ld bc, 10
- call .DecToBin
- ld a, [de]
- ld c, a
- ld b, $0
- add hl, bc
- call CloseSRAM
-; Store that number in wMisc
- ld a, h
- ld [wMisc], a
- ld a, l
- ld [wMisc + 1], a
- ld hl, wBT_OTTempPkmn1DVs
- ld a, [PlayerID]
- ld [hli], a
- ld a, [PlayerID + 1]
- ld [hli], a
- ld a, [wSecretID]
- ld [hli], a
- ld a, [wSecretID + 1]
- ld [hli], a
- ld e, l
- ld d, h
- ld hl, PlayerName
- ld bc, 5 ; Japanese name length
- call CopyBytes
- ld bc, PlayerID
- ld de, PlayerGender
- callba GetMobileOTTrainerClass
- ld de, wBT_OTTempPkmn1CaughtGender
- ld a, c
- ld [de], a
- inc de
- ld a, PartyMons % $100
- ld [wcd49], a
- ld a, PartyMons / $100
- ld [wcd4a], a
- ld a, PartyMonNicknames % $100
- ld [wcd4b], a
- ld a, PartyMonNicknames / $100
- ld [wcd4c], a
- ld a, 3
-.CopyLoop:
- push af
- ld a, [wcd49]
- ld l, a
- ld a, [wcd4a]
- ld h, a
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, l
- ld [wcd49], a
- ld a, h
- ld [wcd4a], a
- ld a, [wcd4b]
- ld l, a
- ld a, [wcd4c]
- ld h, a
- ld bc, $0006
- call CopyBytes
- ld a, l
- ld [wcd4b], a
- ld a, h
- ld [wcd4c], a
- pop af
- dec a
- jr nz, .CopyLoop
- ld a, $4
- call GetSRAMBank
- ld hl, $a013
- ld bc, $24
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $a894
- ld bc, 6
- call CopyBytes
- ld hl, wMisc
- ld de, $a948
- ld bc, $f6
- call CopyBytes
- call CloseSRAM
- ret
-; 17020c
-
-.DecToBin: ; 17020c
- ld a, [de]
- inc de
- and a
- ret z
-
-.digit_loop
- add hl, bc
- dec a
- jr nz, .digit_loop
- ret
-; 170215
-
-BattleTowerBattle: ; 170215
- xor a
- ld [wBattleTowerBattleEnded], a
- call _BattleTowerBattle
- ret
-; 17021d
-
-EmptySpecial_17021d: ; 17021d
- ret
-; 17021e
-
-InitBattleTowerChallengeRAM: ; 17021e
- xor a
- ld [wBattleTowerBattleEnded], a
- ld [wNrOfBeatenBattleTowerTrainers], a
- ld [wcf65], a
- ld [wcf66], a
- ret
-; 17022c
-
-_BattleTowerBattle: ; 17022c
-.loop
- call .do_dw
- call DelayFrame
- ld a, [wBattleTowerBattleEnded]
- cp $1
- jr nz, .loop
- ret
-; 17023a
-
-.do_dw ; 17023a
- ld a, [wBattleTowerBattleEnded]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 170249
-
-.dw ; 170249
- dw RunBattleTowerTrainer
- dw SkipBattleTowerTrainer
-; 17024d
-
-RunBattleTowerTrainer: ; 17024d
- ld a, [Options]
- push af
- ld hl, Options
- set BATTLE_SHIFT, [hl] ; SET MODE
-
- ld a, [InBattleTowerBattle]
- push af
- or $1
- ld [InBattleTowerBattle], a
-
- xor a
- ld [wLinkMode], a
- callba TrainerRankings_Healings
- callba HealParty
- call ReadBTTrainerParty
- call Clears5_a89a
-
- predef StartBattle
-
- callba LoadPokemonData
- callba HealParty
- ld a, [wBattleResult]
- ld [ScriptVar], a
- and a
- jr nz, .lost
- ld a, BANK(sNrOfBeatenBattleTowerTrainers)
- call GetSRAMBank
- ld a, [sNrOfBeatenBattleTowerTrainers]
- ld [wNrOfBeatenBattleTowerTrainers], a
- call CloseSRAM
- ld hl, StringBuffer3
- ld a, [wNrOfBeatenBattleTowerTrainers]
- add "1"
- ld [hli], a
- ld a, "@"
- ld [hl], a
-
-.lost
- pop af
- ld [InBattleTowerBattle], a
- pop af
- ld [Options], a
- ld a, $1
- ld [wBattleTowerBattleEnded], a
- ret
-
-
-ReadBTTrainerParty: ; 1702b7
-; Initialise the BattleTower-Trainer and his Pkmn
- call CopyBTTrainer_FromBT_OT_TowBT_OTTemp
-
-; Check the nicknames for illegal characters, and replace bad nicknames
-; with their species names.
- ld de, wBT_OTTempPkmn1Name ; $c643
- ld c, PKMN_NAME_LENGTH
- callba CheckStringForErrors
- jr nc, .skip_mon_1
-
- ld a, [wBT_OTTempPkmn1]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempPkmn1Name ; $c643
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.skip_mon_1
- ld de, wBT_OTTempPkmn2Name ; $c67e
- ld c, PKMN_NAME_LENGTH
- callba CheckStringForErrors
- jr nc, .skip_mon_2
- ld a, [wBT_OTTempPkmn2] ; [$c64e]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempPkmn2Name ; $c67e
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.skip_mon_2
- ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
- ld c, PKMN_NAME_LENGTH
- callba CheckStringForErrors
- jr nc, .skip_mon_3
- ld a, [wBT_OTTempPkmn3] ; [$c689]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.skip_mon_3
-; Add the terminator character to each of these names
- ld a, "@"
- ld [wBT_OTTempPkmn1NameEnd - 1], a ; $c64d
- ld [wBT_OTTempPkmn2NameEnd - 1], a ; $c688
- ld [wBT_OTTempPkmn3NameEnd - 1], a ; $c68a + 57 = $c6c3
-; Fix errors in the movesets
- call CheckBTMonMovesForErrors
-; Repair the trainer name if needed, then copy it to OTPlayerName
- ld de, wBT_OTTempName
- ld c, NAME_LENGTH - 1
- callba CheckStringForErrors
- jr nc, .trainer_name_okay
- ld hl, BT_ChrisName
- jr .done_trainer_name
-
-.trainer_name_okay
- ld hl, wBT_OTTempName ; 0xc608
-
-.done_trainer_name
- ld de, OTPlayerName
- ld bc, NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [de], a
-
- ld hl, wBT_OTTempTrainerClass
- ld a, [hli]
- ld [OtherTrainerClass], a
- ld a, OTPartyMonNicknames % $100
- ld [BGMapBuffer], a
- ld a, OTPartyMonNicknames / $100
- ld [BGMapBuffer + 1], a
-
- ; Copy Pkmn into Memory from the address in hl
- ld de, OTPartyMon1Species
- ld bc, OTPartyCount
- ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has
- ld [bc], a
- inc bc
-.otpartymon_loop
- push af
- ld a, [hl]
- ld [bc], a
- inc bc
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- push de
- ld a, [BGMapBuffer]
- ld e, a
- ld a, [BGMapBuffer + 1]
- ld d, a
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ld a, e
- ld [BGMapBuffer], a
- ld a, d
- ld [BGMapBuffer + 1], a
- pop de
- pop bc
- pop af
- dec a
- and a
- jr nz, .otpartymon_loop
- ld a, -1
- ld [bc], a
- ret
-; 170394
-
-ValidateBTParty: ; 170394
-; Check for and fix errors in party data
- ld hl, wBT_OTTempPkmn1Species
- ld d, BATTLETOWER_NROFPKMNS
-.pkmn_loop
- push de
- push hl
- ld b, h
- ld c, l
- ld a, [hl]
- and a
-idx = $ff
-rept ($ff +- NUM_POKEMON)
- jr z, .invalid
- cp idx
-idx = idx +- 1
-endr
- jr nz, .valid
-
-.invalid
- ld a, SMEARGLE
- ld [hl], a
-
-.valid
- ld [CurSpecies], a
- call GetBaseData
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb] ; s5_b2fb ; max level?
- call CloseSRAM
- ld e, a
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .load
- ld a, [hl]
- cp e
- jr c, .dont_load
- ld a, e
-
-.load
- ld [hl], a
-
-.dont_load
- ld [CurPartyLevel], a
- ld hl, MON_MOVES
- add hl, bc
- ld d, NUM_MOVES - 1
- ld a, [hli]
- and a
- jr z, .not_move
- cp NUM_ATTACKS + 1
- jr nc, .not_move
- jr .valid_move
-
-.not_move
- dec hl
- ld a, POUND
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- jr .done_moves
-
-.valid_move
- ld a, [hl]
- cp NUM_ATTACKS + 1
- jr c, .next
- ld [hl], $0
-
-.next
- inc hl
- dec d
- jr nz, .valid_move
-
-.done_moves
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- push hl
- push de
- ld hl, MON_STAT_EXP - 1
- add hl, bc
- ld b, $1
- predef CalcPkmnStats
- pop de
- pop hl
- dec de
- dec de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- pop hl
- ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
- add hl, bc
- pop de
- dec d
- jp nz, .pkmn_loop
- ret
-; 170426
-
-BT_ChrisName: ; 170426
- db "CHRIS@"
-; 17042c
-
-Function17042c: ; 17042c
- ld hl, w3_d202TrainerData
- ld a, BATTLETOWER_NROFTRAINERS
-.loop
- push af
- push hl
- ld c, BATTLETOWER_TRAINERDATALENGTH / 2
-.loop2
- ; First byte is a comparison value.
- ld a, [hli]
- ld b, a
- ; Second byte is a lookup index.
- ld a, [hli]
- and a
- jr z, .empty
- cp 15
- jr nc, .copy_data
-
- push hl
- ld hl, Unknown_170470
- dec a
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- pop hl
-
- ; If Unknown_170470[a-1] <= b, overwrite the current trainer's data
- ; with Unknown17047e, and exit the inner loop.
- cp b
- jr c, .copy_data
- jr z, .copy_data
- jr .next_iteration
-
-.empty
- ; If a == 0 and b >= $fc, overwrite the current trainer's data with
- ; Unknown17047e, and exit the inner loop.
- ld a, b
- cp $fc
- jr nc, .copy_data
-
-.next_iteration
- dec c
- jr nz, .loop2
- jr .next_trainer
-
-.copy_data
- pop de
- push de
- ld hl, Unknown_17047e
- ld bc, BATTLETOWER_TRAINERDATALENGTH
- call CopyBytes
-
-.next_trainer
- pop hl
- ld de, BATTLE_TOWER_STRUCT_LENGTH
- add hl, de
- pop af
- dec a
- jr nz, .loop
- ret
-; 170470
-
-Unknown_170470:
- db $12
- db $24
- db $45
- db $45
- db $42
- db $42
- db $45
- db $42
- db $27
- db $27
- db $45
- db $27
- db $42
- db $24
-
-Unknown_17047e:
-; see data/battle_tower_2.asm
- db $03, 4
- db $05, 8
- db $03, 5
- db $0e, 6
- db $03, 2
- db $00, 0
- db $39, 7
- db $07, 4
- db $00, 5
- db $04, 7
- db $01, 5
- db $00, 0
- db $0f, 5
- db $14, 7
- db $05, 5
- db $11, 12
- db $0c, 6
- db $06, 4
-
-
-CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
-; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp'
- ld a, [rSVBK]
- push af
- ld a, $3 ; BANK(BT_OTTrainer)
- ld [rSVBK], a
-
- ld hl, BT_OTTrainer ; $d100
- ld de, wBT_OTTemp ; wMisc
- ld bc, BATTLE_TOWER_STRUCT_LENGTH
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_CHALLENGE_IN_PROGESS
- ld [sBattleTowerChallengeState], a
- ld hl, sNrOfBeatenBattleTowerTrainers
- inc [hl]
- call CloseSRAM
-SkipBattleTowerTrainer: ; 1704c9
- ret
-; 1704ca
-
-Function1704ca: ; 1704ca
-; unreferenced mobile function
- ld a, [$be46]
- cp $7
- jr c, .asm_1704d3
- ld a, $6
-
-.asm_1704d3
- ld hl, $afce
- ld de, -$e0
-.asm_1704d9
- and a
- jr z, .asm_1704e0
- add hl, de
- dec a
- jr .asm_1704d9
-
-.asm_1704e0
- ret
-; 1704e1
-
-Function1704e1: ; 1704e1
-; unreferenced special
- call SpeechTextBox
- call FadeToMenu
- call InitBattleTowerChallengeRAM
- call .JumptableLoop
- call CloseSubmenu
- ret
-; 1704f1
-
-.JumptableLoop: ; 1704f1
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
-.loop
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call .DoJumptable
- callba ReloadMapPart
- jr .loop
-
-.done
- ret
-; 170510
-
-.DoJumptable: ; 170510
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 17051f
-
-.dw ; 17051f
- dw .Jumptable_0
- dw .Jumptable_1
- dw .Jumptable_2
-; 170525
-
-.Jumptable_0: ; 170525
- ld a, $5
- call GetSRAMBank
-
- ld hl, $a89c
- ld de, StringBuffer3
- ld bc, $16
- call CopyBytes
-
- ld hl, $a8b2
- ld de, wMisc
- ld bc, $0096
- call CopyBytes
-
- call CloseSRAM
- hlcoord 1, 1
- ld de, StringBuffer3
- call PlaceString
- hlcoord 1, 3
- ld de, .String_Mail
- call PlaceString
- hlcoord 4, 3
- ld de, StringBuffer4
- call PlaceString
- hlcoord 8, 3
- ld de, .String_PastReaders
- call PlaceString
- call .DrawBorder
- call .PlaceTextItems
- jr .NextJumptableFunction
-
-
-.Jumptable_1:
- call SetPalettes
- call .NextJumptableFunction
-
-
-.Jumptable_2:
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressed_a_or_b
- ld a, [hl]
- and B_BUTTON
- jr nz, .pressed_a_or_b
- ld a, [hl]
- and D_UP
- jr nz, .pressed_up
- ld a, [hl]
- and D_DOWN
- jr nz, .pressed_down
- ret
-
-.pressed_up
- ld a, [wNrOfBeatenBattleTowerTrainers]
- and a
- ret z
- sub 15
- ld [wNrOfBeatenBattleTowerTrainers], a
- call .PlaceTextItems
- ret
-
-.pressed_down
- ld a, [wNrOfBeatenBattleTowerTrainers]
- cp 60
- ret z
- add 15
- ld [wNrOfBeatenBattleTowerTrainers], a
- call .PlaceTextItems
- ret
-
-.pressed_a_or_b
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.NextJumptableFunction:
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 1705b7
-
-.DrawBorder: ; 1705b7
- hlcoord 0, 4
- ld a, $79
- ld [hli], a
- ld c, SCREEN_WIDTH - 2
-.top_border_loop
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .top_border_loop
- ld a, $7b
- ld [hli], a
- ld de, SCREEN_WIDTH
- ld c, 12
-.left_border_loop
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .left_border_loop
- ld a, $7d
- ld [hli], a
- ld c, SCREEN_WIDTH - 2
-.bottom_border_loop
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .bottom_border_loop
- ld a, $7e
- ld [hl], a
- ld de, -SCREEN_WIDTH
- add hl, de
- ld c, 12
-.right_border_loop
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .right_border_loop
- ret
-; 1705f0
-
-.PlaceTextItems: ; 1705f0
- call .ClearBox
- call .PlaceUpDownArrows
- ld a, $50
- ld [wcd4e], a
- ld hl, wMisc
- ld a, [wNrOfBeatenBattleTowerTrainers]
- ld c, a
- xor a
- ld b, a
- add hl, bc
- push hl
- pop bc
- hlcoord 1, 6
- ld a, 6
-.loop1
- push af
- push hl
- ld a, 3
-.loop2
- push af
- ld de, wcd49
- ld a, [bc]
- and a
- jr z, .fill_with_e3
-; .copy
- ld a, 5
-.loop3a
- push af
- ld a, [bc]
- ld [de], a
- inc bc
- inc de
- pop af
- dec a
- jr nz, .loop3a
- jr .rejoin
-
-.fill_with_e3
- ld a, 5
-.loop3b
- push af
- ld a, $e3
- ld [de], a
- inc de
- inc bc
- pop af
- dec a
- jr nz, .loop3b
-
-.rejoin
- ld de, wcd49
- push bc
- call PlaceString
- ld de, 6
- add hl, de
- pop bc
- pop af
- dec a
- jr nz, .loop2
- pop hl
- ld de, $28
- add hl, de
- pop af
- dec a
- jr nz, .loop1
- ret
-; 17064b
-
-.ClearBox: ; 17064b
- hlcoord 1, 5
- xor a
- ld b, 12
-.clearbox_row
- ld c, SCREEN_WIDTH - 2
-.clearbox_column
- ld [hli], a
- dec c
- jr nz, .clearbox_column
- inc hl
- inc hl
- dec b
- jr nz, .clearbox_row
- ret
-; 17065d
-
-.PlaceUpDownArrows: ; 17065d
- ld a, [wNrOfBeatenBattleTowerTrainers]
- and a
- jr z, .nope
- hlcoord 18, 5
- ld a, "▲"
- ld [hl], a
-
-.nope
- ld a, [wNrOfBeatenBattleTowerTrainers]
- cp 60
- ret z
- hlcoord 18, 16
- ld a, "▼"
- ld [hl], a
- ret
-; 170676
-
-.String_Mail: ; 170676
- db "ルーム@"
-; 17067a
-
-.String_PastReaders: ; 17067a
- db "れきだいりーダーいちらん@"
-; 170687
-
-BattleTowerAction: ; 170687
- ld a, [ScriptVar]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 170696
-
-
-.dw ; 170696 (5c:4696)
- dw BattleTowerAction_CheckExplanationRead ; 0x00
- dw BattleTowerAction_SetExplanationRead ; 0x01
- dw BattleTowerAction_GetChallengeState ; 0x02
- dw BattleTowerAction_SetByteToQuickSaveChallenge ; 0x03
- dw BattleTowerAction_SetByteToCancelChallenge ; 0x04
- dw Function1707ac ; 0x05
- dw Function1707f4 ; 0x06
- dw SaveBattleTowerLevelGroup ; 0x07
- dw LoadBattleTowerLevelGroup ; 0x08
- dw BattleTower_CheckSaveFileExistsAndIsYours ; 0x09
- dw Function1708b1 ; 0x0a
- dw CheckMobileEventIndex ; 0x0b
- dw Function1708c8 ; 0x0c
- dw Function1708f0 ; 0x0d
- dw BattleTowerAction_EggTicket ; 0x0e
- dw Function1709aa ; 0x0f
- dw Function1709bb ; 0x10
- dw Function170a9c ; 0x11
- dw Function170aa0 ; 0x12
- dw Function170aaf ; 0x13
- dw Function170abe ; 0x14
- dw Function170ad7 ; 0x15
- dw Function170807 ; 0x16
- dw Function17081d ; 0x17
- dw BattleTowerAction_LevelCheck ; 0x18
- dw BattleTowerAction_UbersCheck ; 0x19
- dw ResetBattleTowerTrainersSRAM ; 0x1a
- dw BattleTower_GiveReward ; 0x1b
- dw Function17071b ; 0x1c
- dw Function170729 ; 0x1d
- dw BattleTower_RandomlyChooseReward ; 0x1e
- dw BattleTower_SaveOptions ; 0x1f
-
-
-; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
-ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
- ld a, BANK(sBTTrainers)
- call GetSRAMBank
-
- ld a, $ff
- ld hl, sBTTrainers
- ld bc, BATTLETOWER_NROFTRAINERS
- call ByteFill
-
- xor a
- ld [sNrOfBeatenBattleTowerTrainers], a
-
- call CloseSRAM
-
- ret
-
-BattleTower_GiveReward: ; 1706ee (5c:46ee) BattleTowerAction $1b
- ld a, BANK(sBattleTowerReward)
- call GetSRAMBank
-
- ld a, [sBattleTowerReward]
- call CloseSRAM
- ld [ScriptVar], a
- ld hl, NumItems
- ld a, [hli]
- cp MAX_ITEMS
- ret c
- ld b, MAX_ITEMS
- ld a, [ScriptVar]
- ld c, a
-.loop
- ld a, [hli]
- cp c
- jr nz, .next
- ld a, [hl]
- cp 95
- ret c
-.next
- inc hl
- dec b
- jr nz, .loop
- ld a, POTION
- ld [ScriptVar], a
- ret
-
-Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_WON_CHALLENGE
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-Function170729: ; 170729 (5c:4729) BattleTowerAction $1d
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_RECEIVED_REWARD
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-BattleTower_SaveOptions: ; 170737 (5c:4737) BattleTowerAction $1f
- callba SaveOptions
- ret
-
-BattleTower_RandomlyChooseReward: ; 17073e (5c:473e) BattleTowerAction $1e
-; Generate a random stat boosting item.
-.loop
- call Random
- ld a, [hRandomAdd]
- and $7
- cp 6
- jr c, .okay
- sub 6
-.okay
- add HP_UP
- cp LUCKY_PUNCH
- jr z, .loop
- push af
- ld a, BANK(sBattleTowerReward)
- call GetSRAMBank
- pop af
- ld [sBattleTowerReward], a
- call CloseSRAM
- ret
-
-BattleTowerAction_CheckExplanationRead: ; 17075f (5c:475f) BattleTowerAction $00
- call BattleTower_CheckSaveFileExistsAndIsYours
- ld a, [ScriptVar]
- and a
- ret z
-
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- and $2
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-BattleTowerAction_GetChallengeState: ; 170778 (5c:4778) BattleTowerAction $02
- ld hl, sBattleTowerChallengeState
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, [hl]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-BattleTowerAction_SetExplanationRead: ; 170788 (5c:4788) BattleTowerAction $01
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- or $2
- ld [s1_be4f], a
- call CloseSRAM
- ret
-
-BattleTowerAction_SetByteToQuickSaveChallenge: ; 170799 (5c:4799) BattleTowerAction $03
- ld c, BATTLETOWER_SAVED_AND_LEFT
- jr asm_17079f
-
-BattleTowerAction_SetByteToCancelChallenge: ; 17079d (5c:479d) BattleTowerAction $04
- ld c, BATTLETOWER_NO_CHALLENGE
-asm_17079f: ; 17079f (5c:479f)
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, c
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-Function1707ac: ; 1707ac (5c:47ac) BattleTowerAction $05
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8c]
- ld b, a
- ld a, [$be46]
- ld [ScriptVar], a
- call CloseSRAM
- and a
- ret z
- ld a, b
- cp $2
- jr nc, .asm_1707ef
- push bc
- call UpdateTime
- pop bc
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8b]
- call CloseSRAM
- ld c, a
- ld a, [CurDay]
- sub c
- jr c, .asm_1707e5
- cp $8
- jr nc, .asm_1707ef
- ld a, b
- and a
- jr nz, .asm_1707ef
- ret
-.asm_1707e5
- ld hl, CurDay
- ld a, $8c
- sub c
- add [hl]
- cp $8
- ret c
-.asm_1707ef
- ld a, $8
- ld [ScriptVar], a
-
-Function1707f4: ; 1707f4 (5c:47f4) BattleTowerAction $06
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$be46], a
- ld [$aa8b], a
- ld [$aa8c], a
- call CloseSRAM
- ret
-
-Function170807: ; 170807 (5c:4807) BattleTowerAction $16
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [CurDay]
- ld [$b2f9], a
- xor a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-Function17081d: ; 17081d (5c:481d) BattleTowerAction $17
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$b2f9]
- ld c, a
- ld a, [$b2fa]
- ld b, a
- call CloseSRAM
- cp $2
- jr nc, .asm_170853
- push bc
- call UpdateTime
- pop bc
- ld a, [CurDay]
- sub c
- jr c, .asm_170849
- cp $b
- jr nc, .asm_170853
- ld a, b
- and a
- jr nz, .asm_170853
- ret
-
-.asm_170849
- ld hl, CurDay
- ld a, 140
- sub c
- add [hl]
- cp $b
- ret c
-.asm_170853
- ld a, $1
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$b2f9], a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-SaveBattleTowerLevelGroup: ; 170868 (5c:4868) BattleTowerAction $07
- ld a, BANK(sBTChoiceOfLevelGroup)
- call GetSRAMBank
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [wBTChoiceOfLvlGroup]
- ld [sBTChoiceOfLevelGroup], a
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-LoadBattleTowerLevelGroup: ; 170881 (5c:4881) BattleTowerAction $08 ; Load level group choice
- ld a, BANK(sBTChoiceOfLevelGroup)
- call GetSRAMBank
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [sBTChoiceOfLevelGroup]
- ld [wBTChoiceOfLvlGroup], a
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-BattleTower_CheckSaveFileExistsAndIsYours: ; 17089a BattleTowerAction $09
- ld a, [wSaveFileExists]
- and a
- jr z, .nope
- callba CompareLoadedAndSavedPlayerID
- jr z, .yes
- xor a
- jr .nope
-
-.yes
- ld a, $1
-
-.nope
- ld [ScriptVar], a
- ret
-; 1708b1
-
-
-Function1708b1: ; 1708b1 (5c:48b1) BattleTowerAction $0a
- xor a
- ld [MusicFade], a
- call MaxVolume
- ret
-
-CheckMobileEventIndex: ; 1708b9 (5c:48b9) BattleTowerAction $0b something to do with GS Ball
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- ld a, [sMobileEventIndex]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function1708c8: ; 1708c8 (5c:48c8) BattleTowerAction $0c
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [CurDay]
- ld [$aa8b], a
- xor a
- ld [$aa8c], a
- ld a, [$aa5d]
- cp $2
- jr nc, .asm_1708ec
- ld a, [CurDay]
- ld [$aa48], a
- ld a, $1
- ld [$aa47], a
-.asm_1708ec
- call CloseSRAM
- ret
-
-Function1708f0: ; 1708f0 (5c:48f0) BattleTowerAction $0d
- xor a
- ld [ScriptVar], a
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [$aa48]
- ld c, a
- ld a, [$aa47]
- call CloseSRAM
- and a
- ret z
- ld hl, CurDay
- ld a, c
- cp [hl]
- jr nz, Function170923
- ld a, $5
- call GetSRAMBank
- ld a, [$aa5d]
- call CloseSRAM
- cp $5
- ret c
- ld a, $1
- ld [ScriptVar], a
- ret
-
-
-Function170923: ; 170923
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$aa48], a
- ld [$aa47], a
- ld hl, $aa5d
- ld bc, $0011
- call ByteFill
- call CloseSRAM
- ret
-; 17093c
-
-
-BattleTowerAction_EggTicket: ; 17093c (5c:493c) BattleTowerAction $0e
- xor a
- ld [ScriptVar], a
- ld a, EGG_TICKET
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- ret nc
- ld a, [PartyCount]
- ld b, 0
- ld c, a
- ld hl, PartySpecies
-.loop
- ld a, [hli]
- cp EGG
- jr nz, .not_egg
- push hl
- ld hl, PartyMonOT
- ld de, $6 ; NAME_LENGTH
- ld a, b
- and a
- jr z, .skip
-.loop2
- add hl, de
- dec a
- jr nz, .loop2
-.skip
- ld de, String_1709a4
- ld a, $6 ; NAME_LENGTH
-.compare_loop
- push af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .different
- pop af
- dec a
- jr nz, .compare_loop
-rept 4
- dec hl
-endr
- ld a, "@"
- ld [hli], a
- ld [hli], a
- pop hl
- ld a, EGG_TICKET
- ld [CurItem], a
- ld a, 1
- ld [wItemQuantityChangeBuffer], a
- ld a, -1
- ld [CurItemQuantity], a
- ld hl, NumItems
- call TossItem
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.different
- pop af
- pop hl
-.not_egg
- inc b
- dec c
- jr nz, .loop
- ret
-; 1709a4 (5c:49a4)
-
-String_1709a4: ; 1709a4
- db "なぞナゾ@@"
-
-Function1709aa: ; 1709aa (5c:49aa) BattleTowerAction $0f
- ld a, [rSVBK]
- push af
- ld a, BANK(w3_d090)
- ld [rSVBK], a
- ld a, [w3_d090]
- ld [ScriptVar], a
- pop af
- ld [rSVBK], a
- ret
-
-Function1709bb: ; 1709bb (5c:49bb) BattleTowerAction $10
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$a800]
- call CloseSRAM
- cp 6
- jr nc, .invalid
- ld e, a
- ld d, 0
- ld hl, Jumptable_1709e7
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.invalid
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ret
-; 1709e7 (5c:49e7)
-
-Jumptable_1709e7: ; 1709e7
- dw .NoAction
- dw .NoAction
- dw .DoAction1
- dw .DoAction1
- dw .Action4
- dw .Action5
-; 1709f3
-
-.DoAction1: ; 1709f3
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
-
-.NoAction: ; 170a00
- ret
-; 170a01
-
-.Action4: ; 170a01
- ld a, $5
- call GetSRAMBank
- ld hl, $b023
- ld de, wMisc
- ld bc, $0069
- call CopyBytes
- ld a, [$a825]
- ld [wcd30], a
- ld a, [$a826]
- ld [wcd31], a
- call CloseSRAM
- callba Function11b6b4
- callba Function17d0f3
- ld a, $1
- ld [ScriptVar], a
- ret
-; 170a33
-
-.Action5: ; 170a33
- ld a, $0
- call GetSRAMBank
- ld hl, wRTC
- ld de, wMisc
- ld bc, $0004
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $b08c
- ld de, wMisc
- ld c, $4
-.compare_loop
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .different
- inc hl
- dec c
- jr nz, .compare_loop
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .no_trigger
- ld a, [de]
- and a
- ret nz
-
-.no_trigger
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.different
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ld [ScriptVar], a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .no_trigger_2
- xor a
- ld [de], a
-
-.no_trigger_2
- ret
-; 170a9c
-
-Function170a9c: ; 170a9c (5c:4a9c) BattleTowerAction $11
- ld c, $0
- jr asm_170aa2
-
-Function170aa0: ; 170aa0 (5c:4aa0) BattleTowerAction $12
- ld c, $1
-asm_170aa2: ; 170aa2 (5c:4aa2)
- ld a, $5
- call GetSRAMBank
- ld a, c
- ld [$aa8d], a
- call CloseSRAM
- ret
-
-Function170aaf: ; 170aaf (5c:4aaf) BattleTowerAction $13
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8d]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14
- call BattleTower_CheckSaveFileExistsAndIsYours
- ld a, [ScriptVar]
- and a
- ret z
-
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- and $1
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- or $1
- ld [s1_be4f], a
- call CloseSRAM
- ret
-
-BattleTowerAction_LevelCheck: ; 170ae8 (5c:4ae8) BattleTowerAction $18
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, 10
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba BattleTower_LevelCheck ; level check
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
-BattleTowerAction_UbersCheck: ; 170b16 (5c:4b16) BattleTowerAction $19
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, 10
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba BattleTower_UbersCheck
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
-Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
- callba Function_LoadOpponentTrainerAndPokemons
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld hl, BT_OTTrainerClass
- ld a, [hl]
- dec a
- ld c, a
- ld b, $0
- pop af
- ld [rSVBK], a
- ld hl, .Sprites
- add hl, bc
- ld a, [hl]
- ld [wBTTempOTSprite], a
-
-; Load sprite of the opponent trainer
-; because s/he is chosen randomly and appears out of nowhere
- ld a, [ScriptVar]
- dec a
- sla a
- ld e, a
- sla a
- sla a
- sla a
- ld c, a
- ld b, 0
- ld d, 0
- ld hl, MapObjects
- add hl, bc
- inc hl
- ld a, [wBTTempOTSprite]
- ld [hl], a
- ld hl, UsedSprites
- add hl, de
- ld [hli], a
- ld [hUsedSpriteIndex], a
- ld a, [hl]
- ld [hUsedSpriteTile], a
- callba GetUsedSprite
- ret
-; 170b90
-
-.Sprites:
- db SPRITE_FALKNER
- db SPRITE_WHITNEY
- db SPRITE_BUGSY
- db SPRITE_MORTY
- db SPRITE_PRYCE
- db SPRITE_JASMINE
- db SPRITE_CHUCK
- db SPRITE_CLAIR
- db SPRITE_SILVER
- db SPRITE_OAK
- db SPRITE_WILL
- db SPRITE_CHRIS
- db SPRITE_BRUNO
- db SPRITE_KAREN
- db SPRITE_KOGA
- db SPRITE_LANCE
- db SPRITE_BROCK
- db SPRITE_MISTY
- db SPRITE_SURGE
- db SPRITE_SCIENTIST
- db SPRITE_ERIKA
- db SPRITE_YOUNGSTER
- db SPRITE_YOUNGSTER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_JANINE
- db SPRITE_COOLTRAINER_M
- db SPRITE_COOLTRAINER_F
- db SPRITE_BUENA
- db SPRITE_SUPER_NERD
- db SPRITE_ROCKET
- db SPRITE_GENTLEMAN
- db SPRITE_BUENA
- db SPRITE_TEACHER
- db SPRITE_SABRINA
- db SPRITE_BUG_CATCHER
- db SPRITE_FISHER
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_SAILOR
- db SPRITE_SUPER_NERD
- db SPRITE_BLUE
- db SPRITE_ROCKER
- db SPRITE_POKEFAN_M
- db SPRITE_BIKER
- db SPRITE_BLAINE
- db SPRITE_PHARMACIST
- db SPRITE_FISHER
- db SPRITE_SUPER_NERD
- db SPRITE_BLACK_BELT
- db SPRITE_ROCKET
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_YOUNGSTER
- db SPRITE_ROCKET_GIRL
- db SPRITE_SAGE
- db SPRITE_GRANNY
- db SPRITE_ROCKER
- db SPRITE_POKEFAN_M
- db SPRITE_KIMONO_GIRL
- db SPRITE_TWIN
- db SPRITE_POKEFAN_F
- db SPRITE_RED
- db SPRITE_BLUE
- db SPRITE_OFFICER
- db SPRITE_ROCKET_GIRL
-
-ret_170bd2: ; 170bd2
- ret
-; 170bd3
-
-SpecialCheckForBattleTowerRules: ; 170bd3
- callba CheckForBattleTowerRules
- jr c, .asm_170bde
- xor a
- jr .asm_170be0
-
-.asm_170bde
- ld a, $1
-
-.asm_170be0
- ld [ScriptVar], a
- ret
-; 170be4
--- a/misc/crystal_misc.asm
+++ /dev/null
@@ -1,931 +1,0 @@
-INCLUDE "includes.asm"
-
-
-SECTION "Misc Crystal", ROMX
-
-MobileAdapterGFX::
-INCBIN "gfx/mobile/mobile_adapter.2bpp"
-
-
-Function17a68f:: ; 17a68f (5e:668f)
- call Function17a6a8
- call Function17a751
- ld hl, $d088
- bit 5, [hl]
- jr z, .asm_17a6a6
- ld de, StringBuffer1 ; $d073
- push de
- call Function17a721
- pop de
- xor a
- ret
-
-.asm_17a6a6
- scf
- ret
-
-Function17a6a8: ; 17a6a8 (5e:66a8)
- push de
- push bc
- ld hl, StringBuffer2 ; $d086
- ld bc, $a
- xor a
- call ByteFill
- ld hl, Buffer1
- ld bc, $10
- ld a, $ff
- call ByteFill
- pop bc
- ld a, c
- and a
- jr z, .asm_17a6c9
- ld hl, $d088
- set 4, [hl]
-.asm_17a6c9
- pop de
- call Function17a6f5
- call Function17aba0
- callba Function106464
- call Function17ac0c
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- call Function17abcf
- callba LoadOW_BGPal7
- callba Function49420
- call SetPalettes
- call DelayFrame
- ret
-
-Function17a6f5: ; 17a6f5 (5e:66f5)
- ld hl, Buffer1
- ld c, $0
- ld b, $8
-.asm_17a6fc
- ld a, [de]
- call Function17a713
- jr c, .asm_17a70e
- ld a, [de]
- swap a
- call Function17a713
- jr c, .asm_17a70e
- inc de
- dec b
- jr nz, .asm_17a6fc
-.asm_17a70e
- ld a, c
- ld [$d08c], a
- ret
-
-Function17a713: ; 17a713 (5e:6713)
- and $f
- cp $a
- jr nc, .asm_17a71d
- ld [hli], a
- inc c
- and a
- ret
-
-.asm_17a71d
- ld [hl], $ff
- scf
- ret
-
-Function17a721: ; 17a721 (5e:6721)
- push de
- ld h, d
- ld l, e
- ld bc, $8
- ld a, $ff
- call ByteFill
- pop de
- ld hl, Buffer1
- ld b, $8
-.asm_17a732
- ld c, $0
- ld a, [hli]
- cp $a
- jr nc, .asm_17a748
- ld c, a
- ld a, [hli]
- cp $a
- jr nc, .asm_17a74c
- swap a
- or c
- ld [de], a
- inc de
- dec b
- jr nz, .asm_17a732
- ret
-
-.asm_17a748
- ld a, $ff
- ld [de], a
- ret
-
-.asm_17a74c
- ld a, $f0
- or c
- ld [de], a
- ret
-
-Function17a751: ; 17a751 (5e:6751)
- xor a
- ld [$d087], a
-.asm_17a755
- call Function17a781
- call Function17a7ae
- call Function17a97b
- call Function17a770
- call Function17a78f
- ld hl, $d08f
- inc [hl]
- ld a, [$d087]
- bit 7, a
- jr z, .asm_17a755
- ret
-
-Function17a770: ; 17a770 (5e:6770)
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- call HideSprites
- call Function17a9cb
- pop af
- ld [hOAMUpdate], a
- ret
-
-Function17a781: ; 17a781 (5e:6781)
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call JoyTextDelay
- pop af
- ld [hInMenu], a
- ret
-
-Function17a78f: ; 17a78f (5e:678f)
- ld hl, $d088
- bit 7, [hl]
- res 7, [hl]
- jr nz, .asm_17a79f
- callba HDMATransferTileMapToWRAMBank3
- ret
-
-.asm_17a79f
- callba ReloadMapPart
- ret
-; 17a7a6 (5e:67a6)
-
-Function17a7a6: ; 17a7a6
- ld a, [$d087]
- inc a
- ld [$d087], a
- ret
-
-Function17a7ae: ; 17a7ae (5e:67ae)
- ld a, [$d087]
- ld hl, Jumptable_17a7b6
- rst JumpTable
- ret
-
-Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
- dw Function17a7c2
- dw Function17a7cd
- dw Function17a7d8
- dw Function17a7ff
- dw Function17a81a
- dw Function17a7f4
-
-
-Function17a7c2: ; 17a7c2 (5e:67c2)
- ld a, $4
- call Function17aad3
- ld a, $1
- ld [$d087], a
- ret
-
-Function17a7cd: ; 17a7cd (5e:67cd)
- call Function17a83c
- call Function17a8ae
- ret c
- call Function17a848
- ret
-
-Function17a7d8: ; 17a7d8 (5e:67d8)
- call Function17a83c
- call Function17a848
- ld hl, $d08b
- dec [hl]
- ret nz
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld a, $1
- ld [$d087], a
- ret
-
-Function17a7f4: ; 17a7f4 (5e:67f4)
- ld hl, $d08b
- dec [hl]
- ret nz
- ld hl, $d087
- set 7, [hl]
- ret
-
-Function17a7ff: ; 17a7ff (5e:67ff)
- ld hl, $d08b
- dec [hl]
- ret nz
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- set 5, [hl]
- ld hl, $d087
- set 7, [hl]
- ret
-
-Function17a81a: ; 17a81a (5e:681a)
- call IsSFXPlaying
- ret nc
- ld a, [hJoyPressed]
- and $3
- ret z
- call ExitMenu
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- res 6, [hl]
- ld a, $1
- ld [$d087], a
- ret
-
-Function17a83c: ; 17a83c (5e:683c)
- ld a, [hJoyLast]
- and $f0
- ld c, a
- ld a, [hJoyPressed]
- and $b
- or c
- ld c, a
- ret
-
-Function17a848: ; 17a848 (5e:6848)
- ld a, c
- and $60
- cp $60
- jr z, .asm_17a876
- ld a, c
- and $50
- cp $50
- jr z, .asm_17a87d
- ld a, c
- and $a0
- cp $a0
- jr z, .asm_17a884
- ld a, c
- and $90
- cp $90
- jr z, .asm_17a88b
- bit 6, c
- jr nz, .asm_17a892
- bit 7, c
- jr nz, .asm_17a899
- bit 5, c
- jr nz, .asm_17a8a0
- bit 4, c
- jr nz, .asm_17a8a7
- xor a
- ret
-
-.asm_17a876
- ld a, $9
- call Function17aad0
- scf
- ret
-
-.asm_17a87d
- ld a, $a
- call Function17aad0
- scf
- ret
-
-.asm_17a884
- ld a, $b
- call Function17aad0
- scf
- ret
-
-.asm_17a88b
- ld a, $c
- call Function17aad0
- scf
- ret
-
-.asm_17a892
- ld a, $5
- call Function17aad0
- scf
- ret
-
-.asm_17a899
- ld a, $6
- call Function17aad0
- scf
- ret
-
-.asm_17a8a0
- ld a, $7
- call Function17aad0
- scf
- ret
-
-.asm_17a8a7
- ld a, $8
- call Function17aad0
- scf
- ret
-
-Function17a8ae: ; 17a8ae (5e:68ae)
- bit 1, c
- jr nz, .asm_17a8bc
- bit 0, c
- jr nz, .asm_17a8cc
- bit 3, c
- jr nz, .asm_17a8d7
- xor a
- ret
-
-.asm_17a8bc
- ld a, $b
- ld [$d08a], a
- call Function17aa98
- call Function17a943
- call Function17aa88
- scf
- ret
-
-.asm_17a8cc
- call Function17aad7
- call Function17aa98
- call Function17a8de
- scf
- ret
-
-.asm_17a8d7
- ld a, $c
- call Function17aad3
- scf
- ret
-
-Function17a8de: ; 17a8de (5e:68de)
- ld a, $2
- call Function17aae0
- ld a, [hl]
- cp $f1
- jr z, .asm_17a8fd
- cp $f0
- jr z, .asm_17a904
- cp $f2
- jr z, .asm_17a911
- ld e, a
- call Function17a964
- ld a, $2
- ld [$d087], a
- call Function17aa88
- ret
-
-.asm_17a8fd
- call Function17a943
- call Function17aa88
- ret
-
-.asm_17a904
- call Function17aad7
- call Function17aa98
- call Function17a91e
- call Function17aa88
- ret
-
-.asm_17a911
- call Function17aa98
- ld a, $5
- ld [$d087], a
- xor a
- call Function17aa88
- ret
-
-Function17a91e: ; 17a91e (5e:691e)
- ld a, [$d08c]
- cp $7
- jr c, .asm_17a92c
- ld a, $3
- ld [$d087], a
- xor a
- ret
-
-.asm_17a92c
- call LoadStandardMenuDataHeader
- call Function17a99e
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- set 6, [hl]
- ld a, $4
- ld [$d087], a
- scf
- ret
-
-Function17a943: ; 17a943 (5e:6943)
- ld a, [$d08c]
- and a
- jr z, .asm_17a95d
- dec a
- ld [$d08c], a
- ld c, a
- ld b, $0
- ld hl, Buffer1
- add hl, bc
- ld [hl], $ff
- ld a, $2
- ld [$d087], a
- and a
- ret
-
-.asm_17a95d
- ld a, $5
- ld [$d087], a
- xor a
- ret
-
-Function17a964: ; 17a964 (5e:6964)
- ld a, [$d08c]
- cp $10
- jr nc, .asm_17a979
- ld c, a
- ld b, $0
- inc a
- ld [$d08c], a
- ld hl, Buffer1
- add hl, bc
- ld [hl], e
- and a
- ret
-
-.asm_17a979
- scf
- ret
-
-Function17a97b: ; 17a97b (5e:697b)
- hlcoord 1, 1
- lb bc, 2, 18
- call ClearBox
- hlcoord 3, 2
- ld de, Buffer1
- ld a, [$d08c]
- and a
- ret z
- ld c, a
-.asm_17a990
- ld a, [de]
- inc de
- cp $a
- jr nc, .asm_17a99d
- add $f6
- ld [hli], a
- dec c
- jr nz, .asm_17a990
- ret
-
-.asm_17a99d
- ret
-
-Function17a99e: ; 17a99e (5e:699e)
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function17ac46
- hlcoord 2, 14
- ld de, String_17a9b2
- call PlaceString
- ret
-; 17a9b2 (5e:69b2)
-
-String_17a9b2: ; 17a9b2
- db "でんわばんごうが ただしく"
- next "はいって いません!"
- db "@"
-; 17a9cb
-
-Function17a9cb: ; 17a9cb (5e:69cb)
- ld de, Sprites ; $c400
- ld hl, $d088
- bit 6, [hl]
- jr nz, .bit_6_set
- call Function17a9e3
- call Function17aa22
- call Function17a9f5
- ret
-
-.bit_6_set
- call Function17a9e3
- ret
-
-Function17a9e3: ; 17a9e3 (5e:69e3)
- ld a, $3
- ld [$d08e], a
- ld hl, Unknown_17aa77
- ld b, $8
- ld c, $8
- ld a, $5
- call Function17aa4a
- ret
-
-Function17a9f5: ; 17a9f5 (5e:69f5)
- ld a, [$d08c]
- cp $10
- ret nc
- ld a, [$d08f]
- swap a
- and $1
- add $1
- ld [$d08e], a
- ld a, [$d08c]
- cp $10
- jr c, .okay
- dec a
-.okay
- ld c, $8
- call SimpleMultiply
- add $18
- ld b, a
- ld c, $11
- ld hl, Unknown_17aa72
- ld a, $4
- call Function17aa4a
- ret
-
-Function17aa22: ; 17aa22 (5e:6a22)
- ld a, $0
- ld [$d08e], a
- push de
- ld a, $3
- call Function17aae0
- add a
- add a
- add a
- add $0
- push af
- ld a, $4
- call Function17aae0
- add a
- add a
- add a
- add $8
- ld c, a
- pop af
- ld b, a
- pop de
- ld a, $0
- ld hl, Unknown_17aa77
- call Function17aa4a
- ret
-
-Function17aa4a: ; 17aa4a (5e:6a4a)
- ld [$d08d], a
- ld a, b
- add $8
- ld b, a
- ld a, c
- add $10
- ld c, a
- ld a, [hli]
-.loop
- push af
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [$d08d]
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [$d08e]
- or [hl]
- inc hl
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .loop
- ret
-; 17aa72 (5e:6a72)
-
-Unknown_17aa72: ; 17aa72
- db 1
- db 0, 0, 0, 0
-; 17aa77
-
-Unknown_17aa77: ; 17aa77
- db 4
- db 0, 0, 0, 0
- db 0, 8, 1, 0
- db 8, 0, 2, 0
- db 8, 8, 3, 0
-; 17aa88
-
-Function17aa88: ; 17aa88 (5e:6a88)
- jr c, asm_17aa91
- ld de, SFX_SWITCH_POKEMON
- call PlaySFX
- ret
-
-asm_17aa91: ; 17aa91 (5e:6a91)
- ld de, SFX_WRONG
- call PlaySFX
- ret
-
-Function17aa98: ; 17aa98 (5e:6a98)
- ld a, $5
- ld [$d08b], a
- call Function17aaa9
- call Function17aac3
- ld hl, $d088
- set 7, [hl]
- ret
-
-Function17aaa9: ; 17aaa9 (5e:6aa9)
- ld a, $3
- call Function17aae3
- ld c, a
- ld b, $0
- hlcoord 0, 0, AttrMap
- add hl, bc
- push hl
- ld a, $4
- call Function17aae3
- ld bc, $14
- pop hl
- call AddNTimes
- ret
-
-Function17aac3: ; 17aac3 (5e:6ac3)
- ld a, $b
- push hl
- ld [hli], a
- ld [hli], a
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- ld [hli], a
- ld [hli], a
- ret
-
-Function17aad0: ; 17aad0 (5e:6ad0)
- call Function17aae0
-
-Function17aad3: ; 17aad3 (5e:6ad3)
- ld [$d089], a
- ret
-
-Function17aad7: ; 17aad7 (5e:6ad7)
- push af
- ld a, [$d089]
- ld [$d08a], a
- pop af
- ret
-
-Function17aae0: ; 17aae0 (5e:6ae0)
- call Function17aad7
-
-Function17aae3: ; 17aae3 (5e:6ae3)
- push af
- ld a, [$d08a]
- ld bc, $d
- ld hl, Unknown_17aaf7
- call AddNTimes
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ret
-; 17aaf7 (5e:6af7)
-
-Unknown_17aaf7: ; 17aaf7
- db $0, $0, $1, $6, $5, $9, $3, $2, $1, $2, $1, $2, $4
- db $0, $0, $2, $9, $5, $a, $4, $0, $2, $a, $a, $3, $5
- db $0, $0, $3, $c, $5, $b, $5, $1, $0, $1, $0, $4, $0
- db $0, $0, $4, $6, $8, $0, $6, $5, $4, $5, $1, $5, $7
- db $0, $0, $5, $9, $8, $1, $7, $3, $5, $0, $2, $6, $8
- db $0, $0, $6, $c, $8, $2, $8, $4, $3, $1, $3, $7, $3
- db $0, $0, $7, $6, $b, $3, $9, $8, $7, $8, $4, $8, $a
- db $0, $0, $8, $9, $b, $4, $a, $6, $8, $3, $5, $9, $b
- db $0, $0, $9, $c, $b, $5, $b, $7, $6, $4, $6, $a, $6
- db $0, $0,$f2, $6, $e, $6, $0, $c, $a, $c, $7, $c, $0
- db $0, $0, $0, $9, $e, $7, $1, $9, $b, $6, $8, $1, $1
- db $0, $0,$f1, $c, $e, $8, $2, $a, $c, $7, $c, $2, $c
- db $0, $0,$f0,$10, $e, $c, $c, $b, $9, $b, $9, $b, $9
-; 17aba0
-
-Function17aba0: ; 17aba0 (5e:6ba0)
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
-
- ld hl, VTiles5 tile $00
- ld de, GFX_17afa5
- lb bc, BANK(GFX_17afa5), $80
- call Get2bpp
-
- pop af
- ld [rVBK], a
-
- ld hl, VTiles0 tile $00
- ld de, GFX_17afa5 + $4c0
- lb bc, BANK(GFX_17afa5), 5
- call Get2bpp
-
- ld hl, VTiles0 tile $05
- ld de, GFX_11601a
- lb bc, BANK(GFX_11601a), 4
- call Get2bpp
- ret
-
-Function17abcf: ; 17abcf (5e:6bcf)
- ld a, [rSVBK]
- push af
- ld a, BANK(UnknBGPals)
- ld [rSVBK], a
-
- ld hl, Palette_17ac55
- ld de, UnknBGPals ; $d000
- ld bc, $30
- call CopyBytes
-
- ld hl, Palette_17ac95
- ld de, UnknOBPals
- ld bc, $40
- call CopyBytes
-
- ld hl, GFX_17afa5 + $510
- ld de, UnknOBPals + 2 * 4
- ld bc, $10
- call CopyBytes
-
- ld hl, MapObjectPals + 8
- ld de, UnknOBPals + 6 * 4
- ld bc, $8
- ld a, BANK(MapObjectPals)
- call FarCopyBytes
-
- pop af
- ld [rSVBK], a
- ret
-
-Function17ac0c: ; 17ac0c (5e:6c0c)
- call Function17ac1d
- call Function17ac2a
- hlcoord 0, 0
- ld b, 2
- ld c, SCREEN_WIDTH - 2
- call Function17ac46
- ret
-
-Function17ac1d: ; 17ac1d (5e:6c1d)
- ld hl, Tilemap_17acd5
- decoord 0, 4
- ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
- call CopyBytes
- ret
-
-Function17ac2a: ; 17ac2a (5e:6c2a)
- ld hl, Tilemap_17ae3d
- decoord 0, 4, AttrMap
- ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
- call CopyBytes
- hlcoord 0, 4, AttrMap
- ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
-.loop
- ld a, [hl]
- or $8
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .loop
- ret
-
-Function17ac46: ; 17ac46 (5e:6c46)
- ld a, [$d088]
- bit 4, a
- jr nz, .bit_4_set
- call TextBox
- ret
-
-.bit_4_set
- call Function3eea
- ret
-; 17ac55 (5e:6c55)
-
-Palette_17ac55: ; 17ac55
- RGB 0, 0, 0
- RGB 9, 10, 25
- RGB 16, 19, 31
- RGB 31, 31, 31
-
- RGB 5, 11, 9
- RGB 7, 14, 12
- RGB 17, 24, 22
- RGB 28, 31, 31
-
- RGB 0, 0, 0
- RGB 3, 0, 10
- RGB 3, 3, 16
- RGB 6, 8, 25
-
- RGB 5, 11, 9
- RGB 28, 31, 31
- RGB 7, 14, 12
- RGB 17, 24, 22
-
- RGB 0, 0, 0
- RGB 5, 2, 16
- RGB 8, 8, 26
- RGB 13, 9, 17
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-Palette_17ac95: ; 17ac95
- RGB 31, 31, 31
- RGB 4, 3, 3
- RGB 31, 13, 0
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 0, 0
- RGB 16, 3, 0
- RGB 28, 19, 11
- RGB 31, 31, 31
-
- RGB 31, 16, 0
- RGB 9, 6, 4
- RGB 31, 16, 0
- RGB 31, 24, 0
-
- RGB 31, 18, 6
- RGB 0, 3, 0
- RGB 0, 9, 0
- RGB 0, 12, 0
-
- RGB 0, 16, 0
- RGB 0, 22, 0
- RGB 0, 25, 0
- RGB 0, 27, 0
-
- RGB 0, 31, 0
- RGB 3, 31, 0
- RGB 8, 31, 0
- RGB 14, 31, 0
-
- RGB 16, 31, 0
- RGB 22, 31, 0
- RGB 27, 31, 0
- RGB 31, 31, 0
-
-Tilemap_17acd5: ; 17acd5
-INCBIN "gfx/unknown/17acd5.tilemap"
-
-Tilemap_17ae3d: ; 17ae3d
-INCBIN "gfx/unknown/17ae3d.tilemap"
-
-GFX_17afa5:: ; 17afa5
-INCBIN "gfx/unknown/17afa5.2bpp"
--- a/misc/fixed_words.asm
+++ /dev/null
@@ -1,4294 +1,0 @@
-; These functions seem to be related to the selection of preset phrases
-; for use in mobile communications. Annoyingly, they separate the
-; Battle Tower function above from the data it references.
-Function11c05d: ; 11c05d
- ld a, e
- or d
- jr z, .error
- ld a, e
- and d
- cp $ff
- jr z, .error
- push hl
- call CopyMobileEZChatToC608
- pop hl
- call PlaceString
- and a
- ret
-
-.error
- ld c, l
- ld b, h
- scf
- ret
-; 11c075
-
-Function11c075: ; 11c075
- push de
- ld a, c
- call Function11c254
- pop de
- ld bc, wcd36
- call Function11c08f
- ret
-; 11c082
-
-Function11c082: ; 11c082
-; XXX
- push de
- ld a, c
- call Function11c254
- pop de
- ld bc, wcd36
- call PrintEZChatBattleMessage
- ret
-; 11c08f
-
-Function11c08f: ; 11c08f
- ld l, e
- ld h, d
- push hl
- ld a, 3
-.loop
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- push bc
- call Function11c05d
- jr c, .okay
- inc bc
-
-.okay
- ld l, c
- ld h, b
- pop bc
- pop af
- dec a
- jr nz, .loop
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- ld a, $3
-.loop2
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- push bc
- call Function11c05d
- jr c, .okay2
- inc bc
-
-.okay2
- ld l, c
- ld h, b
- pop bc
- pop af
- dec a
- jr nz, .loop2
- ret
-; 11c0c6
-
-PrintEZChatBattleMessage: ; 11c0c6
-; Use up to 6 words from bc to print text starting at de.
- ; Preserve $cf63, $cf64
- ld a, [wJumptableIndex]
- ld l, a
- ld a, [wcf64]
- ld h, a
- push hl
- ; reset value at c618 (not preserved)
- ld hl, $c618
- ld a, $0
- ld [hli], a
- ; preserve de
- push de
- ; $cf63 keeps track of which line we're on (0, 1, or 2)
- ; $cf64 keeps track of how much room we have left in the current line
- xor a
- ld [wJumptableIndex], a
- ld a, 18
- ld [wcf64], a
- ld a, $6 ; up to 6 times
-.loop
- push af
- ; load the 2-byte word data pointed to by bc
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- ; if $0000, we're done
- or e
- jr z, .done
- ; preserving hl and bc, get the length of the word
- push hl
- push bc
- call CopyMobileEZChatToC608
- call GetLengthOfWordAtC608
- ld e, c
- pop bc
- pop hl
- ; if the functions return 0, we're done
- ld a, e
- or a
- jr z, .done
-.loop2
- ; e contains the length of the word
- ; add 1 for the space, unless we're at the start of the line
- ld a, [wcf64]
- cp 18
- jr z, .skip_inc
- inc e
-
-.skip_inc
- ; if the word fits, put it on the same line
- cp e
- jr nc, .same_line
- ; otherwise, go to the next line
- ld a, [wJumptableIndex]
- inc a
- ld [wJumptableIndex], a
- ; if we're on line 2, insert "<NEXT>"
- ld [hl], "<NEXT>"
- rra
- jr c, .got_line_terminator
- ; else, insert "<CONT>"
- ld [hl], "<CONT>"
-
-.got_line_terminator
- inc hl
- ; init the next line, holding on to the same word
- ld a, 18
- ld [wcf64], a
- dec e
- jr .loop2
-
-.same_line
- ; add the space, unless we're at the start of the line
- cp 18
- jr z, .skip_space
- ld [hl], " "
- inc hl
-
-.skip_space
- ; deduct the length of the word
- sub e
- ld [wcf64], a
- ld de, $c608
-.place_string_loop
- ; load the string from de to hl
- ld a, [de]
- cp "@"
- jr z, .done
- inc de
- ld [hli], a
- jr .place_string_loop
-
-.done
- ; next word?
- pop af
- dec a
- jr nz, .loop
- ; we're finished, place "<DONE>"
- ld [hl], "<DONE>"
- ; now, let's place the string from c618 to bc
- pop bc
- ld hl, $c618
- call PlaceHLTextAtBC
- ; restore the original values of $cf63 and $cf64
- pop hl
- ld a, l
- ld [wJumptableIndex], a
- ld a, h
- ld [wcf64], a
- ret
-; 11c14a
-
-GetLengthOfWordAtC608: ; 11c14a
- ld c, $0
- ld hl, $c608
-.loop
- ld a, [hli]
- cp "@"
- ret z
- inc c
- jr .loop
-; 11c156
-
-CopyMobileEZChatToC608: ; 11c156
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, "@"
- ld hl, $c608
- ld bc, NAME_LENGTH
- call ByteFill
- ld a, d
- and a
- jr z, .get_name
- ld hl, MobileEZChatCategoryPointers
- dec d
- sla d
- ld c, d
- ld b, $0
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld b, a
- push bc
- pop hl
- ld c, e
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- add hl, bc
- ld bc, 5 ; length of a string
-.copy_string
- ld de, $c608
- call CopyBytes
- ld de, $c608
- pop af
- ld [rSVBK], a
- ret
-
-.get_name
- ld a, e
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld bc, PKMN_NAME_LENGTH - 1
- jr .copy_string
-; 11c1ab
-
-Function11c1ab: ; 11c1ab
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function11c1b9
- pop af
- ld [hInMenu], a
- ret
-; 11c1b9
-
-Function11c1b9: ; 11c1b9
- call .InitKanaMode
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call EZChat_MasterLoop
- pop af
- ld [rSVBK], a
- ret
-; 11c1ca
-
-.InitKanaMode: ; 11c1ca
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wcd23], a
- ld [wcd20], a
- ld [wcd21], a
- ld [wcd22], a
- ld [wcd35], a
- ld [wcd2b], a
- ld a, $ff
- ld [wcd24], a
- ld a, [wMenuCursorY]
- dec a
- call Function11c254
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
- call Function11d323
- call SetPalettes
- call DisableLCD
- ld hl, GFX_11d67e
- ld de, VTiles2
- ld bc, $60
- call CopyBytes
- ld hl, LZ_11d6de
- ld de, VTiles0
- call Decompress
- call EnableLCD
- callba ReloadMapPart
- callba ClearSpriteAnims
- callba LoadPokemonData
- callba Pokedex_ABCMode
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $c6d0
- ld de, LYOverrides
- ld bc, $100
- call CopyBytes
- pop af
- ld [rSVBK], a
- call EZChat_GetCategoryWordsByKana
- call EZChat_GetSeenPokemonByKana
- ret
-; 11c254
-
-Function11c254: ; 11c254
- push af
- ld a, $4
- call GetSRAMBank
- ld hl, $a007
- pop af
- sla a
- sla a
- ld c, a
- sla a
- add c
- ld c, a
- ld b, $0
- add hl, bc
- ld de, wcd36
- ld bc, 12
- call CopyBytes
- call CloseSRAM
- ret
-; 11c277
-
-EZChat_ClearBottom12Rows: ; 11c277 (47:4277)
- ld a, " "
- hlcoord 0, 6
- ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH
- call ByteFill
- ret
-
-EZChat_MasterLoop: ; 11c283
-.loop
- call JoyTextDelay
- ld a, [hJoyPressed]
- ld [hJoypadPressed], a
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .exit
- call .DoJumptableFunction
- callba PlaySpriteAnimations
- callba ReloadMapPart
- jr .loop
-
-.exit
- callba ClearSpriteAnims
- call ClearSprites
- ret
-; 11c2ac
-
-.DoJumptableFunction: ; 11c2ac
- jumptable .Jumptable, wJumptableIndex
-; 11c2bb
-
-.Jumptable: ; 11c2bb (47:42bb)
- dw .SpawnObjects ; 00
- dw .InitRAM ; 01
- dw Function11c35f ; 02
- dw Function11c373 ; 03
- dw Function11c3c2 ; 04
- dw Function11c3ed ; 05
- dw Function11c52c ; 06
- dw Function11c53d ; 07
- dw Function11c658 ; 08
- dw Function11c675 ; 09
- dw Function11c9bd ; 0a
- dw Function11c9c3 ; 0b
- dw Function11caad ; 0c
- dw Function11cab3 ; 0d
- dw Function11cb52 ; 0e
- dw Function11cb66 ; 0f
- dw Function11cbf5 ; 10
- dw Function11ccef ; 11
- dw Function11cd04 ; 12
- dw Function11cd20 ; 13
- dw Function11cd54 ; 14
- dw Function11ce0b ; 15
- dw Function11ce2b ; 16
-
-.SpawnObjects: ; 11c2e9 (47:42e9)
- depixel 3, 1, 2, 5
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- depixel 8, 1, 2, 5
-
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $1
- ld [hl], a
-
- depixel 9, 2, 2, 0
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $3
- ld [hl], a
-
- depixel 10, 16
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $4
- ld [hl], a
-
- depixel 10, 4
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $5
- ld [hl], a
-
- depixel 10, 2
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $2
- ld [hl], a
-
- ld hl, wcd23
- set 1, [hl]
- set 2, [hl]
- jp Function11cfb5
-
-.InitRAM: ; 11c346 (47:4346)
- ld a, $9
- ld [wcd2d], a
- ld a, $2
- ld [wcd2e], a
- ld [wcd2f], a
- ld [wcd30], a
- ld de, wcd2d
- call Function11cfce
- jp Function11cfb5
-
-Function11c35f: ; 11c35f (47:435f)
- ld hl, wcd2f
- inc [hl]
- inc [hl]
- dec hl
- dec hl
- dec [hl]
- push af
- ld de, wcd2d
- call Function11cfce
- pop af
- ret nz
- jp Function11cfb5
-
-Function11c373: ; 11c373 (47:4373)
- ld hl, wcd30
- inc [hl]
- inc [hl]
- dec hl
- dec hl
- dec [hl]
- push af
- ld de, wcd2d
- call Function11cfce
- pop af
- ret nz
- call Function11c38a
- jp Function11cfb5
-
-Function11c38a: ; 11c38a (47:438a)
- ld hl, Unknown_11c986
- ld bc, wcd36
- ld a, $6
-.asm_11c392
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- push de
- pop hl
- ld a, [bc]
- inc bc
- ld e, a
- ld a, [bc]
- inc bc
- ld d, a
- push bc
- or e
- jr z, .asm_11c3af
- ld a, e
- and d
- cp $ff
- jr z, .asm_11c3af
- call Function11c05d
- jr .asm_11c3b5
-.asm_11c3af
- ld de, String_11c3bc
- call PlaceString
-.asm_11c3b5
- pop bc
- pop hl
- pop af
- dec a
- jr nz, .asm_11c392
- ret
-; 11c3bc (47:43bc)
-
-String_11c3bc: ; 11c3bc
- db "ーーーーー@"
-; 11c3c2
-
-Function11c3c2: ; 11c3c2 (47:43c2)
- call EZChat_ClearBottom12Rows
- ld de, Unknown_11cfbe
- call Function11d035
- hlcoord 1, 7
- ld de, String_11c4db
- call PlaceString
- hlcoord 1, 16
- ld de, String_11c51b
- call PlaceString
- call Function11c4be
- ld hl, wcd23
- set 0, [hl]
- ld hl, wcd24
- res 0, [hl]
- call Function11cfb5
-
-Function11c3ed: ; 11c3ed (47:43ed)
- ld hl, wcd20 ; wcd20
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $8
- jr nz, .asm_11c426
- ld a, [de]
- and $2
- jr nz, .asm_11c41a
- ld a, [de]
- and $1
- jr nz, .asm_11c42c
- ld de, hJoyLast
- ld a, [de]
- and $40
- jr nz, .asm_11c47c
- ld a, [de]
- and $80
- jr nz, .asm_11c484
- ld a, [de]
- and $20
- jr nz, .asm_11c48c
- ld a, [de]
- and $10
- jr nz, .asm_11c498
- ret
-
-.asm_11c41a
- call PlayClickSFX
-.asm_11c41d
- ld hl, wcd24
- set 0, [hl]
- ld a, $c
- jr .asm_11c475
-.asm_11c426
- ld a, $8
- ld [wcd20], a ; wcd20
- ret
-
-.asm_11c42c
- ld a, [wcd20] ; wcd20
- cp $6
- jr c, .asm_11c472
- sub $6
- jr z, .asm_11c469
- dec a
- jr z, .asm_11c41d
- ld hl, wcd36
- ld c, $c
- xor a
-.asm_11c440
- or [hl]
- inc hl
- dec c
- jr nz, .asm_11c440
- and a
- jr z, .asm_11c460
- ld de, Unknown_11cfba
- call Function11cfce
- decoord 1, 2
- ld bc, wcd36
- call Function11c08f
- ld hl, wcd24
- set 0, [hl]
- ld a, $e
- jr .asm_11c475
-.asm_11c460
- ld hl, wcd24
- set 0, [hl]
- ld a, $11
- jr .asm_11c475
-.asm_11c469
- ld hl, wcd24
- set 0, [hl]
- ld a, $a
- jr .asm_11c475
-.asm_11c472
- call Function11c4a5
-.asm_11c475
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-
-.asm_11c47c
- ld a, [hl]
- cp $3
- ret c
- sub $3
- jr .asm_11c4a3
-.asm_11c484
- ld a, [hl]
- cp $6
- ret nc
- add $3
- jr .asm_11c4a3
-.asm_11c48c
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- dec a
- jr .asm_11c4a3
-.asm_11c498
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- inc a
-.asm_11c4a3
- ld [hl], a
- ret
-
-Function11c4a5: ; 11c4a5 (47:44a5)
- ld hl, wcd23
- res 0, [hl]
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c4b7
- xor a
- ld [wcd21], a
- ld a, $6
- ret
-
-.asm_11c4b7
- xor a
- ld [wcd22], a
- ld a, $15
- ret
-
-Function11c4be: ; 11c4be (47:44be)
- ld a, $1
- hlcoord 0, 6, AttrMap
- ld bc, $a0
- call ByteFill
- ld a, $7
- hlcoord 0, 14, AttrMap
- ld bc, $28
- call ByteFill
- callba ReloadMapPart
- ret
-; 11c4db (47:44db)
-
-String_11c4db: ; 11c4db
- db "6つのことば¯くみあわせます"
- next "かえたいところ¯えらぶと でてくる"
- next "ことばのグループから いれかえたい"
- next "たんご¯えらんでください"
- db "@"
-; 11c51b
-
-String_11c51b: ; 11c51b
- db "ぜんぶけす やめる けってい@"
-; 11c52c
-
-Function11c52c: ; 11c52c (47:452c)
- call EZChat_ClearBottom12Rows
- call EZChat_PlaceCategoryNames
- call Function11c618
- ld hl, wcd24
- res 1, [hl]
- call Function11cfb5
-
-Function11c53d: ; 11c53d (47:453d)
- ld hl, wcd21
- ld de, hJoypadPressed ; $ffa3
-
- ld a, [de]
- and START
- jr nz, .start
-
- ld a, [de]
- and SELECT
- jr nz, .select
-
- ld a, [de]
- and B_BUTTON
- jr nz, .b
-
- ld a, [de]
- and A_BUTTON
- jr nz, .a
-
- ld de, hJoyLast
-
- ld a, [de]
- and D_UP
- jr nz, .up
-
- ld a, [de]
- and D_DOWN
- jr nz, .down
-
- ld a, [de]
- and D_LEFT
- jr nz, .left
-
- ld a, [de]
- and D_RIGHT
- jr nz, .right
-
- ret
-
-.a
- ld a, [wcd21]
- cp 15
- jr c, .got_category
- sub $f
- jr z, .done
- dec a
- jr z, .mode
- jr .b
-
-.start
- ld hl, wcd24
- set 0, [hl]
- ld a, $8
- ld [wcd20], a ; wcd20
-
-.b
- ld a, $4
- jr .go_to_function
-
-.select
- ld a, [wcd2b]
- xor $1
- ld [wcd2b], a
- ld a, $15
- jr .go_to_function
-
-.mode
- ld a, $13
- jr .go_to_function
-
-.got_category
- ld a, $8
-
-.go_to_function
- ld hl, wcd24
- set 1, [hl]
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-
-.done
- ld a, [wcd20] ; wcd20
- call Function11ca6a
- call PlayClickSFX
- ret
-
-.up
- ld a, [hl]
- cp $3
- ret c
- sub $3
- jr .finish_dpad
-
-.down
- ld a, [hl]
- cp $f
- ret nc
- add $3
- jr .finish_dpad
-
-.left
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- cp $9
- ret z
- cp $c
- ret z
- cp $f
- ret z
- dec a
- jr .finish_dpad
-
-.right
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- cp $b
- ret z
- cp $e
- ret z
- cp $11
- ret z
- inc a
-
-.finish_dpad
- ld [hl], a
- ret
-; 11c5f0
-
-EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0)
- ld de, MobileEZChatCategoryNames
- ld bc, Coords_11c63a
- ld a, 15
-.loop
- push af
- ld a, [bc]
- inc bc
- ld l, a
- ld a, [bc]
- inc bc
- ld h, a
- push bc
- call PlaceString
- ; The category names are padded with "@".
- ; To find the next category, the system must
- ; find the first character at de that is not "@".
-.find_next_string_loop
- inc de
- ld a, [de]
- cp "@"
- jr z, .find_next_string_loop
- pop bc
- pop af
- dec a
- jr nz, .loop
- hlcoord 1, 17
- ld de, EZChatString_Stop_Mode_Cancel
- call PlaceString
- ret
-
-Function11c618: ; 11c618 (47:4618)
- ld a, $2
- hlcoord 0, 6, AttrMap
- ld bc, $c8
- call ByteFill
- callba ReloadMapPart
- ret
-; 11c62a (47:462a)
-
-EZChatString_Stop_Mode_Cancel: ; 11c62a
- db "けす モード やめる@"
-; 11c63a
-
-Coords_11c63a: ; 11c63a
- dwcoord 1, 7
- dwcoord 7, 7
- dwcoord 13, 7
- dwcoord 1, 9
- dwcoord 7, 9
- dwcoord 13, 9
- dwcoord 1, 11
- dwcoord 7, 11
- dwcoord 13, 11
- dwcoord 1, 13
- dwcoord 7, 13
- dwcoord 13, 13
- dwcoord 1, 15
- dwcoord 7, 15
- dwcoord 13, 15
-; 11c658
-
-Function11c658: ; 11c658 (47:4658)
- call EZChat_ClearBottom12Rows
- call Function11c770
- ld de, Unknown_11cfc2
- call Function11d035
- call Function11c9ab
- call Function11c7bc
- call Function11c86e
- ld hl, wcd24
- res 3, [hl]
- call Function11cfb5
-
-Function11c675: ; 11c675 (47:4675)
- ld hl, wMobileCommsJumptableIndex
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and A_BUTTON
- jr nz, .a
- ld a, [de]
- and B_BUTTON
- jr nz, .b
- ld a, [de]
- and START
- jr nz, .start
- ld a, [de]
- and SELECT
- jr z, .select
-
- ld a, [wcd26]
- and a
- ret z
- sub $c
- jr nc, .asm_11c699
- xor a
-.asm_11c699
- ld [wcd26], a
- jr .asm_11c6c4
-
-.start
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- cp [hl]
- ret nc
- ld [wcd26], a
- ld a, [hl]
- ld b, a
- ld hl, wMobileCommsJumptableIndex
- ld a, [wcd26]
- add [hl]
- jr c, .asm_11c6b9
- cp b
- jr c, .asm_11c6c4
-.asm_11c6b9
- ld a, [wcd28]
- ld hl, wcd26
- sub [hl]
- dec a
- ld [wMobileCommsJumptableIndex], a
-.asm_11c6c4
- call Function11c992
- call Function11c7bc
- call Function11c86e
- ret
-
-.select
- ld de, hJoyLast
- ld a, [de]
- and D_UP
- jr nz, .asm_11c708
- ld a, [de]
- and D_DOWN
- jr nz, .asm_11c731
- ld a, [de]
- and D_LEFT
- jr nz, .asm_11c746
- ld a, [de]
- and D_RIGHT
- jr nz, .asm_11c755
- ret
-
-.a
- call Function11c8f6
- ld a, $4
- ld [wcd35], a
- jr .asm_11c6fc
-.b
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c6fa
- ld a, $6
- jr .asm_11c6fc
-.asm_11c6fa
- ld a, $15
-.asm_11c6fc
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 3, [hl]
- call PlayClickSFX
- ret
-
-.asm_11c708
- ld a, [hl]
- cp $3
- jr c, .asm_11c711
- sub $3
- jr .asm_11c76e
-.asm_11c711
- ld a, [wcd26]
- sub $3
- ret c
- ld [wcd26], a
- jr .asm_11c6c4
-.asm_11c71c
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- ret c
- cp [hl]
- ret nc
- ld a, [wcd26]
- add $3
- ld [wcd26], a
- jr .asm_11c6c4
-.asm_11c731
- ld a, [wcd28]
- ld b, a
- ld a, [wcd26]
- add [hl]
- add $3
- cp b
- ret nc
- ld a, [hl]
- cp $9
- jr nc, .asm_11c71c
- add $3
- jr .asm_11c76e
-.asm_11c746
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- cp $9
- ret z
- dec a
- jr .asm_11c76e
-.asm_11c755
- ld a, [wcd28]
- ld b, a
- ld a, [wcd26]
- add [hl]
- inc a
- cp b
- ret nc
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- cp $b
- ret z
- inc a
-.asm_11c76e
- ld [hl], a
- ret
-
-Function11c770: ; 11c770 (47:4770)
- xor a
- ld [wMobileCommsJumptableIndex], a
- ld [wcd26], a
- ld [wcd27], a
- ld a, [wcd2b]
- and a
- jr nz, .cd2b_is_nonzero
- ld a, [wcd21]
- and a
- jr z, .cd21_is_zero
- ; load from data array
- dec a
- sla a
- ld hl, MobileEZChatData_WordAndPageCounts
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hli]
- ld [wcd28], a
- ld a, [hl]
-.load
- ld [wcd29], a
- ret
-
-.cd21_is_zero
- ; compute from [wc7d2]
- ld a, [wc7d2]
- ld [wcd28], a
-.div_12
- ld c, 12
- call SimpleDivide
- and a
- jr nz, .no_need_to_floor
- dec b
-.no_need_to_floor
- ld a, b
- jr .load
-
-.cd2b_is_nonzero
- ; compute from [c6a8 + 2 * [cd22]]
- ld hl, $c6a8 ; $c68a + 30
- ld a, [wcd22]
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hl]
- ld [wcd28], a
- jr .div_12
-
-Function11c7bc: ; 11c7bc (47:47bc)
- ld bc, Unknown_11c854
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c814
- ld a, [wcd21]
- ld d, a
- and a
- jr z, .asm_11c7e9
- ld a, [wcd26]
- ld e, a
-.asm_11c7d0
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- ret z
- push bc
- push de
- call Function11c05d
- pop de
- pop bc
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c7d0
- ret
-
-.asm_11c7e9
- ld hl, wListPointer
- ld a, [wcd26]
- ld e, a
- add hl, de
-.asm_11c7f1
- push de
- ld a, [hli]
- ld e, a
- ld d, $0
- push hl
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- jr z, .asm_11c811
- push bc
- call Function11c05d
- pop bc
- pop hl
- pop de
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c7f1
- ret
-
-.asm_11c811
- pop hl
- pop de
- ret
-
-.asm_11c814
- ld hl, $c648
- ld a, [wcd22]
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wcd26]
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [wcd26]
- ld e, a
-.asm_11c831
- push de
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- jr z, .asm_11c851
- push bc
- call Function11c05d
- pop bc
- pop hl
- pop de
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c831
- ret
-
-.asm_11c851
- pop hl
- pop de
- ret
-; 11c854 (47:4854)
-
-Unknown_11c854: ; 11c854
- dwcoord 2, 8
- dwcoord 8, 8
- dwcoord 14, 8
- dwcoord 2, 10
- dwcoord 8, 10
- dwcoord 14, 10
- dwcoord 2, 12
- dwcoord 8, 12
- dwcoord 14, 12
- dwcoord 2, 14
- dwcoord 8, 14
- dwcoord 14, 14
- dw -1
-; 11c86e
-
-Function11c86e: ; 11c86e (47:486e)
- ld a, [wcd26]
- and a
- jr z, .asm_11c88a
- hlcoord 2, 17
- ld de, MobileString_Prev
- call PlaceString
- hlcoord 6, 17
- ld c, $3
- xor a
-.asm_11c883
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_11c883
- jr .asm_11c895
-.asm_11c88a
- hlcoord 2, 17
- ld c, $7
- ld a, $7f
-.asm_11c891
- ld [hli], a
- dec c
- jr nz, .asm_11c891
-.asm_11c895
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- jr c, .asm_11c8b7
- cp [hl]
- jr nc, .asm_11c8b7
- hlcoord 16, 17
- ld de, MobileString_Next
- call PlaceString
- hlcoord 11, 17
- ld a, $3
- ld c, a
-.asm_11c8b1
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_11c8b1
- ret
-
-.asm_11c8b7
- hlcoord 17, 16
- ld a, $7f
- ld [hl], a
- hlcoord 11, 17
- ld c, $7
-.asm_11c8c2
- ld [hli], a
- dec c
- jr nz, .asm_11c8c2
- ret
-; 11c8c7 (47:48c7)
-
-BCD2String: ; 11c8c7
- inc a
- push af
- and $f
- ld [hDividend], a
- pop af
- and $f0
- swap a
- ld [hDividend + 1], a
- xor a
- ld [hDividend + 2], a
- push hl
- callba Function11a80c
- pop hl
- ld a, [wcd63]
- add "0"
- ld [hli], a
- ld a, [wcd62]
- add "0"
- ld [hli], a
- ret
-; 11c8ec
-
-MobileString_Page: ; 11c8ec
- db "ぺージ@"
-; 11c8f0
-
-MobileString_Prev: ; 11c8f0
- db "まえ@"
-; 11c8f3
-
-MobileString_Next: ; 11c8f3
- db "つぎ@"
-; 11c8f6
-
-Function11c8f6: ; 11c8f6 (47:48f6)
- ld a, [wcd20] ; wcd20
- call Function11c95d
- push hl
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c938
- ld a, [wcd21]
- ld d, a
- and a
- jr z, .asm_11c927
- ld hl, wcd26
- ld a, [wMobileCommsJumptableIndex]
- add [hl]
-.asm_11c911
- ld e, a
-.asm_11c912
- pop hl
- push de
- call Function11c05d
- pop de
- ld a, [wcd20] ; wcd20
- ld c, a
- ld b, $0
- ld hl, wcd36
- add hl, bc
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-.asm_11c927
- ld hl, wcd26
- ld a, [wMobileCommsJumptableIndex]
- add [hl]
- ld c, a
- ld b, $0
- ld hl, wListPointer
- add hl, bc
- ld a, [hl]
- jr .asm_11c911
-.asm_11c938
- ld hl, $c648
- ld a, [wcd22]
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wcd26]
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [wMobileCommsJumptableIndex]
- ld e, a
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- jr .asm_11c912
-
-Function11c95d: ; 11c95d (47:495d)
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_11c986
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld b, a
- push bc
- push bc
- pop hl
- ld a, $5
- ld c, a
- ld a, $7f
-.asm_11c972
- ld [hli], a
- dec c
- jr nz, .asm_11c972
- dec hl
- ld bc, -20
- add hl, bc
- ld a, $5
- ld c, a
- ld a, $7f
-.asm_11c980
- ld [hld], a
- dec c
- jr nz, .asm_11c980
- pop hl
- ret
-; 11c986 (47:4986)
-
-Unknown_11c986:
- dwcoord 1, 2
- dwcoord 7, 2
- dwcoord 13, 2
- dwcoord 1, 4
- dwcoord 7, 4
- dwcoord 13, 4
-; 11c992
-
-Function11c992: ; 11c992 (47:4992)
- ld a, $8
- hlcoord 2, 7
-.asm_11c997
- push af
- ld a, $7f
- push hl
- ld bc, $11
- call ByteFill
- pop hl
- ld bc, $14
- add hl, bc
- pop af
- dec a
- jr nz, .asm_11c997
- ret
-
-Function11c9ab: ; 11c9ab (47:49ab)
- ld a, $7
- hlcoord 0, 6, AttrMap
- ld bc, $c8
- call ByteFill
- callba ReloadMapPart
- ret
-
-Function11c9bd: ; 11c9bd (47:49bd)
- ld de, String_11ca38
- call Function11ca7f
-
-Function11c9c3: ; 11c9c3 (47:49c3)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11c9de
- ld a, [de]
- and $2
- jr nz, .asm_11c9e9
- ld a, [de]
- and $40
- jr nz, .asm_11c9f7
- ld a, [de]
- and $80
- jr nz, .asm_11c9fc
- ret
-
-.asm_11c9de
- ld a, [hl]
- and a
- jr nz, .asm_11c9e9
- call Function11ca5e
- xor a
- ld [wcd20], a ; wcd20
-.asm_11c9e9
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-
-.asm_11c9f7
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_11c9fc
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-
-Function11ca01: ; 11ca01 (47:4a01)
- hlcoord 14, 7, AttrMap
- ld de, $14
- ld a, $5
- ld c, a
-.asm_11ca0a
- push hl
- ld a, $6
- ld b, a
- ld a, $7
-.asm_11ca10
- ld [hli], a
- dec b
- jr nz, .asm_11ca10
- pop hl
- add hl, de
- dec c
- jr nz, .asm_11ca0a
-
-Function11ca19: ; 11ca19 (47:4a19)
- hlcoord 0, 12, AttrMap
- ld de, $14
- ld a, $6
- ld c, a
-.asm_11ca22
- push hl
- ld a, $14
- ld b, a
- ld a, $7
-.asm_11ca28
- ld [hli], a
- dec b
- jr nz, .asm_11ca28
- pop hl
- add hl, de
- dec c
- jr nz, .asm_11ca22
- callba ReloadMapPart
- ret
-; 11ca38 (47:4a38)
-
-String_11ca38: ; 11ca38
- db "とうろくちゅう", $25, "あいさつ¯ぜんぶ"
- next "けしても よろしいですか?@"
-; 11ca57
-
-String_11ca57: ; 11ca57
- db "はい"
- next "いいえ@"
-; 11ca5e
-
-Function11ca5e: ; 11ca5e (47:4a5e)
- xor a
-.loop
- push af
- call Function11ca6a
- pop af
- inc a
- cp $6
- jr nz, .loop
- ret
-
-Function11ca6a: ; 11ca6a (47:4a6a)
- ld hl, wcd36
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- ld [hl], b
- inc hl
- ld [hl], b
- call Function11c95d
- ld de, String_11c3bc
- call PlaceString
- ret
-
-Function11ca7f: ; 11ca7f (47:4a7f)
- push de
- ld de, Unknown_11cfc6
- call Function11cfce
- ld de, Unknown_11cfca
- call Function11cfce
- hlcoord 1, 14
- pop de
- call PlaceString
- hlcoord 16, 8
- ld de, String_11ca57
- call PlaceString
- call Function11ca01
- ld a, $1
- ld [wcd2a], a
- ld hl, wcd24
- res 4, [hl]
- call Function11cfb5
- ret
-
-Function11caad: ; 11caad (47:4aad)
- ld de, String_11cb1c
- call Function11ca7f
-
-Function11cab3: ; 11cab3 (47:4ab3)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11cace
- ld a, [de]
- and $2
- jr nz, .asm_11caf9
- ld a, [de]
- and $40
- jr nz, .asm_11cb12
- ld a, [de]
- and $80
- jr nz, .asm_11cb17
- ret
-
-.asm_11cace
- call PlayClickSFX
- ld a, [hl]
- and a
- jr nz, .asm_11cafc
- ld a, [wcd35]
- and a
- jr z, .asm_11caf3
- cp $ff
- jr z, .asm_11caf3
- ld a, $ff
- ld [wcd35], a
- hlcoord 1, 14
- ld de, String_11cb31
- call PlaceString
- ld a, $1
- ld [wcd2a], a
- ret
-
-.asm_11caf3
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.asm_11caf9
- call PlayClickSFX
-.asm_11cafc
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- ld a, [wcd35]
- cp $ff
- ret nz
- ld a, $1
- ld [wcd35], a
- ret
-
-.asm_11cb12
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_11cb17
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-; 11cb1c (47:4b1c)
-
-String_11cb1c: ; 11cb1c
- db "あいさつ", $25, "とうろく¯ちゅうし"
- next "しますか?@"
-; 11cb31
-
-String_11cb31: ; 11cb31
- db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
- next "されません", $4a, "よろしい ですか?@"
-; 11cb52
-
-Function11cb52: ; 11cb52 (47:4b52)
- ld hl, Unknown_11cc01
- ld a, [wMenuCursorY]
-.asm_11cb58
- dec a
- jr z, .asm_11cb5f
- inc hl
- inc hl
- jr .asm_11cb58
-.asm_11cb5f
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- call Function11ca7f
-
-Function11cb66: ; 11cb66 (47:4b66)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11cb81
- ld a, [de]
- and $2
- jr nz, .asm_11cbd7
- ld a, [de]
- and $40
- jr nz, .asm_11cbeb
- ld a, [de]
- and $80
- jr nz, .asm_11cbf0
- ret
-
-.asm_11cb81
- ld a, [hl]
- and a
- jr nz, .asm_11cbd4
- ld a, $4
- call GetSRAMBank
- ld hl, $a007
- ld a, [wMenuCursorY]
- dec a
- sla a
- sla a
- ld c, a
- sla a
- add c
- ld c, a
- ld b, $0
- add hl, bc
- ld de, wcd36
- ld c, $c
-.asm_11cba2
- ld a, [de]
- ld [hli], a
- inc de
- dec c
- jr nz, .asm_11cba2
- call CloseSRAM
- call PlayClickSFX
- ld de, Unknown_11cfc6
- call Function11cfce
- ld hl, Unknown_11cc7e
- ld a, [wMenuCursorY]
-.asm_11cbba
- dec a
- jr z, .asm_11cbc1
- inc hl
- inc hl
- jr .asm_11cbba
-.asm_11cbc1
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- hlcoord 1, 14
- call PlaceString
- ld hl, wJumptableIndex
- inc [hl]
- inc hl
- ld a, $10
- ld [hl], a
- ret
-
-.asm_11cbd4
- call PlayClickSFX
-.asm_11cbd7
- ld de, Unknown_11cfba
- call Function11cfce
- call Function11c38a
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.asm_11cbeb
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_11cbf0
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-
-Function11cbf5: ; 11cbf5 (47:4bf5)
- call WaitSFX
- ld hl, wcf64
- dec [hl]
- ret nz
- dec hl
- set 7, [hl]
- ret
-; 11cc01 (47:4c01)
-
-Unknown_11cc01: ; 11cc01
- dw String_11cc09
- dw String_11cc23
- dw String_11cc42
- dw String_11cc60
-
-String_11cc09: ; 11cc09
- db "じこしょうかい は"
- next "この あいさつで いいですか?@"
-
-String_11cc23: ; 11cc23
- db "たいせん ", $4a, "はじまるとき は"
- next "この あいさつで いいですか?@"
-
-String_11cc42: ; 11cc42
- db "たいせん ", $1d, "かったとき は"
- next "この あいさつで いいですか?@"
-
-String_11cc60: ; 11cc60
- db "たいせん ", $1d, "まけたとき は"
- next "この あいさつで いいですか?@"
-; 11cc7e
-
-Unknown_11cc7e: ; 11cc7e
- dw String_11cc86
- dw String_11cc9d
- dw String_11ccb9
- dw String_11ccd4
-
-String_11cc86: ; 11cc86
- db "じこしょうかい の"
- next "あいさつ¯とうろくした!@"
-
-String_11cc9d: ; 11cc9d
- db "たいせん ", $4a, "はじまるとき の"
- next "あいさつ¯とうろくした!@"
-
-String_11ccb9: ; 11ccb9
- db "たいせん ", $1d, "かったとき の"
- next "あいさつ¯とうろくした!@"
-
-String_11ccd4: ; 11ccd4
- db "たいせん ", $1d, "まけたとき の"
- next "あいさつ¯とうろくした!@"
-; 11ccef
-
-Function11ccef: ; 11ccef (47:4cef)
- ld de, Unknown_11cfc6
- call Function11cfce
- hlcoord 1, 14
- ld de, String_11cd10
- call PlaceString
- call Function11ca19
- call Function11cfb5
-
-Function11cd04: ; 11cd04 (47:4d04)
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and a
- ret z
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; 11cd10 (47:4d10)
-
-String_11cd10: ; 11cd10
- db "なにか ことば¯いれてください@"
-; 11cd20
-
-Function11cd20: ; 11cd20 (47:4d20)
- call EZChat_ClearBottom12Rows
- ld de, Unknown_11cfc6
- call Function11cfce
- hlcoord 1, 14
- ld a, [wcd2b]
- ld [wcd2c], a
- and a
- jr nz, .asm_11cd3a
- ld de, String_11cdc7
- jr .asm_11cd3d
-.asm_11cd3a
- ld de, String_11cdd9
-.asm_11cd3d
- call PlaceString
- hlcoord 4, 8
- ld de, String_11cdf5
- call PlaceString
- call Function11cdaa
- ld hl, wcd24
- res 5, [hl]
- call Function11cfb5
-
-Function11cd54: ; 11cd54 (47:4d54)
- ld hl, wcd2c
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and A_BUTTON
- jr nz, .asm_11cd6f
- ld a, [de]
- and B_BUTTON
- jr nz, .asm_11cd73
- ld a, [de]
- and D_UP
- jr nz, .asm_11cd8b
- ld a, [de]
- and D_DOWN
- jr nz, .asm_11cd94
- ret
-
-.asm_11cd6f
- ld a, [hl]
- ld [wcd2b], a
-.asm_11cd73
- ld a, [wcd2b]
- and a
- jr nz, .asm_11cd7d
- ld a, $6
- jr .asm_11cd7f
-
-.asm_11cd7d
- ld a, $15
-.asm_11cd7f
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 5, [hl]
- call PlayClickSFX
- ret
-
-.asm_11cd8b
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ld de, String_11cdc7
- jr .asm_11cd9b
-
-.asm_11cd94
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ld de, String_11cdd9
-.asm_11cd9b
- push de
- ld de, Unknown_11cfc6
- call Function11cfce
- pop de
- hlcoord 1, 14
- call PlaceString
- ret
-
-Function11cdaa: ; 11cdaa (47:4daa)
- ld a, $2
- hlcoord 0, 6, AttrMap
- ld bc, 6 * SCREEN_WIDTH
- call ByteFill
- ld a, $7
- hlcoord 0, 12, AttrMap
- ld bc, 4 * SCREEN_WIDTH
- call ByteFill
- callba ReloadMapPart
- ret
-; 11cdc7 (47:4dc7)
-
-String_11cdc7: ; 11cdc7
-; Words will be displayed by category
- db "ことば¯しゅるいべつに"
- next "えらべます@"
-; 11cdd9
-
-String_11cdd9: ; 11cdd9
-; Words will be displayed in alphabetical order
- db "ことば¯アイウエォ の"
- next "じゅんばんで ひょうじ します@"
-; 11cdf5
-
-String_11cdf5: ; 11cdf5
- db "しゅるいべつ モード" ; Category mode
- next "アイウエォ モード@" ; ABC mode
-; 11ce0b
-
-Function11ce0b: ; 11ce0b (47:4e0b)
- call EZChat_ClearBottom12Rows
- hlcoord 1, 7
- ld de, String_11cf79
- call PlaceString
- hlcoord 1, 17
- ld de, EZChatString_Stop_Mode_Cancel
- call PlaceString
- call Function11c618
- ld hl, wcd24
- res 2, [hl]
- call Function11cfb5
-
-Function11ce2b: ; 11ce2b (47:4e2b)
- ld a, [wcd22]
- sla a
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_11ceb9
- add hl, bc
-
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and START
- jr nz, .start
- ld a, [de]
- and SELECT
- jr nz, .select
- ld a, [de]
- and A_BUTTON
- jr nz, .a
- ld a, [de]
- and B_BUTTON
- jr nz, .b
-
- ld de, hJoyLast
- ld a, [de]
- and D_UP
- jr nz, .up
- ld a, [de]
- and D_DOWN
- jr nz, .down
- ld a, [de]
- and D_LEFT
- jr nz, .left
- ld a, [de]
- and D_RIGHT
- jr nz, .right
-
- ret
-
-.a
- ld a, [wcd22]
- cp NUM_KANA
- jr c, .place
- sub NUM_KANA
- jr z, .done
- dec a
- jr z, .mode
- jr .b
-
-.start
- ld hl, wcd24
- set 0, [hl]
- ld a, $8
- ld [wcd20], a ; wcd20
-.b
- ld a, $4
- jr .load
-
-.select
- ld a, [wcd2b]
- xor $1
- ld [wcd2b], a
- ld a, $6
- jr .load
-
-.place
- ld a, $8
- jr .load
-
-.mode
- ld a, $13
-.load
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 2, [hl]
- call PlayClickSFX
- ret
-
-.done
- ld a, [wcd20] ; wcd20
- call Function11ca6a
- call PlayClickSFX
- ret
-
-.left
- inc hl
-.down
- inc hl
-.right
- inc hl
-.up
- ld a, [hl]
- cp $ff
- ret z
- ld [wcd22], a
- ret
-; 11ceb9 (47:4eb9)
-
-Unknown_11ceb9: ; 11ceb9
- ; up left down right
- db $ff, $01
- db $05, $ff
- db $ff, $02
- db $06, $00
- db $ff, $03
- db $07, $01
- db $ff, $04
- db $08, $02
- db $ff, $14
- db $09, $03
- db $00, $06
- db $0a, $ff
- db $01, $07
- db $0b, $05
- db $02, $08
- db $0c, $06
- db $03, $09
- db $0d, $07
- db $04, $19
- db $0e, $08
- db $05, $0b
- db $0f, $ff
- db $06, $0c
- db $10, $0a
- db $07, $0d
- db $11, $0b
- db $08, $0e
- db $12, $0c
- db $09, $1e
- db $13, $0d
- db $0a, $10
- db $2d, $ff
- db $0b, $11
- db $2d, $0f
- db $0c, $12
- db $2d, $10
- db $0d, $13
- db $2d, $11
- db $0e, $26
- db $2d, $12
- db $ff, $15
- db $19, $04
- db $ff, $16
- db $1a, $14
- db $ff, $17
- db $1b, $15
- db $ff, $18
- db $1c, $16
- db $ff, $23
- db $1d, $17
- db $14, $1a
- db $1e, $09
- db $15, $1b
- db $1f, $19
- db $16, $1c
- db $20, $1a
- db $17, $1d
- db $21, $1b
- db $18, $2b
- db $22, $1c
- db $19, $1f
- db $26, $0e
- db $1a, $20
- db $27, $1e
- db $1b, $21
- db $28, $1f
- db $1c, $22
- db $29, $20
- db $1d, $2c
- db $2a, $21
- db $ff, $24
- db $2b, $18
- db $ff, $25
- db $2b, $23
- db $ff, $ff
- db $2b, $24
- db $1e, $27
- db $2e, $13
- db $1f, $28
- db $2e, $26
- db $20, $29
- db $2e, $27
- db $21, $2a
- db $2e, $28
- db $22, $ff
- db $2e, $29
- db $23, $ff
- db $2c, $1d
- db $2b, $ff
- db $2f, $22
- db $0f, $2e
- db $ff, $ff
- db $26, $2f
- db $ff, $2d
- db $2c, $ff
- db $ff, $2e
-; 11cf79
-
-String_11cf79: ; 11cf79
-; Hiragana table
- db "あいうえお なにぬねの や ゆ よ"
- next "かきくけこ はひふへほ わ"
- next "さしすせそ まみむめも そのた"
- next "たちつてと らりるれろ"
- db "@"
-; 11cfb5
-
-Function11cfb5: ; 11cfb5 (47:4fb5)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 11cfba (47:4fba)
-
-Unknown_11cfba:
- db 0, 0 ; start coords
- db 20, 6 ; end coords
-
-Unknown_11cfbe:
- db 0, 14 ; start coords
- db 20, 4 ; end coords
-
-Unknown_11cfc2:
- db 0, 6 ; start coords
- db 20, 10 ; end coords
-
-Unknown_11cfc6:
- db 0, 12 ; start coords
- db 20, 6 ; end coords
-
-Unknown_11cfca:
- db 14, 7 ; start coords
- db 6, 5 ; end coords
-; 11cfce
-
-Function11cfce: ; 11cfce (47:4fce)
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.add_n_times
- jr z, .done_add_n_times
- add hl, bc
- dec a
- jr .add_n_times
-.done_add_n_times
- pop af
- ld c, a
- ld b, 0
- add hl, bc
- push hl
- ld a, $79
- ld [hli], a
- ld a, [de]
- inc de
- dec a
- dec a
- jr z, .skip_fill
- ld c, a
- ld a, $7a
-.fill_loop
- ld [hli], a
- dec c
- jr nz, .fill_loop
-.skip_fill
- ld a, $7b
- ld [hl], a
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld a, [de]
- dec de
- dec a
- dec a
- jr z, .skip_section
- ld b, a
-.loop
- push hl
- ld a, $7c
- ld [hli], a
- ld a, [de]
- dec a
- dec a
- jr z, .skip_row
- ld c, a
- ld a, $7f
-.row_loop
- ld [hli], a
- dec c
- jr nz, .row_loop
-.skip_row
- ld a, $7c
- ld [hl], a
- pop hl
- push bc
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop
-.skip_section
- ld a, $7d
- ld [hli], a
- ld a, [de]
- dec a
- dec a
- jr z, .skip_remainder
- ld c, a
- ld a, $7a
-.final_loop
- ld [hli], a
- dec c
- jr nz, .final_loop
-.skip_remainder
- ld a, $7e
- ld [hl], a
- ret
-
-Function11d035: ; 11d035 (47:5035)
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.add_n_times
- jr z, .done_add_n_times
- add hl, bc
- dec a
- jr .add_n_times
-.done_add_n_times
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- push hl
- ld a, $79
- ld [hl], a
- pop hl
- push hl
- ld a, [de]
- dec a
- inc de
- ld c, a
- add hl, bc
- ld a, $7b
- ld [hl], a
- call .AddNMinusOneTimes
- ld a, $7e
- ld [hl], a
- pop hl
- push hl
- call .AddNMinusOneTimes
- ld a, $7d
- ld [hl], a
- pop hl
- push hl
- inc hl
- push hl
- call .AddNMinusOneTimes
- pop bc
- dec de
- ld a, [de]
- cp $2
- jr z, .skip
- dec a
- dec a
-.loop
- push af
- ld a, $7a
- ld [hli], a
- ld [bc], a
- inc bc
- pop af
- dec a
- jr nz, .loop
-.skip
- pop hl
- ld bc, $14
- add hl, bc
- push hl
- ld a, [de]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- inc de
- ld a, [de]
- cp $2
- ret z
- push bc
- dec a
- dec a
- ld c, a
- ld b, a
- ld de, $14
-.loop2
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .loop2
- pop hl
-.loop3
- ld a, $7c
- ld [hl], a
- add hl, de
- dec b
- jr nz, .loop3
- ret
-
-.AddNMinusOneTimes: ; 11d0ac (47:50ac)
- ld a, [de]
- dec a
- ld bc, SCREEN_WIDTH
-.add_n_minus_one_times
- add hl, bc
- dec a
- jr nz, .add_n_minus_one_times
- ret
-
-AnimateEZChatCursor: ; 11d0b6 (47:50b6)
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, [hl]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.Jumptable:
- dw .zero
- dw .one
- dw .two
- dw .three
- dw .four
- dw .five
- dw .six
- dw .seven
- dw .eight
- dw .nine
- dw .ten
-
-.zero ; 11d0dd (47:50dd)
- ld a, [wcd20] ; wcd20
- sla a
- ld hl, .Coords_Zero
- ld e, $1
- jr .load
-
-.one ; 11d0e9 (47:50e9)
- ld a, [wcd21]
- sla a
- ld hl, .Coords_One
- ld e, $2
- jr .load
-
-.two ; 11d0f5 (47:50f5)
- ld hl, .FramesetsIDs_Two
- ld a, [wcd22]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call ReinitSpriteAnimFrame
-
- ld a, [wcd22]
- sla a
- ld hl, .Coords_Two
- ld e, $4
- jr .load
-
-.three ; 11d10f (47:510f)
- ld a, SPRITE_ANIM_FRAMESET_27
- call ReinitSpriteAnimFrame
- ld a, [wMobileCommsJumptableIndex]
- sla a
- ld hl, .Coords_Three
- ld e, $8
-.load ; 11d11e (47:511e)
- push de
- ld e, a
- ld d, $0
- add hl, de
- push hl
- pop de
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- pop de
- ld a, e
- call .UpdateObjectFlags
- ret
-
-.four ; 11d134 (47:5134)
- ld a, SPRITE_ANIM_FRAMESET_27
- call ReinitSpriteAnimFrame
- ld a, [wcd2a]
- sla a
- ld hl, .Coords_Four
- ld e, $10
- jr .load
-
-.five ; 11d145 (47:5145)
- ld a, SPRITE_ANIM_FRAMESET_27
- call ReinitSpriteAnimFrame
- ld a, [wcd2c]
- sla a
- ld hl, .Coords_Five
- ld e, $20
- jr .load
-
-.six ; 11d156 (47:5156)
- ld a, SPRITE_ANIM_FRAMESET_2A
- call ReinitSpriteAnimFrame
- ; X = [wcd4a] * 8 + 24
- ld a, [wcd4a]
- sla a
- sla a
- sla a
- add $18
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld [hli], a
- ; Y = 48
- ld a, $30
- ld [hl], a
-
- ld a, $1
- ld e, a
- call .UpdateObjectFlags
- ret
-
-.seven ; 11d175 (47:5175)
- ld a, [wEZChatCursorYCoord]
- cp $4
- jr z, .frameset_26
- ld a, SPRITE_ANIM_FRAMESET_28
- jr .got_frameset
-
-.frameset_26
- ld a, SPRITE_ANIM_FRAMESET_26
-.got_frameset
- call ReinitSpriteAnimFrame
- ld a, [wEZChatCursorYCoord]
- cp $4
- jr z, .asm_11d1b1
- ; X = [wEZChatCursorXCoord] * 8 + 32
- ld a, [wEZChatCursorXCoord]
- sla a
- sla a
- sla a
- add $20
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld [hli], a
- ; Y = [wEZChatCursorYCoord] * 16 + 72
- ld a, [wEZChatCursorYCoord]
- sla a
- sla a
- sla a
- sla a
- add $48
- ld [hl], a
- ld a, $2
- ld e, a
- call .UpdateObjectFlags
- ret
-
-.asm_11d1b1
- ; X = [wEZChatCursorXCoord] * 40 + 24
- ld a, [wEZChatCursorXCoord]
- sla a
- sla a
- sla a
- ld e, a
- sla a
- sla a
- add e
- add $18
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld [hli], a
- ; Y = 138
- ld a, $8a
- ld [hl], a
- ld a, $2
- ld e, a
- call .UpdateObjectFlags
- ret
-
-.nine ; 11d1d1 (47:51d1)
- ld d, -13 * 8
- ld a, SPRITE_ANIM_FRAMESET_2C
- jr .eight_nine_load
-
-.eight ; 11d1d7 (47:51d7)
- ld d, 2 * 8
- ld a, SPRITE_ANIM_FRAMESET_2B
-.eight_nine_load ; 11d1db (47:51db)
- push de
- call ReinitSpriteAnimFrame
- ld a, [wcd4a]
- sla a
- sla a
- sla a
- ld e, a
- sla a
- add e
- add 8 * 8
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld [hld], a
- pop af
- ld [hl], a
- ld a, $4
- ld e, a
- call .UpdateObjectFlags
- ret
-
-.ten ; 11d1fc (47:51fc)
- ld a, SPRITE_ANIM_FRAMESET_26
- call ReinitSpriteAnimFrame
- ld a, $8
- ld e, a
- call .UpdateObjectFlags
- ret
-; 11d208 (47:5208)
-
-.Coords_Zero: ; 11d208
- dbpixel 1, 3, 5, 2
- dbpixel 7, 3, 5, 2
- dbpixel 13, 3, 5, 2
- dbpixel 1, 5, 5, 2
- dbpixel 7, 5, 5, 2
- dbpixel 13, 5, 5, 2
- dbpixel 1, 17, 5, 2
- dbpixel 7, 17, 5, 2
- dbpixel 13, 17, 5, 2
-
-.Coords_One: ; 11d21a
- dbpixel 1, 8, 5, 2
- dbpixel 7, 8, 5, 2
- dbpixel 13, 8, 5, 2
- dbpixel 1, 10, 5, 2
- dbpixel 7, 10, 5, 2
- dbpixel 13, 10, 5, 2
- dbpixel 1, 12, 5, 2
- dbpixel 7, 12, 5, 2
- dbpixel 13, 12, 5, 2
- dbpixel 1, 14, 5, 2
- dbpixel 7, 14, 5, 2
- dbpixel 13, 14, 5, 2
- dbpixel 1, 16, 5, 2
- dbpixel 7, 16, 5, 2
- dbpixel 13, 16, 5, 2
- dbpixel 1, 18, 5, 2
- dbpixel 7, 18, 5, 2
- dbpixel 13, 18, 5, 2
-
-.Coords_Two: ; 11d23e
- dbpixel 2, 9 ; 00
- dbpixel 3, 9 ; 01
- dbpixel 4, 9 ; 02
- dbpixel 5, 9 ; 03
- dbpixel 6, 9 ; 04
- dbpixel 2, 11 ; 05
- dbpixel 3, 11 ; 06
- dbpixel 4, 11 ; 07
- dbpixel 5, 11 ; 08
- dbpixel 6, 11 ; 09
- dbpixel 2, 13 ; 0a
- dbpixel 3, 13 ; 0b
- dbpixel 4, 13 ; 0c
- dbpixel 5, 13 ; 0d
- dbpixel 6, 13 ; 0e
- dbpixel 2, 15 ; 0f
- dbpixel 3, 15 ; 10
- dbpixel 4, 15 ; 11
- dbpixel 5, 15 ; 12
- dbpixel 6, 15 ; 13
- dbpixel 8, 9 ; 14
- dbpixel 9, 9 ; 15
- dbpixel 10, 9 ; 16
- dbpixel 11, 9 ; 17
- dbpixel 12, 9 ; 18
- dbpixel 8, 11 ; 19
- dbpixel 9, 11 ; 1a
- dbpixel 10, 11 ; 1b
- dbpixel 11, 11 ; 1c
- dbpixel 12, 11 ; 1d
- dbpixel 8, 13 ; 1e
- dbpixel 9, 13 ; 1f
- dbpixel 10, 13 ; 20
- dbpixel 11, 13 ; 21
- dbpixel 12, 13 ; 22
- dbpixel 14, 9 ; 23
- dbpixel 16, 9 ; 24
- dbpixel 18, 9 ; 25
- dbpixel 8, 15 ; 26
- dbpixel 9, 15 ; 27
- dbpixel 10, 15 ; 28
- dbpixel 11, 15 ; 29
- dbpixel 12, 15 ; 2a
- dbpixel 14, 11 ; 2b
- dbpixel 14, 13 ; 2c
- dbpixel 1, 18, 5, 2 ; 2d
- dbpixel 7, 18, 5, 2 ; 2e
- dbpixel 13, 18, 5, 2 ; 2f
-
-.Coords_Three: ; 11d29e
- dbpixel 2, 10
- dbpixel 8, 10
- dbpixel 14, 10
- dbpixel 2, 12
- dbpixel 8, 12
- dbpixel 14, 12
- dbpixel 2, 14
- dbpixel 8, 14
- dbpixel 14, 14
- dbpixel 2, 16
- dbpixel 8, 16
- dbpixel 14, 16
-
-.Coords_Four: ; 11d2b6
- dbpixel 16, 10
- dbpixel 16, 12
-
-.Coords_Five: ; 11d2ba
- dbpixel 4, 10
- dbpixel 4, 12
-
-.FramesetsIDs_Two: ; 11d2be
- db SPRITE_ANIM_FRAMESET_28 ; 00
- db SPRITE_ANIM_FRAMESET_28 ; 01
- db SPRITE_ANIM_FRAMESET_28 ; 02
- db SPRITE_ANIM_FRAMESET_28 ; 03
- db SPRITE_ANIM_FRAMESET_28 ; 04
- db SPRITE_ANIM_FRAMESET_28 ; 05
- db SPRITE_ANIM_FRAMESET_28 ; 06
- db SPRITE_ANIM_FRAMESET_28 ; 07
- db SPRITE_ANIM_FRAMESET_28 ; 08
- db SPRITE_ANIM_FRAMESET_28 ; 09
- db SPRITE_ANIM_FRAMESET_28 ; 0a
- db SPRITE_ANIM_FRAMESET_28 ; 0b
- db SPRITE_ANIM_FRAMESET_28 ; 0c
- db SPRITE_ANIM_FRAMESET_28 ; 0d
- db SPRITE_ANIM_FRAMESET_28 ; 0e
- db SPRITE_ANIM_FRAMESET_28 ; 0f
- db SPRITE_ANIM_FRAMESET_28 ; 10
- db SPRITE_ANIM_FRAMESET_28 ; 11
- db SPRITE_ANIM_FRAMESET_28 ; 12
- db SPRITE_ANIM_FRAMESET_28 ; 13
- db SPRITE_ANIM_FRAMESET_28 ; 14
- db SPRITE_ANIM_FRAMESET_28 ; 15
- db SPRITE_ANIM_FRAMESET_28 ; 16
- db SPRITE_ANIM_FRAMESET_28 ; 17
- db SPRITE_ANIM_FRAMESET_28 ; 18
- db SPRITE_ANIM_FRAMESET_28 ; 19
- db SPRITE_ANIM_FRAMESET_28 ; 1a
- db SPRITE_ANIM_FRAMESET_28 ; 1b
- db SPRITE_ANIM_FRAMESET_28 ; 1c
- db SPRITE_ANIM_FRAMESET_28 ; 1d
- db SPRITE_ANIM_FRAMESET_28 ; 1e
- db SPRITE_ANIM_FRAMESET_28 ; 1f
- db SPRITE_ANIM_FRAMESET_28 ; 20
- db SPRITE_ANIM_FRAMESET_28 ; 21
- db SPRITE_ANIM_FRAMESET_28 ; 22
- db SPRITE_ANIM_FRAMESET_28 ; 23
- db SPRITE_ANIM_FRAMESET_28 ; 24
- db SPRITE_ANIM_FRAMESET_28 ; 25
- db SPRITE_ANIM_FRAMESET_28 ; 26
- db SPRITE_ANIM_FRAMESET_28 ; 27
- db SPRITE_ANIM_FRAMESET_28 ; 28
- db SPRITE_ANIM_FRAMESET_28 ; 29
- db SPRITE_ANIM_FRAMESET_28 ; 2a
- db SPRITE_ANIM_FRAMESET_28 ; 2b
- db SPRITE_ANIM_FRAMESET_29 ; 2c
- db SPRITE_ANIM_FRAMESET_26 ; 2d
- db SPRITE_ANIM_FRAMESET_26 ; 2e
- db SPRITE_ANIM_FRAMESET_26 ; 2f
-
-.UpdateObjectFlags: ; 11d2ee (47:52ee)
- ld hl, wcd24
- and [hl]
- jr nz, .update_y_offset
- ld a, e
- ld hl, wcd23
- and [hl]
- jr z, .reset_y_offset
- ld hl, SPRITEANIMSTRUCT_0E
- add hl, bc
- ld a, [hl]
- and a
- jr z, .flip_bit_0
- dec [hl]
- ret
-
-.flip_bit_0
- ld a, $0
- ld [hld], a
- ld a, $1
- xor [hl]
- ld [hl], a
- and a
- jr nz, .update_y_offset
-.reset_y_offset
- ld hl, SPRITEANIMSTRUCT_YOFFSET
- add hl, bc
- xor a
- ld [hl], a
- ret
-
-.update_y_offset
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, $b0
- sub [hl]
- ld hl, SPRITEANIMSTRUCT_YOFFSET
- add hl, bc
- ld [hl], a
- ret
-
-Function11d323: ; 11d323
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_11d33a
- ld de, UnknBGPals
- ld bc, 16 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 11d33a
-
-Palette_11d33a:
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 16, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 23, 17, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; 11d3ba
-
-EZChat_GetSeenPokemonByKana: ; 11d3ba
- ld a, [rSVBK]
- push af
- ld hl, $c648
- ld a, w5_d800 % $100
- ld [wcd2d], a
- ld [hli], a
- ld a, w5_d800 / $100
- ld [wcd2e], a
- ld [hl], a
-
- ld a, SortedPokemon % $100
- ld [wcd2f], a
- ld a, SortedPokemon / $100
- ld [wcd30], a
-
- ld a, $c6a8 % $100
- ld [wcd31], a
- ld a, $c6a8 / $100
- ld [wcd32], a
-
- ld a, $c64a % $100
- ld [wcd33], a
- ld a, $c64a / $100
- ld [wcd34], a
-
- ld hl, EZChat_SortedWords
- ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4
-
-.MasterLoop: ; 11d3ef
- push af
-; read row
-; offset
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
-; size
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-; save the pointer to the next row
- push hl
-; add de to w3_d000
- ld hl, w3_d000
- add hl, de
-; recover de from wcd2d (default: w5_d800)
- ld a, [wcd2d]
- ld e, a
- ld a, [wcd2e]
- ld d, a
-; save bc for later
- push bc
-
-.loop1
-; copy 2*bc bytes from 3:hl to 5:de
- ld a, $3
- ld [rSVBK], a
- ld a, [hli]
- push af
- ld a, $5
- ld [rSVBK], a
- pop af
- ld [de], a
- inc de
-
- ld a, $3
- ld [rSVBK], a
- ld a, [hli]
- push af
- ld a, $5
- ld [rSVBK], a
- pop af
- ld [de], a
- inc de
-
- dec bc
- ld a, c
- or b
- jr nz, .loop1
-
-; recover the pointer from wcd2f (default: SortedPokemon)
- ld a, [wcd2f]
- ld l, a
- ld a, [wcd30]
- ld h, a
-; copy the pointer from [hl] to bc
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-; store the pointer to the next pointer back in wcd2f
- ld a, l
- ld [wcd2f], a
- ld a, h
- ld [wcd30], a
-; push pop that pointer to hl
- push bc
- pop hl
- ld c, $0
-.loop2
-; Have you seen this Pokemon?
- ld a, [hl]
- cp $ff
- jr z, .done
- call .CheckSeenMon
- jr nz, .next
-; If not, skip it.
- inc hl
- jr .loop2
-
-.next
-; If so, append it to the list at 5:de, and increase the count.
- ld a, [hli]
- ld [de], a
- inc de
- xor a
- ld [de], a
- inc de
- inc c
- jr .loop2
-
-.done
-; Remember the original value of bc from the table?
-; Well, the stack remembers it, and it's popping it to hl.
- pop hl
-; Add the number of seen Pokemon from the list.
- ld b, $0
- add hl, bc
-; Push pop to bc.
- push hl
- pop bc
-; Load the pointer from [wcd31] (default: $c6a8)
- ld a, [wcd31]
- ld l, a
- ld a, [wcd32]
- ld h, a
-; Save the quantity from bc to [hl]
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
-; Save the new value of hl to [wcd31]
- ld a, l
- ld [wcd31], a
- ld a, h
- ld [wcd32], a
-; Recover the pointer from [wcd33] (default: $c64a)
- ld a, [wcd33]
- ld l, a
- ld a, [wcd34]
- ld h, a
-; Save the current value of de there
- ld a, e
- ld [wcd2d], a
- ld [hli], a
- ld a, d
- ld [wcd2e], a
-; Save the new value of hl back to [wcd33]
- ld [hli], a
- ld a, l
- ld [wcd33], a
- ld a, h
- ld [wcd34], a
-; Next row
- pop hl
- pop af
- dec a
- jr z, .ExitMasterLoop
- jp .MasterLoop
-
-.ExitMasterLoop:
- pop af
- ld [rSVBK], a
- ret
-; 11d493
-
-.CheckSeenMon: ; 11d493
- push hl
- push bc
- push de
- dec a
- ld hl, rSVBK
- ld e, $1
- ld [hl], e
- call CheckSeenMon
- ld hl, rSVBK
- ld e, $5
- ld [hl], e
- pop de
- pop bc
- pop hl
- ret
-; 11d4aa
-
-EZChat_GetCategoryWordsByKana: ; 11d4aa
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-
- ; load pointers
- ld hl, MobileEZChatCategoryPointers
- ld bc, MobileEZChatData_WordAndPageCounts
-
- ; init WRAM registers
- xor a
- ld [wcd2d], a
- inc a
- ld [wcd2e], a
-
- ; enter the first loop
- ld a, 14
-.loop1
- push af
-
- ; load the pointer to the category
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
-
- ; skip to the attributes
- ld hl, 5 ; length of a string
- add hl, de
-
- ; get the number of words in the category
- ld a, [bc] ; number of entries to copy
- inc bc
- inc bc
- push bc
-
-.loop2
- push af
- push hl
-
- ; load offset at [hl]
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
-
- ; add to w3_d000
- ld hl, w3_d000
- add hl, de
-
- ; copy from wcd2d and increment [wcd2d] in place
- ld a, [wcd2d]
- ld [hli], a
- inc a
- ld [wcd2d], a
-
- ; copy from wcd2e
- ld a, [wcd2e]
- ld [hl], a
-
- ; next entry
- pop hl
- ld de, 8
- add hl, de
- pop af
- dec a
- jr nz, .loop2
-
- ; reset and go to next category
- ld hl, wcd2d
- xor a
- ld [hli], a
- inc [hl]
- pop bc
- pop hl
- pop af
- dec a
- jr nz, .loop1
- pop af
- ld [rSVBK], a
- ret
-; 11d4fe
-
-SortedPokemon:
-; Pokemon sorted by kana.
-; Notably, Rhydon is missing.
- dw .a
- dw .i
- dw .u
- dw .e
- dw .o
- dw .ka_ga
- dw .ki_gi
- dw .ku_gu
- dw .ke_ge
- dw .ko_go
- dw .sa_za
- dw .shi_ji
- dw .su_zu
- dw .se_ze
- dw .so_zo
- dw .ta_da
- dw .chi_dhi
- dw .tsu_du
- dw .te_de
- dw .to_do
- dw .na
- dw .ni
- dw .nu
- dw .ne
- dw .no
- dw .ha_ba_pa
- dw .hi_bi_pi
- dw .fu_bu_pu
- dw .he_be_pe
- dw .ho_bo_po
- dw .ma
- dw .mi
- dw .mu
- dw .me
- dw .mo
- dw .ya
- dw .yu
- dw .yo
- dw .ra
- dw .ri
- dw .ru
- dw .re
- dw .ro
- dw .wa
- dw .end
-
-.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1
-.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1
-.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1
-.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1
-.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1
-.ka_ga db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1
-.ki_gi db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1
-.ku_gu db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1
-.ke_ge db ABRA, GENGAR, TAUROS, -1
-.ko_go db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1
-.sa_za db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list
-.shi_ji db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1
-.su_zu db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1
-.se_ze db SQUIRTLE, CELEBI, -1
-.so_zo db WOBBUFFET, -1
-.ta_da db DUGTRIO, HORSEA, EXEGGCUTE, -1
-.chi_dhi db CHIKORITA, CHINCHOU, -1
-.tsu_du db SHUCKLE, -1
-.te_de db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1
-.to_do db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1
-.na db ODDISH, EXEGGUTOR, -1
-.ni db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1
-.nu db QUAGSIRE, -1
-.ne db NATU, XATU, -1
-.no db DUNSPARCE, -1
-.ha_ba_pa db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1
-.hi_bi_pi db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1
-.fu_bu_pu db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1
-.he_be_pe db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1
-.ho_bo_po db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1
-.ma db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1
-.mi db DRATINI, MEW, MEWTWO, MILTANK, -1
-.mu db MISDREAVUS, SMOOCHUM, -1
-.me db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1
-.mo db FLAAFFY, VENOMOTH, TANGELA, -1
-.ya db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1
-.yu db KADABRA, -1
-.yo db LARVITAR, NOCTOWL, -1
-.ra db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1
-.ri db CHARMELEON, CHARIZARD, URSARING, -1
-.ru db JYNX, LUGIA, -1
-.re db MAGNETON, LEDIAN, LEDYBA, -1
-.ro db VULPIX, -1
-.wa db JUMPLUFF, TOTODILE, MACHOP;, -1
-.end db -1
-; 11d67e
-
-GFX_11d67e:
-INCBIN "gfx/pokedex/select_start.2bpp"
-; 11d6de
-
-LZ_11d6de:
-INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-; 11da52
-
-MobileEZChatCategoryNames: ; 11da52
-; Fixed message categories
- db "ポケモン@@" ; 00
- db "タイプ@@@" ; 01
- db "あいさつ@@" ; 02
- db "ひと@@@@" ; 03
- db "バトル@@@" ; 04
- db "こえ@@@@" ; 05
- db "かいわ@@@" ; 06
- db "きもち@@@" ; 07
- db "じょうたい@" ; 08
- db "せいかつ@@" ; 09
- db "しゅみ@@@" ; 0a
- db "こうどう@@" ; 0b
- db "じかん@@@" ; 0c
- db "むすび@@@" ; 0d
- db "あれこれ@@" ; 0e
-; 11daac
-
-MobileEZChatCategoryPointers: ; 11daac
-; entries correspond to EZCHAT_* constants
- dw .Types ; 01
- dw .Greetings ; 02
- dw .People ; 03
- dw .Battle ; 04
- dw .Exclamations ; 05
- dw .Conversation ; 06
- dw .Feelings ; 07
- dw .Conditions ; 08
- dw .Life ; 09
- dw .Hobbies ; 0a
- dw .Actions ; 0b
- dw .Time ; 0c
- dw .Farewells ; 0d
- dw .ThisAndThat ; 0e
-
-.Types: ; 11dac8
- db "あく@@@", $26, $0, $0
- db "いわ@@@", $aa, $0, $0
- db "エスパー@", $da, $0, $0
- db "かくとう@", $4e, $1, $0
- db "くさ@@@", $ba, $1, $0
- db "ゴースト@", $e4, $1, $0
- db "こおり@@", $e6, $1, $0
- db "じめん@@", $68, $2, $0
- db "タイプ@@", $e8, $2, $0
- db "でんき@@", $8e, $3, $0
- db "どく@@@", $ae, $3, $0
- db "ドラゴン@", $bc, $3, $0
- db "ノーマル@", $22, $4, $0
- db "はがね@@", $36, $4, $0
- db "ひこう@@", $5e, $4, $0
- db "ほのお@@", $b2, $4, $0
- db "みず@@@", $f4, $4, $0
- db "むし@@@", $12, $5, $0
-
-.Greetings: ; 11db58
- db "ありがと@", $58, $0, $0
- db "ありがとう", $5a, $0, $0
- db "いくぜ!@", $80, $0, $0
- db "いくよ!@", $82, $0, $0
- db "いくわよ!", $84, $0, $0
- db "いやー@@", $a6, $0, $0
- db "おっす@@", $a, $1, $0
- db "おはつです", $22, $1, $0
- db "おめでとう", $2a, $1, $0
- db "ごめん@@", $f8, $1, $0
- db "ごめんよ@", $fa, $1, $0
- db "こらっ@@", $fc, $1, $0
- db "こんちは!", $a, $2, $0
- db "こんにちは", $10, $2, $0
- db "さようなら", $28, $2, $0
- db "サンキュー", $2e, $2, $0
- db "さんじょう", $30, $2, $0
- db "しっけい@", $48, $2, $0
- db "しつれい@", $4c, $2, $0
- db "じゃーね@", $6c, $2, $0
- db "すいません", $8c, $2, $0
- db "それじゃ@", $ca, $2, $0
- db "どうも@@", $a6, $3, $0
- db "なんじゃ@", $ee, $3, $0
- db "ハーイ@@", $2c, $4, $0
- db "はいはい@", $32, $4, $0
- db "バイバイ@", $34, $4, $0
- db "へイ@@@", $8a, $4, $0
- db "またね@@", $de, $4, $0
- db "もしもし@", $32, $5, $0
- db "やあ@@@", $3e, $5, $0
- db "やっほー@", $4e, $5, $0
- db "よう@@@", $62, $5, $0
- db "ようこそ@", $64, $5, $0
- db "よろしく@", $80, $5, $0
- db "らっしゃい", $94, $5, $0
-
-.People: ; 11dc78
- db "あいて@@", $1c, $0, $0
- db "あたし@@", $36, $0, $0
- db "あなた@@", $40, $0, $0
- db "あなたが@", $42, $0, $0
- db "あなたに@", $44, $0, $0
- db "あなたの@", $46, $0, $0
- db "あなたは@", $48, $0, $0
- db "あなたを@", $4a, $0, $0
- db "おかあさん", $e8, $0, $0
- db "おじいさん", $fc, $0, $0
- db "おじさん@", $2, $1, $0
- db "おとうさん", $e, $1, $0
- db "おとこのこ", $10, $1, $0
- db "おとな@@", $14, $1, $0
- db "おにいさん", $16, $1, $0
- db "おねえさん", $18, $1, $0
- db "おばあさん", $1c, $1, $0
- db "おばさん@", $20, $1, $0
- db "おれさま@", $34, $1, $0
- db "おんなのこ", $3a, $1, $0
- db "ガール@@", $40, $1, $0
- db "かぞく@@", $52, $1, $0
- db "かのじょ@", $72, $1, $0
- db "かれ@@@", $7c, $1, $0
- db "きみ@@@", $9a, $1, $0
- db "きみが@@", $9c, $1, $0
- db "きみに@@", $9e, $1, $0
- db "きみの@@", $a0, $1, $0
- db "きみは@@", $a2, $1, $0
- db "きみを@@", $a4, $1, $0
- db "ギャル@@", $ae, $1, $0
- db "きょうだい", $b2, $1, $0
- db "こども@@", $f0, $1, $0
- db "じぶん@@", $54, $2, $0
- db "じぶんが@", $56, $2, $0
- db "じぶんに@", $58, $2, $0
- db "じぶんの@", $5a, $2, $0
- db "じぶんは@", $5c, $2, $0
- db "じぶんを@", $5e, $2, $0
- db "だれ@@@", $18, $3, $0
- db "だれか@@", $1a, $3, $0
- db "だれが@@", $1c, $3, $0
- db "だれに@@", $1e, $3, $0
- db "だれの@@", $20, $3, $0
- db "だれも@@", $22, $3, $0
- db "だれを@@", $24, $3, $0
- db "ちゃん@@", $38, $3, $0
- db "ともだち@", $b8, $3, $0
- db "なかま@@", $d4, $3, $0
- db "ひと@@@", $62, $4, $0
- db "ボーイ@@", $98, $4, $0
- db "ボク@@@", $a0, $4, $0
- db "ボクが@@", $a2, $4, $0
- db "ボクに@@", $a4, $4, $0
- db "ボクの@@", $a6, $4, $0
- db "ボクは@@", $a8, $4, $0
- db "ボクを@@", $aa, $4, $0
- db "みんな@@", $4, $5, $0
- db "みんなが@", $6, $5, $0
- db "みんなに@", $8, $5, $0
- db "みんなの@", $a, $5, $0
- db "みんなは@", $c, $5, $0
- db "ライバル@", $8a, $5, $0
- db "わたし@@", $c2, $5, $0
- db "わたしが@", $c4, $5, $0
- db "わたしに@", $c6, $5, $0
- db "わたしの@", $c8, $5, $0
- db "わたしは@", $ca, $5, $0
- db "わたしを@", $cc, $5, $0
-
-.Battle: ; 11dea0
- db "あいしょう", $18, $0, $0
- db "いけ!@@", $88, $0, $0
- db "いちばん@", $96, $0, $0
- db "かくご@@", $4c, $1, $0
- db "かたせて@", $54, $1, $0
- db "かち@@@", $56, $1, $0
- db "かつ@@@", $58, $1, $0
- db "かった@@", $60, $1, $0
- db "かったら@", $62, $1, $0
- db "かって@@", $64, $1, $0
- db "かてない@", $66, $1, $0
- db "かてる@@", $68, $1, $0
- db "かなわない", $70, $1, $0
- db "きあい@@", $84, $1, $0
- db "きめた@@", $a8, $1, $0
- db "きりふだ@", $b6, $1, $0
- db "くらえ@@", $c2, $1, $0
- db "こい!@@", $da, $1, $0
- db "こうげき@", $e0, $1, $0
- db "こうさん@", $e2, $1, $0
- db "こんじょう", $8, $2, $0
- db "さいのう@", $16, $2, $0
- db "さくせん@", $1a, $2, $0
- db "さばき@@", $22, $2, $0
- db "しょうぶ@", $7e, $2, $0
- db "しょうり@", $80, $2, $0
- db "せめ@@@", $b4, $2, $0
- db "センス@@", $b6, $2, $0
- db "たいせん@", $e6, $2, $0
- db "たたかい@", $f6, $2, $0
- db "ちから@@", $32, $3, $0
- db "チャレンジ", $36, $3, $0
- db "つよい@@", $58, $3, $0
- db "つよすぎ@", $5a, $3, $0
- db "つらい@@", $5c, $3, $0
- db "つらかった", $5e, $3, $0
- db "てかげん@", $6c, $3, $0
- db "てき@@@", $6e, $3, $0
- db "てんさい@", $90, $3, $0
- db "でんせつ@", $94, $3, $0
- db "トレーナー", $c6, $3, $0
- db "にげ@@@", $4, $4, $0
- db "ぬるい@@", $10, $4, $0
- db "ねらう@@", $16, $4, $0
- db "バトル@@", $4a, $4, $0
- db "ファイト@", $72, $4, $0
- db "ふっかつ@", $78, $4, $0
- db "ポイント@", $94, $4, $0
- db "ポケモン@", $ac, $4, $0
- db "ほんき@@", $bc, $4, $0
- db "まいった!", $c4, $4, $0
- db "まけ@@@", $c8, $4, $0
- db "まけたら@", $ca, $4, $0
- db "まけて@@", $cc, $4, $0
- db "まける@@", $ce, $4, $0
- db "まもり@@", $ea, $4, $0
- db "みかた@@", $f2, $4, $0
- db "みとめない", $fe, $4, $0
- db "みとめる@", $0, $5, $0
- db "むてき@@", $16, $5, $0
- db "もらった!", $3c, $5, $0
- db "よゆう@@", $7a, $5, $0
- db "よわい@@", $82, $5, $0
- db "よわすぎ@", $84, $5, $0
- db "らくしょう", $8e, $5, $0
- db "りーダー@", $9e, $5, $0
- db "ルール@@", $a0, $5, $0
- db "レべル@@", $a6, $5, $0
- db "わざ@@@", $be, $5, $0
-
-.Exclamations: ; 11e0c8
- db "!@@@@", $0, $0, $0
- db "!!@@@", $2, $0, $0
- db "!?@@@", $4, $0, $0
- db "?@@@@", $6, $0, $0
- db "…@@@@", $8, $0, $0
- db "…!@@@", $a, $0, $0
- db "………@@", $c, $0, $0
- db "ー@@@@", $e, $0, $0
- db "ーーー@@", $10, $0, $0
- db "あーあ@@", $14, $0, $0
- db "あーん@@", $16, $0, $0
- db "あははー@", $52, $0, $0
- db "あら@@@", $54, $0, $0
- db "いえ@@@", $72, $0, $0
- db "イエス@@", $74, $0, $0
- db "うう@@@", $ac, $0, $0
- db "うーん@@", $ae, $0, $0
- db "うおー!@", $b0, $0, $0
- db "うおりゃー", $b2, $0, $0
- db "うひょー@", $bc, $0, $0
- db "うふふ@@", $be, $0, $0
- db "うわー@@", $ca, $0, $0
- db "うわーん@", $cc, $0, $0
- db "ええ@@@", $d2, $0, $0
- db "えー@@@", $d4, $0, $0
- db "えーん@@", $d6, $0, $0
- db "えへへ@@", $dc, $0, $0
- db "おいおい@", $e0, $0, $0
- db "おお@@@", $e2, $0, $0
- db "おっと@@", $c, $1, $0
- db "がーん@@", $42, $1, $0
- db "キャー@@", $aa, $1, $0
- db "ギャー@@", $ac, $1, $0
- db "ぐふふふふ", $bc, $1, $0
- db "げっ@@@", $ce, $1, $0
- db "しくしく@", $3e, $2, $0
- db "ちえっ@@", $2e, $3, $0
- db "てへ@@@", $86, $3, $0
- db "ノー@@@", $20, $4, $0
- db "はあー@@", $2a, $4, $0
- db "はい@@@", $30, $4, $0
- db "はっはっは", $48, $4, $0
- db "ひいー@@", $56, $4, $0
- db "ひゃあ@@", $6a, $4, $0
- db "ふっふっふ", $7c, $4, $0
- db "ふにゃ@@", $7e, $4, $0
- db "ププ@@@", $80, $4, $0
- db "ふふん@@", $82, $4, $0
- db "ふん@@@", $88, $4, $0
- db "へっへっへ", $8e, $4, $0
- db "へへー@@", $90, $4, $0
- db "ほーほほほ", $9c, $4, $0
- db "ほら@@@", $b6, $4, $0
- db "まあ@@@", $c0, $4, $0
- db "むきー!!", $10, $5, $0
- db "むふー@@", $18, $5, $0
- db "むふふ@@", $1a, $5, $0
- db "むむ@@@", $1c, $5, $0
- db "よーし@@", $6a, $5, $0
- db "よし!@@", $72, $5, $0
- db "ラララ@@", $98, $5, $0
- db "わーい@@", $ac, $5, $0
- db "わーん!!", $b0, $5, $0
- db "ワォ@@@", $b2, $5, $0
- db "わっ!!@", $ce, $5, $0
- db "わははは!", $d0, $5, $0
-
-.Conversation: ; 11e2d8
- db "あのね@@", $50, $0, $0
- db "あんまり@", $6e, $0, $0
- db "いじわる@", $8e, $0, $0
- db "うそ@@@", $b6, $0, $0
- db "うむ@@@", $c4, $0, $0
- db "おーい@@", $e4, $0, $0
- db "おすすめ@", $6, $1, $0
- db "おばかさん", $1e, $1, $0
- db "かなり@@", $6e, $1, $0
- db "から@@@", $7a, $1, $0
- db "きぶん@@", $98, $1, $0
- db "けど@@@", $d6, $1, $0
- db "こそ@@@", $ea, $1, $0
- db "こと@@@", $ee, $1, $0
- db "さあ@@@", $12, $2, $0
- db "さっぱり@", $1e, $2, $0
- db "さて@@@", $20, $2, $0
- db "じゅうぶん", $72, $2, $0
- db "すぐ@@@", $94, $2, $0
- db "すごく@@", $98, $2, $0
- db "すこしは@", $9a, $2, $0
- db "すっっごい", $a0, $2, $0
- db "ぜーんぜん", $b0, $2, $0
- db "ぜったい@", $b2, $2, $0
- db "それで@@", $ce, $2, $0
- db "だけ@@@", $f2, $2, $0
- db "だって@@", $fc, $2, $0
- db "たぶん@@", $6, $3, $0
- db "たら@@@", $14, $3, $0
- db "ちょー@@", $3a, $3, $0
- db "ちょっと@", $3c, $3, $0
- db "ったら@@", $4e, $3, $0
- db "って@@@", $50, $3, $0
- db "ていうか@", $62, $3, $0
- db "でも@@@", $88, $3, $0
- db "どうしても", $9c, $3, $0
- db "とうぜん@", $a0, $3, $0
- db "どうぞ@@", $a2, $3, $0
- db "とりあえず", $be, $3, $0
- db "なあ@@@", $cc, $3, $0
- db "なんて@@", $f4, $3, $0
- db "なんでも@", $fc, $3, $0
- db "なんとか@", $fe, $3, $0
- db "には@@@", $8, $4, $0
- db "バッチり@", $46, $4, $0
- db "ばりばり@", $52, $4, $0
- db "ほど@@@", $b0, $4, $0
- db "ほんと@@", $be, $4, $0
- db "まさに@@", $d0, $4, $0
- db "マジ@@@", $d2, $4, $0
- db "マジで@@", $d4, $4, $0
- db "まったく@", $e4, $4, $0
- db "まで@@@", $e6, $4, $0
- db "まるで@@", $ec, $4, $0
- db "ムード@@", $e, $5, $0
- db "むしろ@@", $14, $5, $0
- db "めちゃ@@", $24, $5, $0
- db "めっぽう@", $28, $5, $0
- db "もう@@@", $2c, $5, $0
- db "モード@@", $2e, $5, $0
- db "もっと@@", $36, $5, $0
- db "もはや@@", $38, $5, $0
- db "やっと@@", $4a, $5, $0
- db "やっぱり@", $4c, $5, $0
- db "より@@@", $7c, $5, $0
- db "れば@@@", $a4, $5, $0
-
-.Feelings: ; 11e4e8
- db "あいたい@", $1a, $0, $0
- db "あそびたい", $32, $0, $0
- db "いきたい@", $7c, $0, $0
- db "うかれて@", $b4, $0, $0
- db "うれしい@", $c6, $0, $0
- db "うれしさ@", $c8, $0, $0
- db "エキサイト", $d8, $0, $0
- db "えらい@@", $de, $0, $0
- db "おかしい@", $ec, $0, $0
- db "ォッケー@", $8, $1, $0
- db "かえりたい", $48, $1, $0
- db "がっくし@", $5a, $1, $0
- db "かなしい@", $6c, $1, $0
- db "がんばって", $80, $1, $0
- db "きがしない", $86, $1, $0
- db "きがする@", $88, $1, $0
- db "ききたい@", $8a, $1, $0
- db "きになる@", $90, $1, $0
- db "きのせい@", $96, $1, $0
- db "きらい@@", $b4, $1, $0
- db "くやしい@", $be, $1, $0
- db "くやしさ@", $c0, $1, $0
- db "さみしい@", $24, $2, $0
- db "ざんねん@", $32, $2, $0
- db "しあわせ@", $36, $2, $0
- db "したい@@", $44, $2, $0
- db "したくない", $46, $2, $0
- db "しまった@", $64, $2, $0
- db "しょんぼり", $82, $2, $0
- db "すき@@@", $92, $2, $0
- db "だいきらい", $da, $2, $0
- db "たいくつ@", $dc, $2, $0
- db "だいじ@@", $de, $2, $0
- db "だいすき@", $e4, $2, $0
- db "たいへん@", $ea, $2, $0
- db "たのしい@", $0, $3, $0
- db "たのしすぎ", $2, $3, $0
- db "たべたい@", $8, $3, $0
- db "ダメダメ@", $e, $3, $0
- db "たりない@", $16, $3, $0
- db "ちくしょー", $34, $3, $0
- db "どうしよう", $9e, $3, $0
- db "ドキドキ@", $ac, $3, $0
- db "ナイス@@", $d0, $3, $0
- db "のみたい@", $26, $4, $0
- db "びっくり@", $60, $4, $0
- db "ふあん@@", $74, $4, $0
- db "ふらふら@", $86, $4, $0
- db "ほしい@@", $ae, $4, $0
- db "ボロボロ@", $b8, $4, $0
- db "まだまだ@", $e0, $4, $0
- db "まてない@", $e8, $4, $0
- db "まんぞく@", $f0, $4, $0
- db "みたい@@", $f8, $4, $0
- db "めずらしい", $22, $5, $0
- db "メラメラ@", $2a, $5, $0
- db "やだ@@@", $46, $5, $0
- db "やったー@", $48, $5, $0
- db "やばい@@", $50, $5, $0
- db "やばすぎる", $52, $5, $0
- db "やられた@", $54, $5, $0
- db "やられて@", $56, $5, $0
- db "よかった@", $6e, $5, $0
- db "ラブラブ@", $96, $5, $0
- db "ロマン@@", $a8, $5, $0
- db "ろんがい@", $aa, $5, $0
- db "わから@@", $b4, $5, $0
- db "わかり@@", $b6, $5, $0
- db "わくわく@", $ba, $5, $0
-
-.Conditions: ; 11e710
- db "あつい@@", $38, $0, $0
- db "あった@@", $3a, $0, $0
- db "あり@@@", $56, $0, $0
- db "ある@@@", $5e, $0, $0
- db "あわてて@", $6a, $0, $0
- db "いい@@@", $70, $0, $0
- db "いか@@@", $76, $0, $0
- db "イカス@@", $78, $0, $0
- db "いきおい@", $7a, $0, $0
- db "いける@@", $8a, $0, $0
- db "いじょう@", $8c, $0, $0
- db "いそがしい", $90, $0, $0
- db "いっしょに", $9a, $0, $0
- db "いっぱい@", $9c, $0, $0
- db "いない@@", $a0, $0, $0
- db "いや@@@", $a4, $0, $0
- db "いる@@@", $a8, $0, $0
- db "うまい@@", $c0, $0, $0
- db "うまく@@", $c2, $0, $0
- db "おおきい@", $e6, $0, $0
- db "おくれ@@", $f2, $0, $0
- db "おしい@@", $fa, $0, $0
- db "おもしろい", $2c, $1, $0
- db "おもしろく", $2e, $1, $0
- db "かっこいい", $5c, $1, $0
- db "かわいい@", $7e, $1, $0
- db "かんぺき@", $82, $1, $0
- db "けっこう@", $d0, $1, $0
- db "げんき@@", $d8, $1, $0
- db "こわい@@", $6, $2, $0
- db "さいこう@", $14, $2, $0
- db "さむい@@", $26, $2, $0
- db "さわやか@", $2c, $2, $0
- db "しかたない", $38, $2, $0
- db "すごい@@", $96, $2, $0
- db "すごすぎ@", $9c, $2, $0
- db "すてき@@", $a4, $2, $0
- db "たいした@", $e0, $2, $0
- db "だいじょぶ", $e2, $2, $0
- db "たかい@@", $ec, $2, $0
- db "ただしい@", $f8, $2, $0
- db "だめ@@@", $c, $3, $0
- db "ちいさい@", $2c, $3, $0
- db "ちがう@@", $30, $3, $0
- db "つかれ@@", $48, $3, $0
- db "とくい@@", $b0, $3, $0
- db "とまらない", $b6, $3, $0
- db "ない@@@", $ce, $3, $0
- db "なかった@", $d2, $3, $0
- db "なし@@@", $d8, $3, $0
- db "なって@@", $dc, $3, $0
- db "はやい@@", $50, $4, $0
- db "ひかる@@", $5a, $4, $0
- db "ひくい@@", $5c, $4, $0
- db "ひどい@@", $64, $4, $0
- db "ひとりで@", $66, $4, $0
- db "ひま@@@", $68, $4, $0
- db "ふそく@@", $76, $4, $0
- db "へた@@@", $8c, $4, $0
- db "まちがって", $e2, $4, $0
- db "やさしい@", $42, $5, $0
- db "よく@@@", $70, $5, $0
- db "よわって@", $86, $5, $0
- db "らく@@@", $8c, $5, $0
- db "らしい@@", $90, $5, $0
- db "わるい@@", $d4, $5, $0
-
-.Life: ; 11e920
- db "アルバイト", $64, $0, $0
- db "うち@@@", $ba, $0, $0
- db "おかね@@", $ee, $0, $0
- db "おこづかい", $f4, $0, $0
- db "おふろ@@", $24, $1, $0
- db "がっこう@", $5e, $1, $0
- db "きねん@@", $92, $1, $0
- db "グループ@", $c6, $1, $0
- db "ゲット@@", $d2, $1, $0
- db "こうかん@", $de, $1, $0
- db "しごと@@", $40, $2, $0
- db "しゅぎょう", $74, $2, $0
- db "じゅぎょう", $76, $2, $0
- db "じゅく@@", $78, $2, $0
- db "しんか@@", $88, $2, $0
- db "ずかん@@", $90, $2, $0
- db "せいかつ@", $ae, $2, $0
- db "せんせい@", $b8, $2, $0
- db "センター@", $ba, $2, $0
- db "タワー@@", $28, $3, $0
- db "つうしん@", $40, $3, $0
- db "テスト@@", $7e, $3, $0
- db "テレビ@@", $8c, $3, $0
- db "でんわ@@", $96, $3, $0
- db "どうぐ@@", $9a, $3, $0
- db "トレード@", $c4, $3, $0
- db "なまえ@@", $e8, $3, $0
- db "ニュース@", $a, $4, $0
- db "にんき@@", $c, $4, $0
- db "パーティー", $2e, $4, $0
- db "べんきょう", $92, $4, $0
- db "マシン@@", $d6, $4, $0
- db "めいし@@", $1e, $5, $0
- db "メッセージ", $26, $5, $0
- db "もようがえ", $3a, $5, $0
- db "ゆめ@@@", $5a, $5, $0
- db "ようちえん", $66, $5, $0
- db "ラジォ@@", $92, $5, $0
- db "ワールド@", $ae, $5, $0
-
-.Hobbies: ; 11ea58
- db "アイドル@", $1e, $0, $0
- db "アニメ@@", $4c, $0, $0
- db "うた@@@", $b8, $0, $0
- db "えいが@@", $d0, $0, $0
- db "おかし@@", $ea, $0, $0
- db "おしゃべり", $4, $1, $0
- db "おままごと", $28, $1, $0
- db "おもちゃ@", $30, $1, $0
- db "おんがく@", $38, $1, $0
- db "カード@@", $3e, $1, $0
- db "かいもの@", $46, $1, $0
- db "グルメ@@", $c8, $1, $0
- db "ゲーム@@", $cc, $1, $0
- db "ざっし@@", $1c, $2, $0
- db "さんぽ@@", $34, $2, $0
- db "じてんしゃ", $50, $2, $0
- db "しゅみ@@", $7a, $2, $0
- db "スポーツ@", $a8, $2, $0
- db "ダイエット", $d8, $2, $0
- db "たからもの", $f0, $2, $0
- db "たび@@@", $4, $3, $0
- db "ダンス@@", $2a, $3, $0
- db "つり@@@", $60, $3, $0
- db "デート@@", $6a, $3, $0
- db "でんしゃ@", $92, $3, $0
- db "ぬいぐるみ", $e, $4, $0
- db "パソコン@", $3e, $4, $0
- db "はな@@@", $4c, $4, $0
- db "ヒーロー@", $58, $4, $0
- db "ひるね@@", $6e, $4, $0
- db "ヒロイン@", $70, $4, $0
- db "ぼうけん@", $96, $4, $0
- db "ボード@@", $9a, $4, $0
- db "ボール@@", $9e, $4, $0
- db "ほん@@@", $ba, $4, $0
- db "マンガ@@", $ee, $4, $0
- db "やくそく@", $40, $5, $0
- db "やすみ@@", $44, $5, $0
- db "よてい@@", $74, $5, $0
-
-.Actions: ; 11eb90
- db "あう@@@", $20, $0, $0
- db "あきらめ@", $24, $0, $0
- db "あげる@@", $28, $0, $0
- db "あせる@@", $2e, $0, $0
- db "あそび@@", $30, $0, $0
- db "あそぶ@@", $34, $0, $0
- db "あつめ@@", $3e, $0, $0
- db "あるき@@", $60, $0, $0
- db "あるく@@", $62, $0, $0
- db "いく@@@", $7e, $0, $0
- db "いけ@@@", $86, $0, $0
- db "おき@@@", $f0, $0, $0
- db "おこり@@", $f6, $0, $0
- db "おこる@@", $f8, $0, $0
- db "おしえ@@", $fe, $0, $0
- db "おしえて@", $0, $1, $0
- db "おねがい@", $1a, $1, $0
- db "おぼえ@@", $26, $1, $0
- db "かえる@@", $4a, $1, $0
- db "がまん@@", $74, $1, $0
- db "きく@@@", $8c, $1, $0
- db "きたえ@@", $8e, $1, $0
- db "きめ@@@", $a6, $1, $0
- db "くる@@@", $c4, $1, $0
- db "さがし@@", $18, $2, $0
- db "さわぎ@@", $2a, $2, $0
- db "した@@@", $42, $2, $0
- db "しって@@", $4a, $2, $0
- db "して@@@", $4e, $2, $0
- db "しない@@", $52, $2, $0
- db "しまう@@", $60, $2, $0
- db "じまん@@", $66, $2, $0
- db "しらない@", $84, $2, $0
- db "しる@@@", $86, $2, $0
- db "しんじて@", $8a, $2, $0
- db "する@@@", $aa, $2, $0
- db "たべる@@", $a, $3, $0
- db "つかう@@", $42, $3, $0
- db "つかえ@@", $44, $3, $0
- db "つかって@", $46, $3, $0
- db "できない@", $70, $3, $0
- db "できる@@", $72, $3, $0
- db "でない@@", $84, $3, $0
- db "でる@@@", $8a, $3, $0
- db "なげる@@", $d6, $3, $0
- db "なやみ@@", $ea, $3, $0
- db "ねられ@@", $18, $4, $0
- db "ねる@@@", $1a, $4, $0
- db "のがし@@", $24, $4, $0
- db "のむ@@@", $28, $4, $0
- db "はしり@@", $3a, $4, $0
- db "はしる@@", $3c, $4, $0
- db "はたらき@", $40, $4, $0
- db "はたらく@", $42, $4, $0
- db "はまって@", $4e, $4, $0
- db "ぶつけ@@", $7a, $4, $0
- db "ほめ@@@", $b4, $4, $0
- db "みせて@@", $f6, $4, $0
- db "みて@@@", $fc, $4, $0
- db "みる@@@", $2, $5, $0
- db "めざす@@", $20, $5, $0
- db "もって@@", $34, $5, $0
- db "ゆずる@@", $58, $5, $0
- db "ゆるす@@", $5c, $5, $0
- db "ゆるせ@@", $5e, $5, $0
- db "られない@", $9a, $5, $0
- db "られる@@", $9c, $5, $0
- db "わかる@@", $b8, $5, $0
- db "わすれ@@", $c0, $5, $0
-
-.Time: ; 11edb8
- db "あき@@@", $22, $0, $0
- db "あさ@@@", $2a, $0, $0
- db "あした@@", $2c, $0, $0
- db "いちにち@", $94, $0, $0
- db "いつか@@", $98, $0, $0
- db "いつも@@", $9e, $0, $0
- db "いま@@@", $a2, $0, $0
- db "えいえん@", $ce, $0, $0
- db "おととい@", $12, $1, $0
- db "おわり@@", $36, $1, $0
- db "かようび@", $78, $1, $0
- db "きのう@@", $94, $1, $0
- db "きょう@@", $b0, $1, $0
- db "きんようび", $b8, $1, $0
- db "げつようび", $d4, $1, $0
- db "このあと@", $f4, $1, $0
- db "このまえ@", $f6, $1, $0
- db "こんど@@", $c, $2, $0
- db "じかん@@", $3c, $2, $0
- db "じゅうねん", $70, $2, $0
- db "すいようび", $8e, $2, $0
- db "スタート@", $9e, $2, $0
- db "ずっと@@", $a2, $2, $0
- db "ストップ@", $a6, $2, $0
- db "そのうち@", $c4, $2, $0
- db "ついに@@", $3e, $3, $0
- db "つぎ@@@", $4a, $3, $0
- db "どようび@", $ba, $3, $0
- db "なつ@@@", $da, $3, $0
- db "にちようび", $6, $4, $0
- db "はじめ@@", $38, $4, $0
- db "はる@@@", $54, $4, $0
- db "ひる@@@", $6c, $4, $0
- db "ふゆ@@@", $84, $4, $0
- db "まいにち@", $c6, $4, $0
- db "もくようび", $30, $5, $0
- db "よなか@@", $76, $5, $0
- db "よる@@@", $7e, $5, $0
- db "らいしゅう", $88, $5, $0
-
-.Farewells: ; 11eef0
- db "いたします", $92, $0, $0
- db "おります@", $32, $1, $0
- db "か!?@@", $3c, $1, $0
- db "かい?@@", $44, $1, $0
- db "かしら?@", $50, $1, $0
- db "かな?@@", $6a, $1, $0
- db "かも@@@", $76, $1, $0
- db "くれ@@@", $ca, $1, $0
- db "ございます", $e8, $1, $0
- db "しがち@@", $3a, $2, $0
- db "します@@", $62, $2, $0
- db "じゃ@@@", $6a, $2, $0
- db "じゃん@@", $6e, $2, $0
- db "しよう@@", $7c, $2, $0
- db "ぜ!@@@", $ac, $2, $0
- db "ぞ!@@@", $bc, $2, $0
- db "た@@@@", $d4, $2, $0
- db "だ@@@@", $d6, $2, $0
- db "だからね@", $ee, $2, $0
- db "だぜ@@@", $f4, $2, $0
- db "だった@@", $fa, $2, $0
- db "だね@@@", $fe, $2, $0
- db "だよ@@@", $10, $3, $0
- db "だよねー!", $12, $3, $0
- db "だわ@@@", $26, $3, $0
- db "ッス@@@", $4c, $3, $0
- db "ってかんじ", $52, $3, $0
- db "っぱなし@", $54, $3, $0
- db "つもり@@", $56, $3, $0
- db "ていない@", $64, $3, $0
- db "ている@@", $66, $3, $0
- db "でーす!@", $68, $3, $0
- db "でした@@", $74, $3, $0
- db "でしょ?@", $76, $3, $0
- db "でしょー!", $78, $3, $0
- db "です@@@", $7a, $3, $0
- db "ですか?@", $7c, $3, $0
- db "ですよ@@", $80, $3, $0
- db "ですわ@@", $82, $3, $0
- db "どうなの?", $a4, $3, $0
- db "どうよ?@", $a8, $3, $0
- db "とかいって", $aa, $3, $0
- db "なの@@@", $e0, $3, $0
- db "なのか@@", $e2, $3, $0
- db "なのだ@@", $e4, $3, $0
- db "なのよ@@", $e6, $3, $0
- db "なんだね@", $f2, $3, $0
- db "なんです@", $f8, $3, $0
- db "なんてね@", $fa, $3, $0
- db "ね@@@@", $12, $4, $0
- db "ねー@@@", $14, $4, $0
- db "の@@@@", $1c, $4, $0
- db "の?@@@", $1e, $4, $0
- db "ばっかり@", $44, $4, $0
- db "まーす!@", $c2, $4, $0
- db "ます@@@", $d8, $4, $0
- db "ますわ@@", $da, $4, $0
- db "ません@@", $dc, $4, $0
- db "みたいな@", $fa, $4, $0
- db "よ!@@@", $60, $5, $0
- db "よー@@@", $68, $5, $0
- db "よーん@@", $6c, $5, $0
- db "よね@@@", $78, $5, $0
- db "るよ@@@", $a2, $5, $0
- db "わけ@@@", $bc, $5, $0
- db "わよ!@@", $d2, $5, $0
-
-.ThisAndThat: ; 11f100
- db "ああ@@@", $12, $0, $0
- db "あっち@@", $3c, $0, $0
- db "あの@@@", $4e, $0, $0
- db "ありゃ@@", $5c, $0, $0
- db "あれ@@@", $66, $0, $0
- db "あれは@@", $68, $0, $0
- db "あんな@@", $6c, $0, $0
- db "こう@@@", $dc, $1, $0
- db "こっち@@", $ec, $1, $0
- db "この@@@", $f2, $1, $0
- db "こりゃ@@", $fe, $1, $0
- db "これ@@@", $0, $2, $0
- db "これだ!@", $2, $2, $0
- db "これは@@", $4, $2, $0
- db "こんな@@", $e, $2, $0
- db "そう@@@", $be, $2, $0
- db "そっち@@", $c0, $2, $0
- db "その@@@", $c2, $2, $0
- db "そりゃ@@", $c6, $2, $0
- db "それ@@@", $c8, $2, $0
- db "それだ!@", $cc, $2, $0
- db "それは@@", $d0, $2, $0
- db "そんな@@", $d2, $2, $0
- db "どう@@@", $98, $3, $0
- db "どっち@@", $b2, $3, $0
- db "どの@@@", $b4, $3, $0
- db "どりゃ@@", $c0, $3, $0
- db "どれ@@@", $c2, $3, $0
- db "どれを@@", $c8, $3, $0
- db "どんな@@", $ca, $3, $0
- db "なに@@@", $de, $3, $0
- db "なんか@@", $ec, $3, $0
- db "なんだ@@", $f0, $3, $0
- db "なんで@@", $f6, $3, $0
- db "なんなんだ", $0, $4, $0
- db "なんの@@", $2, $4, $0
-; 11f220
-
-MobileEZChatData_WordAndPageCounts:
-macro_11f220: macro
-; parameter: number of words
- db \1
-; 12 words per page (0-based indexing)
-x = \1 / 12
-if \1 % 12 == 0
-x = x +- 1
-endc
- db x
-endm
- macro_11f220 18 ; 01: Types
- macro_11f220 36 ; 02: Greetings
- macro_11f220 69 ; 03: People
- macro_11f220 69 ; 04: Battle
- macro_11f220 66 ; 05: Exclamations
- macro_11f220 66 ; 06: Conversation
- macro_11f220 69 ; 07: Feelings
- macro_11f220 66 ; 08: Conditions
- macro_11f220 39 ; 09: Life
- macro_11f220 39 ; 0a: Hobbies
- macro_11f220 69 ; 0b: Actions
- macro_11f220 39 ; 0c: Time
- macro_11f220 66 ; 0d: Farewells
- macro_11f220 36 ; 0e: ThisAndThat
-
-EZChat_SortedWords:
-; Addresses in WRAM bank 3 where EZChat words beginning
-; with the given kana are sorted in memory, and the pre-
-; allocated size for each.
-; These arrays are expanded dynamically to accomodate
-; any Pokemon you've seen that starts with each kana.\
-macro_11f23c: macro
- dw x - w3_d000, \1
-x = x + 2 * \1
-endm
-x = $d012
- macro_11f23c $2f ; a
- macro_11f23c $1e ; i
- macro_11f23c $11 ; u
- macro_11f23c $09 ; e
- macro_11f23c $2e ; o
- macro_11f23c $24 ; ka_ga
- macro_11f23c $1b ; ki_gi
- macro_11f23c $09 ; ku_gu
- macro_11f23c $07 ; ke_ge
- macro_11f23c $1c ; ko_go
- macro_11f23c $12 ; sa_za
- macro_11f23c $2b ; shi_ji
- macro_11f23c $10 ; su_zu
- macro_11f23c $08 ; se_ze
- macro_11f23c $0c ; so_zo
- macro_11f23c $2c ; ta_da
- macro_11f23c $09 ; chi_dhi
- macro_11f23c $12 ; tsu_du
- macro_11f23c $1b ; te_de
- macro_11f23c $1a ; to_do
- macro_11f23c $1c ; na
- macro_11f23c $05 ; ni
- macro_11f23c $02 ; nu
- macro_11f23c $05 ; ne
- macro_11f23c $07 ; no
- macro_11f23c $16 ; ha_ba_pa
- macro_11f23c $0e ; hi_bi_pi
- macro_11f23c $0c ; fu_bu_pu
- macro_11f23c $05 ; he_be_pe
- macro_11f23c $16 ; ho_bo_po
- macro_11f23c $19 ; ma
- macro_11f23c $0e ; mi
- macro_11f23c $08 ; mu
- macro_11f23c $07 ; me
- macro_11f23c $09 ; mo
- macro_11f23c $0d ; ya
- macro_11f23c $04 ; yu
- macro_11f23c $14 ; yo
- macro_11f23c $0b ; ra
- macro_11f23c $01 ; ri
- macro_11f23c $02 ; ru
- macro_11f23c $02 ; re
- macro_11f23c $02 ; ro
- macro_11f23c $15 ; wa
-x = $d000
- macro_11f23c $09 ; end
-EZChat_SortedWordsEnd:
--- a/misc/gbc_only.asm
+++ /dev/null
@@ -1,149 +1,0 @@
-GBCOnlyScreen: ; 4ea82
-
- ld a, [hCGB]
- and a
- ret nz
-
- ld de, MUSIC_NONE
- call PlayMusic
-
- call ClearTileMap
-
- ld hl, GBCOnlyGFX
- ld de, $d000
- ld a, [rSVBK]
- push af
- ld a, 0
- ld [rSVBK], a
- call Decompress
- pop af
- ld [rSVBK], a
-
- ld de, $d000
- ld hl, VTiles2
- lb bc, BANK(GBCOnlyGFX), $54
- call Get2bpp
-
- ld de, Font
- ld hl, VTiles1
- lb bc, BANK(Font), $80
- call Get1bpp
-
- call DrawGBCOnlyScreen
-
- call WaitBGMap
-
-; better luck next time
-.loop
- call DelayFrame
- jr .loop
-; 4eac5
-
-
-DrawGBCOnlyScreen: ; 4eac5
-
- call DrawGBCOnlyBorder
-
- ; Pokemon
- hlcoord 3, 2
- ld b, 14
- ld c, 4
- ld a, $8
- call DrawGBCOnlyGraphic
-
- ; Crystal
- hlcoord 5, 6
- ld b, 10
- ld c, 2
- ld a, $40
- call DrawGBCOnlyGraphic
-
- ld de, GBCOnlyString
- hlcoord 1, 10
- call PlaceString
-
- ret
-; 4eaea
-
-
-DrawGBCOnlyBorder: ; 4eaea
-
- hlcoord 0, 0
- ld [hl], 0 ; top-left
-
- inc hl
- ld a, 1 ; top
- call .FillRow
-
- ld [hl], 2 ; top-right
-
- hlcoord 0, 1
- ld a, 3 ; left
- call .FillColumn
-
- hlcoord 19, 1
- ld a, 4 ; right
- call .FillColumn
-
- hlcoord 0, 17
- ld [hl], 5 ; bottom-left
-
- inc hl
- ld a, 6 ; bottom
- call .FillRow
-
- ld [hl], 7 ; bottom-right
- ret
-; 4eb15
-
-.FillRow: ; 4eb15
- ld c, SCREEN_WIDTH - 2
-.next_column
- ld [hli], a
- dec c
- jr nz, .next_column
- ret
-; 4eb1c
-
-.FillColumn: ; 4eb1c
- ld de, SCREEN_WIDTH
- ld c, SCREEN_HEIGHT - 2
-.next_row
- ld [hl], a
- add hl, de
- dec c
- jr nz, .next_row
- ret
-; 4eb27
-
-
-DrawGBCOnlyGraphic: ; 4eb27
- ld de, SCREEN_WIDTH
-.y
- push bc
- push hl
-.x
- ld [hli], a
- inc a
- dec b
- jr nz, .x
- pop hl
- add hl, de
- pop bc
- dec c
- jr nz, .y
- ret
-; 4eb38
-
-
-GBCOnlyString: ; 4eb38
- db "This Game Pak is"
- next "designed only for"
- next "use on the"
- next "Game Boy Color.@"
-; 4eb76
-
-
-GBCOnlyGFX: ; 4eb76
-INCBIN "gfx/sgb/gbc_only.2bpp.lz"
-; 4f0bc
--- a/misc/gfx_41.asm
+++ /dev/null
@@ -1,638 +1,0 @@
-HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransferToWRAMBank3
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransferToWRAMBank3
- ret
-; 10402d
-
-HDMATransferTileMapToWRAMBank3:: ; 10402d
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransferToWRAMBank3
- ret
-; 104047
-
-HDMATransferAttrMapToWRAMBank3: ; 104047
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransferToWRAMBank3
- ret
-; 104061
-
-ReloadMapPart:: ; 104061
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- call DelayFrame
-
- di
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransfer_Wait127Scanlines_toBGMap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransfer_Wait127Scanlines_toBGMap
- pop af
- ld [rVBK], a
- ei
-
- ret
-
-Mobile_ReloadMapPart: ; 104099
- ld hl, ReloadMapPart ; useless
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- call DelayFrame
-
- di
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransfer_NoDI
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransfer_NoDI
- pop af
- ld [rVBK], a
- ei
-
- ret
-; 1040d4
-
-; XXX
- ld hl, .unreferenced_1040da
- jp CallInSafeGFXMode
-
-.unreferenced_1040da
- ld a, $1
- ld [rVBK], a
- ld a, $3
- ld [rSVBK], a
- ld de, w3_d800
- ld a, [hBGMapAddress + 1]
- ld [rHDMA1], a
- ld a, [hBGMapAddress]
- ld [rHDMA2], a
- ld a, d
- ld [rHDMA3], a
- ld a, e
- ld [rHDMA4], a
- ld a, $23
- ld [hDMATransfer], a
- call WaitDMATransfer
- ret
-; 1040fb
-
-; XXX
- ld hl, .unreferenced_104101
- jp CallInSafeGFXMode
-
-.unreferenced_104101
- ld a, $1
- ld [rVBK], a
- ld a, $3
- ld [rSVBK], a
- ld hl, w3_d800
- call HDMATransferToWRAMBank3
- ret
-; 104110
-
-OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
-; OpenText
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- ; Transfer AttrMap and Tilemap to BGMap
- ; Fill vBGAttrs with $00
- ; Fill vBGTiles with " "
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- call DelayFrame
-
- di
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransfer_Wait123Scanlines_toBGMap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransfer_Wait123Scanlines_toBGMap
- pop af
- ld [rVBK], a
- ei
- ret
-; 104148
-
-Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- ; Transfer AttrMap and Tilemap to BGMap
- ; Fill vBGAttrs with $00
- ; Fill vBGTiles with $ff
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- ld c, $ff
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteMap
-
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransfer_Wait127Scanlines_toBGMap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransfer_Wait127Scanlines_toBGMap
- ret
-; 104177
-
-CallInSafeGFXMode: ; 104177
- ld a, [hBGMapMode]
- push af
- ld a, [hMapAnims]
- push af
- xor a
- ld [hBGMapMode], a
- ld [hMapAnims], a
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld a, [rVBK]
- push af
-
- call ._hl_
-
- pop af
- ld [rVBK], a
- pop af
- ld [rSVBK], a
- pop af
- ld [hMapAnims], a
- pop af
- ld [hBGMapMode], a
- ret
-; 10419c
-
-._hl_ ; 10419c
- jp hl
-; 10419d
-
-
-HDMATransferToWRAMBank3: ; 10419d (41:419d)
- call _LoadHDMAParameters
- ld a, $23
- ld [hDMATransfer], a
-
-WaitDMATransfer: ; 104a14
-.loop
- call DelayFrame
- ld a, [hDMATransfer]
- and a
- jr nz, .loop
- ret
-
-HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
-; HDMA transfer from hl to [hBGMapAddress]
-; hBGMapAddress -> de
-; 2 * SCREEN_HEIGHT -> c
- ld a, [hBGMapAddress + 1]
- ld d, a
- ld a, [hBGMapAddress]
- ld e, a
- ld c, 2 * SCREEN_HEIGHT
- jr HDMATransfer_Wait127Scanlines
-
-HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
-; HDMA transfer from hl to [hBGMapAddress]
-; hBGMapAddress -> de
-; 2 * SCREEN_HEIGHT -> c
-; $7b --> b
- ld a, [hBGMapAddress + 1]
- ld d, a
- ld a, [hBGMapAddress]
- ld e, a
- ld c, 2 * SCREEN_HEIGHT
- jr HDMATransfer_Wait123Scanlines
-; 1041c1 (41:41c1)
-
-HDMATransfer_NoDI: ; 1041c1
-; HDMA transfer from hl to [hBGMapAddress]
-; [hBGMapAddress] --> de
-; 2 * SCREEN_HEIGHT --> c
- ld a, [hBGMapAddress + 1]
- ld d, a
- ld a, [hBGMapAddress]
- ld e, a
- ld c, 2 * SCREEN_HEIGHT
-
- ; [rHDMA1, rHDMA2] = hl & $fff0
- ld a, h
- ld [rHDMA1], a
- ld a, l
- and $f0
- ld [rHDMA2], a
- ; [rHDMA3, rHDMA4] = de & $1ff0
- ld a, d
- and $1f
- ld [rHDMA3], a
- ld a, e
- and $f0
- ld [rHDMA4], a
- ; b = c | %10000000
- ld a, c
- dec c
- or $80
- ld b, a
- ; d = $7f - c + 1
- ld a, $7f
- sub c
- ld d, a
- ; while [rLY] >= d: pass
-.loop1
- ld a, [rLY]
- cp d
- jr nc, .loop1
- ; while not [rSTAT] & 3: pass
-.loop2
- ld a, [rSTAT]
- and $3
- jr z, .loop2
- ; load the 5th byte of HDMA
- ld a, b
- ld [rHDMA5], a
- ; wait until rLY advances (c + 1) times
- ld a, [rLY]
- inc c
- ld hl, rLY
-.loop3
- cp [hl]
- jr z, .loop3
- ld a, [hl]
- dec c
- jr nz, .loop3
- ld hl, rHDMA5
- res 7, [hl]
- ret
-; 104205
-
-HDMATransfer_Wait123Scanlines:
- ld b, $7b
- jr _continue_HDMATransfer
-
-
-HDMATransfer_Wait127Scanlines:
- ld b, $7f
-_continue_HDMATransfer:
-; a lot of waiting around for hardware registers
- ; [rHDMA1, rHDMA2] = hl & $fff0
- ld a, h
- ld [rHDMA1], a
- ld a, l
- and $f0 ; high nybble
- ld [rHDMA2], a
- ; [rHDMA3, rHDMA4] = de & $1ff0
- ld a, d
- and $1f ; lower 5 bits
- ld [rHDMA3], a
- ld a, e
- and $f0 ; high nybble
- ld [rHDMA4], a
- ; e = c | %10000000
- ld a, c
- dec c
- or $80
- ld e, a
- ; d = b - c + 1
- ld a, b
- sub c
- ld d, a
- ; while [rLY] >= d: pass
-.ly_loop
- ld a, [rLY]
- cp d
- jr nc, .ly_loop
-
- di
- ; while [rSTAT] & 3: pass
-.rstat_loop_1
- ld a, [rSTAT]
- and $3
- jr nz, .rstat_loop_1
- ; while not [rSTAT] & 3: pass
-.rstat_loop_2
- ld a, [rSTAT]
- and $3
- jr z, .rstat_loop_2
- ; load the 5th byte of HDMA
- ld a, e
- ld [rHDMA5], a
- ; wait until rLY advances (c + 1) times
- ld a, [rLY]
- inc c
- ld hl, rLY
-.final_ly_loop
- cp [hl]
- jr z, .final_ly_loop
- ld a, [hl]
- dec c
- jr nz, .final_ly_loop
- ld hl, rHDMA5
- res 7, [hl]
- ei
-
- ret
-; 10424e
-
-
-_LoadHDMAParameters: ; 10424e (41:424e)
- ld a, h
- ld [rHDMA1], a
- ld a, l
- ld [rHDMA2], a
- ld a, [hBGMapAddress + 1]
- and $1f
- ld [rHDMA3], a
- ld a, [hBGMapAddress]
- ld [rHDMA4], a
- ret
-
-CutAndPasteTilemap: ; 10425f (41:425f)
- ld c, " "
- jr CutAndPasteMap
-
-CutAndPasteAttrMap: ; 104263 (41:4263)
- ld c, $0
-
-CutAndPasteMap: ; 104265 (41:4265)
-; back up the value of c to hMapObjectIndexBuffer
- ld a, [hMapObjectIndexBuffer]
- push af
- ld a, c
- ld [hMapObjectIndexBuffer], a
-
-; for each row on the screen
- ld c, SCREEN_HEIGHT
-.loop1
-; for each tile in the row
- ld b, SCREEN_WIDTH
-.loop2
-; copy from de to hl
- ld a, [de]
- inc de
- ld [hli], a
- dec b
- jr nz, .loop2
-
-; load the original value of c into hl 12 times
- ld a, [hMapObjectIndexBuffer]
- ld b, BG_MAP_WIDTH - SCREEN_WIDTH
-.loop3
- ld [hli], a
- dec b
- jr nz, .loop3
-
- dec c
- jr nz, .loop1
-
-; restore the original value of hMapObjectIndexBuffer
- pop af
- ld [hMapObjectIndexBuffer], a
- ret
-
-
-_Get2bpp:: ; 104284
- ; 2bpp when [rLCDC] & $80
- ; switch to WRAM bank 6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- push bc
- push hl
-
- ; Copy c tiles of the 2bpp from b:de to wScratchTileMap
- ld a, b ; bank
- ld l, c ; number of tiles
- ld h, $0
- ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- ld b, h
- ld c, l
- ld h, d ; address
- ld l, e
- ld de, wScratchTileMap
- call FarCopyBytes
-
- pop hl
- pop bc
-
- push bc
- call DelayFrame
- pop bc
-
- ld d, h
- ld e, l
- ld hl, wScratchTileMap
- call HDMATransfer_Wait127Scanlines
-
- ; restore the previous bank
- pop af
- ld [rSVBK], a
- ret
-; 1042b2
-
-_Get1bpp:: ; 1042b2
- ; 1bpp when [rLCDC] & $80
-.loop
- ld a, c
- cp $10
- jp c, .bankswitch
- jp z, .bankswitch
- push bc
- push hl
- push de
- ld c, $10
- call .bankswitch
- pop de
- ld hl, $80
- add hl, de
- ld d, h
- ld e, l
- pop hl
- lb bc, 1, 0
- add hl, bc
- pop bc
- ld a, c
- sub $10
- ld c, a
- jr .loop
-; 1042d6
-
-.bankswitch ; 1042d6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- push bc
- push hl
-
- ld a, b
- ld l, c
- ld h, $0
- add hl, hl ; multiply by 8
- add hl, hl ; multiply by 8
- add hl, hl ; multiply by 8
- ld c, l
- ld b, h
- ld h, d
- ld l, e
- ld de, wScratchTileMap
- call FarCopyBytesDouble_DoubleBankSwitch
-
- pop hl
- pop bc
-
- push bc
- call DelayFrame
- pop bc
-
- ld d, h
- ld e, l
- ld hl, wScratchTileMap
- call HDMATransfer_Wait127Scanlines
-
- pop af
- ld [rSVBK], a
- ret
-; 104303
-
-HDMATransfer_OnlyTopFourRows: ; 104303
- ld hl, .Function
- jp CallInSafeGFXMode
-; 104309
-
-.Function:
- ld hl, wScratchTileMap
- decoord 0, 0
- call .Copy
- ld hl, wScratchTileMap + $80
- decoord 0, 0, AttrMap
- call .Copy
- ld a, $1
- ld [rVBK], a
- ld c, $8
- ld hl, wScratchTileMap + $80
- debgcoord 0, 0, VBGMap1
- call HDMATransfer_Wait127Scanlines
- ld a, $0
- ld [rVBK], a
- ld c, $8
- ld hl, wScratchTileMap
- debgcoord 0, 0, VBGMap1
- call HDMATransfer_Wait127Scanlines
- ret
-
-.Copy: ; 10433a (41:433a)
- ld b, 4
-.outer_loop
- ld c, SCREEN_WIDTH
-.inner_loop
- ld a, [de]
- ld [hli], a
- inc de
- dec c
- jr nz, .inner_loop
- ld a, l
- add BG_MAP_WIDTH - SCREEN_WIDTH
- ld l, a
- ld a, h
- adc $0
- ld h, a
- dec b
- jr nz, .outer_loop
- ret
-; 104350
-
-ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
-QuestionEmote: INCBIN "gfx/emotes/question.2bpp"
-HappyEmote: INCBIN "gfx/emotes/happy.2bpp"
-SadEmote: INCBIN "gfx/emotes/sad.2bpp"
-HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
-BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
-SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
-FishEmote: INCBIN "gfx/emotes/fish.2bpp"
-JumpShadowGFX: INCBIN "gfx/overworld/shadow.2bpp"
-FishingRodGFX: INCBIN "gfx/overworld/fishing_rod.2bpp"
-BoulderDustGFX: INCBIN "gfx/overworld/boulder_dust.2bpp"
-GrassRustleGFX: INCBIN "gfx/overworld/grass_rustle.2bpp"
--- a/misc/mobile_12.asm
+++ /dev/null
@@ -1,1845 +1,0 @@
-InitMobileProfile: ; 4802f (12:402f)
- xor a
- set 6, a
- ld [wd002], a
- ld hl, wd003
- set 0, [hl]
- ld a, c
- and a
- call z, InitCrystalData
- call ClearBGPalettes
- call Function48d3d
- ld a, [wd479]
- bit 1, a
- jr z, .not_yet_initialized
- ld a, [wd003]
- set 0, a
- set 1, a
- set 2, a
- set 3, a
- ld [wd003], a
-.not_yet_initialized
- call Function486bf
- call LoadFontsExtra
- ld de, GFX_488c3
- ld hl, VTiles2 tile $10
- lb bc, BANK(GFX_488c3), 1
- call Request1bpp
- ld de, GFX_488cb
- ld hl, VTiles2 tile $11
- lb bc, BANK(GFX_488cb), 1
- call Request1bpp
- call Function4a3a7
- call ClearBGPalettes
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4808a
- call Function48689
- jr .asm_480d7
-.asm_4808a
- ld a, $5
- ld [MusicFade], a
- ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
- ld [MusicFadeID], a
- ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
- ld [MusicFadeID + 1], a
- ld c, 20
- call DelayFrames
- ld b, $1
- call GetMysteryGift_MobileAdapterLayout
- call ClearBGPalettes
- hlcoord 0, 0
- ld b, 2
- ld c, 20
- call ClearBox
- hlcoord 0, 1
- ld a, $c
- ld [hl], a
- ld bc, $13
- add hl, bc
- ld [hl], a
- ld de, MobileProfileString
- hlcoord 1, 1
- call PlaceString
- hlcoord 0, 2
- ld b, $a
- ld c, $12
- call Function48cdc
- hlcoord 2, 4
- ld de, MobileString_Gender
- call PlaceString
-.asm_480d7
- hlcoord 2, 6
- ld de, MobileString_Age
- call PlaceString
- hlcoord 2, 8
- ld de, MobileString_Address
- call PlaceString
- hlcoord 2, 10
- ld de, MobileString_ZipCode
- call PlaceString
- hlcoord 2, 12
- ld de, MobileString_OK
- call PlaceString
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_48113
- ld a, [PlayerGender]
- ld hl, Strings_484fb
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 11, 4
- call PlaceString
-.asm_48113
- hlcoord 11, 6
- call Function487ec
- ld a, [wd474]
- dec a
- ld hl, Prefectures
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 11, 8
- call PlaceString
- hlcoord 11, 10
- call Function489ea
- hlcoord 0, 14
- ld b, $2
- ld c, $12
- call TextBox
- hlcoord 1, 16
- ld de, MobileString_PersonalInfo
- call PlaceString
- call Function48187
- call WaitBGMap2
- call SetPalettes
- call StaticMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
- jr asm_4815f
-
-Function48157: ; 48157 (12:4157)
- call ScrollingMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
-asm_4815f: ; 4815f (12:415f)
- bit A_BUTTON_F, a
- jp nz, Function4820d
- ld b, a
- ld a, [wd002]
- bit 6, a
- jr z, .dont_check_b_button
- ld hl, wd479
- bit 1, [hl]
- jr z, .dont_check_b_button
- bit B_BUTTON_F, b
- jr nz, .b_button
-.dont_check_b_button
- jp Function48272
-
-.b_button
- call ClearBGPalettes
- call Function48d30
- pop bc
- call ClearTileMap
- ld a, $ff
- ret
-
-Function48187: ; 48187 (12:4187)
- ld a, [wd479]
- bit 1, a
- jr nz, .asm_481f1
- ld a, [wd003]
- ld d, a
- call Function48725
- jr c, .asm_481a2
- lb bc, 1, 4
- hlcoord 2, 12
- call ClearBox
- jr .asm_481ad
-.asm_481a2
- push de
- hlcoord 2, 12
- ld de, MobileString_OK
- call PlaceString
- pop de
-.asm_481ad
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_481c1
- bit 0, d
- jr nz, .asm_481c1
- lb bc, 1, 8
- hlcoord 11, 4
- call ClearBox
-.asm_481c1
- bit 1, d
- jr nz, .asm_481ce
- lb bc, 1, 8
- hlcoord 11, 6
- call ClearBox
-.asm_481ce
- bit 2, d
- jr nz, .asm_481db
- lb bc, 2, 8
- hlcoord 11, 7
- call ClearBox
-.asm_481db
- bit 3, d
- jr nz, .asm_481f1
- ld a, [wd479]
- bit 0, a
- jr nz, .asm_481f8
- lb bc, 1, 8
- hlcoord 11, 10
- call ClearBox
- jr .asm_48201
-.asm_481f1
- ld a, [wd479]
- bit 0, a
- jr nz, .asm_48201
-.asm_481f8
- hlcoord 11, 10
- ld de, .String_TellLater
- call PlaceString
-.asm_48201
- ret
-; 48202 (12:4202)
-
-.String_TellLater: ; 48202
- db "Tell Later@"
-; 4820d
-
-Function4820d: ; 4820d (12:420d)
- call PlaceHollowCursor
- ld hl, wMenuCursorY
- ld a, [hl]
- push af
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4821f
- pop af
- inc a
- push af
-.asm_4821f
- pop af
- cp $1
- jr z, asm_4828d
- cp $2
- jp z, Function4876f
- cp $3
- jp z, Function48304
- cp $4
- jp z, Function488d3
- ld a, $2
- call MenuClickSound
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4825c
- jr .asm_4825c
-; 48241 (12:4241)
-
- hlcoord 1, 15
- ld b, $2
- ld c, $12
- call ClearBox
- ld de, MobileString_ProfileChanged
- hlcoord 1, 16
- call PlaceString
- call WaitBGMap
- ld c, 48
- call DelayFrames
-
-.asm_4825c
- call ClearBGPalettes
- call Function48d30
- pop bc
- call ClearTileMap
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- ld hl, wd479
- set 1, [hl]
- xor a
- ret
-
-Function48272: ; 48272 (12:4272)
- jp Function4840c
-; 48275 (12:4275)
-
-MobileString_PersonalInfo: ; 48275
- db "Personal Info@"
-; 48283
-
-Function48283: ; 48283 (12:4283)
- lb bc, 2, 18
- hlcoord 1, 15
- call ClearBox
- ret
-
-asm_4828d: ; 4828d (12:428d)
- call Function48283
- hlcoord 1, 16
- ld de, MobileDesc_Gender
- call PlaceString
- ld hl, MenuDataHeader_0x484f1
- call LoadMenuDataHeader
- call Function4873c
- hlcoord 11, 2
- ld b, $4
- ld c, $7
- call Function48cdc
- hlcoord 13, 4
- ld de, String_484fb
- call PlaceString
- hlcoord 13, 6
- ld de, String_484ff
- call PlaceString
- call WaitBGMap
- ld a, [PlayerGender]
- inc a
- ld [wMenuCursorBuffer], a
- call StaticMenuJoypad
- call PlayClickSFX
- call ExitMenu
- bit 0, a
- jp z, Function4840c
- ld hl, wMenuCursorY
- ld a, [hl]
- ld hl, Strings_484fb
- cp $1
- jr z, .asm_482ed
-.asm_482e1
- ld a, [hli]
- cp $50
- jr nz, .asm_482e1
- ld a, $1
- ld [PlayerGender], a
- jr .asm_482f1
-.asm_482ed
- xor a
- ld [PlayerGender], a
-.asm_482f1
- ld d, h
- ld e, l
- hlcoord 11, 4
- call PlaceString
- ld a, [wd003]
- set 0, a
- ld [wd003], a
- jp Function4840c
-
-Function48304: ; 48304 (12:4304)
- call Function48283
- hlcoord 1, 16
- ld de, MobileDesc_Address
- call PlaceString
- ld hl, MenuDataHeader_0x48504
- call LoadMenuDataHeader
- ld hl, MenuDataHeader_0x48513
- call LoadMenuDataHeader
- hlcoord 10, 0
- ld b, $c
- ld c, $8
- call Function48cdc
- ld a, [wMenuCursorBuffer]
- ld b, a
- ld a, [wMenuScrollPosition]
- ld c, a
- push bc
- ld a, [wd474]
- dec a
- cp $29
- jr c, .asm_4833f
- sub $29
- inc a
- ld [wMenuCursorBuffer], a
- ld a, $29
-.asm_4833f
- ld [wMenuScrollPosition], a
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-.asm_48348
- call ScrollingMenu
- ld de, $629
- call Function48383
- jr c, .asm_48348
- ld d, a
- pop bc
- ld a, b
- ld [wMenuCursorBuffer], a
- ld a, c
- ld [wMenuScrollPosition], a
- ld a, d
- push af
- call ExitMenu
- call ExitMenu
- pop af
- ld a, [hJoyPressed]
- bit 0, a
- jr z, .asm_48377
- call Function483bb
- ld a, [wd003]
- set 2, a
- ld [wd003], a
-.asm_48377
- call Function48187
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- jp Function4840c
-
-Function48383: ; 48383 (12:4383)
- push bc
- push af
- bit 5, a
- jr nz, .asm_48390
- bit 4, a
- jr nz, .asm_4839f
- and a
- jr .asm_483b7
-.asm_48390
- ld a, [wMenuScrollPosition]
- sub d
- ld [wMenuScrollPosition], a
- jr nc, .asm_483af
- xor a
- ld [wMenuScrollPosition], a
- jr .asm_483af
-.asm_4839f
- ld a, [wMenuScrollPosition]
- add d
- ld [wMenuScrollPosition], a
- cp e
- jr c, .asm_483af
- ld a, e
- ld [wMenuScrollPosition], a
- jr .asm_483af
-.asm_483af
- ld hl, wMenuCursorY
- ld a, [hl]
- ld [wMenuCursorBuffer], a
- scf
-.asm_483b7
- pop bc
- ld a, b
- pop bc
- ret
-
-Function483bb: ; 483bb (12:43bb)
- ld hl, wScrollingMenuCursorPosition
- ld a, [hl]
- inc a
- ld [wd474], a
- dec a
- ld b, a
- ld hl, Prefectures
-.asm_483c8
- and a
- jr z, .asm_483d5
-.asm_483cb
- ld a, [hli]
- cp "@"
- jr nz, .asm_483cb
- ld a, b
- dec a
- ld b, a
- jr .asm_483c8
-.asm_483d5
- ld d, h
- ld e, l
- ld b, $2
- ld c, $8
- hlcoord 11, 7
- call ClearBox
- hlcoord 11, 8
- call PlaceString
- ret
-; 483e8 (12:43e8)
-
-Function483e8: ; 483e8
- push de
- ld hl, Prefectures
- ld a, [MenuSelection]
- cp $ff
- jr nz, .asm_483f8
- ld hl, Wakayama ; last string
- jr .asm_48405
-
-.asm_483f8
- ld d, a
- and a
- jr z, .asm_48405
-.asm_483fc
- ld a, [hli]
- cp "@"
- jr nz, .asm_483fc
- ld a, d
- dec a
- jr .asm_483f8
-
-.asm_48405
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- ret
-; 4840c
-
-Function4840c: ; 4840c (12:440c)
- call Function48187
- call Function48283
- hlcoord 1, 16
- ld de, MobileString_PersonalInfo
- call PlaceString
- call Function486bf
- pop bc
- ld hl, wMenuCursorY
- ld [hl], b
- ld a, [wd002]
- bit 6, a
- jr nz, .narrower_box
- ld b, 9
- ld c, 1
- hlcoord 1, 4
- call ClearBox
- jp Function48157
-
-.narrower_box
- ld b, 7
- ld c, 1
- hlcoord 1, 6
- call ClearBox
- jp Function48157
-
-Mobile12_Bin2Dec: ; 48444 (12:4444)
- push bc
- push af
- push de
- push hl
- ld hl, .DigitStrings
-.loop
- and a
- jr z, .got_string
- inc hl
- inc hl
- dec a
- jr .loop
-.got_string
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- pop de
- pop af
- pop bc
- ret
-; 4845d (12:445d)
-
-.DigitStrings: ; 4845d
-; 4845d
- db "0@"
- db "1@"
- db "2@"
- db "3@"
- db "4@"
- db "5@"
- db "6@"
- db "7@"
- db "8@"
- db "9@"
-; 48471
-
-MobileProfileString: db " Mobile Profile@"
-MobileString_Gender: db "Gender@"
-MobileString_Age: db "Age@"
-MobileString_Address: db "Address@"
-MobileString_ZipCode: db "Zip Code@"
-MobileString_OK: db "OK@"
-MobileString_ProfileChanged: db "Profile Changed@"
-MobileDesc_Gender: db "Boy or girl?@"
-MobileDesc_Age: db "How old are you?@"
-MobileDesc_Address: db "Where do you live?@"
-MobileDesc_ZipCode: db "Your zip code?@"
-; 484f1
-
-MenuDataHeader_0x484f1: ; 0x484f1
- db $40 ; flags
- db 02, 11 ; start coords
- db 07, 19 ; end coords
- dw MenuData2_0x484f9
- db 1 ; default option
-; 0x484f9
-
-MenuData2_0x484f9: ; 0x484f9
- db $a0 ; flags
- db 2 ; items
-Strings_484fb:
-String_484fb: db "Boy@"
-String_484ff: db "Girl@"
-; 0x48504
-
-MenuDataHeader_0x48504: ; 0x48504
- db $40 ; flags
- db 00, 10 ; start coords
- db 17, 19 ; end coords
-
-MenuDataHeader_0x48509: ; 0x48509
- db $40 ; flags
- db 05, 10 ; start coords
- db 07, 19 ; end coords
-
-MenuDataHeader_0x4850e: ; 0x4850e
- db $40 ; flags
- db 09, 10 ; start coords
- db 11, 19 ; end coords
-
-MenuDataHeader_0x48513: ; 0x48513
- db $40 ; flags
- db 01, 11 ; start coords
- db 12, 18 ; end coords
- dw MenuData2_0x4851b
- db 1 ; default option
-; 0x4851b
-
-MenuData2_0x4851b: ; 0x4851b
- db $1d ; flags
- db 6 ; items
-
-Unknown_4851d: ; 4851d
- db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
- db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
- db $2d, $ff
-
-Prefectures:
-Aichi: db "あいちけん@" ; Aichi
-Aomori: db "あおもりけん@" ; Aomori
-Akita: db "あきたけん@" ; Akita
-Ishikawa: db "いしかわけん@" ; Ishikawa
-Ibaraki: db "いばらきけん@" ; Ibaraki
-Iwate: db "いわてけん@" ; Iwate
-Ehime: db "えひめけん@" ; Ehime
-Oita: db "おおいたけん@" ; Oita
-Osakafu: db "おおさかふ@" ; Osakafu
-Okayama: db "おかやまけん@" ; Okayama
-Okinawa: db "おきなわけん@" ; Okinawa
-Kagawa: db "かがわけん@" ; Kagawa
-Kagoshima: db "かごしまけん@" ; Kagoshima
-Kanagawa: db "かながわけん@" ; Kanagawa
-Gifu: db "ぎふけん@" ; Gifu
-Kyotofu: db "きょうとふ@" ; Kyotofu
-Kumamoto: db "くまもとけん@" ; Kumamoto
-Gunma: db "ぐんまけん@" ; Gunma
-Kochi: db "こうちけん@" ; Kochi
-Saitama: db "さいたまけん@" ; Saitama
-Saga: db "さがけん@" ; Saga
-Shiga: db "しがけん@" ; Shiga
-Shizuoka: db "しずおかけん@" ; Shizuoka
-Shimane: db "しまねけん@" ; Shimane
-Chiba: db "ちばけん@" ; Chiba
-Tokyo: db "とうきょうと@" ; Tokyo
-Tokushima: db "とくしまけん@" ; Tokushima
-Tochigi: db "とちぎけん@" ; Tochigi
-Tottori: db "とっとりけん@" ; Tottori
-Toyama: db "とやまけん@" ; Toyama
-Nagasaki: db "ながさきけん@" ; Nagasaki
-Nagano: db "ながのけん@" ; Nagano
-Naraken: db "ならけん@" ; Naraken
-Niigata: db "にいがたけん@" ; Niigata
-Hyogo: db "ひょうごけん@" ; Hyogo
-Hiroshima: db "ひろしまけん@" ; Hiroshima
-Fukui: db "ふくいけん@" ; Fukui
-Fukuoka: db "ふくおかけん@" ; Fukuoka
-Fukushima: db "ふくしまけん@" ; Fukushima
-Hokkaido: db "ほっかいどう@" ; Hokkaido
-Mie: db "みえけん@" ; Mie
-Miyagi: db "みやぎけん@" ; Miyagi
-Miyazaki: db "みやざきけん@" ; Miyazaki
-Yamagata: db "やまがたけん@" ; Yamagata
-Yamaguchi: db "やまぐちけん@" ; Yamaguchi
-Yamanashi: db "やまなしけん@" ; Yamanashi
-Wakayama: db "わかやまけん@" ; Wakayama
-; 48689
-
-Function48689: ; 48689 (12:4689)
- ld c, 7
- call DelayFrames
- ld b, $1
- call GetMysteryGift_MobileAdapterLayout
- call ClearBGPalettes
- hlcoord 0, 0
- ld b, 4
- ld c, SCREEN_WIDTH
- call ClearBox
- hlcoord 0, 2
- ld a, $c
- ld [hl], a
- ld bc, SCREEN_WIDTH - 1
- add hl, bc
- ld [hl], a
- ld de, MobileProfileString
- hlcoord 1, 2
- call PlaceString
- hlcoord 0, 4
- ld b, $8
- ld c, $12
- call Function48cdc
- ret
-
-Function486bf: ; 486bf (12:46bf)
- ld hl, w2DMenuCursorInitY
- ld a, [wd002]
- bit 6, a
- jr nz, .start_at_6
- ld a, 4
- ld [hli], a
- jr .got_init_y
-
-.start_at_6
- ld a, 6
- ld [hli], a
-.got_init_y
- ld a, 1
- ld [hli], a ; init x
- ld a, [wd002]
- bit 6, a
- jr nz, .check_wd479
- call Function48725
- ld a, 4
- jr nc, .got_num_rows_1
- ld a, 5
-.got_num_rows_1
- ld [hli], a
- jr .got_num_rows_2
-
-.check_wd479
- ld a, [wd479]
- bit 1, a
- jr nz, .four_rows
- call Function48725
- jr c, .four_rows
- ld a, 3
- ld [hli], a
- jr .got_num_rows_2
-
-.four_rows
- ld a, 4
- ld [hli], a
-.got_num_rows_2
- ld a, 1
- ld [hli], a ; num cols
- ld [hl], $0 ; flags 1
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a ; flags 2
- ld a, $20
- ld [hli], a ; cursor offsets
- ld a, A_BUTTON
- add D_UP
- add D_DOWN
- push af
- ld a, [wd002]
- bit 6, a
- jr z, .got_joypad_mask
- pop af
- add B_BUTTON
- push af
-.got_joypad_mask
- pop af
- ld [hli], a
- ld a, $1
- ld [hli], a ; cursor y
- ld [hli], a ; cursor x
- xor a
- ld [hli], a ; off char
- ld [hli], a ; cursor tile
- ld [hli], a ; cursor tile + 1
- ret
-
-Function48725: ; 48725 (12:4725)
-; ld a, [wd003]
-; and $f
-; cp $f
-; jr nz, .clear_carry
-; scf
-; ret
-; .clear_carry
-; and a
-; ret
-
- ld a, [wd003]
- bit 0, a
- jr z, .clear_carry
- bit 1, a
- jr z, .clear_carry
- bit 2, a
- jr z, .clear_carry
- bit 3, a
- jr z, .clear_carry
- scf
- ret
-
-.clear_carry
- and a
- ret
-
-Function4873c: ; 4873c (12:473c)
- ld hl, w2DMenuCursorInitY
- ld a, 4
- ld [hli], a
- ld a, 12
- ld [hli], a ; init x
- ld a, 2
- ld [hli], a ; num rows
- ld a, 1
- ld [hli], a ; num cols
- ld [hl], $0 ; flags 1
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a ; flags 2
- ln a, 2, 0
- ld [hli], a ; cursor offsets
- ld a, A_BUTTON
- add B_BUTTON
- ld [hli], a ; joypad filter
- ; ld a, [PlayerGender]
- ; xor 1
- ; inc a
- ld a, [PlayerGender]
- and a
- jr z, .male
- ld a, 2
- jr .okay_gender
-
-.male
- ld a, 1
-.okay_gender
- ld [hli], a ; cursor y
- ld a, $1
- ld [hli], a ; cursor x
- xor a
- ld [hli], a ; off char
- ld [hli], a ; cursor tile
- ld [hli], a ; cursor tile + 1
- ret
-
-Function4876f: ; 4876f (12:476f)
- call Function48283
- hlcoord 1, 16
- ld de, MobileDesc_Age
- call PlaceString
- ld hl, MenuDataHeader_0x48509
- call LoadMenuDataHeader
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- call WaitBGMap
- ld a, [wd473]
- and a
- jr z, .asm_487ab
- cp $64
- jr z, .asm_487b2
- hlcoord 12, 5
- ld [hl], $10
- hlcoord 12, 7
- ld [hl], $11
- jr .asm_487b7
-.asm_487ab
- hlcoord 12, 5
- ld [hl], $10
- jr .asm_487b7
-.asm_487b2
- hlcoord 12, 7
- ld [hl], $11
-.asm_487b7
- hlcoord 11, 6
- call Function487ec
- ld c, 10
- call DelayFrames
- ld a, [wd473]
- push af
-.asm_487c6
- call JoyTextDelay
- call Function4880e
- jr nc, .asm_487c6
- ld a, $1
- call MenuClickSound
- pop bc
- jr nz, .asm_487da
- ld a, b
- ld [wd473], a
-.asm_487da
- ld a, [wd473]
- call ExitMenu
- hlcoord 11, 6
- call Function487ec
- pop af
- ld [hInMenu], a
- jp Function4840c
-
-Function487ec: ; 487ec (12:47ec)
- push hl
- ld de, wd473
- call Function487ff
- pop hl
-rept 4
- inc hl
-endr
- ld de, String_4880d
- call PlaceString
- ret
-
-Function487ff: ; 487ff (12:47ff)
- push hl
- ld a, " "
- ld [hli], a
- ld [hl], a
- pop hl
- ld b, PRINTNUM_LEADINGZEROS | 1
- ld c, 3
- call PrintNum
- ret
-; 4880d (12:480d)
-
-String_4880d: ; 4880d
- db "@"
-; 4880e
-
-Function4880e: ; 4880e (12:480e)
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Function488b9
- ld a, [hJoyPressed]
- and B_BUTTON
- jp nz, Function488b4
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_48843
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_48838
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_4884f
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_4885f
- call DelayFrame
- and a
- ret
-.asm_48838
- ld hl, wd473
- ld a, [hl]
- and a
- jr z, .asm_48840
- dec a
-.asm_48840
- ld [hl], a
- jr .asm_4886f
-.asm_48843
- ld hl, wd473
- ld a, [hl]
- cp $64
- jr nc, .asm_4884c
- inc a
-.asm_4884c
- ld [hl], a
- jr .asm_4886f
-.asm_4884f
- ld a, [wd473]
- cp $5b
- jr c, .asm_48858
- ld a, $5a
-.asm_48858
- add $a
- ld [wd473], a
- jr .asm_4886f
-.asm_4885f
- ld a, [wd473]
- cp $a
- jr nc, .asm_48868
- ld a, $a
-.asm_48868
- sub $a
- ld [wd473], a
- jr .asm_4886f
-.asm_4886f
- ld a, [wd473]
- and a
- jr z, .asm_48887
- cp $64
- jr z, .asm_48898
- jr z, .asm_488a7
- hlcoord 12, 5
- ld [hl], $10
- hlcoord 12, 7
- ld [hl], $11
- jr .asm_488a7
-.asm_48887
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- hlcoord 12, 5
- ld [hl], $10
- jr .asm_488a7
-.asm_48898
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- hlcoord 12, 7
- ld [hl], $11
-.asm_488a7
- hlcoord 11, 6
- call Function487ec
- call WaitBGMap
- ld a, $1
- and a
- ret
-
-Function488b4: ; 488b4 (12:48b4)
- ld a, $0
- and a
- scf
- ret
-
-Function488b9: ; 488b9 (12:48b9)
- ld a, [wd003]
- set 1, a
- ld [wd003], a
- scf
- ret
-; 488c3 (12:48c3)
-
-GFX_488c3: ; 488c3
-INCBIN "gfx/unknown/up_arrow.2bpp"
-
-GFX_488cb: ; 488cb
-INCBIN "gfx/unknown/down_arrow.2bpp"
-
-Function488d3: ; 488d3 (12:48d3)
- call Function48283
- hlcoord 1, 16
- ld de, MobileDesc_ZipCode
- call PlaceString
- call Function48a3a
- jp c, Function4840c
- ld hl, MenuDataHeader_0x4850e
- call LoadMenuDataHeader
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- ld a, [wd475]
- and $f
- ld d, $0
- hlcoord 11, 10
- call Function489ea
- call WaitBGMap
- ld a, [wd475]
- ld b, a
- ld a, [wd476]
- ld c, a
- ld a, [wd477]
- ld d, a
- ld a, [wd478]
- ld e, a
- push de
- push bc
- ld d, $0
- ld b, $0
-
-asm_48922: ; 48922 (12:4922)
- push bc
- call JoyTextDelay
- ld a, [hJoyDown]
- and a
- jp z, Function4896e
- bit 0, a
- jp nz, Function4896e
- bit 1, a
- jp nz, Function4896e
- ld a, [wd002]
- and %11001111
- res 7, a
- ld [wd002], a
- pop bc
- inc b
- ld a, b
- cp $5
- push bc
- jr c, .asm_4894c
- pop bc
- ld b, $4
- push bc
-.asm_4894c
- pop bc
- push bc
- ld a, b
- cp $4
- jr nz, asm_48972
- ld c, 10
- call DelayFrames
- jr asm_48972
-; 4895a (12:495a)
-
-Function4895a: ; 4895a
- ld a, [hJoyPressed]
- and a
- jr z, .asm_48965
- pop bc
- ld b, $1
- push bc
- jr asm_48972
-
-.asm_48965
- ld a, [hJoyLast]
- and a
- jr z, asm_48972
-
- pop bc
- ld b, $1
- push bc
-
-Function4896e: ; 4896e (12:496e)
- pop bc
- ld b, $0
- push bc
-
-asm_48972: ; 48972 (12:4972)
- call Function48ab5
- push af
- cp $f0
- jr z, .asm_48994
- cp $f
- jr nz, .asm_48988
- ld a, [wd002]
- set 7, a
- and $cf
- ld [wd002], a
-.asm_48988
- hlcoord 11, 10
- ld b, $0
- ld c, d
- add hl, bc
- ld b, $3
- call Function48c11
-.asm_48994
- call WaitBGMap
- pop af
- pop bc
- jr nc, asm_48922
- jr nz, .asm_489b1
- pop bc
- ld a, b
- ld [wd475], a
- ld a, c
- ld [wd476], a
- pop bc
- ld a, b
- ld [wd477], a
- ld a, c
- ld [wd478], a
- jr .asm_489c5
-.asm_489b1
- push af
- ld a, [wd479]
- set 0, a
- ld [wd479], a
- ld a, [wd003]
- set 3, a
- ld [wd003], a
- pop af
- pop bc
- pop bc
-.asm_489c5
- push af
- push bc
- push de
- push hl
- ld a, $1
- call MenuClickSound
- pop hl
- pop de
- pop bc
- pop af
- call ExitMenu
- hlcoord 11, 10
- call Function489ea
- hlcoord 11, 9
- lb bc, 1, 8
- call ClearBox
- pop af
- ld [hInMenu], a
- jp Function4840c
-
-Function489ea: ; 489ea (12:49ea)
- push de
- ld a, [wd475]
- and $f
- call Mobile12_Bin2Dec
- ld a, [wd476]
- and $f0
- swap a
- inc hl
- call Mobile12_Bin2Dec
- ld a, [wd476]
- and $f
- inc hl
- call Mobile12_Bin2Dec
- inc hl
- ld de, String_48a38
- call PlaceString
- ld a, [wd477]
- and $f0
- swap a
- inc hl
- call Mobile12_Bin2Dec
- ld a, [wd477]
- and $f
- inc hl
- call Mobile12_Bin2Dec
- ld a, [wd478]
- and $f0
- swap a
- inc hl
- call Mobile12_Bin2Dec
- ld a, [wd478]
- and $f
- inc hl
- call Mobile12_Bin2Dec
- pop de
- ret
-; 48a38 (12:4a38)
-
-String_48a38: ; 48a38
- db "-@"
-; 48a3a
-
-Function48a3a: ; 48a3a (12:4a3a)
- ld hl, MenuDataHeader_0x48a9c
- call LoadMenuDataHeader
- call Function4873c
- ld a, $a
- ld [w2DMenuCursorInitY], a
- ld a, $b
- ld [w2DMenuCursorInitX], a
- ld a, $1
- ld [wMenuCursorY], a
- hlcoord 10, 8
- ld b, $4
- ld c, $8
- call Function48cdc
- hlcoord 12, 10
- ld de, String_48aa1
- call PlaceString
- call StaticMenuJoypad
- push af
- call PlayClickSFX
- call ExitMenu
- pop af
- bit 1, a
- jp nz, Function48a9a
- ld a, [wMenuCursorY]
- cp $1
- jr z, .asm_48a98
- ld a, [wd003]
- set 3, a
- ld [wd003], a
- ld a, [wd479]
- res 0, a
- ld [wd479], a
- xor a
- ld bc, $4
- ld hl, wd475
- call ByteFill
- jr Function48a9a
-.asm_48a98
- and a
- ret
-
-Function48a9a: ; 48a9a (12:4a9a)
- scf
- ret
-; 48a9c (12:4a9c)
-
-MenuDataHeader_0x48a9c: ; 0x48a9c
- db $40 ; flags
- db 08, 10 ; start coords
- db 13, 19 ; end coord
-
-String_48aa1: ; 48aa1
- db "Tell Now"
- next "Tell Later@"
-; 48ab5
-
-
-Function48ab5: ; 48ab5 (12:4ab5)
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Function48c0f
- ld a, [hJoyPressed]
- and B_BUTTON
- jp nz, Function48c0d
- ld a, d
- and a
- jr z, .asm_48adf
- cp $1
- jr z, .asm_48ae7
- cp $2
- jr z, .asm_48af1
- cp $3
- jr z, .asm_48af9
- cp $4
- jr z, .asm_48b03
- cp $5
- jr z, .asm_48b0b
- cp $6
- jr .asm_48b15
-.asm_48adf
- ld hl, wd475
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48ae7
- ld hl, wd476
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48af1
- ld hl, wd476
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48af9
- ld hl, wd477
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48b03
- ld hl, wd477
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48b0b
- ld hl, wd478
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48b15
- ld hl, wd478
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48b1d
- push hl
- push af
- ld e, $0
- hlcoord 11, 10
- ld a, d
-.asm_48b25
- and a
- jr z, .asm_48b2c
- inc e
- dec a
- jr .asm_48b25
-.asm_48b2c
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_48b8d
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_48b55
- ld a, [hl]
- and D_LEFT
- jp nz, Function48bd7
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_48b9d
- hlcoord 11, 10
- call Function489ea
- ld a, [wd002]
- bit 7, a
- jr nz, .asm_48b51
-.asm_48b51
- pop bc
- pop bc
- and a
- ret
-.asm_48b55
- pop af
- ld b, a
- and $f
- and a
- ld a, b
- jr nz, .asm_48b61
- and $f0
- add $a
-.asm_48b61
- dec a
-.asm_48b62
- push de
- push af
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop af
- pop de
- hlcoord 11, 10
- ld b, a
- ld a, d
- cp $3
- jr c, .asm_48b7a
- inc hl
-.asm_48b7a
- ld a, b
- pop hl
- bit 7, a
- jr z, .asm_48b85
- call Function48c4d
- jr .asm_48b88
-.asm_48b85
- call Function48c5a
-.asm_48b88
- ld a, $f0
- jp Function48c00
-.asm_48b8d
- pop af
- ld b, a
- and $f
- cp $9
- ld a, b
- jr c, .asm_48b9a
- and $f0
- add $ff
-.asm_48b9a
- inc a
- jr .asm_48b62
-.asm_48b9d
- push de
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop de
- ld a, d
- cp $6
- jr nc, .asm_48baf
- inc d
-.asm_48baf
- pop af
- pop hl
- ld b, a
- ld a, d
- cp $6
- ld a, b
- jr z, .asm_48bc4
- bit 7, a
- jr nz, .asm_48bc4
- inc hl
- ld a, [hl]
- swap a
- and $f
- jr asm_48bc7
-.asm_48bc4
- ld a, [hl]
- and $f
-
-asm_48bc7: ; 48bc7 (12:4bc7)
- hlcoord 11, 10
- push af
- ld a, d
- cp $3
- pop bc
- ld a, b
- jr c, .asm_48bd3
- inc hl
-.asm_48bd3
- ld a, $f
- jr Function48c00
-
-Function48bd7: ; 48bd7 (12:4bd7)
- push de
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop de
- ld a, d
- and a
- pop af
- pop hl
- ld b, a
- ld a, d
- and a
- ld a, b
- jr z, .asm_48bf3
- bit 7, a
- jr z, .asm_48bf8
- dec d
- dec hl
-.asm_48bf3
- ld a, [hl]
- and $f
- jr asm_48bc7
-.asm_48bf8
- dec d
- ld a, [hl]
- swap a
- and $f
- jr asm_48bc7
-
-Function48c00: ; 48c00 (12:4c00)
- push af
- hlcoord 11, 10
- call Function489ea
- ld a, $1
- and a
- pop bc
- ld a, b
- ret
-
-Function48c0d: ; 48c0d (12:4c0d)
- xor a
- and a
-
-Function48c0f: ; 48c0f (12:4c0f)
- scf
- ret
-
-Function48c11: ; 48c11 (12:4c11)
- ld a, [wd002]
- bit 7, a
- jr z, .asm_48c20
- ld a, d
- cp $3
- jr c, .asm_48c1e
- inc hl
-.asm_48c1e
- ld [hl], $7f
-.asm_48c20
- ld a, [wd002]
- swap a
- and $3
- inc a
- cp b
- jr nz, .asm_48c40
- ld a, [wd002]
- bit 7, a
- jr z, .asm_48c3a
- res 7, a
- ld [wd002], a
- xor a
- jr .asm_48c40
-.asm_48c3a
- set 7, a
- ld [wd002], a
- xor a
-.asm_48c40
- swap a
- ld b, a
- ld a, [wd002]
- and $cf
- or b
- ld [wd002], a
- ret
-
-Function48c4d: ; 48c4d (12:4c4d)
- swap a
- and $f0
- push af
- ld a, [hl]
- and $f
- ld [hl], a
- pop af
- or [hl]
- ld [hl], a
- ret
-
-Function48c5a: ; 48c5a (12:4c5a)
- push af
- ld a, [hl]
- and $f0
- ld [hl], a
- pop af
- or [hl]
- ld [hl], a
- ret
-
-Function48c63: ; 48c63
- ld a, "@"
- ld [de], a
- ld a, c
- cp $30
- jr nc, .asm_48c8c
- and a
- jr z, .asm_48c8c
- dec c
- push de
- ld h, d
- ld l, e
- ld a, "@"
- ld b, 7
-.asm_48c76
- ld [hli], a
- dec b
- jr nz, .asm_48c76
- ld hl, Prefectures
- ld a, c
- call GetNthString
-.asm_48c81
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- cp "@"
- jr nz, .asm_48c81
- and a
- pop de
- ret
-
-.asm_48c8c
- scf
- ret
-; 48c8e
-
-Function48c8e: ; 48c8e
-; unreferenced
- ld hl, $d02a
- ld d, h
- ld e, l
- callba Function48c63
- hlcoord 10, 7
- call PlaceString
- call WaitBGMap
- ret
-; 48ca3
-
-Function48ca3: ; 48ca3
- push af
- push bc
- push de
- push hl
- ld b, 0
- ld c, 0
- ld d, 0
-.asm_48cad
- cp 100
- jr c, .asm_48cb6
- sub 100
- inc b
- jr .asm_48cad
-
-.asm_48cb6
- cp 10
- jr c, .asm_48cbf
- sub 10
- inc c
- jr .asm_48cb6
-
-.asm_48cbf
- cp 1
- jr c, .asm_48cc7
- dec a
- inc d
- jr .asm_48cbf
-
-.asm_48cc7
- ld a, b
- call Mobile12_Bin2Dec
- inc hl
- ld a, c
- call Mobile12_Bin2Dec
- inc hl
- ld a, d
- call Mobile12_Bin2Dec
- pop hl
- pop de
- pop bc
- pop af
- ret
-; 48cda
-
-Function48cda: ; 48cda (12:4cda)
- ld h, d
- ld l, e
-
-Function48cdc: ; 48cdc (12:4cdc)
- push bc
- push hl
- call Function48cfd
- pop hl
- pop bc
- ld de, AttrMap - TileMap
- add hl, de
- inc b
- inc b
- inc c
- inc c
- ld a, $0
-.asm_48ced
- push bc
- push hl
-.asm_48cef
- ld [hli], a
- dec c
- jr nz, .asm_48cef
- pop hl
- ld de, $14
- add hl, de
- pop bc
- dec b
- jr nz, .asm_48ced
- ret
-
-Function48cfd: ; 48cfd (12:4cfd)
- push hl
- ld a, $4
- ld [hli], a
- inc a
- call Function48d2a
- inc a
- ld [hl], a
- pop hl
- ld de, $14
- add hl, de
-.asm_48d0c
- push hl
- ld a, $7
- ld [hli], a
- ld a, $7f
- call Function48d2a
- ld [hl], $8
- pop hl
- ld de, $14
- add hl, de
- dec b
- jr nz, .asm_48d0c
- ld a, $9
- ld [hli], a
- ld a, $a
- call Function48d2a
- ld [hl], $b
- ret
-
-Function48d2a: ; 48d2a (12:4d2a)
- ld d, c
-.asm_48d2b
- ld [hli], a
- dec d
- jr nz, .asm_48d2b
- ret
-
-Function48d30: ; 48d30 (12:4d30)
- ld hl, wd475
- call Function48d4a
- ld hl, wd477
- call Function48d4a
- ret
-
-Function48d3d: ; 48d3d (12:4d3d)
- ld hl, wd475
- call Function48d94
- ld hl, wd477
- call Function48d94
- ret
-
-Function48d4a: ; 48d4a (12:4d4a)
- inc hl
- ld a, [hl]
- ld b, a
- and $f
- ld c, a
- srl b
- srl b
- srl b
- srl b
- push bc
- ld c, 10
- ld a, b
- call SimpleMultiply
- pop bc
- add c
- ld [hld], a
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, [hl]
- srl a
- srl a
- srl a
- srl a
- ld c, 10
- call SimpleMultiply
- ld b, a
- ld a, [hli]
- and $f
- add b
- ld [hMultiplicand + 2], a
- ld a, 100
- ld [hMultiplier], a
- call Multiply
- ld a, [hProduct + 2]
- ld b, a
- ld a, [hProduct + 3]
- ld c, a
- ld e, [hl]
- add e
- ld c, a
- ld a, b
- adc $0
- ld b, a
- ld a, c
- ld [hld], a
- ld [hl], b
- ret
-
-Function48d94: ; 48d94 (12:4d94)
- xor a
- ld [hDividend + 0], a
- ld [hDividend + 1], a
- ld a, [hli]
- ld [hDividend + 0], a
- ld a, [hl]
- ld [hDividend + 1], a
- ld a, 100
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hRemainder]
- ld c, 10
- call SimpleDivide
- sla b
- sla b
- sla b
- sla b
- or b
- ld [hld], a
- ld a, [hQuotient + 2]
- ld c, 10
- call SimpleDivide
- sla b
- sla b
- sla b
- sla b
- or b
- ld [hl], a
- ret
--- a/misc/mobile_12_2.asm
+++ /dev/null
@@ -1,936 +1,0 @@
-MobileCheckOwnMonAnywhere: ; 4a843
-; Like CheckOwnMonAnywhere, but only check for species.
-; OT/ID don't matter.
-
- ld a, [PartyCount]
- and a
- ret z
-
- ld d, a
- ld e, 0
- ld hl, PartyMon1Species
- ld bc, PartyMonOT
-.asm_4a851
- call .CheckMatch
- ret c
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- call .CopyName
- dec d
- jr nz, .asm_4a851
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld a, [sBoxCount]
- and a
- jr z, .asm_4a888
- ld d, a
- ld hl, sBoxMon1Species
- ld bc, sBoxMonOT
-.asm_4a873
- call .CheckMatch
- jr nc, .asm_4a87c
- call CloseSRAM
- ret
-
-.asm_4a87c
- push bc
- ld bc, BOXMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- call .CopyName
- dec d
- jr nz, .asm_4a873
-
-.asm_4a888
- call CloseSRAM
- ld c, 0
-.asm_4a88d
- ld a, [wCurBox]
- and $f
- cp c
- jr z, .asm_4a8d1
- ld hl, .BoxAddrs
- ld b, 0
- add hl, bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- call GetSRAMBank
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hl]
- and a
- jr z, .asm_4a8d1
- push bc
- push hl
- ld de, sBoxMons - sBoxCount
- add hl, de
- ld d, h
- ld e, l
- pop hl
- push de
- ld de, sBoxMonOT - sBoxCount
- add hl, de
- ld b, h
- ld c, l
- pop hl
- ld d, a
-.asm_4a8ba
- call .CheckMatch
- jr nc, .asm_4a8c4
- pop bc
- call CloseSRAM
- ret
-
-.asm_4a8c4
- push bc
- ld bc, BOXMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- call .CopyName
- dec d
- jr nz, .asm_4a8ba
- pop bc
-
-.asm_4a8d1
- inc c
- ld a, c
- cp NUM_BOXES
- jr c, .asm_4a88d
- call CloseSRAM
- and a
- ret
-; 4a8dc
-
-.CheckMatch: ; 4a8dc
- push bc
- push hl
- push de
- ld d, b
- ld e, c
- ld a, [ScriptVar]
- ld b, [hl]
- cp b
- jr nz, .no_match
- jr .match
-
-.no_match
- pop de
- pop hl
- pop bc
- and a
- ret
-
-.match
- pop de
- pop hl
- pop bc
- scf
- ret
-; 4a8f4
-
-.BoxAddrs: ; 4a8f4
- dba sBox1
- dba sBox2
- dba sBox3
- dba sBox4
- dba sBox5
- dba sBox6
- dba sBox7
- dba sBox8
- dba sBox9
- dba sBox10
- dba sBox11
- dba sBox12
- dba sBox13
- dba sBox14
-; 4a91e
-
-.CopyName: ; 4a91e
- push hl
- ld hl, NAME_LENGTH
- add hl, bc
- ld b, h
- ld c, l
- pop hl
- ret
-; 4a927
-
-FindItemInPCOrBag: ; 4a927
- ld a, [ScriptVar]
- ld [CurItem], a
- ld hl, PCItems
- call CheckItem
- jr c, .found
-
- ld a, [ScriptVar]
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- jr c, .found
-
- xor a
- ld [ScriptVar], a
- ret
-
-.found
- ld a, 1
- ld [ScriptVar], a
- ret
-; 4a94e
-
-Function4a94e: ; 4a94e
- call FadeToMenu
- ld a, -1
- ld hl, wd002
- ld bc, 3
- call ByteFill
- xor a
- ld [wd018], a
- ld [wd019], a
- ld b, SCGB_PACKPALS
- call GetSGBLayout
- call SetPalettes
- call Function4aa22
- jr c, .asm_4a985
- jr z, .asm_4a9a1
- jr .asm_4a97b
-
-.asm_4a974
- call Function4aa25
- jr c, .asm_4a985
- jr z, .asm_4a9a1
-
-.asm_4a97b
- call Function4ac58
- ld hl, wd019
- res 1, [hl]
- jr .asm_4a974
-
-.asm_4a985
- ld a, [wd018]
- and a
- jr nz, .asm_4a990
- call Function4aba8
- jr c, .asm_4a974
-
-.asm_4a990
- call CloseSubmenu
- ld hl, wd002
- ld a, -1
- ld bc, 3
- call ByteFill
- scf
- jr .asm_4a9af
-
-.asm_4a9a1
- call Function4a9c3
- jr c, .asm_4a9b0
- call Function4a9d7
- jr c, .asm_4a974
- call CloseSubmenu
- and a
-
-.asm_4a9af
- ret
-
-.asm_4a9b0
- ld de, SFX_WRONG
- call PlaySFX
- ld hl, UnknownText_0x4a9be
- call PrintText
- jr .asm_4a974
-; 4a9be
-
-UnknownText_0x4a9be: ; 0x4a9be
- ; Pick three #MON for battle.
- text_jump UnknownText_0x1c51d7
- db "@"
-; 0x4a9c3
-
-Function4a9c3: ; 4a9c3
- ld hl, wd002
- ld a, $ff
- cp [hl]
- jr z, .asm_4a9d5
- inc hl
- cp [hl]
- jr z, .asm_4a9d5
- inc hl
- cp [hl]
- jr z, .asm_4a9d5
- and a
- ret
-
-.asm_4a9d5
- scf
- ret
-; 4a9d7
-
-Function4a9d7: ; 4a9d7
- ld a, [wd002]
- ld hl, PartyMonNicknames
- call GetNick
- ld h, d
- ld l, e
- ld de, EndFlypoint
- ld bc, 6
- call CopyBytes
- ld a, [wd003]
- ld hl, PartyMonNicknames
- call GetNick
- ld h, d
- ld l, e
- ld de, wd00c
- ld bc, 6
- call CopyBytes
- ld a, [wd004]
- ld hl, PartyMonNicknames
- call GetNick
- ld h, d
- ld l, e
- ld de, wd012
- ld bc, 6
- call CopyBytes
- ld hl, UnknownText_0x4aa1d
- call PrintText
- call YesNoBox
- ret
-; 4aa1d
-
-UnknownText_0x4aa1d: ; 0x4aa1d
- ; , @ and @ . Use these three?
- text_jump UnknownText_0x1c51f4
- db "@"
-; 0x4aa22
-
-Function4aa22: ; 4aa22
- call ClearBGPalettes
-
-Function4aa25: ; 4aa25
- callba LoadPartyMenuGFX
- callba InitPartyMenuWithCancel
- call Function4aad3
-
-Function4aa34: ; 4aa34
- ld a, PARTYMENUACTION_MOBILE
- ld [PartyMenuActionText], a
- callba WritePartyMenuTilemap
- xor a
- ld [PartyMenuActionText], a
- callba PrintPartyMenuText
- call Function4aab6
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- call Function4ab1a
- jr z, .asm_4aa66
- push af
- call Function4aafb
- jr c, .asm_4aa67
- call Function4ab06
- jr c, .asm_4aa67
- pop af
-
-.asm_4aa66
- ret
-
-.asm_4aa67
- ld hl, wd019
- set 1, [hl]
- pop af
- ret
-; 4aa6e
-
-Function4aa6e: ; 4aa6e
- pop af
- ld de, SFX_WRONG
- call PlaySFX
- call WaitSFX
- jr Function4aa34
-; 4aa7a
-
-Function4aa7a: ; 4aa7a
- ld hl, wd002
- ld d, $3
-.loop
- ld e, PARTY_LENGTH
- ld a, [hli]
- push de
- push hl
- cp -1
- jr z, .done
- ld hl, wSpriteAnimationStructs
- inc a
- ld d, a
-.inner_loop
- ld a, [hl]
- and a
- jr z, .next
- cp d
- jr z, .same_as_d
- jr .next
-
- ld a, $3
- jr .proceed
-
-.same_as_d
- ld a, $2
-
-.proceed
- push hl
- ld c, l
- ld b, h
- ld hl, $2
- add hl, bc
- ld [hl], a
- pop hl
-
-.next
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .inner_loop
- pop hl
- pop de
- dec d
- jr nz, .loop
- jr .finished
-
-.done
- pop hl
- pop de
-
-.finished
- ret
-; 4aab6
-
-Function4aab6: ; 4aab6
- ld hl, wd002
- ld d, $3
-.loop
- ld a, [hli]
- cp -1
- jr z, .done
- push de
- push hl
- hlcoord 0, 1
- ld bc, $28
- call AddNTimes
- ld [hl], $ec
- pop hl
- pop de
- dec d
- jr nz, .loop
-
-.done
- ret
-; 4aad3
-
-Function4aad3: ; 4aad3
- ld hl, PartyCount
- ld a, [hli]
- and a
- ret z ; Nothing in your party
-
- ld c, a
- xor a
- ld [hObjectStructIndexBuffer], a
-.loop
- push bc
- push hl
- ld e, 0
- callba LoadMenuMonIcon
- ld a, [hObjectStructIndexBuffer]
- inc a
- ld [hObjectStructIndexBuffer], a
- pop hl
- pop bc
- dec c
- jr nz, .loop
-
- call Function4aa7a
- callba PlaySpriteAnimations
- ret
-; 4aafb
-
-Function4aafb: ; 4aafb
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
- and a
- ret
-
-.egg
- scf
- ret
-; 4ab06
-
-Function4ab06: ; 4ab06
- ld a, [CurPartyMon]
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1HP
- call AddNTimes
- ld a, [hli]
- ld b, a
- ld a, [hl]
- or b
- jr nz, .NotFainted
- scf
-
-.NotFainted:
- ret
-; 4ab1a
-
-Function4ab1a: ; 4ab1a
-.asm_4ab1a
- ld a, $fb
- ld [wMenuJoypadFilter], a
- ld a, $26
- ld [w2DMenuCursorOffsets], a
- ld a, $2
- ld [w2DMenuNumCols], a
- call Function4adf7
- call StaticMenuJoypad
- call Function4abc3
- jr c, .asm_4ab1a
- push af
- call Function4ab99
- call nc, PlaceHollowCursor
- pop af
- bit 1, a
- jr nz, .asm_4ab6d
- ld a, [PartyCount]
- inc a
- ld b, a
- ld a, [wMenuCursorY]
- ld [wPartyMenuCursor], a
- cp b
- jr z, .asm_4ab7e
- ld a, [wMenuCursorY]
- dec a
- ld [CurPartyMon], a
- ld c, a
- ld b, $0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- ld [CurPartySpecies], a
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- ld a, $1
- and a
- ret
-
-.asm_4ab6d
- ld a, [wMenuCursorY]
- ld [wPartyMenuCursor], a
-.asm_4ab73
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- scf
- ret
-
-.asm_4ab7e
- ld a, $1
- ld [wd018], a
- ld a, [wMenuCursorX]
- cp $2
- jr z, .asm_4ab73
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- xor a
- ld [wd018], a
- and a
- ret
-; 4ab99
-
-Function4ab99: ; 4ab99
- bit 1, a
- jr z, .asm_4aba6
- ld a, [wd002]
- cp $ff
- jr z, .asm_4aba6
- scf
- ret
-
-.asm_4aba6
- and a
- ret
-; 4aba8
-
-Function4aba8: ; 4aba8
- ld hl, wd004
- ld a, [hl]
- cp $ff
- jr nz, .asm_4abbe
- dec hl
- ld a, [hl]
- cp $ff
- jr nz, .asm_4abbe
- dec hl
- ld a, [hl]
- cp $ff
- jr nz, .asm_4abbe
- and a
- ret
-
-.asm_4abbe
- ld a, $ff
- ld [hl], a
- scf
- ret
-; 4abc3
-
-Function4abc3: ; 4abc3
- bit 3, a
- jr z, .asm_4abd5
- ld a, [PartyCount]
- inc a
- ld [wMenuCursorY], a
- ld a, $1
- ld [wMenuCursorX], a
- jr .asm_4ac29
-
-.asm_4abd5
- bit 6, a
- jr z, .asm_4abeb
- ld a, [wMenuCursorY]
- ld [wMenuCursorY], a
- and a
- jr nz, .asm_4ac29
- ld a, [PartyCount]
- inc a
- ld [wMenuCursorY], a
- jr .asm_4ac29
-
-.asm_4abeb
- bit 7, a
- jr z, .asm_4ac08
- ld a, [wMenuCursorY]
- ld [wMenuCursorY], a
- ld a, [PartyCount]
- inc a
- inc a
- ld b, a
- ld a, [wMenuCursorY]
- cp b
- jr nz, .asm_4ac29
- ld a, $1
- ld [wMenuCursorY], a
- jr .asm_4ac29
-
-.asm_4ac08
- bit 4, a
- jr nz, .asm_4ac10
- bit 5, a
- jr z, .asm_4ac56
-
-.asm_4ac10
- ld a, [wMenuCursorY]
- ld b, a
- ld a, [PartyCount]
- inc a
- cp b
- jr nz, .asm_4ac29
- ld a, [wMenuCursorX]
- cp $1
- jr z, .asm_4ac26
- ld a, $1
- jr .asm_4ac29
-
-.asm_4ac26
- ld [wMenuCursorX], a
-
-.asm_4ac29
- hlcoord 0, 1
- lb bc, 13, 1
- call ClearBox
- call Function4aab6
- ld a, [PartyCount]
- hlcoord 6, 1
-.asm_4ac3b
- ld bc, $28
- add hl, bc
- dec a
- jr nz, .asm_4ac3b
- ld [hl], $7f
- ld a, [wMenuCursorY]
- ld b, a
- ld a, [PartyCount]
- inc a
- cp b
- jr z, .asm_4ac54
- ld a, $1
- ld [wMenuCursorX], a
-
-.asm_4ac54
- scf
- ret
-
-.asm_4ac56
- and a
- ret
-; 4ac58
-
-Function4ac58: ; 4ac58
- lb bc, 2, 18
- hlcoord 1, 15
- call ClearBox
- callba FreezeMonIcons
- ld hl, MenuDataHeader_0x4aca2
- call LoadMenuDataHeader
- ld hl, wd019
- bit 1, [hl]
- jr z, .asm_4ac89
- hlcoord 11, 13
- ld b, $3
- ld c, $7
- call TextBox
- hlcoord 13, 14
- ld de, String_4ada7
- call PlaceString
- jr .asm_4ac96
-
-.asm_4ac89
- hlcoord 11, 9
- ld b, $7
- ld c, $7
- call TextBox
- call Function4ad68
-
-.asm_4ac96
- ld a, $1
- ld [hBGMapMode], a
- call Function4acaa
- call ExitMenu
- and a
- ret
-; 4aca2
-
-MenuDataHeader_0x4aca2: ; 0x4aca2
- db $40 ; flags
- db 09, 11 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 1 ; default option
-; 0x4acaa
-
-Function4acaa: ; 4acaa
-.asm_4acaa
- ld a, $a0
- ld [wMenuData2Flags], a
- ld a, [wd019]
- bit 1, a
- jr z, .asm_4acc2
- ld a, $2
- ld [wMenuData2Items], a
- ld a, $c
- ld [wMenuBorderTopCoord], a
- jr .asm_4accc
-
-.asm_4acc2
- ld a, $4
- ld [wMenuData2Items], a
- ld a, $8
- ld [wMenuBorderTopCoord], a
-
-.asm_4accc
- ld a, $b
- ld [wMenuBorderLeftCoord], a
- ld a, $1
- ld [wMenuCursorBuffer], a
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 6, [hl]
- call StaticMenuJoypad
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- ld a, [hJoyPressed]
- bit 0, a
- jr nz, .asm_4acf4
- bit 1, a
- jr nz, .asm_4acf3
- jr .asm_4acaa
-
-.asm_4acf3
- ret
-
-.asm_4acf4
- ld a, [wd019]
- bit 1, a
- jr nz, .asm_4ad0e
- ld a, [wMenuCursorY]
- cp $1
- jr z, Function4ad17
- cp $2
- jp z, Function4ad56
- cp $3
- jp z, Function4ad60
- jr .asm_4acf3
-
-.asm_4ad0e
- ld a, [wMenuCursorY]
- cp $1
- jr z, Function4ad56
- jr .asm_4acf3
-
-Function4ad17: ; 4ad17
- call Function4adb2
- jr z, .asm_4ad4a
- ld hl, wd002
- ld a, $ff
- cp [hl]
- jr z, .asm_4ad39
- inc hl
- cp [hl]
- jr z, .asm_4ad39
- inc hl
- cp [hl]
- jr z, .asm_4ad39
- ld de, SFX_WRONG
- call WaitPlaySFX
- ld hl, UnknownText_0x4ad51
- call PrintText
- ret
-
-.asm_4ad39
- ld a, [CurPartyMon]
- ld [hl], a
- call Function4a9c3
- ret c
- ld a, [wd019]
- set 0, a
- ld [wd019], a
- ret
-
-.asm_4ad4a
- ld a, $ff
- ld [hl], a
- call Function4adc2
- ret
-
-UnknownText_0x4ad51: ; 0x4ad51
- ; Only three #MON may enter.
- text_jump UnknownText_0x1c521c
- db "@"
-; 0x4ad56
-
-Function4ad56: ; 4ad56
- callba OpenPartyStats
- call WaitBGMap2
- ret
-; 4ad60
-
-Function4ad60: ; 4ad60
- callba ManagePokemonMoves
- ret
-; 4ad67
-
-Function4ad67: ; 4ad67
- ret
-; 4ad68
-
-Function4ad68: ; 4ad68
- hlcoord 13, 12
- ld de, String_4ad88
- call PlaceString
- call Function4adb2
- jr c, .asm_4ad7e
- hlcoord 13, 10
- ld de, String_4ada0
- jr .asm_4ad84
-
-.asm_4ad7e
- hlcoord 13, 10
- ld de, String_4ad9a
-
-.asm_4ad84
- call PlaceString
- ret
-; 4ad88
-
-String_4ad88: ; 4ad88
- db "つよさをみる"
- next "つかえるわざ"
- next "もどる@"
-; 4ad9a
-
-String_4ad9a: ; 4ad9a
- db "さんかする@"
-; 4ada0
-
-String_4ada0: ; 4ada0
- db "さんかしない@"
-; 4ada7
-
-String_4ada7: ; 4ada7
- db "つよさをみる"
- next "もどる@" ; BACK
-; 4adb2
-
-Function4adb2: ; 4adb2
- ld hl, wd002
- ld a, [CurPartyMon]
- cp [hl]
- ret z
- inc hl
- cp [hl]
- ret z
- inc hl
- cp [hl]
- ret z
- scf
- ret
-; 4adc2
-
-Function4adc2: ; 4adc2
- ld a, [wd002]
- cp $ff
- jr nz, .skip
- ld a, [wd003]
- cp $ff
- jr nz, .skip2
- ld a, [wd004]
- ld [wd002], a
- ld a, $ff
- ld [wd004], a
- jr .skip
-
-.skip2
- ld [wd002], a
- ld a, $ff
- ld [wd003], a
-
-.skip
- ld a, [wd003]
- cp $ff
- ret nz
- ld b, a
- ld a, [wd004]
- ld [wd003], a
- ld a, b
- ld [wd004], a
- ret
-; 4adf7
-
-Function4adf7: ; 4adf7
- ld a, [wd019]
- bit 0, a
- ret z
- ld a, [PartyCount]
- inc a
- ld [wMenuCursorY], a
- ld a, $1
- ld [wMenuCursorX], a
- ld a, [wd019]
- res 0, a
- ld [wd019], a
- ret
-; 4ae12
--- a/misc/mobile_22.asm
+++ /dev/null
@@ -1,4448 +1,0 @@
-
-String_8911c: ; 8911c
- db "でんわばんごうが ただしく" ; Phone number is not
- next "はいって いません!@" ; entered correctly!
-; 89135
-
-String_89135: ; 89135
- db "データが かわって いますが" ; The data has changed.
- next "かきかえないで やめますか?@" ; Quit anyway?
-; 89153
-
-String_89153: ; 89153
- db "メッセージは ありません@" ; No message
-; 89160
-
-OpenSRAMBank4: ; 89160
- push af
- ld a, $4
- call GetSRAMBank
- pop af
- ret
-; 89168
-
-
-Function89168: ; 89168 (22:5168)
- ld hl, GameTimerPause
- set 7, [hl]
- ret
-
-Function8916e: ; 8916e (22:516e)
- ld hl, GameTimerPause
- res 7, [hl]
- ret
-
-Function89174: ; 89174 (22:5174)
- ld hl, GameTimerPause
- bit 7, [hl]
- ret
-
-Function8917a: ; 8917a (22:517a)
- ld hl, wd002
- ld bc, $32
- xor a
- call ByteFill
- ret
-
-Function89185: ; 89185 (22:5185)
-; strcmp(hl, de, c)
-; Compares c bytes starting at de and hl and incrementing together until a mismatch is found.
-; Preserves hl and de.
- push de
- push hl
-.loop
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .done
- inc hl
- dec c
- jr nz, .loop
-.done
- pop hl
- pop de
- ret
-
-Function89193: ; 89193
-; copy(hl, de, 4)
-; Copies c bytes from hl to de.
-; Preserves hl and de.
- push de
- push hl
-.loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop
- pop hl
- pop de
- ret
-; 8919e
-
-
-Function8919e: ; 8919e (22:519e)
-; Searches for the c'th string starting at de. Returns the pointer in de.
- ld a, c
- and a
- ret z
-.loop
- ld a, [de]
- inc de
- cp "@"
- jr nz, .loop
- dec c
- jr nz, .loop
- ret
-
-Function891ab: ; 891ab
- call Mobile22_SetBGMapMode1
- callba ReloadMapPart
- call Mobile22_SetBGMapMode0
- ret
-; 891b8
-
-Function891b8: ; 891b8
- call Mobile22_SetBGMapMode0
- hlcoord 0, 0
- ld a, " "
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call DelayFrame
- ret
-; 891ca
-
-
-Function891ca: ; 891ca (22:51ca)
- push bc
- call Function891b8
- call WaitBGMap
- pop bc
- ret
-
-Function891d3: ; 891d3 (22:51d3)
- push bc
- call Function891ca
- ld c, $10
- call DelayFrames
- pop bc
- ret
-
-Function891de: ; 891de
- call Mobile22_SetBGMapMode0
- call ClearPalettes
- hlcoord 0, 0, AttrMap
- ld a, $7
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- hlcoord 0, 0
- ld a, " "
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call Function891ab
- ret
-; 891fe
-
-Function891fe: ; 891fe
- push bc
- call Function891de
- ld c, $10
- call DelayFrames
- pop bc
- ret
-; 89209
-
-Function89209: ; 89209
- ld a, 1
- ld [wSpriteUpdatesEnabled], a
- ret
-; 8920f
-
-Function8920f: ; 8920f
- ld a, 0
- ld [wSpriteUpdatesEnabled], a
- ret
-; 89215
-
-Function89215: ; 89215
- push hl
- push bc
- ld bc, AttrMap - TileMap
- add hl, bc
- ld [hl], a
- pop bc
- pop hl
- ret
-; 8921f
-
-
-Function8921f: ; 8921f (22:521f)
- push de
- ld de, SCREEN_WIDTH
- add hl, de
- inc hl
- ld a, $7f
-.loop
- push bc
- push hl
-.asm_89229
- ld [hli], a
- dec c
- jr nz, .asm_89229
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .loop
- pop de
- ret
-
-Mobile22_ButtonSound: ; 89235 (22:5235)
- call JoyWaitAorB
- call PlayClickSFX
- ret
-
-Mobile22_SetBGMapMode0: ; 8923c
- xor a
- ld [hBGMapMode], a
- ret
-; 89240
-
-Mobile22_SetBGMapMode1: ; 89240
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 89245
-
-
-Function89245: ; 89245 (22:5245)
- callba TryLoadSaveFile
- ret c
- callba _LoadData
- and a
- ret
-
-Function89254: ; 89254 (22:5254)
- ld bc, $d07
- jr Function89261
-
-Function89259: ; 89259
- ld bc, $0e07
- jr Function89261
-
-Function8925e: ; 8925e
- ld bc, $0e0c
-
-Function89261: ; 89261
- push af
- push bc
- ld hl, MenuDataHeader_0x892a3
- call CopyMenuDataHeader
- pop bc
- ld hl, wMenuBorderTopCoord
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
- ld a, c
- add $4
- ld [hli], a
- ld a, b
- add $5
- ld [hl], a
- pop af
- ld [wMenuCursorBuffer], a
- call PushWindow
- call Mobile22_SetBGMapMode0
- call Function89209
- call VerticalMenu
- push af
- ld c, $a
- call DelayFrames
- call CloseWindow
- call Function8920f
- pop af
- jr c, .done
- ld a, [wMenuCursorY]
- cp $2
- jr z, .done
- and a
- ret
-
-.done
- scf
- ret
-; 892a3
-
-MenuDataHeader_0x892a3: ; 0x892a3
- db $40 ; flags
- db 05, 10 ; start coords
- db 09, 15 ; end coords
- dw MenuData2_0x892ab
- db 1 ; default option
-; 0x892ab
-
-MenuData2_0x892ab: ; 0x892ab
- db $c0 ; flags
- db 2 ; items
- db "はい@"
- db "いいえ@"
-; 0x892b4
-
-Function892b4: ; 892b4 (22:52b4)
- call Function8931b
-
-Function892b7: ; 892b7
- ld d, b
- ld e, c
- ld hl, 0
- add hl, bc
- ld a, "@"
- ld bc, 6
- call ByteFill
- ld b, d
- ld c, e
- ld hl, 6
- add hl, bc
- ld a, "@"
- ld bc, 6
- call ByteFill
- ld b, d
- ld c, e
- ld hl, 12
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- ld hl, 14
- add hl, bc
- ld [hli], a
- ld [hl], a
- ld hl, 16
- add hl, bc
- ld [hl], a
- ld hl, 17
- add hl, bc
- ld a, -1
- ld bc, 8
- call ByteFill
- ld b, d
- ld c, e
- ld e, 6
- ld hl, 25
- add hl, bc
-.loop
- ld a, -1
- ld [hli], a
- ld a, -1
- ld [hli], a
- dec e
- jr nz, .loop
- ret
-; 89305
-
-
-Function89305: ; 89305 (22:5305)
- xor a
- ld [MenuSelection], a
- ld c, 40
-.loop
- ld a, [MenuSelection]
- inc a
- ld [MenuSelection], a
- push bc
- call Function892b4
- pop bc
- dec c
- jr nz, .loop
- ret
-
-Function8931b: ; 8931b
- push hl
- ld hl, $a03b ; 4:a03b
- ld a, [MenuSelection]
- dec a
- ld bc, 37
- call AddNTimes
- ld b, h
- ld c, l
- pop hl
- ret
-; 8932d
-
-Function8932d: ; 8932d
- ld hl, 0
- add hl, bc
-
-Function89331: ; 89331
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.
-; Sets carry if it does not find a nonspace character.
-; Returns the location of the following character in hl.
- push bc
- ld c, 5
-.loop
- ld a, [hli]
- cp "@"
- jr z, .terminator
- cp " "
- jr nz, .nonspace
- dec c
- jr nz, .loop
-
-.terminator
- scf
- jr .done
-
-.nonspace
- and a
-
-.done
- pop bc
- ret
-; 89346
-
-
-Function89346: ; 89346 (22:5346)
- ld h, b
- ld l, c
- jr _incave
-
-Function8934a: ; 8934a
- ld hl, 6
- add hl, bc
-_incave:
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
- push bc
- ld c, 5
-.loop
- ld a, [hli]
- cp "@"
- jr z, .terminator
- cp " "
- jr nz, .nonspace
- dec c
- jr nz, .loop
-
-.terminator
- scf
- jr .done
-
-.nonspace
- and a
-
-.done
- pop bc
- ret
-; 89363
-
-Function89363: ; 89363
-; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl.
- ld h, b
- ld l, c
- jr ._incave
-
- ld hl, 25
- add hl, bc
-
-._incave
- push de
- ld e, 6
-.loop
- ld a, [hli]
- cp -1
- jr nz, .ok
- ld a, [hli]
- cp -1
- jr nz, .ok
- dec e
- jr nz, .loop
- scf
- jr .done
-
-.ok
- and a
-
-.done
- pop de
- ret
-; 89381
-
-Function89381: ; 89381
- push bc
- push de
- call Function89b45
- jr c, .ok
- push hl
- ld a, -1
- ld bc, 8
- call ByteFill
- pop hl
-
-.ok
- pop de
- ld c, 8
- call Function89193
- pop bc
- ret
-; 8939a
-
-Function8939a: ; 8939a
- push bc
- ld hl, 0
- add hl, bc
- ld de, wd002
- ld c, 6
- call Function89193
- pop bc
- ld hl, 17
- add hl, bc
- ld de, wd008
- call Function89381
- ret
-; 893b3
-
-
-Function893b3: ; 893b3 (22:53b3)
- call DisableLCD
- call ClearSprites
- call LoadStandardFont
- call LoadFontsExtra
- call Function893ef
- call Function8942b
- call Function89455
- call EnableLCD
- ret
-
-Function893cc: ; 893cc
- call DisableLCD
- call ClearSprites
- call LoadStandardFont
- call LoadFontsExtra
- call Function893ef
- call Function89464
- call EnableLCD
- ret
-; 893e2
-
-
-Function893e2: ; 893e2 (22:53e2)
- call Function89b1e
- call Function893b3
- call Function8a5b6
- call Function8949c
- ret
-
-Function893ef: ; 893ef
- ld de, VTiles0
- ld hl, GFX_8940b
- ld bc, $20
- ld a, BANK(GFX_8940b)
- call FarCopyBytes
- ret
-; 893fe
-
-Function893fe: ; 893fe
- call DisableLCD
- call Function893ef
- call EnableLCD
- call DelayFrame
- ret
-; 8940b
-
-GFX_8940b: ; 8940b
-INCBIN "gfx/unknown/08940b.2bpp"
-; 8942b
-
-Function8942b: ; 8942b (22:542b)
- ld de, VTiles0 tile $02
- ld hl, MobileAdapterGFX + $7d0
- ld bc, $80
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ld de, VTiles0 tile $0a
- ld hl, MobileAdapterGFX + $c60
- ld bc, $40
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-
-Function89448: ; 89448 (22:5448)
-; Clears the Sprites array
- push af
- ld hl, Sprites
- ld d, $10 * 6
- xor a
-.loop
- ld [hli], a
- dec d
- jr nz, .loop
- pop af
- ret
-
-Function89455: ; 89455 (22:5455)
- ld hl, MobileAdapterGFX + $7d0
- ld de, VTiles2 tile $0c
- ld bc, $490
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-
-Function89464: ; 89464
- ld hl, MobileAdapterGFX
- ld de, VTiles2
- ld bc, $200
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ld hl, MobileAdapterGFX + $660
- ld de, VTiles2 tile $20
- ld bc, $170
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-; 89481
-
-Function89481: ; 89481
- ld d, 2
- call Function8934a
- ret c
- ld d, 0
- ld hl, 16
- add hl, bc
- bit 0, [hl]
- ret z
- inc d
- ret
-; 89492
-
-
-Function89492: ; 89492 (22:5492)
- ld d, 0
- ld a, [PlayerGender]
- bit 0, a
- ret z
- inc d
- ret
-
-Function8949c: ; 8949c
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld hl, Palette_894b3
- ld de, UnknBGPals + 8 * 7
- ld bc, 8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 894b3
-
-Palette_894b3: ; 894b3
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-; 894bb
-
-Function894bb: ; 894bb
- call Function894dc
- push bc
- call Function8956f
- call Function8949c
- call Function8a60d
- pop bc
- ret
-; 894ca
-
-
-Function894ca: ; 894ca (22:54ca)
- push bc
- call Function894dc
- call Function895c7
- call Function8949c
- call Function8a60d
- call SetPalettes
- pop bc
- ret
-
-Function894dc: ; 894dc
- push bc
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
-
- ld c, d
- ld b, 0
- ld hl, .PalettePointers
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, UnknBGPals
- ld bc, 3 palettes
- call CopyBytes
- ld hl, .Pals345
- ld de, UnknBGPals + 3 palettes
- ld bc, 3 palettes
- call CopyBytes
-
- pop af
- ld [rSVBK], a
- pop bc
- ret
-; 89509
-
-.PalettePointers: ; 89509
- dw .Pals012a
- dw .Pals012b
- dw .Pals012c
-; 8950f
-
-.Pals012a: ; 8950f
- RGB 31, 31, 31
- RGB 10, 17, 13
- RGB 10, 08, 22
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 10, 08, 22
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 10, 17, 13
- RGB 00, 00, 00
-
-.Pals012b: ; 89527
- RGB 31, 31, 31
- RGB 30, 22, 11
- RGB 31, 08, 15
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 31, 08, 15
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 30, 22, 11
- RGB 00, 00, 00
-
-.Pals012c: ; 8953f
- RGB 31, 31, 31
- RGB 15, 20, 26
- RGB 25, 07, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 25, 07, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 15, 20, 26
- RGB 00, 00, 00
-
-.Pals345: ; 89557
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 13, 00
- RGB 14, 08, 00
-
- RGB 31, 31, 31
- RGB 16, 16, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 19, 31, 11
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; 8956f
-
-Function8956f: ; 8956f
- push bc
- ld hl, 16
- add hl, bc
- ld d, h
- ld e, l
- ld hl, $000c
- add hl, bc
- ld b, h
- ld c, l
- callba GetMobileOTTrainerClass
- ld a, c
- ld [TrainerClass], a
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld hl, wd030
- ld a, -1
- ld [hli], a
- ld a, " "
- ld [hl], a
- pop af
- ld [rSVBK], a
- ld a, [TrainerClass]
- ld h, 0
- ld l, a
- add hl, hl
- add hl, hl
- ld de, TrainerPalettes
- add hl, de
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, wd032
- ld c, 4
-.loop
- ld a, BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- dec c
- jr nz, .loop
- ld hl, wd036
- xor a
- ld [hli], a
- ld [hl], a
- pop af
- ld [rSVBK], a
- pop bc
- ret
-; 895c7
-
-
-Function895c7: ; 895c7 (22:55c7)
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld hl, Palette_895de
- ld de, wd030
- ld bc, 8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 895de (22:55de)
-
-Palette_895de: ; 895de
- RGB 31, 31, 31
- RGB 07, 07, 06
- RGB 07, 07, 06
- RGB 00, 00, 00
-; 895e6
-
-Function895e6: ; 895e6
- ld a, 7
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ret
-; 895f2
-
-Function895f2: ; 895f2
- push bc
- xor a
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call Function89605
- call Function89655
- pop bc
- ret
-; 89605
-
-Function89605: ; 89605
- hlcoord 19, 2, AttrMap
- ld a, 1
- ld de, SCREEN_WIDTH
- ld c, 14
-.loop
- ld [hl], a
- dec c
- jr z, .done
- add hl, de
- inc a
- ld [hl], a
- dec a
- add hl, de
- dec c
- jr nz, .loop
-
-.done
- hlcoord 0, 16, AttrMap
- ld c, 10
- ld a, 2
-.loop2
- ld [hli], a
- dec a
- ld [hli], a
- inc a
- dec c
- jr nz, .loop2
- hlcoord 1, 11, AttrMap
- ld a, 4
- ld bc, 4
- call ByteFill
- ld a, 5
- ld bc, 14
- call ByteFill
- ret
-; 8963d
-
-Function8963d: ; 8963d
- hlcoord 12, 3, AttrMap
- ld a, 6
- ld de, SCREEN_WIDTH
- lb bc, 7, 7
-.loop
- push hl
- ld c, 7
-.next
- ld [hli], a
- dec c
- jr nz, .next
- pop hl
- add hl, de
- dec b
- jr nz, .loop
- ret
-; 89655
-
-Function89655: ; 89655
- hlcoord 1, 12, AttrMap
- ld de, SCREEN_WIDTH
- ld a, 5
- ld b, 4
-.loop
- ld c, 18
- push hl
-.next
- ld [hli], a
- dec c
- jr nz, .next
- pop hl
- add hl, de
- dec b
- jr nz, .loop
- ret
-; 8966c
-
-Function8966c: ; 8966c
- push bc
- call Function89688
- hlcoord 4, 0
- ld c, 8
- call Function896f5
- pop bc
- ret
-; 8967a
-
-
-Function8967a: ; 8967a (22:567a)
- push bc
- call Function89688
- hlcoord 2, 0
- ld c, 12
- call Function896f5
- pop bc
- ret
-
-Function89688: ; 89688
- hlcoord 0, 0
- ld a, 1
- ld e, SCREEN_WIDTH
- call Function896e1
- ld a, 2
- ld e, SCREEN_WIDTH
- call Function896eb
- ld a, 3
- ld [hli], a
- ld a, 4
- ld e, SCREEN_HEIGHT
- call Function896e1
- ld a, 6
- ld [hli], a
- push bc
- ld c, 13
-.loop
- call Function896cb
- dec c
- jr z, .done
- call Function896d6
- dec c
- jr nz, .loop
-
-.done
- pop bc
- ld a, 25
- ld [hli], a
- ld a, 26
- ld e, SCREEN_HEIGHT
- call Function896e1
- ld a, 28
- ld [hli], a
- ld a, 2
- ld e, SCREEN_WIDTH
- call Function896eb
- ret
-; 896cb
-
-Function896cb: ; 896cb
- ld de, SCREEN_WIDTH - 1
- ld a, 7
- ld [hl], a
- add hl, de
- ld a, 9
- ld [hli], a
- ret
-; 896d6
-
-Function896d6: ; 896d6
- ld de, SCREEN_WIDTH - 1
- ld a, 10
- ld [hl], a
- add hl, de
- ld a, 11
- ld [hli], a
- ret
-; 896e1
-
-Function896e1: ; 896e1
-.loop
- ld [hli], a
- inc a
- dec e
- ret z
- ld [hli], a
- dec a
- dec e
- jr nz, .loop
- ret
-; 896eb
-
-Function896eb: ; 896eb
-.loop
- ld [hli], a
- dec a
- dec e
- ret z
- ld [hli], a
- inc a
- dec e
- jr nz, .loop
- ret
-; 896f5
-
-Function896f5: ; 896f5
- call Function8971f
- call Function89736
- inc hl
- inc hl
- ld b, 2
-
-ClearScreenArea: ; 0x896ff
-; clears an area of the screen
-; INPUT:
-; hl = address of upper left corner of the area
-; b = height
-; c = width
-
- ld a, " " ; blank tile
- ld de, 20 ; screen width
-.loop
- push bc
- push hl
-.innerLoop
- ld [hli], a
- dec c
- jr nz, .innerLoop
- pop hl
- pop bc
- add hl, de
- dec b
- jr nz, .loop
-
- dec hl
- inc c
- inc c
-.asm_89713
- ld a, $36
- ld [hli], a
- dec c
- ret z
- ld a, $18
- ld [hli], a
- dec c
- jr nz, .asm_89713 ; 0x8971c $f5
- ret
-; 0x8971f
-
-Function8971f: ; 8971f
- ld a, $2c
- ld [hli], a
- ld a, $2d
- ld [hld], a
- push hl
- ld de, SCREEN_WIDTH
- add hl, de
- ld a, $31
- ld [hli], a
- ld a, $32
- ld [hld], a
- add hl, de
- ld a, $35
- ld [hl], a
- pop hl
- ret
-; 89736
-
-Function89736: ; 89736
- push hl
- inc hl
- inc hl
- ld e, c
- ld d, $0
- add hl, de
- ld a, $2f
- ld [hli], a
- ld a, $30
- ld [hld], a
- ld de, SCREEN_WIDTH
- add hl, de
- ld a, $33
- ld [hli], a
- ld a, $34
- ld [hl], a
- add hl, de
- ld a, $1f
- ld [hl], a
- pop hl
- ret
-; 89753
-
-Function89753: ; 89753
- ld a, $c
- ld [hl], a
- xor a
- call Function89215
- ret
-; 8975b
-
-Function8975b: ; 8975b
- ld a, $1d
- ld [hli], a
- inc a
- ld [hli], a
- ld a, $d
- ld [hl], a
- dec hl
- dec hl
- ld a, $4
- ld e, $3
-.asm_89769
- call Function89215
- inc hl
- dec e
- jr nz, .asm_89769
- ret
-; 89771
-
-Function89771: ; 89771
- ld a, $12
- ld [hl], a
- ld a, $3
- call Function89215
- ret
-; 8977a
-
-Function8977a: ; 8977a
- ld e, $4
- ld d, $13
-.asm_8977e
- ld a, d
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc d
- dec e
- jr nz, .asm_8977e
- ld e, $e
-.asm_8978c
- ld a, d
- ld [hl], a
- xor a
- call Function89215
- inc hl
- dec e
- jr nz, .asm_8978c
- ret
-; 89797
-
-Function89797: ; 89797
- push bc
- ld a, $e
- ld [hl], a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld a, $11
- ld [hli], a
- ld a, $10
- ld c, $8
-.asm_897a6
- ld [hli], a
- dec c
- jr nz, .asm_897a6
- ld a, $f
- ld [hl], a
- pop bc
- ret
-; 897af
-
-Function897af: ; 897af
- push bc
- ld hl, $0010
- add hl, bc
- ld d, h
- ld e, l
- ld hl, $000c
- add hl, bc
- ld b, h
- ld c, l
- callba GetMobileOTTrainerClass
- ld a, c
- ld [TrainerClass], a
- xor a
- ld [CurPartySpecies], a
- ld de, VTiles2 tile $37
- callba GetTrainerPic
- pop bc
- ret
-; 897d5
-
-Function897d5: ; 897d5
- push bc
- call Function8934a
- jr nc, .asm_897f3
- hlcoord 12, 3, AttrMap
- xor a
- ld de, SCREEN_WIDTH
- lb bc, 7, 7
-.asm_897e5
- push hl
- ld c, $7
-.asm_897e8
- ld [hli], a
- dec c
- jr nz, .asm_897e8
- pop hl
- add hl, de
- dec b
- jr nz, .asm_897e5
- pop bc
- ret
-
-.asm_897f3
- ld a, $37
- ld [hGraphicStartTile], a
- hlcoord 12, 3
- lb bc, 7, 7
- predef PlaceGraphic
- call Function8963d
- pop bc
- ret
-; 89807
-
-
-Function89807: ; 89807 (22:5807)
- ld hl, MobileAdapterGFX + $200
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_89814
- ld hl, MobileAdapterGFX + $200 + $230
-.asm_89814
- call DisableLCD
- ld de, VTiles2 tile $37
- ld bc, $230
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- call EnableLCD
- call DelayFrame
- ret
-
-Function89829: ; 89829 (22:5829)
- push bc
- ld bc, $705
- ld de, $14
- ld a, $37
-.asm_89832
- push bc
- push hl
-.asm_89834
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_89834
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_89832
- call Function8963d
- pop bc
- ret
-
-Function89844: ; 89844
- call Function89481
- call Function894bb
- call Function897af
- push bc
- call WaitBGMap2
- call SetPalettes
- pop bc
- ret
-; 89856
-
-Function89856: ; 89856
- push bc
- call Function891b8
- pop bc
- call Function895f2
- call Function8966c
- call Function899d3
- call Function898aa
- call Function898be
- call Function898dc
- call Function898f3
- push bc
- ld bc, wd008
- hlcoord 2, 10
- call Function89975
- pop bc
- call Function897d5
- ret
-; 8987f
-
-
-Function8987f: ; 8987f (22:587f)
- call Function891b8
- call Function895f2
- call Function8967a
- call Function899d3
- hlcoord 5, 1
- call Function8999c
- hlcoord 13, 3
- call Function89829
- call Function899b2
- hlcoord 5, 5
- call Function899c9
- ld bc, wd008
- hlcoord 2, 10
- call Function89975
- ret
-
-Function898aa: ; 898aa
- ld a, [MenuSelection]
- and a
- ret z
- push bc
- hlcoord 6, 1
- ld de, MenuSelection
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- pop bc
- ret
-; 898be
-
-Function898be: ; 898be
- push bc
- ld de, wd002
- ld hl, wd002
- call Function89331
- jr nc, .asm_898cd
- ld de, String_89116
-
-.asm_898cd
- hlcoord 9, 1
- ld a, [MenuSelection]
- and a
- jr nz, .asm_898d7
- dec hl
-
-.asm_898d7
- call PlaceString
- pop bc
- ret
-; 898dc
-
-Function898dc: ; 898dc
- ld hl, $0006
- add hl, bc
- push bc
- ld d, h
- ld e, l
- call Function8934a
- jr nc, .asm_898eb
- ld de, String_89116
-
-.asm_898eb
- hlcoord 6, 4
- call PlaceString
- pop bc
- ret
-; 898f3
-
-Function898f3: ; 898f3
- push bc
- ld hl, $000c
- add hl, bc
- ld d, h
- ld e, l
- call Function8934a
- jr c, .asm_8990a
- hlcoord 5, 5
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- jr .asm_89913
-
-.asm_8990a
- hlcoord 5, 5
- ld de, String_89116
- call PlaceString
-
-.asm_89913
- pop bc
- ret
-; 89915
-
-Function89915: ; 89915
- push bc
- push hl
- ld de, Unknown_89942
- ld c, $8
-.asm_8991c
- ld a, [de]
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc de
- dec c
- jr nz, .asm_8991c
- pop hl
- ld b, $4
- ld c, $2b
- ld a, $8
- ld de, Unknown_8994a
-.asm_89932
- push af
- ld a, [de]
- cp [hl]
- jr nz, .asm_8993b
- call Function8994e
- inc de
-
-.asm_8993b
- inc hl
- pop af
- dec a
- jr nz, .asm_89932
- pop bc
- ret
-; 89942
-
-Unknown_89942: ; 89942
- db $24, $25, $26, " ", $27, $28, $29, $2a
-Unknown_8994a: ; 8994a
- db $24, $27, $29, $ff
-; 8994e
-
-Function8994e: ; 8994e
- push hl
- push de
- ld de, SCREEN_WIDTH
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- ld a, c
- ld [hl], a
- ld a, b
- call Function89215
- pop de
- pop hl
- ret
-; 89962
-
-Function89962: ; 89962
- push bc
- ld c, $4
- ld b, $20
-.asm_89967
- ld a, b
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc b
- dec c
- jr nz, .asm_89967
- pop bc
- ret
-; 89975
-
-Function89975: ; 89975
- push bc
- ld e, $8
-.asm_89978
- ld a, [bc]
- ld d, a
- call Function8998b
- swap d
- inc hl
- ld a, d
- call Function8998b
- inc bc
- inc hl
- dec e
- jr nz, .asm_89978
- pop bc
- ret
-; 8998b
-
-Function8998b: ; 8998b
- push bc
- and $f
- cp $a
- jr nc, .asm_89997
- ld c, $f6
- add c
- jr .asm_89999
-
-.asm_89997
- ld a, $7f
-
-.asm_89999
- ld [hl], a
- pop bc
- ret
-; 8999c
-
-
-Function8999c: ; 8999c (22:599c)
- ld de, PlayerName
- call PlaceString
- inc bc
- ld h, b
- ld l, c
- ld de, String_899ac
- call PlaceString
- ret
-; 899ac (22:59ac)
-
-String_899ac: ; 899ac
- db "の めいし@"
-; 899b2
-
-Function899b2: ; 899b2 (22:59b2)
- ld bc, PlayerName
- call Function89346
- jr c, .asm_899bf
- ld de, PlayerName
- jr .asm_899c2
-.asm_899bf
- ld de, String_89116
-.asm_899c2
- hlcoord 6, 4
- call PlaceString
- ret
-
-Function899c9: ; 899c9 (22:59c9)
- ld de, PlayerID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-
-Function899d3: ; 899d3
- hlcoord 1, 4
- call Function89753
- hlcoord 2, 5
- call Function8975b
- hlcoord 1, 9
- call Function89771
- hlcoord 1, 11
- call Function8977a
- hlcoord 1, 5
- call Function89797
- hlcoord 2, 4
- call Function89962
- hlcoord 2, 9
- call Function89915
- ret
-; 899fe
-
-Function899fe: ; 899fe
- push bc
- push hl
- ld hl, $0019
- add hl, bc
- ld b, h
- ld c, l
- pop hl
- call Function89a0c
- pop bc
- ret
-; 89a0c
-
-Function89a0c: ; 89a0c
- push hl
- call Function89363
- pop hl
- jr c, .asm_89a1c
- ld d, h
- ld e, l
- callba Function11c08f
- ret
-
-.asm_89a1c
- ld de, String_89153
- call PlaceString
- ret
-; 89a23
-
-
-Function89a23: ; 89a23 (22:5a23)
- hlcoord 0, 11
- ld b, $4
- ld c, $12
- call Function8921f
- ret
-
-Function89a2e: ; 89a2e (22:5a2e)
- hlcoord 11, 12
- ld b, $2
- ld c, $6
- call TextBox
- hlcoord 13, 13
- ld de, String_89a4e
- call PlaceString
- hlcoord 13, 14
- ld de, String_89a53
- call PlaceString
- call Function89655
- ret
-; 89a4e (22:5a4e)
-
-String_89a4e: ; 89a4e
- db "けってい@"
-; 89a53
-
-String_89a53: ; 89a53
- db "やめる@"
-; 89a57
-
-Function89a57: ; 89a57
- call JoyTextDelay_ForcehJoyDown ; joypad
- bit D_UP_F, c
- jr nz, .d_up
- bit D_DOWN_F, c
- jr nz, .d_down
- bit A_BUTTON_F, c
- jr nz, .a_b_button
- bit B_BUTTON_F, c
- jr nz, .a_b_button
- bit START_F, c
- jr nz, .start_button
- scf
- ret
-
-.a_b_button
- ld a, $1
- and a
- ret
-
-.start_button
- ld a, $2
- and a
- ret
-
-.d_up
- call .MoveCursorUp
- call nc, .PlayPocketSwitchSFX
- ld a, $0
- ret
-
-.d_down
- call .MoveCursorDown
- call nc, .PlayPocketSwitchSFX
- ld a, $0
- ret
-; 89a8a
-
-.PlayPocketSwitchSFX: ; 89a8a
- push af
- ld de, SFX_SWITCH_POCKETS
- call PlaySFX
- pop af
- ret
-; 89a93
-
-.MoveCursorDown: ; 89a93
- ld d, 40
- ld e, 1
- call .ApplyCursorMovement
- ret
-; 89a9b
-
-.MoveCursorUp: ; 89a9b
- ld d, 1
- ld e, -1
- call .ApplyCursorMovement
- ret
-; 89aa3
-
-.ApplyCursorMovement: ; 89aa3
- ld a, [MenuSelection]
- ld c, a
- push bc
-.loop
- ld a, [MenuSelection]
- cp d
- jr z, .equal_to_d
- add e
- jr nz, .not_zero
- inc a
-
-.not_zero
- ld [MenuSelection], a
- call .Function89ac7 ; BCD conversion of data in SRAM?
- jr nc, .loop
- call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5
- pop bc
- and a
- ret
-
-.equal_to_d
- pop bc
- ld a, c
- ld [MenuSelection], a
- scf
- ret
-; 89ac7
-
-.Function89ac7: ; 89ac7
- call OpenSRAMBank4
- call Function8931b
- call .Function89ad4
- call CloseSRAM
- ret
-; 89ad4
-
-.Function89ad4: ; 89ad4
- push de
- call Function8932d ; find a non-space character within 5 bytes of bc
- jr c, .no_nonspace_character
- ld hl, 17
- add hl, bc
- call Function89b45
- jr c, .finish_decode
-
-.no_nonspace_character
- and a
-
-.finish_decode
- pop de
- ret
-; 89ae6
-
-.Function89ae6: ; 89ae6
- ld hl, wd031
- xor a
- ld [hl], a
- ld a, [MenuSelection]
-.loop2
- cp 6
- jr c, .load_and_ret
- sub 5
- ld c, a
- ld a, [hl]
- add 5
- ld [hl], a
- ld a, c
- jr .loop2
-
-.load_and_ret
- ld [wd030], a
- ret
-; 89b00
-
-
-Function89b00: ; 89b00 (22:5b00)
- callba MG_Mobile_Layout_LoadPals
- ret
-; 89b07 (22:5b07)
-
-Function89b07: ; 89b07
- call Mobile22_SetBGMapMode0
- call DelayFrame
- callba Function4a3a7
- ret
-; 89b14
-
-Function89b14: ; 89b14
- call ClearBGPalettes
- call Function89b07
- call Function89b00
- ret
-; 89b1e
-
-Function89b1e: ; 89b1e (22:5b1e)
- callba Function4a485
- call Function89b00
- ret
-
-Function89b28: ; 89b28 (22:5b28)
- call Function891de
- call ClearBGPalettes
- call Function893e2
- call Call_ExitMenu
- call Function891ab
- call SetPalettes
- ret
-
-Function89b3b: ; 89b3b (22:5b3b)
- call Mobile22_SetBGMapMode0
- callba Function48cda
- ret
-
-Function89b45: ; 89b45
- ; some sort of decoder?
- ; BCD?
- push hl
- push bc
- ld c, $10
- ld e, $0
-.loop
- ld a, [hli]
- ld b, a
- and $f
- cp 10
- jr c, .low_nybble_less_than_10
- ld a, c
- cp $b
- jr nc, .clear_carry
- jr .set_carry
-
-.low_nybble_less_than_10
- dec c
- swap b
- inc e
- ld a, b
- and $f
- cp 10
- jr c, .high_nybble_less_than_10
- ld a, c
- cp $b
- jr nc, .clear_carry
- jr .set_carry
-
-.high_nybble_less_than_10
- inc e
- dec c
- jr nz, .loop
- dec e
-
-.set_carry
- scf
- jr .finish
-
-.clear_carry
- and a
-
-.finish
- pop bc
- pop hl
- ret
-; 89b78
-
-
-Function89b78: ; 89b78 (22:5b78)
- push bc
- ld a, [wd010]
- cp $10
- jr c, .asm_89b8c
- ld a, e
- and a
- jr z, .asm_89b89
- ld c, e
-.asm_89b85
- inc hl
- dec c
- jr nz, .asm_89b85
-.asm_89b89
- ld a, $7f
- ld [hl], a
-.asm_89b8c
- ld a, [wd010]
- inc a
- and $1f
- ld [wd010], a
- pop bc
- ret
-
-Function89b97: ; 89b97 (22:5b97)
- call Function89c34
- jr c, .asm_89ba0
- call Function89448
- ret
-.asm_89ba0
- ld a, [wd011]
- ld hl, Unknown_89bd8
- and a
- jr z, .asm_89bae
-.asm_89ba9
- inc hl
- inc hl
- dec a
- jr nz, .asm_89ba9
-.asm_89bae
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Sprites
-.asm_89bb4
- ld a, [hli]
- cp $ff
- ret z
- ld c, a
- ld b, $0
-.asm_89bbb
- push hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, $8
- add b
- ld b, a
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop hl
- dec c
- jr nz, .asm_89bbb
- ld b, $0
- ld c, $4
- add hl, bc
- jr .asm_89bb4
-; 89bd8 (22:5bd8)
-
-Unknown_89bd8: ; 89bd8
- dw Unknown_89be0
- dw Unknown_89bf5
- dw Unknown_89c0a
- dw Unknown_89c1f
-; 89be0
-
-Unknown_89be0: ; 89be0
- db $01, $12, $4e, $01, $00
- db $01, $19, $4e, $01, $40
- db $01, $12, $72, $01, $20
- db $01, $19, $72, $01, $60
- db $ff
-
-Unknown_89bf5: ; 89bf5
- db $01, $60, $16, $01, $00
- db $01, $62, $16, $01, $40
- db $01, $60, $92, $01, $20
- db $01, $62, $92, $01, $60
- db $ff
-
-Unknown_89c0a: ; 89c0a
- db $01, $78, $66, $01, $00
- db $01, $78, $66, $01, $40
- db $01, $78, $92, $01, $20
- db $01, $78, $92, $01, $60
- db $ff
-
-Unknown_89c1f: ; 89c1f
- db $01, $80, $66, $01, $00
- db $01, $80, $66, $01, $40
- db $01, $80, $92, $01, $20
- db $01, $80, $92, $01, $60
- db $ff
-; 89c34
-
-Function89c34: ; 89c34 (22:5c34)
- push bc
- ld a, [wd012]
- ld c, a
- inc a
- and $f
- ld [wd012], a
- ld a, c
- cp $8
- pop bc
- ret
-
-Function89c44: ; 89c44 (22:5c44)
- call Function89c34
- jr c, .asm_89c4f
- push de
- call Function89448
- pop de
- ret
-.asm_89c4f
- ld hl, Sprites
- push de
- ld a, b
- ld [hli], a
- ld d, $8
- ld a, e
- and a
- ld a, c
- jr z, .asm_89c60
-.asm_89c5c
- add d
- dec e
- jr nz, .asm_89c5c
-.asm_89c60
- pop de
- ld [hli], a
- ld a, d
- ld [hli], a
- xor a
- ld [hli], a
- ret
-
-Function89c67: ; 89c67 (22:5c67)
-; menu scrolling?
- call JoyTextDelay_ForcehJoyDown ; joypad
- ld b, $0
- bit A_BUTTON_F, c
- jr z, .not_a_button
- ld b, $1
- and a
- ret
-
-.not_a_button
- bit B_BUTTON_F, c
- jr z, .not_b_button
- scf
- ret
-
-.not_b_button
- xor a
- bit D_UP_F, c
- jr z, .not_d_up
- ld a, $1
-.not_d_up
- bit D_DOWN_F, c
- jr z, .not_d_down
- ld a, $2
-.not_d_down
- bit D_LEFT_F, c
- jr z, .not_d_left
- ld a, $3
-.not_d_left
- bit D_RIGHT_F, c
- jr z, .not_d_right
- ld a, $4
-.not_d_right
- and a
- ret z ; no dpad pressed
- dec a
- ld c, a
- ld d, $0
- ld hl, .ScrollData0
- ld a, [wd02f]
- and a
- jr z, .got_data
- ld hl, .ScrollData1
-.got_data
- ld a, [wd011]
- and a
- jr z, .got_row
- ld e, $4
-.add_n_times
- add hl, de
- dec a
- jr nz, .add_n_times
-.got_row
- ld e, c
- add hl, de
- ld a, [hl]
- and a
- ret z
- dec a
- ld [wd011], a
- xor a
- ld [wd012], a
- ret
-; 89cbf (22:5cbf)
-
-.ScrollData0: ; 89cbf
- db 0, 2, 0, 0
- db 1, 3, 0, 0
- db 2, 4, 0, 0
- db 3, 0, 0, 0
-
-.ScrollData1: ; 89ccf
- db 0, 0, 0, 0
- db 0, 3, 0, 0
- db 2, 4, 0, 0
- db 3, 0, 0, 0
-; 89cdf
-
-Function89cdf: ; 89cdf (22:5cdf)
- ld a, $10
- add b
- ld b, a
- ld a, $8
- add c
- ld c, a
- ld e, $2
- ld a, $2
- ld hl, Sprites
-.asm_89cee
- push af
- push bc
- ld d, $4
-.asm_89cf2
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld a, $8
- add c
- ld c, a
- inc e
- dec d
- jr nz, .asm_89cf2
- pop bc
- ld a, $8
- add b
- ld b, a
- pop af
- dec a
- jr nz, .asm_89cee
- ret
-
-Function89d0d: ; 89d0d (22:5d0d)
- call Mobile22_SetBGMapMode0
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld c, 8
- ld de, UnknBGPals
-.loop
- push bc
- ld hl, .Palette1
- ld bc, 1 palettes
- call CopyBytes
- pop bc
- dec c
- jr nz, .loop
-
- ld hl, .Palette2
- ld de, UnknBGPals + 2 palettes
- ld bc, 1 palettes
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- call SetPalettes
- callba PrintMail_
- call Mobile22_SetBGMapMode1
- ld c, 24
- call DelayFrames
- call RestartMapMusic
- ret
-; 89d4e (22:5d4e)
-
-.Palette1: ; 89d4e
- RGB 31, 31, 31
- RGB 19, 19, 19
- RGB 15, 15, 15
- RGB 00, 00, 00
-; 89d56
-
-.Palette2: ; 89d56
- RGB 31, 31, 31
- RGB 19, 19, 19
- RGB 19, 19, 19
- RGB 00, 00, 00
-; 89d5e
-
-Function89d5e: ; 89d5e (22:5d5e)
- push af
- call CopyMenuDataHeader
- pop af
- ld [wMenuCursorBuffer], a
- call Mobile22_SetBGMapMode0
- call PlaceVerticalMenuItems
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 7, [hl]
- ret
-
-Function89d75: ; 89d75 (22:5d75)
- push hl
- call Mobile22_SetBGMapMode0
- call _hl_
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- pop hl
- jr asm_89d90
-
-Function89d85: ; 89d85 (22:5d85)
- push hl
- call Mobile22_SetBGMapMode0
- call _hl_
- call CGBOnly_LoadEDTile
- pop hl
-
-asm_89d90: ; 89d90 (22:5d90)
- call Mobile22_SetBGMapMode0
- push hl
- call _hl_
- call Function89dab
- ld a, [wMenuCursorY]
- push af
- call Function891ab
- pop af
- pop hl
- jr c, .asm_89da9
- jr z, asm_89d90
- scf
- ret
-.asm_89da9
- and a
- ret
-
-Function89dab: ; 89dab (22:5dab)
- call Mobile22_SetBGMapMode0
- callba MobileMenuJoypad
- call Mobile22_SetBGMapMode0
- ld a, c
- ld hl, wMenuJoypadFilter
- and [hl]
- ret z
- bit 0, a
- jr nz, .asm_89dc7
- bit 1, a
- jr nz, .asm_89dd9
- xor a
- ret
-.asm_89dc7
- call PlayClickSFX
- ld a, [w2DMenuNumRows]
- ld c, a
- ld a, [wMenuCursorY]
- cp c
- jr z, .asm_89dd9
- call PlaceHollowCursor
- scf
- ret
-.asm_89dd9
- call PlayClickSFX
- ld a, $1
- and a
- ret
-
-Function89de0: ; 89de0 (22:5de0)
- call ClearSprites
- call Function89e0a
- jr c, .asm_89e00
- ld c, $1
-.asm_89dea
- call Function8a31c
- jr z, .asm_89dfd
- ld a, [wMenuCursorY]
- ld c, a
- push bc
- ld hl, Jumptable_89e04
- ld a, e
- dec a
- rst JumpTable
- pop bc
- jr .asm_89dea
-.asm_89dfd
- call Function891fe
-.asm_89e00
- call Function8917a
- ret
-
-Jumptable_89e04: ; 89e04 (22:5e04)
- dw Function8a62c
- dw Function8a999
- dw Function8ab93
-
-
-Function89e0a: ; 89e0a (22:5e0a)
- call OpenSRAMBank4
- call Function8b3b0
- call CloseSRAM
- ld hl, Jumptable_89e18
- rst JumpTable
- ret
-
-Jumptable_89e18: ; 89e18 (22:5e18)
- dw Function89e1e
- dw Function8a116
- dw Function8a2aa
-
-
-Function89e1e: ; 89e1e (22:5e1e)
- call OpenSRAMBank4
- ld bc, $a037 ; 4:a037
- call Function8b36c
- call CloseSRAM
- xor a
- ld [wd02d], a
-
-asm_89e2e: ; 89e2e (22:5e2e)
- ld a, [wd02d]
- ld hl, Jumptable_89e3c
- rst JumpTable
- ret
-
-Function89e36: ; 89e36 (22:5e36)
- ld hl, wd02d
- inc [hl]
- jr asm_89e2e
-
-Jumptable_89e3c: ; 89e3c (22:5e3c)
- dw Function89e6f
- dw Function89fed
- dw Function89ff6
- dw Function8a03d
- dw Function89eb9
- dw Function89efd
- dw Function89fce
- dw Function8a04c
- dw Function8a055
- dw Function8a0e6
- dw Function8a0ec
- dw Function8a0f5
- dw Function89e58
- dw Function89e68
-
-
-Function89e58: ; 89e58 (22:5e58)
- ld a, $1
- call Function8a2fe
- call Function891fe
- call Function893e2
- call Function89168
- and a
- ret
-
-Function89e68: ; 89e68 (22:5e68)
- call Function891fe
- ld a, $1
- scf
- ret
-
-Function89e6f: ; 89e6f (22:5e6f)
- call Function891de
- call Function89245
- call Function89ee1
- call Function89e9a
- hlcoord 7, 4
- call Function8a58d
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function891ab
- call SetPalettes
- jp Function89e36
-
-Function89e9a: ; 89e9a (22:5e9a)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_89eb1
- ld de, UnknBGPals + 5 palettes
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 89eb1 (22:5eb1)
-
-Palette_89eb1: ; 89eb1
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 27, 19, 00
- RGB 00, 00, 00
-; 89eb9
-
-Function89eb9: ; 89eb9 (22:5eb9)
- call Function891fe
- call Function89ee1
- call Function89e9a
- hlcoord 7, 4
- call Function8a58d
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function891ab
- call SetPalettes
- jp Function89e36
-
-Function89ee1: ; 89ee1 (22:5ee1)
- call ClearBGPalettes
- call Function893e2
- call Mobile22_SetBGMapMode0
- callba Function4a3a7
- callba MG_Mobile_Layout_CreatePalBoxes
- hlcoord 1, 0
- call Function8a53d
- ret
-
-Function89efd: ; 89efd (22:5efd)
- ld hl, wd012
- ld a, $ff
- ld [hli], a
- xor a
-rept 4
- ld [hli], a
-endr
- ld [hl], a
-.asm_89f09
- ld hl, wd012
- inc [hl]
- ld a, [hli]
- and $3
- jr nz, .asm_89f2e
- ld a, [hl]
- cp $4
- jr nc, .asm_89f2e
- ld b, $32
- inc [hl]
- ld a, [hl]
- dec a
- jr z, .asm_89f26
- ld c, a
-.asm_89f1f
- ld a, $b
- add b
- ld b, a
- dec c
- jr nz, .asm_89f1f
-.asm_89f26
- ld c, $e8
- ld a, [wd013]
- call Function89fa5
-.asm_89f2e
- ld a, [wd013]
- and a
- jr z, .asm_89f58
-.asm_89f34
- call Function89f6a
- ld e, a
- ld a, c
- cp $a8
- jr nc, .asm_89f4d
- cp $46
- jr c, .asm_89f4d
- ld d, $0
- dec e
- ld hl, wd014
- add hl, de
- set 0, [hl]
- inc e
- jr .asm_89f51
-.asm_89f4d
- ld a, $2
- add c
- ld c, a
-.asm_89f51
- ld a, e
- call Function89f77
- dec a
- jr nz, .asm_89f34
-.asm_89f58
- call DelayFrame
- ld hl, wd014
- ld c, $4
-.asm_89f60
- ld a, [hli]
- and a
- jr z, .asm_89f09
- dec c
- jr nz, .asm_89f60
- jp Function89e36
-
-Function89f6a: ; 89f6a (22:5f6a)
- push af
- ld de, $10
- call Function89f9a
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld c, a
- pop af
- ret
-
-Function89f77: ; 89f77 (22:5f77)
- push af
- ld de, $10
- call Function89f9a
- ld d, $2
-.asm_89f80
- push bc
- ld e, $2
-.asm_89f83
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- inc hl
- inc hl
- ld a, $8
- add c
- ld c, a
- dec e
- jr nz, .asm_89f83
- pop bc
- ld a, $8
- add b
- ld b, a
- dec d
- jr nz, .asm_89f80
- pop af
- ret
-
-Function89f9a: ; 89f9a (22:5f9a)
- dec a
- ld hl, Sprites
- and a
- ret z
-.asm_89fa0
- add hl, de
- dec a
- jr nz, .asm_89fa0
- ret
-
-Function89fa5: ; 89fa5 (22:5fa5)
- ld de, $10
- call Function89f9a
- ld e, $2
- ld d, $a
-.asm_89faf
- push bc
- ld a, $2
-.asm_89fb2
- push af
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, d
- inc d
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld a, $8
- add c
- ld c, a
- pop af
- dec a
- jr nz, .asm_89fb2
- pop bc
- ld a, $8
- add b
- ld b, a
- dec e
- jr nz, .asm_89faf
- ret
-
-Function89fce: ; 89fce (22:5fce)
- call Function8a5b6
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function89448
- call SetPalettes
- call Function891ab
- jp Function89e36
-
-Function89fed: ; 89fed (22:5fed)
- ld hl, UnknownText_0x8a102
- call PrintText
- jp Function89e36
-
-Function89ff6: ; 89ff6 (22:5ff6)
- call Function891fe
- call ClearBGPalettes
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- call OpenSRAMBank4
- ld hl, $a603
- ld a, -1
- ld bc, 8
- call ByteFill
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function8987f
- call OpenSRAMBank4
- hlcoord 1, 13
- ld bc, $a007
- call Function89a0c
- call CloseSRAM
- call Function891ab
- call Mobile22_ButtonSound
- jp Function89e36
-
-Function8a03d: ; 8a03d (22:603d)
- ld hl, UnknownText_0x8a107
- call Function89209
- call PrintText
- call Function8920f
- jp Function89e36
-
-Function8a04c: ; 8a04c (22:604c)
- ld hl, UnknownText_0x8a10c
- call PrintText
- jp Function89e36
-
-Function8a055: ; 8a055 (22:6055)
- ld c, $7
- ld b, $4
-.asm_8a059
- call Function8a0a1
- inc c
- call Function8a0c9
- push bc
- call Function8a58d
- pop bc
- call Function8a0de
- push bc
- push hl
- ld a, $5
- call Function8a5a3
- pop hl
- inc hl
- inc hl
- inc hl
- ld a, $6
- call Function8a5a3
- call CGBOnly_LoadEDTile
- pop bc
- ld a, c
- cp $b
- jr nz, .asm_8a059
- call Function8a0a1
- hlcoord 12, 4
- call Function8a58d
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- pop hl
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- call CGBOnly_LoadEDTile
- jp Function89e36
-
-Function8a0a1: ; 8a0a1 (22:60a1)
- call Mobile22_SetBGMapMode0
- push bc
- call Function8a0c9
- ld e, $6
-.asm_8a0aa
- push hl
- ld bc, $6
- add hl, bc
- ld d, [hl]
- call Function8a0c1
- pop hl
- ld [hl], d
- call Function89215
- ld bc, $14
- add hl, bc
- dec e
- jr nz, .asm_8a0aa
- pop bc
- ret
-
-Function8a0c1: ; 8a0c1 (22:60c1)
- push hl
- ld bc, AttrMap - TileMap
- add hl, bc
- ld a, [hl]
- pop hl
- ret
-
-Function8a0c9: ; 8a0c9 (22:60c9)
- push bc
- hlcoord 0, 0
- ld de, $14
- ld a, b
- and a
- jr z, .asm_8a0d8
-.asm_8a0d4
- add hl, de
- dec b
- jr nz, .asm_8a0d4
-.asm_8a0d8
- ld d, $0
- ld e, c
- add hl, de
- pop bc
- ret
-
-Function8a0de: ; 8a0de (22:60de)
- call Function8a0c9
- ld de, AttrMap - TileMap
- add hl, de
- ret
-
-Function8a0e6: ; 8a0e6 (22:60e6)
- call Function8b539
- jp Function89e36
-
-Function8a0ec: ; 8a0ec (22:60ec)
- ld hl, UnknownText_0x8a111
- call PrintText
- jp Function89e36
-
-Function8a0f5: ; 8a0f5 (22:60f5)
- call Function8b555
- jp nc, Function8a0ff
- ld hl, wd02d
- inc [hl]
-
-Function8a0ff: ; 8a0ff (22:60ff)
- jp Function89e36
-; 8a102 (22:6102)
-
-UnknownText_0x8a102: ; 0x8a102
- ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
- text_jump UnknownText_0x1c5238
- db "@"
-; 0x8a107
-
-UnknownText_0x8a107: ; 0x8a107
- ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
- text_jump UnknownText_0x1c52bc
- db "@"
-; 0x8a10c
-
-UnknownText_0x8a10c: ; 0x8a10c
- ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
- text_jump UnknownText_0x1c531e
- db "@"
-; 0x8a111
-
-UnknownText_0x8a111: ; 0x8a111
- ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
- text_jump UnknownText_0x1c5394
- db "@"
-; 0x8a116
-
-Function8a116: ; 8a116 (22:6116)
- ld a, $1
- ld [wd030], a
- ld hl, MenuDataHeader_0x8a176
- call LoadMenuDataHeader
-.asm_8a121
- call Mobile22_SetBGMapMode0
- call Function8a17b
- jr c, .asm_8a16b
- ld a, [wMenuCursorY]
- ld [wd030], a
- dec d
- jr z, .asm_8a140
- call Function8a20d
- jr c, .asm_8a121
- xor a
- call Function8a2fe
- call Function8916e
- jr .asm_8a16b
-.asm_8a140
- call Function89174
- jr nz, .asm_8a14c
- call Function8a241
- jr c, .asm_8a121
- jr .asm_8a15a
-.asm_8a14c
- call WaitSFX
- ld de, SFX_TWINKLE
- call PlaySFX
- ld c, $10
- call DelayFrames
-.asm_8a15a
- call ExitMenu
- call Function891de
- call Function893e2
- call Function89245
- call Function89168
- and a
- ret
-.asm_8a16b
- call Function89209
- call CloseWindow
- call Function8920f
- scf
- ret
-; 8a176 (22:6176)
-
-MenuDataHeader_0x8a176: ; 0x8a176
- db $40 ; flags
- db 00, 14 ; start coords
- db 06, 19 ; end coords
-; 8a17b
-
-Function8a17b: ; 8a17b (22:617b)
- decoord 14, 0
- ld b, $5
- ld c, $4
- call Function89b3b
- ld hl, MenuDataHeader_0x8a19a
- ld a, [wd030]
- call Function89d5e
- ld hl, Function8a1b0
- call Function89d75
- jr nc, .asm_8a198
- ld a, $0
-.asm_8a198
- ld d, a
- ret
-; 8a19a (22:619a)
-
-MenuDataHeader_0x8a19a: ; 0x8a19a
- db $40 ; flags
- db 00, 14 ; start coords
- db 06, 19 ; end coords
- dw MenuData2_0x8a1a2
- db 1 ; default option
-; 0x8a1a2
-
-MenuData2_0x8a1a2: ; 0x8a1a2
- db $e0 ; flags
- db 3 ; items
- db "ひらく@"
- db "すてる@"
- db "もどる@"
-; 0x8a1b0
-
-Function8a1b0: ; 8a1b0
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld a, [wMenuCursorY]
- ld de, Strings_8a1cc
- dec a
- ld c, a
- call Function8919e
- call PlaceString
- ret
-; 8a1cc
-
-Strings_8a1cc: ; 8a1cc
- db "めいし", $25, "せいりと へんしゅうを"
- next "おこないます"
- db "@"
-
- db "めいしフ,ルダー", $25, "めいしと"
- next "あんしょうばんごう", $1f, "けします"
- db "@"
-
- db "まえ", $25, "がめん", $1d, "もどります"
- db "@"
-; 8a20d
-
-
-Function8a20d: ; 8a20d (22:620d)
- ld hl, UnknownText_0x8a232
- call PrintText
- ld a, $2
- call Function89259
- ret c
- ld hl, UnknownText_0x8a237
- call PrintText
- ld a, $2
- call Function89259
- ret c
- xor a
- call Function8a2fe
- ld hl, UnknownText_0x8a23c
- call PrintText
- xor a
- and a
- ret
-; 8a232 (22:6232)
-
-UnknownText_0x8a232: ; 0x8a232
- ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
- text_jump UnknownText_0x1c53ee
- db "@"
-; 0x8a237
-
-UnknownText_0x8a237: ; 0x8a237
- ; Are you sure you want to delete it?
- text_jump UnknownText_0x1c5494
- db "@"
-; 0x8a23c
-
-UnknownText_0x8a23c: ; 0x8a23c
- ; The CARD FOLDER has been deleted.
- text_jump UnknownText_0x1c54b9
- db "@"
-; 0x8a241
-
-Function8a241: ; 8a241 (22:6241)
- call LoadStandardMenuDataHeader
- call Function891fe
- call Function8a262
- jr nc, .asm_8a254
- call Function891fe
- call Function89b28
- scf
- ret
-.asm_8a254
- call Function891de
- call ClearBGPalettes
- call Call_ExitMenu
- call Function891de
- and a
- ret
-
-Function8a262: ; 8a262 (22:6262)
- call ClearBGPalettes
- call Function893e2
- call Mobile22_SetBGMapMode0
- callba Function4a3a7
- callba MG_Mobile_Layout_CreatePalBoxes
- hlcoord 1, 0
- call Function8a53d
- hlcoord 12, 4
- call Function8a58d
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- xor a
- ld [wd02e], a
- ld bc, wd013
- call Function8b36c
- call Function8b493
- call Function891ab
- call SetPalettes
- call Function8b5e7
- ret
-
-Function8a2aa: ; 8a2aa (22:62aa)
- ld hl, MenuDataHeader_0x8a2ef
- call LoadMenuDataHeader
- ld hl, UnknownText_0x8a2f4
- call PrintText
- ld a, $1
- call Function89259
- jr nc, .asm_8a2cf
- ld hl, UnknownText_0x8a2f9
- call PrintText
- ld a, $2
- call Function89259
- jr c, .asm_8a2ea
- call Function8a20d
- jr .asm_8a2ea
-.asm_8a2cf
- call ExitMenu
- call Function8a241
- jr c, .asm_8a2ed
- ld a, $1
- call Function8a313
- call CloseSRAM
- call Function891de
- call Function89245
- call Function89168
- and a
- ret
-.asm_8a2ea
- call CloseWindow
-.asm_8a2ed
- scf
- ret
-; 8a2ef (22:62ef)
-
-MenuDataHeader_0x8a2ef: ; 0x8a2ef
- db $40 ; flags
- db 12, 00 ; start coords
- db 17, 19 ; end coords
-; 8a2f4
-
-UnknownText_0x8a2f4: ; 0x8a2f4
- ; There is an older CARD FOLDER from a previous journey. Do you want to open it?
- text_jump UnknownText_0x1c54dd
- db "@"
-; 0x8a2f9
-
-UnknownText_0x8a2f9: ; 0x8a2f9
- ; Delete the old CARD FOLDER?
- text_jump UnknownText_0x1c552d
- db "@"
-; 0x8a2fe
-
-Function8a2fe: ; 8a2fe (22:62fe)
- call Function8a313
- call Function89305
- ld hl, $a603
- ld bc, $8
- ld a, -1
- call ByteFill
- call CloseSRAM
- ret
-
-Function8a313: ; 8a313 (22:6313)
- ld c, a
- call OpenSRAMBank4
- ld a, c
- ld [$a60b], a
- ret
-
-Function8a31c: ; 8a31c (22:631c)
- push bc
- call Mobile22_SetBGMapMode0
- callba Function4a3a7
- callba MG_Mobile_Layout_CreatePalBoxes
- hlcoord 1, 0
- call Function8a53d
- hlcoord 12, 4
- call Function8a58d
- call Function8a3b2
- pop bc
- ld a, c
- ld [wMenuCursorBuffer], a
- ld [MenuSelection], a
- call PlaceVerticalMenuItems
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 7, [hl]
-.asm_8a34e
- call Function8a3a2
- call Mobile22_SetBGMapMode0
- call Function8a453
- call Function8a4d3
- call Function8a4fc
- call Function891ab
- call SetPalettes
- call Function8a383
- jr c, .asm_8a370
- jr z, .asm_8a34e
-.asm_8a36a
- call Function89448
- xor a
- ld e, a
- ret
-.asm_8a370
- call Function89448
- call PlaceHollowCursor
- call Function8a3a2
- ld a, [MenuSelection]
- cp $ff
- jr z, .asm_8a36a
- ld e, a
- and a
- ret
-
-Function8a383: ; 8a383 (22:6383)
- callba MobileMenuJoypad
- ld a, c
- ld hl, wMenuJoypadFilter
- and [hl]
- ret z
- bit 0, a
- jr nz, .asm_8a399
- bit 1, a
- jr nz, .asm_8a39e
- xor a
- ret
-.asm_8a399
- call PlayClickSFX
- scf
- ret
-.asm_8a39e
- call PlayClickSFX
- ret
-
-Function8a3a2: ; 8a3a2 (22:63a2)
- ld a, [wMenuCursorY]
- dec a
- ld hl, wd002
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ld [MenuSelection], a
- ret
-
-Function8a3b2: ; 8a3b2 (22:63b2)
- ld a, $1
- ld [MenuSelection], a
- call Function8a4fc
- call Function8a3df
- jr nc, .asm_8a3ce
- decoord 0, 2
- ld b, $6
- ld c, $9
- call Function89b3b
- ld hl, MenuDataHeader_0x8a435
- jr .asm_8a3db
-.asm_8a3ce
- decoord 0, 2
- ld b, $8
- ld c, $9
- call Function89b3b
- ld hl, MenuDataHeader_0x8a40f
-.asm_8a3db
- call CopyMenuDataHeader
- ret
-
-Function8a3df: ; 8a3df (22:63df)
- call OpenSRAMBank4
- ld hl, $a603
- call Function89b45
- call CloseSRAM
- ld hl, wd002
- jr c, .asm_8a3f8
- ld de, Unknown_8a408
- call Function8a400
- scf
- ret
-.asm_8a3f8
- ld de, Unknown_8a40b
- call Function8a400
- and a
- ret
-
-Function8a400: ; 8a400 (22:6400)
- ld a, [de]
- inc de
- ld [hli], a
- cp $ff
- jr nz, Function8a400
- ret
-; 8a408 (22:6408)
-
-Unknown_8a408: db 1, 2, -1
-Unknown_8a40b: db 1, 2, 3, -1
-
-MenuDataHeader_0x8a40f: ; 0x8a40f
- db $40 ; flags
- db 02, 00 ; start coords
- db 11, 10 ; end coords
- dw MenuData2_0x8a417
- db 1 ; default option
-; 0x8a417
-
-MenuData2_0x8a417: ; 0x8a417
- db $a0 ; flags
- db 4 ; items
- db "めいしりスト@"
- db "じぶんの めいし@"
- db "めいしこうかん@"
- db "やめる@"
-; 0x8a435
-
-MenuDataHeader_0x8a435: ; 0x8a435
- db $40 ; flags
- db 02, 00 ; start coords
- db 09, 10 ; end coords
- dw MenuData2_0x8a43d
- db 1 ; default option
-; 0x8a43d
-
-MenuData2_0x8a43d: ; 0x8a43d
- db $a0 ; flags
- db 3 ; items
- db "めいしりスト@"
- db "じぶんの めいし@"
- db "やめる@"
-; 0x8a453
-
-Function8a453: ; 8a453 (22:6453)
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld de, String_8a476
- ld a, [MenuSelection]
- cp $ff
- jr z, .asm_8a472
- ld de, Strings_8a483
- dec a
- ld c, a
- call Function8919e
-.asm_8a472
- call PlaceString
- ret
-; 8a476 (22:6476)
-
-String_8a476: ; 8a476
- db "まえ", $25, "がめん", $1d, "もどります@"
-; 8a483
-
-Strings_8a483: ; 8a483
- db "おともだち", $25, "めいしは"
- next "ここ", $1d, "いれておきます@"
-
- db "でんわばんごう", $1f, "いれると"
- next "めいしこうかん", $4a, "できます@"
-
- db "ともだちと じぶん", $25, "めいしを"
- next "せきがいせんで こうかん します@"
-; 8a4d3
-
-Function8a4d3: ; 8a4d3 (22:64d3)
- ld a, [MenuSelection]
- cp $1
- jr nz, .asm_8a4eb
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $7
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- ret
-.asm_8a4eb
- ld a, $7
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- ret
-
-Function8a4fc: ; 8a4fc (22:64fc)
- ld a, [MenuSelection]
- cp $3
- jr nz, asm_8a529
- ld hl, wd012
- ld a, [hli]
- ld b, a
- ld a, [hld]
- add b
- ld [hl], a
- ld b, a
- ld c, $80
- call Function89cdf
- call Function8a515
- ret
-
-Function8a515: ; 8a515 (22:6515)
- ld hl, wd012
- ld a, [hl]
- cp $38
- jr c, .asm_8a520
- cp $3c
- ret c
-.asm_8a520
- ld a, [wd013]
- cpl
- inc a
- ld [wd013], a
- ret
-
-asm_8a529: ; 8a529 (22:6529)
- ld hl, wd012
- ld a, $3c
- ld [hli], a
- ld a, $ff
- ld [hli], a
- ld hl, Sprites
- xor a
- ld bc, $20
- call ByteFill
- ret
-
-Function8a53d: ; 8a53d (22:653d)
- push hl
- ld a, $15
- ld c, $8
- ld de, $14
- call Function8a573
- ld a, $1d
- ld c, $9
- call Function8a57c
- inc a
- ld [hl], a
- call Function8a584
- pop hl
- add hl, de
- ld a, $1f
- ld c, $8
- call Function8a573
- dec hl
- ld a, $51
- ld [hli], a
- ld a, $26
- ld c, $1
- call Function8a57c
- ld a, $52
- ld c, $3
- call Function8a573
- ld a, $27
- ld c, $6
-
-Function8a573: ; 8a573 (22:6573)
- ld [hl], a
- call Function8a584
- inc a
- dec c
- jr nz, Function8a573
- ret
-
-Function8a57c: ; 8a57c (22:657c)
- ld [hl], a
- call Function8a584
- dec c
- jr nz, Function8a57c
- ret
-
-Function8a584: ; 8a584 (22:6584)
- push af
- ld a, $4
- call Function89215
- inc hl
- pop af
- ret
-
-Function8a58d: ; 8a58d (22:658d)
- ld a, $2d
- ld bc, $606
- ld de, $14
-.asm_8a595
- push bc
- push hl
-.asm_8a597
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_8a597
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_8a595
- ret
-
-Function8a5a3: ; 8a5a3 (22:65a3)
- ld bc, $603
- ld de, $14
-.asm_8a5a9
- push bc
- push hl
-.asm_8a5ab
- ld [hli], a
- dec c
- jr nz, .asm_8a5ab
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_8a5a9
- ret
-
-Function8a5b6: ; 8a5b6 (22:65b6)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_8a5e5
- ld de, UnknBGPals + 4 palettes
- ld bc, 3 palettes
- call CopyBytes
- ld hl, Palette_8a5fd
- ld de, UnknOBPals
- ld bc, 1 palettes
- call CopyBytes
- ld hl, Palette_8a605
- ld de, UnknOBPals + 1 palettes
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 8a5e5 (22:65e5)
-
-Palette_8a5e5: ; 8a5e5
- RGB 31, 31, 31
- RGB 27, 19, 00
- RGB 07, 11, 22
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 16, 31
- RGB 27, 19, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 27, 19, 00
- RGB 00, 00, 00
-; 8a5fd
-
-Palette_8a5fd: ; 8a5fd
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 31, 31, 31
-; 8a605
-
-Palette_8a605: ; 8a605
- RGB 00, 00, 00
- RGB 14, 18, 31
- RGB 16, 16, 31
- RGB 31, 31, 31
-; 8a60d
-
-Function8a60d: ; 8a60d
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_8a624
- ld de, UnknOBPals
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 8a624
-
-Palette_8a624: ; 8a624
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-; 8a62c
-
-Function8a62c: ; 8a62c (22:662c)
- call LoadStandardMenuDataHeader
- call Function891fe
- xor a
- call Function8b94a
- call Function8b677
-.asm_8a639
- xor a
- ld [wd033], a
- ld [wd032], a
- ld [wd0e3], a
- call Function8b7bd
- ld a, c
- and a
- jr z, .asm_8a66a
- ld [MenuSelection], a
- ld b, a
- ld a, [wScrollingMenuCursorPosition]
- inc a
- ld [wd034], a
- push bc
- call Function8b960
- ld a, c
- pop bc
- jr z, .asm_8a639
- ld c, a
- ld hl, Jumptable_8a671
- ld a, b
- ld [MenuSelection], a
- ld a, c
- dec a
- rst JumpTable
- jr .asm_8a639
-.asm_8a66a
- call Function891fe
- call Function89b28
- ret
-
-Jumptable_8a671: ; 8a671 (22:6671)
- dw Function8a679
- dw Function8a6cd
- dw Function8a8c3
- dw Function8a930
-
-
-Function8a679: ; 8a679 (22:6679)
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call CloseSRAM
- call OpenSRAMBank4
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call Function891ab
- call CloseSRAM
-.asm_8a6a3
- call Function89a57
- jr c, .asm_8a6a3
- and a
- jr z, Function8a679
- ld hl, Jumptable_8a6bc
- dec a
- rst JumpTable
- jr c, Function8a679
- call Function891fe
- call Function8b677
- call Function89448
- ret
-
-Jumptable_8a6bc: ; 8a6bc (22:66bc)
- dw Function8a6c0
- dw Function8a6c5
-
-
-Function8a6c0: ; 8a6c0 (22:66c0)
- call PlayClickSFX
- and a
- ret
-
-Function8a6c5: ; 8a6c5 (22:66c5)
- call PlayClickSFX
- call Function89d0d
- scf
- ret
-
-Function8a6cd: ; 8a6cd (22:66cd)
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call Function8a757
- call CloseSRAM
-.asm_8a6e5
- call OpenSRAMBank4
- call Function8931b
- call Function89856
- call Function89a2e
- call Function891ab
- xor a
- ld [wd02f], a
- call CloseSRAM
-.asm_8a6fb
- call Function89b97
- call Function89c67
- jr c, .asm_8a718
- ld a, b
- and a
- jr z, .asm_8a6fb
- call PlayClickSFX
- call Function89448
- ld a, [wd011]
- ld hl, Jumptable_8a74f
- rst JumpTable
- jr nc, .asm_8a6e5
- jr .asm_8a742
-.asm_8a718
- call OpenSRAMBank4
- call Function8a765
- call CloseSRAM
- jr nc, .asm_8a73f
- call Mobile22_SetBGMapMode0
- call Function89448
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- call WaitBGMap
- ld a, $2
- call Function89254
- jr c, .asm_8a6e5
-.asm_8a73f
- call CloseSRAM
-.asm_8a742
- call ClearBGPalettes
- call Function89448
- call Function891d3
- call Function8b677
- ret
-
-Jumptable_8a74f: ; 8a74f (22:674f)
- dw Function8a78c
- dw Function8a7cb
- dw Function8a818
- dw Function8a8a1
-
-
-Function8a757: ; 8a757 (22:6757)
- call Function8939a
- xor a
- ld [wd010], a
- ld [wd011], a
- ld [wd012], a
- ret
-
-Function8a765: ; 8a765 (22:6765)
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld de, wd002
- ld c, $6
- call Function89185
- pop bc
- jr nz, .asm_8a78a
- push bc
- ld hl, $11
- add hl, bc
- ld de, wd008
- ld c, $8
- call Function89185
- pop bc
- jr nz, .asm_8a78a
- and a
- ret
-.asm_8a78a
- scf
- ret
-
-Function8a78c: ; 8a78c (22:678c)
- call Function891fe
- ld de, wd002
- ld b, $5
- callba NamingScreen
- call OpenSRAMBank4
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld d, h
- ld e, l
- ld hl, wd002
- call InitName
- call CloseSRAM
- call DelayFrame
- call JoyTextDelay
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- pop bc
- call Function89844
- call CloseSRAM
- and a
- ret
-
-Function8a7cb: ; 8a7cb (22:67cb)
- ld a, [MenuSelection]
- push af
- call Function891de
- ld de, wd008
- ld c, $0
- callba Function17a68f
- jr c, .asm_8a7f4
- ld hl, wd008
- ld a, $ff
- ld bc, $8
- call ByteFill
- ld h, d
- ld l, e
- ld de, wd008
- ld c, $8
- call Function89193
-.asm_8a7f4
- pop af
- ld [MenuSelection], a
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call Function89856
- call Function89a2e
- call Function891ab
- call CloseSRAM
- and a
- ret
-
-Function8a818: ; 8a818 (22:6818)
- call Function89a23
- ld hl, wd002
- call Function89331
- jr c, .asm_8a875
- ld hl, wd008
- call Function89b45
- jr nc, .asm_8a87a
- call OpenSRAMBank4
- call Function8a765
- jr nc, .asm_8a863
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld d, h
- ld e, l
- ld hl, wd002
- ld c, $6
- call Function89193
- pop bc
- ld hl, $11
- add hl, bc
- ld d, h
- ld e, l
- ld hl, wd008
- ld c, $8
- call Function89193
- hlcoord 1, 13
- ld de, .string_8a868
- call PlaceString
- call WaitBGMap
- call JoyWaitAorB
-.asm_8a863
- call CloseSRAM
- scf
- ret
-; 8a868 (22:6868)
-
-.string_8a868
- db "めいし", $1f, "かきかえ まし", $22, "@"
-
-.asm_8a875
- ld de, String_8a88b
- jr .asm_8a87d
-.asm_8a87a
- ld de, String_8911c
-.asm_8a87d
- hlcoord 1, 13
- call PlaceString
- call WaitBGMap
- call JoyWaitAorB
- and a
- ret
-; 8a88b (22:688b)
-
-String_8a88b: ; 8a88b
- db "おともだち", $25, "なまえが"
- next "かかれて いません!@"
-; 8a8a1
-
-Function8a8a1: ; 8a8a1 (22:68a1)
- call OpenSRAMBank4
- call Function8a765
- call CloseSRAM
- jr nc, .asm_8a8bf
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8a8c1
-.asm_8a8bf
- scf
- ret
-.asm_8a8c1
- and a
- ret
-
-Function8a8c3: ; 8a8c3 (22:68c3)
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call Function8939a
- call Function89856
- call CloseSRAM
- call Function891ab
- hlcoord 1, 13
- ld de, String_8a919
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8a90f
- call OpenSRAMBank4
- call Function892b4
- call CloseSRAM
- call Function89a23
- call Mobile22_SetBGMapMode0
- hlcoord 1, 13
- ld de, String_8a926
- call PlaceString
- call WaitBGMap
- call JoyWaitAorB
-.asm_8a90f
- call Function89448
- call Function891fe
- call Function8b677
- ret
-; 8a919 (22:6919)
-
-String_8a919: ; 8a919
- db "このデータ", $1f, "けしますか?@"
-; 8a926
-
-String_8a926: ; 8a926
- db "データ", $1f, "けしまし", $22, "@"
-; 8a930
-
-Function8a930: ; 8a930 (22:6930)
- ld a, [MenuSelection]
- push af
- xor a
- ld [wd032], a
- ld a, $1
- ld [wd033], a
- ld a, [wd034]
- ld [wd0e3], a
-.asm_8a943
- call Function8b7bd
- ld a, [wMenuJoypad]
- and $1
- jr nz, .asm_8a953
- ld a, c
- and a
- jr nz, .asm_8a943
- pop af
- ret
-.asm_8a953
- call OpenSRAMBank4
- pop af
- cp c
- jr z, .asm_8a995
- push bc
- ld [MenuSelection], a
- call Function8931b
- push bc
- ld h, b
- ld l, c
- ld de, wd002
- ld bc, $25
- call CopyBytes
- pop de
- pop bc
- ld a, c
- ld [MenuSelection], a
- call Function8931b
- push bc
- ld h, b
- ld l, c
- ld bc, $25
- call CopyBytes
- pop de
- ld hl, wd002
- ld bc, $25
- call CopyBytes
- ld de, SFX_SWITCH_POKEMON
- call WaitPlaySFX
- ld de, SFX_SWITCH_POKEMON
- call WaitPlaySFX
-.asm_8a995
- call CloseSRAM
- ret
-
-Function8a999: ; 8a999 (22:6999)
- ld hl, MenuDataHeader_0x8a9c9
- call LoadMenuDataHeader
- ld c, $1
-.asm_8a9a1
- call Function8a9ce
- jr c, .asm_8a9bb
- push bc
- push de
- call LoadStandardMenuDataHeader
- pop de
- dec e
- ld a, e
- ld hl, Jumptable_8a9c5
- rst JumpTable
- call Function891fe
- call Function89b28
- pop bc
- jr .asm_8a9a1
-.asm_8a9bb
- call Function89209
- call CloseWindow
- call Function8920f
- ret
-
-Jumptable_8a9c5: ; 8a9c5 (22:69c5)
- dw Function8aa0a
- dw Function8ab3b
-; 8a9c9 (22:69c9)
-
-MenuDataHeader_0x8a9c9: ; 0x8a9c9
- db $40 ; flags
- db 04, 11 ; start coords
- db 11, 18 ; end coords
-; 8a9ce
-
-Function8a9ce: ; 8a9ce (22:69ce)
- push bc
- decoord 11, 4
- ld b, $6
- ld c, $6
- call Function89b3b
- pop bc
- ld a, c
- ld hl, MenuDataHeader_0x8a9f2
- call Function89d5e
- ld hl, Function8aa09
- call Function89d85
- jr c, .asm_8a9ed
- ld c, a
- ld e, a
- and a
- ret
-.asm_8a9ed
- ld c, a
- ld e, $0
- scf
- ret
-; 8a9f2 (22:69f2)
-
-MenuDataHeader_0x8a9f2: ; 0x8a9f2
- db $40 ; flags
- db 04, 11 ; start coords
- db 11, 18 ; end coords
- dw MenuData2_0x8a9fa
- db 1 ; default option
-; 0x8a9fa
-
-MenuData2_0x8a9fa: ; 0x8a9fa
- db $a0 ; flags
- db 3 ; items
- db "へんしゅう@"
- db "みる@"
- db "やめる@"
-; 0x8aa09
-
-Function8aa09: ; 8aa09
- ret
-; 8aa0a
-
-Function8aa0a: ; 8aa0a (22:6a0a)
- ld a, $1
- ld [wd02f], a
- ld [wd011], a
- xor a
- ld [wd010], a
- ld [wd012], a
- call OpenSRAMBank4
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function891fe
- call ClearBGPalettes
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
-.asm_8aa3a
- call Function8987f
- call Function89a2e
- call Function891ab
-.asm_8aa43
- call Function89b97
- call Function89c67
- jr c, .asm_8aa61
- ld a, b
- and a
- jr z, .asm_8aa43
- call PlayClickSFX
- call Function89448
- ld a, [wd011]
- dec a
- ld hl, Jumptable_8aa6d
- rst JumpTable
- jr nc, .asm_8aa3a
- jr .asm_8aa69
-.asm_8aa61
- call Function89448
- call Function8ab11
- jr nc, .asm_8aa3a
-.asm_8aa69
- call Function89448
- ret
-
-Jumptable_8aa6d: ; 8aa6d (22:6a6d)
- dw Function8aa73
- dw Function8aab6
- dw Function8ab11
-
-
-Function8aa73: ; 8aa73 (22:6a73)
- ld a, [MenuSelection]
- ld e, a
- push de
- call Function891de
- ld de, wd008
- ld c, $0
- callba Function17a68f
- jr c, .asm_8aa9d
- ld hl, wd008
- ld a, $ff
- ld bc, $8
- call ByteFill
- ld h, d
- ld l, e
- ld de, wd008
- ld c, $8
- call Function89193
-.asm_8aa9d
- call Function891fe
- call ClearBGPalettes
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- pop de
- ld a, e
- ld [MenuSelection], a
- and a
- ret
-
-Function8aab6: ; 8aab6 (22:6ab6)
- call Function89a23
- ld hl, wd008
- call Function89b45
- jr nc, Function8ab00
- call OpenSRAMBank4
- ld de, wd008
- ld hl, $a603
- ld c, $8
- call Function89185
- jr z, .asm_8aaeb
- ld hl, wd008
- ld de, $a603
- ld c, $8
- call Function89193
- hlcoord 1, 13
- ld de, String_8aaf0
- call PlaceString
- call WaitBGMap
- call JoyWaitAorB
-.asm_8aaeb
- call CloseSRAM
- scf
- ret
-; 8aaf0 (22:6af0)
-
-String_8aaf0: ; 8aaf0
- db "あたらしい めいし<PKMN>できまし<LNBRK>@"
-; 8ab00
-
-Function8ab00: ; 8ab00
- ld de, String_8911c
- hlcoord 1, 13
- call PlaceString
- call WaitBGMap
- call Mobile22_ButtonSound
- and a
- ret
-
-Function8ab11: ; 8ab11 (22:6b11)
- call OpenSRAMBank4
- ld hl, $a603
- ld de, wd008
- ld c, $8
- call Function89185
- call CloseSRAM
- jr z, .asm_8ab37
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8ab39
-.asm_8ab37
- scf
- ret
-.asm_8ab39
- and a
- ret
-
-Function8ab3b: ; 8ab3b (22:6b3b)
-.pressed_start
- call Function891fe
- call ClearBGPalettes
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- call OpenSRAMBank4
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function8987f
- call OpenSRAMBank4
- hlcoord 1, 13
- ld bc, $a007
- call Function89a0c
- call CloseSRAM
- call Function891ab
- call .JoypadLoop
- jr c, .pressed_start
- ret
-
-.JoypadLoop: ; 8ab77 (22:6b77)
- call JoyTextDelay_ForcehJoyDown
- bit A_BUTTON_F, c
- jr nz, .a_b_button
- bit B_BUTTON_F, c
- jr nz, .a_b_button
- bit START_F, c
- jr z, .JoypadLoop
- call PlayClickSFX
- call Function89d0d
- scf
- ret
-
-.a_b_button
- call PlayClickSFX
- and a
- ret
-
-Function8ab93: ; 8ab93 (22:6b93)
- call ClearBGPalettes
- call LoadStandardMenuDataHeader
- callba Function105688
- call ClearSprites
- call Function891fe
- call Function89b28
- ret
-; 8aba9 (22:6ba9)
-
-Function8aba9: ; 8aba9
- ld a, $2
- call Function8b94a
- ld a, $1
- ld [wd032], a
-.asm_8abb3
- call Function891fe
- call Function8b677
-.asm_8abb9
- call Function8b7bd
- jr z, .asm_8abdf
- ld a, c
- ld [MenuSelection], a
- call OpenSRAMBank4
- call Function8931b
- ld hl, $0011
- add hl, bc
- call Function89b45
- call CloseSRAM
- jr c, .asm_8abe2
- ld de, SFX_WRONG
- call WaitPlaySFX
- call CloseSRAM
- jr .asm_8abb9
-
-.asm_8abdf
- xor a
- ld c, a
- ret
-
-.asm_8abe2
- call PlayClickSFX
-.asm_8abe5
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call CloseSRAM
- call OpenSRAMBank4
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call CloseSRAM
- call Function891ab
-.asm_8ac0f
- call Function89a57
- jr c, .asm_8ac0f
- and a
- jr z, .asm_8abe5
- cp $2
- jr z, .asm_8ac0f
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld de, String_8ac3b
- call PlaceString
- ld a, $1
- call Function8925e
- jp c, .asm_8abb3
- ld a, [MenuSelection]
- ld c, a
- ret
-; 8ac3b
-
-String_8ac3b: ; 8ac3b
- db "こ", $25, "ともだち", $1d, "でんわを"
- next "かけますか?@"
-; 8ac4e
-
-Function8ac4e: ; 8ac4e
- xor a
- ld [MenuSelection], a
- push de
- call Function891de
- call ClearBGPalettes
- call Function893cc
- pop bc
- call Function89844
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call Function891ab
- ret
-; 8ac70
-
-Function8ac70: ; 8ac70
- push de
- ld a, $3
- call Function8b94a
-
-Function8ac76: ; 8ac76
- call Function891fe
- call Function8b677
-
-Function8ac7c: ; 8ac7c
- call Function8b7bd
- jr z, .asm_8acf0
- ld a, c
- ld [wd02f], a
- ld [MenuSelection], a
- call OpenSRAMBank4
- call Function8931b
- call Function8932d
- call CloseSRAM
- jr nc, .asm_8acb0
- call OpenSRAMBank4
- ld hl, $0011
- add hl, bc
- call Function89b45
- call CloseSRAM
- jr nc, .asm_8accc
- call OpenSRAMBank4
- call Function892b7
- call CloseSRAM
- jr .asm_8accc
-
-.asm_8acb0
- call Function8ad0b
- jr c, Function8ac76
- and a
- jr nz, .asm_8accc
- call OpenSRAMBank4
- ld h, b
- ld l, c
- ld d, $0
- ld e, $6
- add hl, de
- ld d, h
- ld e, l
- pop hl
- ld c, $1f
- call Function89193
- jr .asm_8ace4
-
-.asm_8accc
- pop hl
- call OpenSRAMBank4
- ld d, b
- ld e, c
- ld c, $6
- call Function89193
- ld a, $6
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld c, $1f
- call Function89193
-
-.asm_8ace4
- call CloseSRAM
- call LoadStandardFont
- ld a, [wd02f]
- ld c, a
- and a
- ret
-
-.asm_8acf0
- ld hl, UnknownText_0x8ad06
- call PrintText
- ld a, $2
- call Function89259
- jp c, Function8ac7c
- call LoadStandardFont
- pop de
- ld c, $0
- scf
- ret
-; 8ad06
-
-UnknownText_0x8ad06: ; 0x8ad06
- ; Finish registering CARDS?
- text_jump UnknownText_0x1c554a
- db "@"
-; 0x8ad0b
-
-Function8ad0b: ; 8ad0b
-.asm_8ad0b
- ld a, [MenuSelection]
- ld [wd02f], a
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- push bc
- call Function89844
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call CloseSRAM
- call Function891ab
- pop bc
-.asm_8ad37
- push bc
- call Function89a57
- pop bc
- jr c, .asm_8ad37
- and a
- jr z, .asm_8ad0b
- cp $2
- jr z, .asm_8ad37
- call Mobile22_SetBGMapMode0
- push bc
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld de, String_8ad89
- hlcoord 1, 14
- call PlaceString
- ld a, $2
- call Function8925e
- jr c, .asm_8ad87
- call Mobile22_SetBGMapMode0
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld de, String_8ad9c
- hlcoord 1, 14
- call PlaceString
- ld a, $1
- call Function8925e
- jr c, .asm_8ad84
- ld a, $0
- jr .asm_8ad86
-
-.asm_8ad84
- ld a, $1
-
-.asm_8ad86
- and a
-
-.asm_8ad87
- pop bc
- ret
-; 8ad89
-
-String_8ad89: ; 8ad89
- db "こ", $25, "めいし", $1f, "けして"
- next "いれかえますか?@"
-; 8ad9c
-
-String_8ad9c: ; 8ad9c
- db "おともだち", $25, "なまえを"
- next "のこして おきますか?@"
-; 8adb3
-
-Function8adb3: ; 8adb3
- call Function891de
- call Function8a262
- push af
- call Function891de
- pop af
- ret
-; 8adbf
-
-Function8adbf: ; 8adbf
- call OpenSRAMBank4
- ld hl, $a603
- call Function89b45
- call CloseSRAM
- ret
-; 8adcc
-
-Function8adcc: ; 8adcc
- call OpenSRAMBank4
- call Function8b3b0
- call CloseSRAM
- ret nc
- cp $2
- ret z
- scf
- ret
-; 8addb
--- a/misc/mobile_22_2.asm
+++ /dev/null
@@ -1,1162 +1,0 @@
-Function8b342:: ; 8b342
-; Loads the secondary map header pointer, then runs through a
-; dw with three dummy functions. Spends a lot of energy
-; doing pretty much nothing.
- call GetSecondaryMapHeaderPointer
- ld d, h
- ld e, l
-
-; Everything between here and "ret" is useless.
- xor a
-.loop
- push af
- ld hl, .dw
- rst JumpTable
- pop af
- inc a
- cp 3
- jr nz, .loop
- ret
-; 8b354
-
-.dw ; 8b354
- dw .zero
- dw .one
- dw .two
-; 8b35a
-
-.zero ; 8b35a
- mobile
-; 8b35b
-
-.one ; 8b35b
- mobile
-; 8b35c
-
-.two ; 8b35c
- mobile
-; 8b35d
-
-Function8b35d: ; 8b35d
- ld a, h
- cp d
- ret nz
- ld a, l
- cp e
- ret
-; 8b363
-
-Function8b363: ; 8b363
- push bc
- callba Mobile_AlwaysReturnNotCarry
- pop bc
- ret
-; 8b36c
-
-Function8b36c: ; 8b36c (22:736c)
- ; [bc + (0:4)] = -1
- push bc
- ld h, b
- ld l, c
- ld bc, 4
- ld a, -1
- call ByteFill
- pop bc
- ret
-
-Function8b379: ; 8b379 (22:7379)
- ; d = [bc + e]
- push bc
- ld a, c
- add e
- ld c, a
- ld a, $0
- adc b
- ld b, a
- ld a, [bc]
- ld d, a
- pop bc
- ret
-
-Function8b385: ; 8b385 (22:7385)
- ; [bc + e] = d
- push bc
- ld a, c
- add e
- ld c, a
- ld a, $0
- adc b
- ld b, a
- ld a, d
- ld [bc], a
- pop bc
- ret
-
-Function8b391: ; 8b391 (22:7391)
- ; find first e in range(4) such that [bc + e] == -1
- ; if none exist, return carry
- push bc
- ld e, 0
- ld d, 4
-.loop
- ld a, [bc]
- inc bc
- cp -1
- jr z, .done
- inc e
- dec d
- jr nz, .loop
- dec e
- scf
-.done
- pop bc
- ret
-
-Function8b3a4: ; 8b3a4 (22:73a4)
- ; strcmp(hl, bc, 4)
- push de
- push bc
- ld d, b
- ld e, c
- ld c, 4
- call Function89185
- pop bc
- pop de
- ret
-
-Function8b3b0: ; 8b3b0 (22:73b0)
- ld bc, $a037 ; 4:a037
- ld a, [$a60b]
- and a
- jr z, .asm_8b3c2
- cp $3
- jr nc, .asm_8b3c2
- call Function8b391
- jr c, .asm_8b3c9
-.asm_8b3c2
- call Function8b36c
- xor a
- ld [$a60b], a
-.asm_8b3c9
- ld a, [$a60b]
- ret
-
-Function8b3cd: ; 8b3cd (22:73cd)
- push de
- push bc
- ld e, $4
-.asm_8b3d1
- ld a, [bc]
- inc bc
- call Function8998b
- inc hl
- dec e
- jr nz, .asm_8b3d1
- pop bc
- pop de
- ret
-
-Function8b3dd: ; 8b3dd (22:73dd)
- push de
- push bc
- call JoyTextDelay_ForcehJoyDown ; joypad
- ld a, c
- pop bc
- pop de
- bit A_BUTTON_F, a
- jr nz, .a_button
- bit B_BUTTON_F, a
- jr nz, .b_button
- bit D_UP_F, a
- jr nz, .d_up
- bit D_DOWN_F, a
- jr nz, .d_down
- and a
- ret
-
-.a_button
- ld a, e
- cp $3
- jr z, .e_is_zero
- inc e
- ld d, 0
- call Function8b385
- xor a
- ld [wd010], a
- ret
-
-.e_is_zero
- call PlayClickSFX
- ld d, $0
- scf
- ret
-
-.b_button
- ld a, e
- and a
- jr nz, .e_is_not_zero
- call PlayClickSFX
- ld d, -1
- call Function8b385
- ld d, 1
- scf
- ret
-
-.e_is_not_zero
- ld d, -1
- call Function8b385
- dec e
- xor a
- ld [wd010], a
- ret
-
-.d_up
- call Function8b379
- ld a, d
- cp $a
- jr c, .less_than_10_up_1
- ld d, $9
-.less_than_10_up_1
- inc d
- ld a, d
- cp $a
- jr c, .less_than_10_up_2
- ld d, $0
-.less_than_10_up_2
- call Function8b385
- xor a
- ld [wd010], a
- ret
-
-.d_down
- call Function8b379
- ld a, d
- cp $a
- jr c, .less_than_10_down
- ld d, $0
-.less_than_10_down
- ld a, d
- dec d
- and a
- jr nz, .nonzero_down
- ld d, $9
-.nonzero_down
- call Function8b385
- xor a
- ld [wd010], a
- ret
-
-Function8b45c: ; 8b45c (22:745c)
- call Function8b36c
- xor a
- ld [wd010], a
- ld [wd012], a
- call Function8b391
- ld d, $0
- call Function8b385
-.asm_8b46e
- call Mobile22_SetBGMapMode0
- call Function8b493
- call Function8b4cc
- call Function8b518
- call Function89b78
- push bc
- call Function8b4fd
- call Function89c44
- ld a, $1
- ld [hBGMapMode], a
- pop bc
- call Function8b3dd
- jr nc, .asm_8b46e
- ld a, d
- and a
- ret z
- scf
- ret
-
-Function8b493: ; 8b493 (22:7493)
- push bc
- call Mobile22_SetBGMapMode0
- call Function8b521
- ld hl, Jumptable_8b4a0
- pop bc
- rst JumpTable
- ret
-
-Jumptable_8b4a0: ; 8b4a0 (22:74a0)
- dw Function8b4a4
- dw Function8b4b8
-
-
-Function8b4a4: ; 8b4a4 (22:74a4)
- push bc
- push de
- call Function8b4d8
- call TextBox
- pop de
- pop bc
- call Function8b4cc
- call Function8b518
- call Function8b3cd
- ret
-
-Function8b4b8: ; 8b4b8 (22:74b8)
- push bc
- push de
- call Function8b4ea
- call Function89b3b
- pop de
- pop bc
- call Function8b4cc
- call Function8b518
- call Function8b3cd
- ret
-
-Function8b4cc: ; 8b4cc (22:74cc)
- push bc
- ld hl, Unknown_8b529
- call Function8b50a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop bc
- ret
-
-Function8b4d8: ; 8b4d8 (22:74d8)
- ld hl, Unknown_8b529
- call Function8b50a
- push hl
- inc hl
- inc hl
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld c, a
- pop hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-Function8b4ea: ; 8b4ea (22:74ea)
- ld hl, Unknown_8b529
- call Function8b50a
- push hl
- inc hl
- inc hl
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld c, a
- pop hl
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- ret
-
-Function8b4fd: ; 8b4fd (22:74fd)
- ld hl, Unknown_8b529 + 4
- call Function8b50a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld d, a
- ret
-
-Function8b50a: ; 8b50a (22:750a)
- ld a, [wd02e]
- and a
- ret z
- ld b, $0
- ld c, $8
-.asm_8b513
- add hl, bc
- dec a
- jr nz, .asm_8b513
- ret
-
-Function8b518: ; 8b518 (22:7518)
- push de
- ld d, $0
- ld e, $14
- add hl, de
- inc hl
- pop de
- ret
-
-Function8b521: ; 8b521 (22:7521)
- ld hl, Unknown_8b529 + 7
- call Function8b50a
- ld a, [hl]
- ret
-; 8b529 (22:7529)
-
-Unknown_8b529: ; 8b529
- dwcoord 2, 5
- db 1, 4, $20, $49, 0, 1
- dwcoord 7, 4
- db 1, 4, $48, $41, 0, 0
-; 8b539
-
-Function8b539: ; 8b539 (22:7539)
- ld bc, wd017
- call Function8b36c
- xor a
- ld [wd012], a
- ld [wd02e], a
- call Function8b493
- call Function8b4fd
- ld e, $0
- call Function89c44
- call CGBOnly_LoadEDTile
- ret
-
-Function8b555: ; 8b555 (22:7555)
-.loop
- ld hl, UnknownText_0x8b5ce
- call PrintText
- ld bc, wd017
- call Function8b45c
- jr c, .asm_8b5c8
- call Function89448
- ld bc, wd017
- call Function8b493
- ld bc, wd017
- call Function8b664
- jr nz, .asm_8b57c
- ld hl, UnknownText_0x8b5e2
- call PrintText
- jr .loop
-
-.asm_8b57c
- ld hl, UnknownText_0x8b5d3
- call PrintText
- ld bc, wd013
- call Function8b45c
- jr c, .loop
- ld bc, wd017
- ld hl, wd013
- call Function8b3a4
- jr z, .strings_equal
- call Function89448
- ld bc, wd013
- call Function8b493
- ld hl, UnknownText_0x8b5d8
- call PrintText
- jr .asm_8b57c
-
-.strings_equal
- call OpenSRAMBank4
- ld hl, wd013
- ld de, $a037 ; 4:a037
- ld bc, $4
- call CopyBytes
- call CloseSRAM
- call Function89448
- ld bc, wd013
- call Function8b493
- ld hl, UnknownText_0x8b5dd
- call PrintText
- and a
-.asm_8b5c8
- push af
- call Function89448
- pop af
- ret
-; 8b5ce (22:75ce)
-
-UnknownText_0x8b5ce: ; 0x8b5ce
- ; Please enter any four-digit number.
- text_jump UnknownText_0x1bc187
- db "@"
-; 0x8b5d3
-
-UnknownText_0x8b5d3: ; 0x8b5d3
- ; Enter the same number to confirm.
- text_jump UnknownText_0x1bc1ac
- db "@"
-; 0x8b5d8
-
-UnknownText_0x8b5d8: ; 0x8b5d8
- ; That's not the same number.
- text_jump UnknownText_0x1bc1cf
- db "@"
-; 0x8b5dd
-
-UnknownText_0x8b5dd: ; 0x8b5dd
- ; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER.
- text_jump UnknownText_0x1bc1eb
- db "@"
-; 0x8b5e2
-
-UnknownText_0x8b5e2: ; 0x8b5e2
- ; 0000 is invalid!
- text_jump UnknownText_0x1bc23e
- db "@"
-; 0x8b5e7
-
-Function8b5e7: ; 8b5e7 (22:75e7)
- ld bc, wd013
- call Function8b36c
- xor a
- ld [wd012], a
- ld [wd02e], a
- call Function8b493
- call Function891ab
- call Function8b4fd
- ld e, $0
- call Function89c44
-.asm_8b602
- ld hl, UnknownText_0x8b642
- call PrintText
- ld bc, wd013
- call Function8b45c
- jr c, .asm_8b63c
- call Function89448
- ld bc, wd013
- call Function8b493
- call OpenSRAMBank4
- ld hl, $a037 ; 4:a037
- call Function8b3a4
- call CloseSRAM
- jr z, .asm_8b635
- ld hl, UnknownText_0x8b647
- call PrintText
- ld bc, wd013
- call Function8b36c
- jr .asm_8b602
-.asm_8b635
- ld hl, UnknownText_0x8b64c
- call PrintText
- and a
-.asm_8b63c
- push af
- call Function89448
- pop af
- ret
-; 8b642 (22:7642)
-
-UnknownText_0x8b642: ; 0x8b642
- ; Enter the CARD FOLDER PASSCODE.
- text_jump UnknownText_0x1bc251
- db "@"
-; 0x8b647
-
-UnknownText_0x8b647: ; 0x8b647
- ; Incorrect PASSCODE!
- text_jump UnknownText_0x1bc272
- db "@"
-; 0x8b64c
-
-UnknownText_0x8b64c: ; 0x8b64c
- ; CARD FOLDER open.@ @
- text_jump UnknownText_0x1bc288
- start_asm
- ld de, SFX_TWINKLE
- call PlaySFX
- call WaitSFX
- ld c, $8
- call DelayFrames
- ld hl, .string_8b663
- ret
-.string_8b663
- db "@"
-; 8b664
-
-Function8b664: ; 8b664 (22:7664)
- push bc
- ld de, $4
-.asm_8b668
- ld a, [bc]
- cp $0
- jr nz, .asm_8b66e
- inc d
-.asm_8b66e
- inc bc
- dec e
- jr nz, .asm_8b668
- pop bc
- ld a, d
- cp $4
- ret
-
-Function8b677: ; 8b677
- call ClearBGPalettes
- call DisableLCD
- call Function8b690
- call Function8b6bb
- call Function8b6ed
- call EnableLCD
- call Function891ab
- call SetPalettes
- ret
-; 8b690
-
-Function8b690: ; 8b690
- ld hl, GFX_17afa5 + $514
- ld de, VTiles2
- ld bc, $160
- ld a, BANK(GFX_17afa5)
- call FarCopyBytes
- ld hl, GFX_17afa5 + $514 + $160 - $10
- ld de, VTiles2 tile $61
- ld bc, $10
- ld a, BANK(GFX_17afa5)
- call FarCopyBytes
- ld hl, GFX_17afa5 + $514 + $160
- ld de, VTiles1 tile $6e
- ld bc, $10
- ld a, BANK(GFX_17afa5)
- call FarCopyBytes
- ret
-; 8b6bb
-
-Function8b6bb: ; 8b6bb
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_8b6d5
- ld de, UnknBGPals
- ld bc, $0018
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function8949c
- ret
-; 8b6d5
-
-Palette_8b6d5: ; 8b6d5
- RGB 31, 31, 31
- RGB 31, 21, 00
- RGB 14, 07, 03
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 21, 00
- RGB 22, 09, 17
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 21, 00
- RGB 06, 24, 08
- RGB 00, 00, 00
-; 8b6ed
-
-Function8b6ed: ; 8b6ed
- hlcoord 0, 0, AttrMap
- ld bc, $012c
- xor a
- call ByteFill
- hlcoord 0, 14, AttrMap
- ld bc, $0050
- ld a, $7
- call ByteFill
- ret
-; 8b703
-
-Function8b703: ; 8b703
- call Mobile22_SetBGMapMode0
- push hl
- ld a, $c
- ld [hli], a
- inc a
- call Function8b73e
- inc a
- ld [hl], a
- pop hl
- push hl
- push bc
- ld de, SCREEN_WIDTH
- add hl, de
-.asm_8b717
- push hl
- ld a, $f
- ld [hli], a
- ld a, $7f
- call Function8b73e
- ld a, $11
- ld [hl], a
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- dec b
- jr nz, .asm_8b717
- call Function8b732
- pop bc
- pop hl
- jr Function8b744
-; 8b732
-
-Function8b732: ; 8b732
- ld a, $12
- ld [hli], a
- ld a, $13
- call Function8b73e
- ld a, $14
- ld [hl], a
- ret
-; 8b73e
-
-Function8b73e: ; 8b73e
- ld d, c
-.asm_8b73f
- ld [hli], a
- dec d
- jr nz, .asm_8b73f
- ret
-; 8b744
-
-Function8b744: ; 8b744
- ld de, AttrMap - TileMap
- add hl, de
- inc b
- inc b
- inc c
- inc c
- xor a
-.asm_8b74d
- push bc
- push hl
-.asm_8b74f
- ld [hli], a
- dec c
- jr nz, .asm_8b74f
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- pop bc
- dec b
- jr nz, .asm_8b74d
- ret
-; 8b75d
-
-Function8b75d: ; 8b75d
- call Mobile22_SetBGMapMode0
- hlcoord 0, 0
- ld a, $1
- ld bc, SCREEN_WIDTH
- call ByteFill
- hlcoord 0, 1
- ld a, $2
- ld [hl], a
- hlcoord 9, 1
- ld c, $b
- call Function8b788
- hlcoord 1, 1
- ld a, $4
- ld e, $8
-.asm_8b780
- ld [hli], a
- inc a
- dec e
- jr nz, .asm_8b780
- jr Function8b79e
-; 8b787
-
-Function8b787: ; 8b787
- ret
-; 8b788
-
-Function8b788: ; 8b788
-.asm_8b788
- ld a, $2
- ld [hli], a
- dec c
- ret z
- ld a, $1
- ld [hli], a
- dec c
- ret z
- ld a, $3
- ld [hli], a
- dec c
- ret z
- ld a, $1
- ld [hli], a
- dec c
- jr nz, .asm_8b788
- ret
-; 8b79e
-
-Function8b79e: ; 8b79e
- hlcoord 0, 1, AttrMap
- ld a, $1
- ld [hli], a
- hlcoord 9, 1, AttrMap
- ld e, $b
-.asm_8b7a9
- ld a, $2
- ld [hli], a
- dec e
- ret z
- xor a
- ld [hli], a
- dec e
- ret z
- ld a, $1
- ld [hli], a
- dec e
- ret z
- xor a
- ld [hli], a
- dec e
- jr nz, .asm_8b7a9
- ret
-; 8b7bd
-
-Function8b7bd: ; 8b7bd
- call Function8b855
- ld hl, MenuDataHeader_0x8b867
- call CopyMenuDataHeader
- ld a, [wd030]
- ld [wMenuCursorBuffer], a
- ld a, [wd031]
- ld [wMenuScrollPosition], a
- ld a, [wd032]
- and a
- jr z, .asm_8b7e0
- ld a, [wMenuFlags]
- set 3, a
- ld [wMenuFlags], a
-
-.asm_8b7e0
- ld a, [wd0e3]
- and a
- jr z, .asm_8b7ea
- dec a
- ld [wScrollingMenuCursorPosition], a
-
-.asm_8b7ea
- hlcoord 0, 2
- ld b, $b
- ld c, $12
- call Function8b703
- call Function8b75d
- call UpdateSprites
- call Function89209
- call ScrollingMenu
- call Function8920f
- ld a, [wMenuJoypad]
- cp $2
- jr z, .asm_8b823
- cp $20
- jr nz, .asm_8b813
- call Function8b832
- jr .asm_8b7ea
-
-.asm_8b813
- cp $10
- jr nz, .asm_8b81c
- call Function8b83e
- jr .asm_8b7ea
-
-.asm_8b81c
- ld a, [MenuSelection]
- cp $ff
- jr nz, .asm_8b824
-
-.asm_8b823
- xor a
-
-.asm_8b824
- ld c, a
- ld a, [wMenuCursorY]
- ld [wd030], a
- ld a, [wMenuScrollPosition]
- ld [wd031], a
- ret
-; 8b832
-
-Function8b832: ; 8b832
- ld a, [wMenuScrollPosition]
- ld hl, wMenuData2Items
- sub [hl]
- jr nc, Function8b84b
- xor a
- jr Function8b84b
-; 8b83e
-
-Function8b83e: ; 8b83e
- ld a, [wMenuScrollPosition]
- ld hl, wMenuData2Items
- add [hl]
- cp $24
- jr c, Function8b84b
- ld a, $24
-
-Function8b84b: ; 8b84b
- ld [wMenuScrollPosition], a
- ld a, [wMenuCursorY]
- ld [wMenuCursorBuffer], a
- ret
-; 8b855
-
-Function8b855: ; 8b855
- ld a, $28
- ld hl, wd002
- ld [hli], a
- ld c, $28
- xor a
-.asm_8b85e
- inc a
- ld [hli], a
- dec c
- jr nz, .asm_8b85e
- ld a, $ff
- ld [hl], a
- ret
-; 8b867
-
-MenuDataHeader_0x8b867: ; 0x8b867
- db $40 ; flags
- db 03, 01 ; start coords
- db 13, 18 ; end coords
- dw MenuData2_0x8b870
- db 1 ; default option
-; 0x8b86f
-
- db 0
-
-MenuData2_0x8b870: ; 0x8b870
- db $3c ; flags
- db 5 ; items
- db 3, 1
- dbw 0, wd002
- dba Function8b880
- dba Function8b88c
- dba Function8b8c8
-; 8b880
-
-Function8b880: ; 8b880
- ld h, d
- ld l, e
- ld de, MenuSelection
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ret
-; 8b88c
-
-Function8b88c: ; 8b88c
- call OpenSRAMBank4
- ld h, d
- ld l, e
- push hl
- ld de, String_89116
- call Function8931b
- call Function8932d
- jr c, .asm_8b8a3
- ld hl, 0
- add hl, bc
- ld d, h
- ld e, l
-
-.asm_8b8a3
- pop hl
- push hl
- call PlaceString
- pop hl
- ld d, $0
- ld e, $6
- add hl, de
- push hl
- ld de, String_89116
- call Function8931b
- call Function8934a
- jr c, .asm_8b8c0
- ld hl, $0006
- add hl, bc
- ld d, h
- ld e, l
-
-.asm_8b8c0
- pop hl
- call PlaceString
- call CloseSRAM
- ret
-; 8b8c8
-
-Function8b8c8: ; 8b8c8
- hlcoord 0, 14
- ld b, $2
- ld c, $12
- call TextBox
- ld a, [wd033]
- ld b, 0
- ld c, a
- ld hl, Unknown_8b903
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld d, h
- ld e, l
- hlcoord 1, 16
- call PlaceString
- hlcoord 0, 13
- ld a, $f
- ld [hl], a
- hlcoord 19, 13
- ld a, $11
- ld [hl], a
- ld a, [wMenuScrollPosition]
- cp $24
- ret c
- hlcoord 0, 13
- ld c, $12
- call Function8b732
- ret
-; 8b903
-
-Unknown_8b903: ; 8b903
- dw String_8b90b
- dw String_8b919
- dw String_8b92a
- dw String_8b938
-
-String_8b90b: db "めいしを えらんでください@" ; Please select a noun.
-String_8b919: db "どの めいしと いれかえますか?@" ; OK to swap with any noun?
-String_8b92a: db "あいてを えらんでください@" ; Please select an opponent.
-String_8b938: db "いれる ところを えらんでください@" ; Please select a location.
-; 8b94a
-
-Function8b94a: ; 8b94a
- ld [wd033], a
- xor a
- ld [wMenuScrollPosition], a
- ld [wd032], a
- ld [wd0e3], a
- ld [wd031], a
- ld a, $1
- ld [wd030], a
- ret
-; 8b960
-
-
-Function8b960: ; 8b960 (22:7960)
- ld hl, MenuDataHeader_0x8b9ac
- call LoadMenuDataHeader
- call Function8b9e9
- jr c, .asm_8b97a
- hlcoord 11, 0
- ld b, $6
- ld c, $7
- call Function8b703
- ld hl, MenuDataHeader_0x8b9b1
- jr .asm_8b987
-.asm_8b97a
- hlcoord 11, 0
- ld b, $a
- ld c, $7
- call Function8b703
- ld hl, MenuDataHeader_0x8b9ca
-.asm_8b987
- ld a, $1
- call Function89d5e
- ld hl, Function8b9ab
- call Function89d85
- call ExitMenu
- jr c, .asm_8b99c
- call Function8b99f
- jr nz, .asm_8b99d
-.asm_8b99c
- xor a
-.asm_8b99d
- ld c, a
- ret
-
-Function8b99f: ; 8b99f (22:799f)
- ld hl, wd002
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- cp $ff
- ret
-; 8b9ab (22:79ab)
-
-Function8b9ab: ; 8b9ab
- ret
-; 8b9ac
-
-MenuDataHeader_0x8b9ac: ; 0x8b9ac
- db $40 ; flags
- db 00, 11 ; start coords
- db 11, 19 ; end coords
-
-MenuDataHeader_0x8b9b1: ; 0x8b9b1
- db $40 ; flags
- db 00, 11 ; start coords
- db 07, 19 ; end coords
- dw MenuData2_0x8b9b9
- db 1 ; default option
-; 0x8b9b9
-
-MenuData2_0x8b9b9: ; 0x8b9b9
- db $a0 ; flags
- db 3 ; items
- db "へんしゅう@" ; EDIT
- db "いれかえ@" ; REPLACE
- db "やめる@" ; QUIT
-; 0x8b9ca
-
-MenuDataHeader_0x8b9ca: ; 0x8b9ca
- db $40 ; flags
- db 00, 11 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_0x8b9d2
- db 1 ; default option
-; 0x8b9d2
-
-MenuData2_0x8b9d2: ; 0x8b9d2
- db $a0 ; flags
- db 5 ; items
- db "みる@" ; VIEW
- db "へんしゅう@" ; EDIT
- db "いれかえ@" ; REPLACE
- db "けす@" ; ERASE
- db "やめる@" ; QUIT
-; 0x8b9e9
-
-Function8b9e9: ; 8b9e9 (22:79e9)
- call OpenSRAMBank4
- call Function8931b
- call Function8932d
- jr nc, .asm_8b9f6
- jr .asm_8b9ff
-.asm_8b9f6
- ld hl, $11
- add hl, bc
- call Function89b45
- jr c, .asm_8ba08
-.asm_8b9ff
- call Function892b4
- and a
- ld de, Unknown_8ba1c
- jr .asm_8ba0c
-.asm_8ba08
- ld de, Unknown_8ba1f
- scf
-.asm_8ba0c
- push af
- ld hl, wd002
-.asm_8ba10
- ld a, [de]
- inc de
- ld [hli], a
- cp $ff
- jr nz, .asm_8ba10
- call CloseSRAM
- pop af
- ret
-; 8ba1c (22:7a1c)
-
-Unknown_8ba1c: ; 8b1ac
- db 2, 4, -1
-
-Unknown_8ba1f: ; 8ba1f
- db 1, 2, 4, 3, -1
-; 8ba24
--- a/misc/mobile_40.asm
+++ /dev/null
@@ -1,8156 +1,0 @@
-Function100000: ; 100000
-; d: 1 or 2
-; e: bank
-; bc: addr
- ld a, [rSVBK]
- push af
- ld a, 1
- ld [rSVBK], a
-
- call Function100022
- call Function1000ba
- call Function100675
- call Function100057
- call Function10016f
- call Function100276
-
- push bc
- call Function100301
- pop bc
-
- pop af
- ld [rSVBK], a
- ret
-; 100022
-
-Function100022: ; 100022
- push de
- push bc
- call SetRAMStateForMobile
- pop bc
- pop de
- ld a, d
- ld [wcd21], a
- ld a, e
- ld [wcd22], a
- ld a, c
- ld [wcd23], a
- ld a, b
- ld [wcd24], a
- callba Function10127e
- callba MobileFunc_106462
- callba Function106464 ; load broken gfx
- callba Function11615a ; init RAM
- ld hl, VramState
- set 1, [hl]
- ret
-; 100057
-
-Function100057: ; 100057
- call DisableMobile
- call ReturnToMapFromSubmenu
- ld hl, VramState
- res 1, [hl]
- ret
-; 100063
-
-SetRAMStateForMobile: ; 100063
- xor a
- ld hl, BGMapBuffer
- ld bc, $65
- call ByteFill
- xor a
- ld hl, wc300
- ld bc, $100
- call ByteFill
- ld a, [rIE]
- ld [BGMapBuffer], a
- xor a
- ld [hMapAnims], a
- ld [hLCDCPointer], a
- ret
-; 100082
-
-EnableMobile: ; 100082
- xor a
- ld hl, OverworldMap
- ld bc, OverworldMapEnd - OverworldMap
- call ByteFill
-
- di
- call DoubleSpeed
- xor a
- ld [rIF], a
- ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL
- ld [rIE], a
- xor a
- ld [hMapAnims], a
- ld [hLCDCPointer], a
- ld a, $01
- ld [hMobileReceive], a
- ld [hMobile], a
- ei
-
- ret
-; 0x1000a4
-
-DisableMobile: ; 1000a4
- di
- xor a
- ld [hMobileReceive], a
- ld [hMobile], a
- xor a
- ld [hVBlank], a
- call NormalSpeed
- xor a
- ld [rIF], a
- ld a, [BGMapBuffer]
- ld [rIE], a
- ei
- ret
-; 1000ba
-
-Function1000ba: ; 1000ba
-.loop
- ; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex])
- ld hl, wcd23
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wMobileCommsJumptableIndex]
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, [wcd22]
- call GetFarHalfword
- ld a, [wcd22]
- rst FarCall
-
- call Function1000e8
- call Function1000fa
- call Function100144
- call Function100163
- ld a, [wcd2b]
- and a
- jr z, .loop
- call DelayFrame
- ret
-; 1000e8
-
-Function1000e8: ; 1000e8
- ld hl, wcd29
- bit 7, [hl]
- ret z
- callba Function115dd3
- ld hl, wcd29
- set 6, [hl]
- ret
-; 1000fa
-
-Function1000fa: ; 1000fa
- ld a, [wc30d]
- and a
- ret z
- ld hl, wcd29
- bit 4, [hl]
- ret z
- ld a, [wcd2b]
- and a
- jr nz, .asm_100117
- callba Function11619d
- ld hl, wcd29
- set 6, [hl]
- ret
-
-.asm_100117
- di
- xor a
- ld [rIF], a
- ld a, [rIE]
- and $13
- ld [rIE], a
- xor a
- ld [hMobileReceive], a
- ld [hMobile], a
- ei
-
- ld a, [wLinkMode]
- push af
- xor a
- ld [wLinkMode], a
- ld a, $04
- ld [wc314 + 5], a
- callba Function11619d
- ld hl, wcd29
- set 6, [hl]
- pop af
- ld [wLinkMode], a
- ret
-; 100144
-
-Function100144: ; 100144
- ld hl, wcd29
- bit 5, [hl]
- jr z, .asm_100155
- res 5, [hl]
- res 2, [hl]
- res 6, [hl]
- call Function100320
- ret
-
-.asm_100155
- bit 2, [hl]
- ret z
- res 2, [hl]
- res 6, [hl]
- callba HDMATransferTileMapToWRAMBank3
- ret
-; 100163
-
-Function100163: ; 100163
- ld hl, wcd29
- bit 6, [hl]
- ret z
- res 6, [hl]
- call DelayFrame
- ret
-; 10016f
-
-Function10016f: ; 10016f
- ld a, [wcd2b]
- cp $01
- ret z
- cp $02
- ret z
- cp $ff
- jp z, .asm_1001f5
- cp $fe
- jr z, .asm_1001c4
- cp $f5
- jr z, .asm_1001e7
- cp $f6
- jr z, .asm_1001b6
- cp $fa
- jp z, .asm_1001bd
- cp $f7
- jp z, .asm_1001ee
- cp $f4
- jr z, .asm_1001d2
- cp $f3
- jr z, .asm_1001cb
- cp $f1
- jr z, .asm_1001c4
- cp $f2
- jr z, .asm_1001c4
- cp $fc
- jr z, .asm_1001e6
- cp $fb
- jr z, .asm_1001af
- cp $f8
- ret z
- ret ; ????????????????????????????
-
-.asm_1001af
- ld a, $d7
- ld de, 0
- jr .asm_1001d7
-
-.asm_1001b6
- ld a, $d5
- ld de, 0
- jr .asm_1001d7
-
-.asm_1001bd
- ld a, $d6
- ld de, 0
- jr .asm_1001d7
-
-.asm_1001c4
- ld a, $d2
- ld de, 2
- jr .asm_1001d7
-
-.asm_1001cb
- ld a, $d1
- ld de, 1
- jr .asm_1001d7
-
-.asm_1001d2
- ld a, $d0
- ld de, 0
-
-.asm_1001d7
- ld [wc300], a
- ld a, d
- ld [wc302], a
- ld a, e
- ld [wc301], a
- call Function10020b
- ret
-
-.asm_1001e6
- ret
-
-.asm_1001e7
- ld de, String10025e
- call Function100232
- ret
-
-.asm_1001ee
- ld de, String10024d
- call Function100232
- ret
-
-.asm_1001f5
- ld a, [wcd2c]
- ld [wc300], a
- ld a, [wcd2d]
- ld [wc302], a
- ld a, [wcd2d]
- ld [wc301], a
- call Function10020b
- ret
-; 10020b
-
-Function10020b: ; 10020b
- xor a
- ld [wc303], a
- callba FadeOutPalettes
- callba Function106464
- call HideSprites
- call DelayFrame
-
- ld a, [rSVBK]
- push af
- ld a, $01
- ld [rSVBK], a
-
- callba DisplayMobileError
-
- pop af
- ld [rSVBK], a
- ret
-; 100232
-
-Function100232: ; 100232
- push de
- callba Function106464
- call Function3f20
- call UpdateSprites
- hlcoord 1, 2
- pop de
- call PlaceString
- call Function100320
- call JoyWaitAorB
- ret
-; 10024d
-
-String10024d: ; 10024d
- db "つうしんを キャンセル しました@"
-; 10025e
-
-String10025e: ; 10025e
- db "おともだちと えらんだ へやが"
- next "ちがうようです@"
-; 100276
-
-Function100276: ; 100276
- ld a, [wcd2b]
- cp $01
- jr z, .asm_10029f
- cp $02
- jr z, .asm_100296
- cp $f5
- jr z, .asm_1002a5
- cp $f6
- jr z, .asm_1002a5
- cp $f7
- jr z, .asm_100293
- cp $f8
- jr z, .asm_1002b1
- jr .asm_1002c0
-
-.asm_100293
- ld c, $02
- ret
-
-.asm_100296
- callba Script_reloadmappart
- ld c, $04
- ret
-
-.asm_10029f
- call Function1002dc
- ld c, 0
- ret
-
-.asm_1002a5
- callba Script_reloadmappart
- call Function1002ed
- ld c, $03
- ret
-
-.asm_1002b1
- call Function1002c9
- call Function1002dc
- ld de, String10024d
- call Function100232
- ld c, $02
- ret
-
-.asm_1002c0
- call Function1002c9
- call Function1002dc
- ld c, $01
- ret
-; 1002c9
-
-Function1002c9: ; 1002c9
- ld hl, wcd2a
- bit 0, [hl]
- ret z
- callba CleanUpBattleRAM
- callba LoadPokemonData
- ret
-; 1002dc
-
-Function1002dc: ; 1002dc
- ld a, MAPSETUP_LINKRETURN
- ld [hMapEntryMethod], a
- callba RunMapSetupScript
- xor a
- ld [hMapEntryMethod], a
- call LoadStandardFont
- ret
-; 1002ed
-
-Function1002ed: ; 1002ed
- callba LoadOW_BGPal7
- callba ApplyPals
- ld a, $01
- ld [hCGBPalUpdate], a
- call DelayFrame
- ret
-; 100301
-
-Function100301: ; 100301
- ld hl, wcd2a
- bit 1, [hl]
- ret z
- callba Function106464
- callba Function10202c
- callba Function115dd3
- call Function100320
- call JoyWaitAorB
- ret
-; 100320
-
-Function100320: ; 100320
- callba Mobile_ReloadMapPart
- ret
-; 100327
-
-Function100327: ; 100327
- callba HDMATransferTileMapToWRAMBank3
- ret
-; 100327
-
-
-Function10032e: ; 10032e
- call Function10034d
- ld e, a
- ret nc
- ld [wcd2b], a
- ret
-; 100337
-
-Function100337: ; 100337
- call Function10032e
- ret c
- ld a, [wc821]
- bit 4, a
- jr z, .asm_100345
- ld a, e
- and a
- ret
-
-.asm_100345
- ld a, $f9
- ld e, a
- ld [wcd2b], a
- scf
- ret
-; 10034d
-
-Function10034d: ; 10034d
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_10036a
- bit 2, a
- jr nz, .asm_10037e
- bit 3, a
- jr nz, .asm_100366
- bit 0, a
- jr nz, .asm_100364
- ld a, $01
- and a
- ret
-
-.asm_100364
- xor a
- ret
-
-.asm_100366
- ld a, $02
- and a
- ret
-
-.asm_10036a
- ld a, 0
- call Function3e32
- ld [wcd2c], a
- ld a, h
- ld [wcd2d], a
- ld a, l
- ld [wcd2e], a
- ld a, $ff
- scf
- ret
-
-.asm_10037e
- ld a, $fe
- scf
- ret
-; 100382
-
-Function100382: ; 100382
- ld a, [wcd27]
- ld hl, Jumptable_10044e
- rst JumpTable
- ret
-; 10038a
-
-Function10038a: ; 10038a
- ld hl, wccb4
- ld a, $2e
- call Function3e32
- ret
-; 100393
-
-Function100393: ; 100393
- ld hl, wcc60
- ld a, $3a
- call Function3e32
- ret
-; 10039c
-
-Function10039c: ; 10039c
- ld hl, wcc60
- ld de, w3_d000
- ld bc, $54
- ld a, $03
- call FarCopyWRAM
- ret
-; 1003ab
-
-Function1003ab: ; 1003ab
- ld hl, w3_d000
- ld de, wcc60
- ld bc, $54
- ld a, $03
- call FarCopyWRAM
- ret
-; 1003ba
-
-Function1003ba: ; 1003ba
- ld hl, wccb4
- ld de, w3_d080
- ld bc, $54
- ld a, $03
- call FarCopyWRAM
- ret
-; 1003c9
-
-Function1003c9: ; 1003c9
- ld hl, w3_d080
- ld de, wccb4
- ld bc, $54
- ld a, $03
- call FarCopyWRAM
- ret
-; 1003d8
-
-Function1003d8: ; 1003d8
- ld hl, wccb4
- ld a, [hli]
- ld c, a
- ld b, 0
- push hl
- add hl, bc
- ld a, [BGMapPalBuffer]
- ld [hl], a
- pop hl
- inc bc
- call Function10043a
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, c
- add $02
- ld [wccb4], a
- ret
-; 1003f5
-
-Function1003f5: ; 1003f5
- ld a, [wcc60]
- sub $03
- ld [wcc60], a
- ld a, [wccb4]
- sub $03
- ld [wccb4], a
- ret
-; 100406
-
-Function100406: ; 100406
- ld a, [wcc60]
- sub $02
- ld c, a
- ld b, 0
- ld hl, wcc61
- call Function10043a
- add hl, bc
- ld a, [hli]
- cp e
- jr nz, .asm_100426
- ld a, [hld]
- cp d
- jr nz, .asm_100426
- dec hl
- ld a, [BGMapPalBuffer]
- cp [hl]
- jr nz, .asm_10042d
- xor a
- ret
-
-.asm_100426
- ld a, $f4
- ld [wcd2b], a
- jr .asm_100432
-
-.asm_10042d
- ld a, $f3
- ld [wcd2b], a
-
-.asm_100432
- push hl
- ld hl, wcd7c
- inc [hl]
- pop hl
- scf
- ret
-; 10043a
-
-Function10043a: ; 10043a
- push hl
- push bc
- ld de, 0
-.asm_10043f
- ld a, [hli]
- add e
- ld e, a
- ld a, d
- adc 0
- ld d, a
- dec bc
- ld a, b
- or c
- jr nz, .asm_10043f
- pop bc
- pop hl
- ret
-; 10044e
-
-
-Jumptable_10044e: ; 10044e (40:444e)
- dw Function10046a
- dw Function10047c
- dw Function100493
- dw Function1004ba
- dw Function1004f4
- dw Function1004ce
- dw Function1004de
- dw Function1004a4
- dw Function100495
- dw Function1004ce
- dw Function1004de
- dw Function1004e9
- dw Function1004f4
- dw Function1004a4
-
-Function10046a: ; 10046a
- ld hl, BGMapPalBuffer
- inc [hl]
- call Function1003d8
- call Function1003ba
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 10047c
-
-Function10047c: ; 10047c
- call Function100337
- ret c
- ret z
- cp $02
- jr z, .asm_100487
- jr .asm_10048d
-
-.asm_100487
- ld a, $08
- ld [wcd27], a
- ret
-
-.asm_10048d
- ld a, $02
- ld [wcd27], a
- ret
-; 100493
-
-Function100493: ; 100493
- jr asm_100497
-
-Function100495: ; 100495
- jr asm_100497
-
-asm_100497
- call Function100337
- ret c
- ret z
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 1004a4
-
-Function1004a4: ; 1004a4
- call Function100406
- jr c, .asm_1004b8
- call Function1003c9
- call Function1003f5
- ld a, [wcd27]
- set 7, a
- ld [wcd27], a
- ret
-
-.asm_1004b8
- scf
- ret
-; 1004ba
-
-Function1004ba: ; 1004ba
- call Function10038a
- and a
- jr nz, .asm_1004c8
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-
-.asm_1004c8
- ld a, $08
- ld [wcd27], a
- ret
-; 1004ce
-
-Function1004ce: ; 1004ce
- call Function100337
- ret c
- ret z
- cp $02
- ret nz
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 1004de
-
-Function1004de: ; 1004de
- call Function100393
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 1004e9
-
-Function1004e9: ; 1004e9
- call Function10038a
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 1004f4
-
-Function1004f4: ; 1004f4
- call Function100337
- ret c
- ret z
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- call Function10039c
- ret
-; 100504
-
-Function100504: ; 100504
- push de
- call Function3f20
- call UpdateSprites
- pop de
- hlcoord 4, 2
- call PlaceString
- ret
-; 100513
-
-Function100513: ; 100513
- call Function3f7c
- call PlaceVerticalMenuItems
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 7, [hl]
- ret
-; 100522
-
-Function100522: ; 100522
- ld a, [wcd28]
- ld hl, Jumptable_10052a
- rst JumpTable
- ret
-; 10052a
-
-Jumptable_10052a: ; 10052a
- dw Function100534
- dw Function100545
- dw Function100545
- dw Function100545
- dw Function10054d
-; 100534
-
-Function100534: ; 100534
- call Function100513
- call UpdateSprites
- call ApplyTilemap
- ld a, [wcd28]
- inc a
- ld [wcd28], a
- ret
-; 100545
-
-Function100545: ; 100545
- ld a, [wcd28]
- inc a
- ld [wcd28], a
- ret
-; 10054d
-
-Function10054d: ; 10054d
- callba MobileMenuJoypad
- ld a, c
- ld hl, wMenuJoypadFilter
- and [hl]
- ret z
- call MenuClickSound
- bit 0, a
- jr nz, .asm_100565
- bit 1, a
- jr nz, .asm_10056f
- ret
-
-.asm_100565
- ld a, [wcd28]
- set 7, a
- ld [wcd28], a
- and a
- ret
-
-.asm_10056f
- ld a, [wcd28]
- set 7, a
- ld [wcd28], a
- scf
- ret
-; 100579
-
-Function100579: ; 100579
- ld a, [wcd26]
- ld hl, Jumptable_100581
- rst JumpTable
- ret
-; 100581
-
-Jumptable_100581: ; 100581
- dw Function100585
- dw Function100597
-; 100585
-
-Function100585: ; 100585
- ld hl, MenuDataHeader_1005b2
- call LoadMenuDataHeader
- ld a, 0
- ld [wcd28], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function100597: ; 100597
- call Function100522
- ld a, [wcd28]
- bit 7, a
- ret z
- jr nc, .asm_1005a6
- xor a
- ld [wMenuCursorY], a
-
-.asm_1005a6
- call ExitMenu
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 1005b2
-
-MenuDataHeader_1005b2: ; 1005b2
- db $40 ; flags
- db 6, 14
- db 10, 19
- dw MenuData2_1005ba
- db 1 ; default option
-
-MenuData2_1005ba:
- db $c0 ; flags
- db 2
- db "はい@"
- db "いいえ@"
-; 1005c3
-
-Function1005c3: ; 1005c3
- ld a, [wcd26]
- ld hl, Jumptable_1005cb
- rst JumpTable
- ret
-; 1005cb
-
-Jumptable_1005cb: ; 1005cb
- dw Function1005cf
- dw Function1005e1
-; 1005cf
-
-Function1005cf: ; 1005cf
- ld hl, MenuDataHeader_1005fc
- call LoadMenuDataHeader
- ld a, 0
- ld [wcd28], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function1005e1: ; 1005e1
- call Function100522
- ld a, [wcd28]
- bit 7, a
- ret z
- jr nc, .asm_1005f0
- xor a
- ld [wMenuCursorY], a
-.asm_1005f0
- call ExitMenu
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 1005fc
-
-MenuDataHeader_1005fc: ; 1005fc
- db $40 ; flags
- db 6, 14
- db 10, 19
- dw MenuData2_100604
- db 1 ; default option
-
-MenuData2_100604: ; 100604
- db $c0 ; flags
- db 2
- db "かける@"
- db "まつ@"
-; 10060d
-
-Mobile_CommunicationStandby: ; 10060d
- hlcoord 3, 10
- ld b, 1
- ld c, 11
- call Function3eea
- ld de, .String
- hlcoord 4, 11
- call PlaceString
- ret
-; 100621
-
-.String: ; 100621
- db "つうしんたいきちゅう!@"
-; 10062d
-
-AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d
- push bc
- call IncrementMobileInactivityTimerByCFrames
- pop bc
- ld a, [wMobileInactivityTimerMinutes]
- cp b
- jr nc, .timed_out
- and a
- ret
-
-.timed_out
- ld a, $fa
- ld [wcd2b], a
- scf
- ret
-; 100641
-
-StartMobileInactivityTimer: ; 100641
- xor a
- ld [wMobileInactivityTimerMinutes], a
- ld [wMobileInactivityTimerSeconds], a
- ld [wMobileInactivityTimerFrames], a
- ret
-; 10064c
-
-IncrementMobileInactivityTimerBy1Frame: ; 10064c
- ld c, 1
-IncrementMobileInactivityTimerByCFrames: ; 10064e
- ld hl, wMobileInactivityTimerFrames ; timer?
- ld a, [hl]
- add c
- cp 60
- jr c, .seconds
- xor a
-
-.seconds
- ld [hld], a
- ret c
- ld a, [hl]
- inc a
- cp 60
- jr c, .minutes
- xor a
-
-.minutes
- ld [hld], a
- ret c
- inc [hl]
- ret
-; 100665
-
-Function100665: ; 100665
- call UpdateTime
- ld hl, wcd36
- ld a, [hHours]
- ld [hli], a
- ld a, [hMinutes]
- ld [hli], a
- ld a, [hSeconds]
- ld [hl], a
- ret
-; 100675
-
-Function100675: ; 100675
- ld hl, wcd2a
- bit 2, [hl]
- set 2, [hl]
- ret nz
- call Function1006d3
- ret
-; 100681
-
-Function100681: ; 100681
- push hl
- ld hl, wcd2a
- bit 2, [hl]
- ld hl, wcd2a
- set 2, [hl]
- pop hl
- jr nz, .asm_100694
- push hl
- call Function1006d3
- pop hl
-.asm_100694
- ld de, wcd32
-
-Function100697: ; 100697
- ld a, [de]
- and a
- jr nz, .asm_1006bb
- inc de
- push de
- call .asm_1006b4
- ld de, String1006c2
- call PlaceString
- ld h, b
- ld l, c
- pop de
- inc de
- call .asm_1006b4
- ld de, String1006c6
- call PlaceString
- ret
-
-.asm_1006b4
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ret
-
-.asm_1006bb
- ld de, String1006ca
- call PlaceString
- ret
-; 1006c2
-
-String1006c2: ; 1006c2
- db "ふん @"
-String1006c6: ; 1006c6
- db "びょう@"
-String1006ca: ; 1006ca
- db "1じかんいじょう@"
-; 1006d3
-
-Function1006d3: ; 1006d3
- call UpdateTime
- ld de, wcd34
- ld hl, wcd38
-
-Function1006dc: ; 1006dc
- ld a, [hld]
- ld c, a
- ld a, [hSeconds]
- sub c
- jr nc, .asm_1006e5
- add $3c
-
-.asm_1006e5
- ld [de], a
- dec de
- ld a, [hld]
- ld c, a
- ld a, [hMinutes]
- sbc c
- jr nc, .asm_1006f0
- add $3c
-
-.asm_1006f0
- ld [de], a
- dec de
- ld a, [hl]
- ld c, a
- ld a, [hHours]
- sbc c
- jr nc, .asm_1006fb
- add $18
-
-.asm_1006fb
- ld [de], a
- ret
-; 1006fd
-
-Function1006fd: ; 1006fd
- ld a, $04
- ld hl, $a800
- call GetSRAMBank
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- call CloseSRAM
- ret
-; 10070d
-
-Function10070d: ; 10070d
- ld a, $04
- ld hl, $a800
- call GetSRAMBank
- xor a
- ld [hli], a
- ld a, $0a
- ld [hli], a
- xor a
- ld [hli], a
- call CloseSRAM
- ret
-; 100720
-
-Function100720: ; 100720
- xor a
- ld [wcd6a], a
- call UpdateTime
- ld a, [hHours]
- ld [wcd72], a
- ld a, [hMinutes]
- ld [wcd73], a
- ld a, [hSeconds]
- ld [wcd74], a
- ld a, $04
- ld hl, $a800
- call GetSRAMBank
- ld a, [hli]
- ld [wcd6c], a
- ld a, [hli]
- ld [wcd6d], a
- ld a, [hli]
- ld [wcd6e], a
- call CloseSRAM
- ld a, [wcd6d]
- ld [wcd6b], a
- ret
-; 100754
-
-Function100754: ; 100754
- call UpdateTime
- ld a, [hHours]
- ld [wcd72], a
- ld a, [hMinutes]
- ld [wcd73], a
- ld a, [hSeconds]
- ld [wcd74], a
- ld a, [wcd6d]
- ld [wcd6b], a
- ld hl, wcd2a
- res 6, [hl]
- ret
-; 100772
-
-Function100772: ; 100772
- push de
- ld hl, wcd6c
- ld a, [de]
- cp [hl]
- jr c, .asm_10079a
- jr nz, .asm_10078c
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- jr c, .asm_10079a
- jr nz, .asm_10078c
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- jr c, .asm_10079a
- jr z, .asm_10079a
-
-.asm_10078c
- pop hl
- ld a, [hli]
- ld [wcd6c], a
- ld a, [hli]
- ld [wcd6d], a
- ld a, [hli]
- ld [wcd6e], a
- ret
-
-.asm_10079a
- pop de
- ret
-; 10079c
-
-
-Function10079c: ; 10079c
- ld a, [wcd21]
- cp $01
- jr nz, .dont_quit
- ld hl, wcd2a
- bit 5, [hl]
- jr nz, .dont_quit
- ld hl, wcd2a
- bit 6, [hl]
- jr nz, .dont_quit
- ld a, [wcd6a]
- add c
- cp 60
- jr nc, .overflow
- ld [wcd6a], a
- and a
- ret
-
-.overflow
- sub 60
- ld [wcd6a], a
- ld d, b
- push de
- call Function1007f6
- pop de
- jr c, .quit
- ld a, c
- and a
- jr nz, .quit
- ld a, b
- cp 10
- jr nc, .quit
- ld a, d
- and a
- ret z
- ld a, [wcd6b]
- cp b
- ret z
- ld a, b
- ld [wcd6b], a
- call Function1008e0
- and a
- ret
-
-.quit
- call Function1008e0
- ld hl, wcd2a
- set 4, [hl]
- ld a, $fc
- ld [wcd2b], a
- scf
- ret
-
-.dont_quit
- and a
- ret
-; 1007f6
-
-Function1007f6: ; 1007f6
- call UpdateTime
- ld hl, wcd74
- ld de, wcd71
- call Function1006dc
- ld a, $04
- call GetSRAMBank
- ld hl, $a802
- call Function100826
- call CloseSRAM
- ld hl, wcd6e
- call Function100826
- ld a, [hHours]
- ld [wcd72], a
- ld a, [hMinutes]
- ld [wcd73], a
- ld a, [hSeconds]
- ld [wcd74], a
- ret
-; 100826
-
-Function100826: ; 100826
- ld a, [wcd71]
- add [hl]
- sub $3c
- jr nc, .asm_100830
- add $3c
-
-.asm_100830
- ld [hld], a
- ccf
- ld a, [BGMapBufferPtrs]
- adc [hl]
- sub $3c
- jr nc, .asm_10083c
- add $3c
-
-.asm_10083c
- ld [hld], a
- ld b, a
- ccf
- ld a, [wcd6f]
- adc [hl]
- ld [hl], a
- ld c, a
- ret
-; 100846
-
-Function100846: ; 100846
- ld hl, wcd2a
- bit 5, [hl]
- jr nz, .asm_10087c
- ld a, [wcd6e]
- ld c, a
- ld a, 0
- sub c
- jr nc, .asm_100858
- add $3c
-
-.asm_100858
- ld [StringBuffer2 + 2], a
- ld a, [wcd6d]
- ld c, a
- ld a, $0a
- sbc c
- ld [StringBuffer2 + 1], a
- xor a
- ld [StringBuffer2], a
- ld de, String_10088e
- hlcoord 1, 14
- call PlaceString
- ld de, StringBuffer2
- hlcoord 4, 16
- call Function100697
- ret
-
-.asm_10087c
- ld de, String_10088e
- hlcoord 1, 14
- call PlaceString
- ld h, b
- ld l, c
- ld de, String_10089f
- call PlaceString
- ret
-; 10088e
-
-String_10088e: ; 10088e
- db "モバイルたいせん できる"
- next "じかん@"
-; 10089f
-
-String_10089f: ; 10089f
- db " むせいげん@"
-; 1008a6
-
-Function1008a6: ; 1008a6
- ld a, $04
- ld hl, $a800
- call GetSRAMBank
- ld a, [hli]
- ld [StringBuffer2], a
- ld a, [hli]
- ld [StringBuffer2 + 1], a
- ld a, [hli]
- ld [StringBuffer2 + 2], a
- call CloseSRAM
- ld a, [StringBuffer2 + 2]
- ld b, a
- ld a, 0
- sub b
- jr nc, .asm_1008c8
- add $3c
-
-.asm_1008c8
- ld b, a
- ld a, [StringBuffer2 + 1]
- ld c, a
- ld a, $0a
- sbc c
- ld c, a
- jr c, .asm_1008da
- ld a, [StringBuffer2]
- and a
- jr nz, .asm_1008da
- ret
-
-.asm_1008da
- call Function10070d
- ld c, 0
- ret
-; 1008e0
-
-
-Function1008e0: ; 1008e0
- ld a, [hBGMapMode]
- ld b, a
- ld a, [hVBlank]
- ld c, a
- push bc
- xor a
- ld [hBGMapMode], a
- ld a, $03
- ld [hVBlank], a
- call Function100970
- call Function100902
- call Function100989
- call DelayFrame
- pop bc
- ld a, c
- ld [hVBlank], a
- ld a, b
- ld [hBGMapMode], a
- ret
-; 100902
-
-Function100902: ; 100902
- hlcoord 3, 10
- ld b, $01
- ld c, $0b
- call TextBox
- ld a, [wcd6d]
- ld c, a
- ld a, $0a
- sub c
- ld [StringBuffer2], a
- jr z, .asm_10093f
- ld de, .string_100966
- hlcoord 4, 11
- call PlaceString
- hlcoord 8, 11
- lb bc, 1, 2
- ld de, StringBuffer2
- call PrintNum
- ld de, SFX_TWO_PC_BEEPS
- call PlaySFX
- callba ReloadMapPart
- ld c, $3c
- call DelayFrames
- ret
-
-.asm_10093f
- ld de, .string_10095a
- hlcoord 4, 11
- call PlaceString
- ld de, SFX_4_NOTE_DITTY
- call PlaySFX
- callba ReloadMapPart
- ld c, 120
- call DelayFrames
- ret
-; 10095a
-
-.string_10095a ; 10095a
- db "たいせん しゅうりょう@"
-.string_100966 ; 100966
- db "のこり ふん", $e7, "@"
-; 100970
-
-
-Function100970: ; 100970
- hlcoord 0, 0
- ld de, w3_dc00
- call Function1009a5
- hlcoord 0, 0, AttrMap
- ld de, w3_dd68
- call Function1009a5
- call Function1009d2
- call Function1009ae
- ret
-; 100989
-
-Function100989: ; 100989
- ld hl, w3_dc00
- decoord 0, 0
- call Function1009a5
- call Function1009ae
- callba ReloadMapPart
- ld hl, w3_dd68
- decoord 0, 0, AttrMap
- call Function1009a5
- ret
-; 1009a5
-
-Function1009a5: ; 1009a5
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $03
- call FarCopyWRAM
- ret
-; 1009ae
-
-Function1009ae: ; 1009ae
- ld a, [rSVBK]
- push af
- ld a, $03
- ld [rSVBK], a
-
- ld hl, w3_d800
- decoord 0, 0, AttrMap
- ld c, SCREEN_WIDTH
- ld b, SCREEN_HEIGHT
-.loop_row
- push bc
-.loop_col
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop_col
- ld bc, BG_MAP_WIDTH - SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop_row
-
- pop af
- ld [rSVBK], a
- ret
-; 1009d2
-
-Function1009d2: ; 1009d2
- ld a, [rSVBK]
- push af
- ld a, $03
- ld [rSVBK], a
-
- ld a, [rVBK]
- push af
- ld a, $01
- ld [rVBK], a
-
- ld hl, w3_d800
- debgcoord 0, 0
- lb bc, $03, $24
- call Get2bpp
-
- pop af
- ld [rVBK], a
-
- pop af
- ld [rSVBK], a
- ret
-; 1009f3
-
-Function1009f3: ; 1009f3
- ld a, [hJoyDown]
- and SELECT + A_BUTTON
- cp SELECT + A_BUTTON
- jr nz, .select_a
- ld hl, wcd2a
- set 4, [hl]
- ld a, $f8
- ld [wcd2b], a
- scf
- ret
-
-.select_a
- xor a
- ret
-; 100a09
-
-_LinkBattleSendReceiveAction: ; 100a09
- call .StageForSend
- ld [wd431], a
- callba PlaceWaitingText
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jr nz, .not_mobile
-
- call .MobileBattle_SendReceiveAction
- call Function100da5
- callba FinishBattleAnim
- jr .done
-
-.not_mobile
- call .LinkBattle_SendReceiveAction
-
-.done
- ret
-; 100a2e
-
-.StageForSend: ; 100a2e
- ld a, [wPlayerAction]
- and a
- jr nz, .switch
- ld a, [CurPlayerMove]
- ld b, BATTLEACTION_E
- cp STRUGGLE
- jr z, .struggle
- ld b, BATTLEACTION_D
- cp $ff
- jr z, .struggle
- ld a, [CurMoveNum]
- jr .use_move
-
-.switch
- ld a, [CurPartyMon]
- add BATTLEACTION_SWITCH1
- jr .use_move
-
-.struggle
- ld a, b
-
-.use_move
- and $0f
- ret
-; 100a53
-
-.LinkBattle_SendReceiveAction: ; 100a53
- ld a, [wd431]
- ld [wPlayerLinkAction], a
- ld a, $ff
- ld [wOtherPlayerLinkAction], a
-.waiting
- call LinkTransfer
- call DelayFrame
- ld a, [wOtherPlayerLinkAction]
- inc a
- jr z, .waiting
-
- ld b, 10
-.receive
- call DelayFrame
- call LinkTransfer
- dec b
- jr nz, .receive
-
- ld b, 10
-.acknowledge
- call DelayFrame
- call LinkDataReceived
- dec b
- jr nz, .acknowledge
-
- ld a, [wOtherPlayerLinkAction]
- ld [wBattleAction], a
- ret
-; 100a87
-
-.MobileBattle_SendReceiveAction: ; 100a87
- call Function100acf
- call StartMobileInactivityTimer
- ld a, 0
- ld [wcd27], a
-.asm_100a92
- call DelayFrame
- call GetJoypad
- callba Function100382
- ld c, $01
- ld b, $03
- push bc
- call AdvanceMobileInactivityTimerAndCheckExpired
- pop bc
- jr c, .asm_100ac7
- ld b, $01
- call Function10079c
- jr c, .asm_100ac7
- call Function1009f3
- jr c, .asm_100ac7
- ld a, [wcd2b]
- and a
- jr nz, .asm_100ac7
- ld a, [wcd27]
- bit 7, a
- jr z, .asm_100a92
- call Function100ae7
- jr .asm_100ace
-
-.asm_100ac7
- ld a, $0f
- ld [wd430], a
- jr .asm_100ace
-
-.asm_100ace
- ret
-; 100acf
-
-Function100acf: ; 100acf
- ld de, Unknown_100b0a
- ld hl, wccb5
- ld a, [wd431]
- ld [hli], a
- ld c, $01
-.asm_100adb
- ld a, [de]
- inc de
- ld [hli], a
- inc c
- and a
- jr nz, .asm_100adb
- ld a, c
- ld [wccb4], a
- ret
-; 100ae7
-
-Function100ae7: ; 100ae7
- ld de, Unknown_100b0a
- ld hl, wcc62
-.asm_100aed
- ld a, [de]
- inc de
- and a
- jr z, .asm_100af8
- cp [hl]
- jr nz, .asm_100aff
- inc hl
- jr .asm_100aed
-
-.asm_100af8
- ld a, [wcc61]
- ld [wd430], a
- ret
-
-.asm_100aff
- ld a, $0f
- ld [wd430], a
- ld a, $f1
- ld [wcd2b], a
- ret
-; 100b0a
-
-
-SECTION "tetsuji", ROMX
-
- charmap " ", $20 ; revert to ascii
-
-Unknown_100b0a: ; 100b0a
- db "tetsuji", 0
-; 100b12
-
-
-SECTION "bank40_2", ROMX
-
-Function100b12: ; 100b12
- call Function100dd8
- ret c
- ld hl, BattleMenuDataHeader
- ld a, BANK(BattleMenuDataHeader)
- ld de, LoadMenuDataHeader
- call FarCall_de
- ld a, BANK(BattleMenuDataHeader)
- ld [wMenuData2_2DMenuItemStringsBank], a
- ld a, [wBattleMenuCursorBuffer]
- ld [wMenuCursorBuffer], a
- call Function100e72
- call Function100b45
- callba InitPartyMenuBGPal7
- call Function100ed4
- ld a, [wMenuCursorBuffer]
- ld [wBattleMenuCursorBuffer], a
- call ExitMenu
- ret
-; 100b45
-
-Function100b45: ; 100b45
- call Function100b7a
-.loop
- call Mobile_SetOverworldDelay
- callba MobileMenuJoypad
- push bc
- callba HDMATransferTileMapToWRAMBank3
- call Function100e2d
- pop bc
- jr c, .asm_100b6b
- ld a, [wMenuJoypadFilter]
- and c
- jr z, .loop
- callba Mobile_GetMenuSelection
- ret
-
-.asm_100b6b
- ld a, [w2DMenuNumCols]
- ld c, a
- ld a, [w2DMenuNumRows]
- call SimpleMultiply
- ld [wMenuCursorBuffer], a
- and a
- ret
-; 100b7a
-
-Function100b7a: ; 100b7a
- ld hl, CopyMenuData2
- ld a, [wMenuData2_2DMenuItemStringsBank]
- rst FarCall
- callba Draw2DMenu
- callba MobileTextBorder
- call UpdateSprites
- call ApplyTilemap
- callba Init2DMenuCursorPosition
- ld hl, w2DMenuFlags1
- set 7, [hl]
- ret
-; 100b9f
-
-MobileMoveSelectionScreen: ; 100b9f
- xor a
- ld [wMoveSwapBuffer], a
- callba CheckPlayerHasUsableMoves
- ret z
- call Function100dd8
- jp c, xor_a_dec_a
- call Function100e72
- call .GetMoveSelection
- push af
- callba InitPartyMenuBGPal7
- call Function100ed4
- pop af
- ret
-; 100bc2
-
-.GetMoveSelection: ; 100bc2
- xor a
- ld [hBGMapMode], a
- call Function100c74
- call Function100c98
-.master_loop
- callba MoveInfoBox
-.loop
- call Mobile_SetOverworldDelay
- callba MobileMenuJoypad
- push bc
- callba HDMATransferTileMapToWRAMBank3
- call Function100e2d
- pop bc
- jr c, .b_button
- ld a, [wMenuJoypadFilter]
- and c
- bit D_UP_F, a
- jp nz, .d_up
- bit D_DOWN_F, a
- jp nz, .d_down
- bit A_BUTTON_F, a
- jr nz, .a_button
- bit B_BUTTON_F, a
- jr nz, .b_button
- jr .loop
-
-.d_up
- ld a, [wMenuCursorY]
- and a
- jp nz, .master_loop
- ld a, [wNumMoves]
- inc a
- ld [wMenuCursorY], a
- jp .master_loop
-
-.d_down
- ld a, [wMenuCursorY]
- ld b, a
- ld a, [wNumMoves]
- inc a
- inc a
- cp b
- jp nz, .master_loop
- ld a, $01
- ld [wMenuCursorY], a
- jp .master_loop
-
-.b_button
- ld a, [wMenuCursorY]
- dec a
- ld [CurMoveNum], a
- ld a, $01
- and a
- ret
-
-.a_button
- ld a, [wMenuCursorY]
- dec a
- ld [CurMoveNum], a
- ld a, [wMenuCursorY]
- dec a
- ld c, a
- ld b, 0
- ld hl, BattleMonPP
- add hl, bc
- ld a, [hl]
- and $3f
- jr z, .no_pp_left
- ld a, [PlayerDisableCount]
- swap a
- and $0f
- dec a
- cp c
- jr z, .move_disabled
- ld a, [wMenuCursorY]
- dec a
- ld c, a
- ld b, 0
- ld hl, BattleMonMoves
- add hl, bc
- ld a, [hl]
- ld [CurPlayerMove], a
- xor a
- ret
-
-.move_disabled
- ld hl, BattleText_TheMoveIsDisabled
- jr .print_text
-
-.no_pp_left
- ld hl, BattleText_TheresNoPPLeftForThisMove
-
-.print_text
- call StdBattleTextBox
- call Call_LoadTempTileMapToTileMap
- jp .GetMoveSelection
-; 100c74
-
-Function100c74: ; 100c74
- hlcoord 0, 8
- ld b, 8
- ld c, 8
- call TextBox
- ld hl, BattleMonMoves
- ld de, wListMoves_MoveIndicesBuffer
- ld bc, NUM_MOVES
- call CopyBytes
- ld a, SCREEN_WIDTH * 2
- ld [Buffer1], a
- hlcoord 2, 10
- predef ListMoves
- ret
-; 100c98
-
-Function100c98: ; 100c98
- ld de, .attrs
- call SetMenuAttributes
- ld a, [wNumMoves]
- inc a
- ld [w2DMenuNumRows], a
- ld a, [CurMoveNum]
- inc a
- ld [wMenuCursorY], a
- ret
-; 100cad
-
-.attrs ; 100cad
- db 10, 1
- db 255, 1
- db $a0, $00
- dn 2, 0
- db D_UP | D_DOWN | A_BUTTON | B_BUTTON
-
-Mobile_PartyMenuSelect: ; 100cb5
- call Function100dd8
- ret c
- ld hl, w2DMenuFlags1
- set 7, [hl]
- res 6, [hl]
-.loop
- call Mobile_SetOverworldDelay
- callba MobileMenuJoypad
- push bc
- callba PlaySpriteAnimations
- callba HDMATransferTileMapToWRAMBank3
- call MobileComms_CheckInactivityTimer
- pop bc
- jr c, .done
- ld a, [wMenuJoypadFilter]
- and c
- jr z, .loop
- call PlaceHollowCursor
- ld a, [PartyCount]
- inc a
- ld b, a
- ld a, [wMenuCursorY]
- cp b
- jr z, .done
- ld [wPartyMenuCursor], a
- ld a, [hJoyLast]
- ld b, a
- bit 1, b
- jr nz, .done
- ld a, [wMenuCursorY]
- dec a
- ld [CurPartyMon], a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- ld [CurPartySpecies], a
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- and a
- ret
-
-.done
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- scf
- ret
-; 100d22
-
-MobileBattleMonMenu: ; 100d22
- call Function100dd8
- ret c
- call Function100d67
- ld hl, w2DMenuFlags1
- set 7, [hl]
- res 6, [hl]
-.asm_100d30
- call Mobile_SetOverworldDelay
- callba MobileMenuJoypad
- push bc
- callba PlaySpriteAnimations
- callba HDMATransferTileMapToWRAMBank3
- call MobileComms_CheckInactivityTimer
- pop bc
- jr c, .asm_100d54
- ld a, [wMenuJoypadFilter]
- and c
- jr nz, .asm_100d56
- jr .asm_100d30
-
-.asm_100d54
- scf
- ret
-
-.asm_100d56
- push af
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- pop af
- bit 1, a
- jr z, .asm_100d65
- ret z
- scf
- ret
-
-.asm_100d65
- and a
- ret
-; 100d67
-
-Function100d67: ; 100d67
- ld hl, .MenuDataHeader
- call CopyMenuDataHeader
- xor a
- ld [hBGMapMode], a
- call MenuBox
- call UpdateSprites
- call PlaceVerticalMenuItems
- call WaitBGMap
- call CopyMenuData2
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 6, [hl]
- ret
-; 100d88
-
-.MenuDataHeader: ; 100d88
- db 0 ; flags
- db 11, 11 ; start coords
- db 17, 19 ; end coords
- dw .MenuData2
- db 1 ; default option
-
-.MenuData2: ; 100d90
- db $c0 ; flags
- db 3
- db "いれかえる@" ; TRADE
- db "つよさをみる@" ; STATS
- db "キャンセル@" ; CANCEL
-; 100da5
-
-Function100da5: ; 100da5
- ld hl, wcd2a
- res 3, [hl]
- ld hl, wcd29
- res 0, [hl]
- ret
-; 100db0
-
-Function100db0: ; 100db0
- ld hl, wcd2a
- bit 3, [hl]
- jr nz, .asm_100dbe
- ld hl, wcd2a
- set 3, [hl]
- scf
- ret
-
-.asm_100dbe
- xor a
- ret
-; 100dc0
-
-
-
-Function100dc0: ; 100dc0
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jr nz, .mobile
- ld hl, wcd2a
- bit 3, [hl]
- jr z, .mobile
- scf
- ret
-
-.mobile
- xor a
- ret
-; 100dd2
-
-Mobile_SetOverworldDelay: ; 100dd2
- ld a, 30
- ld [OverworldDelay], a
- ret
-; 100dd8
-
-Function100dd8: ; 100dd8
- ld c, $01
- ld b, $03
- callba AdvanceMobileInactivityTimerAndCheckExpired
- jr c, .asm_100dfb
- ld c, $3c
- ld b, $01
- call Function10079c
- jr c, .asm_100dfb
- callba Function10032e
- ld a, [wcd2b]
- and a
- jr nz, .asm_100dfb
- xor a
- ret
-
-.asm_100dfb
- scf
- ret
-; 100dfd
-
-MobileComms_CheckInactivityTimer: ; 100dfd
- ld a, [OverworldDelay]
- ld c, a
- ld a, 30
- sub c
- ld c, a
- ld b, 3
- push bc
- callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall
- pop bc
- jr c, .quit
- ld b, 1
- call Function10079c
- jr c, .quit
- call Function1009f3
- jr c, .quit
- callba Function10032e ; useless to farcall
- ld a, [wcd2b]
- and a
- jr nz, .quit
- xor a
- ret
-
-.quit
- scf
- ret
-; 100e2d
-
-Function100e2d: ; 100e2d
- ld a, [OverworldDelay]
- ld c, a
- ld a, 30
- sub c
- ld c, a
- ld b, 3
- push bc
- callba AdvanceMobileInactivityTimerAndCheckExpired
- pop bc
- jr c, .asm_100e61
- ld b, 1
- call Function10079c
- jr c, .asm_100e61
- call Function1009f3
- jr c, .asm_100e61
- callba Function10032e
- ld a, [wcd2b]
- and a
- jr nz, .asm_100e61
- call Function100e63
- call Function100e84
- xor a
- ret
-
-.asm_100e61
- scf
- ret
-; 100e63
-
-Function100e63: ; 100e63
- ld a, e
- cp $02
- ret nz
- call Function100db0
- ret nc
- ld de, SFX_ELEVATOR_END
- call PlaySFX
- ret
-; 100e72
-
-Function100e72: ; 100e72
- xor a
- ld hl, wcd29
- bit 0, [hl]
- jr z, .asm_100e7c
- ld a, $0a
-
-.asm_100e7c
- ld [wcd67], a
- xor a
- ld [wcd68], a
- ret
-; 100e84
-
-Function100e84: ; 100e84
- ld a, [wcd67]
- ld hl, Jumptable_100e8c
- rst JumpTable
- ret
-; 100e8c
-
-
-Jumptable_100e8c: ; 100e8c (40:4e8c)
- dw Function100ea2
- dw Function100eae
- dw Function100eb4
- dw Function100eae
- dw Function100eb4
- dw Function100eae
- dw Function100eb4
- dw Function100eae
- dw Function100eb4
- dw Function100eae
- dw Function100ec4
-
-
-Function100ea2: ; 100ea2 (40:4ea2)
- call Function100dc0
- ret nc
- ld hl, wcd29
- set 0, [hl]
- call Function100ec5
-
-
-Function100eae: ; 100eae
- scf
- call Function100eca
- jr asm_100eb8
-
-Function100eb4: ; 100eb4
- and a
- call Function100eca
-
-asm_100eb8
- ld hl, wcd68
- inc [hl]
- ld a, [hl]
- cp $02
- ret c
- ld [hl], 0
- jr Function100ec5
-
-Function100ec4: ; 100ec4
- ret
-
-Function100ec5
- ld hl, wcd67
- inc [hl]
- ret
-; 100eca
-
-Function100eca: ; 100eca
- callba Mobile_InitPartyMenuBGPal7
- call Function100ed4
- ret
-; 100ed4
-
-Function100ed4: ; 100ed4
- callba ApplyPals
- ld a, $01
- ld [hCGBPalUpdate], a
- ret
-; 100edf
-
-Function100edf: ; 100edf
- ld hl, Unknown_100fc0
- ld c, 1
- jr asm_100f02
-
-Function100ee6: ; 100ee6
- ld hl, Unknown_100fc0
- ld c, 2
- jr asm_100f02
-
-Function100eed: ; 100eed
- ld hl, Unknown_100feb
- ld c, 1
- jr asm_100f02
-
-Function100ef4: ; 100ef4
- ld hl, Unknown_100ff3
- ld c, 1
- jr asm_100f02
-
-Function100efb: ; 100efb
- ld hl, Unknown_10102c
- ld c, 1
- jr asm_100f02
-
-asm_100f02:
- ld a, c
- ld [StringBuffer2], a
- ; someting that was previously stored in de gets backed up to here
- ld a, e
- ld [StringBuffer2 + 1], a
- ld a, d
- ld [StringBuffer2 + 2], a
- ; empty this
- xor a
- ld [StringBuffer2 + 4], a
- ld [StringBuffer2 + 5], a
-.loop
- ld a, [hl]
- cp $ff
- jr z, .done
- ld [StringBuffer2 + 3], a ; bank
- push hl
- inc hl
- ; addr 1
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ; size
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ; addr 2
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Function100f3d
- ; next line
- pop hl
- ld de, 7
- add hl, de
- jr .loop
-
-.done
- ; recover the values into bc
- ld a, [StringBuffer2 + 4]
- ld c, a
- ld a, [StringBuffer2 + 5]
- ld b, a
- ret
-; 100f3d
-
-Function100f3d: ; 100f3d
- ; parameter
- ld a, [StringBuffer2]
- cp $02
- jr z, .two
- cp $01
- jr z, .one
- cp $03
- jr z, .three
- ret
-
-.three
- ; what was once in de gets copied to hl,
- ; modified by Function100f8d, and put back
- ; into this backup
- ld a, [StringBuffer2 + 1]
- ld l, a
- ld a, [StringBuffer2 + 2]
- ld h, a
- call Function100f8d
- ld a, l
- ld [StringBuffer2 + 1], a
- ld a, h
- ld [StringBuffer2 + 2], a
- ret
-
-.two
- ; hl gets backed up to de, then
- ; do the same as in .three
- ld d, h
- ld e, l
- ld a, [StringBuffer2 + 1]
- ld l, a
- ld a, [StringBuffer2 + 2]
- ld h, a
- call Function100f8d
- ld a, l
- ld [StringBuffer2 + 1], a
- ld a, h
- ld [StringBuffer2 + 2], a
- ret
-
-.one
- ; de gets copied to hl, then
- ; load the backup into de,
- ; finally run Function100f8d
- ; and store the de result
- ld h, d
- ld l, e
- ld a, [StringBuffer2 + 1]
- ld e, a
- ld a, [StringBuffer2 + 2]
- ld d, a
- call Function100f8d
- ld a, e
- ld [StringBuffer2 + 1], a
- ld a, d
- ld [StringBuffer2 + 2], a
- ret
-; 100f8d
-
-Function100f8d: ; 100f8d
- push hl
- ld a, [StringBuffer2 + 4]
- ld l, a
- ld a, [StringBuffer2 + 5]
- ld h, a
- add hl, bc
- ld a, l
- ld [StringBuffer2 + 4], a
- ld a, h
- ld [StringBuffer2 + 5], a
- pop hl
- ld a, [StringBuffer2 + 3]
- bit 7, a
- res 7, a
- jr z, .sram
- and a
- jr nz, .far_wram
- call CopyBytes
- ret
-
-.far_wram
- and $7f
- call FarCopyWRAM
- ret
-
-.sram
- call GetSRAMBank
- call CopyBytes
- call CloseSRAM
- ret
-; 100fc0
-
-Unknown_100fc0: ; 100fc0
- ; first byte:
- ; Bit 7 set: Not SRAM
- ; Lower 7 bits: Bank
- ; Address, size (dw), address
- dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName
- dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount
- dbwww $80, PlayerID, 2, OTPlayerID
- dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons
- dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT
- dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames
- db -1
-
-Unknown_100feb: ; 100feb
- dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
- db -1
-
-Unknown_100ff3: ; 100ff3
- dbwww $80, wdc41, 1, NULL
- dbwww $80, PlayerName, NAME_LENGTH, NULL
- dbwww $80, PlayerName, NAME_LENGTH, NULL
- dbwww $80, PlayerID, 2, NULL
- dbwww $80, wSecretID, 2, NULL
- dbwww $80, PlayerGender, 1, NULL
- dbwww $04, $a603, 8, NULL
- dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL
- db -1
-
-Unknown_10102c: ; 10102c
- dbwww $80, OTPlayerName, NAME_LENGTH, NULL
- dbwww $80, OTPlayerID, 2, NULL
- dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL
- dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL
- dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
- db -1
-; 10104f
-
-Function101050: ; 101050
- call Function10107d
- ld a, [OTPartyCount]
-rept 2 ; ???
- ld hl, wc608
-endr
- ld bc, wc7bb - wc608
- call Function1010de
- ld hl, wc7bb
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, $07
- call GetSRAMBank
- ld hl, wc608
- ld de, $a001
- ld bc, wc7bd - wc608
- call CopyBytes
- call CloseSRAM
- ret
-; 10107d
-
-Function10107d: ; 10107d
- xor a
- ld hl, wc608
- ld bc, wc7bd - wc608
- call ByteFill
- ld hl, OTPlayerName
- ld de, wc608
- ld bc, NAME_LENGTH
- call CopyBytes
- ld hl, wd271
- ld a, [hli]
- ld [wc608 + 11], a
- ld a, [hl]
- ld [wc608 + 12], a
- ld hl, OTPartyMonNicknames
- ld de, wc608 + 13
- ld bc, NAME_LENGTH
- call .CopyAllFromOT
- ld hl, OTPartyMonOT
- ld de, OTClassName + 1
- ld bc, NAME_LENGTH
- call .CopyAllFromOT
- ld hl, OTPartyMon1Species
- ld de, $c699
- ld bc, PARTYMON_STRUCT_LENGTH
- call .CopyAllFromOT
- ld a, $50
- ld [wc7b9], a
- ld a, $33
- ld [wc7ba], a
- ret
-; 1010cd
-
-.CopyAllFromOT: ; 1010cd
- push hl
- ld hl, 0
- ld a, [OTPartyCount]
- call AddNTimes
- ld b, h
- ld c, l
- pop hl
- call CopyBytes
- ret
-; 1010de
-
-Function1010de: ; 1010de
- push hl
- push bc
- ld de, 0
-.loop
- ld a, [hli]
- add e
- ld e, a
- ld a, d
- adc 0
- ld d, a
- dec bc
- ld a, b
- or c
- jr nz, .loop
- pop bc
- pop hl
- ret
-; 1010f2
-
-LoadSelectedPartiesForColosseum: ; 1010f2
- xor a
- ld hl, StringBuffer2
- ld bc, 9
- call ByteFill
- ld hl, wPlayerMonSelection
- ld de, PartyCount
- call .CopyThreeSpecies
- ld hl, wPlayerMonSelection
- ld de, PartyMon1Species
- call .CopyPartyStruct
- ld hl, wPlayerMonSelection
- ld de, PartyMonOT
- call .CopyName
- ld hl, wPlayerMonSelection
- ld de, PartyMonNicknames
- call .CopyName
- ld hl, wOTMonSelection
- ld de, OTPartyCount
- call .CopyThreeSpecies
- ld hl, wOTMonSelection
- ld de, OTPartyMon1Species
- call .CopyPartyStruct
- ld hl, wOTMonSelection
- ld de, OTPartyMonOT
- call .CopyName
- ld hl, wOTMonSelection
- ld de, OTPartyMonNicknames
- call .CopyName
- ret
-; 101145
-
-.CopyThreeSpecies: ; 101145
-; Load the 3 choices to the buffer
- push de
- ld bc, StringBuffer2 + 6
- xor a
-.party_loop
- push af
- call .GetNthSpecies
- ld [bc], a
- inc bc
- pop af
- inc a
- cp 3
- jr nz, .party_loop
- pop de
-; Copy the 3 choices to the party
- ld a, 3
- ld [de], a
- inc de
- ld hl, StringBuffer2 + 6
- ld bc, 3
- call CopyBytes
- ld a, $ff
- ld [de], a
- ret
-; 101168
-
-.GetNthSpecies: ; 101168
-; Preserves hl and de
-; Get the index of the Nth selection
- push hl
- add l
- ld l, a
- ld a, h
- adc 0
- ld h, a
- ld a, [hl]
- pop hl
-; Get the corresponding species
- push de
- inc de
- add e
- ld e, a
- ld a, d
- adc 0
- ld d, a
- ld a, [de]
- pop de
- ret
-; 10117c
-
-.CopyPartyStruct: ; 10117c
- ld bc, PARTYMON_STRUCT_LENGTH
- jr .ContinueCopy
-
-.CopyName: ; 101181
- ld bc, NAME_LENGTH
-
-.ContinueCopy:
- ; Copy, via wc608...
- ld a, wc608 % $100
- ld [StringBuffer2], a
- ld a, wc608 / $100
- ld [StringBuffer2 + 1], a
- ; ... bc bytes...
- ld a, c
- ld [StringBuffer2 + 2], a
- ld a, b
- ld [StringBuffer2 + 3], a
- ; ... to de...
- ld a, e
- ld [StringBuffer2 + 4], a
- ld a, d
- ld [StringBuffer2 + 5], a
- ; ... 3 times.
- ld a, 3
-.big_copy_loop
- push af
- ld a, [hli]
- push hl
- push af
- call .GetDestinationAddress
- call .GetCopySize
- pop af
- call AddNTimes
- ld a, [StringBuffer2]
- ld e, a
- ld a, [StringBuffer2 + 1]
- ld d, a
- call CopyBytes
- ld a, e
- ld [StringBuffer2], a
- ld a, d
- ld [StringBuffer2 + 1], a
- pop hl
- pop af
- dec a
- jr nz, .big_copy_loop
- call .GetCopySize
- ld a, 3
- ld hl, 0
- call AddNTimes
- ld b, h
- ld c, l
- call .GetDestinationAddress
- ld d, h
- ld e, l
- ld hl, wc608
- call CopyBytes
- ret
-; 1011df
-
-.GetDestinationAddress: ; 1011df
- ld a, [StringBuffer2 + 4]
- ld l, a
- ld a, [StringBuffer2 + 5]
- ld h, a
- ret
-; 1011e8
-
-.GetCopySize: ; 1011e8
- ld a, [StringBuffer2 + 2]
- ld c, a
- ld a, [StringBuffer2 + 3]
- ld b, a
- ret
-; 1011f1
-
-Function1011f1: ; 1011f1
- ld a, $04
- call GetSRAMBank
- ld a, [$a60c]
- ld [wdc41], a
- call CloseSRAM
- ld hl, wdc41
- res 4, [hl]
- ld hl, GameTimerPause
- bit 7, [hl]
- jr z, .skip
- ld hl, wdc41
- set 4, [hl]
-
-.skip
- call Function10209c
- xor a
- ld [wdc5f], a
- ld [wdc60], a
- ld a, LINK_MOBILE
- ld [wLinkMode], a
- ret
-; 101220
-
-Function101220: ; 101220
- xor a
- ld [wLinkMode], a
- ret
-; 101225
-
-Function101225: ; 101225
- ld d, 1
- ld e, BANK(Jumptable_101297)
- ld bc, Jumptable_101297
- call Function100000
- jr Function10123d
-
-Function101231: ; 101231
- ld d, 2
- ld e, BANK(Jumptable_101297)
- ld bc, Jumptable_101297
- call Function100000
- jr Function10123d
-
-Function10123d: ; 10123d
- xor a
- ld [ScriptVar], a
- ld a, c
- ld hl, Jumptable_101247
- rst JumpTable
- ret
-; 101247
-
-Jumptable_101247: ; 101247
- dw Function101251
- dw Function10127d
- dw Function10127c
- dw Function10126c
- dw Function101265
-; 101251
-
-Function101251: ; 101251
- call UpdateSprites
- call RefreshScreen
- ld hl, UnknownText_0x1021f4
- call Function1021e0
- call Function1020ea
- ret c
- call Function102142
- ret
-; 101265
-
-Function101265: ; 101265
- ld hl, UnknownText_0x1021ef
- call Function1021e0
- ret
-; 10126c
-
-Function10126c: ; 10126c
- call UpdateSprites
- callba Script_reloadmappart
- ld hl, UnknownText_0x1021f4
- call Function1021e0
- ret
-; 10127c
-
-Function10127c: ; 10127c
- ret
-; 10127d
-
-Function10127d: ; 10127d
- ret
-; 10127e
-
-Function10127e: ; 10127e
- ld a, [wdc5f]
- and a
- jr z, .zero
- cp 1
- ld c, $27
- jr z, .load
- cp 2
- ld c, $37
- jr z, .load
-.zero
- ld c, 0
-.load
- ld a, c
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101297
-
-Jumptable_101297: ; 101297
- dw Function101a97 ; 00
- dw Function101ab4 ; 01
- dw Function101475 ; 02
- dw Function101b0f ; 03
- dw Function101438 ; 04
- dw Function101b2b ; 05
- dw Function101b59 ; 06
- dw Function101475 ; 07
- dw Function101b70 ; 08
- dw Function101438 ; 09
- dw Function101b8f ; 0a
- dw Function101d7b ; 0b
- dw Function101d95 ; 0c
- dw Function101475 ; 0d
- dw Function101db2 ; 0e
- dw Function101e4f ; 0f
- dw Function101475 ; 10
- dw Function101e64 ; 11
- dw Function101e4f ; 12
- dw Function101475 ; 13
- dw Function101e64 ; 14
- dw Function101d95 ; 15
- dw Function101475 ; 16
- dw Function101db2 ; 17
- dw Function101dd0 ; 18
- dw Function101de3 ; 19
- dw Function101e39 ; 1a
- dw Function101e09 ; 1b
- dw Function101e4f ; 1c
- dw Function101475 ; 1d
- dw Function101e64 ; 1e
- dw Function101d95 ; 1f
- dw Function101475 ; 20
- dw Function101db2 ; 21
- dw Function101e09 ; 22
- dw Function101e31 ; 23
- dw Function101bc8 ; 24
- dw Function101438 ; 25
- dw Function101be5 ; 26
- dw Function101ac6 ; 27
- dw Function101ab4 ; 28
- dw Function101475 ; 29
- dw Function101c11 ; 2a
- dw Function1014f4 ; 2b
- dw Function101cc8 ; 2c
- dw Function1014e2 ; 2d
- dw Function1014e2 ; 2e
- dw Function101d10 ; 2f
- dw Function101d2a ; 30
- dw Function101d2a ; 31
- dw Function101507 ; 32
- dw Function10156d ; 33
- dw Function101557 ; 34
- dw Function10158a ; 35
- dw Function101c42 ; 36
- dw Function101aed ; 37
- dw Function101ab4 ; 38
- dw Function101475 ; 39
- dw Function101c2b ; 3a
- dw Function1014f4 ; 3b
- dw Function101cdf ; 3c
- dw Function1014e2 ; 3d
- dw Function1014e2 ; 3e
- dw Function101d1e ; 3f
- dw Function101d2a ; 40
- dw Function101d2a ; 41
- dw Function101507 ; 42
- dw Function10156d ; 43
- dw Function101544 ; 44
- dw Function10158a ; 45
- dw Function101c42 ; 46
- dw Function101c50 ; 47
- dw Function1014ce ; 48
- dw Function101cf6 ; 49
- dw Function101826 ; 4a
- dw Function1017e4 ; 4b
- dw Function1017f1 ; 4c
- dw Function1018a8 ; 4d
- dw Function1018d6 ; 4e
- dw Function1017e4 ; 4f
- dw Function1017f1 ; 50
- dw Function1018e1 ; 51
- dw Function1015df ; 52
- dw Function10167d ; 53
- dw Function10168a ; 54
- dw Function10162a ; 55
- dw Function1015be ; 56
- dw Function10167d ; 57
- dw Function10168a ; 58
- dw Function10161f ; 59
- dw Function10159d ; 5a
- dw Function10167d ; 5b
- dw Function10168a ; 5c
- dw Function101600 ; 5d
- dw Function101d03 ; 5e
- dw Function101d6b ; 5f
- dw Function10159d ; 60
- dw Function1014ce ; 61
- dw Function10168e ; 62
- dw Function101600 ; 63
- dw Function101913 ; 64
- dw Function10194b ; 65
- dw _SelectMonsForMobileBattle ; 66
- dw Function1017e4 ; 67
- dw Function1017f5 ; 68
- dw _StartMobileBattle ; 69
- dw Function101537 ; 6a
- dw Function101571 ; 6b
- dw Function101c92 ; 6c
- dw Function10152a ; 6d
- dw Function101571 ; 6e
- dw Function101a4f ; 6f
- dw Function101cbc ; 70
- dw Function101c62 ; 71
- dw Function101537 ; 72
- dw Function101571 ; 73
- dw Function101c92 ; 74
- dw Function10152a ; 75
- dw Function101571 ; 76
- dw Function101ca0 ; 77
- dw Function101475 ; 78
- dw Function101cbc ; 79
-; 10138b
-
-Function10138b: ; 10138b
- callba Function8adcc
- ld c, 0
- jr c, .asm_101396
- inc c
-
-.asm_101396
- sla c
- ld a, [wcd2f]
- and a
- jr z, .asm_10139f
- inc c
-
-.asm_10139f
- sla c
- ld a, [wcd21]
- cp $01
- jr z, .asm_1013a9
- inc c
-
-.asm_1013a9
- ret
-; 1013aa
-
-Function1013aa: ; 1013aa
- call ClearBGPalettes
- call Call_ExitMenu
- call ReloadTilesetAndPalettes
- callba Function106464
- call UpdateSprites
- call FinishExitMenu
- ret
-; 1013c0
-
-Function1013c0: ; 1013c0
- callba BlankScreen
- callba MobileFunc_106462
- callba Function106464
- call FinishExitMenu
- ret
-; 1013d6
-
-Function1013d6: ; 1013d6
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- ret
-; 1013dd
-
-Function1013dd: ; 1013dd
- call CGBOnly_LoadEDTile
- ret
-; 1013e1
-
-Function1013e1: ; 1013e1 ; unreferenced
- push de
- inc de
- ld b, a
- ld c, 0
-.asm_1013e6
- inc c
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr z, .asm_1013f1
- dec b
- jr nz, .asm_1013e6
- scf
-
-.asm_1013f1
- pop de
- ld a, c
- ld [de], a
- ret
-; 1013f5
-
-Function1013f5: ; 1013f5
- ld a, [hli]
- ld [de], a
- inc de
- ld c, a
-.asm_1013f9
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_1013f9
- ret
-; 101400
-
-Function101400: ; 101400 ; unreferenced
- ld a, [de]
- inc de
- cp [hl]
- jr nz, asm_101416
- inc hl
-
-Function101406: ; 101406
- ld c, a
- ld b, 0
-.asm_101409
- ld a, [de]
- inc de
- cp [hl]
- jr nz, asm_101416
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .asm_101409
- and a
- ret
-
-asm_101416
- scf
- ret
-; 101418
-
-Function101418: ; 101418
- call GetJoypad
- ld a, [hJoyDown]
- and SELECT + A_BUTTON
- cp SELECT + A_BUTTON
- jr z, .asm_101425
- xor a
- ret
-
-.asm_101425
- ld a, $f7
- ld [wcd2b], a
- scf
- ret
-; 10142c
-
-Function10142c: ; 10142c
- ld a, $01
- ld [wc305], a
- callba Function115e18
- ret
-; 101438
-
-Function101438: ; 101438
- ld hl, wcd29
- set 6, [hl]
- ld a, [wcd26]
- ld hl, Jumptable_101457
- rst JumpTable
- ld a, [wcd26]
- bit 7, a
- ret z
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101457
-
-Jumptable_101457: ; 101457
- dw Function10145b
- dw Function101467
-; 10145b
-
-Function10145b: ; 10145b
- ld a, $3c
- ld [wcd42], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function101467: ; 101467
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 101475
-
-Function101475: ; 101475
- ld hl, wcd29
- set 6, [hl]
- ld a, [wcd26]
- ld hl, Jumptable_101494
- rst JumpTable
- ld a, [wcd26]
- bit 7, a
- ret z
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101494
-
-Jumptable_101494: ; 101494
- dw Function10149a
- dw Function1014a6
- dw Function1014b7
-; 10149a
-
-Function10149a: ; 10149a
- ld a, $28
- ld [wcd42], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function1014a6: ; 1014a6
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, $50
- ld [wcd42], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function1014b7: ; 1014b7
- call GetJoypad
- ld a, [hJoyPressed]
- and $03
- jr nz, .asm_1014c5
- ld hl, wcd42
- dec [hl]
- ret nz
-
-.asm_1014c5
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 1014ce
-
-Function1014ce: ; 1014ce
- callba Function100720
- callba StartMobileInactivityTimer
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1014e2
-
-Function1014e2: ; 1014e2
- ld hl, wcd29
- set 6, [hl]
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1014f4
-
-Function1014f4: ; 1014f4
- callba EnableMobile
- ld hl, wcd29
- set 6, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101507
-
-Function101507: ; 101507
- ld de, wcd30
- ld hl, $40
- ld bc, $40
- ld a, $02
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10151d
-
-Function10151d: ; 10151d ; unreferenced
- ld a, $34
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10152a
-
-Function10152a: ; 10152a
- ld a, $36
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101537
-
-Function101537: ; 101537
- ld a, $0a
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101544
-
-Function101544: ; 101544
- callba StartMobileInactivityTimer
- ld a, $12
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101557
-
-Function101557: ; 101557
- callba StartMobileInactivityTimer
- ld hl, wcd53
- ld a, $08
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10156d
-
-Function10156d: ; 10156d
- call Function101418
- ret c
-
-Function101571: ; 101571
- callba Function10032e
- ret c
- ret z
- ld a, e
- cp $01
- jr z, .asm_101582
- ld [wcd2b], a
- ret
-
-.asm_101582
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10158a
-
-Function10158a: ; 10158a
- callba IncrementMobileInactivityTimerBy1Frame
- ld a, [wMobileInactivityTimerMinutes]
- cp $0a
- jr c, Function10156d
- ld a, $fb
- ld [wcd2b], a
- ret
-; 10159d
-
-Function10159d: ; 10159d
- ld de, wc608
- callba Function100edf
- ld de, wc608
- ld a, $05
- ld hl, w5_d800
- call Function10174c
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1015be
-
-Function1015be: ; 1015be
- ld de, wc608
- callba Function100eed
- ld de, wc608
- ld a, $05
- ld hl, w5_d800
- call Function10174c
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1015df
-
-Function1015df: ; 1015df
- ld de, wc608
- callba Function100ef4
- ld de, wc608
- ld a, $05
- ld hl, w5_d800
- call Function10174c
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101600
-
-Function101600: ; 101600
- ld hl, w5_d800
- ld de, wc608
- ld bc, $1e0
- ld a, $05
- call FarCopyWRAM
- ld de, wc608
- callba Function100ee6
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10161f
-
-Function10161f: ; 10161f
- call Function101649
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10162a
-
-Function10162a: ; 10162a
- call Function101663
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101635
-
-Function101635: ; 101635
- ld de, wc608
- ld bc, $1e0
- call FarCopyWRAM
- ret
-; 10163f
-
-Function10163f: ; 10163f
- ld hl, wc608
- ld bc, $1e0
- call FarCopyWRAM
- ret
-; 101649
-
-Function101649: ; 101649
- ld a, $05
- ld hl, w5_d800
- call Function101635
- ld a, $05
- ld de, w5_da00
- call Function10163f
- ret
-; 10165a
-
-Function10165a: ; 10165a
- ld a, $05
- ld hl, w5_da00
- call Function101635
- ret
-; 101663
-
-Function101663: ; 101663
- ld a, $05
- ld hl, w5_d800
- call Function101635
- ld a, $05
- ld de, w5_dc00
- call Function10163f
- ret
-; 101674
-
-Function101674: ; 101674 ; unreferenced
- ld a, $05
- ld hl, w5_dc00
- call Function101635
- ret
-; 10167d
-
-Function10167d: ; 10167d
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10168a
-
-Function10168a: ; 10168a
- call Function101418
- ret c
-
-Function10168e: ; 10168e
- ld b, 0
- ld c, $01
- callba Function10079c
- ret c
- ld c, $01
- ld b, $03
- callba AdvanceMobileInactivityTimerAndCheckExpired
- ret c
- ld a, [wcd26]
- ld hl, Jumptable_1016c3
- rst JumpTable
- ld hl, wcd29
- set 6, [hl]
- ld a, [wcd26]
- bit 7, a
- ret z
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1016c3
-
-Jumptable_1016c3: ; 1016c3
- dw Function1016cf
- dw Function1016de
- dw Function1016f8
- dw Function101705
- dw Function101719
- dw Function101724
-; 1016cf
-
-Function1016cf: ; 1016cf
- ld hl, wcd3a
- inc [hl]
- call Function10176f
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 1016de
-
-Function1016de: ; 1016de
- call Function10177b
- jr nc, .asm_1016eb
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-
-.asm_1016eb
- ld a, $ff
- ld [wcd39], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 1016f8
-
-Function1016f8: ; 1016f8
- ld a, 0
- ld [wcd27], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 101705
-
-Function101705: ; 101705
- callba Function100382
- ld a, [wcd27]
- bit 7, a
- ret z
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 101719
-
-Function101719: ; 101719
- call Function1017c7
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 101724
-
-Function101724: ; 101724
- ld a, [wcd39]
- cp $ff
- jr z, .asm_101731
- ld a, 0
- ld [wcd26], a
- ret
-
-.asm_101731
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 10173a
-
-Unknown_10173a:
- db $50
-
-Function10173b: ; 10173b
- push bc
- push af
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [Unknown_10173a]
- ld c, a
- ld b, 0
- pop af
- call AddNTimes
- pop bc
- ret
-; 10174c
-
-Function10174c: ; 10174c
- ld [wcd3d], a
- ld a, l
- ld [wcd3e], a
- ld a, h
- ld [wcd3f], a
- ld a, e
- ld [wcd3b], a
- ld a, d
- ld [wcd3c], a
- ld a, c
- ld [wcd40], a
- ld a, b
- ld [wcd41], a
- xor a
- ld [wcd39], a
- ld [wcd3a], a
- ret
-; 10176f
-
-Function10176f: ; 10176f
- ld hl, wccb4
- ld bc, $54
- ld a, $11
- call ByteFill
- ret
-; 10177b
-
-Function10177b: ; 10177b
- ld a, [Unknown_10173a]
- ld c, a
- ld b, 0
- ld a, [wcd3a]
- ld hl, 0
- call AddNTimes
- ld e, l
- ld d, h
- ld hl, wcd40
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- jr c, .asm_1017a0
- add hl, bc
- call Function1017b0
- scf
- ret
-
-.asm_1017a0
- ld a, $ff
- ld [wcd39], a
- add hl, bc
- ld a, h
- or l
- ret z
- ld c, l
- ld b, h
- call Function1017b0
- xor a
- ret
-; 1017b0
-
-Function1017b0: ; 1017b0
- ld a, c
- ld [wccb4], a
- push bc
- ld a, [wcd3a]
- dec a
- ld hl, wcd3b
- call Function10173b
- pop bc
- ld de, wccb5
- call CopyBytes
- ret
-; 1017c7
-
-Function1017c7: ; 1017c7
- ld a, [wcc60]
- ld c, a
- ld b, 0
- ld a, [wcd3a]
- dec a
- ld hl, wcd3e
- call Function10173b
- ld e, l
- ld d, h
- ld hl, wcc61
- ld a, [wcd3d]
- call FarCopyWRAM
- and a
- ret
-; 1017e4
-
-Function1017e4: ; 1017e4
- ld a, 0
- ld [wcd27], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1017f1
-
-Function1017f1: ; 1017f1
- call Function101418
- ret c
-
-Function1017f5: ; 1017f5
- ld b, 0
- ld c, $01
- callba Function10079c
- ret c
- ld c, $01
- ld b, $03
- callba AdvanceMobileInactivityTimerAndCheckExpired
- ret c
- callba Function100382
- ld a, [wcd27]
- bit 7, a
- jr nz, .next
- ld hl, wcd29
- set 6, [hl]
- ret
-
-.next
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101826
-
-Function101826: ; 101826
- ld a, [wcd21]
- cp $02
- jr z, .asm_101833
- cp $01
- jr z, .asm_101844
- jr .asm_101869
-
-.asm_101833
- ld hl, Unknown_10186f
- ld de, wccb4
- call Function1013f5
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101844
- callba Function103654
- ld a, c
- ld hl, Unknown_101882
- cp $01
- jr z, .asm_10185b
- ld hl, Unknown_101895
- cp $02
- jr z, .asm_10185b
- jr .asm_101869
-
-.asm_10185b
- ld de, wccb4
- call Function1013f5
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101869
- ld a, $fe
- ld [wcd2b], a
- ret
-; 10186f
-
-
-SECTION "ascii 10186f", ROMX
-
- charmap " ", $20 ; revert to ascii
-
-Unknown_10186f:
- db .end - @
- db $19, $73, $09, $13, "trade_crystal"
-.end db 0
-
-Unknown_101882:
- db .end - @
- db $19, $67, $10, $01, "free__crystal"
-.end db 0
-
-Unknown_101895:
- db .end - @
- db $19, $67, $10, $01, "limit_crystal"
-.end db 0
-; 1018a8
-
-
-SECTION "bank40_3", ROMX
-
-Function1018a8: ; 1018a8
- ld hl, wccb5
- ld de, wcc61
- ld a, $04
- call Function101406
- jr c, .asm_1018d0
- ld hl, wccb9
- ld de, wcc65
- ld a, $06
- call Function101406
- jr c, .asm_1018ca
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_1018ca
- ld a, $f6
- ld [wcd2b], a
- ret
-
-.asm_1018d0
- ld a, $f5
- ld [wcd2b], a
- ret
-; 1018d6
-
-Function1018d6: ; 1018d6
- call Function1018ec
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1018e1
-
-Function1018e1: ; 1018e1
- call Function1018fb
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1018ec
-
-Function1018ec: ; 1018ec
- ld a, $0a
- ld hl, wccb4
- ld [hli], a
- ld c, a
-.asm_1018f3
- call Random
- ld [hli], a
- dec c
- jr nz, .asm_1018f3
- ret
-; 1018fb
-
-Function1018fb: ; 1018fb
- ld a, [wcd2f]
- and a
- jr z, .asm_101906
- ld hl, wcc61
- jr .asm_101909
-
-.asm_101906
- ld hl, wccb5
-
-.asm_101909
- ld de, LinkBattleRNs
- ld bc, 10
- call CopyBytes
- ret
-; 101913
-
-Function101913: ; 101913
- ld hl, wcd2a
- set 0, [hl]
- xor a
- ld [wc30d], a
- ld hl, wcd29
- res 4, [hl]
- xor a
- ld [wc305], a
- ld hl, wcd29
- res 7, [hl]
- ld a, $90
- ld [hWY], a
- ld a, [wcd21]
- cp $01
- jr z, .asm_10193f
- cp $02
- jr z, .asm_101945
- ld a, $71
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_10193f
- ld a, $66
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101945
- ld a, $65
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10194b
-
-Function10194b: ; 10194b
- call DisableSpriteUpdates
- call ClearSprites
- callba Function1021f9
- ld hl, wcd29
- bit 3, [hl]
- jr nz, .asm_101967
- call Function1013c0
- ld a, $71
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101967
- ld a, $60
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10196d
-
-_SelectMonsForMobileBattle: ; 10196d
- callba BlankScreen
- callba Mobile_CommunicationStandby
- ld hl, wcd29
- set 5, [hl]
- ld hl, wcd2a
- set 6, [hl]
- ld a, $06
- ld [wccb4], a
- ld hl, wPlayerMonSelection
- ld de, wccb5
- ld bc, 3
- call CopyBytes
- ld hl, wcd6c
- ld a, [hli]
- ld [wccb8], a
- ld a, [hli]
- ld [wccb9], a
- ld a, [hl]
- ld [wccba], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1019ab
-
-_StartMobileBattle: ; 1019ab
- call CopyOtherPlayersBattleMonSelection
- callba Function100754
- xor a
- ld [wdc5f], a
- ld [wdc60], a
- callba BlankScreen
- call SpeechTextBox
- callba Function100846
- ld c, 120
- call DelayFrames
- callba ClearTileMap
- call .CopyOTDetails
- call StartMobileBattle
- ld a, [wcd2b]
- cp $fc
- jr nz, .asm_1019e6
- xor a
- ld [wcd2b], a
-.asm_1019e6
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1019ee
-
-.CopyOTDetails: ; 1019ee
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
-
- ld bc, w5_dc0d
- ld de, w5_dc11
- callba GetMobileOTTrainerClass
-
- pop af
- ld [rSVBK], a
-
- ld a, c
- ld [OtherTrainerClass], a
- ld hl, OTPlayerName
- ld de, OTClassName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [wcd2f]
- and a
- ld a, 2
- jr z, .got_link_player_number
- ld a, 1
-.got_link_player_number
- ld [hLinkPlayerNumber], a
- ret
-; 101a21
-
-StartMobileBattle: ; 101a21
- ; force stereo and fast text speed
- ld hl, Options
- ld a, [hl]
- push af
- and (1 << STEREO)
- or 1 ; 1 frame per character i.e. fast text
- ld [hl], a
- ld a, 1
- ld [wDisableTextAcceleration], a
- callba BattleIntro
- callba DoBattle
- callba ShowLinkBattleParticipantsAfterEnd
- xor a
- ld [wDisableTextAcceleration], a
- ld a, $ff
- ld [hLinkPlayerNumber], a
- pop af
- ld [Options], a
- ret
-; 101a4f
-
-Function101a4f: ; 101a4f
- ld a, 1
- ld [wDisableTextAcceleration], a
- callba DisplayLinkBattleResult
- xor a
- ld [wDisableTextAcceleration], a
- callba CleanUpBattleRAM
- callba LoadPokemonData
- call Function1013c0
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101a75
-
-CopyOtherPlayersBattleMonSelection: ; 101a75
- ld hl, wcc61
- ld de, wOTMonSelection
- ld bc, 3
- call CopyBytes
- ld de, wcc64
- callba Function100772
- callba Function101050
- callba LoadSelectedPartiesForColosseum
- ret
-; 101a97
-
-Function101a97: ; 101a97
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $02
- call Function10142c
- ld hl, wcd29
- set 6, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101ab4
-
-Function101ab4: ; 101ab4
- ld e, $01
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101ac6
-
-Function101ac6: ; 101ac6
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $02
- call Function10142c
- ld hl, wcd29
- set 6, [hl]
- xor a
- ld [wcd2f], a
- ld de, wdc42
- call Function102068
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101aed
-
-Function101aed: ; 101aed
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $02
- call Function10142c
- ld hl, wcd29
- set 6, [hl]
- ld a, $01
- ld [wcd2f], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101b0f
-
-Function101b0f: ; 101b0f
- ld c, 0
- call Function10142c
- ld e, $03
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101b2b
-
-Function101b2b: ; 101b2b
- callba Function100579
- ld hl, wcd29
- set 2, [hl]
- ld a, [wcd26]
- bit 7, a
- ret z
- call Function1013dd
- ld a, 0
- ld [wcd26], a
- ld a, [wMenuCursorY]
- cp $01
- jr z, .asm_101b51
- ld a, $02
- ld [wcd2b], a
- ret
-
-.asm_101b51
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101b59
-
-Function101b59: ; 101b59
- ld c, $02
- call Function10142c
- ld e, $02
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101b70
-
-Function101b70: ; 101b70
- ld c, $02
- call Function10142c
- ld e, $04
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- call UpdateSprites
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101b8f
-
-Function101b8f: ; 101b8f
- callba Function1005c3
- ld hl, wcd29
- set 2, [hl]
- ld a, [wcd26]
- bit 7, a
- ret z
- call Function1013dd
- ld a, 0
- ld [wcd26], a
- ld a, [wMenuCursorY]
- cp $01
- jr z, .asm_101bbc
- ld a, $01
- ld [wcd2f], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101bbc
- xor a
- ld [wcd2f], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101bc8
-
-Function101bc8: ; 101bc8
- ld c, $02
- call Function10142c
- ld e, $08
- call Function101ee4
- call Function102048
- call Function1013dd
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101be5
-
-Function101be5: ; 101be5
- callba Function100579
- ld hl, wcd29
- set 2, [hl]
- ld a, [wcd26]
- bit 7, a
- ret z
- call Function1013dd
- ld a, 0
- ld [wcd26], a
- ld a, [wMenuCursorY]
- cp $01
- jr nz, .asm_101c0b
- ld a, $2a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101c0b
- ld a, $02
- ld [wcd2b], a
- ret
-; 101c11
-
-Function101c11: ; 101c11
- ld a, $01
- ld [wdc5f], a
- ld e, $09
- call Function101ee4
- call Function102048
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101c2b
-
-Function101c2b: ; 101c2b
- ld a, $02
- ld [wdc5f], a
- ld e, $07
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101c42
-
-Function101c42: ; 101c42
- ld hl, wcd2a
- set 1, [hl]
- call Function100665
- ld a, $47
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101c50
-
-Function101c50: ; 101c50
- ld e, $0a
- call Function101ee4
- ld hl, wcd29
- set 2, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101c62
-
-Function101c62: ; 101c62
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $01
- call Function10142c
- xor a
- ld [wc30d], a
- ld hl, wcd29
- res 4, [hl]
- ld e, $0b
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101c92
-
-Function101c92: ; 101c92
- callba Function100675
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101ca0
-
-Function101ca0: ; 101ca0
- ld c, $02
- call Function10142c
- ld e, $0c
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101cbc
-
-Function101cbc: ; 101cbc
- ld a, $01
- ld [wcd2b], a
- ret
-; 101cc2
-
-Function101cc2: ; 101cc2 ; unreferenced
- ld a, $02
- ld [wcd2b], a
- ret
-; 101cc8
-
-Function101cc8: ; 101cc8
- ld a, $01
- ld [wc314], a
- ld a, $01
- ld [wc30d], a
- ld hl, wcd29
- set 4, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101cdf
-
-Function101cdf: ; 101cdf
- ld a, $06
- ld [wc314], a
- ld a, $01
- ld [wc30d], a
- ld hl, wcd29
- set 4, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101cf6
-
-Function101cf6: ; 101cf6
- ld a, $0b
- ld [wc314 + 1], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d03
-
-Function101d03: ; 101d03
- ld a, $0e
- ld [wc314 + 1], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d10
-
-Function101d10: ; 101d10
- ld c, $01
- call Function10142c
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- jr Function101d2a
-
-Function101d1e: ; 101d1e
- ld c, $03
- call Function10142c
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
-
-Function101d2a: ; 101d2a
- call Function101418
- ret c
- ld hl, wcd29
- set 6, [hl]
- ld a, [wcd26]
- ld hl, Jumptable_101d4d
- rst JumpTable
- ld a, [wcd26]
- bit 7, a
- ret z
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d4d
-
-Jumptable_101d4d: ; 101d4d
- dw Function101d51
- dw Function101d5d
-; 101d51
-
-Function101d51: ; 101d51
- ld a, $3c
- ld [wcd42], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function101d5d: ; 101d5d
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 101d6b
-
-Function101d6b: ; 101d6b
- ld a, [wc30d]
- and a
- ret nz
- ld hl, wcd29
- res 4, [hl]
- ld a, $64
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d7b
-
-Function101d7b: ; 101d7b
- callba Function10138b
- ld b, 0
- ld hl, Unknown_101d8d
- add hl, bc
- ld c, [hl]
- ld a, c
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d8d
-
-Unknown_101d8d: ; 101d8d
- db $15, $15, $1f, $1f, $0c, $12, $3a, $3a
-; 101d95
-
-Function101d95: ; 101d95
- call Function101ee2
- call LoadStandardMenuDataHeader
- ld e, $0e
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101db2
-
-Function101db2: ; 101db2
- callba Function103302
- call ExitMenu
- ld hl, wcd29
- set 5, [hl]
- jr c, .asm_101dca
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101dca
- ld a, $02
- ld [wcd2b], a
- ret
-; 101dd0
-
-Function101dd0: ; 101dd0
- ld hl, wdc41
- bit 1, [hl]
- jr nz, .asm_101ddd
- ld a, $19
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101ddd
- ld a, $1b
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101de3
-
-Function101de3: ; 101de3
- call Function101ecc
- call Function101ead
- jr c, .asm_101df3
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101df3
- call Function101e98
- jr c, .asm_101e00
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e00
- call Function101ed3
- ld a, $02
- ld [wcd2b], a
- ret
-; 101e09
-
-Function101e09: ; 101e09
- call Function101ead
- jr c, .asm_101e16
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e16
- call Function101ecc
- call Function101e98
- push af
- call Function101ed3
- pop af
- jr c, .asm_101e2b
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e2b
- ld a, $02
- ld [wcd2b], a
- ret
-; 101e31
-
-Function101e31: ; 101e31
- ld a, $3a
- ld [wMobileCommsJumptableIndex], a
- jp Function101c2b
-; 101e39
-
-Function101e39: ; 101e39
- call Function1020bf
- push af
- call Function101ed3
- pop af
- jr c, .asm_101e49
- ld a, $2a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e49
- ld a, $02
- ld [wcd2b], a
- ret
-; 101e4f
-
-Function101e4f: ; 101e4f
- ld e, $06
- call Function101ee4
- call Function1013d6
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101e64
-
-Function101e64: ; 101e64
- call Function101ecc
- call Function1020a8
- push af
- call Function101ed3
- pop af
- jr c, .asm_101e77
- ld a, $24
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e77
- ld hl, wcd29
- set 5, [hl]
- ld a, $02
- ld [wcd2b], a
- ret
-; 101e82
-
-Function101e82: ; 101e82 ; unreferenced
- call Function101ecc
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101e8d
-
-Function101e8d: ; 101e8d ; unreferenced
- call Function101ed3
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101e98
-
-Function101e98: ; 101e98
- call ClearSprites
- callba Function8adb3
- ret c
- ld hl, GameTimerPause
- set 7, [hl]
- ld hl, wdc41
- set 4, [hl]
- ret
-; 101ead
-
-Function101ead: ; 101ead
- ld hl, GameTimerPause
- bit 7, [hl]
- jr nz, .asm_101ec8
- ld hl, wdc41
- bit 2, [hl]
- jr z, .asm_101eca
- ld a, [wcd2f]
- and a
- jr nz, .asm_101ec8
- ld hl, wdc41
- bit 1, [hl]
- jr z, .asm_101eca
-
-.asm_101ec8
- xor a
- ret
-
-.asm_101eca
- scf
- ret
-; 101ecc
-
-Function101ecc: ; 101ecc
- call Function101ee2
- call FadeToMenu
- ret
-; 101ed3
-
-Function101ed3: ; 101ed3
- call Function1013aa
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ret
-; 101ee2
-
-Function101ee2: ; 101ee2
- ld e, 0
-
-Function101ee4: ; 101ee4
- ld d, 0
- ld hl, Unknown_101ef5
- add hl, de
- add hl, de
- ld a, [hli]
- ld d, [hl]
- ld e, a
- callba Function100504
- ret
-; 101ef5
-
-Unknown_101ef5: ; 101ef5
- dw String_101f13
- dw String_101f14
- dw String_101f32
- dw String_101f4f
- dw String_101f69
- dw String_101f81
- dw String_101f93
- dw String_101faa
- dw String_101fc5
- dw String_101fd2
- dw String_101fe1
- dw String_101fef
- dw String_102000
- dw String_10200c
- dw String_102014
-
-String_101f13: ; 101f13
- db "@"
-
-String_101f14: ; 101f14
- db "モバイルアダプタを つかって"
- next "おともだちと つうしんします@"
-
-String_101f32: ; 101f32
- db "でんわを かけるひとには"
- next "つうわりょうきんが かかります@"
-
-String_101f4f: ; 101f4f
- db "モバイルアダプタの じゅんびは"
- next "できて いますか?@"
-
-String_101f69: ; 101f69
- db "あなたが おともだちに"
- next "でんわを かけますか?@"
-
-String_101f81: ; 101f81
- db "めいしフ,ルダーを"
- next "つかいますか?@"
-
-String_101f93: ; 101f93
- db "でんわばんごうを にゅうりょく"
- next "してください@"
-
-String_101faa: ; 101faa
- db "それでは おともだちからの"
- next "でんわを おまちします…@"
-
-String_101fc5: ; 101fc5
- next "に でんわを かけます@"
-
-String_101fd2: ; 101fd2
- next "に でんわを かけています@"
-
-String_101fe1: ; 101fe1
- db "でんわが つながりました!@"
-
-String_101fef: ; 101fef
- db "つうわを"
- next "しゅうりょう します…@"
-
-String_102000: ; 102000
- db "つうしん しゅうりょう@"
-
-String_10200c: ; 10200c
- db "つうわ じかん@"
-
-String_102014: ; 102014
- db "それでは つうしんの"
- next "せっていを してください@"
-; 10202c
-
-Function10202c: ; 10202c
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $02
- call Function10142c
- ld e, $0d
- call Function101ee4
- hlcoord 4, 4
- call Function100681
- ret
-; 102048
-
-Function102048: ; 102048
- call Function10204c
- ret
-; 10204c
-
-Function10204c: ; 10204c
- hlcoord 3, 2
- ld c, $10
- ld de, wcd53
-.asm_102054
- ld a, [de]
- inc de
- and a
- jr z, .asm_102067
- sub $30
- jr c, .asm_102067
- cp $0a
- jr nc, .asm_102067
- add $f6
- ld [hli], a
- dec c
- jr nz, .asm_102054
-
-.asm_102067
- ret
-; 102068
-
-Function102068: ; 102068
- ld hl, wcd53
- ld c, $08
-.asm_10206d
- ld a, [de]
- call Function102080
- jr c, .asm_10207f
- ld a, [de]
- swap a
- call Function102080
- jr c, .asm_10207f
- inc de
- dec c
- jr nz, .asm_10206d
-
-.asm_10207f
- ret
-; 102080
-
-Function102080: ; 102080
- and $0f
- cp $0f
- jr z, .asm_10208a
- add $30
- ld [hli], a
- ret
-
-.asm_10208a
- ld [hl], 0
- scf
- ret
-; 10208e
-
-Function10208e: ; 10208e
- push de
- ld h, d
- ld l, e
- ld de, wdc42
- ld bc, 8
- call CopyBytes
- pop de
- ret
-; 10209c
-
-Function10209c: ; 10209c
- ld a, $ff
- ld hl, wdc42
- ld bc, 8
- call ByteFill
- ret
-; 1020a8
-
-Function1020a8: ; 1020a8
- call Function10209c
- ld c, $01
- ld de, wdc42
- callba Function17a68f
- ret c
- call Function10208e
- call Function102068
- xor a
- ret
-; 1020bf
-
-Function1020bf: ; 1020bf
- call ClearSprites
- callba Function8aba9
- ld a, c
- and a
- jr z, .asm_1020e8
- dec a
- ld hl, $a04c
- ld bc, $25
- call AddNTimes
- ld d, h
- ld e, l
- ld a, $04
- call GetSRAMBank
- call Function10208e
- call Function102068
- call CloseSRAM
- xor a
- ret
-
-.asm_1020e8
- scf
- ret
-; 1020ea
-
-Function1020ea: ; 1020ea
- ld hl, wdc41
- bit 4, [hl]
- jr z, .quit
- ld hl, wdc41
- bit 2, [hl]
- jr nz, .quit
- call Function10218d
- ld hl, wc608
- bit 4, [hl]
- jr z, .quit
- ld hl, wc608
- bit 2, [hl]
- jr nz, .quit
- call Function102112
- jr z, .quit
- and a
- ret
-
-.quit
- scf
- ret
-; 102112
-
-Function102112: ; 102112
- ld a, $04
- call GetSRAMBank
- ld hl, $a041
- ld c, 40
-.outer_loop
- push hl
- ld de, $c60f
- ld b, 31
-.inner_loop
- ld a, [de]
- cp [hl]
- jr nz, .not_matching
- inc de
- inc hl
- dec b
- jr nz, .inner_loop
- pop hl
- xor a
- jr .done
-
-.not_matching
- pop hl
- ld de, 37
- add hl, de
- dec c
- jr nz, .outer_loop
- ld a, $01
- and a
- jr .done ; useless jr
-
-.done
- push af
- call CloseSRAM
- pop af
- ret
-; 102142
-
-Function102142: ; 102142
- call Function10218d
- call Function102180
- ld hl, UnknownText_0x1021d1
- call MenuTextBox
- ld de, SFX_LEVEL_UP
- call PlaySFX
- call JoyWaitAorB
- call ExitMenu
- call Function10219f
- ld hl, UnknownText_0x1021d6
- call MenuTextBox
- call YesNoBox
- call ExitMenu
- jr c, .asm_10217c
- call Function1021b8
- jr c, .asm_10217c
- call Function10218d
- call Function102180
- ld hl, UnknownText_0x1021db
- call PrintText
-
-.asm_10217c
- call Function1013d6
- ret
-; 102180
-
-Function102180: ; 102180
- ld hl, wc608 + 1
- ld de, StringBuffer2
- ld bc, 11
- call CopyBytes
- ret
-; 10218d
-
-Function10218d: ; 10218d
- ld hl, w5_dc00
- ld de, wc608
- ld bc, $26
- ld a, $05
- call FarCopyWRAM
- ld de, wc608 + 1 ; useless
- ret
-; 10219f
-
-Function10219f: ; 10219f
- call FadeToMenu
- call Function10218d
- ld de, wc608 + 1
- callba Function8ac4e
- call JoyWaitAorB
- call PlayClickSFX
- call Function1013aa
- ret
-; 1021b8
-
-Function1021b8: ; 1021b8
- call FadeToMenu
- call Function10218d
- ld de, wPlayerMoveStruct
- callba Function8ac70
- ld a, c
- ld [StringBuffer1], a
- push af
- call Function1013aa
- pop af
- ret
-; 1021d1
-
-UnknownText_0x1021d1: ; 1021d1
- text_jump UnknownText_0x1bd19a
- db "@"
-
-UnknownText_0x1021d6: ; 1021d1
- text_jump UnknownText_0x1bd1ba
- db "@"
-
-UnknownText_0x1021db: ; 1021d1
- text_jump UnknownText_0x1bd1dd
- db "@"
-; 1021e0
-
-Function1021e0: ; 1021e0
- call MenuTextBox
- call JoyWaitAorB
- call ExitMenu
- ret
-; 1021ea
-
-UnknownText_0x1021ea: ; 1021ea
- text_jump UnknownText_0x1bd201
- db "@"
-
-UnknownText_0x1021ef:
- text_jump UnknownText_0x1bd211
- db "@"
-
-UnknownText_0x1021f4:
- text_jump UnknownText_0x1bd223
- db "@"
-; 1021f9
-
-Function1021f9: ; 1021f9
- call Function102233
- ld a, $0 ; Function10234b
- ld [wcd49], a
- ld hl, wcd29
- bit 3, [hl]
- res 3, [hl]
- jr z, .asm_10220f
- ld a, $1 ; Function102361
- ld [wcd49], a
-
-.asm_10220f
- call Function1022ca
- ld a, [wcd49]
- ld hl, Jumptable_1022f5
- rst JumpTable
- call Function102241
- call Function1022d0
- jr c, .asm_102231
- ld a, [wcd49]
- bit 7, a
- jr z, .asm_10220f
- xor a
- ld hl, wcd29
- bit 3, [hl]
- ret z
- scf
- ret
-
-.asm_102231
- xor a
- ret
-; 102233
-
-Function102233: ; 102233
- ld hl, wcd49
- ld bc, 10
- xor a
- call ByteFill
- call Function10304f
- ret
-; 102241
-
-Function102241: ; 102241
- call Function10226a
- call Function102274
- call Function10224b
- ret
-; 10224b
-
-Function10224b: ; 10224b
- ld hl, wcd4b
- bit 1, [hl]
- jr nz, .asm_10225e
- bit 2, [hl]
- jr nz, .asm_10225e
- call DelayFrame
- call DelayFrame
- xor a
- ret
-
-.asm_10225e
- res 1, [hl]
- res 2, [hl]
- callba Mobile_ReloadMapPart
- scf
- ret
-; 10226a
-
-Function10226a: ; 10226a
- ld hl, wcd4b
- bit 0, [hl]
- ret z
- call Function10305d
- ret
-; 102274
-
-Function102274: ; 102274
- ld hl, wcd4b
- bit 3, [hl]
- ret z
- res 3, [hl]
- ld de, 8
- call PlaySFX
- ret
-; 102283
-
-Function102283: ; 102283
- ld a, $01
- ld [AttrMapEnd], a
- ld hl, wcd4b
- set 0, [hl]
- ret
-; 10228e
-
-Function10228e: ; 10228e
- xor a
- ld [AttrMapEnd], a
- ld hl, wcd4b
- res 0, [hl]
- ret
-; 102298
-
-Function102298: ; 102298
- ld a, e
- cp $02
- ret nz
- ld hl, wcd4b
- bit 6, [hl]
- jr z, .asm_1022b6
- ld hl, wcd4b
- bit 7, [hl]
- ld hl, wcd4b
- set 7, [hl]
- ret nz
- ld de, SFX_ELEVATOR_END
- call PlaySFX
- jr .asm_1022c1
-
-.asm_1022b6
- ld hl, wcd4b
- bit 7, [hl]
- ld hl, wcd4b
- res 7, [hl]
- ret z
-
-.asm_1022c1
- call Function10304f
- ld a, $01
- ld [AttrMapEnd], a
- ret
-; 1022ca
-
-Function1022ca: ; 1022ca
- ld a, 30
- ld [OverworldDelay], a
- ret
-; 1022d0
-
-Function1022d0: ; 1022d0
- callba Function10032e
- ld a, [wcd2b]
- and a
- jr nz, .asm_1022f3
- call Function102298
- ld a, [OverworldDelay]
- ld c, a
- ld a, 30
- sub c
- ld c, a
- ld b, $03
- callba AdvanceMobileInactivityTimerAndCheckExpired
- jr c, .asm_1022f3
- xor a
- ret
-
-.asm_1022f3
- scf
- ret
-; 1022f5
-
-Jumptable_1022f5: ; 1022f5
- dw Function10234b ; 00
- dw Function102361 ; 01
- dw Function10236e ; 02
- dw Function102387 ; 03
- dw Function1023a1 ; 04
- dw Function1025c7 ; 05
- dw Function1025dc ; 06
- dw Function1024f6 ; 07
- dw Function10250c ; 08
- dw Function1024a8 ; 09
- dw Function102591 ; 0a
- dw Function1024a8 ; 0b
- dw Function1025b0 ; 0c
- dw Function1025bd ; 0d
- dw Function102814 ; 0e
- dw Function10283c ; 0f
- dw Function102862 ; 10
- dw Function10286f ; 11
- dw Function1024a8 ; 12
- dw Function1028a5 ; 13
- dw Function1028ab ; 14
- dw Function1023b5 ; 15
- dw Function1023c6 ; 16
- dw Function1024af ; 17
- dw Function102416 ; 18
- dw Function102423 ; 19
- dw Function10244b ; 1a
- dw Function1024af ; 1b
- dw Function10246a ; 1c
- dw Function102652 ; 1d
- dw Function10266b ; 1e
- dw Function1025e9 ; 1f
- dw Function1025ff ; 20
- dw Function102738 ; 21
- dw Function102754 ; 22
- dw Function1026b7 ; 23
- dw Function1026c8 ; 24
- dw Function1028bf ; 25
- dw Function1028c6 ; 26
- dw Function1028d3 ; 27
- dw Function1028da ; 28
- dw Function1024a8 ; 29
- dw Function10248d ; 2a
-; 10234b
-
-Function10234b: ; 10234b
- call Function102d9a
- call Function102dd3
- call Function102dec
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 102361
-
-Function102361: ; 102361
- ld a, $cc
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10236e
-
-Function10236e: ; 10236e
- call Function1028fc
- ret nc
- ld a, [wcd51]
- cp $cc
- jr z, .asm_10237f
- ld a, $f2
- ld [wcd2b], a
- ret
-
-.asm_10237f
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 102387
-
-Function102387: ; 102387
- ld hl, wcd4b
- set 6, [hl]
- xor a
- ld [wdc5f], a
- ld de, MUSIC_ROUTE_30
- call PlayMusic
- call Function102d9a
- call Function102dd3
- ld a, $01
- ld [wMenuCursorY], a
-
-Function1023a1: ; 1023a1
- call Function102283
- call Function102db7
- call Function102dec
- ld hl, wcd4b
- set 1, [hl]
- ld a, $1d
- ld [wcd49], a
- ret
-; 1023b5
-
-Function1023b5: ; 1023b5
- call Function10228e
- call Function102a3b
- call Function102b12
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1023c6
-
-Function1023c6: ; 1023c6
- call Function102c48
- call Function102c87
- ld a, [wcd4c]
- dec a
- ld [CurPartyMon], a
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- callba RemoveMonFromPartyOrBox
- ld hl, PartyCount
- inc [hl]
- ld a, [hli]
- ld c, a
- ld b, 0
- add hl, bc
- ld [hl], $ff
- ld a, [PartyCount]
- ld [wcd4c], a
- call Function102c07
- call Function102d48
- call Function102b32
- call Function102f50
- ld hl, wcd4b
- set 1, [hl]
- ld a, $14
- ld [wcd4e], a
- ld a, 0
- ld [wcd4f], a
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 102416
-
-Function102416: ; 102416
- ld a, $aa
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 102423
-
-Function102423: ; 102423
- call Function102921
- ret nc
- callba SaveAfterLinkTrade
- callba TrainerRankings_Trades
- callba BackupMobileEventIndex
- ld hl, wcd4b
- set 1, [hl]
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10244b
-
-Function10244b: ; 10244b
- call Function102f32
- ld hl, wcd4b
- set 1, [hl]
- ld a, $19
- ld [wcd4e], a
- ld a, 0
- ld [wcd4f], a
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10246a
-
-Function10246a: ; 10246a
- call Function102d9a
- ld hl, wcd29
- set 3, [hl]
- call Function102e07
- ld hl, wcd4b
- set 1, [hl]
- ld a, $2a
- ld [wcd49], a
- ret
-; 102480
-
-Function102480: ; 102480
- ld c, $32
- call DelayFrames
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10248d
-
-Function10248d: ; 10248d
- ld a, [wcd49]
- set 7, a
- ld [wcd49], a
- ret
-; 102496
-
-Function102496: ; 102496
- ld hl, wcd4e
- dec [hl]
- ret nz
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1024a8
-
-Function1024a8: ; 1024a8
- callba Function1009f3
- ret c
-
-Function1024af: ; 1024af
- call GetJoypad
- ld a, [wcd4a]
- ld hl, Jumptable_1024ba
- rst JumpTable
- ret
-; 1024ba
-
-Jumptable_1024ba: ; 1024ba
- dw Function1024c0
- dw Function1024cb
- dw Function1024de
-; 1024c0
-
-Function1024c0: ; 1024c0
- ld hl, wcd4e
- inc [hl]
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
-
-Function1024cb: ; 1024cb
- ld hl, wcd4e
- dec [hl]
- ret nz
- ld a, [wcd4f]
- inc a
- ld [wcd4e], a
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
-
-Function1024de: ; 1024de
- ld hl, wcd4e
- dec [hl]
- jr z, .asm_1024e9
- ld a, [hJoyPressed]
- and A_BUTTON | B_BUTTON
- ret z
-
-.asm_1024e9
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1024f6
-
-Function1024f6: ; 1024f6
- call PlaceHollowCursor
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd4c]
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10250c
-
-Function10250c: ; 10250c
- call Function1028fc
- ret nc
- ld a, [wcd51]
- cp $0f
- jr z, .asm_10254b
- and a
- jr z, .asm_102572
- cp $aa
- jr z, .asm_102572
- cp $07
- jr nc, .asm_102572
- ld [wcd4d], a
- dec a
- ld [wd003], a
- ld a, [wcd4c]
- dec a
- ld [wd002], a
- call Function102b9c
- call Function102bdc
- jr c, .asm_10256d
- callba Functionfb5dd
- jr c, .asm_102568
- ld hl, wcd4b
- set 1, [hl]
- ld a, $0e
- ld [wcd49], a
- ret
-
-.asm_10254b
- call Function103021
- ld hl, wcd4b
- set 1, [hl]
- ld a, 0
- ld [wcd4a], a
- ld a, $1e
- ld [wcd4e], a
- ld a, $1e
- ld [wcd4f], a
- ld a, $29
- ld [wcd49], a
- ret
-
-.asm_102568
- call Function102ff5
- jr .asm_102577
-
-.asm_10256d
- call Function102f85
- jr .asm_102577
-
-.asm_102572
- call Function102fce
- jr .asm_102577
-
-.asm_102577
- ld hl, wcd4b
- set 1, [hl]
- ld a, 0
- ld [wcd4a], a
- ld a, $1e
- ld [wcd4e], a
- ld a, $3c
- ld [wcd4f], a
- ld a, $09
- ld [wcd49], a
- ret
-; 102591
-
-Function102591: ; 102591
- call Function102ee7
- ld hl, wcd4b
- set 1, [hl]
- ld a, 0
- ld [wcd4a], a
- ld a, $1e
- ld [wcd4e], a
- ld a, $3c
- ld [wcd4f], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1025b0
-
-Function1025b0: ; 1025b0
- ld a, $09
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1025bd
-
-Function1025bd: ; 1025bd
- call Function1028fc
- ret nc
- ld a, $04
- ld [wcd49], a
- ret
-; 1025c7
-
-Function1025c7: ; 1025c7
- call Function102f6d
- ld hl, wcd4b
- set 1, [hl]
- ld a, $0f
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1025dc
-
-Function1025dc: ; 1025dc
- call Function1028fc
- ret nc
- ld a, [wcd49]
- set 7, a
- ld [wcd49], a
- ret
-; 1025e9
-
-Function1025e9: ; 1025e9
- nop
- ld hl, wcd4b
- set 6, [hl]
- call Function102b4e
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1025ff
-
-Function1025ff: ; 1025ff
- ld hl, wcd4b
- set 2, [hl]
- callba Function1009f3
- ret c
- callba MobileMenuJoypad
- ld a, [wMenuJoypadFilter]
- and c
- ret z
- bit A_BUTTON_F, c
- jr nz, .a_button
- bit D_UP_F, c
- jr nz, .d_up
- bit D_DOWN_F, c
- jr nz, .d_down
- ret
-
-.a_button
- ld hl, wcd4b
- set 3, [hl]
- ld a, $27 ; Function1028d3
- ld [wcd49], a
- ret
-
-.d_up
- ld a, [wMenuCursorY]
- ld b, a
- ld a, [OTPartyCount]
- cp b
- ret nz
- call HideCursor
- ld a, [PartyCount]
- ld [wMenuCursorY], a
- ld a, $1d ; Function102652
- ld [wcd49], a
- ret
-
-.d_down
- ld a, [wMenuCursorY]
- cp $01
- ret nz
- ld a, $23 ; Function1026b7
- ld [wcd49], a
- ret
-; 102652
-
-Function102652: ; 102652
- nop
- ld hl, wcd4b
- set 6, [hl]
- nop
- call Function102b7b
- nop
- ld hl, wcd4b
- set 1, [hl]
- nop
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10266b
-
-Function10266b: ; 10266b
- ld hl, wcd4b
- set 2, [hl]
- callba Function1009f3
- ret c
- callba MobileMenuJoypad
- ld a, [wMenuJoypadFilter]
- and c
- ret z
- bit A_BUTTON_F, c
- jr nz, .a_button
- bit D_DOWN_F, c
- jr nz, .d_down
- bit D_UP_F, c
- jr nz, .d_up
- ret
-
-.a_button
- ld hl, wcd4b
- set 3, [hl]
- ld a, $21 ; Function102738
- ld [wcd49], a
- ret
-
-.d_down
- ld a, [wMenuCursorY]
- dec a
- ret nz
- call HideCursor
- ld a, $1f ; Function1025e9
- ld [wcd49], a
- ret
-
-.d_up
- ld a, [wMenuCursorY]
- ld b, a
- ld a, [PartyCount]
- cp b
- ret nz
- ld a, $23 ; Function1026b7
- ld [wcd49], a
- ret
-; 1026b7
-
-Function1026b7: ; 1026b7
- ld hl, wcd4b
- set 6, [hl]
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, 0
- ld [wcd4a], a
-
-Function1026c8: ; 1026c8
- call GetJoypad
- callba Function1009f3
- ret c
- ld a, [wcd4a]
- ld hl, Jumptable_1026da
- rst JumpTable
- ret
-; 1026da
-
-Jumptable_1026da: ; 1026da
- dw Function1026de
- dw Function1026f3
-; 1026de
-
-Function1026de: ; 1026de
- call HideCursor
- hlcoord 9, 17
- ld [hl], $ed
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- ld hl, wcd4b
- set 1, [hl]
- ret
-; 1026f3
-
-Function1026f3: ; 1026f3
- ld a, [hJoyPressed]
- bit A_BUTTON_F, a
- jr nz, .asm_102723
- bit D_UP_F, a
- jr nz, .asm_102712
- bit D_DOWN_F, a
- jr nz, .asm_102702
- ret
-
-.asm_102702
- hlcoord 9, 17
- ld [hl], " "
- ld a, $01
- ld [wMenuCursorY], a
- ld a, $1d ; Function102652
- ld [wcd49], a
- ret
-
-.asm_102712
- hlcoord 9, 17
- ld [hl], " "
- ld a, [OTPartyCount]
- ld [wMenuCursorY], a
- ld a, $1f ; Function1025e9
- ld [wcd49], a
- ret
-
-.asm_102723
- hlcoord 9, 17
- ld [hl], "▷"
- ld hl, wcd4b
- set 3, [hl]
- ld hl, wcd4b
- set 2, [hl]
- ld a, $5 ; Function1025c7
- ld [wcd49], a
- ret
-; 102738
-
-Function102738: ; 102738
- ld hl, wcd4b
- set 6, [hl]
- call PlaceHollowCursor
- call Function1027eb
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, 0
- ld [wcd4a], a
-
-Function102754: ; 102754
- call GetJoypad
- callba Function1009f3
- ret c
- ld a, [wcd4a]
- ld hl, Jumptable_102766
- rst JumpTable
- ret
-; 102766
-
-Jumptable_102766: ; 102766
- dw Function102770
- dw Function102775
- dw Function10278c
- dw Function1027a0
- dw Function1027b7
-; 102770
-
-Function102770: ; 102770
- ld a, $01
- ld [wcd4a], a
-
-Function102775: ; 102775
- hlcoord 1, 16
- ld [hl], "▶"
- hlcoord 11, 16
- ld [hl], " "
- ld hl, wcd4b
- set 2, [hl]
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- ret
-; 10278c
-
-Function10278c: ; 10278c
- ld a, [hJoyPressed]
- bit A_BUTTON_F, a
- jr nz, asm_1027c6
- bit B_BUTTON_F, a
- jr nz, asm_1027e2
- bit D_RIGHT_F, a
- jr nz, .asm_10279b
- ret
-
-.asm_10279b
- ld a, $03
- ld [wcd4a], a
-Function1027a0: ; 1027a0
- hlcoord 1, 16
- ld [hl], " "
- hlcoord 11, 16
- ld [hl], "▶"
- ld hl, wcd4b
- set 2, [hl]
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- ret
-
-Function1027b7: ; 1027b7
- ld a, [hJoyPressed]
- bit A_BUTTON_F, a
- jr nz, asm_1027d1
- bit B_BUTTON_F, a
- jr nz, asm_1027e2
- bit D_LEFT_F, a
- jr nz, Function102770
- ret
-
-asm_1027c6:
- ld hl, wcd4b
- set 3, [hl]
- ld a, $25 ; Function1028bf
- ld [wcd49], a
- ret
-
-asm_1027d1:
- ld hl, wcd4b
- set 3, [hl]
- ld a, [wMenuCursorY]
- ld [wcd4c], a
- ld a, $7 ; Function1024f6
- ld [wcd49], a
- ret
-
-asm_1027e2:
- call Function102db7
- ld a, $1d ; Function102652
- ld [wcd49], a
- ret
-; 1027eb
-
-Function1027eb: ; 1027eb
- hlcoord 0, 14
- ld b, 2
- ld c, 18
- ld d, h
- ld e, l
- callba _LinkTextbox
- ld de, .Stats_Trade
- hlcoord 2, 16
- call PlaceString
- ret
-; 102804
-
-.Stats_Trade: ; 102804
- db "STATS TRADE@"
-; 102814
-
-Function102814: ; 102814
- ld a, [wMenuCursorY]
- ld [wcd52], a
- ld a, [wcd4c]
- dec a
- ld [wd002], a
- ld a, [wcd4d]
- dec a
- ld [wd003], a
- call Function102ea8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, 0
- ld [wcd4a], a
- ld hl, wcd4b
- set 1, [hl]
-
-Function10283c: ; 10283c
- ld hl, wcd4b
- set 2, [hl]
- call Function1029c3
- ret z
- jr c, .asm_102852
- ld a, $10 ; Function102862
- ld [wcd49], a
- ld hl, wcd4b
- set 1, [hl]
- ret
-
-.asm_102852
- ld a, $14 ; Function1028ab
- ld [wcd49], a
- ld hl, wcd4b
- set 3, [hl]
- ld hl, wcd4b
- set 1, [hl]
- ret
-; 102862
-
-Function102862: ; 102862
- ld a, $08
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10286f
-
-Function10286f: ; 10286f
- call Function1028fc
- ret nc
- ld a, [wcd52]
- ld [wMenuCursorY], a
- ld a, [wcd51]
- cp $08
- jr nz, .asm_102886
- ld a, $15 ; Function1023b5
- ld [wcd49], a
- ret
-
-.asm_102886
- call Function102ee7
- ld hl, wcd4b
- set 1, [hl]
- ld a, $1e
- ld [wcd4e], a
- ld a, $3c
- ld [wcd4f], a
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1028a5
-
-Function1028a5: ; 1028a5
- ld a, $4 ; Function1023a1
- ld [wcd49], a
- ret
-; 1028ab
-
-Function1028ab: ; 1028ab
- ld a, [wcd52]
- ld [wMenuCursorY], a
- call Function102f15
- ld hl, wcd4b
- set 1, [hl]
- ld a, $c ; Function1025b0
- ld [wcd49], a
- ret
-; 1028bf
-
-Function1028bf: ; 1028bf
- ld a, [wcd49]
- inc a
- ld [wcd49], a
-
-Function1028c6: ; 1028c6
- xor a
- ld [MonType], a
- call Function102bac
- ld a, $1d ; Function102652
- ld [wcd49], a
- ret
-; 1028d3
-
-Function1028d3: ; 1028d3
- ld a, [wcd49]
- inc a
- ld [wcd49], a
-
-Function1028da: ; 1028da
- ld a, OTPARTYMON
- ld [MonType], a
- call Function102bac
- ld a, $1f ; Function1025e9
- ld [wcd49], a
- ret
-; 1028e8
-
-Function1028e8: ; 1028e8
- ld hl, wcd4b
- res 6, [hl]
- ld [wcd50], a
- callba StartMobileInactivityTimer
- ld a, 0
- ld [wcd4a], a
- ret
-; 1028fc
-
-Function1028fc: ; 1028fc
- call GetJoypad
- callba Function1009f3
- jr nc, .asm_102909
- and a
- ret
-
-.asm_102909
- ld a, [wcd4a]
- ld hl, Jumptable_102917
- rst JumpTable
- ret nc
- ld a, 0
- ld [wcd4a], a
- ret
-; 102917
-
-Jumptable_102917: ; 102917
- dw Function102933
- dw Function10294f
- dw Function10295d
- dw Function10296e
- dw Function102996
-; 102921
-
-Function102921: ; 102921
- ld a, [wcd4a]
- ld hl, Jumptable_10292f
- rst JumpTable
- ret nc
- ld a, 0
- ld [wcd4a], a
- ret
-; 10292f
-
-Jumptable_10292f: ; 10292f
- dw Function10295d
- dw Function102984
-; 102933
-
-Function102933: ; 102933
- ld hl, MenuDataHeader_1029bb
- call LoadMenuDataHeader
- call Function102e07
- ld a, $32
- ld [TextDelayFrames], a
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- and a
- ret
-; 10294f
-
-Function10294f: ; 10294f
- ld a, [TextDelayFrames]
- and a
- ret nz
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- and a
- ret
-; 10295d
-
-Function10295d: ; 10295d
- call Function10299e
- ld a, 0
- ld [wcd27], a
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- and a
- ret
-; 10296e
-
-Function10296e: ; 10296e
- callba Function100382
- and a
- ld a, [wcd27]
- bit 7, a
- ret z
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- and a
- ret
-; 102984
-
-Function102984: ; 102984
- callba Function100382
- and a
- ld a, [wcd27]
- bit 7, a
- ret z
- call Function1029af
- scf
- ret
-; 102996
-
-Function102996: ; 102996
- call Function1029af
- call ExitMenu
- scf
- ret
-; 10299e
-
-Function10299e: ; 10299e
- ld a, $01
- ld [wccb4], a
- ld a, [wcd50]
- ld [wccb5], a
- ld a, $aa
- ld [wcd51], a
- ret
-; 1029af
-
-Function1029af: ; 1029af
- ld hl, wcd4b
- res 7, [hl]
- ld a, [wcc61]
- ld [wcd51], a
- ret
-; 1029bb
-
-MenuDataHeader_1029bb: ; 1029bb
- db $40 ; flags
- db 10, 3 ; start coords
- db 12, 15 ; end coords
- dw NULL
- db 1 ; default option
-; 1029c3
-
-Function1029c3: ; 1029c3
- ld a, [wcd4a]
- ld hl, Jumptable_1029cb
- rst JumpTable
- ret
-; 1029cb
-
-Jumptable_1029cb: ; 1029cb
- dw Function1029cf
- dw Function1029fe
-; 1029cf
-
-Function1029cf: ; 1029cf
- call LoadStandardMenuDataHeader
- hlcoord 10, 7
- ld b, 3
- ld c, 8
- ld d, h
- ld e, l
- callba _LinkTextbox
- ld de, String_102a26
- hlcoord 12, 8
- call PlaceString
- ld hl, wcd4b
- set 1, [hl]
- ld de, MenuData3_102a33
- call SetMenuAttributes
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- xor a
- ret
-; 1029fe
-
-Function1029fe: ; 1029fe
- callba Function1009f3
- ret c
- callba MobileMenuJoypad
- ld a, c
- ld hl, wMenuJoypadFilter
- and [hl]
- ret z
- push af
- call ExitMenu
- pop af
- ld a, [wMenuCursorY]
- cp $01
- jr nz, .asm_102a21
- ld a, $01
- and a
- ret
-
-.asm_102a21
- ld a, $01
- and a
- scf
- ret
-; 102a26
-
-String_102a26: ; 102a26
- db "TRADE"
- next "CANCEL"
- db "@"
-; 102a33
-
-MenuData3_102a33:
- db 8, 11
- db 2, 1
- db $80, $00
- dn 2, 0
- db A_BUTTON
-
-Function102a3b: ; 102a3b
- ld a, [wcd30]
- ld [wc74e], a
- ld hl, PlayerName
- ld de, wPlayerTrademonSenderName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [wcd4c]
- dec a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- ld [wPlayerTrademonSpecies], a
- ld a, [wcd4c]
- dec a
- ld hl, PartyMonOT
- call SkipNames
- ld de, wPlayerTrademonOTName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [wcd4c]
- dec a
- ld hl, PartyMon1ID
- call GetPartyLocation
- ld a, [hli]
- ld [wPlayerTrademonID], a
- ld a, [hl]
- ld [wPlayerTrademonID + 1], a
- ld a, [wcd4c]
- dec a
- ld hl, PartyMon1DVs
- call GetPartyLocation
- ld a, [hli]
- ld [wPlayerTrademonDVs], a
- ld a, [hl]
- ld [wPlayerTrademonDVs + 1], a
- ld a, [wcd4c]
- dec a
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld b, h
- ld c, l
- callba GetCaughtGender
- ld a, c
- ld [wPlayerTrademonCaughtData], a
- ld hl, OTPlayerName
- ld de, wOTTrademonSenderName
- ld bc, NAME_LENGTH
- call CopyBytes
-
- ld a, [wcd4d]
- dec a
- ld c, a
- ld b, 0
- ld hl, OTPartySpecies
- add hl, bc
- ld a, [hl]
- ld [wOTTrademonSpecies], a
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMonOT
- call SkipNames
- ld de, wOTTrademonOTName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMon1ID
- call GetPartyLocation
- ld a, [hli]
- ld [wOTTrademonID], a
- ld a, [hl]
- ld [wOTTrademonID + 1], a
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMon1DVs
- call GetPartyLocation
- ld a, [hli]
- ld [wOTTrademonDVs], a
- ld a, [hl]
- ld [wOTTrademonDVs + 1], a
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- ld b, h
- ld c, l
- callba GetCaughtGender
- ld a, c
- ld [wOTTrademonCaughtData], a
- ret
-; 102b12
-
-Function102b12: ; 102b12
- ld c, 100
- call DelayFrames
- call Function102d9a
- call LoadFontsBattleExtra
- ld a, [wcd2f]
- and a
- jr nz, .asm_102b2b
- callba Function108026
- jr .asm_102b31
-
-.asm_102b2b
- callba Function10802a
-
-.asm_102b31
- ret
-; 102b32
-
-Function102b32: ; 102b32
- ld a, [wcd4c]
- dec a
- ld [CurPartyMon], a
- ld a, $01
- ld [wForceEvolution], a
- callba EvolvePokemon
- call Function102d9a
- call Function102dd3
- call Function102dec
- ret
-; 102b4e
-
-Function102b4e: ; 102b4e
- ld a, OTPARTYMON
- ld [MonType], a
- ld a, [wMenuCursorY]
- push af
- ld de, Unknown_102b73
- call SetMenuAttributes
- pop af
- ld [wMenuCursorY], a
- ld a, [OTPartyCount]
- ld [w2DMenuNumRows], a
- ret
-; 102b68
-
-Function102b68: ; 102b68 ; unreferenced
- xor a
- ld hl, wWindowStackPointer
- ld bc, $10
- call ByteFill
- ret
-; 102b73
-
-Unknown_102b73:
- db 9, 6
- db 255, 1
- db $a0, $00
- dn 1, 0
- db D_UP | D_DOWN | A_BUTTON
-
-Function102b7b: ; 102b7b
- xor a
- ld [MonType], a
- ld a, [wMenuCursorY]
- push af
- ld de, Unknown_102b94
- call SetMenuAttributes
- pop af
- ld [wMenuCursorY], a
- ld a, [PartyCount]
- ld [w2DMenuNumRows], a
- ret
-; 102b94
-
-Unknown_102b94:
- db 1, 6
- db 255, 1
- db $a0, $00
- dn 1, 0
- db D_UP | D_DOWN | A_BUTTON
-
-Function102b9c: ; 102b9c
- ld a, [wcd4d]
- dec a
- hlcoord 6, 9
- ld bc, $14
- call AddNTimes
- ld [hl], $ec
- ret
-; 102bac
-
-Function102bac: ; 102bac
- ld a, [wMenuCursorY]
- dec a
- ld [CurPartyMon], a
- call LowVolume
- call ClearSprites
- callba _MobileStatsScreenInit
- ld a, [CurPartyMon]
- inc a
- ld [wMenuCursorY], a
- call Function102d9a
- call ClearPalettes
- call DelayFrame
- call MaxVolume
- call Function102dd3
- call Function102dec
- call Function102db7
- ret
-; 102bdc
-
-Function102bdc: ; 102bdc
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- push hl
- ld a, [wcd4d]
- ld c, a
- ld b, 0
- ld hl, OTPartyCount
- add hl, bc
- ld a, [hl]
- pop hl
- cp EGG
- jr z, .asm_102bfa
- cp [hl]
- jr nz, .asm_102c05
-
-.asm_102bfa
- ld bc, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MAX_LEVEL + 1
- jr nc, .asm_102c05
- and a
- ret
-
-.asm_102c05
- scf
- ret
-; 102c07
-
-Function102c07: ; 102c07
- call Function102c14
- call Function102c3b
- call Function102c21
- call Function102c2e
- ret
-; 102c14
-
-Function102c14: ; 102c14
- ld hl, PartySpecies
- ld de, OTPartySpecies
- ld bc, 1
- call Function102c71
- ret
-; 102c21
-
-Function102c21: ; 102c21
- ld hl, PartyMonNicknames
- ld de, OTPartyMonNicknames
- ld bc, 11
- call Function102c71
- ret
-; 102c2e
-
-Function102c2e: ; 102c2e
- ld hl, PartyMonOT
- ld de, OTPartyMonOT
- ld bc, 11
- call Function102c71
- ret
-; 102c3b
-
-Function102c3b: ; 102c3b
- ld hl, PartyMon1
- ld de, OTPartyMon1
- ld bc, $30
- call Function102c71
- ret
-; 102c48
-
-Function102c48: ; 102c48
- callba Function10165a
- ld a, 0
- call GetSRAMBank
- ld hl, $a600
- ld de, wc608
- ld bc, $2f
- call Function102c71
- call CloseSRAM
- ld hl, wc608
- ld de, w5_da00
- ld bc, $1e0
- ld a, $05
- call FarCopyWRAM
- ret
-; 102c71
-
-Function102c71: ; 102c71
- ld a, [wcd4c]
- dec a
- call AddNTimes
- push hl
- ld h, d
- ld l, e
- ld a, [wcd4d]
- dec a
- call AddNTimes
- pop de
- call SwapBytes
- ret
-; 102c87
-
-Function102c87: ; 102c87
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- ld a, [wcd4c]
- ld [wJumptableIndex], a
- ld a, [PartyCount]
- ld [wcf64], a
- ld a, 0
- ld hl, $a600
- ld de, wc608
- ld bc, $11a
- call Function102d3e
- call Function102cee
- ld a, 0
- ld hl, wc608
- ld de, $a600
- ld bc, $11a
- call Function102d3e
- ld a, [wcd4d]
- ld [wJumptableIndex], a
- ld a, [OTPartyCount]
- ld [wcf64], a
- ld a, $05
- ld hl, w5_da00
- ld de, wc608
- ld bc, $11a
- call FarCopyWRAM
- call Function102cee
- ld a, $05
- ld hl, wc608
- ld de, w5_da00
- ld bc, $11a
- call FarCopyWRAM
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- ret
-; 102cee
-
-Function102cee: ; 102cee
- ld a, [wJumptableIndex]
- dec a
- call Function102d34
- ld de, wd002
- ld bc, $2f
- call CopyBytes
- ld a, [wJumptableIndex]
- ld c, a
- ld a, $06
- sub c
- ret z
- ld bc, $2f
- ld hl, 0
- call AddNTimes
- push hl
- ld a, [wJumptableIndex]
- dec a
- call Function102d34
- ld d, h
- ld e, l
- ld hl, $2f
- add hl, de
- pop bc
- call CopyBytes
- ld a, [wcf64]
- dec a
- call Function102d34
- ld d, h
- ld e, l
- ld hl, wd002
- ld bc, $2f
- call CopyBytes
- ret
-; 102d34
-
-Function102d34: ; 102d34
- ld hl, wc608
- ld bc, $2f
- call AddNTimes
- ret
-; 102d3e
-
-Function102d3e: ; 102d3e
- call GetSRAMBank
- call CopyBytes
- call CloseSRAM
- ret
-; 102d48
-
-Function102d48: ; 102d48
- ld a, [wcd4c]
- ld e, a
- ld d, 0
- ld hl, PartyCount
- add hl, de
- ld a, [hl]
- ld [wd265], a
- cp EGG
- jr z, .asm_102d6d
- dec a
- call SetSeenAndCaughtMon
- ld a, [wcd4c]
- dec a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1Happiness
- call AddNTimes
- ld [hl], BASE_HAPPINESS
-
-.asm_102d6d
- ld a, [wd265]
- cp UNOWN
- jr nz, .asm_102d98
- ld a, [wcd4c]
- dec a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1DVs
- call AddNTimes
- predef GetUnownLetter
- callba UpdateUnownDex
- ld a, [wFirstUnownSeen]
- and a
- jr nz, .asm_102d98
- ld a, [UnownLetter]
- ld [wFirstUnownSeen], a
-
-.asm_102d98
- and a
- ret
-; 102d9a
-
-Function102d9a: ; 102d9a
- ld a, " "
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ld a, $07
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- ret
-; 102db7
-
-Function102db7: ; 102db7
- call Function102e4f
- call Function102e3e
- ld hl, wcd4b
- set 1, [hl]
- ret
-; 102dc3
-
-Function102dc3: ; 102dc3
- hlcoord 0, 12
- ld b, 4
- ld c, 18
- ld d, h
- ld e, l
- callba _LinkTextbox
- ret
-; 102dd3
-
-Function102dd3: ; 102dd3
- call DisableLCD
- ld de, GFX_1032a2
- ld hl, VTiles0
- lb bc, BANK(GFX_1032a2), 4
- call Get2bpp
- callba __LoadTradeScreenBorder
- call EnableLCD
- ret
-; 102dec
-
-Function102dec: ; 102dec
- ld hl, Palettes_1032e2
- ld de, UnknOBPals
- ld bc, 4 palettes
- ld a, $05
- call FarCopyWRAM
- callba Function49742
- call SetPalettes
- call DelayFrame
- ret
-; 102e07
-
-Function102e07: ; 102e07
- hlcoord 3, 10
- ld b, 1
- ld c, 11
- ld a, [wBattleMode]
- and a
- jr z, .link_battle
- call TextBox
- jr .okay
-
-.link_battle
-; this is idiotic
- hlcoord 3, 10
- ld b, 1
- ld c, 11
- ld d, h
- ld e, l
- callba _LinkTextbox
-
-.okay
- ld de, .waiting
- hlcoord 4, 11
- call PlaceString
- ret
-; 102e32
-
-.waiting ; 102e32
- db "Waiting...!@"
-; 102e3e
-
-Function102e3e: ; 102e3e
- ld de, .CANCEL
- hlcoord 10, 17
- call PlaceString
- ret
-; 102e48
-
-.CANCEL: ; 102e48
- db "CANCEL@"
-; 102e4f
-
-Function102e4f: ; 102e4f
- callba Function16d42e
- callba _InitMG_Mobile_LinkTradePalMap
- ld de, PlayerName
- hlcoord 4, 0
- call PlaceString
- ld a, $14
- ld [bc], a
- ld de, OTPlayerName
- hlcoord 4, 8
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 7, 1
- ld de, PartySpecies
- call .PlaceSpeciesNames
- hlcoord 7, 9
- ld de, OTPartySpecies
- call .PlaceSpeciesNames
- ret
-; 102e86
-
-.PlaceSpeciesNames: ; 102e86
- ld c, 0
-.count_loop
- ld a, [de]
- cp $ff
- ret z
- ld [wd265], a
- push bc
- push hl
- push de
- push hl
- ld a, c
- ld [hDividend], a
- call GetPokemonName
- pop hl
- call PlaceString
- pop de
- inc de
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- inc c
- jr .count_loop
-; 102ea8
-
-Function102ea8: ; 102ea8
- call Function102dc3
- ld a, [wcd4c]
- dec a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, StringBuffer2
- ld bc, 11
- call CopyBytes
- ld a, [wcd4d]
- dec a
- ld c, a
- ld b, 0
- ld hl, OTPartySpecies
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- ld hl, UnknownText_0x102ee2
- call PrintTextBoxText
- ret
-; 102ee2
-
-UnknownText_0x102ee2: ; 102ee2
- text_jump UnknownText_0x1bd286
- db "@"
-
-Function102ee7: ; 102ee7
- call Function102dc3
- ld de, String_102ef4
- hlcoord 1, 14
- call PlaceString
- ret
-; 102ef4
-
-String_102ef4: ; 102ef4
- db "Too bad! The trade"
- next "was canceled!"
- db "@"
-; 102f15
-
-Function102f15: ; 102f15
- call Function102dc3
- ld de, .TooBadTheTradeWasCanceled
- hlcoord 1, 14
- call PlaceString
- ret
-; 102f22
-
-.TooBadTheTradeWasCanceled: ; 102f22
- db "こうかんを キャンセルしました@"
-; 102f32
-
-Function102f32: ; 102f32
- call Function102dc3
- ld de, .TradeCompleted
- hlcoord 1, 14
- call PlaceString
- ret
-; 102f3f
-
-.TradeCompleted: ; 102f3f
- db "Trade completed!@"
-; 102f50
-
-Function102f50: ; 102f50
- call Function102dc3
- ld de, .PleaseWait
- hlcoord 1, 14
- call PlaceString
- ret
-; 102f5d
-
-.PleaseWait: ; 102f5d
- db "しょうしょう おまち ください@"
-; 102f6d
-
-Function102f6d: ; 102f6d
- call Function102dc3
- ld de, .Finished
- hlcoord 1, 14
- call PlaceString
- ret
-; 102f7a
-
-.Finished: ; 102f7a
- db "しゅうりょう します@"
-; 102f85
-
-Function102f85: ; 102f85
- ld a, [wd003]
- ld c, a
- ld b, 0
- ld hl, OTPartySpecies
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- call Function102dc3
- ld de, String_102fb2
- hlcoord 1, 14
- call PlaceString
- ld de, StringBuffer1
- hlcoord 13, 14
- call PlaceString
- ld de, String_102fcc
- call PlaceString
- ret
-; 102fb2
-
-String_102fb2: ; 102fb2
- db "あいてがわ<PKMN>えらんだ "
- next "いじょう<PKMN>あるようです!!"
- db "@"
-; 102fcc
-
-String_102fcc: ; 102fcc
- db "に@"
-; 102fce
-
-Function102fce: ; 102fce
- call Function102dc3
- ld de, String_102fdb
- hlcoord 1, 14
- call PlaceString
- ret
-; 102fdb
-
-String_102fdb: ; 102fdb
- db "あいてがわ%せんたくに"
- next "いじょう<PKMN>あるようです!!"
- done
-; 102ff5
-
-Function102ff5: ; 102ff5
- call Function102dc3
- ld de, String_103002
- hlcoord 1, 14
- call PlaceString
- ret
-; 103002
-
-String_103002: ; 103002
- db "その#を こうかんすると"
- next "せんとう できなく なっちゃうよ!"
- db "@"
-; 103021
-
-Function103021: ; 103021
- call Function102dc3
- ld de, String_10302e
- hlcoord 1, 14
- call PlaceString
- ret
-; 10302e
-
-String_10302e: ; 10302e
- db "あいてが ちゅうしを えらんだので"
- next "こうかんを ちゅうし します"
- db "@"
-; 10304f
-
-Function10304f: ; 10304f
- xor a
- ld [AttrMapEnd], a
- ld [wcf42], a
- ld [wcf44], a
- ld [wcf45], a
- ret
-; 10305d
-
-Function10305d: ; 10305d
- nop
- ld a, [AttrMapEnd]
- and a
- ret z
- call Function10307f
- ret c
- call Function103094
- call Function10306e
- ret
-; 10306e
-
-Function10306e: ; 10306e
- ld a, $01
- ld [hOAMUpdate], a
- call ClearSprites
- ld de, Sprites
- call Function1030cd
- xor a
- ld [hOAMUpdate], a
- ret
-; 10307f
-
-Function10307f: ; 10307f
- ld c, $02
- ld hl, wcd4b
- bit 7, [hl]
- jr z, .asm_10308a
- ld c, $01
-
-.asm_10308a
- ld hl, wcf45
- inc [hl]
- ld a, [hl]
- cp c
- ret c
- xor a
- ld [hl], a
- ret
-; 103094
-
-Function103094: ; 103094
- ld hl, wcd4b
- bit 7, [hl]
- jr nz, .asm_1030c0
- ld a, [wcf42]
- bit 7, a
- jr nz, .asm_1030b2
- ld a, [wcf44]
- inc a
- ld [wcf44], a
- cp $2c
- ret nz
- ld hl, wcf42
- set 7, [hl]
- ret
-
-.asm_1030b2
- ld a, [wcf44]
- dec a
- ld [wcf44], a
- ret nz
- ld hl, wcf42
- res 7, [hl]
- ret
-
-.asm_1030c0
- ld hl, wcf44
- ld a, [hl]
- and a
- jr z, .asm_1030ca
- dec a
- ld [hl], a
- ret nz
-
-.asm_1030ca
- ld [hl], $2c
- ret
-; 1030cd
-
-Function1030cd: ; 1030cd
- ld a, [wcf44]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- add hl, hl
- ld bc, Unknown_103112
- add hl, bc
- ld b, $30
- ld c, $08
-.asm_1030de
- push hl
- ld hl, wcd4b
- bit 7, [hl]
- pop hl
- ld a, 0
- jr z, .asm_1030eb
- ld a, $05
-.asm_1030eb
-
- add [hl]
- inc hl
- push hl
-
- add a
- add a
-
- add Unknown_10327a % $100
- ld l, a
- ld a, Unknown_10327a / $100
- adc 0
- ld h, a
-
- ld a, b
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, $0a
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop hl
- ld a, b
- add $08
- ld b, a
- dec c
- jr nz, .asm_1030de
- ret
-; 103112
-
-Unknown_103112: ; 103112
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $01, $00, $00, $00, $00, $00, $00, $00
- db $02, $01, $00, $00, $00, $00, $00, $00
- db $03, $02, $01, $00, $00, $00, $00, $00
- db $04, $03, $02, $01, $00, $00, $00, $00
- db $04, $04, $03, $02, $01, $00, $00, $00
- db $04, $04, $04, $03, $02, $01, $00, $00
- db $04, $04, $04, $04, $03, $02, $01, $00
- db $04, $04, $04, $04, $04, $03, $02, $01
- db $04, $04, $04, $04, $04, $04, $03, $02
- db $04, $04, $04, $04, $04, $04, $04, $03
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $03, $04, $04, $04, $04, $04, $04, $04
- db $02, $03, $04, $04, $04, $04, $04, $04
- db $01, $02, $03, $04, $04, $04, $04, $04
- db $00, $01, $02, $03, $04, $04, $04, $04
- db $00, $00, $01, $02, $03, $04, $04, $04
- db $00, $00, $00, $01, $02, $03, $04, $04
- db $00, $00, $00, $00, $01, $02, $03, $04
- db $00, $00, $00, $00, $00, $01, $02, $03
- db $00, $00, $00, $00, $00, $00, $01, $02
- db $00, $00, $00, $00, $00, $00, $00, $01
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-; 10327a
-
-Unknown_10327a: ; 10327a
- db $00, $00, $00, $00
- db $00, $00, $01, $00
- db $00, $00, $02, $00
- db $00, $00, $03, $00
- db $00, $00, $01, $01
- db $00, $00, $00, $00
- db $00, $00, $01, $02
- db $00, $00, $02, $02
- db $00, $00, $03, $02
- db $00, $00, $01, $03
-
-GFX_1032a2:
-INCBIN "gfx/unknown/1032a2.2bpp"
-
-Palettes_1032e2:
- RGB 0, 0, 0
- RGB 31, 31, 7
- RGB 20, 31, 6
- RGB 13, 20, 16
-
- RGB 0, 0, 0
- RGB 7, 11, 17
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 31, 24, 4
- RGB 25, 12, 0
- RGB 31, 7, 4
-
- RGB 0, 0, 0
- RGB 25, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-; 103302
-
-Function103302: ; 103302
- call Function103309
- call Function103362
- ret
-; 103309
-
-Function103309: ; 103309
- xor a
- ld [hBGMapMode], a
- ld hl, Buffer1
- ld bc, 10
- xor a
- call ByteFill
- ld a, $04
- call GetSRAMBank
- ld a, [wdc41]
- ld [$a60c], a
- ld [Buffer1], a
- call CloseSRAM
- call Function1035c6
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld [wd1ef], a
- ld a, [hli]
- ld [wd1ec], a
- ld a, [hli]
- ld [wd1ed], a
- ld h, d
- ld l, e
- call Function3eea
- ld hl, wd1ec
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hl]
- ld [wd1ee], a
- call Function1034be
- call UpdateSprites
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- ld a, $01
- ld [wd1f0], a
- call Function10339a
- ret
-; 103362
-
-Function103362: ; 103362
-.asm_103362
- ld a, [wd1f0]
- ld [wd1f1], a
- call Function1033af
- call Function10339a
- call Function10342c
- callba HDMATransferTileMapToWRAMBank3
- ld a, [Buffer2]
- bit 7, a
- jr z, .asm_103362
- ld hl, Buffer2
- bit 6, [hl]
- jr z, .asm_103398
- ld a, $04
- call GetSRAMBank
- ld a, [Buffer1]
- ld [$a60c], a
- ld [wdc41], a
- call CloseSRAM
- xor a
- ret
-
-.asm_103398
- scf
- ret
-; 10339a
-
-Function10339a: ; 10339a
- ld a, [wd1f0]
- ld [wd1f2], a
- ld c, a
- ld b, 0
- ld hl, wd1ec
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld a, [hl]
- ld [wd1f3], a
- ret
-; 1033af
-
-Function1033af: ; 1033af
- call GetJoypad
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .left
- bit D_RIGHT_F, a
- jr nz, .right
- bit B_BUTTON_F, a
- jr nz, .b
- bit A_BUTTON_F, a
- jr nz, .a
- bit D_UP_F, a
- jr nz, .up
- bit D_DOWN_F, a
- jr nz, .down
- ret
-
-.up
- ld a, [wd1f0]
- dec a
- ld [wd1f0], a
- cp 1
- ret nc
- ld a, [wd1ee]
- ld [wd1f0], a
- ret
-
-.down
- ld a, [wd1f0]
- inc a
- ld [wd1f0], a
- ld c, a
- ld a, [wd1ee]
- cp c
- ret nc
- ld a, 1
- ld [wd1f0], a
- ret
-
-.b
- call PlayClickSFX
- ld hl, Buffer2
- set 7, [hl]
- ret
-
-.a
- ld a, [wd1f3]
- cp 3
- jr nz, .a_return
- ld de, SFX_TRANSACTION
- call PlaySFX
- ld hl, Buffer2
- set 7, [hl]
- ld hl, Buffer2
- set 6, [hl]
- ret
-
-.left
-.right
-.a_return
- ld a, [wd1f3]
- cp 3
- ret z
- ld de, SFX_PUSH_BUTTON
- call PlaySFX
- ld bc, 8
- call Function10350f
- ld a, [Buffer1]
- xor e
- ld [Buffer1], a
- ret
-; 10342c
-
-Function10342c: ; 10342c
- ld a, [wd1f0]
- ld [wd1f2], a
- call Function103490
- call Function10343c
- call Function1034a7
- ret
-; 10343c
-
-Function10343c: ; 10343c
- ld a, [wd1f3]
- cp $02
- jr nz, .asm_103452
- ld bc, 1
- call Function1034f7
- ld c, $12
- ld b, $01
- call Function1034e0
- jr .asm_10345f
-
-.asm_103452
- ld bc, $ffed
- call Function1034f7
- ld c, $12
- ld b, $02
- call Function1034e0
-
-.asm_10345f
- ld bc, 0
- call Function10350f
- ld bc, 1
- call Function103487
- ld bc, 8
- call Function10350f
- ld a, [Buffer1]
- and e
- ld bc, 2
- jr z, .asm_10347d
- ld bc, 4
-
-.asm_10347d
- call Function10350f
- ld bc, 11
- call Function103487
- ret
-; 103487
-
-Function103487: ; 103487
- push de
- call Function1034f7
- pop de
- call PlaceString
- ret
-; 103490
-
-Function103490: ; 103490
- hlcoord 0, 15
- ld c, $14
- ld b, $03
- call Function1034e0
- ld bc, 6
- call Function10350f
- hlcoord 1, 16
- call PlaceString
- ret
-; 1034a7
-
-Function1034a7: ; 1034a7
- ld a, [wd1f1]
- ld [wd1f2], a
- ld bc, 10
- call Function1034f7
- ld [hl], $7f
- ld bc, 10
- call Function1034f1
- ld [hl], $ed
- ret
-; 1034be
-
-Function1034be: ; 1034be
- ld a, $01
- ld [wd1f2], a
- ld hl, wd1ec
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hli]
-.asm_1034ca
- push af
- ld a, [hli]
- push hl
- ld [wd1f3], a
- call Function10343c
- ld hl, wd1f2
- inc [hl]
- pop hl
- pop af
- dec a
- jr nz, .asm_1034ca
- call Function103490
- ret
-; 1034e0
-
-Function1034e0: ; 1034e0
- push bc
- push hl
- call ClearBox
- pop hl
- ld bc, AttrMap - TileMap
- add hl, bc
- pop bc
- ld a, $06
- call FillBoxWithByte
- ret
-; 1034f1
-
-Function1034f1: ; 1034f1
- ld a, [wd1f0]
- ld [wd1f2], a
-
-Function1034f7: ; 10134f7
- hlcoord 0, 0
- add hl, bc
- ld a, [wd1ef]
- ld bc, SCREEN_WIDTH
- call AddNTimes
- ld a, [wd1f2]
- dec a
- ld bc, 40
- call AddNTimes
- ret
-; 10350f
-
-Function10350f: ; 10350f
- ld a, [wd1f3]
- push bc
- ld hl, Unknown_103522
- ld bc, 9
- call AddNTimes
- pop bc
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ret
-; 103522
-
-Unknown_103522: ; 103522
- dw String_103546
- dw String_103598
- dw String_1035a0
- dw String_10355f
- db $01
- dw String_10354f
- dw String_1035a8
- dw String_1035b1
- dw String_103571
- db $02
- dw String_103557
- dw String_1035ba
- dw String_1035bd
- dw String_103585
- db $04
- dw String_103545
- dw String_1035c1
- dw String_1035c1
- dw String_103545
-
-String_103545: db "@"
-String_103546: db "せんとう アニメ@"
-String_10354f: db "でんわばんごう@"
-String_103557: db "めいしこうかん@"
-String_10355f: db "でんわを かけるひとが きめられる@"
-String_103571: db "でんわばんごうの にゅうりょくのしかた@"
-String_103585: db "あたらしいめいしが あれば こうかん@"
-String_103598: db "とばして みる@"
-String_1035a0: db "じっくり みる@"
-String_1035a8: db "めいしからえらぶ@"
-String_1035b1: db "すうじで いれる@"
-String_1035ba: db "する@"
-String_1035bd: db "しない@"
-String_1035c1: db "けってい@"
-; 1035c6
-
-Function1035c6: ; 1035c6
- callba Function10138b
- ld b, 0
- ld hl, Unknown_1035d7
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 1035d7
-
-Unknown_1035d7: ; 1035d7
- dw Unknown_1035e7
- dw Unknown_1035f3
- dw Unknown_103608
- dw Unknown_103608
- dw Unknown_1035fe
- dw AskMobileOrCable
- dw AskMobileOrCable
- dw AskMobileOrCable
-
-Unknown_1035e7: ; 1035e7
- dwcoord 0, 6
- db $12, $07, $07
- dw .this
-.this
- db 4, 2, 1, 0, 3
-
-Unknown_1035f3: ; 1035f3
- dwcoord 0, 7
- db $12, $06, $09
- dw .this
-.this
- db 3, 2, 1, 3
-
-Unknown_1035fe: ; 1035fe
- dwcoord 0, 9
- db $12, $04, $0b
- dw .this
-.this
- db 2, 0, 3
-
-Unknown_103608: ; 103608
- dwcoord 0, 9
- db $12, $04, $0b
- dw .this
-.this
- db 2, 2, 3
-; 103612
-
-AskMobileOrCable: ; 103612
- ld hl, MenuDataHeader_103640
- call LoadMenuDataHeader
- ld a, [wMobileOrCable_LastSelection]
- and $0f
- jr z, .skip_load
- ld [wMenuCursorBuffer], a
-
-.skip_load
- call VerticalMenu
- call CloseWindow
- jr c, .pressed_b
- ld a, [wMenuCursorY]
- ld [ScriptVar], a
- ld c, a
- ld a, [wMobileOrCable_LastSelection]
- and $f0
- or c
- ld [wMobileOrCable_LastSelection], a
- ret
-
-.pressed_b
- xor a
- ld [ScriptVar], a
- ret
-; 103640
-
-MenuDataHeader_103640: ; 103640
- db $40 ; flags
- db 6, 13 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_103648
- db 1 ; default option
-
-MenuData2_103648: ; 103648
- db $80 ; flags
- db 2
- db "モバイル@"
- db "ケーブル@"
-; 103654
-
-Function103654: ; 103654
- callba Mobile_AlwaysReturnNotCarry
- bit 7, c
- jr nz, .asm_103666
- ld hl, wcd2a
- res 5, [hl]
- ld c, $02
- ret
-
-.asm_103666
- ld hl, wcd2a
- set 5, [hl]
- ld c, $01
- ret
-; 10366e
-
-Mobile_SelectThreeMons: ; 10366e
- callba Mobile_AlwaysReturnNotCarry
- bit 7, c
- jr z, .asm_10369b
- ld hl, UnknownText_0x10375d
- call PrintText
- call YesNoBox
- jr c, .asm_103696
- callba CheckForMobileBattleRules
- jr nc, .asm_103690
- call JoyWaitAorB
- jr .asm_103696
-
-.asm_103690
- ld a, $01
- ld [ScriptVar], a
- ret
-
-.asm_103696
- xor a
- ld [ScriptVar], a
- ret
-
-.asm_10369b
- ld hl, wMobileOrCable_LastSelection
- bit 7, [hl]
- set 7, [hl]
- jr nz, .asm_1036b5
- ld hl, UnknownText_0x103762
- call PrintText
- call YesNoBox
- jr c, .asm_1036b5
- call Function1036f9
- call JoyWaitAorB
-
-.asm_1036b5
- call Function103700
- jr c, .asm_1036f4
- ld hl, MenuDataHeader_103747
- call LoadMenuDataHeader
- call VerticalMenu
- call ExitMenu
- jr c, .asm_1036f4
- ld a, [wMenuCursorY]
- cp $01
- jr z, .asm_1036d9
- cp $02
- jr z, .asm_1036f4
- cp $03
- jr z, .asm_1036ec
- jr .asm_1036b5
-
-.asm_1036d9
- callba CheckForMobileBattleRules
- jr nc, .asm_1036e6
- call JoyWaitAorB
- jr .asm_1036f4
-
-.asm_1036e6
- ld a, $01
- ld [ScriptVar], a
- ret
-
-.asm_1036ec
- call Function1036f9
- call JoyWaitAorB
- jr .asm_1036b5
-
-.asm_1036f4
- xor a
- ld [ScriptVar], a
- ret
-; 1036f9
-
-Function1036f9: ; 1036f9
- ld hl, UnknownText_0x103767
- call PrintText
- ret
-; 103700
-
-Function103700: ; 103700
- ld c, $0a
- ld hl, SwarmFlags
- bit 4, [hl]
- jr z, .asm_10370f
- callba Function1008a6
-
-.asm_10370f
- ld a, c
- ld [StringBuffer2], a
- ld a, [StringBuffer2]
- cp $05
- jr nc, .asm_103724
- cp $02
- jr nc, .asm_10372c
- cp $01
- jr nc, .asm_103734
- jr .asm_10373c
-
-.asm_103724
- ld hl, UnknownText_0x10376c
- call PrintText
- and a
- ret
-
-.asm_10372c
- ld hl, UnknownText_0x103771
- call PrintText
- and a
- ret
-
-.asm_103734
- ld hl, UnknownText_0x103776
- call PrintText
- and a
- ret
-
-.asm_10373c
- ld hl, UnknownText_0x10377b
- call PrintText
- call JoyWaitAorB
- scf
- ret
-; 103747
-
-MenuDataHeader_103747: ; 103747
- db $40 ; flags
- db 5, 13 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_10374f
- db 1 ; default option
-
-MenuData2_10374f: ; 10374f
- db $c0 ; flags
- db 3
- db "はい@"
- db "やめる@"
- db "せつめい@"
-; 10375d
-
-UnknownText_0x10375d: ; 0x10375d
- text_jump UnknownText_0x1c422a
- db "@"
-; 0x103762
-UnknownText_0x103762: ; 0x103762
- text_jump UnknownText_0x1c4275
- db "@"
-; 0x103767
-UnknownText_0x103767: ; 0x103767
- text_jump UnknownText_0x1c4298
- db "@"
-; 0x10376c
-UnknownText_0x10376c: ; 0x10376c
- text_jump UnknownText_0x1c439c
- db "@"
-; 0x103771
-UnknownText_0x103771: ; 0x103771
- text_jump UnknownText_0x1c43dc
- db "@"
-; 0x103776
-UnknownText_0x103776: ; 0x103776
- text_jump UnknownText_0x1c4419
- db "@"
-; 0x10377b
-UnknownText_0x10377b: ; 0x10377b
- text_jump UnknownText_0x1c445a
- db "@"
-; 0x103780
-
-Function103780: ; 103780
- ld a, [wd265]
- push af
- call Function10378c
- pop af
- ld [wd265], a
- ret
-; 10378c
-
-Function10378c: ; 10378c
- ld c, 0
- ld hl, SwarmFlags
- bit 4, [hl]
- jr nz, .already_set
- ld c, $01
- ld hl, SwarmFlags
- set 4, [hl]
-
-.already_set
- push bc
- callba Link_SaveGame
- pop bc
- jr c, .failed_to_save
- ld a, $01
- ld [ScriptVar], a
- ld a, c
- and a
- ret z
- callba Function1006fd
- ret
-
-.failed_to_save
- xor a
- ld [ScriptVar], a
- ld a, c
- and a
- ret z
- ld hl, SwarmFlags
- res 4, [hl]
- ret
-; 1037c2
-
-Function1037c2: ; 1037c2
- call Function103823
- jr c, .nope
- ld a, [wdc5f]
- and a
- jr z, .nope
- ld hl, UnknownText_0x1037e6
- call PrintText
- call YesNoBox
- jr c, .nope
- ld a, $01
- ld [ScriptVar], a
- ret
-
-.nope
- xor a
- ld [wdc5f], a
- ld [ScriptVar], a
- ret
-; 1037e6
-
-UnknownText_0x1037e6: ; 0x1037e6
- text_jump UnknownText_0x1c449c
- db "@"
-; 0x1037eb
-
-Function1037eb: ; 1037eb
- call Function103823
- jr nc, .asm_103807
- ld hl, UnknownText_0x103819
- call PrintText
- call JoyWaitAorB
- ld hl, UnknownText_0x10381e
- call PrintText
- call JoyWaitAorB
- xor a
- ld [ScriptVar], a
- ret
-
-.asm_103807
- ld a, [wdc60]
- and a
- jr nz, .asm_103813
- ld a, $01
- ld [ScriptVar], a
- ret
-
-.asm_103813
- ld a, $02
- ld [ScriptVar], a
- ret
-; 103819
-
-UnknownText_0x103819: ; 0x103819
- text_jump UnknownText_0x1c44c0
- db "@"
-; 0x10381e
-
-UnknownText_0x10381e: ; 0x10381e
- text_jump UnknownText_0x1c44e7
- db "@"
-; 0x103823
-
-Function103823: ; 103823
- callba Mobile_AlwaysReturnNotCarry
- bit 7, c
- jr nz, .asm_103838
- callba Function1008a6
- ld a, c
- cp $01
- jr c, .asm_10383a
-
-.asm_103838
- xor a
- ret
-
-.asm_10383a
- scf
- ret
-; 10383c
-
-Function10383c: ; 10383c
- ld a, $01
- ld [wdc60], a
- xor a
- ld hl, wPlayerMonSelection
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, UnknownText_0x103876
- call PrintText
- call JoyWaitAorB
- callba Script_reloadmappart
- callba Function4a94e
- jr c, .asm_103870
- ld hl, wd002
- ld de, wPlayerMonSelection
- ld bc, 3
- call CopyBytes
- xor a
- ld [ScriptVar], a
- ret
-
-.asm_103870
- ld a, $01
- ld [ScriptVar], a
- ret
-; 103876
-
-UnknownText_0x103876: ; 0x103876
- text_jump UnknownText_0x1c4508
- db "@"
-; 0x10387b
-
-Function10387b: ; 10387b
- callba Mobile_AlwaysReturnNotCarry
- bit 7, c
- ret nz
- callba Function1008a6
- ld a, c
- ld [StringBuffer2], a
- ld hl, UnknownText_0x103898
- call PrintText
- call JoyWaitAorB
- ret
-; 103898
-
-UnknownText_0x103898: ; 0x103898
- text_jump UnknownText_0x1c4525
- db "@"
-; 0x10389d
--- a/misc/mobile_41.asm
+++ /dev/null
@@ -1,1115 +1,0 @@
-SECTION "bank41_2", ROMX
-
-; These functions deal with miscellaneous statistics
-; which were used for Trainer Rankings in Pokémon News.
-
-; Copies certain values at the time the player enters the Hall of Fame.
-TrainerRankings_HallOfFame2:: mobile ; 0x105ef6
- ld a, BANK(sTrainerRankingGameTimeHOF)
- call GetSRAMBank
-
- ld hl, GameTimeHours
- ld de, sTrainerRankingGameTimeHOF
- ld bc, 4
- call CopyBytes
-
- ld hl, sTrainerRankingStepCount
- ld de, sTrainerRankingStepCountHOF
- ld bc, 4
- call CopyBytes
-
- ; sTrainerRankingHealings is only a 3-byte value.
- ; One extraneous byte is copied from sTrainerRankingMysteryGift.
- ld hl, sTrainerRankingHealings
- ld de, sTrainerRankingHealingsHOF
- ld bc, 4
- call CopyBytes
-
- ld hl, sTrainerRankingBattles
- ld de, sTrainerRankingBattlesHOF
- ld bc, 3
- call CopyBytes
-
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105f33
-
-TrainerRankings_MagikarpLength: mobile ; 105f33
- ld a, BANK(sTrainerRankingLongestMagikarp)
- call GetSRAMBank
- ld de, Buffer1
- ld hl, sTrainerRankingLongestMagikarp
-
- ; Is this Magikarp the longest measured?
- ld a, [de]
- cp [hl]
- jr z, .isLowByteHigher
- jr nc, .newRecordLongest
- jr .checkShortest
-
-.isLowByteHigher
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- dec hl
- dec de
- jr c, .checkShortest
-
-.newRecordLongest
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- dec de
- ld [hl], a
-
-.checkShortest
- ; First, check if the record for shortest Magikarp is 0.
- ; This seems unnecessary, because the value is initialized to 100.0 cm.
- ld hl, sTrainerRankingShortestMagikarp
- ld a, [hli]
- or [hl]
- dec hl
- jr z, .newRecordShortest
-
- ; Now check if this Magikarp is the shortest
- ld a, [de]
- cp [hl]
- jr z, .isLowByteLower
- jr c, .newRecordShortest
- jr .done
-
-.isLowByteLower
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- jr nc, .done
- dec hl
- dec de
-
-.newRecordShortest
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105f79
-
-TrainerRankings_BugContestScore: mobile ; 105f79
- ld a, BANK(sTrainerRankingBugContestScore)
- call GetSRAMBank
- ld a, [hProduct]
- ld hl, sTrainerRankingBugContestScore
- cp [hl]
- jr z, .isLowByteHigher
- jr nc, .newHighScore
- jr .done
-
-.isLowByteHigher
- inc hl
- ld a, [hMultiplicand]
- cp [hl]
- jr c, .done
- dec hl
-
-.newHighScore
- ld a, [hProduct]
- ld [hli], a
- ld a, [hMultiplicand]
- ld [hl], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105f9f
-
-TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f
- ld a, BANK(sTrainerRankingCurrentSlotsStreak)
- call GetSRAMBank
-
- ; Increment the current streak
- ld hl, sTrainerRankingCurrentSlotsStreak + 1
- inc [hl]
- jr nz, .noCarry
- dec hl
- inc [hl]
- inc hl
-
-.noCarry
- dec hl
- ; Now check if this is a new record for longest streak
- ld a, [sTrainerRankingLongestSlotsStreak]
- cp [hl]
- jr z, .isLowByteHigher
- jr c, .newRecordStreak
- jr .done
-
-.isLowByteHigher
- inc hl
- ld a, [sTrainerRankingLongestSlotsStreak + 1]
- cp [hl]
- jr nc, .done
- dec hl
-
-.newRecordStreak
- ld a, [hli]
- ld [sTrainerRankingLongestSlotsStreak], a
- ld a, [hl]
- ld [sTrainerRankingLongestSlotsStreak + 1], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105fd0
-
-TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0
- ld a, BANK(sTrainerRankingCurrentSlotsStreak)
- call GetSRAMBank
- ld hl, sTrainerRankingCurrentSlotsStreak
- xor a
- ld [hli], a
- ld [hl], a
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105fe3
-
-TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3
- ld a, BANK(sTrainerRankingTotalSlotsPayouts)
- call GetSRAMBank
- ld hl, sTrainerRankingTotalSlotsPayouts + 3
- ld a, e
- add [hl]
- ld [hld], a
- ld a, d
- adc [hl]
- ld [hld], a
- jr nc, .done
- inc [hl]
- jr nz, .done
- dec hl
- inc [hl]
- jr nz, .done
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 106008
-
-TrainerRankings_AddToBattlePayouts: mobile ; 106008
- ld a, BANK(sTrainerRankingTotalBattlePayouts)
- call GetSRAMBank
- ld hl, sTrainerRankingTotalBattlePayouts + 3
- ld a, [bc]
- dec bc
- add [hl]
- ld [hld], a
- ld a, [bc]
- dec bc
- adc [hl]
- ld [hld], a
- ld a, [bc]
- adc [hl]
- ld [hld], a
- jr nc, .done
- inc [hl]
- jr nz, .done
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 10602e
-
-TrainerRankings_StepCount: mobile ; 10602e (41:602e)
- ld hl, sTrainerRankingStepCount
- jp TrainerRankings_Increment4Byte
-
-; Unreferenced in English version.
-TrainerRankings_BattleTowerWins: mobile ; 106035
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8d]
- and a
- call CloseSRAM
- ret nz
- ld hl, sTrainerRankingBattleTowerWins
- jp TrainerRankings_Increment2Byte
-
-TrainerRankings_TMsHMsTaught: mobile ; 106049
- ld hl, sTrainerRankingTMsHMsTaught
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Battles: mobile ; 106050
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
- ret z
- ld hl, sTrainerRankingBattles
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_WildBattles: mobile ; 10605d
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
- ret z
- ld hl, sTrainerRankingWildBattles
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_TrainerBattles: mobile ; 10606a
- ld hl, sTrainerRankingTrainerBattles
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused1: mobile ; 106071
- ld hl, sTrainerRankingUnused1
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_HallOfFame:: mobile ; 0x106078
- ld hl, sTrainerRankingHOFEntries
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f)
- ld hl, sTrainerRankingWildMonsCaught
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_HookedEncounters: mobile ; 106086
- ld hl, sTrainerRankingHookedEncounters
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_EggsHatched: mobile ; 10608d (41:608d)
- ld hl, sTrainerRankingEggsHatched
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_MonsEvolved: mobile ; 106094
- ld hl, sTrainerRankingMonsEvolved
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_FruitPicked: mobile ; 10609b
- ld hl, sTrainerRankingFruitPicked
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Healings: mobile ; 1060a2
- ld hl, sTrainerRankingHealings
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9)
- ld hl, sTrainerRankingMysteryGift
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Trades: mobile ; 1060af
- ld hl, sTrainerRankingTrades
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Fly: mobile ; 1060b5
- ld hl, sTrainerRankingFly
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Surf: mobile ; 1060bb
- ld hl, sTrainerRankingSurf
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Waterfall: mobile ; 1060c1
- ld hl, sTrainerRankingWaterfall
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_WhiteOuts: mobile ; 1060c7
- ld hl, sTrainerRankingWhiteOuts
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_LuckyNumberShow: mobile ; 1060cd
- ld hl, sTrainerRankingLuckyNumberShow
- jr TrainerRankings_Increment2Byte
-
-TrainerRankings_PhoneCalls: mobile ; 1060d3
- ld hl, sTrainerRankingPhoneCalls
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused2: mobile ; 1060df
- ld hl, sTrainerRankingUnused2
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_LinkBattles: mobile ; 1060df
- ld hl, sTrainerRankingLinkBattles
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Splash: mobile ; 1060e5
- ; Only counts if it’s the player’s turn
- ld a, [hBattleTurn]
- and a
- ret nz
- ld hl, sTrainerRankingSplash
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_TreeEncounters: mobile ; 1060ef
- ld hl, sTrainerRankingTreeEncounters
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused3: mobile ; 1060f5
- ld hl, sTrainerRankingUnused3
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_ColosseumWins: mobile ; win
- ld hl, sTrainerRankingColosseumWins
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_ColosseumLosses: mobile ; lose
- ld hl, sTrainerRankingColosseumLosses
- jr TrainerRankings_Increment3Byte
-; 106107
-
-TrainerRankings_ColosseumDraws: mobile ; draw
- ld hl, sTrainerRankingColosseumDraws
- jr TrainerRankings_Increment3Byte
-; 10610d
-
-; Counts uses of both Selfdestruct and Explosion.
-TrainerRankings_Selfdestruct: mobile ; 10610d
- ; Only counts if it’s the player’s turn
- ld a, [hBattleTurn]
- and a
- ret nz
- ld hl, sTrainerRankingSelfdestruct
- jr TrainerRankings_Increment3Byte
-; 106117
-
-TrainerRankings_Increment4Byte: ; 106117
- push bc
- ld bc, 3
- jr TrainerRankings_Increment
-; 10611d
-
-TrainerRankings_Increment3Byte: ; 10611d
- push bc
- ld bc, 2
- jr TrainerRankings_Increment
-; 106123
-
-TrainerRankings_Increment2Byte: ; 106123
- push bc
- ld bc, 1
- jr TrainerRankings_Increment
-; 106129
-
-; unused
-TrainerRankings_Increment1Byte: ; 106129
- push bc
- ld bc, 0
-
-; Increments a big-endian value of bc + 1 bytes at hl
-TrainerRankings_Increment: ; 10612d
- ld a, BANK(sTrainerRankings)
- call GetSRAMBank
- push hl
- push de
- ld e, c
- inc e
-.asm_106136
- ld a, [hli]
- inc a
- jr nz, .asm_10613d
- dec e
- jr nz, .asm_106136
-
-.asm_10613d
- pop de
- pop hl
- jr z, .asm_10614d
- add hl, bc
-.asm_106142
- inc [hl]
- jr nz, .asm_10614d
- ld a, c
- and a
- jr z, .asm_10614d
- dec hl
- dec c
- jr .asm_106142
-
-.asm_10614d
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- pop bc
- ret
-; 106155
-
-; Used when SRAM bank 5 isn’t already loaded — what’s the point of this?
-UpdateTrainerRankingsChecksum2: mobile ; 106155
- ld a, BANK(sTrainerRankings)
- call GetSRAMBank
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 106162
-
-UpdateTrainerRankingsChecksum: ; 106162
- push de
- call CalculateTrainerRankingsChecksum
- ld hl, sTrainerRankingsChecksum
- ld [hl], d
- inc hl
- ld [hl], e
- pop de
- ret
-; 10616e
-
-CalculateTrainerRankingsChecksum: ; 10616e
- push bc
- ld hl, sTrainerRankings
- ld bc, sTrainerRankingsChecksum - sTrainerRankings
- xor a
- ld de, 0
-.asm_106179
- ld a, e
- add [hl]
- ld e, a
- jr nc, .asm_10617f
- inc d
-
-.asm_10617f
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .asm_106179
- pop bc
- ret
-; 106187
-
-
-BackupMobileEventIndex: ; 106187
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- ld a, [sMobileEventIndex]
- push af
- ld a, BANK(sMobileEventIndexBackup)
- call GetSRAMBank
- pop af
- ld [sMobileEventIndexBackup], a
- call CloseSRAM
- ret
-; 10619d
-
-
-RestoreMobileEventIndex: ; 10619d (41:619d)
- ld a, BANK(sMobileEventIndexBackup)
- call GetSRAMBank
- ld a, [sMobileEventIndexBackup]
- push af
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- pop af
- ld [sMobileEventIndex], a
- call CloseSRAM
- ret
-; 1061b3 (41:61b3)
-
-; Unreferenced in English version.
-VerifyTrainerRankingsChecksum: ; 1061b3
- call CalculateTrainerRankingsChecksum
- ld hl, sTrainerRankingsChecksum
- ld a, d
- cp [hl]
- ret nz
- inc hl
- ld a, e
- cp [hl]
- ret
-; 1061c0
-
-DeleteMobileEventIndex: ; 1061c0 (41:61c0)
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- xor a
- ld [sMobileEventIndex], a
- call CloseSRAM
- ret
-; 1061cd (41:61cd)
-
-; Used in the Japanese version to initialize Trainer Rankings data
-; for a new save file. Unreferenced in the English version.
-InitializeTrainerRankings:
- ld hl, sTrainerRankings
- ld bc, sTrainerRankingsEnd - sTrainerRankings
- xor a
- call ByteFill
-
- ; Initialize the shortest Magikarp to 100.0 cm
- ld hl, sTrainerRankingShortestMagikarp
- ld a, $3
- ld [hli], a
- ld [hl], $e8
-
- call UpdateTrainerRankingsChecksum
- ld hl, sTrainerRankings
- ld de, sTrainerRankingsBackup
- ld bc, sTrainerRankingsEnd - sTrainerRankings
- call CopyBytes
- ret
-; 1061ef
-
-
-_MobilePrintNum:: ; 1061ef
-; Supports signed 31-bit integers (up to 10 digits)
-; b: Bits 0-4 = # bytes
-; Bit 7 = set if negative
-; c: Number of digits
-; de: highest byte of number to convert
-; hl: where to print the converted string
- push bc
- xor a
- ld [hPrintNum1], a
- ld [hPrintNum2], a
- ld [hPrintNum3], a
- ld a, b
- and $f
- cp $1
- jr z, .one_byte
- cp $2
- jr z, .two_bytes
- cp $3
- jr z, .three_bytes
-; four bytes
- ld a, [de]
- ld [hPrintNum1], a
- inc de
-
-.three_bytes
- ld a, [de]
- ld [hPrintNum2], a
- inc de
-
-.two_bytes
- ld a, [de]
- ld [hPrintNum3], a
- inc de
-
-.one_byte
- ld a, [de]
- ld [hPrintNum4], a
- inc de
-
- push de
- xor a
- ld [hPrintNum9], a
- ld a, b
- ld [hPrintNum10], a
- ld a, c
- cp 2
- jr z, .two_digits
- ld de, ._2
- cp 3
- jr z, .three_to_nine_digits
- ld de, ._3
- cp 4
- jr z, .three_to_nine_digits
- ld de, ._4
- cp 5
- jr z, .three_to_nine_digits
- ld de, ._5
- cp 6
- jr z, .three_to_nine_digits
- ld de, ._6
- cp 7
- jr z, .three_to_nine_digits
- ld de, ._7
- cp 8
- jr z, .three_to_nine_digits
- ld de, ._8
- cp 9
- jr z, .three_to_nine_digits
- ld de, ._9
-
-.three_to_nine_digits
- inc de
- inc de
- inc de
- dec a
- dec a
-
-.digit_loop
- push af
- call .Function1062b2
- call .Function1062ff
-rept 4
- inc de
-endr
- pop af
- dec a
- jr nz, .digit_loop
-
-.two_digits
- ld c, 0
- ld a, [hPrintNum4]
-.mod_ten_loop
- cp 10
- jr c, .simple_divide_done
- sub 10
- inc c
- jr .mod_ten_loop
-
-.simple_divide_done
- ld b, a
- ld a, [hPrintNum9]
- or c
- ld [hPrintNum9], a
- jr nz, .create_digit
- call .LoadMinusTenIfNegative
- jr .done
-
-.create_digit
- ld a, "0"
- add c
- ld [hl], a
-
-.done
- call .Function1062ff
- ld a, "0"
- add b
- ld [hli], a
- pop de
- pop bc
- ret
-; 106292
-
-._9 dd 1000000000
-._8 dd 100000000
-._7 dd 10000000
-._6 dd 1000000
-._5 dd 100000
-._4 dd 10000
-._3 dd 1000
-._2 dd 100
-; 1062b2
-
-.Function1062b2: ; 1062b2
- ld c, $0
-.asm_1062b4
- ld a, [de]
- dec de
- ld b, a
- ld a, [hPrintNum4]
- sub b
- ld [hPrintNum8], a
- ld a, [de]
- dec de
- ld b, a
- ld a, [hPrintNum3]
- sbc b
- ld [hPrintNum7], a
- ld a, [de]
- dec de
- ld b, a
- ld a, [hPrintNum2]
- sbc b
- ld [hPrintNum6], a
- ld a, [de]
- inc de
- inc de
- inc de
- ld b, a
- ld a, [hPrintNum1]
- sbc b
- ld [hPrintNum5], a
- jr c, .asm_1062eb
- ld a, [hPrintNum5]
- ld [hPrintNum1], a
- ld a, [hPrintNum6]
- ld [hPrintNum2], a
- ld a, [hPrintNum7]
- ld [hPrintNum3], a
- ld a, [hPrintNum8]
- ld [hPrintNum4], a
- inc c
- jr .asm_1062b4
-
-.asm_1062eb
- ld a, [hPrintNum9]
- or c
- jr z, .LoadMinusTenIfNegative
- ld a, -10
- add c
- ld [hl], a
- ld [hPrintNum9], a
- ret
-
-.LoadMinusTenIfNegative:
- ld a, [hPrintNum10]
- bit 7, a
- ret z
-
- ld [hl], -10
- ret
-; 1062ff
-
-.Function1062ff: ; 1062ff
- ld a, [hPrintNum10]
- bit 7, a
- jr nz, .asm_10630d
- bit 6, a
- jr z, .asm_10630d
- ld a, [hPrintNum9]
- and a
- ret z
-
-.asm_10630d
- inc hl
- ret
-; 10630f
-
-; functions related to the cable club and various NPC scripts referencing mobile communications
-
-Mobile_DummyReturnFalse: ; 10630f
- xor a
- ld [ScriptVar], a
- ret
-; 106314
-
-MobileFn_106314: mobile ; 106314
- ld a, $4
- call GetSRAMBank
- ld a, c
- cpl
- ld [$b000], a
- call CloseSRAM
- ld a, $7
- call GetSRAMBank
- ld a, c
- ld [$a800], a
- call CloseSRAM
- ret
-; 10632f
-
-Mobile_AlwaysReturnNotCarry: ; 10632f
- or a
- ret
-
-Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
- ; check ~[4:b000] == [7:a800]
- ld a, $4
- call GetSRAMBank
- ld a, [$b000]
- cpl
- ld b, a
- call CloseSRAM
- ld a, $7
- call GetSRAMBank
- ld a, [$a800]
- ld c, a
- call CloseSRAM
- ld a, c
- cp b
- jr nz, .nope
-
- ; check [7:a800] != 0
- and a
- jr z, .nope
-
- ; check !([7:a800] & %01110000)
- and %10001111
- cp c
- jr nz, .nope
-
- ld c, a
- scf
- ret
-
-.nope
- xor a
- ld c, a
- ret
-; 10635c
-
-Function10635c: ; 10635c
- ld a, [wMobileCommsJumptableIndex]
- bit 7, a
- ret nz
- ld a, [wMobileCommsJumptableIndex]
- ld hl, .Jumptable
- rst JumpTable
- ret
-; 10636a
-
-.Jumptable: ; 10636a
- dw .init
- dw Function106392
- dw Function1063cc
- dw Function1063d8
- dw Function1063e5
- dw Function1063f3
- dw Function106403
- dw Function106442
- dw Function106453
-; 10637c
-
-.init: ; 10637c
- ld de, wcd30
- ld hl, $41
- ld bc, $41
- ld a, $40
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 106392
-
-Function106392: ; 106392
- xor a
- ld [wcf64], a
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_1063a2
- bit 0, a
- jr z, .asm_1063bf
- ret
-
-.asm_1063a2
- call Mobile_AlwaysReturnNotCarry
- ld a, c
- and a
- jr nz, .asm_1063b4
- ld a, $b
- ld [wcf64], a
- ld a, $7
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_1063b4
- ld a, $7
- ld [wcf64], a
- ld a, $7
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_1063bf
- ld a, $1
- ld [wcf64], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1063cc
-
-Function1063cc: ; 1063cc
- ld a, $78
- ld [wcd42], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
-
-Function1063d8: ; 1063d8
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1063e5
-
-Function1063e5: ; 1063e5
- ld a, [wcf64]
- cp $3
- ret nz
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1063f3
-
-Function1063f3: ; 1063f3
- ld de, wcd31
- ld a, $32
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 106403
-
-Function106403: ; 106403
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_106426
- bit 0, a
- jr z, .asm_10640f
- ret
-
-.asm_10640f
- ld a, [wcd31]
- and $80
- ld c, a
- ld a, [wcd30]
- or c
- inc a
- ld c, a
- call MobileFn_106314
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_106426
- call Mobile_AlwaysReturnNotCarry
- ld a, c
- and a
- jr z, .asm_106435
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_106435
- ld c, $0
- call MobileFn_106314
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 106442
-
-Function106442: ; 106442
- ld a, $36
- call Function3e32
- xor a
- ld [hMobile], a
- ld [hMobileReceive], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
-
-Function106453: ; 106453
- ld a, [wMobileCommsJumptableIndex]
- set 7, a
- ld [wMobileCommsJumptableIndex], a
- nop
- ld a, $4
- ld [wcf64], a
- ret
-; 106462
-
-MobileFunc_106462: mobile
- ret
-; 106464
-
-Function106464:: ; 106464
- ld de, MobilePhoneTilesGFX
- ld hl, VTiles2 tile $60
- lb bc, BANK(MobilePhoneTilesGFX), 1
- call Get2bpp
- ld de, FontsExtra2_UpArrowGFX
- ld hl, VTiles2 tile $61
- lb bc, BANK(FontsExtra2_UpArrowGFX), 1
- call Get2bpp
- ld de, GFX_106514
- ld hl, VTiles2 tile $62
- ld c, 9
- ld b, BANK(GFX_106514)
- call Get2bpp
- ld de, $40b0
- ld hl, VTiles2 tile $6b
- ld b, $f ; XXX no graphics at 0f:40b0
- call Get2bpp
- callba LoadFrame
- ret
-; 10649b
-
-Function10649b: ; 10649b
- ld a, [TextBoxFrame]
- and $7
- ld bc, 3 tiles
- ld hl, Frames
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, VTiles2 tile $79
- ld c, 6
- ld b, BANK(Frames)
- call Function1064c3
- ld hl, VTiles2 tile $7f
- ld de, TextBoxSpaceGFX
- ld c, 1
- ld b, BANK(TextBoxSpaceGFX)
- call Function1064c3
- ret
-; 1064c3
-
-Function1064c3: ; 1064c3
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push bc
- push hl
- ld hl, Function3f88
- ld a, b
- rst FarCall
- pop hl
- pop bc
- pop af
- ld [rSVBK], a
- jr asm_1064ed
-
-Function1064d8: ; 1064d8
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push bc
- push hl
- ld hl, Function3f9f
- ld a, b
- rst FarCall
- pop hl
- pop bc
- pop af
- ld [rSVBK], a
- jr asm_1064ed
-
-asm_1064ed
- ld de, wDecompressScratch
- ld b, $0
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- call Get2bpp
- pop af
- ld [rVBK], a
- pop af
- ld [rSVBK], a
- ret
-; 10650a
-
-Function10650a: ; 10650a
- ld de, MobilePhoneTilesGFX + $20
- lb bc, BANK(MobilePhoneTilesGFX), $11
- call Get2bpp
- ret
-; 106514
-
-GFX_106514:
-INCBIN "gfx/unknown/106514.2bpp"
--- a/misc/mobile_42.asm
+++ /dev/null
@@ -1,2009 +1,0 @@
-MobileTradeAnimation_SendGivemonToGTS: ; 108000
- ld a, $80
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_NoFrontpics
-; 10800b
-
-.TradeAnimScript:
- mobiletradeanim_showgtsgivemon
- mobiletradeanim_12
- mobiletradeanim_10
- mobiletradeanim_sendmon
- mobiletradeanim_06
- mobiletradeanim_0f
- mobiletradeanim_end
-
-MobileTradeAnimation_RetrieveGivemonFromGTS:
- ld a, $80
- jr asm_108018
-
-MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016
- ld a, $0
-asm_108018:
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_NoFrontpics
-; 108021
-
-.TradeAnimScript:
- mobiletradeanim_11
- mobiletradeanim_07
- mobiletradeanim_receivemon
- mobiletradeanim_showgtsgetmon
- mobiletradeanim_end
-
-Function108026: ; 108026
- ld a, $0
- jr asm_10802c
-
-Function10802a: ; 10802a
- ld a, $1
-
-asm_10802c:
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_Frontpics
-; 108035
-
-.TradeAnimScript: ; trade
- mobiletradeanim_showgivemon
- mobiletradeanim_12
- mobiletradeanim_02
- mobiletradeanim_sendmon
- mobiletradeanim_05
- mobiletradeanim_receivemon
- mobiletradeanim_showgetmon
- mobiletradeanim_end
-
-Function10803d: ; 10803d
- ld a, $0
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_NoFrontpics
-; 108048
-
-.TradeAnimScript:
- mobiletradeanim_11
- mobiletradeanim_07
- mobiletradeanim_receivemon
- mobiletradeanim_showoddegg
- mobiletradeanim_end
-
-Function10804d: ; 10804d
- ld a, $0
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_NoFrontpics
-; 108058
-
-.TradeAnimScript:
- mobiletradeanim_11
- mobiletradeanim_showgtsgetmon
- mobiletradeanim_end
-
-RunMobileTradeAnim_Frontpics: ; 10805b
- ld hl, wTradeAnimAddress
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- ld hl, VramState
- ld a, [hl]
- push af
- res 0, [hl]
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call Function1080b7
-.loop
- call MobileTradeAnim_JumptableLoop
- jr nc, .loop
- pop af
- ld [Options], a
- pop af
- ld [VramState], a
- pop af
- ld [hMapAnims], a
- ret
-; 108089
-
-RunMobileTradeAnim_NoFrontpics: ; 108089
- ld hl, wTradeAnimAddress
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- ld hl, VramState
- ld a, [hl]
- push af
- res 0, [hl]
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call Function108157
-.loop
- call MobileTradeAnim_JumptableLoop
- jr nc, .loop
- pop af
- ld [Options], a
- pop af
- ld [VramState], a
- pop af
- ld [hMapAnims], a
- ret
-; 1080b7
-
-Function1080b7: ; 1080b7
- xor a
- ld [wJumptableIndex], a
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearVTiles
- call MobileTradeAnim_ClearBGMap
- call LoadStandardFont
- call LoadFontsBattleExtra
-
- ld a, $1
- ld [rVBK], a
- ld hl, LZ_108da7
- ld de, VTiles2
- call Decompress
-
- ld a, $0
- ld [rVBK], a
- ld hl, LZ_108d27
- ld de, VTiles0 tile $20
- call Decompress
-
- call EnableLCD
-
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba ClearSpriteAnims
-
- call DelayFrame
-
- ld de, TradeBallGFX
- ld hl, VTiles0
- lb bc, BANK(TradeBallGFX), $06
- call Request2bpp
-
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $06
- lb bc, BANK(TradePoofGFX), $0c
- call Request2bpp
-
- xor a
- ld hl, wSpriteAnimDict
- ld [hli], a
- ld [hl], $0
-
- ld a, [wPlayerTrademonSpecies]
- ld hl, wPlayerTrademonDVs
- ld de, VTiles0 tile $30
- call MobileTradeAnim_GetFrontpic
-
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- ld de, VTiles2 tile $31
- call MobileTradeAnim_GetFrontpic
-
- ld a, [wPlayerTrademonSpecies]
- ld de, wPlayerTrademonSpeciesName
- call MobileTradeAnim_InitSpeciesName
-
- ld a, [wOTTrademonSpecies]
- ld de, wOTTrademonSpeciesName
- call MobileTradeAnim_InitSpeciesName
-
- xor a
- call Function108b98
- call Function108af4
- ret
-; 108157
-
-Function108157: ; 108157
- xor a
- ld [wJumptableIndex], a
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearVTiles
- call MobileTradeAnim_ClearBGMap
- call LoadStandardFont
- call LoadFontsBattleExtra
- call EnableLCD
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba ClearSpriteAnims
- xor a
- ld hl, wSpriteAnimDict
- ld [hli], a
- ld [hl], $0
- call DelayFrame
- ld a, [wPlayerTrademonSpecies]
- ld de, wPlayerTrademonSpeciesName
- call MobileTradeAnim_InitSpeciesName
- ld a, [wOTTrademonSpecies]
- ld de, wOTTrademonSpeciesName
- call MobileTradeAnim_InitSpeciesName
- xor a
- call Function108b98
- call Function108af4
- ret
-; 1081ad
-
-MobileTradeAnim_ClearVTiles: ; 1081ad
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, 3 * $80 tiles
- xor a
- call ByteFill
- ld a, $0
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, 3 * $80 tiles
- xor a
- call ByteFill
- ret
-; 1081ca
-
-MobileTradeAnim_ClearBGMap: ; 1081ca
- ld a, $1
- ld [rVBK], a
- hlbgcoord 0, 0
- ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
- ld a, $0
- call ByteFill
- ld a, $0
- ld [rVBK], a
- hlbgcoord 0, 0
- ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
- ld a, $7f
- call ByteFill
- ret
-; 1081e9
-
-MobileTradeAnim_GetFrontpic: ; 1081e9
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef GetFrontpic
- ret
-; 108201
-
-Function108201: ; 108201
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef FrontpicPredef
- ret
-; 108219
-
-Function108219: ; 108219
- ld [CurPartySpecies], a
- hlcoord 7, 2
- ld d, $0
- ld e, ANIM_MON_TRADE
- predef AnimateFrontpic
- ret
-; 108229
-
-Function108229: ; 108229
- ld [CurPartySpecies], a
- hlcoord 7, 2
- ld d, $0
- ld e, ANIM_MON_TRADE
- predef LoadMonAnimation
- ret
-; 108239
-
-MobileTradeAnim_InitSpeciesName: ; 108239
- push de
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- pop de
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ret
-; 10824b
-
-MobileTradeAnim_JumptableLoop: ; 10824b
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .StopAnim
- call .ExecuteMobileTradeAnimCommand
- call DelayFrame
- and a
- ret
-
-.StopAnim:
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call LoadStandardFont
- call LoadFontsBattleExtra
- callba MobileFunc_106462
- callba Function106464
- scf
- ret
-; 10827b
-
-.ExecuteMobileTradeAnimCommand: ; 10827b
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 10828a
-
-.Jumptable: ; 10828a
-
- dw GetMobileTradeAnimByte ; 00
- dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01
- dw MobileTradeAnim_02 ; 02
- dw MobileTradeAnim_GiveTrademon1 ; 03
- dw MobileTradeAnim_GiveTrademon2 ; 04
- dw MobileTradeAnim_05 ; 05
- dw MobileTradeAnim_06 ; 06
- dw MobileTradeAnim_07 ; 07
- dw MobileTradeAnim_GetTrademon1 ; 08
- dw MobileTradeAnim_GetTrademon2 ; 09
- dw MobileTradeAnim_GetTrademon3 ; 0a
- dw MobileTradeAnim_ShowOTMonFromTrade ; 0b
- dw EndMobileTradeAnim ; 0c
- dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d
- dw MobileTradeAnim_ShowOTMonFromGTS ; 0e
- dw MobileTradeAnim_0f ; 0f
- dw MobileTradeAnim_10 ; 10
- dw MobileTradeAnim_11 ; 11
- dw MobileTradeAnim_FadeToBlack ; 12
- dw MobileTradeAnim_GetOddEgg ; 13 get odd egg
-; 1082b2
-
-MobileTradeAnim_Next: ; 1082b2
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 1082b7
-
-GetMobileTradeAnimByte: ; 1082b7
- ld hl, wTradeAnimAddress
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [de]
- ld [wJumptableIndex], a
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-; 1082c6
-
-EndMobileTradeAnim: ; 1082c6
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 1082cc
-
-WaitMobileTradeSpriteAnims: ; 1082cc
-.loop
- push bc
- callba PlaySpriteAnimations
- pop bc
- call DelayFrame
- dec c
- jr nz, .loop
- ret
-; 1082db
-
-Function1082db: ; 1082db
-.loop
- callba PlaySpriteAnimations
- callba SetUpPokeAnim
- callba HDMATransferTileMapToWRAMBank3
- jr nc, .loop
- ret
-; 1082f0
-
-Function1082f0: ; 1082f0
-.loop
- call Function108b78
- call DelayFrame
- dec c
- jr nz, .loop
- ret
-; 1082fa
-
-Function1082fa: ; 1082fa
-.loop
- call Function108b78
- push hl
- push bc
- callba PlaySpriteAnimations
- pop bc
- pop hl
- call DelayFrame
- dec c
- jr nz, .loop
- ret
-; 10830e
-
-MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
- ld a, $80
- ld [hSCX], a
- xor a
- ld [hSCY], a
- ld a, $87
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- call MobileTradeAnim_DisplayMonToBeSent
- ld a, [wPlayerTrademonSpecies]
- ld [CurPartySpecies], a
- call Function10895e
- ld a, [wPlayerTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wPlayerTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call WaitBGMap
-.loop
- ld a, [hWX]
- cp $7
- jr z, .okay
- sub $4
- ld [hWX], a
- ld a, [hSCX]
- sub $4
- ld [hSCX], a
- call DelayFrame
- jr .loop
-
-.okay
- ld a, $7
- ld [hWX], a
- xor a
- ld [hSCX], a
- ld a, [wPlayerTrademonSpecies]
- call GetCryIndex
- jr c, .skip_cry
- ld e, c
- ld d, b
- call PlayCryHeader
-
-.skip_cry
- ld c, 80
- call DelayFrames
- call Function108bec
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
- call _InitSpriteAnimStruct
- ld de, SFX_BALL_POOF
- call PlaySFX
- hlcoord 0, 0
- ld bc, 12 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- ld c, 80
- call WaitMobileTradeSpriteAnims
- call GetMobileTradeAnimByte
- ret
-; 10839b
-
-MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld hl, wOTTrademonDVs
- ld de, VTiles2
- call Function108201
- call EnableLCD
- callba DeinitializeAllSprites
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
- call _InitSpriteAnimStruct
- call Function108b45
- ld a, $1
- call Function108b98
- call Function108af4
- ld c, 48
- call WaitMobileTradeSpriteAnims
- ld de, SFX_BALL_POOF
- call PlaySFX
- call MobileTradeAnim_DisplayReceivedMon
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call Function108963
- ld a, [wOTTrademonSpecies]
- call Function108229
- call Function1082db
- call Function108c16
- call GetMobileTradeAnimByte
- ret
-; 10842c
-
-MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
- ld a, $80
- ld [hSCX], a
- xor a
- ld [hSCY], a
- ld a, $87
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- call MobileTradeAnim_DisplayMonToBeSent
- ld a, [wPlayerTrademonSpecies]
- ld [CurPartySpecies], a
- ld hl, wPlayerTrademonDVs
- call Function10898a
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0
- lb bc, BANK(TradeBallGFX), $06
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $06
- lb bc, BANK(TradePoofGFX), $0c
- call Request2bpp
- ld a, [wPlayerTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wPlayerTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call WaitBGMap
-.loop
- ld a, [hWX]
- cp $7
- jr z, .done
- sub $4
- ld [hWX], a
- ld a, [hSCX]
- sub $4
- ld [hSCX], a
- call DelayFrame
- jr .loop
-
-.done
- ld a, $7
- ld [hWX], a
- xor a
- ld [hSCX], a
- ld a, [wPlayerTrademonSpecies]
- call GetCryIndex
- jr c, .skip_cry
- ld e, c
- ld d, b
- call PlayCryHeader
-
-.skip_cry
- ld c, 80
- call DelayFrames
- call Function108c2b
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
- call _InitSpriteAnimStruct
- ld de, SFX_BALL_POOF
- call PlaySFX
- hlcoord 0, 0
- ld bc, 12 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- ld c, 80
- call WaitMobileTradeSpriteAnims
- call GetMobileTradeAnimByte
- ret
-; 1084d7
-
-MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld hl, wOTTrademonDVs
- ld de, VTiles2
- call Function108201
- call EnableLCD
- callba DeinitializeAllSprites
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0
- lb bc, BANK(TradeBallGFX), $06
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $06
- lb bc, BANK(TradePoofGFX), $0c
- call Request2bpp
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
- call _InitSpriteAnimStruct
- call Function108b45
- ld a, $1
- call Function108b98
- call Function108af4
- ld c, 48
- call WaitMobileTradeSpriteAnims
- ld de, SFX_BALL_POOF
- call PlaySFX
- call MobileTradeAnim_DisplayReceivedMon
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- call Function10898a
- ld a, [wOTTrademonSpecies]
- call Function108229
- call Function1082db
- call Function108c40
- call GetMobileTradeAnimByte
- ret
-; 108589
-
-MobileTradeAnim_GetOddEgg: ; 108589
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld hl, wOTTrademonDVs
- ld de, VTiles2
- call Function108201
- call EnableLCD
- callba DeinitializeAllSprites
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0
- lb bc, BANK(TradeBallGFX), $06
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $06
- lb bc, BANK(TradePoofGFX), $0c
- call Request2bpp
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
- call _InitSpriteAnimStruct
- call Function108b45
- ld a, $1
- call Function108b98
- call Function108af4
- ld c, 48
- call WaitMobileTradeSpriteAnims
- ld de, SFX_BALL_POOF
- call PlaySFX
- call Function108a33
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- call Function10898a
- ld a, [wOTTrademonSpecies]
- call Function108229
- call Function1082db
- call GetMobileTradeAnimByte
- ret
-; 108638
-
-MobileTradeAnim_02: ; 108638
- callba DeinitializeAllSprites
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- call Function108c80
- call Function108c6d
- call EnableLCD
- ld a, $c
- ld [hSCX], a
- ld a, $78
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_109107
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function108d07
- call Function108af4
- call GetMobileTradeAnimByte
- ret
-; 108689
-
-MobileTradeAnim_10: ; 108689
- callba DeinitializeAllSprites
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- ld a, $1
- ld [rVBK], a
- ld hl, LZ_108da7
- ld de, VTiles2
- call Decompress
- ld a, $0
- ld [rVBK], a
- ld hl, LZ_108d27
- ld de, VTiles0 tile $20
- call Decompress
- call Function108c80
- call Function108c6d
- call EnableLCD
- ld a, $c
- ld [hSCX], a
- ld a, $78
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_109107
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function108d07
- call Function108af4
- call GetMobileTradeAnimByte
- ret
-; 1086f4
-
-MobileTradeAnim_11: ; 1086f4
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- ld a, $1
- ld [rVBK], a
- ld hl, LZ_108da7
- ld de, VTiles2
- call Decompress
- ld a, $0
- ld [rVBK], a
- ld hl, LZ_108d27
- ld de, VTiles0 tile $20
- call Decompress
- call Function108c80
- call Function108c6d
- call EnableLCD
- ld a, $80
- ld [hSCX], a
- ld a, $90
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_109107
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function108d07
- call Function108af4
- call Function108b5a
- ld a, $e0
- ld [hSCX], a
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
- call GetMobileTradeAnimByte
- ret
-; 108763
-
-MobileTradeAnim_GiveTrademon1: ; 108763
- ld de, SFX_GIVE_TRADEMON
- call PlaySFX
- ld c, 40
- ld hl, BGPals + 6 palettes
- call Function1082f0
- call Function108af4
-.loop
- ld a, [hSCX]
- cp $e0
- jr z, .loop2
- dec a
- dec a
- ld [hSCX], a
- cp $f8
- jr nz, .next
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_22
- call _InitSpriteAnimStruct
-
-.next
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .loop
-
-.loop2
- ld a, [hSCY]
- cp $f8
- jr z, .done
- dec a
- dec a
- ld [hSCY], a
- cp $40
- jr z, .init
- cp $30
- jr z, .delete
- cp $68
- jr z, .replace
- jr .next2
-
-.init
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_22
- call _InitSpriteAnimStruct
- xor a
- call Function108ad4
- jr .next2
-
-.delete
- call MobileTradeAnim_DeleteSprites
- jr .next2
-
-.replace
- call MobileTradeAnim_DeleteSprites
- ld a, $1
- call Function108ad4
-.next2
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .loop2
-
-.done
- call MobileTradeAnim_Next
- ret
-; 1087cf
-
-MobileTradeAnim_GiveTrademon2: ; 1087cf
- ld c, 40
- ld hl, BGPals + 1 palettes
- call Function1082f0
- call Function108af4
- call Function108b5a
- depixel 9, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_25
- call _InitSpriteAnimStruct
- ld de, SFX_FORESIGHT
- call PlaySFX
- ld c, 10
- call WaitMobileTradeSpriteAnims
- xor a
- ld [wcf64], a
- depixel 9, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_23
- call _InitSpriteAnimStruct
-.loop
- ld a, [hSCY]
- cp $90
- jr z, .done
- sub $8
- ld [hSCY], a
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .loop
-
-.done
- call GetMobileTradeAnimByte
- ret
-; 108811
-
-MobileTradeAnim_05: ; 108811
- ld c, 40
- call WaitMobileTradeSpriteAnims
- ld a, $1
- ld [wcf64], a
- ld de, SFX_SHARPEN
- call PlaySFX
- ld c, 60
- call WaitMobileTradeSpriteAnims
- depixel 30, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_24
- call _InitSpriteAnimStruct
- call GetMobileTradeAnimByte
- ld de, SFX_THROW_BALL
- call PlaySFX
- ret
-; 108838
-
-MobileTradeAnim_06: ; 108838
- ld c, 40
- call WaitMobileTradeSpriteAnims
- ld a, $1
- ld [wcf64], a
- ld de, SFX_SHARPEN
- call PlaySFX
- call GetMobileTradeAnimByte
- ret
-; 10884c
-
-MobileTradeAnim_07: ; 10884c
- ld c, 80
- call DelayFrames
- depixel 30, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_24
- call _InitSpriteAnimStruct
- call GetMobileTradeAnimByte
- ld de, SFX_THROW_BALL
- call PlaySFX
- ret
-; 108863
-
-MobileTradeAnim_GetTrademon1: ; 108863
- ld c, 40
- call WaitMobileTradeSpriteAnims
-.loop
- ld a, [hSCY]
- cp $f8
- jr z, .done
- add $8
- ld [hSCY], a
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .loop
-
-.done
- callba DeinitializeAllSprites
- depixel 9, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_25
- call _InitSpriteAnimStruct
- ld de, SFX_GLASS_TING_2
- call PlaySFX
- call Function108af4
- call MobileTradeAnim_Next
- ret
-; 108894
-
-MobileTradeAnim_GetTrademon2: ; 108894
- ld c, 20
- ld hl, BGPals + 1 palettes
- call Function1082fa
- ld de, SFX_GIVE_TRADEMON
- call PlaySFX
- ld c, 20
- ld hl, BGPals + 1 palettes
- call Function1082fa
- call Function108af4
-.asm_1088ad
- ld a, [hSCY]
- cp $78
- jr z, .asm_1088ee
- inc a
- inc a
- ld [hSCY], a
- cp $30
- jr z, .asm_1088c5
- cp $40
- jr z, .asm_1088dd
- cp $68
- jr z, .asm_1088cf
- jr .asm_1088e7
-
-.asm_1088c5
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_22
- call _InitSpriteAnimStruct
- jr .asm_1088e7
-
-.asm_1088cf
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_22
- call _InitSpriteAnimStruct
- xor a
- call Function108ad4
- jr .asm_1088e7
-
-.asm_1088dd
- call MobileTradeAnim_DeleteSprites
- ld a, $1
- call Function108ad4
- jr .asm_1088e7
-
-.asm_1088e7
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .asm_1088ad
-
-.asm_1088ee
- ld a, [hSCX]
- cp $c
- jr z, .asm_108906
- inc a
- inc a
- ld [hSCX], a
- cp -8
- jr nz, .asm_1088e7
- call MobileTradeAnim_DeleteSprites
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .asm_1088ee
-
-.asm_108906
- call MobileTradeAnim_Next
- ret
-; 10890a
-
-MobileTradeAnim_GetTrademon3: ; 10890a
- ld c, 40
- ld hl, BGPals + 6 palettes
- call Function1082f0
- call Function108af4
- call GetMobileTradeAnimByte
- ret
-; 108919
-
-MobileTradeAnim_0f: ; 108919
- ld c, 40
- call WaitMobileTradeSpriteAnims
- callba DeinitializeAllSprites
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearVTiles
- call MobileTradeAnim_ClearBGMap
- call EnableLCD
- call GetMobileTradeAnimByte
- ret
-; 10893d
-
-MobileTradeAnim_FadeToBlack: ; 10893d
-.loop
- ld a, [rBGP]
- and a
- jr z, .blank
- sla a
- sla a
- call DmgToCgbBGPals
- call DmgToCgbObjPal0
- ld c, 4
- call DelayFrames
- jr .loop
-
-.blank
- xor a
- call DmgToCgbBGPals
- call DmgToCgbObjPal0
- call GetMobileTradeAnimByte
- ret
-; 10895e
-
-Function10895e: ; 10895e
- ld de, VTiles0 tile $30
- jr asm_108966
-
-Function108963:
- ld de, VTiles2 tile $31
-asm_108966
- call DelayFrame
- ld hl, VTiles2
- lb bc, $a, $31 ; $a is the bank of ?????
- call Request2bpp
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- hlcoord 7, 2
- xor a
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- call WaitBGMap
- ret
-; 10898a
-
-Function10898a: ; 10898a
- ld de, VTiles2
- call MobileTradeAnim_GetFrontpic
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- hlcoord 7, 2
- xor a
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- call WaitBGMap
- ret
-; 1089a8
-
-MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
- ld de, wPlayerTrademonSpecies
- ld a, [de]
- cp EGG
- jr z, MobileTradeAnim_DisplayEggData
- call MobileTradeAnim_LoadMonTemplate
- ld de, wPlayerTrademonSpecies
- call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
- ld de, wPlayerTrademonSpeciesName
- call MobileTradeAnim_MonDisplay_PrintSpeciesName
- ld a, [wPlayerTrademonCaughtData]
- ld de, wPlayerTrademonOTName
- call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
- ld de, wPlayerTrademonID
- call MobileTradeAnim_MonDisplay_PrintIDNumber
- call MobileTradeAnim_MonDisplay_UpdateBGMap
- ret
-
-MobileTradeAnim_DisplayReceivedMon:
- ld de, wOTTrademonSpecies
- ld a, [de]
- cp EGG
- jr z, MobileTradeAnim_DisplayEggData
- call MobileTradeAnim_LoadMonTemplate
- ld de, wOTTrademonSpecies
- call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
- ld de, wOTTrademonSpeciesName
- call MobileTradeAnim_MonDisplay_PrintSpeciesName
- ld a, [wOTTrademonCaughtData]
- ld de, wOTTrademonOTName
- call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
- ld de, wOTTrademonID
- call MobileTradeAnim_MonDisplay_PrintIDNumber
- call MobileTradeAnim_MonDisplay_UpdateBGMap
- ret
-
-MobileTradeAnim_DisplayEggData
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 5, 0
- ld b, 6
- ld c, 9
- call TextBox
- hlcoord 6, 2
- ld de, .EggTemplate
- call PlaceString
- call MobileTradeAnim_MonDisplay_UpdateBGMap
- ret
-; 108a1d
-
-.EggTemplate: ; 108a1d
- db "タマゴ"
- next "おや/?????"
- next "<ID>№<DOT>?????"
- db "@"
-; 108a33
-
-Function108a33: ; 108a33
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 5, 0
- ld b, 6
- ld c, 9
- call TextBox
- hlcoord 7, 4
- ld de, .OddEgg
- call PlaceString
- call MobileTradeAnim_MonDisplay_UpdateBGMap
- ret
-; 108a54
-
-.OddEgg: ; 108a54
- db "なぞのタマゴ@"
-; 108a5b
-
-MobileTradeAnim_LoadMonTemplate: ; 108a5b
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 4, 0
- ld b, 6
- ld c, 10
- call TextBox
- hlcoord 5, 0
- ld de, .MonTemplate
- call PlaceString
- ret
-; 108a79
-
-.MonTemplate: ; 108a79
- db "─ №<DOT>"
- next ""
- next "おや/"
- next "<ID>№<DOT>"
- db "@"
-; 108a87
-
-MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
- call WaitBGMap
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ret
-; 108a92
-
-MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
- hlcoord 9, 0
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- ret
-; 108a9c
-
-MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
- hlcoord 5, 2
- call PlaceString
- ret
-; 108aa3
-
-MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
- cp $3
- jr c, .got_gender
- xor a
-.got_gender
- push af
- hlcoord 8, 4
- call PlaceString
- inc bc
- pop af
- ld hl, .GenderChars
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- ld [bc], a
- ret
-; 108abb
-
-.GenderChars: ; 108abb
- db " "
- db "♂"
- db "♀"
-; 108abe
-
-MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
- hlcoord 8, 6
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-; 108ac8
-
-MobileTradeAnim_ClearTilemap: ; 108ac8
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ret
-; 108ad4
-
-Function108ad4: ; 108ad4
- and a
- jr z, .asm_108adc
- ld de, GFX_1092c7
- jr .asm_108adf
-
-.asm_108adc
- ld de, GFX_1091c7
-.asm_108adf
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles2 tile $4a
- lb bc, BANK(GFX_1092c7), 16
- call Get2bpp_2
- call DelayFrame
- ld a, $0
- ld [rVBK], a
- ret
-; 108af4
-
-Function108af4: ; 108af4
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [wcf65]
- and $1
- jr z, .copy_palette_109147
- ld hl, Palette_109187
- ld de, UnknOBPals
- ld bc, 8 palettes
- call CopyBytes
- ld hl, Palette_109187
- ld de, OBPals
- ld bc, 8 palettes
- call CopyBytes
- jr .done_copy
-
-.copy_palette_109147
- ld hl, Palette_109147
- ld de, UnknOBPals
- ld bc, 8 palettes
- call CopyBytes
- ld hl, Palette_109147
- ld de, OBPals
- ld bc, 8 palettes
- call CopyBytes
-
-.done_copy
- pop af
- ld [rSVBK], a
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbObjPal0
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call DelayFrame
- ret
-; 108b45
-
-Function108b45: ; 108b45
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
- ld hl, UnknBGPals
- ld a, e
- ld [hli], a
- ld d, a
- ld [hli], a
- pop af
- ld [rSVBK], a
- ret
-; 108b5a
-
-Function108b5a: ; 108b5a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
- ld hl, BGPals + 4 palettes
- ld c, $10
-.loop
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- dec c
- jr nz, .loop
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 108b78
-
-Function108b78: ; 108b78
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, c
- and $2
- jr z, .Orange
- ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
- jr .load_pal
-
-.Orange:
- ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
-.load_pal
- ld a, e
- ld [hli], a
- ld a, d
- ld [hld], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 108b98
-
-Palette_108b98:
-; removed
-
-Function108b98: ; 108b98
- ld d, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [wcf65]
- and $1
- xor d
- jr z, .asm_108bad
- ld hl, Palette_108b98 + 1 palettes
- jr .asm_108bb0
-
-.asm_108bad
- ld hl, Palette_108b98
-.asm_108bb0
- ld de, UnknBGPals + 7 palettes
- ld bc, 8 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 108bbd
-
-MobileTradeAnim_DeleteSprites: ; 108bbd
- callba DeinitializeAllSprites
- call ClearSprites
- ret
-; 108bc7
-
-Function108bc7: ; 108bc7 (42:4bc7)
- ld a, [wcf64]
- and a
- ret z
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- cp -1 * 8 - 6
- jr z, .delete
- sub 1 * 8
- ld [hl], a
- ret
-
-.delete
- callba DeinitializeSprite
- ret
-
-Function108be0: ; 108be0 (42:4be0)
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- cp 9 * 8 + 2
- ret z
- add 1 * 8
- ld [hl], a
- ret
-; 108bec (42:4bec)
-
-Function108bec: ; 108bec
- ld a, $90
- ld [hWY], a
- ld hl, .PlayerWillTradeMon
- call PrintText
- ld c, 80
- call DelayFrames
- ld hl, .ForPartnersMon
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-; 108c07
-
-.PlayerWillTradeMon: ; 0x108c07
- text_jump UnknownText_0x1bc787
- db "@"
-; 0x108c0c
-
-.ForPartnersMon: ; 0x108c0c
- text_jump UnknownText_0x1bc79d
- db "@"
-; 0x108c11
-
-.UnusedTextPlayersMonTrade: ; 0x108c11
- text_jump UnknownText_0x1bc7b0
- db "@"
-; 0x108c16
-
-Function108c16: ; 108c16
- ld a, $90
- ld [hWY], a
- ld hl, .TakeGoodCareOfMon
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-; 108c26
-
-.TakeGoodCareOfMon: ; 0x108c26
- text_jump UnknownText_0x1bc7c3
- db "@"
-; 0x108c2b
-
-Function108c2b: ; 108c2b
- ld a, $90
- ld [hWY], a
- ld hl, .PlayersMonTrade
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-; 108c3b
-
-.PlayersMonTrade: ; 0x108c3b
- text_jump UnknownText_0x1bc7dd
- db "@"
-; 0x108c40
-
-Function108c40: ; 108c40
- ld a, $90
- ld [hWY], a
- ld a, [wcf65]
- and %10000000
- jr z, .Getmon
- ld hl, .CameBack
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-
-.Getmon:
- ld hl, .TakeGoodCareOf
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-; 108c63
-
-.TakeGoodCareOf: ; 0x108c63
- text_jump UnknownText_0x1bc7f0
- db "@"
-; 0x108c68
-
-.CameBack: ; 0x108c68
- text_jump UnknownText_0x1bc80a
- db "@"
-; 0x108c6d
-
-Function108c6d: ; 108c6d
- ld hl, LZ_108fe7
- debgcoord 0, 0
- call Decompress
- ld hl, LZ_108fe7
- debgcoord 0, 0, VBGMap1
- call Decompress
- ret
-; 108c80
-
-Function108c80: ; 108c80
- ld a, $1
- ld [rVBK], a
- ld hl, LZ_1090a7
- debgcoord 0, 0
- call Decompress
- ld hl, LZ_1090a7
- debgcoord 0, 0, VBGMap1
- call Decompress
- ld a, $0
- ld [rVBK], a
- ret
-; 108c9b
-
-DebugMobileTrade: ; 108c9b
-; localization error: NAME_LENGTH (11) should be 6 here
-
- ld hl, .DebugTradeData
- ld a, [hli]
- ld [wPlayerTrademonSpecies], a
-
- ld de, wPlayerTrademonSenderName
- ld c, NAME_LENGTH
-.your_name_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .your_name_loop
-
- ld de, wPlayerTrademonID
- ld c, 2
-.your_id_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .your_id_loop
-
- ld de, wPlayerTrademonOTName
- ld c, NAME_LENGTH
-.your_ot_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .your_ot_loop
-
- ld a, [hli]
- ld [wOTTrademonSpecies], a
-
- ld de, wOTTrademonSenderName
- ld c, NAME_LENGTH
-.their_name_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .their_name_loop
-
- ld de, wOTTrademonID
- ld c, 2
-.their_id_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .their_id_loop
-
- ld de, wOTTrademonOTName
- ld c, NAME_LENGTH
-.their_ot_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .their_ot_loop
-
- ret
-; 108ce9
-
-.DebugTradeData:
- db VENUSAUR
- db "ゲーフり@@"
- dw $0123
- db "かびーん@@"
- db CHARIZARD
- db "クりーチャ@"
- dw $0456
- db "マツミヤ@@"
-; 108d07
-
-Function108d07: ; 108d07
- ld a, [wc74e]
- and $7f
- cp $8
- jr c, .asm_108d12
- ld a, $7
-
-.asm_108d12
- ld bc, 1 palettes
- ld hl, Palette_1093c7
- call AddNTimes
- ld a, $5
- ld de, UnknBGPals + 4 palettes
- ld bc, 1 palettes
- call FarCopyWRAM
- ret
-; 108d27
-
-LZ_108d27:
-INCBIN "gfx/unknown/108d27.2bpp.lz"
-
-LZ_108da7:
-INCBIN "gfx/unknown/108da7.2bpp.lz"
-
-LZ_108fe7:
-INCBIN "gfx/unknown/108fe7.tilemap.lz"
-
-LZ_1090a7:
-INCBIN "gfx/unknown/1090a7.tilemap.lz"
-
-Palette_1090f7:
-; unreferenced
- RGB 31, 31, 31
- RGB 0, 0, 0
-
- RGB 31, 0, 25
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
-
- RGB 9, 19, 31
- RGB 0, 0, 0
-
-Palette_109107:
- RGB 18, 31, 15
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 15, 1
- RGB 14, 14, 31
- RGB 12, 9, 31
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 14, 14, 31
- RGB 12, 9, 31
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 31, 7, 9
- RGB 18, 0, 1
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 15, 1
- RGB 18, 0, 30
- RGB 9, 0, 17
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 18, 0, 30
- RGB 9, 0, 17
- RGB 0, 0, 0
-
-Palette_109147:
- RGB 31, 31, 31
- RGB 31, 31, 12
- RGB 31, 13, 12
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 23, 15
- RGB 31, 18, 7
- RGB 31, 15, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 0, 25
- RGB 31, 0, 25
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 9, 19, 31
- RGB 9, 19, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-Palette_109187:
- RGB 31, 31, 31
- RGB 31, 31, 12
- RGB 31, 13, 12
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 23, 15
- RGB 31, 18, 7
- RGB 31, 15, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 9, 19, 31
- RGB 9, 19, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 0, 25
- RGB 31, 0, 25
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-GFX_1091c7:
-INCBIN "gfx/unknown/1091c7.2bpp"
-GFX_1092c7:
-INCBIN "gfx/unknown/1092c7.2bpp"
-
-Palette_1093c7:
- RGB 18, 31, 15
- RGB 4, 13, 31
- RGB 0, 0, 31
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 31, 31, 0
- RGB 31, 15, 0
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 9, 24, 0
- RGB 2, 16, 0
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 31, 7, 9
- RGB 18, 0, 1
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 28, 5, 31
- RGB 17, 0, 17
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 9, 9, 9
- RGB 4, 4, 4
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 31, 13, 21
- RGB 27, 7, 12
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 21, 20, 20
- RGB 14, 14, 31
- RGB 0, 0, 0
--- a/misc/mobile_45.asm
+++ /dev/null
@@ -1,7690 +1,0 @@
-
-SECTION "bank45", ROMX
-
- charmap " ", $20 ; revert to ascii
-
-String_114000:
- db "---", 0
-String_114004:
- db "CGB-AAAA-00", 0, 0
-
-Unknown_114011: ; 114011
- dw String_114033
- dw String_11403a
- dw String_114043
- dw String_11404e
- dw String_114053
- dw String_114058
- dw String_114062
- dw String_114074
- dw String_11408d
- dw String_11409f
- dw String_1140b8
- dw String_1140e6
- dw String_114110
- dw String_11413f
- dw String_114160
- dw String_114160
- dw String_114163
-
-String_114033: ; 114033
- db "From: ", 0
-String_11403a: ; 11403a
- db "Sender: ", 0
-String_114043: ; 114043
- db "Reply-To: ", 0
-String_11404e: ; 11404e
- db "To: ", 0
-String_114053: ; 114053
- db "Cc: ", 0
-String_114058: ; 114058
- db "Subject: ", 0
-String_114062: ; 114062
- db "MIME-Version: 1.0", 0
-String_114074: ; 114074
- db "X-Game-title: XXXXXXXXXX", 0
-String_11408d: ; 11408d
- db "X-Game-code: CGB-", 0
-String_11409f: ; 11409f
- db "X-GBmail-type: exclusive", 0
-String_1140b8: ; 1140b8
- db "Content-Type: text/plain; charset=iso-2022-jp", 0
-String_1140e6: ; 1140e6
- db "Content-Type: multipart/mixed; boundary=\"", 0
-String_114110: ; 114110
- db "Content-Type: Application/Octet-Stream; name=\"", 0
-String_11413f: ; 11413f
- db "Content-Transfer-Encoding:Base64", 0
-String_114160: ; 114160
- db "--", 0
-String_114163: ; 114163
- db ".", 0
-; 114165
-
-Jumptable_114165: ; 114165
- dw Function114268
- dw Function114269
- dw Function11433c
- dw Function1143b7
- dw Function1144d1
- dw Function114b55
- dw Function114bbc
- dw Function114cd9
- dw Function114e62
- dw Function1152b8
- dw Function1154d4
- dw Function1156cc
- dw Function1159fb
-; 11417f
-
-Unknown_11417f: ; 11417f
- dw .From
- dw .Sender
- dw .ReplyTo
- dw .To
- dw .CC
- dw .Subject
- dw .Date
- dw .ContentType
- dw .MimeVersion
- dw .XMailer
- dw .XGameTitle
- dw .XGameCode
- dw .XGBMailType
-
-.From: ; 114199
- db "FROM:", 0
-.Sender: ; 11419f
- db "SENDER:", 0
-.ReplyTo: ; 1141a7
- db "REPLY-TO:", 0
-.To: ; 1141b1
- db "TO:", 0
-.CC: ; 1141b5
- db "CC:", 0
-.Subject: ; 1141b9
- db "SUBJECT:", 0
-.Date: ; 1141c2
- db "DATE:", 0
-.ContentType: ; 1141c8
- db "CONTENT-TYPE:", 0
-.MimeVersion: ; 1141d6
- db "MIME-VERSION:", 0
-.XMailer: ; 1141e4
- db "X-MAILER:", 0
-.XGameTitle: ; 1141ee
- db "X-GAME-TITLE:", 0
-.XGameCode: ; 1141fc
- db "X-GAME-CODE:", 0
-.XGBMailType: ; 114209
- db "X-GBMAIL-TYPE:", 0
-; 114218
-
-String_114218: ; 114218
- db "NAME=", 0
-String_11421e: ; 11421e
- db "MULTIPART", 0
-String_114228: ; 114228
- db "BOUNDARY=", 0
-String_114232: ; 114232
- db "=?ISO-2022-JP?B?", 0
-; 114243
-
-Function114243:: ; 114243
- ld a, SRAM_ENABLE
- ld [MBC3SRamEnable], a
- ld a, [hFF8C]
- push af ; if [$dc02] == 0, this is popped to pc.
- push de
- ld a, [$dc02]
- add a
- ld e, a
- ld d, 0
- ld hl, Jumptable_114165
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- jp hl
-
-; 11425c
-
-Function11425c: ; 11425c
- ld [$dc02], a
- pop af
- ld [hFF8C], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ret
-
-; 114268
-
-Function114268: mobile
-
-; 114269
-
-Function114269: ; 114269
- ld h, d
- ld l, e
- xor a
- ld [$dc02], a
- ld [$dc03], a
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld c, [hl]
- inc hl
- ld b, [hl]
-.asm_114282
- ld a, [de]
- and a
- jr z, .asm_1142a4
- ld h, a
- ld a, [$dc03]
- and a
- jr nz, .asm_114292
- ld a, h
- cp $80
- jr nc, .asm_1142ae
-
-.asm_114292
- ld a, h
- cp $d
- jr z, .asm_1142bb
- xor a
- ld [$dc02], a
-.asm_11429b
- inc e
- call z, Function114333
- dec bc
- ld a, b
- or c
- jr nz, .asm_114282
-
-.asm_1142a4
- ld a, [$dc03]
- and a
- jr nz, .asm_114303
- ld b, $80
- jr .asm_1142b0
-
-.asm_1142ae
- ld b, $81
-
-.asm_1142b0
- ld a, [$dc00]
- ld c, a
- ld a, $1
- ld h, d
- ld l, e
- jp Function11425c
-
-.asm_1142bb
- and a
- jr z, .asm_1142a4
- inc e
- call z, Function114333
- dec bc
- ld a, b
- or c
- jr z, .asm_1142a4
- ld a, [de]
- ld h, a
- ld a, [$dc03]
- and a
- jr nz, .asm_1142d4
- ld a, h
- cp $80
- jr nc, .asm_1142ae
-
-.asm_1142d4
- ld a, h
- cp $a
- jr nz, .asm_1142ae
- ld a, [$dc03]
- and a
- jr nz, .asm_11430d
- ld a, [$dc02]
- and a
- jr nz, .asm_114309
- ld a, $1
- ld [$dc02], a
- inc e
- call z, Function114333
- dec bc
- ld a, b
- or c
- jr z, .asm_1142a4
- ld a, [de]
- cp $20
- jr z, .asm_11429b
- cp $9
- jr z, .asm_11429b
- jr .asm_114282
-
-.asm_1142fe
- xor a
- ld b, a
- jp Function11425c
-
-.asm_114303
- xor a
- ld b, $1
- jp Function11425c
-
-.asm_114309
- xor a
- ld [$dc02], a
-
-.asm_11430d
- ld a, [$dc02]
- and a
- jr nz, .asm_1142fe
- ld a, $1
- ld [$dc03], a
- inc e
- call z, Function114333
- dec bc
- ld a, b
- or c
- jr z, .asm_1142a4
- ld a, [de]
- and a
- jp z, .asm_1142a4
- cp $2e
- jp nz, .asm_114282
- ld a, $1
- ld [$dc02], a
- jp .asm_11429b
-
-; 114333
-
-Function114333: ; 114333
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 11433c
-
-Function11433c: ; 11433c
- push de
- ld h, d
- ld l, e
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, $b
- call Function1143f3
- cp $2
- jr z, .asm_114358
- and a
- jr z, .asm_114360
- pop hl
-.asm_114351
- xor a
- ld b, $3
- jp Function11425c
-
-.asm_114357
- pop hl
-
-.asm_114358
- pop hl
- ld a, $1
- ld b, $82
- jp Function11425c
-
-.asm_114360
- ld a, h
- ld [$dc03], a
- pop hl
- push bc
- push de
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld b, $c
- call Function1143f3
- cp $2
- jr z, .asm_114357
- and a
- jr z, .asm_114381
- xor a
- ld b, $2
- pop hl
- pop hl
- jp Function11425c
-
-.asm_114381
- pop de
- pop bc
- ld a, [$dc03]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- call Function114c0b
- ld hl, String_114004
-.asm_114394
- ld de, $dc24
-.asm_114397
- ld a, [hli]
- and a
- jr z, .asm_1143ad
- ld b, a
- ld a, [de]
- inc de
- cp b
- jr z, .asm_114397
-.asm_1143a1
- ld a, [hli]
- and a
- jr nz, .asm_1143a1
- ld a, [hl]
- and a
- jr nz, .asm_114394
- ld b, a
- jp Function11425c
-
-.asm_1143ad
- ld a, [de]
- and a
- jr nz, .asm_114351
- xor a
- ld b, $1
- jp Function11425c
-
-; 1143b7
-
-Function1143b7: ; 1143b7
- ld a, [de]
- ld b, a
- inc de
- ld a, [de]
- ld c, a
- inc de
- ld a, [de]
- ld h, a
- inc de
- ld a, [de]
- inc de
- push de
- ld d, a
- ld e, h
- call Function1143f3
- cp $2
- jr z, .asm_1143eb
- and a
- jr nz, .asm_1143ed
- ld a, h
- pop hl
- push af
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- jp Function11425c
-
-.asm_1143eb
- ld b, $82
-
-.asm_1143ed
- ld a, $1
- pop hl
- jp Function11425c
-
-; 1143f3
-
-Function1143f3: ; 1143f3
- call Function114412
- and a
- jr nz, .asm_11440d
- ld a, $4
- cp b
- jr c, .asm_114407
- jr z, .asm_114402
-.asm_114400
- xor a
- ret
-
-.asm_114402
- ld a, $0
- cp c
- jr nc, .asm_114400
-
-.asm_114407
- lb bc, $4, $0
- ld a, $2
- ret
-
-.asm_11440d
- ld a, $1
- ld b, $84
- ret
-
-; 114412
-
-Function114412: ; 114412
- ld a, c
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, Unknown_11417f
- ld a, b
- add a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld c, $0
- jr .asm_11444a
-
-.asm_11442b
- ld a, [de]
- and a
- jp z, .asm_1144c2
- inc e
- call z, Function1144c8
- cp $d ; CR
- jr nz, .asm_11442b
- ld a, [de]
- inc e
- call z, Function1144c8
- cp $a ; NL
- jr nz, .asm_11442b
- ld a, [de]
- cp $2e ; .
- jr z, .asm_1144ae
- cp $d ; CR
- jr z, .asm_1144b8
-
-.asm_11444a
- ld a, [$dc00]
- ld [$dc02], a
- ld a, [de]
- and a
- jr z, .asm_1144c2
- inc e
- call z, Function1144c8
- cp $61 ; "a"
- jr c, .asm_114462
- cp $7b ; "z" + 1
- jr nc, .asm_114462
- sub $20
-
-.asm_114462
- ld b, a
- ld a, [hl]
- and a
- jr z, .asm_114476
- cp b
- jr nz, .asm_11446e
- inc c
- inc hl
- jr .asm_11444a
-
-.asm_11446e
- ld a, c
- and a
- jr z, .asm_11442b
- dec c
- dec hl
- jr .asm_11446e
-
-.asm_114476
- ld a, $20 ; " "
- cp b
- jr z, .asm_114481
- ld a, $a ; NL
- cp b
- jr z, .asm_114481
- dec de
-
-.asm_114481
- ld h, d
- ld l, e
- ld bc, NULL
-.asm_114486
- ld a, [de]
- and a
- jr z, .asm_1144c2
- inc bc
- inc e
- call z, Function1144c8
- cp $d ; CR
- jr nz, .asm_114486
- ld a, [de]
- inc bc
- inc e
- call z, Function1144c8
- cp $a ; NL
- jr nz, .asm_114486
- ld a, [de]
- cp $20 ; " "
- jr z, .asm_114486
- cp $9 ; TAB
- jr z, .asm_114486
- ld d, h
- ld e, l
- ld a, [$dc02]
- ld h, a
- xor a
- ret
-
-.asm_1144ae
- inc e
- call z, Function1144c8
- ld a, [de]
- cp $d ; CR
- jp nz, .asm_11442b
-
-.asm_1144b8
- inc e
- call z, Function1144c8
- ld a, [de]
- cp $a ; NL
- jp nz, .asm_11442b
-
-.asm_1144c2
- ld a, $0
- ld [hl], a
- ld a, $1
- ret
-
-; 1144c8
-
-Function1144c8: ; 1144c8
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 1144d1
-
-Function1144d1: ; 1144d1
- call Function114561
- dec de
- dec de
- push de
- inc de
- inc de
- inc de
- inc hl
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc hl
- ld a, [de]
- ld [hld], a
- dec de
- ld a, [de]
- ld [hl], a
- xor a
- ld [BigDoll], a
- ld [$dc17], a
- ld a, $2
- ld [$dc0e], a
- ld hl, $dc03
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function114576
- cp $2
- jr z, .asm_11455b
- and a
- jr z, .asm_114511
- ld a, $1
- ld [$dc0d], a
- call Function1146fa
- and a
- jr nz, .asm_11455b
- jr .asm_11451c
-
-.asm_114511
- call Function1146a4
- and a
- jr nz, .asm_11455b
- ld a, $2
- ld [$dc0d], a
-
-.asm_11451c
- pop hl
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [$dc0d]
- ld [de], a
- ld b, $0
- ld a, [BigDoll]
- and a
- jr z, .asm_114537
- ld b, $1
-
-.asm_114537
- ld hl, $dc06
- ld a, [hl]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, $dc09
- ld e, [hl]
- inc hl
- ld d, [hl]
- dec de
- ld a, d
- or e
- jr z, .asm_114559
- ld hl, wCurrMapTriggerCount
- ld e, [hl]
- inc hl
- ld d, [hl]
- xor a
- ld [de], a
- jp Function11425c
-
-.asm_114559
- ld b, $83
-
-.asm_11455b
- pop hl
- ld a, $1
- jp Function11425c
-
-; 114561
-
-Function114561: ; 114561
- ld hl, $dc03
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- ret
-
-; 114576
-
-Function114576: ; 114576
- xor a
- ld [Bed], a
- ld b, $7
- call Function1143f3
- cp $2
- jr z, .asm_1145b6
- and a
- jr nz, .asm_1145b4
- ld a, h
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- push hl
- push de
- push bc
- ld hl, $dc24
- call Function115d53
- call Function1145c5
- pop bc
- pop de
- pop hl
- and a
- jr z, .asm_1145bf
- ld a, b
- and a
- jr nz, .asm_1145ba
- ld a, h
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, String_114218
- call Function114acf
-
-.asm_1145b4
- xor a
- ret
-
-.asm_1145b6
- ld b, $82
- jr .asm_1145bc
-
-.asm_1145ba
- ld b, $81
-
-.asm_1145bc
- ld a, $2
- ret
-
-.asm_1145bf
- ld a, $1
- ld [Bed], a
- ret
-
-; 1145c5
-
-Function1145c5: ; 1145c5
- ld hl, $dc24
- ld de, String_11421e
- ld c, $0
-.asm_1145cd
- ld a, [hli]
- and a
- jr z, .asm_1145ef
- cp $20
- jr z, .asm_1145cd
- cp $d
- jr z, .asm_1145f8
- cp $61
- jr c, .asm_1145e3
- cp $7b
- jr nc, .asm_1145e3
- sub $20
-
-.asm_1145e3
- ld b, a
- ld a, [de]
- and a
- jr z, .asm_11460e
- inc de
- cp b
- jr z, .asm_1145cd
- dec de
- jr .asm_1145cd
-
-.asm_1145ef
- ld b, $0
- jr .asm_1145f5
-
-.asm_1145f3
- ld b, $81
-
-.asm_1145f5
- ld a, $1
- ret
-
-.asm_1145f8
- ld a, [hli]
- and a
- jr z, .asm_1145f3
- cp $a
- jr nz, .asm_1145f3
- ld a, [hli]
- and a
- jr z, .asm_1145f3
- cp $20
- jr z, .asm_1145cd
- cp $9
- jr z, .asm_1145cd
- jr .asm_1145f3
-
-.asm_11460e
- ld a, c
- and a
- jr nz, .asm_114619
- ld c, $1
- ld de, String_114228
- jr .asm_1145cd
-
-.asm_114619
- dec hl
- ld a, [hl]
- cp $22
- jr nz, .asm_114620
- inc hl
-
-.asm_114620
- ld de, $ddc8
- ld b, $0
- ld c, $40
-.asm_114627
- ld a, [hli]
- cp $22
- jr z, .asm_114636
- cp $d
- jr z, .asm_114636
- ld [de], a
- inc de
- inc b
- dec c
- jr nz, .asm_114627
-
-.asm_114636
- ld a, b
- ld [PartyMon5Defense], a
- xor a
- ret
-
-; 11463c
-
-Function11463c: ; 11463c
- ld a, [$dc00]
- push af
- push de
- ld hl, $ddc8
- ld a, [PartyMon5Defense]
- ld b, a
-.asm_114648
- ld a, [de]
- ld c, a
- ld a, [hli]
- cp c
- jr nz, .asm_11468a
- inc e
- call z, Function11469b
- dec b
- jr nz, .asm_114648
- ld a, [de]
- cp $2d
- jr z, .asm_114673
- cp $d
- jr nz, .asm_11468a
- xor a
- ld [Carpet], a
-.asm_114662
- inc e
- call z, Function11469b
- ld a, [de]
- cp $a
- jr nz, .asm_11468a
- inc e
- call z, Function11469b
- xor a
- pop hl
- pop hl
- ret
-
-.asm_114673
- inc e
- call z, Function11469b
- ld a, [de]
- cp $2d
- jr nz, .asm_11468a
- inc e
- call z, Function11469b
- ld a, $1
- ld [Carpet], a
- ld a, [de]
- cp $d
- jr z, .asm_114662
-
-.asm_11468a
- pop de
- pop af
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- xor a
- ld [Carpet], a
- ld a, $1
- ret
-
-; 11469b
-
-Function11469b: ; 11469b
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 1146a4
-
-Function1146a4: ; 1146a4
- call Function114867
- and a
- jr nz, .asm_1146e4
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function114a18
- and a
- jr nz, .asm_1146e8
- call Function1148c2
- and a
- jr nz, .asm_1146e4
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function114a7a
- and a
- jr nz, .asm_1146e8
-.asm_1146da
- dec bc
- dec bc
- call Function1149cc
- and a
- jr nz, .asm_1146e4
- xor a
- ret
-
-.asm_1146e4
- ld b, $83
- jr .asm_1146f7
-
-.asm_1146e8
- ld a, [$dc17]
- and a
- jr z, .asm_1146f5
- ld a, $1
- ld [BigDoll], a
- jr .asm_1146da
-
-.asm_1146f5
- ld b, $81
-
-.asm_1146f7
- ld a, $1
- ret
-
-; 1146fa
-
-Function1146fa: ; 1146fa
- call Function114867
- and a
- jp nz, .asm_11478a
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function114a18
- and a
- jp nz, .asm_11478e
- call Function1149cc
- and a
- jp nz, .asm_11478a
- ld a, $1
- ld [$dc0e], a
- ld a, [$dc00]
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, $1
- ld [RightOrnament], a
- call Function1147cd
- and a
- jp nz, .asm_1147b7
-.asm_114737
- call Function114843
- cp $1
- jr nz, .asm_114749
- ld a, [$dc17]
- and a
- jr z, .asm_114794
- ld a, $1
- ld [BigDoll], a
-
-.asm_114749
- call Function11494d
- and a
- jr nz, .asm_11478a
- ld a, [BigDoll]
- and a
- jr nz, .asm_114786
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function1147cd
- and a
- jr nz, .asm_1147b7
- ld a, [$dc0e]
- cp $3
- jr nz, .asm_114773
- dec bc
- dec bc
-
-.asm_114773
- call Function1149cc
- and a
- jr nz, .asm_11478a
- ld a, [$dc0d]
- inc a
- ld [$dc0d], a
- ld a, [BigDoll]
- and a
- jr z, .asm_114799
-
-.asm_114786
- ld b, $1
- jr .asm_1147cb
-
-.asm_11478a
- ld b, $83
- jr .asm_114796
-
-.asm_11478e
- ld a, [$dc17]
- and a
- jr nz, .asm_114796
-
-.asm_114794
- ld b, $81
-
-.asm_114796
- ld a, $1
- ret
-
-.asm_114799
- ld a, [Carpet]
- and a
- jr z, .asm_114737
- jr .asm_1147cb
-
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- call Function114a7a
- and a
- jr z, .asm_1147cb
- xor a
- ld [BigDoll], a
-
-.asm_1147b7
- ld a, [$dc17]
- and a
- jr z, .asm_114794
- ld a, $1
- ld [BigDoll], a
- ld a, [$dc0d]
- cp $1
- jr nz, .asm_114773
- ld b, $1
-
-.asm_1147cb
- xor a
- ret
-
-; 1147cd
-
-Function1147cd: ; 1147cd
- ld bc, NULL
- ld a, [RightOrnament]
- and a
- jr nz, .asm_11480c
-.asm_1147d6
- ld a, [de]
- and a
- jr z, .asm_11482f
- inc e
- call z, Function11483a
- inc bc
- cp $d
- jr nz, .asm_1147d6
- ld a, [de]
- cp $a
- jr nz, .asm_11482f
-.asm_1147e8
- inc bc
- inc e
- call z, Function11483a
- ld a, [de]
- cp $20
- jr z, .asm_114827
- cp $9
- jr z, .asm_114827
- cp $d
- jr nz, .asm_11482b
- inc e
- call z, Function11483a
- ld a, [de]
- cp $a
- jr nz, .asm_11482f
- inc e
- call z, Function11483a
- ld a, h
- and a
- jr z, .asm_11480c
- dec bc
-
-.asm_11480c
- ld a, [de]
- cp $2d
- jr nz, .asm_1147d6
- inc e
- call z, Function11483a
- ld a, [de]
- cp $2d
- jr nz, .asm_1147d6
- inc e
- call z, Function11483a
- push bc
- call Function11463c
- pop bc
- and a
- jr nz, .asm_1147d6
- ret
-
-.asm_114827
- ld h, $1
- jr .asm_1147e8
-
-.asm_11482b
- ld h, $0
- jr .asm_11480c
-
-.asm_11482f
- and a
- jr nz, .asm_114837
- ld a, $1
- ld [$dc17], a
-
-.asm_114837
- ld a, $1
- ret
-
-; 11483a
-
-Function11483a: ; 11483a
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114843
-
-Function114843: ; 114843
- ld a, [$dc00]
- push af
- push de
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- call Function114a18
- and a
- jr nz, .asm_11485f
- pop de
- pop af
- ld [$dc00], a
- ld hl, String_114218
- call Function114acf
- ret
-
-.asm_11485f
- pop de
- pop af
- ld [$dc00], a
- ld a, $1
- ret
-
-; 114867
-
-Function114867: ; 114867
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, $2
- ld [de], a
- inc e
- call z, Function1148b9
- ld a, $1
- ld [de], a
- inc e
- call z, Function1148b9
- ld hl, $dc03
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1148b9
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1148b9
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1148b9
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld d, $5
-.asm_1148a9
- dec bc
- ld a, b
- or c
- jr z, .asm_1148b6
- dec d
- jr nz, .asm_1148a9
- ld [hl], b
- dec hl
- ld [hl], c
- xor a
- ret
-
-.asm_1148b6
- ld a, $1
- ret
-
-; 1148b9
-
-Function1148b9: ; 1148b9
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 1148c2
-
-Function1148c2: ; 1148c2
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, c
- ld [de], a
- inc e
- call z, Function114944
- ld a, b
- ld [de], a
- inc e
- call z, Function114944
- ld a, [$dc0e]
- ld [de], a
- inc e
- call z, Function114944
- cp $3
- jr nz, .asm_114904
- ld hl, Plant
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
-
-.asm_114904
- ld hl, $dc03
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld a, [$dc0e]
- cp $3
- jr z, .asm_114932
- ld d, $6
- jr .asm_114934
-
-.asm_114932
- ld d, $a
-
-.asm_114934
- dec bc
- ld a, b
- or c
- jr z, .asm_114941
- dec d
- jr nz, .asm_114934
- ld [hl], b
- dec hl
- ld [hl], c
- xor a
- ret
-
-.asm_114941
- ld a, $1
- ret
-
-; 114944
-
-Function114944: ; 114944
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 11494d
-
-Function11494d: ; 11494d
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [$dc0e]
- ld [de], a
- inc e
- call z, Function1149c3
- cp $3
- jr nz, .asm_114983
- ld hl, Plant
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
-
-.asm_114983
- ld hl, $dc03
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld a, [$dc0e]
- cp $3
- jr z, .asm_1149b1
- ld d, $4
- jr .asm_1149b3
-
-.asm_1149b1
- ld d, $8
-
-.asm_1149b3
- dec bc
- ld a, b
- or c
- jr z, .asm_1149c0
- dec d
- jr nz, .asm_1149b3
- ld [hl], b
- dec hl
- ld [hl], c
- xor a
- ret
-
-.asm_1149c0
- ld a, $1
- ret
-
-; 1149c3
-
-Function1149c3: ; 1149c3
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 1149cc
-
-Function1149cc: ; 1149cc
- ld hl, $dc06
- ld a, [hl]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- push de
- ld hl, $dc09
- ld e, [hl]
- inc hl
- ld d, [hl]
- dec de
- ld a, d
- or e
- jr z, .asm_114a0b
- dec de
- ld a, d
- or e
- jr z, .asm_114a0b
- ld [hl], d
- dec hl
- ld [hl], e
- ld hl, wCurrMapTriggerCount
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, c
- ld [de], a
- inc e
- call z, Function114a0f
- ld a, b
- ld [de], a
- inc e
- call z, Function114a0f
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- pop de
- xor a
- ret
-
-.asm_114a0b
- pop de
- ld a, $1
- ret
-
-; 114a0f
-
-Function114a0f: ; 114a0f
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 114a18
-
-Function114a18: ; 114a18
- ld bc, NULL
- ld h, b
-.asm_114a1c
- inc bc
- ld a, [de]
- and a
- jr z, .asm_114a66
- inc e
- call z, Function114a71
- cp $d
- jr nz, .asm_114a1c
- ld a, [de]
- cp $a
- jr nz, .asm_114a66
-.asm_114a2e
- inc bc
- inc e
- call z, Function114a71
- ld a, [de]
- cp $20
- jr z, .asm_114a5e
- cp $9
- jr z, .asm_114a5e
- cp $d
- jr nz, .asm_114a62
- inc e
- call z, Function114a71
- ld a, [de]
- cp $a
- jr nz, .asm_114a66
- inc e
- call z, Function114a71
- ld a, h
- and a
- jr z, .asm_114a52
- dec bc
-
-.asm_114a52
- ld hl, $dc03
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- xor a
- ret
-
-.asm_114a5e
- ld h, $1
- jr .asm_114a2e
-
-.asm_114a62
- ld h, $0
- jr .asm_114a1c
-
-.asm_114a66
- and a
- jr nz, .asm_114a6e
- ld a, $1
- ld [$dc17], a
-
-.asm_114a6e
- ld a, $1
- ret
-
-; 114a71
-
-Function114a71: ; 114a71
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114a7a
-
-Function114a7a: ; 114a7a
- ld bc, NULL
-.asm_114a7d
- inc bc
- ld a, [de]
- and a
- jr z, .asm_114abb
- inc e
- call z, Function114ac6
- cp $d
- jr nz, .asm_114a7d
- ld a, [de]
- cp $a
- jr nz, .asm_114abb
- inc e
- call z, Function114ac6
- inc bc
- ld a, [de]
- cp $2e
- jr nz, .asm_114a7d
- inc e
- call z, Function114ac6
- ld a, [de]
- cp $d
- jr nz, .asm_114a7d
- inc e
- call z, Function114ac6
- ld a, [de]
- cp $a
- jr nz, .asm_114abb
- inc e
- call z, Function114ac6
- ld hl, $dc03
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- xor a
- ret
-
-.asm_114abb
- and a
- jr nz, .asm_114ac3
- ld a, $1
- ld [$dc17], a
-
-.asm_114ac3
- ld a, $1
- ret
-
-; 114ac6
-
-Function114ac6: ; 114ac6
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114acf
-
-Function114acf: ; 114acf
-.asm_114acf
- push hl
- push bc
-.asm_114ad1
- ld a, [hl]
- ld b, a
- ld a, [de]
- inc e
- call z, Function114b4c
- cp $61
- jr c, .asm_114ae2
- cp $7b
- jr nc, .asm_114ae2
- sub $20
-
-.asm_114ae2
- cp b
- jr z, .asm_114af4
- pop bc
- dec bc
- push bc
- ld a, b
- or c
- jr nz, .asm_114ad1
-.asm_114aec
- ld a, $2
- ld [$dc0e], a
- pop bc
- pop hl
- ret
-
-.asm_114af4
- inc hl
-.asm_114af5
- ld a, [hli]
- and a
- jr z, .asm_114b19
- ld b, a
- ld a, [de]
- inc e
- call z, Function114b4c
- cp $61
- jr c, .asm_114b09
- cp $7b
- jr nc, .asm_114b09
- sub $20
-
-.asm_114b09
- cp b
- jr nz, .asm_114b15
- pop bc
- dec bc
- push bc
- ld a, b
- or c
- jr nz, .asm_114af5
- jr .asm_114aec
-
-.asm_114b15
- pop bc
- pop hl
- jr .asm_114acf
-
-.asm_114b19
- ld b, $0
- ld c, $40
- ld a, [de]
- cp $22
- jr nz, .asm_114b26
- inc e
- call z, Function114b4c
-
-.asm_114b26
- ld hl, Plant
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
-.asm_114b31
- ld a, [de]
- cp $22
- jr z, .asm_114b42
- cp $d
- jr z, .asm_114b42
- inc e
- call z, Function114b4c
- inc b
- dec c
- jr nz, .asm_114b31
-
-.asm_114b42
- ld [hl], b
- pop bc
- pop hl
- ld a, $3
- ld [$dc0e], a
- xor a
- ret
-
-; 114b4c
-
-Function114b4c: ; 114b4c
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114b55
-
-Function114b55: ; 114b55
- call Function114561
- ld b, $0
- ld hl, $dc03
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
-.asm_114b65
- push de
- push bc
- push hl
- call Function1143f3
- cp $2
- jr z, .asm_114bb2
- and a
- jr nz, .asm_114b8c
- ld a, h
- pop hl
- inc hl
- ld [hld], a
- ld a, $1
- ld [hli], a
- inc hl
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld [hl], c
- inc hl
- ld [hl], b
- inc hl
-.asm_114b82
- pop bc
- pop de
- inc b
- ld a, b
- cp $d
- jr z, .asm_114b96
- jr .asm_114b65
-
-.asm_114b8c
- pop hl
- xor a
-rept 6
- ld [hli], a
-endr
- jr .asm_114b82
-
-.asm_114b96
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld bc, $004e
- ld hl, $dc24
- call Function115d6a
- jp Function11425c
-
-.asm_114bb2
- ld a, $1
- pop bc
- pop bc
- pop bc
- ld b, $82
- jp Function11425c
-
-; 114bbc
-
-Function114bbc: ; 114bbc
- ld h, d
- ld l, e
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld e, a
- ld d, [hl]
- inc hl
- push hl
- call Function1143f3
- cp $2
- jr z, .asm_114c03
- and a
- jr nz, .asm_114bff
- ld a, h
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- call Function114c0b
- ld hl, $dc24
- call Function114c5e
- ld a, b
- or c
- jr z, .asm_114bff
- pop hl
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld hl, $dc24
- push bc
- call Function115d6a
- pop hl
- jp Function11425c
-
-.asm_114bff
- ld b, $84
- jr .asm_114c05
-
-.asm_114c03
- ld b, $82
-
-.asm_114c05
- ld a, $1
- pop hl
- jp Function11425c
-
-; 114c0b
-
-Function114c0b: ; 114c0b
- ld hl, $dc24
- push bc
- call Function115d53
- pop bc
- ld hl, $dc24
- ld d, h
- ld e, l
-.asm_114c18
- ld a, [hli]
- cp $d
- jr z, .asm_114c34
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_114c18
-.asm_114c24
- xor a
- ld [de], a
- ld hl, $dc24
- ld bc, NULL
-.asm_114c2c
- ld a, [hli]
- inc bc
- and a
- jr nz, .asm_114c2c
- dec bc
- xor a
- ret
-
-.asm_114c34
- dec bc
- ld a, b
- or c
- jr z, .asm_114c24
- ld a, [hli]
- cp $a
- jr nz, .asm_114c18
- dec bc
- ld a, b
- or c
- jr z, .asm_114c24
- ld a, [hli]
- cp $20
- jr z, .asm_114c4e
- cp $9
- jr z, .asm_114c4e
- jr .asm_114c24
-
-.asm_114c4e
- dec bc
- ld a, b
- or c
- jr z, .asm_114c24
- jr .asm_114c18
-
-; 114c55
-
-Function114c55: ; 114c55
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114c5e
-
-Function114c5e: ; 114c5e
- ld de, PartyMon5Defense
- push hl
-.asm_114c62
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr z, .asm_114cc6
- cp $3d
- jr nz, .asm_114c62
- ld a, [hli]
- ld [de], a
- inc de
- cp $3f
- jr nz, .asm_114c62
- dec de
- dec de
-.asm_114c75
- ld a, [hli]
- cp $3f
- jr nz, .asm_114c75
- ld a, [hli]
- cp $42
- jr nz, .asm_114cb8
- inc hl
- ld bc, NULL
- push hl
-.asm_114c84
- inc bc
- ld a, [hli]
- cp $3f
- jr nz, .asm_114c84
- inc bc
- ld a, [hli]
- cp $3d
- jr nz, .asm_114c84
- dec bc
- dec bc
- ld a, l
- ld [$dc03], a
- ld a, h
- ld [$dc04], a
- pop hl
- push de
- call Function115c49
- pop de
- ld h, d
- ld l, e
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-.asm_114ca6
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_114ca6
- ld a, [$dc03]
- ld l, a
- ld a, [$dc04]
- ld h, a
- jr .asm_114c62
-
-.asm_114cb8
- ld a, $3d
- ld [de], a
- inc de
- ld a, $3f
- ld [de], a
- inc de
-.asm_114cc0
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr nz, .asm_114cc0
-
-.asm_114cc6
- ld [de], a
- pop hl
- ld de, PartyMon5Defense
- ld bc, NULL
-.asm_114cce
- inc bc
- ld a, [de]
- ld [hli], a
- inc de
- and a
- jr z, .asm_114cd7
- jr .asm_114cce
-
-.asm_114cd7
- dec bc
- ret
-
-; 114cd9
-
-Function114cd9: ; 114cd9
- ld h, d
- ld l, e
- ld b, [hl]
- inc hl
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- push hl
- call Function1143f3
- and a
- jr nz, .asm_114d33
- ld [$dc03], a
- ld [$dc04], a
- ld a, h
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, $dc24
- call Function114d39
- ld hl, $dc24
- call Function114d99
- pop hl
- push hl
-rept 4
- inc hl
-endr
- ld a, [hld]
- cp b
- jr c, .asm_114d2d
- jr z, .asm_114d29
-.asm_114d11
- pop hl
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld hl, PartyMon5Defense
- call Function115d6a
- xor a
- jp Function11425c
-
-.asm_114d29
- ld a, [hli]
- cp c
- jr nc, .asm_114d11
-
-.asm_114d2d
- ld b, $83
- jr .asm_114d33
-
- ld b, $82
-
-.asm_114d33
- pop hl
- ld a, $1
- jp Function11425c
-
-; 114d39
-
-Function114d39: ; 114d39
-.asm_114d39
- ld a, [$dc04]
- and a
- jr nz, .asm_114d4a
- ld a, [de]
- cp $28
- jr z, .asm_114d55
- cp $22
- jr z, .asm_114d55
- jr .asm_114d7f
-
-.asm_114d4a
- ld a, [de]
- cp $29
- jr z, .asm_114d5f
- cp $22
- jr z, .asm_114d6f
- jr .asm_114d84
-
-.asm_114d55
- ld [$dc03], a
- ld a, $1
- ld [$dc04], a
- jr .asm_114d84
-
-.asm_114d5f
- ld a, [$dc03]
- cp $28
- jr nz, .asm_114d84
- xor a
- ld [$dc03], a
- ld [$dc04], a
- jr .asm_114d84
-
-.asm_114d6f
- ld a, [$dc03]
- cp $22
- jr nz, .asm_114d84
- xor a
- ld [$dc03], a
- ld [$dc04], a
- jr .asm_114d84
-
-.asm_114d7f
- cp $20
- jr z, .asm_114d84
- ld [hli], a
-
-.asm_114d84
- dec bc
- ld a, b
- or c
- jr z, .asm_114d96
- inc e
- jr nz, .asm_114d39
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- jr .asm_114d39
-
-.asm_114d96
- xor a
- ld [hli], a
- ret
-
-; 114d99
-
-Function114d99: ; 114d99
- ld de, PartyMon5Defense
- xor a
- ld [de], a
-.asm_114d9e
- ld a, [hli]
- call Function114df1
- and a
- jr z, .asm_114dde
- cp $40
- jr nz, .asm_114d9e
- dec hl
-.asm_114daa
- dec hl
- ld a, [hl]
- call Function114e2d
- and a
- jr z, .asm_114daa
- inc hl
- push hl
- ld b, $0
-.asm_114db6
- ld a, [hli]
- cp $40
- jr z, .asm_114dc1
- call Function114e2d
- and a
- jr nz, .asm_114dc4
-
-.asm_114dc1
- inc b
- jr .asm_114db6
-
-.asm_114dc4
- pop hl
- ld a, [PartyMon5Defense]
- and a
- jr z, .asm_114dd2
- ld a, $2c
- inc de
- ld [de], a
- ld a, [PartyMon5Defense]
-
-.asm_114dd2
- inc a
- ld [PartyMon5Defense], a
-.asm_114dd6
- inc de
- ld a, [hli]
- ld [de], a
- dec b
- jr nz, .asm_114dd6
- jr .asm_114d9e
-
-.asm_114dde
- inc de
- xor a
- ld [de], a
- ld a, $dd
- cpl
- ld h, a
- ld a, $c8
- cpl
- ld l, a
- inc hl
- add hl, de
- ld b, h
- ld c, l
- inc bc
- inc bc
- xor a
- ret
-
-; 114df1
-
-Function114df1: ; 114df1
- cp $1b
- ret nz
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $24
- jr nz, .asm_114e09
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $42
- jr z, .asm_114e0b
- cp $40
- jr z, .asm_114e0b
- dec hl
-
-.asm_114e09
- dec hl
- ret
-
-.asm_114e0b
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $1b
- jr nz, .asm_114e0b
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $28
- jr nz, .asm_114e0b
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $42
- jr z, .asm_114e29
- cp $4a
- jr z, .asm_114e29
- jr .asm_114e0b
-
-.asm_114e29
- ld a, [hli]
- ret
-
-.asm_114e2b
- xor a
- ret
-
-; 114e2d
-
-Function114e2d: ; 114e2d
- cp $30
- jr c, .asm_114e45
- cp $40
- jr c, .asm_114e58
- cp $41
- jr c, .asm_114e45
- cp $5b
- jr c, .asm_114e58
- cp $61
- jr c, .asm_114e45
- cp $7b
- jr c, .asm_114e58
-
-.asm_114e45
- cp $20
- jr z, .asm_114e58
- cp $2d
- jr z, .asm_114e58
- cp $2e
- jr z, .asm_114e58
- cp $5f
- jr z, .asm_114e58
-.asm_114e55
- ld a, $1
- ret
-
-.asm_114e58
- cp $3c
- jr z, .asm_114e55
- cp $3e
- jr z, .asm_114e55
- xor a
- ret
-
-; 114e62
-
-Function114e62: ; 114e62
- ld a, c
- and a
- jr nz, .asm_114e6f
- ld a, [wStartDay]
- and a
- jp z, Function11425c
- jr .asm_114e76
-
-.asm_114e6f
- xor a
- ld [wStartDay], a
- call Function114ee9
-
-.asm_114e76
- call Function114f0a
- cp $ff
- jp z, Function11425c
- and a
- jr nz, .asm_114e99
- call Function114ea0
- and a
- jr nz, .asm_114e99
- ld hl, $dc09
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- jp Function11425c
-
-.asm_114e99
- ld a, $1
- ld b, $83
- jp Function11425c
-
-; 114ea0
-
-Function114ea0: ; 114ea0
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, $d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_114edb
- inc e
- call z, Function114ee0
- ld a, $a
- ld [de], a
- dec bc
- inc e
- call z, Function114ee0
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ld [wStartDay], a
- ret
-
-.asm_114edb
- ld a, $1
- ld b, $83
- ret
-
-; 114ee0
-
-Function114ee0: ; 114ee0
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 114ee9
-
-Function114ee9: ; 114ee9
- ld hl, $dc03
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hli], a
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld c, a
- ld [hli], a
- inc de
- ld a, [de]
- ld b, a
- ld [hli], a
- inc de
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
- ld a, e
- ld [hli], a
- ld [hl], d
- ret
-
-; 114f0a
-
-Function114f0a: ; 114f0a
- call Function114f39
- and a
- jr nz, .asm_114f26
- ld a, [$dc03]
- cp $6
- jr c, .asm_114f21
- cp $c
- jr z, .asm_114f23
- call Function114f59
- and a
- jr nz, .asm_114f23
-
-.asm_114f21
- xor a
- ret
-
-.asm_114f23
- ld a, $1
- ret
-
-.asm_114f26
- call Function114f59
- and a
- jr nz, .asm_114f23
- ld hl, $dc0d
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [de]
- and a
- jr z, .asm_114f21
- ld a, $ff
- ret
-
-; 114f39
-
-Function114f39: ; 114f39
- ld hl, $dc0d
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld a, [de]
- and a
- jr z, .asm_114f58
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld hl, $dc0d
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, $1
- ret
-
-.asm_114f58
- ret
-
-; 114f59
-
-Function114f59: ; 114f59
- ld a, [wStartDay]
- and a
- jr nz, .asm_114f7c
- ld a, [$dc03]
- cp $11
- jr z, .asm_114fa7
- add a
- ld e, a
- ld d, 0
- ld hl, Unknown_114011
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Function115020
- and a
- jr nz, .asm_114fe7
- ld a, $1
- ld [wStartDay], a
-
-.asm_114f7c
- ld a, [$dc03]
- cp $5
- jr c, .asm_114fc9
- jr z, .asm_114fec
- cp $8
- jr c, .asm_114fa5
- jr z, .asm_114ff4
- cp $b
- jr c, .asm_114fa5
- jr z, .asm_114ffc
- cp $c
- jr z, .asm_115007
- cp $d
- jr z, .asm_114fa5
- cp $10
- jr c, .asm_115015
- jr z, .asm_114fa5
- cp $12
- jr c, .asm_114fa5
- jr .asm_114fe7
-
-.asm_114fa5
- xor a
- ret
-
-.asm_114fa7
- ld hl, Bed
- ld c, [hl]
- inc hl
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
- call Function115d53
- ld hl, $dc24
- call Function115020
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_114fc9
- call Function115062
- and a
- jr nz, .asm_114fe7
- ld a, [$dc04]
- dec a
- ld [$dc04], a
- and a
- jr z, .asm_114fdf
- call Function114f39
- and a
- jr nz, .asm_114fc9
-
-.asm_114fdf
- ld a, [$dc05]
- ld [$dc04], a
- jr .asm_11501e
-
-.asm_114fe7
- ld a, $1
- ld b, $83
- ret
-
-.asm_114fec
- call Function115062
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_114ff4
- call Function115179
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_114ffc
- ld hl, String_114000
- call Function115217
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_115007
- call Function11528f
- ld hl, $dc24
- call Function115217
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_115015
- ld hl, String_114000
- call Function115217
- and a
- jr nz, .asm_114fe7
-
-.asm_11501e
- xor a
- ret
-
-; 115020
-
-Function115020: ; 115020
- push hl
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- pop hl
-.asm_115036
- ld a, [hli]
- and a
- jr z, .asm_115046
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_115056
- inc e
- call z, Function115059
- jr .asm_115036
-
-.asm_115046
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ret
-
-.asm_115056
- ld a, $1
- ret
-
-; 115059
-
-Function115059: ; 115059
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 115062
-
-Function115062: ; 115062
- ld hl, Bed
- ld a, [hli]
- and a
- jr z, .asm_1150ae
- ld c, a
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, $0
- ld hl, $dc24
- ld a, [wStartDay]
- cp $1
- jr z, .asm_11509b
- cp $2
- jr z, .asm_115098
- cp $3
- jr nz, .asm_1150b2
- ld a, $2c
- ld [hli], a
- ld a, $d
- ld [hli], a
- ld a, $a
- ld [hli], a
- ld a, $9
- ld [hli], a
- jr .asm_11509b
-
-.asm_115098
- ld a, $2c
- ld [hli], a
-
-.asm_11509b
- call Function115d53
- call Function1150b3
- call Function115136
- ld a, [wStartDay]
- inc a
- cp $4
- jr nz, .asm_1150ae
- ld a, $2
-
-.asm_1150ae
- ld [wStartDay], a
- xor a
-
-.asm_1150b2
- ret
-
-; 1150b3
-
-Function1150b3: ; 1150b3
- ld hl, $dc24
- ld de, PartyMon5Defense
- ld b, $0
-.asm_1150bb
- ld c, $0
- ld a, [hli]
- cp $1b
- jr z, .asm_1150c9
- ld [de], a
- inc de
- and a
- jr z, .asm_115133
- jr .asm_1150bb
-
-.asm_1150c9
- inc c
- ld a, [hl]
- cp $24
- jr nz, .asm_1150bb
- inc hl
- inc c
- ld a, [hl]
- cp $42
- jr z, .asm_1150dc
- cp $40
- jr z, .asm_1150dc
- jr .asm_1150bb
-
-.asm_1150dc
- push hl
-.asm_1150dd
- inc c
- ld a, [hli]
- and a
- jr z, .asm_115133
- cp $1b
- jr nz, .asm_1150dd
- inc c
- ld a, [hli]
- cp $28
- jr nz, .asm_1150dd
- inc c
- ld a, [hli]
- cp $42
- jr z, .asm_1150f8
- cp $4a
- jr z, .asm_1150f8
- jr .asm_1150dd
-
-.asm_1150f8
- ld a, l
- ld [Console], a
- ld a, h
- ld [LeftOrnament], a
- ld hl, String_114232
-.asm_115103
- ld a, [hli]
- and a
- jr z, .asm_11510b
- ld [de], a
- inc de
- jr .asm_115103
-
-.asm_11510b
- pop hl
- dec hl
- dec hl
- push de
- call Function1158c2
- pop de
- ld h, d
- ld l, e
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
-.asm_115119
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_115119
- ld a, $3f
- ld [de], a
- inc de
- ld a, $3d
- ld [de], a
- inc de
- ld a, [Console]
- ld l, a
- ld a, [LeftOrnament]
- ld h, a
- jr .asm_1150bb
-
-.asm_115133
- xor a
- ld [de], a
- ret
-
-; 115136
-
-Function115136: ; 115136
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld hl, PartyMon5Defense
-.asm_11514d
- ld a, [hli]
- and a
- jr z, .asm_11515d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_11516d
- inc e
- call z, Function115170
- jr .asm_11514d
-
-.asm_11515d
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ret
-
-.asm_11516d
- ld a, $1
- ret
-
-; 115170
-
-Function115170: ; 115170
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 115179
-
-Function115179: ; 115179
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld hl, $013f
- ld a, [hli]
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, [hli]
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, [hli]
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, [hli]
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, $2d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, [$014c]
- ld h, a
- and $f0
- swap a
- cp $a
- jr nc, .asm_1151d8
- add $30
- jr .asm_1151da
-
-.asm_1151d8
- add $37
-
-.asm_1151da
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, h
- and $f
- cp $a
- jr nc, .asm_1151f2
- add $30
- jr .asm_1151f4
-
-.asm_1151ef
- ld a, $1
- ret
-
-.asm_1151f2
- add $37
-
-.asm_1151f4
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ret
-
-; 11520e
-
-Function11520e: ; 11520e
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 115217
-
-Function115217: ; 115217
- push hl
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- pop hl
-.asm_11522d
- ld a, [hli]
- and a
- jr z, .asm_11523d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_115262
- inc e
- call z, Function115286
- jr .asm_11522d
-
-.asm_11523d
- ld a, [$dc03]
- cp $b
- jr z, .asm_115278
- cp $c
- jr z, .asm_115278
- cp $e
- jr z, .asm_115252
- cp $f
- jr z, .asm_115265
- jr .asm_115262
-
-.asm_115252
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ret
-
-.asm_115262
- ld a, $1
- ret
-
-.asm_115265
- ld h, $2
-.asm_115267
- ld a, $2d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_115262
- inc e
- call z, Function115286
- dec h
- jr nz, .asm_115267
- jr .asm_115252
-
-.asm_115278
- ld a, $22
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_115262
- inc e
- call z, Function115286
- jr .asm_115252
-
-; 115286
-
-Function115286: ; 115286
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 11528f
-
-Function11528f: ; 11528f
- ld hl, Bed
- ld c, [hl]
- inc hl
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld hl, $dc24
-.asm_1152a4
- ld a, [de]
- ld [hli], a
- inc e
- call z, Function1152af
- dec c
- jr nz, .asm_1152a4
- ld [hl], c
- ret
-
-; 1152af
-
-Function1152af: ; 1152af
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 1152b8
-
-Function1152b8: ; 1152b8
- push bc
- call Function11537d
- push de
- ld h, d
- ld l, e
- ld a, [hli]
- ld b, a
- ld c, $1
- call Function1153d2
- pop de
- and a
- jr nz, .asm_1152f9
-.asm_1152ca
- ld hl, $dc0d
- ld e, [hl]
- inc hl
- ld d, [hl]
-.asm_1152d0
- ld a, [$dc03]
- cp $3
- jr nz, .asm_1152d8
- push de
-
-.asm_1152d8
- cp $5
- jr nz, .asm_1152e7
- pop hl
- ld a, [hli]
- ld b, a
- ld c, $3
- call Function1153d2
- and a
- jr nz, .asm_1152f9
-
-.asm_1152e7
- ld a, [de]
- inc de
- and a
- jr nz, .asm_115301
- ld a, [$dc03]
- cp $6
- jr z, .asm_115335
- inc a
- ld [$dc03], a
- jr .asm_1152d0
-
-.asm_1152f9
- pop hl
- ld a, $1
- ld b, $83
- jp Function11425c
-
-.asm_115301
- ld hl, $dc0d
- ld [hl], e
- inc hl
- ld [hl], d
-.asm_115307
- ld [$dc05], a
- ld a, $1
- ld [$dc04], a
- call Function1153b5
- call Function114f59
- and a
- jr nz, .asm_1152f9
- ld a, [$dc05]
- dec a
- jr nz, .asm_115307
- ld a, [$dc03]
- inc a
- ld [$dc03], a
- call Function114ea0
- and a
- jr nz, .asm_1152f9
- ld [wStartDay], a
- ld a, [$dc03]
- cp $6
- jr nz, .asm_1152ca
-
-.asm_115335
- call Function1153b5
- xor a
- ld [wStartDay], a
- call Function114f59
- and a
- jr nz, .asm_1152f9
- call Function114ea0
- and a
- jr nz, .asm_1152f9
- ld a, [$dc03]
- inc a
- ld [$dc03], a
- cp $9
- jr nz, .asm_115335
- pop bc
- ld a, b
- and a
- jr z, .asm_11536b
- call Function1153b5
- xor a
- ld [wStartDay], a
- call Function114f59
- and a
- jr nz, .asm_1152f9
- call Function114ea0
- and a
- jr nz, .asm_1152f9
-
-.asm_11536b
- ld hl, $dc09
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- jp Function11425c
-
-; 11537d
-
-Function11537d: ; 11537d
- ld hl, $dc06
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- ld b, a
- inc de
- ld a, [de]
- ld [hli], a
- inc hl
- ld a, [de]
- ld [hld], a
- ld a, b
- ld [hli], a
- inc de
- ld hl, RightOrnament
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld hl, $dc0d
- ld [hl], e
- inc hl
- ld [hl], d
- xor a
- ld [$dc03], a
- ld [wStartDay], a
- ret
-
-; 1153b5
-
-Function1153b5: ; 1153b5
- ld hl, $dc0d
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- inc hl
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- inc de
- ld a, [de]
- ld [Bed], a
- inc de
- ld hl, $dc0d
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; 1153d2
-
-Function1153d2: ; 1153d2
- ld a, [$dc03]
- ld d, a
- ld a, [$dc04]
- ld e, a
- push de
- xor a
- ld [$dc03], a
- ld [$dc04], a
- ld a, $24
- ld [Console], a
- ld a, $dc
- ld [LeftOrnament], a
- push bc
- jr .asm_1153f4
-
-.asm_1153ef
- ld a, [hli]
- and a
- jr z, .asm_115426
- ld b, a
-
-.asm_1153f4
- push bc
-.asm_1153f5
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld c, [hl]
- inc hl
- push hl
- ld a, [Console]
- ld l, a
- ld a, [LeftOrnament]
- ld h, a
- push bc
- ld b, $0
- call Function115d53
- inc hl
- ld [hl], a
- pop bc
- ld a, l
- ld e, a
- ld [Console], a
- ld a, h
- ld d, a
- ld [LeftOrnament], a
- dec b
- jr z, .asm_11542b
- pop hl
- jr .asm_1153f5
-
-.asm_115426
- dec c
- jr nz, .asm_1153ef
- jr .asm_115430
-
-.asm_11542b
- pop hl
- pop bc
- dec c
- jr nz, .asm_1153ef
-
-.asm_115430
- ld a, l
- ld [Console], a
- ld a, h
- ld [LeftOrnament], a
- xor a
- ld [de], a
- ld hl, $dc24
-.asm_11543d
- ld a, [hli]
- and a
- jr nz, .asm_11543d
- ld a, [hl]
- and a
- jr z, .asm_115457
- dec hl
- ld a, $2c
- ld [hli], a
- jr .asm_11543d
-
-.asm_11544b
- pop hl
- ld a, h
- ld [$dc03], a
- ld a, l
- ld [$dc04], a
- ld a, $1
- ret
-
-.asm_115457
- ld hl, $dc24
- call Function114d99
- ld hl, $ddc8
-.asm_115460
- ld a, [hli]
- and a
- jr z, .asm_11546d
- cp $2c
- jr nz, .asm_115460
- dec hl
- xor a
- ld [hli], a
- jr .asm_115460
-
-.asm_11546d
- pop de
- ld a, e
- cp $1
- jr z, .asm_115477
- xor a
- ld [hli], a
- jr .asm_115478
-
-.asm_115477
- dec bc
-
-.asm_115478
- ld hl, $dc18
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, b
- cp h
- jr c, .asm_11548c
- jr nz, .asm_11544b
- ld a, c
- cp l
- jr c, .asm_11548c
- jr z, .asm_11548c
- jr .asm_11544b
-
-.asm_11548c
- ld hl, $dc18
- ld a, c
- cpl
- ld e, a
- ld a, b
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ld de, $dc18
- ld a, l
- ld [de], a
- inc de
- ld a, h
- ld [de], a
- ld hl, RightOrnament
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $ddc8
- call Function115d6a
- ld hl, RightOrnament
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [Console]
- ld e, a
- ld a, [LeftOrnament]
- ld d, a
- pop hl
- ld a, h
- ld [$dc03], a
- ld a, l
- ld [$dc04], a
- xor a
- ret
-
-; 1154d4
-
-Function1154d4: ; 1154d4
- xor a
- ld [wStartDay], a
- call Function1155af
- call Function11560a
- and a
- jr nz, .asm_11552c
- call Function1155d1
- ld a, [RightOrnament]
- dec a
- ld [RightOrnament], a
- and a
- jp z, .asm_115577
- cp $1
- jr nz, .asm_115531
- xor a
- ld [wDailyResetTimer], a
-.asm_1154f7
- ld a, [BigDoll]
- cp $2
- jr z, .asm_115502
- cp $3
- jr z, .asm_11550f
-
-.asm_115502
- ld a, $a
- ld [$dc03], a
- call Function114f59
- and a
- jr z, .asm_11551a
- jr .asm_11552c
-
-.asm_11550f
- ld a, $c
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
-
-.asm_11551a
- call Function114ea0
- and a
- jr nz, .asm_11552c
- call Function114ea0
- and a
- jr nz, .asm_11552c
- call Function11560a
- and a
- jr z, .asm_1155a0
-
-.asm_11552c
- ld a, $1
- jp Function11425c
-
-.asm_115531
- ld a, $1
- ld [wDailyResetTimer], a
- ld a, $b
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
- call Function114ea0
- and a
- jr nz, .asm_11552c
-.asm_115547
- call Function114ea0
- and a
- jr nz, .asm_11552c
- ld a, $e
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
- call Function114ea0
- and a
- jr nz, .asm_11552c
- jr .asm_1154f7
-
-.asm_115560
- call Function114ea0
- and a
- jr nz, .asm_11552c
- ld a, [wDailyResetTimer]
- and a
- jr z, .asm_11557d
- ld a, $f
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
-
-.asm_115577
- call Function114ea0
- and a
- jr nz, .asm_11552c
-
-.asm_11557d
- ld a, $10
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
- call Function114ea0
- and a
- jr nz, .asm_11552c
- ld hl, $dc09
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- jp Function11425c
-
-.asm_1155a0
- ld a, [RightOrnament]
- dec a
- ld [RightOrnament], a
- and a
- jr z, .asm_115560
- call Function1155d1
- jr .asm_115547
-
-; 1155af
-
-Function1155af: ; 1155af
- ld hl, $dc06
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- ld b, a
- inc de
- ld a, [de]
- ld [hli], a
- ld [hl], b
- inc hl
- ld [hli], a
- inc de
- ld a, [de]
- ld [RightOrnament], a
- inc de
- ld a, e
- ld [hli], a
- ld [hl], d
- call Function1155d1
- ret
-
-; 1155d1
-
-Function1155d1: ; 1155d1
- ld a, [$dc0d]
- ld l, a
- ld a, [$dc0e]
- ld h, a
- ld a, [hli]
- ld [BigDoll], a
- cp $3
- jr nz, .asm_1155f0
- ld de, Carpet
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld a, [hli]
- ld [Bed], a
-
-.asm_1155f0
- ld de, $dc17
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld a, l
- ld [$dc0d], a
- ld a, h
- ld [$dc0e], a
- ret
-
-; 11560a
-
-Function11560a: ; 11560a
- ld a, [$dc06]
- ld [wCurrentMapSignpostCount], a
- ld a, [$dc17]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, $dc1a
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld a, [wCurrMapCallbackCount]
- cp b
- jp c, .asm_1156b1
- jr nz, .asm_115631
- ld a, [$dc09]
- cp c
- jp c, .asm_1156b1
-
-.asm_115631
- ld a, b
- or c
- jr z, .asm_1156a9
- ld a, [$dc09]
- ld l, a
- ld a, [wCurrMapCallbackCount]
- ld h, a
- ld a, c
- cpl
- ld e, a
- ld a, b
- cpl
- ld d, a
- inc de
- add hl, de
- ld a, l
- ld [$dc09], a
- ld a, h
- ld [wCurrMapCallbackCount], a
-.asm_11564d
- ld a, $3
- cp b
- jr c, .asm_1156b6
- jr nz, .asm_115659
- ld a, $db
- cp c
- jr c, .asm_1156b6
-
-.asm_115659
- ld a, [$dc1a]
- ld e, a
- ld a, [$dc1b]
- ld d, a
- ld a, c
- cpl
- ld l, a
- ld a, b
- cpl
- ld h, a
- inc hl
- add hl, de
- ld a, l
- ld [$dc1a], a
- ld a, h
- ld [$dc1b], a
- push bc
- ld hl, $dc18
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
- call Function115d53
- ld hl, $dc18
- ld [hl], e
- inc hl
- ld [hl], d
- pop bc
- ld a, [wCurrentMapSignpostCount]
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, wCurrMapTriggerCount
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
- call Function115d6a
- ld hl, wCurrMapTriggerCount
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $dc1a
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld a, b
- or c
- jr nz, .asm_11564d
-
-.asm_1156a9
- ld a, [wCurrentMapSignpostCount]
- ld [$dc06], a
- xor a
- ret
-
-.asm_1156b1
- ld a, $1
- ld b, $83
- ret
-
-.asm_1156b6
- ld a, $3
- cpl
- ld h, a
- ld a, $db
- cpl
- ld l, a
- add hl, bc
- ld de, $dc1a
- ld a, l
- ld [de], a
- inc de
- ld a, h
- ld [de], a
- ld bc, $03db
- jr .asm_115659
-
-; 1156cc
-
-Function1156cc: ; 1156cc
- ld a, [wStartDay]
- and a
- jp z, Function11425c
- cp $2
- jr z, .asm_1156fa
- cp $3
- jr z, .asm_1156fd
- cp $4
- jr z, .asm_1156fd
- cp $5
- jr z, .asm_115716
- cp $ff
- jr z, .asm_11572b
- cp $1
- jp nz, Function11425c
- call Function115732
- call Function11575c
- ld a, h
- ld [Poster], a
- ld a, l
- ld [Plant], a
-
-.asm_1156fa
- call Function1157d0
-
-.asm_1156fd
- call Function11581e
- and a
- jr nz, .asm_11572b
- ld a, [wStartDay]
- cp $5
- jr z, .asm_115716
- ld a, [Poster]
- ld h, a
- ld a, [Plant]
- ld l, a
- xor a
- jp Function11425c
-
-.asm_115716
- ld hl, wCurrMapCallbackCount
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- ld [wStartDay], a
- jp Function11425c
-
-.asm_11572b
- ld a, $1
- ld b, $83
- jp Function11425c
-
-; 115732
-
-Function115732: ; 115732
- ld hl, $dc02
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- dec de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- ret
-
-; 11575c
-
-Function11575c: ; 11575c
- ld hl, $dc05
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, $10
- ld b, $0
- ld c, b
- ld d, b
- ld a, $3
-.asm_11576a
- rl l
- rl h
- rl d
- cp d
- jr c, .asm_11577c
- rl c
- rl b
- dec e
- jr nz, .asm_11576a
- jr .asm_11578a
-
-.asm_11577c
- ld a, d
- sub $3
- ld d, a
- ld a, $3
- scf
- rl c
- rl b
- dec e
- jr nz, .asm_11576a
-
-.asm_11578a
- ld a, d
- and a
- jr z, .asm_11578f
- inc bc
-
-.asm_11578f
- sla c
- rl b
- sla c
- rl b
- ld h, b
- ld l, c
- push hl
- ld e, $10
- ld b, $0
- ld c, b
- ld d, b
- ld a, $40
-.asm_1157a2
- rl l
- rl h
- rl d
- cp d
- jr c, .asm_1157b4
- rl c
- rl b
- dec e
- jr nz, .asm_1157a2
- jr .asm_1157c3
-
-.asm_1157b4
- ld a, d
- sub $40
- ld d, a
- ld a, $40
- scf
- rl c
- rl b
- dec e
- jr nz, .asm_1157a2
- inc bc
-
-.asm_1157c3
- and a
- sla c
- rl b
- pop hl
- add hl, bc
- ld a, $2
- ld [wStartDay], a
- ret
-
-; 1157d0
-
-Function1157d0: ; 1157d0
- ld hl, $dc05
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$dc0e]
- ld c, a
- ld a, [Bed]
- ld b, a
- cp h
- jr c, .asm_1157eb
- jr nz, .asm_1157e9
- ld a, c
- cp l
- jr c, .asm_1157eb
- jr z, .asm_1157eb
-
-.asm_1157e9
- ld b, h
- ld c, l
-
-.asm_1157eb
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- ld a, l
- ld [$dc05], a
- ld a, h
- ld [$dc06], a
- ld a, h
- or l
- jr nz, .asm_11580f
- pop bc
- ld a, c
- ld [$dc0e], a
- ld a, b
- ld [Bed], a
- ld a, $4
- ld [wStartDay], a
- ret
-
-.asm_11580f
- pop bc
- ld a, c
- ld [$dc0e], a
- ld a, b
- ld [Bed], a
- ld a, $3
- ld [wStartDay], a
- ret
-
-; 11581e
-
-Function11581e: ; 11581e
- ld a, [wStartDay]
- and a
- ret z
- ld a, [$dc0e]
- ld c, a
- ld a, [Bed]
- ld b, a
- ld hl, $dc02
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
- push bc
- call Function115d53
- pop bc
- ld hl, $dc02
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $dc24
- ld de, PartyMon5Defense
- call Function1158c2
- ld hl, PartyMon5Defense
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
- push hl
- ld a, [wCurrMapCallbackCount]
- ld l, a
- ld a, [wCurrMapCallbackHeaderPointer]
- ld h, a
- cp b
- jr c, .asm_1158bb
- jr nz, .asm_11586e
- ld a, l
- cp c
- jr c, .asm_1158bb
-
-.asm_11586e
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- ld a, l
- ld [wCurrMapCallbackCount], a
- ld a, h
- ld [wCurrMapCallbackHeaderPointer], a
- pop bc
- pop hl
- ld hl, wCurrMapTriggerCount
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, PartyMon5Speed
- call Function115d6a
- ld hl, wCurrMapTriggerCount
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld [hl], d
- ld a, [wStartDay]
- cp $3
- jr z, .asm_1158b4
- cp $4
- jr z, .asm_1158ad
- jr .asm_1158bc
-
-.asm_1158ad
- ld a, $5
- ld [wStartDay], a
- jr .asm_1158b9
-
-.asm_1158b4
- ld a, $2
- ld [wStartDay], a
-
-.asm_1158b9
- xor a
- ret
-
-.asm_1158bb
- pop hl
-
-.asm_1158bc
- ld a, $ff
- ld [wStartDay], a
- ret
-
-; 1158c2
-
-Function1158c2: ; 1158c2
- ld a, e
- ld [SwarmFlags], a
- ld a, d
- ld [$dc21], a
- xor a
- ld [$dc22], a
- xor a
- ld [de], a
- inc de
- ld [de], a
- inc de
- ld a, c
- ld [$dc19], a
- ld a, b
- ld [$dc1a], a
- ld c, e
- ld b, d
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- xor a
- ld [WeeklyFlags], a
-
-.asm_1158e5
- ld b, $3
- push hl
- ld hl, $dc1b
-.asm_1158eb
- ld a, [de]
- inc de
- ld [hli], a
- dec b
- jr nz, .asm_1158eb
- ld a, [$dc19]
- ld c, a
- ld a, [$dc1a]
- ld b, a
- xor a
- or b
- jr nz, .asm_115914
- ld a, $2
- cp c
- jr c, .asm_115914
- push hl
- dec hl
- ld a, c
- ld [WeeklyFlags], a
-.asm_115908
- xor a
- ld [hld], a
- inc c
- ld a, $3
- cp c
- jr nz, .asm_115908
- pop hl
- ld bc, $0003
-
-.asm_115914
- dec bc
- dec bc
- dec bc
- ld a, c
- ld [$dc19], a
- ld a, b
- ld [$dc1a], a
- push de
- push hl
- ld hl, SwarmFlags
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, [hl]
- inc hl
- ld d, [hl]
-rept 4
- inc de
-endr
- ld [hl], d
- dec hl
- ld [hl], e
- pop hl
- dec hl
- ld c, [hl]
- dec hl
- ld b, [hl]
- dec hl
- ld a, [hl]
- ld d, a
- srl a
- srl a
- ld [hli], a
- ld a, $3
- and d
- ld d, a
- ld a, $f0
- and b
- or d
- swap a
- ld [hli], a
- ld a, $f
- and b
- ld d, a
- ld a, c
- and $c0
- or d
- rlca
- rlca
- ld [hli], a
- ld a, $3f
- and c
- ld [hld], a
- dec hl
- dec hl
- pop de
- ld b, h
- ld c, l
- pop hl
- ld a, [bc]
- inc bc
- call Function1159dc
- ld [hli], a
- ld a, [bc]
- inc bc
- call Function1159dc
- ld [hli], a
- ld a, [bc]
- inc bc
- call Function1159dc
- ld [hli], a
- ld a, [bc]
- inc bc
- call Function1159dc
- ld [hli], a
- ld a, [$dc22]
- inc a
- cp $10
- jr nz, .asm_1159b1
- push af
- push bc
- ld a, [$dc19]
- ld b, a
- ld a, [$dc1a]
- or b
- jr nz, .asm_115998
- ld a, [$dc05]
- ld b, a
- ld a, [$dc06]
- or b
- jr nz, .asm_115998
- pop bc
- pop af
- jr .asm_1159c4
-
-.asm_115998
- pop bc
- pop af
- ld a, $d
- ld [hli], a
- ld a, $a
- ld [hli], a
- push hl
- ld hl, SwarmFlags
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hli]
- ld c, a
- ld b, [hl]
- inc bc
- inc bc
- ld a, b
- ld [hld], a
- ld [hl], c
- pop hl
- xor a
-
-.asm_1159b1
- ld [$dc22], a
- ld a, [$dc19]
- cp $0
- jp nz, .asm_1158e5
- ld a, [$dc1a]
- cp $0
- jp nz, .asm_1158e5
-
-.asm_1159c4
- ld a, [WeeklyFlags]
- cp $0
- jr z, .asm_1159d8
- push hl
- dec hl
- ld b, a
-.asm_1159ce
- ld a, $3d
- ld [hld], a
- inc b
- ld a, $3
- cp b
- jr nz, .asm_1159ce
- pop hl
-
-.asm_1159d8
- ld a, $0
- ld [hl], a
- ret
-
-; 1159dc
-
-Function1159dc: ; 1159dc
- cp $1a
- jr c, .asm_1159ef
- cp $34
- jr c, .asm_1159f2
- cp $3e
- jr c, .asm_1159f5
- cp $3e
- jr z, .asm_1159f8
- ld a, $2f
- ret
-
-.asm_1159ef
- add $41
- ret
-
-.asm_1159f2
- add $47
- ret
-
-.asm_1159f5
- sub $4
- ret
-
-.asm_1159f8
- ld a, $2b
- ret
-
-; 1159fb
-
-Function1159fb: ; 1159fb
- ld a, [wStartDay]
- and a
- jp z, Function11425c
- cp $2
- jr z, .asm_115a29
- cp $3
- jr z, .asm_115a2c
- cp $4
- jr z, .asm_115a2c
- cp $5
- jr z, .asm_115a45
- cp $ff
- jr z, .asm_115a5a
- cp $1
- jp nz, Function11425c
- call Function115732
- call Function115a5f
- ld a, h
- ld [Plant], a
- ld a, l
- ld [Poster], a
-
-.asm_115a29
- call Function115ab0
-
-.asm_115a2c
- call Function115b00
- and a
- jr nz, .asm_115a5a
- ld a, [wStartDay]
- cp $5
- jr z, .asm_115a45
- ld a, [Poster]
- ld h, a
- ld a, [Plant]
- ld l, a
- xor a
- jp Function11425c
-
-.asm_115a45
- ld hl, wCurrMapCallbackCount
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- ld [wStartDay], a
- jp Function11425c
-
-.asm_115a5a
- ld a, $1
- jp Function11425c
-
-; 115a5f
-
-Function115a5f: ; 115a5f
- ld hl, $dc05
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- ld e, $10
- ld b, $0
- ld c, b
- ld d, b
- ld a, $42
-.asm_115a6e
- rl l
- rl h
- rl d
- cp d
- jr c, .asm_115a80
- rl c
- rl b
- dec e
- jr nz, .asm_115a6e
- jr .asm_115a8e
-
-.asm_115a80
- ld a, d
- sub $42
- ld d, a
- ld a, $42
- scf
- rl c
- rl b
- dec e
- jr nz, .asm_115a6e
-
-.asm_115a8e
- sla c
- rl b
- pop hl
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- srl h
- rr l
- srl h
- rr l
- ld b, h
- ld c, l
- sla c
- rl b
- add hl, bc
- ld a, $2
- ld [wStartDay], a
- ret
-
-; 115ab0
-
-Function115ab0: ; 115ab0
- ld hl, $dc05
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$dc0e]
- ld c, a
- ld a, [Bed]
- ld b, a
- cp h
- jr c, .asm_115acb
- jr nz, .asm_115ac9
- ld a, c
- cp l
- jr c, .asm_115acb
- jr z, .asm_115acb
-
-.asm_115ac9
- ld b, h
- ld c, l
-
-.asm_115acb
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- ld a, l
- ld [$dc05], a
- ld a, h
- ld [$dc06], a
- ld a, h
- or l
- jr nz, .asm_115af0
- pop bc
- ld a, c
- ld [$dc0e], a
- ld a, b
- ld [Bed], a
- ld a, $4
- ld [wStartDay], a
- xor a
- ret
-
-.asm_115af0
- pop bc
- ld a, c
- ld [$dc0e], a
- ld a, b
- ld [Bed], a
- ld a, $3
- ld [wStartDay], a
- xor a
- ret
-
-; 115b00
-
-Function115b00: ; 115b00
- ld a, [wStartDay]
- and a
- ret z
- ld a, [$dc0e]
- ld c, a
- ld a, [Bed]
- ld b, a
- ld hl, $dc02
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, PartyMon5Defense
- push bc
- call Function115bc8
- pop hl
- and a
- jr z, .asm_115b43
- cp $2
- jr z, .asm_115b3b
- ld a, [wStartDay]
- cp $4
- jr z, .asm_115b43
- inc hl
- inc hl
- jr .asm_115b43
-
-.asm_115b36
- pop hl
- ld b, $83
- jr .asm_115b3d
-
-.asm_115b3b
- ld b, $81
-
-.asm_115b3d
- ld a, $ff
- ld [wStartDay], a
- ret
-
-.asm_115b43
- ld a, [Carpet]
- add a
- cpl
- ld c, a
- ld b, $ff
- inc bc
- add hl, bc
- ld b, h
- ld c, l
- ld hl, $dc02
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, PartyMon5Defense
- ld de, $dc24
- call Function115c49
- ld hl, $dc24
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
- push hl
- ld a, [wCurrMapCallbackCount]
- ld l, a
- ld a, [wCurrMapCallbackHeaderPointer]
- ld h, a
- cp b
- jr c, .asm_115b36
- jr nz, .asm_115b7b
- ld a, l
- cp c
- jr c, .asm_115b36
-
-.asm_115b7b
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- ld a, l
- ld [wCurrMapCallbackCount], a
- ld a, h
- ld [wCurrMapCallbackHeaderPointer], a
- pop bc
- pop hl
- ld hl, wCurrMapTriggerCount
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc26
- call Function115d6a
- ld hl, wCurrMapTriggerCount
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld [hl], d
- ld a, [wStartDay]
- cp $3
- jr z, .asm_115bc1
- cp $4
- jr z, .asm_115bba
- jr .asm_115b3b
-
-.asm_115bba
- ld a, $5
- ld [wStartDay], a
- jr .asm_115bc6
-
-.asm_115bc1
- ld a, $2
- ld [wStartDay], a
-
-.asm_115bc6
- xor a
- ret
-
-; 115bc8
-
-Function115bc8: ; 115bc8
- xor a
- ld [Carpet], a
-.asm_115bcc
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c46
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c1b
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c46
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c3a
- ld a, [de]
- cp $d
- jr nz, .asm_115bcc
- inc e
- call z, .Function115c3d
- ld a, [de]
- cp $a
- jr nz, .asm_115c46
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c46
- ld a, [Carpet]
- inc a
- ld [Carpet], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_115bcc
-
-.asm_115c1b
- ld a, [wStartDay]
- cp $4
- jr z, .asm_115c33
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- xor a
- ld [hl], a
- ld a, $1
- ret
-
-.asm_115c33
- dec hl
- dec hl
- xor a
- ld [hl], a
- ld a, $1
- ret
-
-.asm_115c3a
- xor a
- ld [hl], a
- ret
-
-.Function115c3d:
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-.asm_115c46
- ld a, $2
- ret
-
-; 115c49
-
-Function115c49: ; 115c49
- ld a, e
- ld [WeeklyFlags], a
- ld a, d
- ld [SwarmFlags], a
- xor a
- ld [de], a
- inc de
- ld [de], a
- inc de
-
- ld a, c
- ld [$dc19], a
- ld a, b
- ld [$dc1a], a
- ld c, e
- ld b, d
- ld e, l
- ld d, h
- ld l, c
- ld h, b
-
-.asm_115c64
- ld a, [$dc1a]
- or a
- jr nz, .asm_115c71
- ld a, [$dc19]
- cp $4
- jr c, .asm_115c99
-
-.asm_115c71
- ld b, $4
- push hl
- ld hl, $dc1b
-.asm_115c77
- ld a, [de]
- inc de
- call Function115cfd
- ld [hli], a
- dec b
- jr nz, .asm_115c77
- ld a, [$dc19]
- ld c, a
- ld a, [$dc1a]
- ld b, a
-rept 4
- dec bc
-endr
-.asm_115c8c
- ld a, [de]
- cp $d
- jr z, .asm_115c95
- cp $a
- jr nz, .asm_115c9f
-
-.asm_115c95
- inc de
- dec bc
- jr .asm_115c8c
-
-.asm_115c99
- ld a, $ff
- ld [wStartDay], a
- ret
-
-.asm_115c9f
- ld a, c
- ld [$dc19], a
- ld a, b
- ld [$dc1a], a
- push de
- push hl
- ld hl, WeeklyFlags
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- pop hl
- dec hl
- ld d, [hl]
- dec hl
- ld c, [hl]
- dec hl
- ld b, [hl]
- dec hl
- ld a, [hl]
- sla b
- sla b
- sla b
- rla
- sla b
- rla
- ld [hli], a
- ld [hl], b
- inc hl
- rrc c
- rrc c
- ld [hl], c
- dec hl
- ld a, $f
- and c
- or [hl]
- ld [hli], a
- ld a, [hli]
- and $c0
- or [hl]
- dec hl
- ld [hld], a
- dec hl
- pop de
- ld b, h
- ld c, l
- pop hl
- ld a, [bc]
- ld [hli], a
- inc bc
- ld a, [bc]
- ld [hli], a
- inc bc
- ld a, [bc]
- ld [hli], a
- ld a, [$dc19]
- cp $0
- jp nz, .asm_115c64
- ld a, [$dc1a]
- cp $0
- jp nz, .asm_115c64
- ret
-
-; 115cfd
-
-Function115cfd: ; 115cfd
- cp $2b
- jr c, .asm_115d27
- jr z, .asm_115d2f
- cp $2f
- jr c, .asm_115d27
- jr z, .asm_115d32
- cp $30
- jr c, .asm_115d27
- cp $3a
- jr c, .asm_115d35
- cp $3d
- jr c, .asm_115d27
- jr z, .asm_115d38
- cp $41
- jr c, .asm_115d27
- cp $5b
- jr c, .asm_115d4d
- cp $61
- jr c, .asm_115d27
- cp $7b
- jr c, .asm_115d50
-
-.asm_115d27
- pop hl
- pop hl
- ld a, $ff
- ld [wStartDay], a
- ret
-
-.asm_115d2f
- ld a, $3e
- ret
-
-.asm_115d32
- ld a, $3f
- ret
-
-.asm_115d35
- add $4
- ret
-
-.asm_115d38
- push de
- push hl
- ld a, [WeeklyFlags]
- ld l, a
- ld a, [SwarmFlags]
- ld h, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- dec de
- ld [hl], d
- dec hl
- ld [hl], e
- pop hl
- pop de
- xor a
- ret
-
-.asm_115d4d
- sub $41
- ret
-
-.asm_115d50
- sub $47
- ret
-
-; 115d53
-
-Function115d53: ; 115d53
-.asm_115d53
- ld a, [de]
- ld [hli], a
- inc e
- call z, Function115d61
- dec bc
- ld a, b
- or c
- jr nz, .asm_115d53
- xor a
- ld [hl], a
- ret
-
-; 115d61
-
-Function115d61: ; 115d61
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 115d6a
-
-Function115d6a: ; 115d6a
-.asm_115d6a
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function115d77
- dec bc
- ld a, b
- or c
- jr nz, .asm_115d6a
- xor a
- ret
-
-; 115d77
-
-Function115d77: ; 115d77
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 115d80
-
-Function115d80: ; 115d80
- ld e, a
- ld a, d
- cp $bf
- jr z, .asm_115d8b
- inc d
- ld a, e
- ld e, $0
- ret
-
-.asm_115d8b
- ld a, [bc]
- inc a
- ld [bc], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, e
- ld d, $a0
- ld e, $0
- ret
-
-; 115d99
-
-INCLUDE "misc/mobile_45_sprite_engine.asm"
-
-; 116567
-
-Function116567: ; 116567
- ld hl, wc3f7
- dec [hl]
- ret nz
- ld hl, wc3f6
- inc [hl]
-.asm_116570
- ld a, $7
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_1167eb
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- pop hl
- ld a, [wc3f6]
- sla a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hli]
- cp $fe
- jr nz, .asm_116595
- xor a
- ld [wc3f6], a
- jr .asm_116570
-
-.asm_116595
- ld [wc3f5], a
- ld a, [hl]
- ld [wc3f7], a
- ret
-
-; 11659d
-
-Function11659d: ; 11659d
- ld a, [wc314]
- cp $12
- ret nc
- ld e, a
- ld d, 0
- ld hl, Jumptable_1165af
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-; 1165af
-
-Jumptable_1165af: ; 1165af
- dw Function11677e
- dw Function1165d5
- dw Function1165d8
- dw Function1165e3
- dw Function1165f5
- dw Function116600
- dw Function116615
- dw Function116618
- dw Function116623
- dw Function116635
- dw Function116640
- dw Function116655
- dw Function11665c
- dw Function11668d
- dw Function11669f
- dw Function1166a2
- dw Function1166c4
- dw Function1166d6
- dw Function1166d6
-; 1165d5
-
-Function1165d5: ; 1165d5
- call Function11678e
-
-Function1165d8:
- ld a, $0
- ld c, a
- ld a, $ff
- ld b, a
- ld a, $a8
- call Function1166f4
-
-Function1165e3:
- call Function116747
- ld a, [wc30e]
- cp $e8
- ret nz
- ld a, $1
- call Function116780
- ret c
- jp Function116797
-
-; 1165f5
-
-Function1165f5: ; 1165f5
- ld a, $1
- ld c, a
- ld a, $1
- ld b, a
- ld a, $e8
- call Function1166f4
-
-Function116600:
- call Function116747
- ld a, [wc30e]
- cp $a8
- ret nz
- ld a, $1
- call Function116780
- ret c
- ld a, $2
- ld [wc314], a
- ret
-
-; 116615
-
-Function116615: ; 116615
- call Function11678e
-
-Function116618:
- ld a, $3
- ld c, a
- ld a, $1
- ld b, a
- ld a, $28
- call Function11671f
-
-Function116623:
- call Function116747
- ld a, [wc30f]
- cp $a0
- ret nz
- ld a, $6
- call Function116780
- ret c
- jp Function116797
-
-; 116635
-
-Function116635: ; 116635
- ld a, $2
- ld c, a
- ld a, $ff
- ld b, a
- ld a, $a0
- call Function11671f
-
-Function116640:
- call Function116747
- ld a, [wc30f]
- cp $28
- ret nz
- ld a, $6
- call Function116780
- ret c
- ld a, $7
- ld [wc314], a
- ret
-
-; 116655
-
-Function116655: ; 116655
- xor a
- ld [wc314 + 3], a
- call Function11678e
-
-Function11665c:
- ld hl, wc314 + 3
- ld a, $1
- xor [hl]
- ld [hl], a
- add $4
- ld c, a
- call Function11679c
- ld a, [wc314 + 3]
- and a
- jr nz, .asm_116673
- ld a, $48
- jr .asm_116675
-
-.asm_116673
- ld a, $78
-
-.asm_116675
- ld [wc30f], a
- call Random
- ld a, [hRandomAdd]
- and $7
- sla a
- sla a
- sla a
- add $30
- ld [wc30e], a
- call Function116797
-
-Function11668d:
- ld a, [wc311]
- cp $ff
- ret nz
- ld a, $b
- call Function116780
- ret c
- ld a, $c
- ld [wc314], a
- ret
-
-; 11669f
-
-Function11669f: ; 11669f
- call Function11678e
-
-Function1166a2:
- ld a, $a8
- ld [wc30e], a
- ld [wc3f1], a
- ld a, $60
- ld [wc30f], a
- ld [wc3f3], a
- ld a, $ff
- ld [wc314 + 2], a
- xor a
- ld [wc314 + 3], a
- ld a, $0
- ld c, a
- call Function11679c
- call Function116797
-
-Function1166c4:
- call Function116747
- ld a, [wc30e]
- cp $58
- ret nz
- ld a, $6
- ld c, a
- call Function11679c
- call Function116797
-
-Function1166d6:
- call Function116747
- ld a, [wc30e]
- cp $48
- jr nz, .asm_1166e4
- xor a
- ld [wc314 + 2], a
-
-.asm_1166e4
- ld a, [wc311]
- cp $ff
- ret nz
- ld a, $4
- ld [$c319], a
- xor a
- ld [wc314], a
- ret
-
-; 1166f4
-
-Function1166f4: ; 1166f4
- ld [wc30e], a
- ld a, b
- ld [wc314 + 2], a
- xor a
- ld [wc314 + 3], a
- ld hl, wc30f
-.asm_116702
- call Random
- ld a, [hRandomAdd]
- and $7
- jr z, .asm_11670c
- dec a
-
-.asm_11670c
- sla a
- sla a
- sla a
- add $48
- cp [hl]
- jr z, .asm_116702
- ld [hl], a
- call Function11679c
- call Function116797
- ret
-
-; 11671f
-
-Function11671f: ; 11671f
- ld [wc30f], a
- ld a, b
- ld [wc314 + 3], a
- xor a
- ld [wc314 + 2], a
- ld hl, wc30e
-.asm_11672d
- call Random
- ld a, [hRandomAdd]
- and $7
- sla a
- sla a
- sla a
- add $30
- cp [hl]
- jr z, .asm_11672d
- ld [hl], a
- call Function11679c
- call Function116797
- ret
-
-; 116747
-
-Function116747: ; 116747
- ld hl, wc30e
- ld a, [wc314 + 2]
- add [hl]
- ld [hl], a
- ld hl, wc30f
- ld a, [wc314 + 3]
- add [hl]
- ld [hl], a
- ret
-
-; 116758
-
-Function116758: ; 116758
- ld a, [wc30f]
- cp $30
- jr c, .asm_116770
- jr z, .asm_116770
- cp $38
- jr c, .asm_116774
- jr z, .asm_116774
- cp $40
- jr c, .asm_116778
- jr z, .asm_116778
- xor a
- jr .asm_11677a
-
-.asm_116770
- ld a, $c
- jr .asm_11677a
-
-.asm_116774
- ld a, $8
- jr .asm_11677a
-
-.asm_116778
- ld a, $4
-
-.asm_11677a
- ld [wc314 + 4], a
- ret
-
-; 11677e
-
-Function11677e: ; 11677e
- ld a, $0
-
-Function116780:
- ld hl, wc314 + 1
- cp [hl]
- jr z, .asm_11678c
- ld a, [hl]
- ld [wc314], a
- scf
- ret
-
-.asm_11678c
- and a
- ret
-
-; 11678e
-
-Function11678e: ; 11678e
- ld hl, wc314
- ld a, [hl]
- ld [wc314 + 1], a
- inc [hl]
- ret
-
-; 116797
-
-Function116797: ; 116797
- ld hl, wc314
- inc [hl]
- ret
-
-; 11679c
-
-Function11679c:
- ld a, c
- ld [wc311], a
- xor a
- ld [wc312], a
- jr asm_1167af
-
-Function1167a6: ; 1167a6
- ld hl, wc313
- dec [hl]
- ret nz
- ld hl, wc312
- inc [hl]
-
-asm_1167af
-.asm_1167af
- ld a, [wc311]
- cp $ff
- ret z
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_1167eb
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- pop hl
- ld a, [wc312]
- sla a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hli]
- cp $ff
- jr z, .asm_1167dc
- cp $fe
- jr nz, .asm_1167e3
- xor a
- ld [wc312], a
- jr .asm_1167af
-
-.asm_1167dc
- ld a, $ff
- ld [wc311], a
- ld a, $fd
-
-.asm_1167e3
- ld [wc310], a
- ld a, [hl]
- ld [wc313], a
- ret
-
-; 1167eb
-
-Unknown_1167eb:
- dw Unknown_1167fb
- dw Unknown_116808
- dw Unknown_116867
- dw Unknown_116870
- dw Unknown_116815
- dw Unknown_11683e
- dw Unknown_116881
- dw Unknown_1168ae
-
-Unknown_1167fb: ; 1167fb
- db $0, $6
- db $1, $4
- db $2, $4
- db $3, $6
- db $2, $4
- db $1, $4
- db $fe
-
-Unknown_116808: ; 116808
- db $4, $6
- db $5, $4
- db $6, $4
- db $7, $6
- db $6, $4
- db $5, $4
- db $fe
-
-Unknown_116815: ; 116815
- db $fd, $20
- db $8, $c
- db $9, $24
- db $a, $4
- db $b, $8
- db $a, $4
- db $9, $6
- db $c, $4
- db $d, $8
- db $c, $5
- db $9, $24
- db $a, $4
- db $b, $8
- db $a, $4
- db $9, $6
- db $c, $4
- db $d, $8
- db $c, $5
- db $9, $8
- db $8, $4
- db $ff
-
-Unknown_11683e: ; 11683e
- db $fd, $20
- db $e, $c
- db $f, $24
- db $10, $4
- db $11, $8
- db $10, $4
- db $f, $6
- db $12, $4
- db $13, $8
- db $12, $5
- db $f, $24
- db $10, $4
- db $11, $8
- db $10, $4
- db $f, $6
- db $12, $4
- db $13, $8
- db $12, $5
- db $f, $8
- db $e, $4
- db $ff
-
-Unknown_116867: ; 116867
- db $14, $8
- db $15, $8
- db $16, $8
- db $15, $8
- db $fe
-
-Unknown_116870: ; 116870
- db $17, $5
- db $18, $5
- db $19, $5
- db $1a, $5
- db $1b, $5
- db $1a, $5
- db $19, $5
- db $18, $5
- db $fe
-
-Unknown_116881: ; 116881
- db $1c, $7
- db $1d, $7
- db $1e, $a
- db $1f, $a
- db $20, $5
- db $21, $5
- db $20, $5
- db $21, $5
- db $20, $18
- db $22, $4
- db $23, $2
- db $22, $2
- db $23, $2
- db $22, $1
- db $23, $1
- db $22, $1
- db $23, $4
- db $fd, $1
- db $23, $1
- db $fd, $2
- db $23, $2
- db $fd, $40
- db $ff
-
-Unknown_1168ae: ; 1168ae
- db $24, $4
- db $25, $4
- db $26, $4
- db $27, $4
- db $28, $4
- db $29, $4
- db $2a, $4
- db $2b, $4
- db $2c, $4
- db $2d, $4
- db $2e, $4
- db $fe
-; 1168c5
-
-Unknown_1168c5:
- dw Unknown_116923
- dw Unknown_116960
- dw Unknown_1169a1
- dw Unknown_1169de
- dw Unknown_116a1b
- dw Unknown_116a58
- dw Unknown_116a99
- dw Unknown_116ad6
- dw Unknown_116d1b
- dw Unknown_116d4c
- dw Unknown_116d85
- dw Unknown_116dbe
- dw Unknown_116df7
- dw Unknown_116e30
- dw Unknown_116e69
- dw Unknown_116e9a
- dw Unknown_116ed3
- dw Unknown_116f0c
- dw Unknown_116f45
- dw Unknown_116f7e
- dw Unknown_116b13
- dw Unknown_116b54
- dw Unknown_116b95
- dw Unknown_116bd6
- dw Unknown_116c17
- dw Unknown_116c58
- dw Unknown_116c99
- dw Unknown_116cda
- dw Unknown_116fb7
- dw Unknown_116fec
- dw Unknown_117025
- dw Unknown_117056
- dw Unknown_117083
- dw Unknown_1170c0
- dw Unknown_1170fd
- dw Unknown_11713a
- dw Unknown_117177
- dw Unknown_11719c
- dw Unknown_1171c1
- dw Unknown_1171e6
- dw Unknown_11720b
- dw Unknown_117230
- dw Unknown_117255
- dw Unknown_11727a
- dw Unknown_11729f
- dw Unknown_1172c4
- dw Unknown_1172e9
-
-Unknown_116923: ; 116923
- db $f
- db $0, $0, $1, $a
- db $0, $8, $2, $d
- db $0, $10, $3, $d
- db $0, $18, $4, $d
- db $8, $0, $11, $a
- db $8, $8, $12, $a
- db $8, $10, $13, $a
- db $8, $18, $14, $d
- db $10, $0, $21, $a
- db $10, $8, $22, $a
- db $10, $10, $23, $a
- db $10, $18, $24, $a
- db $18, $0, $31, $a
- db $18, $8, $32, $a
- db $18, $10, $33, $a
-
-Unknown_116960: ; 116960
- db $10
- db $1, $0, $1, $a
- db $1, $8, $2, $d
- db $1, $10, $3, $d
- db $1, $18, $4, $d
- db $9, $0, $11, $a
- db $9, $8, $12, $a
- db $9, $10, $13, $a
- db $9, $18, $14, $d
- db $11, $0, $5, $a
- db $11, $8, $6, $a
- db $11, $10, $7, $a
- db $11, $18, $34, $a
- db $19, $0, $15, $a
- db $19, $8, $16, $a
- db $19, $10, $17, $a
- db $19, $18, $35, $a
-
-Unknown_1169a1: ; 1169a1
- db $f
- db $1, $0, $1, $a
- db $1, $8, $2, $d
- db $1, $10, $3, $d
- db $1, $18, $4, $d
- db $9, $0, $11, $a
- db $9, $8, $12, $a
- db $9, $10, $13, $a
- db $9, $18, $14, $d
- db $11, $0, $25, $a
- db $11, $8, $26, $a
- db $11, $10, $27, $a
- db $11, $18, $34, $a
- db $19, $8, $36, $a
- db $19, $10, $37, $a
- db $19, $18, $35, $a
-
-Unknown_1169de: ; 1169de
- db $f
- db $0, $0, $1, $a
- db $0, $8, $2, $d
- db $0, $10, $3, $d
- db $0, $18, $4, $d
- db $8, $0, $11, $a
- db $8, $8, $12, $a
- db $8, $10, $13, $a
- db $8, $18, $14, $d
- db $10, $0, $10, $a
- db $10, $8, $20, $a
- db $10, $10, $30, $a
- db $10, $18, $24, $a
- db $18, $0, $31, $a
- db $18, $8, $32, $a
- db $18, $10, $33, $a
-
-Unknown_116a1b: ; 116a1b
- db $f
- db $0, $0, $4, $2d
- db $0, $8, $3, $2d
- db $0, $10, $2, $2d
- db $0, $18, $1, $2a
- db $8, $0, $14, $2d
- db $8, $8, $13, $2a
- db $8, $10, $12, $2a
- db $8, $18, $11, $2a
- db $10, $0, $24, $2a
- db $10, $8, $23, $2a
- db $10, $10, $22, $2a
- db $10, $18, $21, $2a
- db $18, $8, $33, $2a
- db $18, $10, $32, $2a
- db $18, $18, $31, $2a
-
-Unknown_116a58: ; 116a58
- db $10
- db $1, $0, $4, $2d
- db $1, $8, $3, $2d
- db $1, $10, $2, $2d
- db $1, $18, $1, $2a
- db $9, $0, $14, $2d
- db $9, $8, $13, $2a
- db $9, $10, $12, $2a
- db $9, $18, $11, $2a
- db $11, $0, $34, $2a
- db $11, $8, $7, $2a
- db $11, $10, $6, $2a
- db $11, $18, $5, $2a
- db $19, $0, $35, $2a
- db $19, $8, $17, $2a
- db $19, $10, $16, $2a
- db $19, $18, $15, $2a
-
-Unknown_116a99: ; 116a99
- db $f
- db $1, $0, $4, $2d
- db $1, $8, $3, $2d
- db $1, $10, $2, $2d
- db $1, $18, $1, $2a
- db $9, $0, $14, $2d
- db $9, $8, $13, $2a
- db $9, $10, $12, $2a
- db $9, $18, $11, $2a
- db $11, $0, $34, $2a
- db $11, $8, $27, $2a
- db $11, $10, $26, $2a
- db $11, $18, $25, $2a
- db $19, $0, $35, $2a
- db $19, $8, $37, $2a
- db $19, $10, $36, $2a
-
-Unknown_116ad6: ; 116ad6
- db $f
- db $0, $0, $4, $2d
- db $0, $8, $3, $2d
- db $0, $10, $2, $2d
- db $0, $18, $1, $2a
- db $8, $0, $14, $2d
- db $8, $8, $13, $2a
- db $8, $10, $12, $2a
- db $8, $18, $11, $2a
- db $10, $0, $24, $2a
- db $10, $8, $30, $2a
- db $10, $10, $20, $2a
- db $10, $18, $10, $2a
- db $18, $8, $33, $2a
- db $18, $10, $32, $2a
- db $18, $18, $31, $2a
-
-Unknown_116b13: ; 116b13
- db $10
- db $18, $0, $0, $b
- db $18, $8, $8, $b
- db $18, $10, $5c, $b
- db $18, $18, $0, $b
- db $10, $0, $0, $b
- db $10, $8, $5d, $b
- db $10, $10, $5e, $b
- db $10, $18, $0, $b
- db $8, $0, $50, $b
- db $8, $8, $51, $b
- db $8, $10, $52, $b
- db $8, $18, $50, $2b
- db $0, $0, $43, $b
- db $0, $8, $44, $b
- db $0, $10, $44, $2b
- db $0, $18, $43, $2b
-
-Unknown_116b54: ; 116b54
- db $10
- db $19, $0, $0, $b
- db $19, $8, $18, $b
- db $19, $10, $c, $b
- db $19, $18, $0, $b
- db $11, $0, $42, $b
- db $11, $8, $3a, $b
- db $11, $10, $3a, $2b
- db $11, $18, $42, $2b
- db $9, $0, $58, $b
- db $9, $8, $45, $b
- db $9, $10, $45, $2b
- db $9, $18, $58, $2b
- db $1, $0, $d, $b
- db $1, $8, $44, $b
- db $1, $10, $44, $2b
- db $1, $18, $d, $2b
-
-Unknown_116b95: ; 116b95
- db $10
- db $18, $0, $0, $b
- db $18, $8, $5c, $2b
- db $18, $10, $8, $2b
- db $18, $18, $0, $b
- db $10, $0, $0, $b
- db $10, $8, $5e, $2b
- db $10, $10, $5d, $2b
- db $10, $18, $0, $b
- db $8, $0, $50, $b
- db $8, $8, $52, $2b
- db $8, $10, $51, $2b
- db $8, $18, $50, $2b
- db $0, $0, $43, $b
- db $0, $8, $44, $b
- db $0, $10, $44, $2b
- db $0, $18, $43, $2b
-
-Unknown_116bd6: ; 116bd6
- db $10
- db $18, $0, $0, $a
- db $18, $8, $56, $a
- db $18, $10, $57, $a
- db $18, $18, $0, $a
- db $10, $0, $64, $a
- db $10, $8, $4a, $a
- db $10, $10, $4b, $a
- db $10, $18, $71, $a
- db $8, $0, $54, $a
- db $8, $8, $55, $a
- db $8, $10, $55, $2a
- db $8, $18, $54, $2a
- db $0, $0, $48, $a
- db $0, $8, $49, $a
- db $0, $10, $49, $2a
- db $0, $18, $48, $2a
-
-Unknown_116c17: ; 116c17
- db $10
- db $19, $0, $0, $a
- db $19, $8, $76, $a
- db $19, $10, $77, $a
- db $19, $18, $0, $a
- db $11, $0, $64, $a
- db $11, $8, $69, $a
- db $11, $10, $6a, $a
- db $11, $18, $6b, $a
- db $9, $0, $6f, $a
- db $9, $8, $70, $a
- db $9, $10, $70, $2a
- db $9, $18, $6f, $2a
- db $1, $0, $63, $a
- db $1, $8, $19, $a
- db $1, $10, $19, $2a
- db $1, $18, $63, $2a
-
-Unknown_116c58: ; 116c58
- db $10
- db $1a, $0, $6c, $a
- db $1a, $8, $6d, $a
- db $1a, $10, $6e, $a
- db $1a, $18, $0, $a
- db $12, $0, $5f, $a
- db $12, $8, $60, $a
- db $12, $10, $61, $a
- db $12, $18, $62, $a
- db $a, $0, $53, $a
- db $a, $8, $55, $a
- db $a, $10, $55, $2a
- db $a, $18, $53, $2a
- db $2, $0, $46, $a
- db $2, $8, $47, $a
- db $2, $10, $47, $2a
- db $2, $18, $46, $2a
-
-Unknown_116c99: ; 116c99
- db $10
- db $19, $0, $0, $2a
- db $19, $8, $77, $2a
- db $19, $10, $76, $2a
- db $19, $18, $0, $2a
- db $11, $0, $6b, $2a
- db $11, $8, $6a, $2a
- db $11, $10, $69, $2a
- db $11, $18, $64, $2a
- db $9, $0, $6f, $a
- db $9, $8, $70, $a
- db $9, $10, $70, $2a
- db $9, $18, $6f, $2a
- db $1, $0, $63, $a
- db $1, $8, $19, $a
- db $1, $10, $19, $2a
- db $1, $18, $63, $2a
-
-Unknown_116cda: ; 116cda
- db $10
- db $18, $0, $0, $a
- db $18, $8, $57, $2a
- db $18, $10, $56, $2a
- db $18, $18, $0, $a
- db $10, $0, $71, $2a
- db $10, $8, $4b, $2a
- db $10, $10, $4a, $2a
- db $10, $18, $64, $2a
- db $8, $0, $54, $a
- db $8, $8, $55, $a
- db $8, $10, $55, $2a
- db $8, $18, $54, $2a
- db $0, $0, $48, $a
- db $0, $8, $49, $a
- db $0, $10, $49, $2a
- db $0, $18, $48, $2a
-
-Unknown_116d1b: ; 116d1b
- db $c
- db $0, $0, $38, $4a
- db $0, $8, $39, $4a
- db $0, $10, $39, $6a
- db $0, $18, $38, $6a
- db $8, $0, $28, $4a
- db $8, $8, $29, $4a
- db $8, $10, $29, $6a
- db $8, $18, $28, $6a
- db $10, $0, $9, $4d
- db $10, $8, $19, $4a
- db $10, $10, $19, $6a
- db $10, $18, $9, $6d
-
-Unknown_116d4c: ; 116d4c
- db $e
- db $0, $8, $3b, $4a
- db $0, $10, $3b, $6a
- db $8, $0, $2a, $4a
- db $8, $8, $2b, $4a
- db $8, $10, $2b, $6a
- db $8, $18, $2a, $6a
- db $10, $0, $1a, $4a
- db $10, $8, $1b, $4a
- db $10, $10, $1b, $6a
- db $10, $18, $1a, $6a
- db $18, $0, $a, $4a
- db $18, $8, $b, $4a
- db $18, $10, $b, $6a
- db $18, $18, $a, $6a
-
-Unknown_116d85: ; 116d85
- db $e
- db $0, $0, $35, $2a
- db $0, $8, $3c, $4a
- db $0, $10, $3d, $4a
- db $0, $18, $3e, $4a
- db $8, $0, $2c, $4a
- db $8, $8, $2d, $4a
- db $8, $10, $2e, $4a
- db $8, $18, $2f, $4a
- db $10, $0, $1c, $4a
- db $10, $8, $1d, $4a
- db $10, $10, $1e, $4d
- db $10, $18, $1f, $4d
- db $18, $10, $e, $4d
- db $18, $18, $f, $4a
-
-Unknown_116dbe: ; 116dbe
- db $e
- db $0, $0, $65, $4a
- db $0, $8, $66, $4a
- db $0, $10, $67, $4a
- db $0, $18, $68, $4a
- db $8, $8, $59, $4a
- db $8, $10, $5a, $4a
- db $8, $18, $5b, $4a
- db $10, $0, $4c, $4a
- db $10, $8, $4d, $4d
- db $10, $10, $4e, $4d
- db $10, $18, $4f, $4a
- db $18, $0, $3f, $4d
- db $18, $8, $40, $4d
- db $18, $10, $41, $4d
-
-Unknown_116df7: ; 116df7
- db $e
- db $0, $0, $3e, $6a
- db $0, $8, $3d, $6a
- db $0, $10, $3c, $6a
- db $0, $18, $35, $a
- db $8, $0, $2f, $6a
- db $8, $8, $2e, $6a
- db $8, $10, $2d, $6a
- db $8, $18, $2c, $6a
- db $10, $0, $1f, $6d
- db $10, $8, $1e, $6d
- db $10, $10, $1d, $6a
- db $10, $18, $1c, $6a
- db $18, $0, $f, $6a
- db $18, $8, $e, $6d
-
-Unknown_116e30: ; 116e30
- db $e
- db $0, $0, $68, $6a
- db $0, $8, $67, $6a
- db $0, $10, $66, $6a
- db $0, $18, $65, $6a
- db $8, $0, $5b, $6a
- db $8, $8, $5a, $6a
- db $8, $10, $59, $6a
- db $10, $0, $4f, $6a
- db $10, $8, $4e, $6d
- db $10, $10, $4d, $6d
- db $10, $18, $4c, $6a
- db $18, $8, $41, $6d
- db $18, $10, $40, $6d
- db $18, $18, $3f, $6d
-
-Unknown_116e69: ; 116e69
- db $c
- db $8, $0, $9, $d
- db $8, $8, $19, $a
- db $8, $10, $19, $2a
- db $8, $18, $9, $2d
- db $10, $0, $28, $a
- db $10, $8, $29, $a
- db $10, $10, $29, $2a
- db $10, $18, $28, $2a
- db $18, $0, $38, $a
- db $18, $8, $39, $a
- db $18, $10, $39, $2a
- db $18, $18, $38, $2a
-
-Unknown_116e9a: ; 116e9a
- db $e
- db $0, $0, $a, $a
- db $0, $8, $b, $a
- db $0, $10, $b, $2a
- db $0, $18, $a, $2a
- db $8, $0, $1a, $a
- db $8, $8, $1b, $a
- db $8, $10, $1b, $2a
- db $8, $18, $1a, $2a
- db $10, $0, $2a, $a
- db $10, $8, $2b, $a
- db $10, $10, $2b, $2a
- db $10, $18, $2a, $2a
- db $18, $8, $3b, $a
- db $18, $10, $3b, $2a
-
-Unknown_116ed3: ; 116ed3
- db $e
- db $0, $10, $e, $d
- db $0, $18, $f, $a
- db $8, $0, $1c, $a
- db $8, $8, $1d, $a
- db $8, $10, $1e, $d
- db $8, $18, $1f, $d
- db $10, $0, $2c, $a
- db $10, $8, $2d, $a
- db $10, $10, $2e, $a
- db $10, $18, $2f, $a
- db $18, $0, $35, $6a
- db $18, $8, $3c, $a
- db $18, $10, $3d, $a
- db $18, $18, $3e, $a
-
-Unknown_116f0c: ; 116f0c
- db $e
- db $0, $0, $3f, $d
- db $0, $8, $40, $d
- db $0, $10, $41, $d
- db $8, $0, $4c, $a
- db $8, $8, $4d, $d
- db $8, $10, $4e, $d
- db $8, $18, $4f, $a
- db $10, $8, $59, $a
- db $10, $10, $5a, $a
- db $10, $18, $5b, $a
- db $18, $0, $65, $a
- db $18, $8, $66, $a
- db $18, $10, $67, $a
- db $18, $18, $68, $a
-
-Unknown_116f45: ; 116f45
- db $e
- db $0, $0, $f, $2a
- db $0, $8, $e, $2d
- db $8, $0, $1f, $2d
- db $8, $8, $1e, $2d
- db $8, $10, $1d, $2a
- db $8, $18, $1c, $2a
- db $10, $0, $2f, $2a
- db $10, $8, $2e, $2a
- db $10, $10, $2d, $2a
- db $10, $18, $2c, $2a
- db $18, $0, $3e, $2a
- db $18, $8, $3d, $2a
- db $18, $10, $3c, $2a
- db $18, $18, $35, $4a
-
-Unknown_116f7e: ; 116f7e
- db $e
- db $0, $8, $41, $2d
- db $0, $10, $40, $2d
- db $0, $18, $3f, $2d
- db $8, $0, $4f, $2a
- db $8, $8, $4e, $2d
- db $8, $10, $4d, $2d
- db $8, $18, $4c, $2a
- db $10, $0, $5b, $2a
- db $10, $8, $5a, $2a
- db $10, $10, $59, $2a
- db $18, $0, $68, $2a
- db $18, $8, $67, $2a
- db $18, $10, $66, $2a
- db $18, $18, $65, $2a
-
-Unknown_116fb7: ; 116fb7
- db $d
- db $fa, $0, $72, $a
- db $fa, $8, $73, $d
- db $fa, $10, $74, $d
- db $fa, $18, $75, $d
- db $2, $0, $81, $a
- db $2, $8, $82, $a
- db $2, $10, $83, $a
- db $2, $18, $84, $a
- db $a, $0, $91, $a
- db $a, $8, $92, $a
- db $a, $10, $93, $a
- db $a, $18, $94, $a
- db $12, $10, $a3, $a
-
-Unknown_116fec: ; 116fec
- db $e
- db $fd, $0, $85, $d
- db $fd, $8, $86, $d
- db $5, $0, $95, $d
- db $5, $8, $96, $a
- db $5, $10, $97, $a
- db $5, $18, $98, $a
- db $d, $0, $a5, $a
- db $d, $8, $a6, $a
- db $d, $10, $a7, $a
- db $d, $18, $a8, $a
- db $15, $0, $b3, $a
- db $15, $8, $b4, $a
- db $15, $10, $b5, $a
- db $15, $18, $b6, $a
-
-Unknown_117025: ; 117025
- db $c
- db $8, $0, $79, $d
- db $8, $8, $7a, $d
- db $8, $10, $7b, $a
- db $8, $18, $7c, $a
- db $10, $0, $89, $d
- db $10, $8, $8a, $a
- db $10, $10, $8b, $a
- db $10, $18, $8c, $a
- db $18, $0, $99, $a
- db $18, $8, $9a, $a
- db $18, $10, $9b, $a
- db $18, $18, $9c, $a
-
-Unknown_117056: ; 117056
- db $b
- db $8, $0, $7d, $a
- db $8, $8, $7e, $d
- db $8, $10, $7f, $d
- db $8, $18, $80, $a
- db $10, $0, $8d, $a
- db $10, $8, $8e, $a
- db $10, $10, $8f, $a
- db $10, $18, $90, $a
- db $18, $8, $9e, $a
- db $18, $10, $9f, $a
- db $18, $18, $a0, $a
-
-Unknown_117083: ; 117083
- db $f
- db $0, $0, $a1, $a
- db $0, $8, $a2, $a
- db $0, $10, $a2, $2a
- db $0, $18, $a1, $2a
- db $8, $0, $b1, $a
- db $8, $8, $b2, $d
- db $8, $10, $b2, $2d
- db $8, $18, $b1, $2a
- db $10, $0, $ab, $a
- db $10, $8, $ac, $a
- db $10, $10, $ac, $2a
- db $10, $18, $ab, $2a
- db $18, $8, $a4, $a
- db $18, $10, $87, $a
- db $18, $18, $88, $a
-
-Unknown_1170c0: ; 1170c0
- db $f
- db $0, $0, $a1, $a
- db $0, $8, $a2, $d
- db $0, $10, $a2, $2a
- db $0, $18, $a1, $2a
- db $8, $0, $b1, $a
- db $8, $8, $78, $d
- db $8, $10, $78, $2d
- db $8, $18, $b1, $2a
- db $10, $0, $ab, $a
- db $10, $8, $ac, $a
- db $10, $10, $ac, $2a
- db $10, $18, $ab, $2a
- db $18, $8, $a4, $a
- db $18, $10, $87, $a
- db $18, $18, $88, $a
-
-Unknown_1170fd: ; 1170fd
- db $f
- db $0, $0, $a9, $a
- db $0, $8, $aa, $a
- db $0, $10, $aa, $2a
- db $0, $18, $a9, $2a
- db $8, $0, $b7, $a
- db $8, $8, $b8, $a
- db $8, $10, $b8, $2a
- db $8, $18, $b7, $2a
- db $10, $0, $ab, $a
- db $10, $8, $ac, $a
- db $10, $10, $ac, $2a
- db $10, $18, $ad, $a
- db $18, $8, $a4, $a
- db $18, $10, $ba, $a
- db $18, $18, $bb, $a
-
-Unknown_11713a: ; 11713a
- db $f
- db $0, $0, $ae, $c
- db $0, $8, $af, $c
- db $0, $10, $af, $2c
- db $0, $18, $ae, $2c
- db $8, $0, $bc, $c
- db $8, $8, $bd, $c
- db $8, $10, $bd, $2c
- db $8, $18, $bc, $2c
- db $10, $0, $bf, $c
- db $10, $8, $9d, $c
- db $10, $10, $9d, $2c
- db $10, $18, $b0, $c
- db $18, $8, $b9, $c
- db $18, $10, $c0, $c
- db $18, $18, $be, $c
-
-Unknown_117177: ; 117177
- db $9
- db $14, $0, $1f, $6
- db $14, $8, $20, $6
- db $14, $10, $21, $6
- db $c, $0, $10, $6
- db $c, $8, $11, $6
- db $c, $10, $12, $6
- db $4, $0, $1, $6
- db $4, $8, $2, $6
- db $4, $10, $3, $6
-
-Unknown_11719c: ; 11719c
- db $9
- db $14, $0, $22, $6
- db $14, $8, $23, $6
- db $14, $10, $24, $6
- db $c, $0, $13, $6
- db $c, $8, $14, $6
- db $c, $10, $15, $6
- db $4, $0, $4, $6
- db $4, $8, $5, $6
- db $4, $10, $6, $6
-
-Unknown_1171c1: ; 1171c1
- db $9
- db $14, $0, $25, $6
- db $14, $8, $26, $6
- db $14, $10, $27, $6
- db $c, $0, $16, $6
- db $c, $8, $17, $6
- db $c, $10, $18, $6
- db $4, $0, $7, $6
- db $4, $8, $8, $6
- db $4, $10, $9, $6
-
-Unknown_1171e6: ; 1171e6
- db $9
- db $14, $0, $28, $6
- db $14, $8, $29, $6
- db $14, $10, $2a, $6
- db $c, $0, $19, $6
- db $c, $8, $1a, $6
- db $c, $10, $1b, $6
- db $4, $0, $a, $6
- db $4, $8, $b, $6
- db $4, $10, $c, $6
-
-Unknown_11720b: ; 11720b
- db $9
- db $14, $0, $2b, $6
- db $14, $8, $2c, $6
- db $14, $10, $2d, $6
- db $c, $0, $1c, $6
- db $c, $8, $1d, $6
- db $c, $10, $1e, $6
- db $4, $0, $d, $6
- db $4, $8, $e, $6
- db $4, $10, $f, $6
-
-Unknown_117230: ; 117230
- db $9
- db $14, $0, $47, $6
- db $14, $8, $48, $6
- db $14, $10, $49, $6
- db $c, $0, $3b, $6
- db $c, $8, $3c, $6
- db $c, $10, $3b, $26
- db $4, $0, $2e, $6
- db $4, $8, $2f, $6
- db $4, $10, $30, $6
-
-Unknown_117255: ; 117255
- db $9
- db $14, $0, $35, $6
- db $14, $8, $4a, $6
- db $14, $10, $35, $6
- db $c, $0, $3d, $6
- db $c, $8, $35, $6
- db $c, $10, $3d, $26
- db $4, $0, $31, $6
- db $4, $8, $32, $6
- db $4, $10, $31, $26
-
-Unknown_11727a: ; 11727a
- db $9
- db $14, $0, $4b, $6
- db $14, $8, $4c, $6
- db $14, $10, $4d, $6
- db $c, $0, $3e, $6
- db $c, $8, $3f, $6
- db $c, $10, $40, $6
- db $4, $0, $33, $6
- db $4, $8, $34, $6
- db $4, $10, $35, $6
-
-Unknown_11729f: ; 11729f
- db $9
- db $14, $0, $4e, $6
- db $14, $8, $4f, $6
- db $14, $10, $50, $6
- db $c, $0, $41, $6
- db $c, $8, $42, $6
- db $c, $10, $43, $6
- db $4, $0, $35, $6
- db $4, $8, $36, $6
- db $4, $10, $37, $6
-
-Unknown_1172c4: ; 1172c4
- db $9
- db $14, $0, $51, $6
- db $14, $8, $52, $6
- db $14, $10, $35, $6
- db $c, $0, $44, $6
- db $c, $8, $45, $6
- db $c, $10, $46, $6
- db $4, $0, $38, $6
- db $4, $8, $39, $6
- db $4, $10, $3a, $6
-
-Unknown_1172e9: ; 1172e9
- db $9
- db $10, $0, $0, $2
- db $10, $8, $0, $2
- db $10, $10, $0, $2
- db $8, $0, $0, $2
- db $8, $8, $0, $2
- db $c, $10, $1f, $6
- db $0, $0, $0, $2
- db $0, $8, $0, $2
- db $4, $10, $10, $6
-; 11730e
-
-Palette_11730e:
- RGB 31, 31, 31
- RGB 7, 5, 4
- RGB 31, 28, 4
- RGB 31, 5, 5
- RGB 31, 31, 31
- RGB 7, 5, 4
- RGB 31, 23, 0
- RGB 31, 28, 4
- RGB 31, 31, 31
- RGB 16, 19, 31
- RGB 17, 31, 31
- RGB 31, 31, 31
- RGB 5, 5, 5
- RGB 7, 5, 4
- RGB 31, 28, 4
- RGB 19, 11, 6
- RGB 31, 31, 31
- RGB 3, 15, 31
- RGB 4, 25, 25
- RGB 0, 7, 12
- RGB 31, 31, 31
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 4, 11, 22
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 22, 11, 8
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 0, 16, 0
-
-Palette_11734e:
- RGB 31, 30, 30
- RGB 2, 0, 0
- RGB 10, 9, 9
- RGB 15, 14, 14
-
-Unknown_117356: ; 117356
- db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
- db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c5, $c6, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c6, $c5, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $d8, $c2, $c2, $d8, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c7, $c8, $ca, $cb, $cc, $cd, $ce, $c2, $cf, $d0, $d1, $d2, $d3, $c2, $d4, $d5
- db $d6, $d7, $c8, $c7, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
- db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-
- db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
- db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $8f, $0f, $0f, $8f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f
- db $8f, $8f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
- db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-; 117656
-
-
-SECTION "Mobile Stadium", ROMX
-
-Special_GiveOddEgg: ; 117656
- callba GiveOddEgg
- ret
-
-; 11765d
-
-Function11765d: ; 11765d (45:765d)
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function11766b
- pop af
- ld [hInMenu], a
- ret
-
-Function11766b: ; 11766b (45:766b)
- call Function117699
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Function1176ee
- ld a, $5
- call GetSRAMBank
- ld hl, $b1f3
- ld de, wcd49
- ld bc, $8
- call CopyBytes
- ld de, $c708
- ld bc, $11
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- ret
-
-Function117699: ; 117699 (45:7699)
- ld a, $5
- call GetSRAMBank
- ld hl, wcd49
- ld de, $b1f3
- ld bc, $8
- call CopyBytes
- ld hl, $c708
- ld bc, $11
- call CopyBytes
- call CloseSRAM
- xor a
- ld [wcd49], a
- ld [wcd4a], a
- ld [wcd4b], a
- ld [wcd4c], a
- ld [wcd4d], a
- ld [wcd4e], a
- ld [wcd4f], a
- ld hl, $c708
- ld bc, $11
- call ByteFill
- call ClearBGPalettes
- call ClearSprites
- callba Function171c87
- callba ReloadMapPart
- callba ClearSpriteAnims
- ret
-
-Function1176ee: ; 1176ee (45:76ee)
-.loop
- call JoyTextDelay
- ld a, [wcd49]
- bit 7, a
- jr nz, .quit
- call Function117719
- callba PlaySpriteAnimations
- callba ReloadMapPart
- jr .loop
-
-.quit
- callba ClearSpriteAnims
- call ClearBGPalettes
- call ClearScreen
- call ClearSprites
- ret
-
-Function117719: ; 117719 (45:7719)
- ld a, [wcd49]
- ld e, a
- ld d, 0
- ld hl, Jumptable_117728
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-Jumptable_117728: ; 117728 (45:7728)
- dw Function117738
- dw Function117764
- dw Function1178aa
- dw Function1178e8
- dw Function117942
- dw Function117976
- dw Function117984
- dw Function1179a7
-
-
-Function117738: ; 117738 (45:7738)
- callba Function171ccd
- depixel 6, 3
- ld a, $1d
- call _InitSpriteAnimStruct
- ld hl, $c
- add hl, bc
- ld a, $6
- ld [hl], a
- depixel 9, 4
- ld a, $1d
- call _InitSpriteAnimStruct
- ld hl, $c
- add hl, bc
- ld a, $7
- ld [hl], a
- ld a, $3
- ld [wcd23], a
- jp MobilePassword_IncrementJumptable
-
-Function117764: ; 117764 (45:7764)
- ld a, [wcd4a]
- cp $10
- jr nz, .asm_11776f
- ld a, $1
- jr .asm_117770
-
-.asm_11776f
- xor a
-.asm_117770
- ld [wcd24], a
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and SELECT
- jr nz, Function117764_select
- ld a, [hl]
- and START
- jr nz, Function117764_start
- ld a, [hl]
- and A_BUTTON
- jp nz, Function117764_a_button
- ld a, [hl]
- and B_BUTTON
- jr nz, Function117764_b_button
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, Function117764_d_up
- ld a, [hl]
- and D_DOWN
- jr nz, Function117764_d_down
- ld a, [hl]
- and D_LEFT
- jp nz, Function117764_d_left
- ld a, [hl]
- and D_RIGHT
- jp nz, Function117764_d_right
- ret
-
-Function117764_select: ; 1177a5 (45:77a5)
- callba Function171cf0
- ret
-
-Function117764_start: ; 1177ac (45:77ac)
- ld a, $2
- ld [wcd4c], a
- ld a, $4
- ld [wcd4d], a
- ret
-
-Function1177b7: ; 1177b7 (45:77b7)
- ld a, $3
- ld [wcd24], a
- ld a, [wcd4a]
- and a
- jr z, .asm_1177c5
- jp MobilePassword_IncrementJumptable
-
-.asm_1177c5
- ld a, $6
- ld [wcd49], a
- ret
-
-Function1177cb: ; 1177cb (45:77cb)
- ld a, $80
- ld [wcd49], a
- ld [ScriptVar], a
- jp MobilePassword_IncrementJumptable
-
-Function117764_b_button: ; 1177d6 (45:77d6)
- call PlayClickSFX
- ld a, [wcd4a]
- and a
- ret z
- dec a
- ld [wcd4a], a
- ld e, a
- ld d, $0
- ld hl, $c708
- add hl, de
- xor a
- ld [hl], a
- hlcoord 2, 4
- add hl, de
- ld [hl], a
- ret
-
-Function117764_d_up: ; 1177f1 (45:77f1)
- ld a, [wcd4d]
- and a
- ret z
- dec a
- ld [wcd4d], a
- cp $3
- ret nz
- ld a, [wcd4c]
- ld e, a
- sla a
- sla a
- add e
-Function117764_d_vertical_load: ; 117806 (45:7806)
- ld [wcd4c], a
- ret
-
-Function117764_d_down: ; 11780a (45:780a)
- ld a, [wcd4d]
- cp $4
- ret z
- inc a
- ld [wcd4d], a
- cp $4
- ret nz
- ld a, [wcd4c]
- cp $a
- jr nc, .asm_117825
- cp $5
- jr nc, .asm_117829
- xor a
- jr Function117764_d_vertical_load
-
-.asm_117825
- ld a, $2
- jr Function117764_d_vertical_load
-
-.asm_117829
- ld a, $1
- jr Function117764_d_vertical_load
-
-Function117764_d_left: ; 11782d (45:782d)
- ld a, [wcd4c]
- and a
- ret z
- dec a
- ld [wcd4c], a
- ret
-
-Function117764_d_right: ; 117837 (45:7837)
- ld e, $d
- ld a, [wcd4d]
- cp $4
- jr nz, .wrap
- ld e, $2
-.wrap
- ld a, [wcd4c]
- cp e
- ret z
- inc a
- ld [wcd4c], a
- ret
-
-Function117764_a_button: ; 11784c (45:784c)
- call PlayClickSFX
- ld a, [wcd4d]
- cp $4
- jr nz, .not_4
- ld a, [wcd4c]
- cp $2
- jp z, Function1177b7
- cp $1
- jp z, Function1177cb
- jp Function117764_select
-
-.not_4
- ld a, [wcd4a]
- ld e, a
- cp $10
- jp z, Function117764_start
- inc a
- ld [wcd4a], a
- ld d, $0
- ld a, [wcd4b]
- and a
- jr nz, .ascii_symbols
- ld hl, Unknown_117a0f
- jr .got_ascii
-
-.ascii_symbols
- ld hl, Unknown_117a47
-.got_ascii
- push de
- ld a, [wcd4c]
- ld b, a
- ld a, [wcd4d]
- ld c, $e
- call SimpleMultiply
- add b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld hl, $c708
- add hl, de
- ld [hl], a
- pop de
- hlcoord 2, 4
- add hl, de
- sub $20
- ld [hl], a
- ld a, e
- cp $f
- ret nz
- jp Function117764_start
-
-Function1178aa: ; 1178aa (45:78aa)
- ld hl, MenuDataHeader_1179b5
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- ld hl, MenuDataHeader_1179bd
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- callba ReloadMapPart
- hlcoord 16, 8
- ld de, YessNoString_1179c5
- call PlaceString
- hlcoord 15, 10
- ld a, "▶"
- ld [hl], a
- hlcoord 1, 14
- ld de, AskSavePasswordString
- call PlaceString
- ld a, $1
- ld [wcd4e], a
- jp MobilePassword_IncrementJumptable
-
-Function1178e8: ; 1178e8 (45:78e8)
- ld a, [hJoyPressed]
- cp B_BUTTON
- jr z, .b_button
- cp A_BUTTON
- jr z, .a_button
- cp D_DOWN
- jr z, .d_down
- cp D_UP
- ret nz
- ld a, [wcd4e]
- and a
- ret z
- dec a
- ld [wcd4e], a
- hlcoord 15, 8
- ld a, "▶"
- ld [hl], a
- hlcoord 15, 10
- ld a, " "
- ld [hl], a
- ret
-
-.d_down
- ld a, [wcd4e]
- and a
- ret nz
- inc a
- ld [wcd4e], a
- hlcoord 15, 8
- ld a, " "
- ld [hl], a
- hlcoord 15, 10
- ld a, "▶"
- ld [hl], a
- ret
-
-.a_button
- call PlayClickSFX
- ld a, [wcd4e]
- and a
- jr nz, .b_button
- call ExitMenu
- ld a, $1
- ld [wcd4f], a
- jp MobilePassword_IncrementJumptable
-
-.b_button
- call ExitMenu
- call ExitMenu
- jp MobilePassword_IncrementJumptable
-
-Function117942: ; 117942 (45:7942)
- call SpeechTextBox
- hlcoord 1, 14
- ld de, SavedPasswordString
- call PlaceString
- ld a, $1e
- ld [wcd4e], a
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- ld a, [wcd4f]
- ld [sMobileLoginPassword], a
- ld hl, $c708
- ld de, sMobileLoginPassword + 1
- ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
- call CopyBytes
- call CloseSRAM
- ld a, [wcd4f]
- and a
- jr z, asm_11797e
- call MobilePassword_IncrementJumptable
-
-Function117976: ; 117976 (45:7976)
- ld hl, wcd4e
- dec [hl]
- ret nz
- call ExitMenu
-asm_11797e: ; 11797e (45:797e)
- ld a, $80
- ld [wcd49], a
- ret
-
-Function117984: ; 117984 (45:7984)
- ld hl, MenuDataHeader_1179b5
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- callba ReloadMapPart
- hlcoord 1, 14
- ld de, NotAPokemonPasswordString
- call PlaceString
- ld a, $1e
- ld [wcd4e], a
- call MobilePassword_IncrementJumptable
-
-Function1179a7: ; 1179a7 (45:79a7)
- ld hl, wcd4e
- dec [hl]
- ret nz
- call ExitMenu
- ld a, $1
- ld [wcd49], a
- ret
-
-; 1179b5 (45:79b5)
-
-MenuDataHeader_1179b5: ; 1179b5
- db $40 ; flags
- db 12, 0 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 1179bd
-
-MenuDataHeader_1179bd: ; 1179bd
- db $40 ; flags
- db 7, 14 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 1179c5
-
-
-YessNoString_1179c5: ; 1179c5
- db "はい"
- next "いいえ@"
-; 1179cc
-
-AskSavePasswordString: ; 1179cc
- db "こ%パスワード¯ほぞんして"
- line "おきますか?@"
-; 1179e1
-
-NotAPokemonPasswordString: ; 1179e1
- db "パスワード<PKMN>にゅうりょく"
- line "されていません!@"
-; 1179f7
-
-SavedPasswordString: ; 1179f7
- db "ログインパスワード¯ほぞん"
- line "しました@"
-; 117a0a
-
-MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a)
- ld hl, wcd49
- inc [hl]
- ret
-
-; 117a0f (45:7a0f)
-
-Unknown_117a0f:
-INCBIN "data/mobile/ascii-alpha.txt"
-
-Unknown_117a47:
-INCBIN "data/mobile/ascii-sym.txt"
-; 117a7f
-
-
-; everything from here to the end of the bank is related to the
-; Mobile Stadium option from the continue/newgame menu.
-; XXX better function names
-MobileStudium: ; 0x117a7f
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function117a8d
- pop af
- ld [hInMenu], a
- ret
-
-; 0x117a8d
-
-Function117a8d: ; 0x117a8d
- call Function117a94
- call Function117acd
- ret
-
-; 0x117a94
-
-Function117a94: ; 0x117a94
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- call ClearBGPalettes
- call ClearSprites
- callba Function172e78
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- ret
-
-; 0x117ab4
-
-Function117ab4: ; 0x117ab4
- call ClearBGPalettes
- call ClearSprites
- callba Function172e78
- callba Function172eb9
- callba ReloadMapPart
- ret
-
-; 0x117acd
-
-Function117acd: ; 0x117acd
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_117ae2
- call Function117ae9
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- jr Function117acd
-
-.asm_117ae2
- call ClearBGPalettes
- call ClearSprites
- ret
-
-Function117ae9: ; 0x117ae9
- ld a, [wJumptableIndex]
- ld e, a
- ld d, $0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.Jumptable: ; 0x117af8
- dw Function117b06
- dw Function117b14
- dw Function117b28
- dw Function117b31
- dw Function117b4f
- dw Function117bb6
- dw Function117c4a
-
-Function117b06:
- callba Function172eb9
- ld a, $10
- ld [wcf64], a
- jp MobileStudium_JumptableIncrement
-
-Function117b14:
- ld hl, wcf64
- dec [hl]
- ret nz
- ld hl, MenuDataHeader_117cbc
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- jp MobileStudium_JumptableIncrement
-
-Function117b28:
- ld hl, MobileStadiumEntryText
- call PrintText
- jp MobileStudium_JumptableIncrement
-
-Function117b31:
- ld hl, MenuDataHeader_117cc4
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- hlcoord 16, 8
- ld de, YesNo117ccc
- call PlaceString
- hlcoord 15, 8
- ld a, "▶"
- ld [hl], a
- jp MobileStudium_JumptableIncrement
-
-Function117b4f:
- ld a, [hJoyPressed]
- cp B_BUTTON
- jr z, .b_button
- cp A_BUTTON
- jr z, .a_button
- cp D_DOWN
- jr z, .d_down
- cp D_UP
- ret nz
- ld a, [wcf64]
- and a
- ret z
- dec a
- ld [wcf64], a
- hlcoord 15, 8
- ld a, "▶"
- ld [hl], a
- hlcoord 15, 10
- ld a, " "
- ld [hl], a
- ret
-
-.d_down
- ld a, [wcf64]
- and a
- ret nz
- inc a
- ld [wcf64], a
- hlcoord 15, 8
- ld a, " "
- ld [hl], a
- hlcoord 15, 10
- ld a, "▶"
- ld [hl], a
- ret
-
-.a_button
- call PlayClickSFX
- ld a, [wcf64]
- and a
- jr nz, .b_button
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- jp MobileStudium_JumptableIncrement
-
-.b_button
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-Function117bb6:
- call Function117c89
- ld a, $1
- ld [hBGMapMode], a
- callba Function118284
- call ClearSprites
- ld a, [wc300]
- and a
- jr z, .asm_117be7
- cp $a
- jr z, .asm_117be1
-.asm_117bd0
- ld a, $2
- ld [wc303], a
- callba DisplayMobileError
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-.asm_117be1
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-.asm_117be7
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [wcd89]
- and $1
- jr nz, .asm_117c16
- ld a, [w3_d000]
- cp $fe
- jr nz, .asm_117c16
- ld a, [w3_d001]
- cp $f
- jr nz, .asm_117c16
- ld hl, w3_dfec
- ld de, wcd69
- ld c, $10
-.asm_117c0b
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .asm_117c16
- inc hl
- dec c
- jr nz, .asm_117c0b
- jr .asm_117c20
-
-.asm_117c16
- pop af
- ld [rSVBK], a
- ld a, $d3
- ld [wc300], a
- jr .asm_117bd0
-
-.asm_117c20
- pop af
- ld [rSVBK], a
- callba Function172eb9
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, $7
- call GetSRAMBank
- ld hl, w3_d002
- ld de, $b000
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- jp MobileStudium_JumptableIncrement
-
-Function117c4a:
- ld hl, MenuDataHeader_117cbc
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- callba ReloadMapPart
- ld hl, MobileStadiumSuccessText
- call PrintText
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, UnknBGPals
- ld de, 1 palettes
- ld c, 8
-.loop
- push hl
- ld a, $7fff % $100
- ld [hli], a
- ld a, $7fff / $100
- ld [hl], a
- pop hl
- add hl, de
- dec c
- jr nz, .loop
- call RotateThreePalettesRight
- pop af
- ld [rSVBK], a
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-Function117c89:
- ld a, $7
- call GetSRAMBank
- ld l, $0
- ld h, l
- ld de, $b000
- ld bc, $0ffc
-.asm_117c97
- push bc
- ld a, [de]
- inc de
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- dec bc
- ld a, b
- or c
- jr nz, .asm_117c97
- ld a, l
- ld [wcd83], a
- ld a, h
- ld [wcd84], a
- ld hl, $bfea
- ld de, wcd69
- ld bc, $10
- call CopyBytes
- call CloseSRAM
- ret
-
-MenuDataHeader_117cbc: ; 0x117cbc
- db $40 ; flags
- db 12, 0 ; start coords
- db 17, 19 ; end coords
- dw NULL ; menu data 2
- db 0 ; default option
-
-MenuDataHeader_117cc4: ; 0x117cc4
- db $40 ; flags
- db 7, 14 ; start coords
- db 11, 19 ; end coords
- dw NULL ; menu data 2
- db 0 ; default item
-
-YesNo117ccc: ; 0x117ccc
- db "はい"
- next "いいえ@"
-
-MobileStadiumEntryText: ; 0x117cd3
- text_jump _MobileStadiumEntryText
- db "@"
-
-MobileStadiumSuccessText: ; 0x117cd8
- text_jump _MobileStadiumSuccessText
- db "@"
-
-MobileStudium_JumptableIncrement: ; 0x117cdd
- ld hl, wJumptableIndex
- inc [hl]
- ret
--- a/misc/mobile_45_sprite_engine.asm
+++ /dev/null
@@ -1,922 +1,0 @@
-Function115d99: ; 115d99
- ld de, GFX_11601a
- ld hl, VTiles0 tile $60
- lb bc, BANK(GFX_11601a), $14
- call Get2bpp
- xor a
- ld [wc305], a
- ld [wc306], a
- ld [wc309], a
- ld [wc30a], a
- ld [wc30b], a
- ld [wc30c], a
- ld a, $10
- ld [wc307], a
- ld a, $18
- ld [wc308], a
- ret
-
-; 115dc3
-
-Function115dc3: ; 115dc3
- xor a
- ld [wc305], a
- ld a, $a0
- ld hl, Sprites + 31 * 4
- ld bc, 8 * 4
- call ByteFill
- ret
-
-; 115dd3
-
-Function115dd3: ; 115dd3
- ld a, [wc305]
- and a
- ret z
- ld a, $a0
- ld hl, Sprites + 31 * 4
- ld bc, 8 * 4
- call ByteFill
- call Function115e22
- ld a, [wc309]
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_115e86
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld de, Sprites + 31 * 4
- ld a, [wc307]
- ld c, a
- ld a, [wc308]
- ld b, a
- ld a, [hli]
-.asm_115e04
- push af
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_115e04
- ret
-
-; 115e18
-
-Function115e18: ; 115e18
- ld a, c
- ld [wc30a], a
- xor a
- ld [wc30b], a
- jr Function115e2b
-
-; 115e22
-
-Function115e22: ; 115e22
- ld hl, wc30c
- dec [hl]
- ret nz
- ld hl, wc30b
- inc [hl]
-
-Function115e2b: ; 115e2b
- ld a, [wc30a]
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_115e59
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- pop hl
- ld a, [wc30b]
- sla a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hli]
- cp $ff
- jr nz, .not_end
- xor a
- ld [wc30b], a
- jr Function115e2b
-
-.not_end
- ld [wc309], a
- ld a, [hl]
- ld [wc30c], a
- ret
-
-; 115e59
-
-Unknown_115e59:
- dw Unknown_115e61
- dw Unknown_115e6c
- dw Unknown_115e76
- dw Unknown_115e79
-
-; OAM idx (see Unknown_115e86), flip flags/duration
-Unknown_115e61: ; 115e61
- db $04, $08
- db $05, $08
- db $06, $08
- db $07, $08
- db $08, $08
- db -1
-
-Unknown_115e6c: ; 115e6c
- db $01, $08
- db $02, $08
- db $03, $08
- db $09, $08
- db $0a, $08
-Unknown_115e76: ; 115e76
- db $00, $08
- db -1
-
-Unknown_115e79: ; 115e79
- db $0b, $08
- db $0c, $08
- db $0d, $08
- db $0e, $08
- db $0f, $08
- db $00, $08
- db -1
-; 115e86
-
-Unknown_115e86:
- dw Unknown_115ea6
- dw Unknown_115eb7
- dw Unknown_115ecc
- dw Unknown_115ee1
- dw Unknown_115ef6
- dw Unknown_115f13
- dw Unknown_115f30
- dw Unknown_115f4d
- dw Unknown_115f6a
- dw Unknown_115f87
- dw Unknown_115f9c
- dw Unknown_115fb1
- dw Unknown_115fc6
- dw Unknown_115fdb
- dw Unknown_115ff0
- dw Unknown_116005
-
-Unknown_115ea6: ; 115ea6
- db 4
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115eb7: ; 115eb7
- db 5
- dsprite 0, 0, 1, 0, $64, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115ecc: ; 115ecc
- db 5
- dsprite 0, 0, 1, 0, $65, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115ee1: ; 115ee1
- db 5
- dsprite 0, 0, 1, 0, $66, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115ef6: ; 115ef6
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $6d, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f13: ; 115f13
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $6e, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f30: ; 115f30
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $6f, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f4d: ; 115f4d
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $70, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f6a: ; 115f6a
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $71, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f87: ; 115f87
- db 5
- dsprite 0, 0, 1, 0, $72, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115f9c: ; 115f9c
- db 5
- dsprite 0, 0, 1, 0, $73, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115fb1: ; 115fb1
- db 5
- dsprite 0, 1, 1, 0, $64, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115fc6: ; 115fc6
- db 5
- dsprite 0, 1, 1, 0, $65, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115fdb: ; 115fdb
- db 5
- dsprite 0, 1, 1, 0, $66, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115ff0: ; 115ff0
- db 5
- dsprite 0, 1, 1, 0, $72, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_116005: ; 116005
- db 5
- dsprite 0, 1, 1, 0, $73, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-; 11601a
-
-GFX_11601a:: ; 11601a
-INCBIN "gfx/unknown/11601a.2bpp"
-
-
-Function11615a: ; 11615a
- xor a
- ld [wc30d], a
- ld [$c319], a
- ld [wc310], a
- ld [wc311], a
- ld [wc312], a
- ld [wc313], a
- ld [wc314], a
- ld [wc314 + 1], a
- ld [wc314 + 4], a
- ld [wc3f6], a
- ld [wc3f8], a
- ld [wc3f2], a
- ld [wc3f4], a
- ld a, $24
- ld [wc3f5], a
- ld a, $7
- ld [wc3f7], a
- ld a, $b0
- ld [wc30e], a
- ld [wc3f1], a
- ld a, $48
- ld [wc30f], a
- ld [wc3f3], a
- ret
-
-; 11619d
-
-Function11619d: ; 11619d
- ld a, [wc30d]
- and a
- ret z
- ld a, [$c319]
- cp $2
- jr c, .asm_1161b4
- ld a, $a0
- ld hl, Sprites
- ld bc, $0064
- call ByteFill
-
-.asm_1161b4
- call Function1161b8
- ret
-
-; 1161b8
-
-Function1161b8: ; 1161b8
- ld a, [$c319]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-; 1161c7
-
-.Jumptable: ; 1161c7
- dw Function1161d5
- dw Function116294
- dw Function1162cb
- dw Function1162f2
- dw Function1163c0
- dw Function11636e
- dw Function116441
-; 1161d5
-
-Function1161d5: ; 1161d5
- ld a, [rSVBK]
- push af
-
- ld a, $6
- ld [rSVBK], a
-
- ld hl, Unknown_117356
- ld de, wDecompressScratch
- ld bc, $0300
- call CopyBytes
-
- di
-
-.wait_for_vblank
-; Wait until a vblank would occur had interrupts not just been disabled.
- ld a, [rLY]
- cp $91
- jr nz, .wait_for_vblank
-
- ld a, $d0
- ld [rHDMA1], a
- ld a, $0
- ld [rHDMA2], a
- ld a, $1c
- ld [rHDMA3], a
- xor a
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $d0
- ld [rHDMA1], a
- ld a, $80
- ld [rHDMA2], a
- ld a, $1c
- ld [rHDMA3], a
- ld a, $80
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $d1
- ld [rHDMA1], a
- ld a, $0
- ld [rHDMA2], a
- ld a, $1d
- ld [rHDMA3], a
- xor a
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $1
- ld [rVBK], a
-
- ld a, $d1
- ld [rHDMA1], a
- ld a, $80
- ld [rHDMA2], a
- ld a, $1c
- ld [rHDMA3], a
- xor a
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $d2
- ld [rHDMA1], a
- ld a, $0
- ld [rHDMA2], a
- ld a, $1c
- ld [rHDMA3], a
- ld a, $80
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $d2
- ld [rHDMA1], a
- ld a, $80
- ld [rHDMA2], a
- ld a, $1d
- ld [rHDMA3], a
- xor a
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- xor a
- ld [rVBK], a
-
- ei
-
- pop af
- ld [rSVBK], a
-
- callba ReloadMapPart
- ld a, $8
- ld [MusicFade], a
- ld de, MUSIC_MOBILE_ADAPTER
- ld a, e
- ld [MusicFadeID], a
- ld a, d
- ld [MusicFadeID + 1], a
- ld a, [$c319]
- inc a
- ld [$c319], a
- ret
-
-; 11628c
-
-MenuDataHeader_11628c: ; 11628c
- db $40 ; flags
- db 6, 0 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 116294
-
-Function116294: ; 116294
- callba Function170d02
- ld a, [$c319]
- inc a
- ld [$c319], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, UnknBGPals + 8 * 6
- ld de, $c320
- ld bc, 2 palettes
- call CopyBytes
- ld hl, Palette_11734e
- ld de, UnknBGPals + 8 * 7
- ld bc, 1 palettes
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a
- ld a, $30
- ld [hWY], a
- ret
-
-; 1162cb
-
-Function1162cb: ; 1162cb
- callba Function170cc6
- ld a, [$c319]
- inc a
- ld [$c319], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_11730e
- ld de, UnknOBPals + 2 palettes
- ld bc, 6 palettes
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a
- ret
-
-; 1162f2
-
-Function1162f2: ; 1162f2
- call Function11659d
- call Function116758
- call Function1167a6
- ld a, [wc310]
- cp EGG
- ret z
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_1168c5
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wc30e]
- ld c, a
- ld a, [wc30f]
- ld b, a
- ld a, [wc314 + 4]
- ld e, a
- ld a, [hli]
- sub e
- ld de, Sprites + $24
-.asm_116321
- push af
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_116321
- call Function116468
- ld a, [wc3f5]
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_1168c5
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wc3f1]
- ld c, a
- ld a, [wc3f3]
- ld b, a
- ld a, [wc3f8]
- ld e, a
- ld a, [hli]
- sub e
- ld de, Sprites
-.asm_11635a
- push af
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_11635a
- ret
-
-; 11636e
-
-Function11636e: ; 11636e
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld de, UnknBGPals
- ld bc, $0040
- call CopyBytes
- pop af
- ld [rSVBK], a
- call SetPalettes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, $a0
- ld hl, Sprites
- ld bc, 16 * 4
- call ByteFill
- ld a, $90
- ld [hWY], a
- call UpdateSprites
- pop af
- ld [rSVBK], a
- callba ReloadMapPart
- ld a, $8
- ld [MusicFade], a
- ld a, [wMapMusic]
- ld [MusicFadeID], a
- xor a
- ld [MusicFadeID + 1], a
- xor a
- ld [$c319], a
- ld [wc30d], a
- ret
-
-; 1163c0
-
-Function1163c0: ; 1163c0
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, $a0
- ld hl, Sprites
- ld bc, 16 * 4
- call ByteFill
- call DelayFrame
- callba Function14146
- ld b, SCGB_MAPPALS
- call GetSGBLayout
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $c320
- ld de, wd030
- ld bc, $0010
- call CopyBytes
- pop af
- ld [rSVBK], a
- call SetPalettes
- call DelayFrame
- ld a, $90
- ld [hWY], a
- call UpdateSprites
- callba Function14157
- pop af
- ld [rSVBK], a
- callba ReloadMapPart
- ld a, [wLinkMode]
- cp $4
- jr z, .asm_11642a
- ld a, $8
- ld [MusicFade], a
- ld a, [wMapMusic]
- ld [MusicFadeID], a
- xor a
- ld [MusicFadeID + 1], a
- jr .asm_116439
-
-.asm_11642a
- ld a, $8
- ld [MusicFade], a
- ld a, $0
- ld [MusicFadeID], a
- ld a, $0
- ld [MusicFadeID + 1], a
-
-.asm_116439
- xor a
- ld [$c319], a
- ld [wc30d], a
- ret
-
-; 116441
-
-Function116441: ; 116441
- callba Function17d405
- ld a, $90
- ld [hWY], a
- callba ReloadMapPart
- ld a, $8
- ld [MusicFade], a
- ld a, [wMapMusic]
- ld [MusicFadeID], a
- xor a
- ld [MusicFadeID + 1], a
- xor a
- ld [$c319], a
- ld [wc30d], a
- ret
-
-; 116468
-
-Function116468: ; 116468
- call Function116567
- ld a, [wc314]
- cp $d
- jr nz, .asm_1164a8
- ld hl, wc30e
- ld a, [hl]
- cp $50
- jr nc, .asm_116484
- ld a, $50
- sub [hl]
- add $50
- ld [wc3f1], a
- jr .asm_11648d
-
-.asm_116484
- sub $50
- ld c, a
- ld a, $50
- sub c
- ld [wc3f1], a
-
-.asm_11648d
- ld hl, wc30f
- ld a, [hl]
- cp $60
- jr nc, .asm_11649e
- ld a, $60
- sub [hl]
- add $60
- ld [wc3f3], a
- ret
-
-.asm_11649e
- sub $60
- ld c, a
- ld a, $60
- sub c
- ld [wc3f3], a
- ret
-
-.asm_1164a8
- ld hl, wc30e
- ld a, $b0
- cp [hl]
- jr nc, .asm_1164b8
- ld a, [wc3f1]
- and a
- jr z, .asm_11650b
- jr .asm_1164f2
-
-.asm_1164b8
- ld a, [wc3f1]
- sub [hl]
- jr nc, .asm_1164c1
- xor $ff
- inc a
-
-.asm_1164c1
- ld b, a
- ld c, $0
- ld a, $5
-.asm_1164c6
- srl b
- rr c
- dec a
- jr nz, .asm_1164c6
- ld a, c
- ld [wc3fa], a
- ld a, b
- ld [wc3f9], a
- ld a, [wc3f1]
- sub [hl]
- jr c, .asm_1164f2
- ld c, $0
- ld a, [wc3fa]
- xor $ff
- add $1
- rl c
- ld [wc3fa], a
- ld a, [wc3f9]
- xor $ff
- add c
- ld [wc3f9], a
-
-.asm_1164f2
- ld a, [wc3f2]
- ld l, a
- ld a, [wc3f1]
- ld h, a
- ld a, [wc3fa]
- ld e, a
- ld a, [wc3f9]
- ld d, a
- add hl, de
- ld a, l
- ld [wc3f2], a
- ld a, h
- ld [wc3f1], a
-
-.asm_11650b
- ld hl, wc30f
- ld a, $b0
- cp [hl]
- jr c, .asm_11654d
- ld a, [wc3f3]
- sub [hl]
- jr nc, .asm_11651c
- xor $ff
- inc a
-
-.asm_11651c
- ld b, a
- ld c, $0
- ld a, $5
-.asm_116521
- srl b
- rr c
- dec a
- jr nz, .asm_116521
- ld a, c
- ld [wc3fc], a
- ld a, b
- ld [wc3fb], a
- ld a, [wc3f3]
- sub [hl]
- jr c, .asm_11654d
- ld c, $0
- ld a, [wc3fc]
- xor $ff
- add $1
- rl c
- ld [wc3fc], a
- ld a, [wc3fb]
- xor $ff
- add c
- ld [wc3fb], a
-
-.asm_11654d
- ld a, [wc3f4]
- ld l, a
- ld a, [wc3f3]
- ld h, a
- ld a, [wc3fc]
- ld e, a
- ld a, [wc3fb]
- ld d, a
- add hl, de
- ld a, l
- ld [wc3f4], a
- ld a, h
- ld [wc3f3], a
- ret
--- a/misc/mobile_46.asm
+++ /dev/null
@@ -1,7986 +1,0 @@
-SECTION "bank46", ROMX
-
-Function118000: ; 118000
- ld a, $1
- ld [wcd38], a
- jr asm_11800b
-
-Function118007: ; 118007
- xor a
- ld [wcd38], a
-
-asm_11800b
- call BattleTowerRoomMenu_InitRAM
- ld a, $18
- ld [wcd33], a
- ld a, $19
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.loop
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1b
- jr c, .skip
- ld a, [wcd34]
- ld [wcf66], a
-
-.skip
- call Function1184a5
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .loop
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
-BattleTowerRoomMenu_DoNothing: ; 11805e (46:405e)
- ret
-; 11805f
-
-Function11805f: ; 11805f
- ld a, $1
- ld [wcd38], a
- call BattleTowerRoomMenu_InitRAM
- ld a, $18
- ld [wcd33], a
- ld a, $19
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_11807d
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1b
- jr c, .asm_118090
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_118090
- call Function11857c
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11807d
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
- ret
-; 1180b8
-
-Function1180b8: ; 1180b8
- call BattleTowerRoomMenu_InitRAM
- ld a, $22
- ld [wcd33], a
- ld a, $23
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_1180d1
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $28
- jr c, .asm_1180e4
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_1180e4
- ld a, [wcf66]
- cp $10
- jr c, .asm_1180f2
- cp $16
- jr nc, .asm_1180f2
- call Function11884c
-
-.asm_1180f2
- call Function1184ec
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1180d1
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
- ret
-; 11811a
-
-Function11811a: ; 11811a
- ld a, 1
- ld [wcd38], a
- jr Function118125
-
-_BattleTowerRoomMenu: ; 118121
- xor a
- ld [wcd38], a
-Function118125: ; 118125
- call BattleTowerRoomMenu_InitRAM
- ld a, $3
- ld [wcd33], a
- ld a, $d
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.loop
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $f
- jr c, .skip
- ld a, [wcd34]
- ld [wcf66], a
-.skip
- call BattleTowerRoomMenu_Jumptable
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .loop
- xor a
- ld [w3_d000], a
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call Function118180
- call ReturnToMapFromSubmenu
- ret
-; 118180
-
-Function118180: ; 118180
- ld a, [ScriptVar]
- and a
- ret nz
- ld a, [wcd38]
- and a
- ret z
- ld a, $5
- call GetSRAMBank
- ld hl, wcd69
- ld de, $a89c
- ld bc, $0016
- call CopyBytes
-
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-
- ld de, w3_d202
- ld c, $96
- callba CheckStringForErrors_IgnoreTerminator
- jr c, .return_d3
-
- ld de, w3_d202
- lb bc, 1, $96
- callba CheckStringContainsLessThanBNextCharacters
- jr c, .return_d3
-
- ld hl, w3_d202
- ld de, $a8b2
- ld bc, $0096
- call CopyBytes
-.reset_banks
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-.return_d3
- ld a, $d3
- ld [wc300], a
- ld [ScriptVar], a
- jr .reset_banks
-; 1181da
-
-Function1181da: ; 1181da
- call BattleTowerRoomMenu_InitRAM
- ld a, $2
- ld [wcd38], a
- ld a, $21
- ld [wcd33], a
- ld a, $22
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_1181f8
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $28
- jr c, .asm_11820b
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_11820b
- call Function1185c3
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1181f8
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
- ret
-; 118233
-
-Function118233: ; 118233
- call BattleTowerRoomMenu_InitRAM
- ld a, $1b
- ld [wcd33], a
- ld a, $1c
- ld [wcd34], a
- ld a, $6
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_11824c
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1e
- jr c, .asm_11825f
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_11825f
- call Function118624
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11824c
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- ret
-; 118284
-
-Function118284: ; 118284
- call BattleTowerRoomMenu_InitRAM
- ld a, $19
- ld [wcd33], a
- ld a, $1e
- ld [wcd34], a
- ld a, $5
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_11829d
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $20
- jr c, .asm_1182b0
- ld a, [wcd34]
- ld [wcf66], a
-.asm_1182b0
- call Function1186f5
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11829d
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- ret
-; 1182d5 (46:42d5)
-
-
-Function1182d5: ; 1182d5
- call BattleTowerRoomMenu_InitRAM
- ld a, $18
- ld [wcd33], a
- ld a, $19
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_1182ee
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1b
- jr c, .asm_118301
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_118301
- call Function118746
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1182ee
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
- ret
-; 118329
-
-Function118329: ; 118329
- call BattleTowerRoomMenu_InitRAM
- ld a, $15
- ld [wcd33], a
- ld a, $16
- ld [wcd34], a
- ld a, $6
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_118342
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $18
- jr c, .asm_118355
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_118355
- call Function118671
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_118342
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- ret
-; 11837a
-
-Function11837a: ; 11837a
- call BattleTowerRoomMenu_InitRAM
- ld a, $16
- ld [wcd33], a
- ld a, $17
- ld [wcd34], a
- ld a, $6
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_118393
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $19
- jr c, .asm_1183a6
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_1183a6
- call Function1186b2
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_118393
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- ret
-; 1183cb
-
-BattleTowerRoomMenu_InitRAM: ; 1183cb
- di
- ld a, [rIE]
- ld [wcd32], a
- call DoubleSpeed
- xor a
- ld [rIF], a
- ld [wc300], a
- ld [wc301], a
- ld [wc302], a
- ld [wcd80], a
- ld [wcd65], a
- ld [wcd66], a
- ld [wcd67], a
- ld [wcd68], a
- ld [$c31a], a
- ld [wcd89], a
- ld [wcd8a], a
- ld [wcd8b], a
- ld [wc3ec], a
- ld [wc3ed], a
- ld [wc3ee], a
- ld [wc3ef], a
- ld hl, VramState
- ld a, [hl]
- ld [wcd7f], a
- set 1, [hl]
- ld a, $f
- ld [rIE], a
- ld a, $1
- ld [hMobileReceive], a
- ld [hMobile], a
- ei
- callba MobileFunc_106462
- callba Function106464
- callba Function115d99
- callba Function11615a
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$bfff], a
- call CloseSRAM
- ret
-; 118440
-
-Function118440: ; 118440
- push af
- ld a, $5
- call GetSRAMBank
- ld a, [$bfff]
- inc a
- ld [$bfff], a
- call CloseSRAM
- pop af
- ret
-; 118452
-
-BattleTowerRoomMenu_Cleanup: ; 118452
- di
- xor a
- ld [hMobileReceive], a
- ld [hMobile], a
- ld [hVBlank], a
- call NormalSpeed
- xor a
- ld [rIF], a
- ld a, [wcd32]
- ld [rIE], a
- ei
- ld a, [wcd7f]
- ld [VramState], a
- ld a, [wc300]
- ld [ScriptVar], a
- ret
-; 118473
-
-Function118473: ; 118473
- ld a, [wcd65]
- and a
- ret z
- ld a, [wcd66]
- inc a
- ld [wcd66], a
- cp 60
- ret nz
- xor a
- ld [wcd66], a
- ld a, [wcd67]
- inc a
- ld [wcd67], a
- cp 60
- ret nz
- ld a, [wcd68]
- inc a
- ld [wcd68], a
- cp 99
- jr z, .ninety_nine
- xor a
- ld [wcd67], a
- ret
-
-.ninety_nine
- xor a
- ld [wcd65], a
- ret
-; 1184a5
-
-Function1184a5: ; 1184a5
- jumptable .Jumptable, wcf66
-; 1184b4
-
-.Jumptable: ; 1184b4
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118a8f
- dw Function11878d
- dw Function118d80
- dw Function118d9b
- dw Function11878d
- dw Function118ded
- dw Function118e6d
- dw Function11878d
- dw Function11984e
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 1184ec
-
-Function1184ec: ; 1184ec
- jumptable .Jumptable, wcf66
-; 1184fb
-
-.Jumptable: ; 1184fb
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function119954
- dw Function11878d
- dw Function119973
- dw Function11878d
- dw Function119987
- dw Function11878d
- dw Function1199b4
- dw Function1199ca
- dw Function11878d
- dw Function1199e2
- dw Function119b0d
- dw Function11878d
- dw Function119b6b
- dw Function119b3b
- dw Function11878d
- dw Function119b52
- dw Function11878d
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function119b45
- dw Function11878d
- dw Function119ac9
- dw Function118e76
-; 11854d
-
-BattleTowerRoomMenu_Jumptable: ; 11854d
- jumptable .Jumptable, wcf66
-; 11855c
-
-.Jumptable: ; 11855c
- dw BattleTowerRoomMenu_PickLevelMessage
- dw BattleTowerRoomMenu_PlacePickLevelMenu
- dw BattleTowerRoomMenu_UpdatePickLevelMenu
- dw BattleTowerRoomMenu_DoNothing
- dw BattleTowerRoomMenu_PartyMonTopsThisLevelMessage
- dw BattleTowerRoomMenu_WaitForMessage
- dw BattleTowerRoomMenu_DelayRestartMenu
- dw BattleTowerRoomMenu_QuitMessage
- dw BattleTowerRoomMenu_PlaceYesNoMenu
- dw BattleTowerRoomMenu_UpdateYesNoMenu
- dw BattleTowerRoomMenu_UberRestrictionMessage
- dw BattleTowerRoomMenu_WaitForMessage
- dw BattleTowerRoomMenu_DelayRestartMenu
- dw Function118e76 ; mobile
- dw BattleTowerRoomMenu_CallRoomMenu2 ; mobile
- dw Function118e76 ; mobile
-; 11857c
-
-Function11857c: ; 11857c
- jumptable .Jumptable, wcf66
-; 11858b
-
-.Jumptable: ; 11858b
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118a7a
- dw Function11878d
- dw Function11891c
- dw Function1198ee
- dw Function1198f7
- dw Function11878d
- dw Function119937
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 1185c3
-
-Function1185c3: ; 1185c3
- jumptable .Jumptable, wcf66
-; 1185d2
-
-.Jumptable: ; 1185d2
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118aa4
- dw Function11878d
- dw Function118e92
- dw Function11878d
- dw Function118eb0
- dw Function118ec6
- dw Function118f0d
- dw Function118f14
- dw Function118f5e
- dw Function11878d
- dw Function118fc0
- dw Function11878d
- dw Function119054
- dw Function1190d0
- dw Function11878d
- dw Function1190ec
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw BattleTowerRoomMenu_QuitMessage
- dw BattleTowerRoomMenu_PlaceYesNoMenu
- dw BattleTowerRoomMenu_UpdateYesNoMenu
- dw Function11914e
- dw Function118e76
-; 118624
-
-Function118624: ; 118624
- jumptable .Jumptable, wcf66
-; 118633
-
-.Jumptable: ; 118633
- dw Function118866
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118aa4
- dw Function11878d
- dw Function118e92
- dw Function11878d
- dw Function11915d
- dw Function118f68
- dw Function11878d
- dw Function119009
- dw Function11878d
- dw Function119054
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 118671
-
-Function118671: ; 118671
- jumptable .Jumptable, wcf66
-; 118680
-
-.Jumptable: ; 118680
- dw Function118866
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function119380
- dw Function119388
- dw Function1193a0
- dw Function11878d
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 1186b2
-
-Function1186b2: ; 1186b2
- jumptable .Jumptable, wcf66
-; 1186c1
-
-.Jumptable: ; 1186c1
- dw Function118866
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function119380
- dw Function1193e3
- dw Function1193fb
- dw Function11878d
- dw Function119413
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 1186f5
-
-Function1186f5: ; 1186f5 (46:46f5)
- jumptable .Jumptable, wcf66
-; 118704 (46:4704)
-
-.Jumptable: ; 118704 (46:4704)
- dw Function11886a
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118abc
- dw Function11878d
- dw Function119451
- dw Function1195f8
- dw Function119612
- dw Function119629
- dw Function119648
- dw Function11878d
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function11967d
- dw Function119685
- dw Function119665
- dw Function11966d
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 118746 (46:4746)
-
-Function118746: ; 118746
- jumptable .Jumptable, wcf66
-; 118755
-
-.Jumptable: ; 118755
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118ad0
- dw Function11878d
- dw Function1196f2
- dw Function1197c9
- dw Function1197dc
- dw Function11878d
- dw Function118e6d
- dw Function11878d
- dw Function119800
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 11878d
-
-Function11878d: ; 11878d (46:478d)
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_1187af
- bit 2, a
- jr nz, .asm_1187d1
- bit 0, a
- jr nz, .asm_1187aa
- ld a, [wcd89]
- and $1
- jr z, .asm_1187a7
- ld a, $3
- ld [rSVBK], a
-.asm_1187a7
- jp BattleTowerRoomMenu_IncrementJumptable
-.asm_1187aa
- call Function118821
- ret c
- ret
-.asm_1187af
- ld a, $0
- call Function3e32
- ld [wc300], a
- ld a, l
- ld [wc301], a
- ld a, h
- ld [wc302], a
- ld a, $a
- call Function3e32
- ld a, [wc3f0]
- ld [$c319], a
- ld a, [wcd34]
- ld [wcf66], a
- ret
-.asm_1187d1
- ld hl, wcd89
- bit 0, [hl]
- jr nz, .asm_118803
- set 0, [hl]
- ld a, $6
- ld [rSVBK], a
- ld de, w3_d000
- ld bc, $1000
- ld a, [hl]
- sla a
- jr c, .asm_1187f9
- sla a
- jr c, .asm_1187fd
- sla a
- jr c, .asm_1187f5
- ld a, $24
- jr .asm_1187ff
-.asm_1187f5
- ld a, $28
- jr .asm_1187ff
-.asm_1187f9
- ld a, $2a
- jr .asm_1187ff
-.asm_1187fd
- ld a, $2c
-.asm_1187ff
- call Function3e32
- ret
-.asm_118803
- ld a, $d3
-
-Function118805: ; 118805 (46:4805)
- ld [wc300], a
- xor a
- ld [wc301], a
- ld [wc302], a
- ld a, $a
- call Function3e32
- ld a, [wc3f0]
- ld [$c319], a
- ld a, [wcd34]
- ld [wcf66], a
- ret
-
-Function118821: ; 118821 (46:4821)
- ld a, [$c319]
- cp $3
- jr c, .asm_11884a
- cp $4
- jr z, .asm_11884a
- ld a, [hJoyDown]
- cp $5
- jr nz, .asm_11884a
- ld a, $a
- call Function3e32
- ld a, $a
- ld [wc300], a
- ld a, [wc3f0]
- ld [$c319], a
- ld a, [wcd34]
- ld [wcf66], a
- scf
- ret
-.asm_11884a
- and a
- ret
-; 11884c (46:484c)
-
-Function11884c: ; 11884c
- ld a, [hJoyDown]
- cp $5
- jr nz, .asm_118864
- ld a, $a
- call Function3e32
- ld a, $a
- ld [wc300], a
- ld a, [wcd34]
- ld [wcf66], a
- scf
- ret
-
-.asm_118864
- and a
- ret
-; 118866
-
-Function118866:
- ld a, 2
- jr asm_11886f
-
-Function11886a: ; 11886a (46:486a)
- ld a, 1
- jr asm_11886f
-; 11886e (46:486e)
-
-Function11886e:
- xor a
-
-asm_11886f
- ld [BGMapPalBuffer], a
- ld a, $0
- ld [wcd3c], a
- call BattleTowerRoomMenu_IncrementJumptable
- ld a, [wcd33]
- ld [wMobileInactivityTimerSeconds], a
-
-Function118880: ; 118880 (46:4880)
- call BattleTowerRoomMenu2
- ret c
- xor a
- ld [wcf64], a
- ld [wc807], a
- ld de, wcd81
- ld hl, $46
- ld a, $2
- jp Function119e2b
-; 118896 (46:4896)
-
-Function118896: ; 118896
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_1188a5
- bit 2, a
- jr nz, .asm_1188a5
- bit 0, a
- jr z, .asm_1188aa
-
-.asm_1188a5
- ld a, $34
- jp Function119e2b
-
-.asm_1188aa
- call BattleTowerRoomMenu_IncrementJumptable
- jp BattleTowerRoomMenu_IncrementJumptable
-; 1188b0
-
-Function1188b0: ; 1188b0 (46:48b0)
- ld de, $c346
- ld a, $c
- jp Function119e2b
-
-Function1188b8: ; 1188b8 (46:48b8)
- ld de, wc3ac
- ld a, $e
- jp Function119e2b
-
-Function1188c0: ; 1188c0 (46:48c0)
- ld de, wc3cd
- ld a, $10
- jp Function119e2b
-
-Function1188c8: ; 1188c8 (46:48c8)
- ld a, $1
- ld [wcd65], a
- call Function1188e7
- ld hl, $c708
-.asm_1188d3
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .asm_1188d3
- call Function119eb4
- call Function119ec2
- ld hl, $c708
- ld a, $6
- jp Function119e2b
-
-Function1188e7: ; 1188e7 (46:48e7)
- ld de, $c346
- ld a, $5
- call GetSRAMBank
- ld a, [$aa4a]
- call CloseSRAM
- and a
- ret z
- sla a
- ld c, a
-.asm_1188fa
- ld a, [de]
- inc de
- and a
- jr nz, .asm_1188fa
- dec c
- jr nz, .asm_1188fa
- ret
-
-Function118903: ; 118903 (46:4903)
- ld a, [wc3f0]
- ld [$c319], a
- ld c, $1
- callba Function115e18
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- jp BattleTowerRoomMenu_IncrementJumptable
-
-
-Function11891c: ; 11891c
- call Function118b42
- jp BattleTowerRoomMenu_IncrementJumptable
-
-
-BattleTowerRoomMenu_PickLevelMessage: ; 118922
- ld a, [wcd38]
- and a
- jr nz, .asm_11892d
- ld hl, Text_WhatLevelDoYouWantToChallenge
- jr .asm_118930
-
-.asm_11892d
- ld hl, Text_CheckBattleRoomListByMaxLevel
-
-.asm_118930
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_PlacePickLevelMenu:
- ld a, [$c31a]
- and a
- ret nz
- ld hl, MenuDataHeader_119cf7
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- call ApplyTilemap
- hlcoord 16, 8, AttrMap
- ld a, $40
- or [hl]
- ld [hl], a
- call WaitBGMap2
- ld a, $1
- ld [wcd4f], a
- ld a, $1
- ld [rSVBK], a
- ld a, [StatusFlags]
- bit 6, a ; Hall Of Fame
- jr nz, .asm_11896b
- ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels
- ld a, 5 ; 4 levels to choose from, including 'Cancel'-option
- jr .asm_118970
-
-.asm_11896b
- ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels
- ld a, 11 ; 10 levels to choose from, including 'Cancel'-option
-
-.asm_118970
- ld [wcd4a], a
- ld a, l
- ld [wcd4b], a
- ld a, h
- ld [wcd4c], a
- ld a, $3
- ld [rSVBK], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_UpdatePickLevelMenu:
- hlcoord 13, 8
- ld de, String_119d07
- call PlaceString
- hlcoord 13, 10
- ld de, String_119d07
- call PlaceString
- ld a, [wcd4b]
- ld l, a
- ld a, [wcd4c]
- ld h, a
- ld d, $0
- ld a, [wcd4f]
- dec a
- rlca
- rlca
- rlca
- ld e, a
- add hl, de
- ld a, l
- ld e, a
- ld a, h
- ld d, a
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld bc, StringBuffer3
-.asm_1189b5
- ld a, [hli]
- cp $50
- jr z, .asm_1189c4
- cp $7f
- jr z, .asm_1189c2
- ld [bc], a
- inc bc
- jr .asm_1189b5
-
-.asm_1189c2
- ld a, $50
-
-.asm_1189c4
- ld [bc], a
- pop af
- ld [rSVBK], a
- hlcoord 13, 9
- call PlaceString
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .b_button
- ld a, [hl]
- and A_BUTTON
- jr nz, .a_button
- ld a, [hl]
- and D_DOWN
- jr nz, .d_down
- ld a, [hl]
- and D_UP
- jr nz, .d_up
-.asm_1189e5
- ret
-
-.d_down
- ld hl, wcd4f
- dec [hl]
- jr nz, .asm_1189e5
- ld a, [wcd4a]
- ld [hl], a
- jr .asm_1189e5
-
-.d_up
- ld a, [wcd4a]
- ld hl, wcd4f
- inc [hl]
- cp [hl]
- jr nc, .asm_1189e5
- ld a, $1
- ld [hl], a
- jr .asm_1189e5
-
-.a_button
- call PlayClickSFX
- ld a, [wcd4f]
- ld hl, wcd4a
- cp [hl]
- jr z, .asm_118a3c
- dec a
- and $fe
- srl a
- ld [wcf65], a
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- call CloseWindow
- pop af
- ld [rSVBK], a
- ld a, [wcd38]
- and a
- jr nz, .asm_118a30
- call BattleTower_LevelCheck
- ret c
- call BattleTower_UbersCheck
- ret c
-
-.asm_118a30
- ld a, [wcd4f]
- ld [w3_d800], a
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.b_button
- call PlayClickSFX
-
-.asm_118a3c
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- call CloseWindow
- pop af
- ld [rSVBK], a
- ld a, $7
- ld [wcf66], a
- ld a, $0
- ld [wMobileInactivityTimerFrames], a
- ret
-
-
-
-Function118a54: ; 118a54
- ld a, [wcd55]
- ld l, a
- ld a, [wcd56]
- ld h, a
- ld de, wc3ec
- ld bc, $0004
- jp Function118ae4
-; 118a65
-
-Function118a65: ; 118a65
- ld hl, BattleDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 118a7a
-
-Function118a7a: ; 118a7a
- ld hl, BattleDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 118a8f
-
-Function118a8f: ; 118a8f
- ld hl, ExchangeDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 118aa4
-
-Function118aa4: ; 118aa4
- ld hl, NewsDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld a, $5
- ld [rSVBK], a
- ld de, w3_d100
- ld bc, $e00
- jr Function118b10
-; 118abc
-
-Function118abc: ; 118abc (46:4abc)
- ld hl, MenuDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jr Function118b10
-; 118ad0 (46:4ad0)
-
-Function118ad0:
- ld hl, IndexDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jr Function118b10
-
-Function118ae4:
- push bc
- push de
- push hl
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- pop hl
- ld c, $0
- ld de, wcc60
-.asm_118af5
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr z, .asm_118b06
- inc c
- ld a, c
- cp $a6
- jr c, .asm_118af5
- ld a, $da
- jp Function118805
-
-.asm_118b06
- call Function118b24
- pop de
- pop bc
- ld a, $2a
- jp Function119e2b
-; 118b10
-
-Function118b10:
- push de
- push bc
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- call Function118b24
- pop bc
- pop de
- ld a, $2a
- jp Function119e2b
-
-Function118b24: ; 118b24 (46:4b24)
- ld hl, $c346
- ld a, $8
- ld [hli], a
- ld a, $c7
- ld [hli], a
- ld a, $60
- ld [hli], a
- ld a, $cc
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $80
- ld [wcd89], a
- ld hl, $c346
- ret
-; 118b42 (46:4b42)
-
-Function118b42: ; 118b42
- ld hl, wd002
- ld a, l
- ld [wcd51], a
- ld a, h
- ld [wcd52], a
- call Function118b8c
- ld a, l
- ld [wcd55], a
- ld [wcd59], a
- ld a, h
- ld [wcd56], a
- ld [wcd5a], a
- call Function118b8c
- ld a, l
- ld [wcd53], a
- ld [wcd5d], a
- ld a, h
- ld [wcd54], a
- ld [wcd5e], a
- call Function118b8c
- ld a, l
- ld [wcd57], a
- ld [wcd5b], a
- ld a, h
- ld [wcd58], a
- ld [wcd5c], a
- call Function118b8c
- ld a, l
- ld [wcd5f], a
- ld a, h
- ld [wcd60], a
- ret
-; 118b8c
-
-Function118b8c: ; 118b8c
-.asm_118b8c
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_118b8c
- dec hl
- xor a
- ld [hli], a
- ld [hli], a
- ret
-; 118b9a
-
-Function118b9a: ; 118b9a
- ld a, h
- cp $e0
- ret c
- ld a, $d3
- call Function118805
- and a
- ret
-; 118ba5
-
-
- charmap " ", $20 ; revert to ascii
-
-ExchangeDownloadURL: ; 0x118ba5
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0
-
-BattleDownloadURL: ; 0x118bf7
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0
-
-NewsDownloadURL: ; 0x118c47
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0
-
-MenuDownloadURL: ; 0x118c95
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0
-
-IndexDownloadURL: ; 0x118ce5
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0
-
-
-Function118d35: ; 118d35
-; unreferenced
- ld hl, $d200
- ld a, [wcd38]
- and a
- jr nz, .asm_118d6e
- ld a, [hli]
- cp $94
- jr nz, .asm_118d7b
- ld a, [hl]
- cp $5
- jr nz, .asm_118d7b
- ld a, [wcd4f]
- sla a
- ld b, a
- sla a
- sla a
- add b
- ld b, a
- ld a, $5
- call GetSRAMBank
- ld a, b
- ld [$b2fb], a
- call CloseSRAM
- callba Function170be4
- callba Function1700c4
- jr .asm_118d78
-
-.asm_118d6e
- ld a, [hli]
- cp $96
- jr nz, .asm_118d7b
- ld a, [hl]
- cp $0
- jr nz, .asm_118d7b
-
-.asm_118d78
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_118d7b
- ld a, $d3
- jp Function118805
-; 118d80
-
-Function118d80: ; 118d80
- call Function118e06
- ld a, [wcd38]
- and a
- jr z, .asm_118d8e
- call BattleTowerRoomMenu_IncrementJumptable
- jr asm_118d9f
-
-.asm_118d8e
- ld a, $9
- ld [wcd3c], a
- ld a, $12
- ld [wMobileInactivityTimerSeconds], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function118d9b:
- call BattleTowerRoomMenu2
- ret c
-
-asm_118d9f
- ld hl, $c608
- call Function119940
- ld a, [wcd38]
- and a
- jr nz, .asm_118db2
- ld a, $8f
- ld [wcd3b], a
- jr .asm_118db7
-
-.asm_118db2
- ld a, $26
- ld [wcd3b], a
-
-.asm_118db7
- ld hl, w3_d800
- ld a, $8
- ld [hli], a
- ld a, $c6
- ld [hli], a
- ld a, [wcd3b]
- ld [hli], a
- xor a
- ld [hli], a
- ld a, $8
- ld [hli], a
- ld a, $c7
- ld [hli], a
- ld a, [wcd39]
- ld [hli], a
- ld a, [wcd3a]
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, w3_d800
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-; 118ded
-
-Function118ded: ; 118ded
- ld a, [wcd38]
- and a
- jr z, .asm_118e03
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba Function11b93b
- pop af
- ld [rSVBK], a
-
-.asm_118e03
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118e06
-
-Function118e06: ; 118e06
- ld hl, wd002
- ld a, [wcd38]
- and a
- jr z, .asm_118e1d
-.asm_118e0f
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_118e0f
- ld a, [hli]
- cp $a
- jr nz, .asm_118e0f
-
-.asm_118e1d
- ld a, l
- ld [wcd39], a
- ld a, h
- ld [wcd3a], a
-.asm_118e25
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_118e25
- ld a, [hli]
- cp $a
- jr nz, .asm_118e25
- dec hl
- xor a
- ld [hld], a
- ld [hl], a
- jr asm_118e3e
-
-Function118e39: ; 118e39 (46:4e39)
-.asm_118e39
- ld a, [hli]
- and a
- jr nz, .asm_118e39
- dec hl
-asm_118e3e
-.asm_118e3e
- ld a, [hld]
- cp $2f
- jr nz, .asm_118e3e
- inc hl
- inc hl
- ld de, wcd85
- ld c, $4
-.asm_118e4a
- ld a, [hli]
- cp $2e
- jr z, .asm_118e63
- cp $30
- jr c, .asm_118e67
- cp $3a
- jr nc, .asm_118e67
- sub $30
- add $f6
- ld [de], a
- inc de
- dec c
- jr nz, .asm_118e4a
- ld de, wcd85
-.asm_118e63
- ld a, $50
- ld [de], a
- ret
-.asm_118e67
- ld a, $f3
- ld [de], a
- inc de
- jr .asm_118e63
-
-Function118e6d: ; 118e6d (46:4e6d)
- xor a
- ld [wcd65], a
- ld a, $a
- jp Function119e2b
-
-Function118e76: ; 118e76 (46:4e76)
- ; Call $c in BattleTowerRoomMenu2
- ld a, $c
- ld [wcd3c], a
- jp BattleTowerRoomMenu_IncrementJumptable
-
-Function118e7e: ; 118e7e (46:4e7e)
- call BattleTowerRoomMenu2
- ret c
- ld a, $36
- jp Function119e2b
-
-BattleTowerRoomMenu_CallRoomMenu2: ; 118e87 (46:4e87)
- call BattleTowerRoomMenu2
- ret c
- ld a, [wcd33]
- ld [wcf66], a
- ret
-; 118e92 (46:4e92)
-
-Function118e92: ; 118e92
- call Function118440
- call Function1191d3
- ld a, [wcd53]
- ld l, a
- ld a, [wcd54]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld de, w3_d800
- ld bc, $0800
- jp Function118b10
-; 118eb0
-
-Function118eb0: ; 118eb0
- call Function118440
- ld hl, $d802
- ld de, BGMapBuffer
- ld bc, $000c
- call CopyBytes
- call Function1192cc
- ret c
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118ec6
-
-Function118ec6: ; 118ec6
- call Function118440
- call SpeechTextBox
- ld hl, $d80e
- ld de, $c320
- ld bc, $0026
- call CopyBytes
- xor a
- ld [$c31f], a
- ld a, $20
- ld [$c31b], a
- ld a, $c3
- ld [$c31c], a
- hlcoord 1, 14
- ld a, l
- ld [$c31d], a
- ld a, h
- ld [$c31e], a
- ld a, $2
- ld [$c31a], a
- ld a, $1d
- ld [wcd3c], a
- ld a, $24
- ld [wMobileInactivityTimerSeconds], a
- ld a, $11
- ld [wMobileInactivityTimerFrames], a
- ld a, $1c
- ld [wcd47], a
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118f0d
-
-Function118f0d: ; 118f0d
- call BattleTowerRoomMenu2
- ret c
- call Function118440
-
-Function118f14:
- call Function118440
- ld a, [wcd51]
- ld l, a
- ld a, [wcd52]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld a, [wcc60]
- and a
- jr z, .DontSendSaveFile
- ld hl, Text_SaveFileWillBeSent
- call BattleTowerRoomMenu_SetMessage
-
-.DontSendSaveFile:
- ld a, [wcd57]
- ld l, a
- ld a, [wcd58]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld hl, wcc60
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $24
- ld [wMobileInactivityTimerSeconds], a
- ld a, $13
- ld [wMobileInactivityTimerFrames], a
- ld a, $1c
- ld [wcd47], a
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118f5e
-
-Function118f5e: ; 118f5e
- call BattleTowerRoomMenu2
- ret c
- call Function118440
- call DelayFrame
-
-Function118f68:
- call Function119223
- ret c
- call Function118440
- ld a, [wcd51]
- ld l, a
- ld a, [wcd52]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld a, [wcc60]
- and a
- jr z, .asm_118fba
- ld hl, $c346
- ld a, $c608 % $100
- ld [hli], a
- ld a, $c608 / $100
- ld [hli], a
- ld a, [wcd4b]
- ld [hli], a
- ld a, [wcd4c]
- ld [hli], a
- ld a, $c708 % $100
- ld [hli], a
- ld a, $c708 / $100
- ld [hli], a
- ld a, $60
- ld [hli], a
- ld a, $cc
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, $c346
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-
-.asm_118fba
- call BattleTowerRoomMenu_IncrementJumptable
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118fc0
-
-Function118fc0: ; 118fc0
- call Function118440
- ld a, [wcd55]
- ld l, a
- ld a, [wcd56]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld a, [wcc60]
- and a
- jr z, .asm_118ffa
- ld a, [wcd51]
- ld l, a
- ld a, [wcd52]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld a, [wcc60]
- and a
- jr z, .asm_118ff2
- ld hl, Text_SentSaveFileReadingNews
- jr .asm_118ff5
-
-.asm_118ff2
- ld hl, Text_ReadingNews
-
-.asm_118ff5
- call BattleTowerRoomMenu_SetMessage
- jr Function119009
-
-.asm_118ffa
- ld hl, Text_ReadingNews
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
- call BattleTowerRoomMenu_IncrementJumptable
- jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119009:
- call Function118440
- call Function119300
- ld a, [wcd55]
- ld l, a
- ld a, [wcd56]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld hl, $c346
- ld a, $8
- ld [hli], a
- ld a, $c6
- ld [hli], a
- ld a, [wcd4b]
- ld [hli], a
- ld a, [wcd4c]
- ld [hli], a
- ld a, $8
- ld [hli], a
- ld a, $c7
- ld [hli], a
- ld a, $60
- ld [hli], a
- ld a, $cc
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, $c346
- ld de, w3_d000
- ld bc, $1000
- ld a, $2c
- jp Function119e2b
-; 119054
-
-Function119054: ; 119054
- ld a, $6
- call GetSRAMBank
- ld hl, wd002
- ld a, [wcd4f]
- ld e, a
- ld a, [wcd50]
- ld d, a
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- call Function119192
- ret c
- ld a, [wcd89]
- and $1
- jr z, .asm_11908a
- ld a, $6
- ld [rSVBK], a
- ld hl, wd002
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- call Function119192
- ret c
-
-.asm_11908a
- call CloseSRAM
- ld a, $3
- ld [rSVBK], a
- ld a, $5
- call GetSRAMBank
- ld a, [wcd4f]
- ld [$b1b3], a
- ld a, [wcd50]
- ld [$b1b4], a
- ld hl, BGMapBuffer
- ld de, $aa7f
- ld bc, $000c
- call CopyBytes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [wd474]
- ld [$b2f3], a
- ld hl, wd475
- ld de, $b2f4
- ld bc, $0004
- call CopyBytes
- pop af
- ld [rSVBK], a
- call CloseSRAM
- jp BattleTowerRoomMenu_IncrementJumptable
-; 1190d0
-
-Function1190d0: ; 1190d0
- ld a, $3
- ld [rSVBK], a
- ld a, [wcd57]
- ld l, a
- ld a, [wcd58]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 1190ec
-
-Function1190ec: ; 1190ec
- ld a, $5
- call GetSRAMBank
- ld hl, BGMapBuffer
- ld de, $aa73
- ld bc, $000c
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$aa72], a
- call CloseSRAM
- ld a, $6
- call GetSRAMBank
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- ld hl, wd002
- ld de, $a000
- call Function119192
- ret c
- ld a, [wcd89]
- and $1
- jr z, .asm_11913e
- ld a, $6
- ld [rSVBK], a
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- ld hl, wd002
- call Function119192
- ret c
-
-.asm_11913e
- ld a, $3
- ld [rSVBK], a
- call CloseSRAM
- ld hl, Text_ReceivedNews
- call BattleTowerRoomMenu_SetMessage
- jp BattleTowerRoomMenu_IncrementJumptable
-; 11914e
-
-Function11914e: ; 11914e
- call BattleTowerRoomMenu2
- ret c
- ld a, $1c
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- ret
-; 11915d
-
-Function11915d: ; 11915d
- ld hl, $d802
- ld de, BGMapBuffer
- ld bc, $000c
- call CopyBytes
- ld a, $5
- call GetSRAMBank
- ld hl, BGMapBuffer
- ld de, $aa7f
- ld c, $c
-.asm_119176
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .asm_119184
- inc hl
- dec c
- jr nz, .asm_119176
- call BattleTowerRoomMenu_IncrementJumptable
- jr .asm_11918e
-
-.asm_119184
- ld a, $16
- ld [wcf66], a
- ld a, $b
- ld [wc300], a
-
-.asm_11918e
- call CloseSRAM
- ret
-; 119192
-
-Function119192: ; 119192
- inc b
- inc c
- jr .asm_11919e
-
-.asm_119196
- ld a, [hli]
- ld [de], a
- inc de
- ld a, $bf
- cp d
- jr c, .asm_1191a6
-
-.asm_11919e
- dec c
- jr nz, .asm_119196
- dec b
- jr nz, .asm_119196
- and a
- ret
-
-.asm_1191a6
- ld a, $d3
- call Function118805
- scf
- ret
-; 1191ad
-
-Function1191ad: ; 1191ad
- push bc
- ld c, $0
- ld a, $5
- ld [rSVBK], a
-.asm_1191b4
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr z, .asm_1191cc
- inc c
- ld a, c
- cp $a6
- jr c, .asm_1191b4
- ld a, $da
- call Function118805
- ld a, $3
- ld [rSVBK], a
- pop bc
- scf
- ret
-
-.asm_1191cc
- ld a, $3
- ld [rSVBK], a
- pop bc
- and a
- ret
-; 1191d3
-
-Function1191d3: ; 1191d3
- ld hl, w3_d100 + 2
- ld a, l
- ld [wcd53], a
- ld a, h
- ld [wcd54], a
- call Function11920f
- ld a, l
- ld [wcd51], a
- ld a, [wcd4a]
- ld a, h
- ld [wcd52], a
- call Function11920f
- ld a, l
- ld [wcd55], a
- ld a, [wcd4a]
- ld a, h
- ld [wcd56], a
- call Function11920f
- ld a, [wcd49]
- ld a, l
- ld [wcd57], a
- ld a, [wcd4a]
- ld a, h
- ld [wcd58], a
- call Function11920f
- ret
-; 11920f
-
-Function11920f: ; 11920f
-.asm_11920f
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_11920f
- ld a, [hli]
- cp $a
- jr nz, .asm_11920f
- dec hl
- xor a
- ld [hld], a
- ld [hli], a
- inc hl
- ret
-; 119223
-
-Function119223: ; 119223
- xor a
- ld [wcd4b], a
- ld [wcd4c], a
- ld a, $5
- call GetSRAMBank
- ld hl, wc3cd
- ld de, $b092
- ld bc, $001f
- call CopyBytes
- dec de
- xor a
- ld [de], a
- ld hl, $d810
-.asm_119241
- ld a, [hli]
- cp $50
- jr nz, .asm_119241
- ld a, [hli]
- ld [wcd4f], a
- ld a, [hli]
- ld [wcd50], a
- ld a, [hli]
- ld [$b1b1], a
- ld c, a
- ld a, [hli]
- ld [$b1b2], a
- ld b, a
- ld de, $b1d3
- call CopyBytes
- call CloseSRAM
- ld e, l
- ld d, h
- ld hl, $c608
-.asm_119266
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_1192c2
- cp $fe
- jr z, .asm_1192a5
- call GetSRAMBank
- ld a, [de]
- inc de
- ld c, a
- ld a, [de]
- inc de
- ld b, a
- ld a, [de]
- inc de
- push de
- push af
- ld a, [wcd4b]
- ld e, a
- ld a, [wcd4c]
- ld d, a
- pop af
-.asm_119286
- push af
- ld a, [bc]
- inc bc
- ld [hli], a
- inc de
- pop af
- dec a
- jr nz, .asm_119286
- call CloseSRAM
- ld a, e
- ld [wcd4b], a
- ld a, d
- ld [wcd4c], a
- pop de
-.asm_11929b
- and a
- jr z, .asm_119266
- ld a, $d3
- call Function118805
- scf
- ret
-
-.asm_1192a5
- ld a, [wcd4b]
- ld c, a
- ld a, [wcd4c]
- ld b, a
- ld a, [de]
- inc de
-.asm_1192af
- push af
- ld a, [de]
- inc de
- ld [hli], a
- inc bc
- pop af
- dec a
- jr nz, .asm_1192af
- ld a, c
- ld [wcd4b], a
- ld a, b
- ld [wcd4c], a
- jr .asm_11929b
-
-.asm_1192c2
- ld a, e
- ld [wcd4d], a
- ld a, d
- ld [wcd4e], a
- and a
- ret
-; 1192cc
-
-Function1192cc: ; 1192cc
- ld a, $5
- call GetSRAMBank
- ld hl, $aa73
- ld de, $c608
- ld bc, $000c
- call CopyBytes
- call CloseSRAM
- ld hl, $c608
- ld de, BGMapBuffer
- ld c, $c
-.asm_1192e8
- ld a, [de]
- inc de
- ld b, a
- ld a, [hli]
- cp b
- jr nz, .asm_1192fe
- dec c
- jr nz, .asm_1192e8
- ld a, $1f
- ld [wcd3c], a
- ld a, $27
- ld [wcf66], a
- scf
- ret
-
-.asm_1192fe
- and a
- ret
-; 119300
-
-Function119300: ; 119300
- xor a
- ld [wcd4b], a
- ld [wcd4c], a
- ld a, [wcd4d]
- ld e, a
- ld a, [wcd4e]
- ld d, a
- ld hl, $c608
- ld a, [wcd4b]
- ld c, a
- ld a, [wcd4c]
- ld b, a
-.asm_11931a
- ld a, [de]
- inc de
- cp $50
- jr z, .asm_119324
- ld [hli], a
- inc bc
- jr .asm_11931a
-
-.asm_119324
- ld a, $3d
- ld [hli], a
- inc bc
- ld a, c
- ld [wcd4b], a
- ld a, b
- ld [wcd4c], a
- ld a, [de]
- inc de
- call GetSRAMBank
- ld a, [de]
- inc de
- ld c, a
- ld a, [de]
- inc de
- ld b, a
- ld a, [de]
- inc de
- push de
- push af
- ld a, [wcd4b]
- ld e, a
- ld a, [wcd4c]
- ld d, a
- pop af
-.asm_119348
- push af
- ld a, [bc]
- and $f0
- swap a
- call Function1197bf
- ld [hli], a
- inc de
- ld a, [bc]
- inc bc
- and $f
- call Function1197bf
- ld [hli], a
- inc de
- pop af
- dec a
- jr nz, .asm_119348
- call CloseSRAM
- ld a, e
- ld [wcd4b], a
- ld a, d
- ld [wcd4c], a
- pop de
- ld a, [de]
- cp $50
- jr z, .asm_11937f
- ld a, [wcd4b]
- ld c, a
- ld a, [wcd4c]
- ld b, a
- ld a, $26
- ld [hli], a
- inc bc
- jr .asm_11931a
-
-.asm_11937f
- ret
-; 119380
-
-Function119380: ; 119380
- ld a, $80
- ld [wcd49], a
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119388
-
-Function119388: ; 119388
- ld hl, wcd49
- dec [hl]
- ret nz
- ld hl, wcc60
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $10
- ld [wMobileInactivityTimerSeconds], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function1193a0:
- call BattleTowerRoomMenu2
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- ld hl, $c346
- ld a, wd000 % $100
- ld [hli], a
- ld a, wd000 / $100
- ld [hli], a
- ld a, [wcd3b]
- ld [hli], a
- xor a
- ld [hli], a
- ld a, $c708 % $100
- ld [hli], a
- ld a, $c708 / $100
- ld [hli], a
- ld a, $60
- ld [hli], a
- ld a, $cc
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, $c346
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-; 1193e3
-
-Function1193e3: ; 1193e3
- ld hl, wcd49
- dec [hl]
- ret nz
- ld hl, wcc60
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $11
- ld [wMobileInactivityTimerSeconds], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function1193fb:
- call BattleTowerRoomMenu2
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 119413
-
-Function119413: ; 119413
- ld a, $6
- call GetSRAMBank
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- dec bc
- dec bc
- ld hl, wd002
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call Function119192
- ret c
- ld a, [wcd89]
- and $1
- jr z, .asm_119447
- ld a, $6
- ld [rSVBK], a
- ld a, [wd000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- ld hl, wd002
- call Function119192
- ret c
-
-.asm_119447
- ld a, $3
- ld [rSVBK], a
- call CloseSRAM
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119451
-
-Function119451: ; 119451 (46:5451)
- ld a, [wcd89]
- and $1
- jr z, .asm_11945d
- ld a, $d3
- jp Function118805
-.asm_11945d
- xor a
- ld [wcd50], a
- call Function119694
- ld a, b
- ld [wcd49], a
- call Function1196cd
- ld a, [wd002]
- ld hl, wd003
-
-Function119471: ; 119471 (46:5471)
- push af
- ld a, [hli]
- ld [$c608], a
- ld a, [hli]
- ld [$c608 + 3], a
- ld a, [hli]
- ld [$c608 + 1], a
- ld a, [hli]
- ld [$c608 + 2], a
- ld a, [hli]
- ld [$c608 + 4], a
- ld a, [hli]
- ld [$c608 + 5], a ; $c608 + 5
- push hl
- ld a, [$c608]
- cp $ff
- jr z, .asm_1194a7
- ld a, [$c608 + 2]
- cp $ff
- jr z, .asm_1194a7
- ld a, [$c608 + 1]
- cp $ff
- jr nz, .asm_1194a7
- call Function119584
- jr c, .asm_11950c
- jr .asm_1194f0
-.asm_1194a7
- ld hl, $c608
- ld de, $c608 + 3
- ld c, $3
-.asm_1194af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr c, .asm_1194f3
- jr z, .asm_1194b9
- jr nc, .asm_1194bc
-.asm_1194b9
- dec c
- jr nz, .asm_1194af
-.asm_1194bc
- ld c, $3
- ld hl, wcd49
- ld de, $c608
-.asm_1194c4
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_1194d1
- cp [hl]
- jr z, .asm_1194d1
- jr c, .asm_1194d5
- jr nc, .asm_1194f0
-.asm_1194d1
- inc hl
- dec c
- jr nz, .asm_1194c4
-.asm_1194d5
- ld c, $3
- ld hl, wcd49
- ld de, $c608 + 3
-.asm_1194dd
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_1194ea
- cp [hl]
- jr c, .asm_1194f0
- jr z, .asm_1194ea
- jr nc, .asm_11950c
-.asm_1194ea
- inc hl
- dec c
- jr nz, .asm_1194dd
- jr .asm_11950c
-.asm_1194f0
- pop hl
- jr .asm_119557
-.asm_1194f3
- ld c, $3
- ld hl, wcd49
- ld de, $c608
-.asm_1194fb
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_119508
- cp [hl]
- jr c, .asm_11950c
- jr z, .asm_119508
- jr nc, .asm_1194d5
-.asm_119508
- inc hl
- dec c
- jr nz, .asm_1194fb
-.asm_11950c
- pop hl
- ld a, $1
- ld [wcd50], a
- ld a, l
- ld [$c608], a
- ld a, h
- ld [$c608 + 1], a
- ld de, wcd69
- ld c, $10
- ld b, $0
-.asm_119521
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_119528
- inc b
-.asm_119528
- dec c
- jr nz, .asm_119521
- ld a, $10
- cp b
- jr z, .asm_119536
-rept 4
- inc hl
-endr
- jr .asm_11957a
-.asm_119536
- ld a, [hli]
- cp $50
- jr nz, .asm_119552
- ld a, [hli]
- cp $33
- jr nz, .asm_119553
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [wcd83]
- cp c
- jr nz, .asm_119576
- ld a, [wcd84]
- cp b
- jr nz, .asm_119576
- jr .asm_11955b
-.asm_119552
- inc hl
-.asm_119553
- inc hl
- inc hl
- jr .asm_11955b
-.asm_119557
- ld de, $14
- add hl, de
-.asm_11955b
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- add hl, de
- pop af
- dec a
- jp nz, Function119471
- ld a, [wcd50]
- and a
- jr z, .asm_119571
- ld a, $1a
- ld [wcf66], a
- ret
-.asm_119571
- ld a, $d8
- jp Function118805
-.asm_119576
- ld a, $10
- jr .asm_11957c
-.asm_11957a
- ld a, $f
-.asm_11957c
- ld [wcf66], a
- pop af
- call Function1195c4
- ret
-
-Function119584: ; 119584 (46:5584)
- ld a, [$c608]
- ld b, a
- ld a, [$c608 + 3]
- ld c, a
- cp b
- jr c, .asm_11959c
- ld a, [wcd49]
- cp b
- jr c, .asm_1195c2
-.asm_119595
- cp c
- jr c, .asm_1195a2
- jr z, .asm_1195a2
- jr .asm_1195c2
-.asm_11959c
- ld a, [wcd49]
- cp b
- jr c, .asm_119595
-.asm_1195a2
- ld a, [$c608 + 2]
- ld b, a
- ld a, [$c608 + 5] ; $c608 + 5
- ld c, a
- cp b
- jr c, .asm_1195ba
- ld a, [wcd4b]
- cp b
- jr c, .asm_1195c2
-.asm_1195b3
- cp c
- jr c, .asm_1195c0
- jr z, .asm_1195c0
- jr .asm_1195c2
-.asm_1195ba
- ld a, [wcd4b]
- cp b
- jr c, .asm_1195b3
-.asm_1195c0
- scf
- ret
-.asm_1195c2
- and a
- ret
-
-Function1195c4: ; 1195c4 (46:55c4)
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld de, $a5
- ld a, b
- cp d
- jr c, .asm_1195d9
- jr z, .asm_1195d3
- jr nc, .asm_1195f3
-.asm_1195d3
- ld a, c
- cp e
- jr z, .asm_1195d9
- jr nc, .asm_1195f3
-.asm_1195d9
- ld de, wcc60
- call CopyBytes
- xor a
- ld [de], a
- ld a, [$c608]
- ld l, a
- ld a, [$c608 + 1]
- ld h, a
- ld de, wcd69
- ld bc, $10
- call CopyBytes
- ret
-.asm_1195f3
- ld a, $d8
- jp Function118805
-
-Function1195f8: ; 1195f8 (46:55f8)
- ld a, $11
- ld [wcd3c], a
- ld a, $1c
- ld [wMobileInactivityTimerSeconds], a
- ld a, $f
- ld [wMobileInactivityTimerFrames], a
- ld a, $14
- ld [wcd47], a
- call BattleTowerRoomMenu_IncrementJumptable
- jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119612: ; 119612 (46:5612)
- ld a, $14
- ld [wcd3c], a
- ld a, $1c
- ld [wMobileInactivityTimerSeconds], a
- ld a, $10
- ld [wMobileInactivityTimerFrames], a
- ld a, $14
- ld [wcd47], a
- jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119629: ; 119629 (46:5629)
- call BattleTowerRoomMenu2
- ret c
- ld a, $60
- ld l, a
- ld a, $cc
- ld h, a
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $1c
- ld [wMobileInactivityTimerSeconds], a
- ld a, $14
- ld [wcd47], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function119648: ; 119648 (46:5648)
- call BattleTowerRoomMenu2
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- call Function118b24
- ld de, w3_d000
- ld bc, $1000
- ld a, $2a
- jp Function119e2b
-
-Function119665: ; 119665 (46:5665)
- ld a, $1a
- ld [wcd3c], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function11966d: ; 11966d (46:566d)
- call BattleTowerRoomMenu2
- ret c
- ld a, [wcd47]
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- ret
-
-Function11967d: ; 11967d (46:567d)
- ld a, $18
- ld [wcd3c], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function119685: ; 119685 (46:5685)
- call BattleTowerRoomMenu2
- ret c
- ld a, $14
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- ret
-
-Function119694: ; 119694 (46:5694)
- ld b, 0
- ld hl, Unknown_1196b8
-.asm_119699
- ld de, $c708
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_1196af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_1196b0
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_1196b1
- ret
-.asm_1196af
- inc hl
-.asm_1196b0
- inc hl
-.asm_1196b1
- inc b
- ld a, b
- cp $7
- jr nz, .asm_119699
- ret
-; 1196b8 (46:56b8)
-
-Unknown_1196b8: ; 1196b8
- db "Mon"
- db "Tue"
- db "Wed"
- db "Thu"
- db "Fri"
- db "Sat"
- db "Sun"
-; 1196cd
-
-SECTION "bank46_2", ROMX
-; A hack to use ascii above.
-
-Function1196cd: ; 1196cd (46:56cd)
- ld de, $c719
- call Function1196de
- ld [wcd4a], a
- inc de
- call Function1196de
- ld [wcd4b], a
- ret
-
-Function1196de: ; 1196de (46:56de)
- ld a, [de]
- inc de
- ; b = ([de] - 48) * 2
- ; c = ([de] - 48) * 10
- sub $30
- sla a
- ld b, a
- sla a
- sla a
- add b
- ld c, a
- add hl, bc
- ld a, [de]
- inc de
- sub $30
- add c
- ret
-; 1196f2 (46:56f2)
-
-Function1196f2: ; 1196f2
- ld hl, wd002
-.asm_1196f5
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_1196f5
- ld a, [hl]
- cp $a
- jr nz, .asm_1196f5
- xor a
- ld [hld], a
- ld [hli], a
- ld a, l
- ld [wcd5b], a
- ld a, h
- ld [wcd5c], a
- inc hl
- ld e, l
- ld d, h
- ld a, [de]
- inc de
- cp $d
- jr nz, .asm_119722
- ld a, [de]
- inc de
- cp $a
- jr nz, .asm_119722
- ld a, $b
- jp Function118805
-
-.asm_119722
- call Random
- ld c, $0
- ld b, c
-.asm_119728
- call Function119798
- ld a, d
- cp $ff
- jr nz, .asm_119735
- ld a, e
- cp $ff
- jr z, .asm_11974c
-
-.asm_119735
- ld a, [hRandomSub]
- cp d
- jr c, .asm_11974c
- jr z, .asm_11973e
- jr .asm_119745
-
-.asm_11973e
- ld a, [hRandomAdd]
- cp e
- jr c, .asm_11974c
- jr z, .asm_11974c
-
-.asm_119745
- inc bc
- ld a, c
- or b
- jr z, .asm_119770
- jr .asm_119728
-
-.asm_11974c
- ld a, [wcd5b]
- ld l, a
- ld a, [wcd5c]
- ld h, a
-.asm_119754
- ld a, [hld]
- cp $58
- jr nz, .asm_119754
- ld d, $0
-.asm_11975b
- inc d
- ld a, [hld]
- cp $58
- jr z, .asm_11975b
- inc hl
- inc hl
- ld a, d
- dec a
- jr z, .asm_11978e
- dec a
- jr z, .asm_119785
- dec a
- jr z, .asm_11977e
- dec a
- jr z, .asm_119775
-
-.asm_119770
- ld a, $d3
- jp Function118805
-
-.asm_119775
- ld a, b
- and $f0
- swap a
- call Function1197bf
- ld [hli], a
-
-.asm_11977e
- ld a, b
- and $f
- call Function1197bf
- ld [hli], a
-
-.asm_119785
- ld a, c
- and $f0
- swap a
- call Function1197bf
- ld [hli], a
-
-.asm_11978e
- ld a, c
- and $f
- call Function1197bf
- ld [hli], a
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119798
-
-Function119798: ; 119798
- ld d, $0
- ld e, d
- call Function1197b4
- swap a
- or d
- ld d, a
- call Function1197b4
- or d
- ld d, a
- call Function1197b4
- swap a
- or e
- ld e, a
- call Function1197b4
- or e
- ld e, a
- ret
-; 1197b4
-
-Function1197b4: ; 1197b4
- ld a, [hli]
- cp $61
- jr nc, .asm_1197bc
- sub $30
- ret
-
-.asm_1197bc
- sub $57
- ret
-; 1197bf
-
-Function1197bf: ; 1197bf
- cp $a
- jr nc, .asm_1197c6
- add $30
- ret
-
-.asm_1197c6
- add $57
- ret
-; 1197c9
-
-Function1197c9: ; 1197c9
- ld hl, wd002
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $12
- ld [wMobileInactivityTimerSeconds], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function1197dc:
- call BattleTowerRoomMenu2
- ret c
- call DelayFrame
- ld hl, wd002
- ld de, wcc60
- ld bc, $0080
- call CopyBytes
- dec de
- xor a
- ld [de], a
- call Function118b24
- ld de, w3_d000
- ld bc, $1000
- ld a, $2a
- jp Function119e2b
-; 119800
-
-Function119800: ; 119800
- ld a, $fd
- ld [$c6d0], a
- ld [wOTTrademonSpecies], a
- ld a, [wcd81]
- ld [wc74e], a
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- ld a, [wcf65]
- push af
- ld a, [wcf66]
- push af
- ld a, $1
- ld [rSVBK], a
- call FadeToMenu
- callba Function10803d
- call Function11a9ce
- call RestartMapMusic
- ld a, $3
- ld [rSVBK], a
- pop af
- ld [wcf66], a
- pop af
- ld [wcf65], a
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- callba Function115dc3
- jp BattleTowerRoomMenu_IncrementJumptable
-; 11984e
-
-Function11984e: ; 11984e
- ld a, [wcd80]
- and a
- jr nz, .asm_1198a0
- ld a, [wcd38]
- and a
- jr nz, .asm_1198a8
- callba Function170000
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- ld a, [wcf65]
- push af
- ld a, [wcf66]
- push af
- ld a, $1
- ld [rSVBK], a
- call FadeToMenu
- callba MobileTradeAnimation_SendGivemonToGTS
- call Function11a9ce
- call RestartMapMusic
- ld a, $3
- ld [rSVBK], a
- pop af
- ld [wcf66], a
- pop af
- ld [wcf65], a
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- callba Function115dc3
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_1198a0
- ld a, $a
- ld [wc300], a
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_1198a8
- callba Function17005a
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- ld a, [wcf65]
- push af
- ld a, [wcf66]
- push af
- ld a, $1
- ld [rSVBK], a
- call FadeToMenu
- callba MobileTradeAnimation_RetrieveGivemonFromGTS
- call Function11a9ce
- call RestartMapMusic
- ld a, $3
- ld [rSVBK], a
- pop af
- ld [wcf66], a
- pop af
- ld [wcf65], a
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- callba Function115dc3
- jp BattleTowerRoomMenu_IncrementJumptable
-; 1198ee
-
-Function1198ee: ; 1198ee
- ld hl, Text_RegisteringRecord
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function1198f7:
- ld a, [$c31a]
- and a
- ret nz
- ld hl, $c608 + 2
- call Function119940
- ld hl, w3_d800
- ld a, $c608 % $100
- ld [hli], a
- ld a, $c608 / $100
- ld [hli], a
- ld a, $f6
- ld [hli], a
- xor a
- ld [hli], a
- ld a, $c708 % $100
- ld [hli], a
- ld a, $c708 / $100
- ld [hli], a
- ld a, [wcd51]
- ld [hli], a
- ld a, [wcd52]
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, w3_d800
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-; 119937
-
-Function119937: ; 119937
- callba Function1707f4
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119940
-
-Function119940: ; 119940
- ld de, wc3cd
- ld c, $1e
-.asm_119945
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr z, .asm_119953
- and a
- jr nz, .asm_119945
- xor a
-.asm_11994f
- ld [hli], a
- dec c
- jr nz, .asm_11994f
-
-.asm_119953
- ret
-; 119954
-
-Function119954: ; 119954
- ld a, $1c
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- ld hl, $c608
- ld de, wc3cd
-.asm_119962
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .asm_119962
- call Function119ec2
- ld hl, $c608
- ld a, $1e
- jp Function119e2b
-; 119973
-
-Function119973: ; 119973
- ld a, $1
- ld [wcf64], a
- xor a
- ld [wcf65], a
- ld [w3_d090], a
- ld de, w3_d000
- ld a, $20
- jp Function119e2b
-; 119987
-
-Function119987: ; 119987
- ld hl, w3_d000 + 1
- ld a, [w3_d000]
- or [hl]
- jr z, .asm_1199a0
- ld a, [wcf64]
- ld l, a
- ld a, [wcf65]
- ld h, a
- ld de, BGPals
- ld a, $22
- jp Function119e2b
-
-.asm_1199a0
- ld a, [w3_d090]
- and a
- jr z, .asm_1199ae
- ld a, $16
- ld [wcf66], a
- jp Function119b0d
-
-.asm_1199ae
- ld a, $1b
- ld [wcf66], a
- ret
-; 1199b4
-
-Function1199b4: ; 1199b4
- ld a, [wd000 + 130]
- and a
- jr nz, .asm_1199c7
- ld a, [wd000 + 129]
- cp $7
- jr nc, .asm_1199c7
- call BattleTowerRoomMenu_IncrementJumptable
- jp Function1199ca
-
-.asm_1199c7
- jp Function119ac9
-; 1199ca
-
-Function1199ca: ; 1199ca
- ld a, $20
- ld [wcd89], a
- ld a, [wcf64]
- ld l, a
- ld a, [wcf65]
- ld h, a
- ld de, w3_d100
- ld bc, $0700
- ld a, $28
- jp Function119e2b
-; 1199e2
-
-Function1199e2: ; 1199e2
- ld c, $c
- ld de, XGameCodePrefix
- call Function119e4f
- jp c, Function119ac9
- ld a, c
- cp $1
- jp nz, Function119ac9
- ld hl, w3_d880
- ld bc, XGameCode
-.loop
- ld a, [bc]
- and a
- jr z, .game_result_prefix
- cp [hl]
- jp nz, Function119ac9
- inc bc
- inc hl
- jr .loop
-
-.game_result_prefix
- ld c, $17
- ld de, XGameResultPrefix
- call Function119e4f
- jp c, .asm_119aa7
- ld a, c
- cp $1
- jp nz, .asm_119aa7
- ld a, [w3_d880]
- cp $31
- jp nz, .asm_119aa7
- ld a, [w3_d881]
- cp $20
- jp nz, .asm_119aa7
- ld a, [w3_d88a]
- cp $20
- jp nz, .asm_119aa7
- ld a, [w3_d894]
- cp $20
- jp nz, .asm_119aa7
- xor a
- ld [w3_d8a0], a
- ld [w3_d8a1], a
- ld [w3_d8a2], a
- ld [w3_d8a3], a
- ld hl, $d8a0
- ld bc, $d889
- call Function119e98
- call Function119e98
- ld hl, $d8a0
- ld a, [wcd2d]
- cp [hl]
- jr nz, Function119ac9
- inc hl
- ld a, [wcd2c]
- cp [hl]
- jr nz, Function119ac9
- inc hl
- ld a, [wcd2b]
- cp [hl]
- jr nz, Function119ac9
- inc hl
- ld a, [wcd2a]
- cp [hl]
- jr nz, Function119ac9
- xor a
- ld [w3_d8a0], a
- ld [w3_d8a1], a
- ld [w3_d8a2], a
- ld [w3_d8a3], a
- ld hl, $d8a0
- ld bc, $d88e
- call Function119e98
- ld bc, $d893
- call Function119e98
- ld hl, $d8a0
- ld a, [wcd2f]
- cp [hl]
- jr nz, .asm_119aa7
- inc hl
- ld a, [wcd2e]
- cp [hl]
- jr nz, .asm_119aa7
- inc hl
- ld a, [wcd31]
- cp [hl]
- jr nz, .asm_119aa7
- inc hl
- ld a, [wcd30]
- cp [hl]
- jr z, .asm_119aaf
-
-.asm_119aa7
- ld a, $25
- ld [wcf66], a
- jp Function119b45
-
-.asm_119aaf
- ld a, [w3_d090]
- and a
- jr nz, .asm_119aa7
- ld a, [w3_d895]
- sub $30
- ld [w3_d090], a
- ld a, [wcf64]
- ld [w3_d090 + 1], a
- ld a, [wcf65]
- ld [w3_d090 + 2], a
-
-Function119ac9:
- ld a, [w3_d000]
- ld l, a
- ld a, [w3_d000 + 1]
- ld h, a
- dec hl
- ld a, l
- ld [w3_d000], a
- ld a, h
- ld [w3_d000 + 1], a
- ld a, [wcf64]
- ld l, a
- ld a, [wcf65]
- ld h, a
- inc hl
- ld a, l
- ld [wcf64], a
- ld a, h
- ld [wcf65], a
- ld a, $10
- ld [wcf66], a
- ret
-; 119af1
-
-XGameCode:
-INCBIN "data/mobile/x-game-code.txt"
-XGameResult:
-INCBIN "data/mobile/x-game-result.txt"
-; 119b0d
-
-Function119b0d: ; 119b0d
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- ld a, [w3_d090]
- cp $1
- jr z, .asm_119b23
- ld a, $19
- ld [wcf66], a
- jr Function119b3b
-
-.asm_119b23
- ld a, $10
- ld [wcd89], a
- ld a, [w3_d090 + 1]
- ld l, a
- ld a, [w3_d090 + 2]
- ld h, a
- ld de, w3_d100
- ld bc, $0700
- ld a, $24
- jp Function119e2b
-
-Function119b3b:
- ld a, [w3_d090 + 1]
- ld l, a
- ld a, [w3_d090 + 2]
- ld h, a
- jr asm_119b4d
-
-Function119b45:
- ld a, [wcf64]
- ld l, a
- ld a, [wcf65]
- ld h, a
-
-asm_119b4d
- ld a, $26
- jp Function119e2b
-; 119b52
-
-Function119b52: ; 119b52
- ld a, [w3_d090]
- cp $1
- jr nz, .asm_119b66
- ld a, $5
- call GetSRAMBank
- ld a, $4
- ld [$a800], a
- call CloseSRAM
-
-.asm_119b66
- ld a, $1c
- jp Function119e2b
-; 119b6b
-
-Function119b6b: ; 119b6b
- ld a, [w3_d090]
- cp $1
- jr z, .asm_119b75
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_119b75
- ld a, [w3_d100]
- ld b, a
- ld a, [w3_d100 + 1]
- or b
- jr z, .asm_119be3
- ld hl, w3_d800
- ld de, w3_d100 + 2
-.asm_119b85
- ld a, [de]
- inc de
- cp $d
- jr nz, .asm_119b85
- inc de
- ld a, [de]
- cp $d
- jr nz, .asm_119b85
- inc de
- inc de
-.asm_119b93
- ld a, [de]
- inc de
- cp $d
- jr z, .asm_119bfa
- call Function119c3e
- ret c
- ld [hli], a
- ld a, [de]
- inc de
- call Function119c3e
- ret c
- ld [hli], a
- ld a, [de]
- inc de
- call Function119c3e
- ret c
- ld [hli], a
- ld a, [de]
- inc de
- call Function119c3e
- ret c
- ld [hl], a
- push de
- ld d, [hl]
- dec hl
- ld c, [hl]
- dec hl
- ld b, [hl]
- dec hl
- ld a, [hl]
- sla b
- sla b
- sla b
- rla
- sla b
- rla
- ld [hli], a
- ld [hl], b
- inc hl
- rrc c
- rrc c
- ld [hl], c
- dec hl
- ld a, $f
- and c
- or [hl]
- ld [hli], a
- ld a, [hli]
- and $c0
- or [hl]
- dec hl
- ld [hld], a
- dec hl
- pop de
- inc hl
- inc hl
- inc hl
- ld a, h
- cp $e0
- jr c, .asm_119b93
-
-.asm_119be3
- ld a, $19
- ld [wcf66], a
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
- xor a
- ld [w3_d090], a
- ret
-
-.asm_119bfa
- inc de
- ld a, [de]
- cp $d
- jr nz, .asm_119b93
- ld a, l
- cp (w3_d869) % $100
- jr nz, .asm_119be3
- ld a, h
- cp (w3_d869) / $100
- jr nz, .asm_119be3
- ld a, $5
- call GetSRAMBank
- ld a, [wcf64]
- ld [$b090], a
- ld a, [wcf65]
- ld [$b091], a
- ld hl, w3_d800
- ld de, $b023
- ld bc, $0069
- call CopyBytes
- ld a, $3
- ld [$a800], a
- call CloseSRAM
- ld hl, w3_d800
- ld de, $c608
- ld bc, $0069
- call CopyBytes
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119c3e
-
-Function119c3e: ; 119c3e
- cp $2b
- jr c, .asm_119c68
- jr z, .asm_119c80
- cp $2f
- jr c, .asm_119c68
- jr z, .asm_119c84
- cp $30
- jr c, .asm_119c68
- cp $3a
- jr c, .asm_119c88
- cp $3d
- jr c, .asm_119c68
- jr z, .asm_119c8c
- cp $41
- jr c, .asm_119c68
- cp $5b
- jr c, .asm_119c8f
- cp $61
- jr c, .asm_119c68
- cp $7b
- jr c, .asm_119c93
-
-.asm_119c68
- ld a, $19
- ld [wcf66], a
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
- xor a
- ld [w3_d090], a
- scf
- ret
-
-.asm_119c80
- ld a, $3e
- and a
- ret
-
-.asm_119c84
- ld a, $3f
- and a
- ret
-
-.asm_119c88
- add $4
- and a
- ret
-
-.asm_119c8c
- xor a
- and a
- ret
-
-.asm_119c8f
- sub $41
- and a
- ret
-
-.asm_119c93
- sub $47
- and a
- ret
-; 119c97
-
-BattleTowerRoomMenu_UberRestrictionMessage: ; 119c97
- ld hl, Text_UberRestriction
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
- jr BattleTowerRoomMenu_WaitForMessage
-
-BattleTowerRoomMenu_PartyMonTopsThisLevelMessage:
- ld hl, Text_PartyMonTopsThisLevel
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_WaitForMessage:
- ld a, [$c31a]
- and a
- ret nz
- ld a, $80
- ld [wcd50], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_DelayRestartMenu:
- ; Loops while (--[wcd50] != 0),
- ; to create some sort of "delay" after the message is written on the screen,
- ; before starting the menu again.
- ld hl, wcd50
- dec [hl]
- ret nz
- ld a, $0
- ld [wcf66], a
- ret
-; 119cc3
-
-BattleTowerRoomMenu_QuitMessage: ; 119cc3
- ld a, [wcd38]
- and a
- jr z, .asm_119cd1
- dec a
- jr z, .asm_119cd6
- ld hl, Text_QuitReadingNews
- jr .asm_119cd9
-
-.asm_119cd1
- ld hl, Text_CancelBattleRoomChallenge
- jr .asm_119cd9
-
-.asm_119cd6
- ld hl, Text_ExitGymLeaderHonorRoll
-
-.asm_119cd9
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_PlaceYesNoMenu:
- ld a, [$c31a]
- and a
- ret nz
- ld a, $f
- ld [wcd3c], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_UpdateYesNoMenu:
- ; Only ever called when [wcd3c] is $10
- call BattleTowerRoomMenu2
- ret c
- ld a, [wMobileInactivityTimerFrames]
- ld [wcf66], a
- ret
-; 119cf7
-
-MenuDataHeader_119cf7: ; 119cf7
- db $40 ; flags
- db 7, 12 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 119cff
-
-MenuData_119cff: ; 119cff
- db $40 ; flags
- db 7, 15 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 119d07
-
-String_119d07:
- db " ▼@"
-
-Strings_L10ToL100: ; 119d0c
- db " L:10 @@"
- db " L:20 @@"
- db " L:30 @@"
- db " L:40 @@"
- db " L:50 @@"
- db " L:60 @@"
- db " L:70 @@"
- db " L:80 @@"
- db " L:90 @@"
- db " L:100@@"
- db "CANCEL@@"
-
-Strings_Ll0ToL40: ; 119d64
- db " L:10 @@"
- db " L:20 @@"
- db " L:30 @@"
- db " L:40 @@"
- db "CANCEL@@"
-
-String_119d8c:
- db "CANCEL@"
-; 119d93
-
-BattleTower_LevelCheck: ; 119d93 (46:5d93)
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [wcd4f]
- ld c, 10
- call SimpleMultiply
- ld hl, wcd50
- ld [hl], a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld de, PartyMon1Level
- ld a, [PartyCount]
-.party_loop
- push af
- ld a, [de]
- push hl
- push de
- pop hl
- add hl, bc
- push hl
- pop de
- pop hl
- cp [hl]
- jr z, .equal
- jr nc, .exceeds
-.equal
- pop af
- dec a
- jr nz, .party_loop
- pop af
- ld [rSVBK], a
- and a
- ret
-
-.exceeds
- pop af
- ld a, $4
- ld [wcf66], a
- pop af
- ld [rSVBK], a
- scf
- ret
-
-BattleTower_UbersCheck: ; 119dd1 (46:5dd1)
- ld a, [rSVBK]
- push af
- ld a, [wcd4f]
- cp 70 / 10
- jr nc, .level_70_or_more
- ld a, $1
- ld [rSVBK], a
- ld hl, PartyMon1Level
- ld bc, PARTYMON_STRUCT_LENGTH
- ld de, PartySpecies
- ld a, [PartyCount]
-.loop
- push af
- ld a, [de]
- cp MEWTWO
- jr z, .uber
- cp MEW
- jr z, .uber
- cp LUGIA
- jr c, .next
- cp NUM_POKEMON + 1
- jr nc, .next
-.uber
- ld a, [hl]
- cp 70
- jr c, .uber_under_70
-.next
- add hl, bc
- inc de
- pop af
- dec a
- jr nz, .loop
-.level_70_or_more
- pop af
- ld [rSVBK], a
- and a
- ret
-
-.uber_under_70
- pop af
- ld a, [de]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, wcd49
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ld a, $a
- ld [wcf66], a
- pop af
- ld [rSVBK], a
- scf
- ret
-; 119e2b (46:5e2b)
-
-Function119e2b: ; 119e2b (46:5e2b)
- call Function3e32
-
-BattleTowerRoomMenu_IncrementJumptable: ; 119e2e (46:5e2e)
- ld hl, wcf66
- inc [hl]
- ret
-; 119e33 (46:5e33)
-
-XGameCodePrefix: ; 119e33
-INCBIN "data/mobile/x-game-code-prefix.txt"
-XGameCodePrefixEnd:
-;119e40
-
-XGameResultPrefix: ; 119e40
-INCBIN "data/mobile/x-game-result-prefix.txt"
-XGameResultPrefixEnd:
-; 119e4f
-
-Function119e4f: ; 119e4f
- push bc
- ld hl, w3_d100
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-.loop
- ld a, [de]
- cp [hl]
- jr z, .found_equality
-.next
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .loop
-.return_carry
- pop bc
- scf
- ret
-
-.found_equality
- push de
-.loop2
- ld a, [de]
- inc de
- cp "\n"
- jr z, .newline
- cp [hl]
- jr nz, .unequal
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .loop2
- pop de
- jr .return_carry
-
-.unequal
- pop de
- jr .next
-
-.newline
- pop de
- pop bc
- inc hl
- ld de, w3_d880
-.loop3
- ld a, [hli]
- ld [de], a
- inc de
- cp $d
- jr z, .finish
- dec c
- jr nz, .loop3
- scf
- ret
-
-.finish
- and a
- ret
-; 119e8e
-
-Function119e8e: ; 119e8e
- cp $60
- jr c, .less_than_0x60
- sub $57
- ret
-
-.less_than_0x60
- sub $30
- ret
-; 119e98
-
-Function119e98: ; 119e98
- ld a, $2
-.loop
- push af
- ld a, [bc]
- dec bc
- call Function119e8e
- or [hl]
- ld [hl], a
- ld a, [bc]
- dec bc
- call Function119e8e
- rlca
- rlca
- rlca
- rlca
- or [hl]
- ld [hl], a
- inc hl
- pop af
- dec a
- and a
- jr nz, .loop
- ret
-; 119eb4
-
-Function119eb4: ; 119eb4 (46:5eb4)
- xor a
- ld [wc3cc], a
- ld de, wc3ac
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .loop
- ret
-
-Function119ec2: ; 119ec2 (46:5ec2)
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- xor a
- ld [sMobileLoginPassword + MOBILE_LOGIN_PASSWORD_LENGTH], a
- ld de, sMobileLoginPassword + 1
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .loop
- call CloseSRAM
- ret
-
-BattleTowerRoomMenu2: ; 119ed8 (46:5ed8)
- ld a, [rSVBK]
- ld [wcd8c], a
- ld a, $1
- ld [rSVBK], a
-
- call .RunJumptable
-
- ld a, [wcd8c]
- ld [rSVBK], a
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.RunJumptable:
- jumptable .Jumptable, wcd3c
-
-.Jumptable:
- dw Function119f3f
- dw Function119f45
- dw Function119f56
- dw Function119f76
- dw Function119f98
- dw Function11a113
- dw Function11a129
- dw Function11a131
- dw Function11a13d
- dw Function11a14b
- dw Function11a16d
- dw Function11a192
- dw Function11a2e6
- dw Function11a302
- dw Function11a33a
- dw BattleTowerRoomMenu2_PlaceYesNoMenu
- dw BattleTowerRoomMenu2_UpdateYesNoMenu
- dw Function11a357
- dw Function11a36b
- dw Function11a38d
- dw Function11a3c5
- dw Function11a3d9
- dw Function11a3f9
- dw Function11a41b
- dw Function11a452
- dw Function11a47a
- dw Function11a488
- dw Function11a49e
- dw Function11a4db
- dw Function11a4e8
- dw Function11a4fe
- dw Function11a466
- dw Function11a47a
-; 119f3f
-
-Function119f3f: ; 119f3f
- call Function11a5b9
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f45
-
-Function119f45: ; 119f45
- hlcoord 4, 2
- ld de, String_11a661
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f56
-
-Function119f56: ; 119f56
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_119f62
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_119f62
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6aa
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f76
-
-Function119f76: ; 119f76
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_119f82
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_119f82
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a679
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f98
-
-Function119f98: ; 119f98
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_119fef
- call ExitMenu
- call Function11a63c
- xor a
- ld [ScriptVar], a
- call Function11a00e
- ld a, [ScriptVar]
- and a
- jr z, .asm_119fd4
- call ExitMenu
- callba ReloadMapPart
- callba Function115dc3
- ld a, [wcd33]
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- scf
- ret
-
-.asm_119fd4
- hlcoord 4, 2
- ld de, String_11a692
- call PlaceString
- ld a, $1
- ld [wc30d], a
- ld a, $1
- ld [wc314], a
- callba ReloadMapPart
- and a
- ret
-
-.asm_119fef
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerSeconds]
- ld [wcf66], a
- callba Function115dc3
- ld a, $a
- ld [wc300], a
- scf
- ret
-; 11a00e
-
-Function11a00e: ; 11a00e
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- ld a, [sMobileLoginPassword]
- and a
- jr z, .asm_11a02a
- ld a, [sMobileLoginPassword + 1]
- call CloseSRAM
- and a
- ret nz
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- xor a
- ld [sMobileLoginPassword], a
-
-.asm_11a02a
- call CloseSRAM
- ld a, [BGMapPalBuffer]
- and a
- jr z, .asm_11a039
- dec a
- jr z, .asm_11a081
- jp Function11a0ca
-
-.asm_11a039
- ld a, $3
- ld [rSVBK], a
- ld hl, $c608
- ld de, w3_d800
- ld bc, $00f6
- call CopyBytes
- ld a, $1
- ld [rSVBK], a
- call FadeToMenu
- callba Function11765d
- call Function11a9ce
- ld a, $3
- ld [rSVBK], a
- ld hl, w3_d800
- ld de, $c608
- ld bc, $00f6
- call CopyBytes
- ld a, $1
- ld [rSVBK], a
- callba Function115d99
- ld c, $0
- callba Function115e18
- ld a, $1
- ld [wc305], a
- ret
-
-.asm_11a081
- xor a
- ld [wMenuBorderLeftCoord], a
- ld [wMenuBorderTopCoord], a
- ld a, $13
- ld [wMenuBorderRightCoord], a
- ld a, $5
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- callba Function11765d
- callba Function117ab4
- callba MobileFunc_106462
- callba Function106464
- call ExitMenu
- callba ReloadMapPart
- callba Function115d99
- ld c, $0
- callba Function115e18
- ld a, $1
- ld [wc305], a
- ret
-; 11a0ca
-
-Function11a0ca: ; 11a0ca
- xor a
- ld [wMenuBorderLeftCoord], a
- ld [wMenuBorderTopCoord], a
- ld a, $13
- ld [wMenuBorderRightCoord], a
- ld a, $11
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- callba Function11765d
- callba Function17d3f6
- callba MobileFunc_106462
- callba Function106464
- call ExitMenu
- callba ReloadMapPart
- callba Function115d99
- ld c, $0
- callba Function115e18
- ld a, $1
- ld [wc305], a
- ret
-; 11a113
-
-Function11a113: ; 11a113
- call Function11a63c
- ld c, $1
- callba Function115e18
- hlcoord 4, 2
- ld de, String_11a6c8
- call PlaceString
- and a
- ret
-; 11a129
-
-Function11a129: ; 11a129
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a131
-
-Function11a131: ; 11a131
- ld hl, wMobileInactivityTimerMinutes
- dec [hl]
- ret nz
- ld a, [wcd3c]
- inc a
- ld [wcd3c], a
-
-Function11a13d:
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-; 11a14b
-
-Function11a14b: ; 11a14b
- ld hl, wcd85
- ld a, [hl]
- cp $f3
- jr nz, .asm_11a155
- and a
- ret
-
-.asm_11a155
- call Function11a1d6
- ret c
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6f1
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a16d
-
-Function11a16d: ; 11a16d
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a179
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a179
- call Function11a63c
- call Function11a1e6
- hlcoord 4, 2
- ld de, $c346
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a192
-
-Function11a192: ; 11a192
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a1b6
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a1b6
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerSeconds]
- ld [wcf66], a
- ld [wcd80], a
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- scf
- ret
-; 11a1d6
-
-Function11a1d6: ; 11a1d6
- ld a, [wcd85]
- cp $50
- jr nz, .asm_11a1e4
- ld a, $d3
- call Function118805
- scf
- ret
-
-.asm_11a1e4
- and a
- ret
-; 11a1e6
-
-Function11a1e6: ; 11a1e6
- ld hl, String_11a706
- ld de, $c346
- call Function11a1ff
- ld hl, wcd85
- call Function11a1ff
- ld hl, String_11a70b
- call Function11a1ff
- ld a, $50
- ld [de], a
- ret
-; 11a1ff
-
-Function11a1ff: ; 11a1ff
-.asm_11a1ff
- ld a, [hli]
- cp $50
- ret z
- ld [de], a
- inc de
- jr .asm_11a1ff
-; 11a207
-
-BattleTowerRoomMenu2_PlaceYesNoMenu: ; 11a207
- ld hl, MenuDataHeader_11a2de
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- call ApplyTilemap
- hlcoord 16, 8
- ld de, String_11a2cf
- call PlaceString
- hlcoord 16, 10
- ld de, String_11a2d3
- call PlaceString
- hlcoord 15, 8
- ld a, $ed
- ld [hl], a
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a235
-
-BattleTowerRoomMenu2_UpdateYesNoMenu: ; 11a235
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON
- jr nz, .a_button
- ld a, [hl]
- and B_BUTTON
- jr nz, .b_button
- ld a, [hl]
- and D_UP
- jr nz, .d_up
- ld a, [hl]
- and D_DOWN
- jr nz, .d_down
-.asm_11a24c
- call Function11a9f0
- scf
- ret
-
-.d_up
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a24c
- xor a
- ld [wMobileInactivityTimerMinutes], a
- hlcoord 15, 8
- ld a, $ed
- ld [hl], a
- hlcoord 15, 10
- ld a, $7f
- ld [hl], a
- jr .asm_11a24c
-
-.d_down
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a24c
- inc a
- ld [wMobileInactivityTimerMinutes], a
- hlcoord 15, 8
- ld a, $7f
- ld [hl], a
- hlcoord 15, 10
- ld a, $ed
- ld [hl], a
- jr .asm_11a24c
-
-.a_button
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .exit_no_carry
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerFrames]
- cp $0
- jr z, .asm_11a2b4
- ld a, [wcd47]
- jr .exit_carry
-
-.asm_11a2b4
- ld a, [wcd33]
-
-.exit_carry
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- scf
- ret
-
-.b_button
- call PlayClickSFX
-
-.exit_no_carry
- call ExitMenu
- callba ReloadMapPart
- and a
- ret
-; 11a2cf
-
-String_11a2cf: ; 11a2cf
- db "YES@"
-; 11a2d3
-
-String_11a2d3: ; 11a2d3
- db "NO@"
-; 11a2d6
-
-MenuDataHeader_11a2d6: ; 11a2d6
- db $40 ; flags
- db 6, 14 ; start coords
- db 10, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 11a2de
-
-MenuDataHeader_11a2de: ; 11a2de
- db $40 ; flags
- db 7, 14 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 11a2e6
-
-Function11a2e6: ; 11a2e6
- call Function11a63c
- ld c, $2
- callba Function115e18
- hlcoord 4, 2
- ld de, String_11a71e
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a302
-
-Function11a302: ; 11a302
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a30e
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a30e
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a72a
- call PlaceString
- hlcoord 9, 4
- ld de, wcd68
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- hlcoord 14, 4
- ld de, wcd67
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a33a
-
-Function11a33a: ; 11a33a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a346
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a346
- call ExitMenu
- callba ReloadMapPart
- callba Function115dc3
- and a
- ret
-; 11a357
-
-Function11a357: ; 11a357
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a743
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a36b
-
-Function11a36b: ; 11a36b
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a377
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a377
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a755
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a38d
-
-Function11a38d: ; 11a38d
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a3b1
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a3b1
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerSeconds]
- ld [wcf66], a
- ld [wcd80], a
- scf
- ret
-; 11a3c5
-
-Function11a3c5: ; 11a3c5
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a762
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a3d9
-
-Function11a3d9: ; 11a3d9
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a3e5
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a3e5
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a779
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a3f9
-
-Function11a3f9: ; 11a3f9
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a405
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a405
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a755
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a41b
-
-Function11a41b: ; 11a41b
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a43f
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a43f
- call ExitMenu
- callba ReloadMapPart
- ld a, $1c
- ld [wcf66], a
- ld [wcd80], a
- scf
- ret
-; 11a452
-
-Function11a452: ; 11a452
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a791
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a466
-
-Function11a466: ; 11a466
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a7c1
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a47a
-
-Function11a47a: ; 11a47a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a486
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a486
- and a
- ret
-; 11a488
-
-Function11a488: ; 11a488
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a7ac
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a49e
-
-Function11a49e: ; 11a49e
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a4c7
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- ld a, $14
- ld [wcf66], a
- and a
- ret
-
-.asm_11a4c7
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerFrames]
- ld [wcf66], a
- ld [wcd80], a
- scf
- ret
-; 11a4db
-
-Function11a4db: ; 11a4db
- call Function11a63c
- ld de, String_11a6db
- hlcoord 4, 2
- call PlaceString
- ret
-; 11a4e8
-
-Function11a4e8: ; 11a4e8
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a7d7
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a4fe
-
-Function11a4fe: ; 11a4fe
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a522
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a522
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerSeconds]
- ld [wcf66], a
- ld [wcd80], a
- scf
- ret
-; 11a536
-
-Function11a536: ; 11a536
- ld hl, hJoyPressed
- ld a, [hl]
- and $1
- jr nz, .asm_11a5a7
- ld a, [hl]
- and $2
- jr nz, .asm_11a5a2
- ld a, [hl]
- and $40
- jr nz, .asm_11a564
- ld a, [hl]
- and $80
- jr nz, .asm_11a583
-.asm_11a54d
- ld a, [wcd3c]
- cp $4
- jr z, .asm_11a562
- call Function11a9f0
- jr nz, .asm_11a562
- call ExitMenu
- callba ReloadMapPart
-
-.asm_11a562
- scf
- ret
-
-.asm_11a564
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a54d
- xor a
- ld [wMobileInactivityTimerMinutes], a
- hlcoord 15, 7
- ld a, $ed
- ld [hl], a
- hlcoord 15, 9
- ld a, $7f
- ld [hl], a
- jr .asm_11a54d
-
-.asm_11a583
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a54d
- inc a
- ld [wMobileInactivityTimerMinutes], a
- hlcoord 15, 7
- ld a, $7f
- ld [hl], a
- hlcoord 15, 9
- ld a, $ed
- ld [hl], a
- jr .asm_11a54d
-
-.asm_11a5a2
- ld a, $1
- ld [wMobileInactivityTimerMinutes], a
-
-.asm_11a5a7
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- and a
- ret
-; 11a5b0
-
-BattleTowerRoomMenu2_IncrementJumptable: ; 11a5b0
- ld a, [wcd3c]
- inc a
- ld [wcd3c], a
- scf
- ret
-; 11a5b9
-
-Function11a5b9: ; 11a5b9
- xor a
- ld [wMenuBorderLeftCoord], a
- ld [wMenuBorderTopCoord], a
- ld a, $13
- ld [wMenuBorderRightCoord], a
- ld a, $5
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- hlcoord 0, 0, AttrMap
- ld b, $6
- ld c, $14
- hlcoord 0, 0
- ld b, $4
- ld c, $12
- call Function3eea
- callba ReloadMapPart
- call UpdateSprites
- ld c, $0
- callba Function115e18
- ld a, $1
- ld [wc305], a
- ret
-; 11a5f5
-
-Function11a5f5: ; 11a5f5
- ld a, $e
- ld [wMenuBorderLeftCoord], a
- ld a, $13
- ld [wMenuBorderRightCoord], a
- ld a, $6
- ld [wMenuBorderTopCoord], a
- ld a, $a
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- hlcoord 14, 6, AttrMap
- ld b, $5
- ld c, $6
- hlcoord 14, 6
- ld b, $3
- ld c, $4
- call Function3eea
- hlcoord 16, 7
- ld de, String_11a2cf
- call PlaceString
- hlcoord 16, 9
- ld de, String_11a2d3
- call PlaceString
- hlcoord 15, 7
- ld a, $ed
- ld [hl], a
- callba ReloadMapPart
- ret
-; 11a63c
-
-Function11a63c: ; 11a63c
- hlcoord 4, 1
- ld de, String_11a7f4
- call PlaceString
- hlcoord 4, 2
- ld de, String_11a7f4
- call PlaceString
- hlcoord 4, 3
- ld de, String_11a7f4
- call PlaceString
- hlcoord 4, 4
- ld de, String_11a7f4
- call PlaceString
- ret
-; 11a661
-
-String_11a661: ; 11a661
- db "これから モバイルセンターに"
- next "でんわ", $1f, "かけます@"
-; 11a679
-
-String_11a679: ; 11a679
- db "モバイルアダプタ", $25, "じゅんびは"
- next "できて いますか?@"
-; 11a692
-
-String_11a692: ; 11a692
- db "でんわ", $1f, "かけています"
- next "しばらく おまちください@"
-; 11a6aa
-
-String_11a6aa: ; 11a6aa
- db "でんわをかけると つうわりょう"
- next "せつぞくりょう", $4a, "かかります@"
-; 11a6c8
-
-String_11a6c8: ; 11a6c8
- db "せつぞく しました@"
-; 11a6d2
-
-String_11a6d2: ; 11a6d2
- db "つうしん ちゅう@"
-; 11a6db
-
-String_11a6db: ; 11a6db
- db "つうしん ちゅう"
- next "セレクト エーでちゅうし@"
-; 11a6f1
-
-String_11a6f1: ; 11a6f1
- db "この サービスには"
- next "つうわりょう", $25, "ほかに@"
-; 11a706
-
-String_11a706: ; 11a706
- db "おかね", $4a, "@"
-; 11a70b
-
-String_11a70b: ; 11a70b
- db "えん"
- next "かかります よろしい ですか?@"
-; 11a71e
-
-String_11a71e: ; 11a71e
- db "つうしん しゅうりょう@"
-; 11a72a
-
-String_11a72a: ; 11a72a
- db "つないだ じかん"
- next " やく ふん びょう@"
-; 11a743
-
-String_11a743: ; 11a743
- db "もっていない データが"
- next "あります!@"
-; 11a755
-
-String_11a755: ; 11a755
- db "データ", $1f, "よみこみますか?@"
-; 11a762
-
-String_11a762: ; 11a762
- db "おなじ データ", $1f, "よみこんだ"
- next "こと", $4a, "ありますが@"
-; 11a779
-
-String_11a779: ; 11a779
- db "そのデータ", $24, "なくなっているか"
- next "こわれて います@"
-; 11a791
-
-String_11a791: ; 11a791
- db "もっている データと"
- next "おなじデータしか ありません!@"
-; 11a7ac
-
-String_11a7ac: ; 11a7ac
- db "データ", $25, "よみこみを"
- next "ちゅうし しますか?@"
-; 11a7c1
-
-String_11a7c1: ; 11a7c1 ; new news?
- db "あたらしい ニュースは"
- next "ありません でした@"
-; 11a7d7
-
-String_11a7d7: ; 11a7d7
- db "あたらしいニュース", $4a, "あります"
- next "ニュース", $1f, "よみこみますか?@"
-; 11a7f4
-
-String_11a7f4: ; 11a7f4
- db " @"
-; 11a804
-
-MenuDataHeader_11a804: ; 11a804
- db $40 ; flags
- db 0, 0 ; start coords
- db 5, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 11a80c
-
-Function11a80c: ; 11a80c
- ld de, hDivisor
- ld bc, hDividend
- ld hl, Unknown_11a89a
- call Function11a88c
- ld bc, hQuotient
- ld hl, Unknown_11a8ba
- call Function11a88c
- ld bc, hPrintNum3
- ld hl, Unknown_11a8da
- call Function11a88c
- xor a
- ld b, a
- ld a, [hDivisor]
- and $f
- ld e, a
- ld a, [hPrintNum7]
- and $f
- call Function11a884
- ld e, a
- ld a, [hPrintNum9]
- and $f
- call Function11a884
- ld [wcd62], a
- ld e, b
- xor a
- ld b, a
- ld a, [hDivisor]
- and $f0
- swap a
- call Function11a884
- ld e, a
- ld a, [hPrintNum7]
- and $f0
- swap a
- call Function11a884
- ld e, a
- ld a, [hPrintNum9]
- and $f0
- swap a
- call Function11a884
- ld [wcd63], a
- ld e, b
- xor a
- ld b, a
- ld a, [hMathBuffer]
- and $f
- call Function11a884
- ld e, a
- ld a, [hPrintNum8]
- and $f
- call Function11a884
- ld e, a
- ld a, [hPrintNum10]
- and $f
- call Function11a884
- ld [wcd64], a
- ret
-; 11a884
-
-Function11a884: ; 11a884
- add e
- cp $a
- ret c
- sub $a
- inc b
- ret
-; 11a88c
-
-Function11a88c: ; 11a88c
- ld a, [bc]
- sla a
- ld c, a
- xor a
- ld b, a
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
- ret
-; 11a89a
-
-Unknown_11a89a: ; 11a89a
-x = 0
-rept 16
- bcd x % 100, x / 100
-x = x + 1
-endr
-
-Unknown_11a8ba: ; 11a8ba
-x = 0
-rept 16
- bcd x % 100, x / 100
-x = x + 16
-endr
-
-Unknown_11a8da: ; 11a8da
-x = 0
-rept 16
- bcd x % 100, x / 100
-x = x + 256
-endr
-; 11a8fa
-
-BattleTowerRoomMenu_WriteMessage: ; 11a8fa
- jumptable .Jumptable, $c31a
-; 11a909
-
-.Jumptable: ; 11a909
- dw BattleTowerRoomMenu_WriteMessage_DoNothing
- dw Function11a90f
- dw Function11a971
-; 11a90f
-
-Function11a90f: ; 11a90f
- ld a, $1
- ld [rSVBK], a
- call SpeechTextBox
- ld a, $50
- ld hl, $c320
- ld bc, $008c
- call ByteFill
- ld a, [$c31b]
- ld l, a
- ld a, [$c31c]
- ld h, a
- ld de, $c320
-.asm_11a92c
- ld a, [hli]
- cp $57
- jr z, .asm_11a94f
- cp $0
- jr z, .asm_11a92c
- cp $50
- jr z, .asm_11a92c
- cp $1
- jr z, .asm_11a941
- ld [de], a
- inc de
- jr .asm_11a92c
-
-.asm_11a941
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-.asm_11a945
- ld a, [bc]
- inc bc
- cp $50
- jr z, .asm_11a92c
- ld [de], a
- inc de
- jr .asm_11a945
-
-.asm_11a94f
- xor a
- ld [$c31f], a
- ld a, $c320 % $100
- ld [$c31b], a
- ld a, $c320 / $100
- ld [$c31c], a
- hlcoord 1, 14
- ld a, l
- ld [$c31d], a
- ld a, h
- ld [$c31e], a
- ld hl, $c31a
- inc [hl]
- ld a, $3
- ld [rSVBK], a
-
-BattleTowerRoomMenu_WriteMessage_DoNothing:
- ret
-; 11a971
-
-Function11a971: ; 11a971
- ld hl, $c31f
- ld a, [hJoyDown]
- and a
- jr nz, .asm_11a97f
- ld a, [hl]
- and a
- jr z, .asm_11a97f
- dec [hl]
- ret
-
-.asm_11a97f
- ld a, [Options]
- and $7
- ld [hl], a
- ld hl, wcd8d
- ld a, [$c31b]
- ld e, a
- ld a, [$c31c]
- ld d, a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, e
- ld [$c31b], a
- ld a, d
- ld [$c31c], a
- ld a, $50
- ld [hl], a
- ld a, [$c31d]
- ld l, a
- ld a, [$c31e]
- ld h, a
- ld de, wcd8d
- call PlaceString
- ld a, c
- ld [$c31d], a
- ld a, b
- ld [$c31e], a
- ld a, [wcd8d]
- cp $50
- jr nz, .asm_11a9bf
- xor a
- ld [$c31a], a
-
-.asm_11a9bf
- ret
-; 11a9c0
-
-BattleTowerRoomMenu_SetMessage: ; 11a9c0
- ld a, l
- ld [$c31b], a
- ld a, h
- ld [$c31c], a
- ld a, $1
- ld [$c31a], a
- ret
-; 11a9ce
-
-Function11a9ce: ; 11a9ce
- call ClearBGPalettes
- call ReloadTilesetAndPalettes
- call Call_ExitMenu
- callba MobileFunc_106462
- callba Function106464
- call ret_d90
- callba FinishExitMenu
- call UpdateSprites
- ret
-; 11a9f0
-
-Function11a9f0: ; 11a9f0
- ld a, $1
- and a
- ret
-; 11a9f4
-
-Function11a9f4: ; 11a9f4
- ld a, [wcd8a]
- ld l, a
- ld a, [wcd8b]
- ld h, a
- inc hl
- ld a, l
- ld [wcd8a], a
- ld a, h
- ld [wcd8b], a
- ld de, $d5d0
- add hl, de
- bit 7, h
- ret nz
- ld a, $d6
- call Function118805
- and a
- ret
-; 11aa13
-
-Text_SaveFileWillBeSent: ; 0x11aa13
- text "SAVE FILE will be"
- line "sent."
- done
-; 0x11aa2c
-
-Text_SentSaveFileReadingNews: ; 0x11aa2c
- text "Sent SAVE FILE."
- line "Reading NEWS…"
- done
-; 0x11aa4b
-
-Text_ReadingNews: ; 0x11aa4b
- text "Reading NEWS…"
- done
-; 0x11aa5a
-
-Text_ReceivedNews: ; 0x11aa5a
- text "Received NEWS!"
- done
-; 0x11aa6a
-
-Text_QuitReadingNews: ; 0x11aa6a
- text "Quit reading NEWS?"
- done
-; 0x11aa7e
-
-Text_CanceledSendingSaveFile: ; 0x11aa7e
- text "Canceled sending"
- line "SAVE FILE."
- done
-; 0x11aa9b
-
-Text_ReceivedOddEgg: ; 0x11aa9b
- text "ODD EGG"
- line "was received!"
- done
-; 0x11aab2
-
-Text_RegisteringRecord: ; 0x11aab2
- text "Registering your"
- line "record…"
- done
-; 0x11aacc
-
-Text_BattleRoomVisitLimit: ; 0x11aacc
- text "One visit per day"
- line "per BATTLE ROOM!"
- done
-; 0x11aaf0
-
-Text_PartyMonTopsThisLevel: ; 0x11aaf0
- text "A party #MON"
- line "tops this level."
- done
-; 0x11ab0f
-
-Text_UberRestriction: ; 0x11ab0f
- text_from_ram wcd49
- text " may go"
- line "only to BATTLE"
-
- para "ROOMS that are"
- line "Lv.70 or higher."
- done
-; 0x11ab4a
-
-Text_CancelBattleRoomChallenge: ; 0x11ab4a
- text "Cancel your BATTLE"
- line "ROOM challenge?"
- done
-; 0x11ab6e
-
-Text_ExitGymLeaderHonorRoll: ; 0x11ab6e
- text "Exit GYM LEADER"
- line "HONOR ROLL?"
- done
-; 0x11ab8b
-
-Text_LinkingWithCenter: ; 0x11ab8b
- text "Linking with the"
- line "CENTER…"
- done
-; 0x11aba5
-
-Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5
- text "What level do you"
- line "want to challenge?"
- done
-; 0x11abcb
-
-Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb
- text "Check BATTLE ROOM"
- line "list by max level?"
- done
-; 0x11abf1
-
-Text_EnterWhichBattleRoom: ; 0x11abf1
- text "Enter which"
- line "BATTLE ROOM?"
- done
-; 0x11ac0b
-
-Text_WhichBattleRoom: ; 0x11ac0b
- text "Which BATTLE ROOM?"
- done
-; 0x11ac1f
-
-Text_ThisBattleRoomPleaseWait: ; 0x11ac1f
- text_from_ram StringBuffer3
- text "'s ROOM"
- line "@"
- text_from_ram StringBuffer4
- text "?"
- cont "Please wait…"
- done
-; 0x11ac3e
-
-Function11ac3e: ; 11ac3e
- call SpeechTextBox
- call FadeToMenu
- callab ClearSpriteAnims2
- call Function11ac51
- call CloseSubmenu
- ret
-; 11ac51
-
-Function11ac51: ; 11ac51
- xor a
- ld [hBGMapMode], a
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [hMapAnims], a
- ld [wcd49], a
- ld [wcd4a], a
- ld [wcd4c], a
- ld [wcd4d], a
- ld [wcd4e], a
- call Function11ad1b
- call DelayFrame
-.loop
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_11aca8
- call Function11b314
- call Function11acb7
- call Function11ad6e
- ld a, 30 * 4
- ld [wCurrSpriteOAMAddr], a
- callba DoNextFrameForAllSprites
- callba ReloadMapPart
- jr .loop
-
-.asm_11aca8
- call ClearSprites
- pop af
- ld [hInMenu], a
- pop af
- ld [VramState], a
- pop af
- ld [Options], a
- ret
-; 11acb7
-
-Function11acb7: ; 11acb7
- ld hl, TilemapPack_11ba44
- ld a, [wcd49]
- ld c, a
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- add hl, bc
- decoord 6, 6
- ld a, [hli]
- ld [de], a
- decoord 0, 7
- ld bc, 7
- call CopyBytes
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, [hl]
- cp $ff
- jr nz, .get_the_other
- xor a
- ld [wcd49], a
-.get_the_other
- ld hl, TilemapPack_11bb7d
- ld a, [wcd4a]
- ld c, a
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- add hl, bc
- decoord 3, 9
- ld bc, 7
- call CopyBytes
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- inc hl
- ld a, [hl]
- cp $ff
- ret nz
- xor a
- ld [wcd4a], a
- ret
-; 11ad1b
-
-Function11ad1b: ; 11ad1b
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- callba Function17c000
- ld a, [wMenuCursorY]
- ld [wcd82], a
- dec a
- ld [hObjectStructIndexBuffer], a
- ld a, $10
- ld [wCurIconTile], a
- ld hl, LoadMenuMonIcon
- ld a, BANK(LoadMenuMonIcon)
- ld e, $4
- rst FarCall
- ld hl, LoadMenuMonIcon
- ld a, BANK(LoadMenuMonIcon)
- ld e, $5
- rst FarCall
- ld hl, $c6d0
- ld bc, $0115
- xor a
- call ByteFill
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wcd30], a
- ld a, $2
- ld [wc7d4], a
- callba Pokedex_OrderMonsByMode
- ret
-; 11ad6e
-
-Function11ad6e: ; 11ad6e
- ld a, [wJumptableIndex]
- ld hl, Jumptable_11ad78
- call Function11b239
- jp hl
-; 11ad78
-
-Jumptable_11ad78: ; 11ad78
- dw Function11b082
- dw Function11b0ff
- dw Function11ad95
- dw Function11adc4
- dw Function11ae4e
- dw Function11ae98
- dw Function11ad8f
- dw Function11af04
- dw Function11af4e
-; 11ad8a
-
-Function11ad8a: ; 11ad8a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 11ad8f
-
-Function11ad8f: ; 11ad8f
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 11ad95
-
-Function11ad95: ; 11ad95
- ld hl, MenuDataHeader_11ae38
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 12, 12
- ld de, String_11ae40
- call PlaceString
- hlcoord 10, 10, AttrMap
- lb bc, 8, 8
- call Function11afd6
- callba ReloadMapPart
- call Function11ad8a
- ld a, $1
- ld [wMenuCursorY], a
- ld hl, Unknown_11afcc
- call Function11afb7
-
-Function11adc4:
- ld hl, hJoyPressed
- ld a, [hl]
- and a
- ret z
- ld a, [hl]
- and $40
- jr nz, .asm_11ade6
- ld a, [hl]
- and $80
- jr nz, .asm_11aded
- ld a, [hl]
- and $1
- jr nz, .asm_11ae06
- ld a, [hl]
- and $2
- ret z
- call PlayClickSFX
- xor a
- ld [wJumptableIndex], a
- jr .asm_11ae2e
-
-.asm_11ade6
- ld a, [wMenuCursorY]
- dec a
- ret z
- jr .asm_11adf4
-
-.asm_11aded
- ld a, [wMenuCursorY]
- inc a
- cp $4
- ret z
-
-.asm_11adf4
- push af
- ld hl, Unknown_11afcc
- call Function11afbb
- pop af
- ld [wMenuCursorY], a
- ld hl, Unknown_11afcc
- call Function11afb7
- ret
-
-.asm_11ae06
- call PlayClickSFX
- ld a, [wMenuCursorY]
- dec a
- ld hl, wcd30
- ld [hl], a
- and a
- jr z, .asm_11ae28
- hlcoord 2, 14
- ld a, [wMenuCursorY]
- cp $2
- jr z, .asm_11ae23
- call Function11b272
- jr .asm_11ae2b
-
-.asm_11ae23
- call Function11b267
- jr .asm_11ae2b
-
-.asm_11ae28
- ld a, $3
- ld [hl], a
-
-.asm_11ae2b
- call Function11ad8a
-
-.asm_11ae2e
- call ExitMenu
- callba ReloadMapPart
- ret
-; 11ae38
-
-MenuDataHeader_11ae38: ; 11ae38
- db $40 ; flags
- db 10, 10 ; start coords
- db 17, 17 ; end coords
- dw NULL
- db 0 ; default option
-; 11ae40
-
-String_11ae40: ; 11ae40
- db "どちらでも"
- next "♂ォス"
- next "♀メス"
- db "@"
-; 11ae4e
-
-Function11ae4e: ; 11ae4e
- ld hl, MenuDataHeader_11afe8
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 10, 14
- ld de, String_11aff0
- call PlaceString
- ld hl, MenuDataHeader_11b013
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 16, 8
- ld de, String_11b01b
- call PlaceString
- hlcoord 14, 7, AttrMap
- lb bc, 5, 6
- call Function11afd6
- hlcoord 9, 12, AttrMap
- lb bc, 6, 11
- call Function11afd6
- callba ReloadMapPart
- call Function11ad8a
- ld a, $1
- ld [wMenuCursorY], a
- ld hl, Unknown_11afd2
- call Function11afb7
-
-Function11ae98:
- ld hl, hJoyPressed
- ld a, [hl]
- and a
- ret z
- ld a, [hl]
- and D_UP
- jr nz, .asm_11aec1
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_11aec8
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_11aee1
- ld a, [hl]
- and B_BUTTON
- ret z
- call PlayClickSFX
-.asm_11aeb4
- hlcoord 2, 14
- ld a, $7f
- ld [hl], a
- ld a, $1
- ld [wJumptableIndex], a
- jr .asm_11aef7
-
-.asm_11aec1
- ld a, [wMenuCursorY]
- dec a
- ret z
- jr .asm_11aecf
-
-.asm_11aec8
- ld a, [wMenuCursorY]
- inc a
- cp $3
- ret z
-
-.asm_11aecf
- push af
- ld hl, Unknown_11afd2
- call Function11afbb
- pop af
- ld [wMenuCursorY], a
- ld hl, Unknown_11afd2
- call Function11afb7
- ret
-
-.asm_11aee1
- call PlayClickSFX
- ld a, [wMenuCursorY]
- cp $2
- jr z, .asm_11aeb4
- ld a, [wcd4b]
- ld [ScriptVar], a
- call Function11b022
- call Function11ad8a
-
-.asm_11aef7
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- ret
-; 11af04
-
-Function11af04: ; 11af04
- ld hl, MenuDataHeader_11afe8
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 10, 14
- ld de, String_11b003
- call PlaceString
- ld hl, MenuDataHeader_11b013
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 16, 8
- ld de, String_11b01b
- call PlaceString
- hlcoord 14, 7, AttrMap
- lb bc, 5, 6
- call Function11afd6
- hlcoord 9, 12, AttrMap
- lb bc, 6, 11
- call Function11afd6
- callba ReloadMapPart
- call Function11ad8a
- ld a, $2
- ld [wMenuCursorY], a
- ld hl, Unknown_11afd2
- call Function11afb7
-
-Function11af4e:
- ld hl, hJoyPressed
- ld a, [hl]
- and a
- ret z
- ld a, [hl]
- and D_UP
- jr nz, .asm_11af77
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_11af7e
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_11af97
- ld a, [hl]
- and B_BUTTON
- ret z
- call PlayClickSFX
-.asm_11af6a
- hlcoord 2, 14
- ld a, $7f
- ld [hl], a
- ld a, $1
- ld [wJumptableIndex], a
- jr .asm_11afaa
-
-.asm_11af77
- ld a, [wMenuCursorY]
- dec a
- ret z
- jr .asm_11af85
-
-.asm_11af7e
- ld a, [wMenuCursorY]
- inc a
- cp $3
- ret z
-
-.asm_11af85
- push af
- ld hl, Unknown_11afd2
- call Function11afbb
- pop af
- ld [wMenuCursorY], a
- ld hl, Unknown_11afd2
- call Function11afb7
- ret
-
-.asm_11af97
- call PlayClickSFX
- ld a, [wMenuCursorY]
- cp $2
- jr z, .asm_11af6a
- ld a, $6
- ld [wJumptableIndex], a
- xor a
- ld [ScriptVar], a
-
-.asm_11afaa
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- ret
-; 11afb7
-
-Function11afb7: ; 11afb7
- ld e, $ed
- jr asm_11afbd
-
-Function11afbb:
- ld e, $7f
-
-asm_11afbd:
- ld a, [wMenuCursorY]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, e
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld [de], a
- ret
-; 11afcc
-
-Unknown_11afcc:
- dwcoord 11, 12
- dwcoord 11, 14
- dwcoord 11, 16
-
-Unknown_11afd2:
- dwcoord 15, 8
- dwcoord 15, 10
-; 11afd6
-
-Function11afd6: ; 11afd6
- ld de, SCREEN_WIDTH
- ld a, $3
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .row
- ret
-; 11afe8
-
-MenuDataHeader_11afe8: ; 11afe8
- db $40 ; flags
- db 12, 9 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 11aff0
-
-String_11aff0: ; 11aff0
- db "この じょうけんで"
- next "よろしいですか?@"
-; 11b003
-
-String_11b003: ; 11b003
- db "こうかんを"
- next "ちゅうししますか?@"
-; 11b013
-
-MenuDataHeader_11b013: ; 11b013
- db $40 ; flags
- db 7, 14 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 1 ; default option
-; 11b01b
-
-String_11b01b:
- db "はい"
- next "いいえ@"
-; 11b022
-
-Function11b022: ; 11b022
- ld a, [wcd2e]
- and a
- jr z, .asm_11b02e
- ld hl, StringBuffer3
- call Function11b03d
-
-.asm_11b02e
- ld a, [wcd30]
- and a
- ret z
- cp $3
- ret z
- ld hl, StringBuffer4
- call Function11b03d
- ret
-; 11b03d
-
-Function11b03d: ; 11b03d
- push hl
- push af
- ld c, $1
-.loop
- ld a, [hli]
- cp "♂"
- jr z, .gender
- cp "♀"
- jr z, .gender
- cp "@"
- jr z, .done
- inc c
- jr .loop
-
-.gender
- dec hl
- ld a, "@"
- ld [hli], a
-
-.done
- dec hl
- push hl
- ld e, 4
- ld d, 0
- add hl, de
- ld e, l
- ld d, h
- pop hl
-.loop2
- ld a, [hld]
- ld [de], a
- dec de
- dec c
- jr nz, .loop2
- pop af
- pop de
- cp $1
- jr nz, .female
- ld hl, .MaleString
- jr .got_string
-
-.female
- ld hl, .FemaleString
-
-.got_string
- ld bc, 4 ; string length
- call CopyBytes
- ret
-; 11b07a
-
-.MaleString: db "ォスの "
-.FemaleString: db "メスの "
-
-Function11b082: ; 11b082
- call Function11b242
- ld a, $7
- ld [wc7d3], a
- call Function11b099
- call Function11b295
- call Function11b275
- call SetPalettes
- jp Function11ad8a
-; 11b099
-
-Function11b099: ; 11b099
- ld c, $6
- hlcoord 11, 1
- ld a, [wc7d3]
- add a
- ld b, a
- xor a
- call Function11b236
- ld a, [wc7d0]
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld e, l
- ld d, h
- hlcoord 11, 2
- ld a, [wc7d3]
-.loop
- push af
- ld a, [de]
- ld [wd265], a
- push de
- push hl
- call .PlaceMonNameOrPlaceholderString
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop de
- inc de
- pop af
- dec a
- jr nz, .loop
- ret
-; 11b0cf
-
-.PlaceMonNameOrPlaceholderString: ; 11b0cf
- and a
- ret z
-
- call .CheckSeenFlag
- ret c
-
- call .SetCaughtFlag
- push hl
- call GetPokemonName
- pop hl
- call PlaceString
- ret
-; 11b0e1
-
-.SetCaughtFlag: ; 11b0e1
- call CheckCaughtMemMon
- jr nz, .okay
- inc hl
- ret
-
-.okay
- ld a, $1
- ld [hli], a
- ret
-; 11b0ec
-
-.CheckSeenFlag: ; 11b0ec
- call CheckSeenMemMon
- ret nz
-
- inc hl
- ld de, .EmptySlot
- call PlaceString
- scf
- ret
-; 11b0f9
-
-.EmptySlot: ; 11b0f9
- db "ーーーーー@"
-; 11b0ff
-
-Function11b0ff: ; 11b0ff
- ld hl, hJoyPressed
- ld a, [hl]
- and $2
- jr nz, .asm_11b141
- ld a, [hl]
- and $1
- jr nz, .asm_11b131
- call Function11b175
- jr nc, .asm_11b125
- ld a, [wcd4c]
- inc a
- and $3
- ld [wcd4c], a
- xor a
- ld [hBGMapMode], a
- call Function11b099
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.asm_11b125
- ld a, [wcd4c]
- and a
- ret z
- inc a
- and $3
- ld [wcd4c], a
- ret
-
-.asm_11b131
- call Function11b20b
- call CheckSeenMemMon
- jr z, .asm_11b13d
- ld a, $1
- jr .asm_11b148
-
-.asm_11b13d
- ld a, $2
- jr .asm_11b148
-
-.asm_11b141
- ld hl, wJumptableIndex
- ld a, $7
- ld [hl], a
- ret
-
-.asm_11b148
- call PlayClickSFX
- ld [wcd4b], a
- and a
- jr z, .asm_11b16c
- ld a, [wcf65]
- cp $0
- jr z, .asm_11b163
- cp $fe
- jr z, .asm_11b167
- cp $ff
- jr z, .asm_11b16b
- jp Function11ad8a
-
-.asm_11b163
- ld a, $1
- jr .asm_11b16c
-
-.asm_11b167
- ld a, $2
- jr .asm_11b16c
-
-.asm_11b16b
- xor a
-
-.asm_11b16c
- ld [wcd30], a
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; 11b175
-
-Function11b175: ; 11b175
- ld a, [wc7d3]
- ld d, a
- ld a, [wc7d2]
- ld e, a
- ld hl, hJoyLast
- ld a, [hl]
- and $40
- jr nz, .asm_11b19a
- ld a, [hl]
- and $80
- jr nz, .asm_11b1ae
- ld a, d
- cp e
- jr nc, .asm_11b1ed
- ld a, [hl]
- and $20
- jr nz, .asm_11b1c6
- ld a, [hl]
- and $10
- jr nz, .asm_11b1d8
- jr .asm_11b1ed
-
-.asm_11b19a
- ld hl, wc7d1
- ld a, [hl]
- and a
- jr z, .asm_11b1a4
- dec [hl]
- jr .asm_11b1ef
-
-.asm_11b1a4
- ld hl, wc7d0
- ld a, [hl]
- and a
- jr z, .asm_11b1ed
- dec [hl]
- jr .asm_11b1ef
-
-.asm_11b1ae
- ld hl, wc7d1
- ld a, [hl]
- inc a
- cp e
- jr nc, .asm_11b1ed
- cp d
- jr nc, .asm_11b1bc
- inc [hl]
- jr .asm_11b1ef
-
-.asm_11b1bc
- ld hl, wc7d0
- add [hl]
- cp e
- jr nc, .asm_11b1ed
- inc [hl]
- jr .asm_11b1ef
-
-.asm_11b1c6
- ld hl, wc7d0
- ld a, [hl]
- and a
- jr z, .asm_11b1ed
- cp d
- jr nc, .asm_11b1d4
- xor a
- ld [hl], a
- jr .asm_11b1ef
-
-.asm_11b1d4
- sub d
- ld [hl], a
- jr .asm_11b1ef
-
-.asm_11b1d8
- ld hl, wc7d0
- ld a, d
- add a
- add [hl]
- jr c, .asm_11b1e3
- cp e
- jr c, .asm_11b1e8
-
-.asm_11b1e3
- ld a, e
- sub d
- ld [hl], a
- jr .asm_11b1ef
-
-.asm_11b1e8
- ld a, [hl]
- add d
- ld [hl], a
- jr .asm_11b1ef
-
-.asm_11b1ed
- and a
- ret
-
-.asm_11b1ef
- call Function11b295
- call Function11b275
- scf
- ret
-; 11b1f7
-
-Function11b1f7: ; 11b1f7
- hlcoord 0, 0
- ld a, $32
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ret
-; 11b203
-
-Function11b203: ; 11b203
-.asm_11b203
- ld a, [de]
- cp $ff
- ret z
- inc de
- ld [hli], a
- jr .asm_11b203
-; 11b20b
-
-Function11b20b: ; 11b20b
- ld a, [wc7d1]
- ld hl, wc7d0
- add [hl]
- ld e, a
- ld d, $0
- ld hl, $c6d0
- add hl, de
- ld a, [hl]
- ld [wd265], a
- ret
-; 11b21e
-
-CheckCaughtMemMon: ; 11b21e
- push de
- push hl
- ld a, [wd265]
- dec a
- call CheckCaughtMon
- pop hl
- pop de
- ret
-; 11b22a
-
-CheckSeenMemMon: ; 11b22a
- push de
- push hl
- ld a, [wd265]
- dec a
- call CheckSeenMon
- pop hl
- pop de
- ret
-; 11b236
-
-Function11b236: ; 11b236
- jp FillBoxWithByte
-; 11b239
-
-Function11b239: ; 11b239
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 11b242
-
-Function11b242: ; 11b242
- hlcoord 3, 4
- ld de, StringBuffer3
- call PlaceString
- xor a
- ld [MonType], a
- callba GetGender
- hlcoord 1, 4
- ld a, [CurPartySpecies]
- ld bc, wcd2f
- ld [bc], a
- dec bc
- jr c, asm_11b26a
- jr z, asm_11b26f
- ld a, $1
- ld [bc], a
-
-Function11b267:
- ld [hl], $ef
- ret
-
-asm_11b26a
- xor a
- ld [bc], a
- ld [hl], $7f
- ret
-
-asm_11b26f
- ld a, $2
- ld [bc], a
-
-Function11b272:
- ld [hl], $f5
- ret
-; 11b275
-
-Function11b275: ; 11b275
- call Function11b279
- ret
-; 11b279
-
-Function11b279: ; 11b279
- ld a, [wd265]
- ld [CurSpecies], a
- call CheckSeenMemMon
- jr z, .asm_11b28f
- call GetBaseData
- ld a, [BaseGender]
- ld [wcf65], a
- jr .asm_11b294
-
-.asm_11b28f
- ld a, $ff
- ld [wcf65], a
-
-.asm_11b294
- ret
-; 11b295
-
-Function11b295: ; 11b295
- hlcoord 4, 13
- ld de, String_11b308
- call PlaceString
- hlcoord 4, 14
- ld de, String_11b308
- call PlaceString
- call Function11b20b
- call CheckSeenMemMon
- jr z, .asm_11b2d1
- ld a, [$c608]
- ld c, a
- ld a, [$c608 + 1]
- ld b, a
- ld hl, $0007
- add hl, bc
- xor a
- ld [hl], a
- ld hl, $0003
- add hl, bc
- ld e, [hl]
- callba FlyFunction_GetMonIcon
- hlcoord 4, 14
- push hl
- call GetPokemonName
- jr .asm_11b2e7
-
-.asm_11b2d1
- ld a, [$c608]
- ld c, a
- ld a, [$c608 + 1]
- ld b, a
- ld hl, $0007
- add hl, bc
- ld a, $50
- ld [hl], a
- hlcoord 4, 13
- push hl
- ld de, String_11b30e
-
-.asm_11b2e7
- ld a, $6
- ld bc, StringBuffer4
-.asm_11b2ec
- push af
- ld a, [de]
- ld [bc], a
- inc de
- inc bc
- pop af
- dec a
- and a
- jr nz, .asm_11b2ec
- pop hl
- ld de, StringBuffer4
- call PlaceString
- ret
-; 11b2fe
-
-String_11b2fe: ; 11b2fe
- db "あげる#@"
-; 11b303
-
-String_11b303: ; 11b303
- db "ほしい#@"
-; 11b308
-
-String_11b308: ; 11b308
- db " @"
-; 11b30e
-
-String_11b30e: ; 11b30e
- db "みはっけん@"
-; 11b314
-
-Function11b314: ; 11b314
- call Function11b31b
- call Function11b3d9
- ret
-; 11b31b
-
-Function11b31b: ; 11b31b
- ld hl, .Coords
- ld a, [wJumptableIndex]
- cp 2
- jr c, .tilemap_1
- ld a, [wc7d1]
- cp 4
- jr nc, .tilemap_3
- cp 3
- jr c, .tilemap_1
- ld a, [wJumptableIndex]
- cp 2
- jr z, .tilemap_1
- cp 3
- jr z, .tilemap_1
- cp 6
- jr z, .tilemap_1
-
- ld bc, .Tilemap2
- jr .load_sprites
-
-.tilemap_3
- ld bc, .Tilemap3
- jr .load_sprites
-
-.tilemap_1
- ld bc, .Tilemap1
-
-.load_sprites
- call Function11b397
- ret
-; 11b350
-
-.Coords:
- dbpixel 3, 11, 2, 6 ; 0
- dbpixel 3, 12, 2, 6 ; 1
- dbpixel 3, 13, 2, 6 ; 2
- dbpixel 3, 14, 2, 6 ; 3
- dbpixel 3, 15, 2, 6 ; 4
- dbpixel 3, 16, 2, 6 ; 5
- dbpixel 3, 17, 2, 6 ; 6
- dbpixel 4, 11, 2, 6 ; 7
- dbpixel 4, 12, 2, 6 ; 8
- dbpixel 4, 13, 2, 6 ; 9
- dbpixel 4, 14, 2, 6 ; 10
- dbpixel 4, 15, 2, 6 ; 11
- dbpixel 4, 16, 2, 6 ; 12
- dbpixel 4, 17, 2, 6 ; 13
- db -1
-
-.Tilemap1: ; vtiles
- db $30 ; 0
- db $31 ; 1
- db $31 ; 2
- db $31 ; 3
- db $31 ; 4
- db $31 ; 5
- db $32 ; 6
- db $40 ; 7
- db $41 ; 8
- db $41 ; 9
- db $41 ; 10
- db $41 ; 11
- db $41 ; 12
- db $42 ; 13
-
-.Tilemap2: ; vtiles
- db $30 ; 0
- db $31 ; 1
- db $31 ; 2
- db $39 ; 3
- db $39 ; 4
- db $39 ; 5
- db $39 ; 6
- db $40 ; 7
- db $41 ; 8
- db $41 ; 9
- db $39 ; 10
- db $39 ; 11
- db $39 ; 12
- db $39 ; 13
-
-.Tilemap3: ; vtiles
- db $39 ; 0
- db $39 ; 1
- db $39 ; 2
- db $39 ; 3
- db $39 ; 4
- db $39 ; 5
- db $39 ; 6
- db $39 ; 7
- db $39 ; 8
- db $39 ; 9
- db $39 ; 10
- db $39 ; 11
- db $39 ; 12
- db $39 ; 13
-
-Function11b397: ; 11b397
- ld de, Sprites
-.loop
- ld a, [hl]
- cp $ff
- ret z
- ld a, [wc7d1]
- and $7
- swap a
- add [hl]
- inc hl ; 1
- ld [de], a
- inc de
-
- ld a, [hli] ; 2
- ld [de], a
- inc de
-
- ld a, [bc]
- inc bc
- ld [de], a
- inc de
- ld a, $5 ; OBPal 5
- ld [de], a
- inc de
- jr .loop
-; 11b3b6
-
-Function11b3b6: ; 11b3b6
-; unreferenced
-.loop
- ld a, [hl]
- cp -1
- ret z
- ld a, [wcd4d]
- and $7
- swap a
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- push hl
- ld l, c
- ld h, b
- ld a, [wcd4e]
- add [hl]
- inc bc
- ld [de], a
- inc de
- pop hl
- ld a, $5
- ld [de], a
- inc de
- jr .loop
-; 11b3d9
-
-Function11b3d9: ; 11b3d9
- ld de, Sprites + 28 * 4
- push de
- ld a, [wc7d2]
- dec a
- ld e, a
- ld a, [wc7d1]
- ld hl, wc7d0
- add [hl]
- cp e
- jr z, .skip
- ld hl, 0
- ld bc, $70
- call AddNTimes
- ld e, l
- ld d, h
- ld b, 0
- ld a, d
- or e
- jr z, .load_sprites
- ld a, [wc7d2]
- ld c, a
-.loop1
- ld a, e
- sub c
- ld e, a
- ld a, d
- sbc $0
- ld d, a
- jr c, .load_sprites
- inc b
- jr .loop1
-
-.skip
- ld b, 14 * 8
-
-.load_sprites
- ld a, 2 * 8 + 5
- add b
- pop hl
- ld [hli], a
- cp $41
- jr c, .version1
- ld a, [wJumptableIndex]
- cp 4
- jr z, .version2
- cp 5
- jr z, .version2
- cp 7
- jr z, .version2
- cp 8
- jr z, .version2
-
-.version1
- ld a, 19 * 8 + 3
- ld [hli], a
- ld a, [wcd4c]
- add $3c
- ld [hli], a
- ld a, [wcd4c]
- add $1
- ld [hl], a
- ret
-
-.version2
- ld a, 19 * 8 + 3
- ld [hli], a
- ld a, $39
- ld [hli], a
- xor a
- ld [hl], a
- ret
-; 11b444
-
-Function11b444: ; 11b444
-; special
- call Mobile46_InitJumptable
- call Mobile46_RunJumptable
- ret
-; 11b44b
-
-Mobile46_InitJumptable: ; 11b44b
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- call UpdateTime
- ret
-; 11b45c
-
-Mobile46_RunJumptable: ; 11b45c
-.loop
- call .IterateJumptable
- call DelayFrame
- ld a, [wJumptableIndex]
- cp 4
- jr nz, .loop
- ret
-; 11b46a
-
-.IterateJumptable: ; 11b46a
- jumptable .Jumptable, wJumptableIndex
-
-.Jumptable:
- dw Function11b483
- dw Function11b570
- dw Function11b5c0
- dw Function11b5e0
- dw Function11b5e7 ; unused
-; 11b483
-
-Function11b483: ; 11b483
- call .InitRAM
- ld hl, PlayerName
- ld a, $5 ; Japanese Name Length
-.loop1
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop1
-
- ld de, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1Species
- ld a, [wcd82]
- dec a
- push af
-.loop2
- and a
- jr z, .okay
- add hl, de
- dec a
- jr .loop2
-
-.okay
- push bc
- ld a, PARTYMON_STRUCT_LENGTH
-.loop3
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop3
-
- pop de
- push bc
- ld a, [de]
- ld [CurSpecies], a
- call GetBaseData
- ld hl, MON_LEVEL
- add hl, de
- ld a, [hl]
- ld [CurPartyLevel], a
- ld hl, MON_MAXHP
- add hl, de
- push hl
- ld hl, MON_STAT_EXP - 1
- add hl, de
- pop de
- push de
- ld b, OTPARTYMON
- predef CalcPkmnStats
- pop de
- ld h, d
- ld l, e
- dec hl
- dec hl
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- pop bc
- ld de, NAME_LENGTH
- ld hl, PartyMonOT
- pop af
- push af
-.loop4
- and a
- jr z, .okay2
- add hl, de
- dec a
- jr .loop4
-
-.okay2
- ld a, NAME_LENGTH - 1
-.loop5
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop5
- ld de, NAME_LENGTH
- ld hl, PartyMonNicknames
- pop af
- push af
-.loop6
- and a
- jr z, .okay3
- add hl, de
- dec a
- jr .loop6
-
-.okay3
- ld a, NAME_LENGTH - 1
-.loop7
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop7
- ld de, MAIL_STRUCT_LENGTH
- ld hl, sPartyMail
- pop af
-.loop8
- and a
- jr z, .okay4
- add hl, de
- dec a
- jr .loop8
-
-.okay4
- ld a, $0 ; BANK(sPartyMail)
- call GetSRAMBank
- ld a, MAIL_STRUCT_LENGTH
-.loop9
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop9
- call CloseSRAM
- jp Function11ad8a
-
-.InitRAM:
- ld bc, $c626
- ld a, [PlayerID]
- ld [wcd2a], a
- ld [bc], a
- inc bc
-
- ld a, [PlayerID + 1]
- ld [wcd2b], a
- ld [bc], a
- inc bc
-
- ld a, [wSecretID]
- ld [wcd2c], a
- ld [bc], a
- inc bc
-
- ld a, [wSecretID + 1]
- ld [wcd2d], a
- ld [bc], a
- inc bc
-
- ld a, [wcd2e]
- ld [bc], a
- inc bc
-
- ld a, [wcd2f]
- ld [bc], a
- inc bc
-
- ld a, [wcd30]
- ld [bc], a
- inc bc
-
- ld a, [wd265]
- ld [bc], a
- inc bc
- ret
-; 11b570
-
-Function11b570: ; 11b570
- call Function118007
- ld a, [ScriptVar]
- and a
- jr nz, .exit
- call .SaveData
- jp Function11ad8a
-
-.exit
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.SaveData:
- ld a, $3
- ld [rSVBK], a
-
- ld hl, w3_d800
- ld de, $c608
- ld bc, w3_d88f - w3_d800
- call CopyBytes
-
- ld a, $1
- ld [rSVBK], a
- ld a, $5
- call GetSRAMBank
-
- ld de, $a800
- ld a, $1
- ld [de], a
- inc de
- ld hl, $c608
- ld bc, w3_d88f - w3_d800
- call CopyBytes
-
- push de
- pop hl
-
- ld a, [hRTCMinutes]
- ld [hli], a
- ld a, [hRTCHours]
- ld [hli], a
- ld a, [hRTCDayLo]
- ld [hli], a
- ld a, [hRTCDayHi]
- ld [hl], a
-
- call CloseSRAM
- ret
-; 11b5c0
-
-Function11b5c0: ; 11b5c0
- ld a, [wcd82]
- dec a
- ld [CurPartyMon], a
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- callba RemoveMonFromPartyOrBox
- callba Function170807
- callba SaveAfterLinkTrade
- jp Function11ad8a
-; 11b5e0
-
-Function11b5e0: ; 11b5e0
- xor a
- ld [ScriptVar], a
- jp Function11ad8a
-; 11b5e7
-
-Function11b5e7: ; 11b5e7
- ret
-; 11b5e8
-
-Function11b5e8: ; 11b5e8
- ld a, $0
- call GetSRAMBank
- ld hl, wRTC
- ld de, $c608
- ld bc, 4
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $c608
- ld de, $b08c
- ld bc, 4
- call CopyBytes
- ld a, $2
- ld [$a800], a
- ld a, [$a81f]
- ld [wcd2a], a
- ld a, [$a820]
- ld [wcd2b], a
- ld a, [$a821]
- ld [wcd2c], a
- ld a, [$a822]
- ld [wcd2d], a
- ld a, [$a823]
- ld [wcd2e], a
- ld a, [$a824]
- ld [wcd2f], a
- ld a, [$a825]
- ld [wcd30], a
- ld a, [$a826]
- ld [wcd31], a
- call CloseSRAM
- call Mobile46_InitJumptable
- call .loop
- ret
-
-.loop
- call .RunJumptable
- call DelayFrame
- ld a, [wJumptableIndex]
- cp $1
- jr nz, .loop
- ret
-
-.RunJumptable:
- jumptable .Jumptable, wJumptableIndex
-.Jumptable:
- dw Function11b66d
- dw Function11b6b3
-; 11b66d
-
-Function11b66d: ; 11b66d
- call Function1180b8
- ld a, [ScriptVar]
- and a
- jr nz, .asm_11b6b0
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [w3_d090]
- ld b, a
- pop af
- ld [rSVBK], a
- ld a, b
- and a
- jr z, .asm_11b691
- cp $1
- jr nz, .asm_11b6b0
- call Function11b6b4
- jr .asm_11b6b0
-
-.asm_11b691
- callba Function17081d
- ld a, [ScriptVar]
- and a
- jr z, .asm_11b6b0
- xor a
- ld [ScriptVar], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, $2
- ld [w3_d090], a
- pop af
- ld [rSVBK], a
-
-.asm_11b6b0
- jp Function11ad8a
-; 11b6b3
-
-Function11b6b3: ; 11b6b3
- ret
-; 11b6b4
-
-Function11b6b4: ; 11b6b4
- ld a, $5
- call GetSRAMBank
- ld a, [wcd30]
- ld [$c708], a
- ld a, [wcd31]
- ld [$c709], a
-
- ld a, $c708 % $100
- ld [wMobileMonSpeciesPointerBuffer], a
- ld a, $c708 / $100
- ld [wMobileMonSpeciesPointerBuffer + 1], a
-
- ld a, $c60d % $100 ; Partymon Struct
- ld [wMobileMonStructurePointerBuffer], a
- ld a, $c60d / $100
- ld [wMobileMonStructurePointerBuffer + 1], a
-
- ld a, $c63d % $100 ; OT
- ld [wMobileMonOTNamePointerBuffer], a
- ld a, $c63d / $100
- ld [wMobileMonOTNamePointerBuffer + 1], a
-
- ld a, $c642 % $100 ; Nickname
- ld [wMobileMonNicknamePointerBuffer], a
- ld a, $c642 / $100
- ld [wMobileMonNicknamePointerBuffer + 1], a
-
- ld a, $c647 % $100 ; ???
- ld [wMobileMonMailPointerBuffer], a
- ld a, $c647 / $100
- ld [wMobileMonMailPointerBuffer + 1], a
-
- ld a, $46
- ld [$c628], a
-
- ld de, $c63d
- ld c, 5
- callba CheckStringForErrors
- jr nc, .length_check_OT
- callba Mobile_CopyDefaultOTName
-
-.length_check_OT
- ld de, $c63d
- lb bc, 1, 5
- callba CheckStringContainsLessThanBNextCharacters
- jr nc, .error_check_nick
- callba Mobile_CopyDefaultOTName
-
-.error_check_nick
- ld de, $c642
- ld c, 5
- callba CheckStringForErrors
- jr nc, .length_check_nick
- callba Mobile_CopyDefaultNickname
-
-.length_check_nick
- ld de, $c642
- lb bc, 1, 5
- callba CheckStringContainsLessThanBNextCharacters
- jr nc, .error_check_mail
- callba Mobile_CopyDefaultNickname
-
-.error_check_mail
- ld de, $c647
- ld c, MAIL_MSG_LENGTH + 1
- callba CheckStringForErrors
- jr nc, .length_check_mail
- callba Mobile_CopyDefaultMail
-
-.length_check_mail
- ld de, $c647
- lb bc, 2, MAIL_MSG_LENGTH + 1
- callba CheckStringContainsLessThanBNextCharacters
- jr c, .fix_mail
- ld a, b
- cp $2
- jr nz, .mail_ok
-
-.fix_mail
- callba Mobile_CopyDefaultMail
-
-.mail_ok
- ld de, $c668
- ld c, $5
- callba CheckStringForErrors
- jr nc, .length_check_author
- callba Mobile_CopyDefaultMailAuthor
-
-.length_check_author
- ld de, $c668
- lb bc, 1, 5
- callba CheckStringContainsLessThanBNextCharacters
- jr nc, .author_okay
- callba Mobile_CopyDefaultMailAuthor
-
-.author_okay
- ld a, [$c60e]
- cp -1
- jr nz, .item_okay
- xor a
- ld [$c60e], a
-
-.item_okay
- ld a, [wcd31]
- ld [$c60d], a
- ld [CurSpecies], a
- call GetBaseData
-
- ld hl, $c60d + MON_LEVEL
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .replace_level
- ld a, [hl]
- cp MAX_LEVEL
- jr c, .done_level
- ld a, MAX_LEVEL
-.replace_level
- ld [hl], a
-.done_level
- ld [CurPartyLevel], a
-
- ld hl, $c60d + MON_STAT_EXP - 1
- ld de, $c60d + MON_MAXHP
- ld b, $1
- predef CalcPkmnStats
- ld de, $c60d + MON_MAXHP
- ld hl, $c60d + MON_HP
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- call AddMobileMonToParty
- ret
-; 11b7e5
-
-Function11b7e5: ; 11b7e5
- ld a, [$c60d] ; species
- ld [wOTTrademonSpecies], a
- ld [CurPartySpecies], a
- ld a, [wcd81]
- ld [wc74e], a
- ld hl, $c63d ; OT
- ld de, wOTTrademonOTName
- ld bc, 5
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld a, [$c60d + MON_ID] ; id
- ld [wOTTrademonID], a
- ld a, [$c60d + MON_ID + 1]
- ld [wOTTrademonID + 1], a
- ld hl, $c60d + MON_DVS ; dvs
- ld a, [hli]
- ld [wOTTrademonDVs], a
- ld a, [hl]
- ld [wOTTrademonDVs + 1], a
- ld bc, $c60d ; pokemon_data_start
- callba GetCaughtGender
- ld a, c
- ld [wOTTrademonCaughtData], a
- call SpeechTextBox
- call FadeToMenu
- callba MobileTradeAnimation_ReceiveGetmonFromGTS
- callba Function17d1f1
- ld a, $1
- ld [wForceEvolution], a
- ld a, $2
- ld [wLinkMode], a
- callba EvolvePokemon
- xor a
- ld [wLinkMode], a
- callba SaveAfterLinkTrade
- ld a, $5
- call GetSRAMBank
- ld a, $5
- ld [$a800], a
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .asm_11b872
- ld a, $1
- ld [de], a
-
-.asm_11b872
- call CloseSubmenu
- call RestartMapMusic
- ret
-; 11b879
-
-Function11b879: ; 11b879
- callba BattleTower_CheckSaveFileExistsAndIsYours
- ld a, [ScriptVar]
- and a
- ret z
- ld a, $5
- call GetSRAMBank
- ld a, [$a800]
- ld [ScriptVar], a
- ld a, [$a890]
- ld [wcd49], a
- ld a, [$a891]
- ld [wcd4a], a
- ld a, [$a892]
- ld [wcd4b], a
- ld a, [$a893]
- ld [wcd4c], a
- call CloseSRAM
- ld a, [ScriptVar]
- and a
- ret z
- ld hl, wcd4c
- ld a, [hRTCDayHi]
- cp [hl]
- ret nz
- dec hl
- ld a, [hRTCDayLo]
- cp [hl]
- ret nz
- ld hl, wcd4a
- ld a, [hRTCHours]
- cp [hl]
- jr nc, .asm_11b8d8
- ld a, $18
- sub [hl]
- ld hl, hRTCHours
- add [hl]
- ld [wcd4c], a
- ld a, [hRTCMinutes]
- ld [wcd4b], a
- xor a
- ld [wcd4a], a
- jr .asm_11b8e2
-
-.asm_11b8d8
- ld a, [hRTCMinutes]
- ld [wcd4b], a
- ld a, [hRTCHours]
- ld [wcd4c], a
-
-.asm_11b8e2
- xor a
- ld l, a
- ld h, a
- ld b, a
- ld d, a
- ld a, [wcd4b]
- ld e, a
- ld a, [wcd4c]
- ld c, $3c
- call AddNTimes
- add hl, de
- push hl
- xor a
- ld l, a
- ld h, a
- ld b, a
- ld d, a
- ld a, [wcd49]
- ld e, a
- ld a, [wcd4a]
- ld c, $3c
- call AddNTimes
- add hl, de
- ld a, l
- cpl
- add $1
- ld e, a
- ld a, h
- cpl
- adc $0
- ld d, a
- pop hl
- add hl, de
- ld de, $ff88
- add hl, de
- bit 7, h
- ret z
- ld a, $2
- ld [ScriptVar], a
- ret
-; 11b920
-
-Function11b920: ; 11b920
- call Mobile46_InitJumptable
- ld a, $5
- call GetSRAMBank
- ld hl, $a81f
- ld de, $c626
- ld bc, 8
- call CopyBytes
- call CloseSRAM
- call Function118000
- ret
-; 11b93b
-
-Function11b93b: ; 11b93b
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- ld hl, $a823
- ld de, $c608
- ld bc, $008f
- call CopyBytes
- call CloseSRAM
-
- ld a, $c608 % $100
- ld [wMobileMonSpeciesPointerBuffer], a
- ld a, $c608 / $100
- ld [wMobileMonSpeciesPointerBuffer + 1], a
-
- ld a, $c611 % $100
- ld [wMobileMonStructurePointerBuffer], a
- ld a, $c611 / $100
- ld [wMobileMonStructurePointerBuffer + 1], a
-
- ld a, $c641 % $100
- ld [wMobileMonOTNamePointerBuffer], a
- ld a, $c641 / $100
- ld [wMobileMonOTNamePointerBuffer + 1], a
-
- ld a, $c646 % $100
- ld [wMobileMonNicknamePointerBuffer], a
- ld a, $c646 / $100
- ld [wMobileMonNicknamePointerBuffer + 1], a
-
- ld a, $c64b % $100
- ld [wMobileMonMailPointerBuffer], a
- ld a, $c64b / $100
- ld [wMobileMonMailPointerBuffer + 1], a
- call AddMobileMonToParty
- callba SaveAfterLinkTrade
- ret
-; 11b98f
-
-AddMobileMonToParty: ; 11b98f
- ld hl, PartyCount
- ld a, [hl]
- ld e, a
- inc [hl]
-
- ld a, [wMobileMonSpeciesPointerBuffer]
- ld l, a
- ld a, [wMobileMonSpeciesPointerBuffer + 1]
- ld h, a
- inc hl
- ld bc, PartySpecies
- ld d, e
-.loop1
- inc bc
- dec d
- jr nz, .loop1
- ld a, e
- ld [CurPartyMon], a
- ld a, [hl]
- ld [bc], a
- inc bc
- ld a, -1
- ld [bc], a
-
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, e
- ld [wMobileMonSpeciesBuffer], a
-.loop2
- add hl, bc
- dec a
- and a
- jr nz, .loop2
- ld e, l
- ld d, h
- ld a, [wMobileMonStructurePointerBuffer]
- ld l, a
- ld a, [wMobileMonStructurePointerBuffer + 1]
- ld h, a
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
-
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- ld a, [wMobileMonSpeciesBuffer]
-.loop3
- add hl, bc
- dec a
- and a
- jr nz, .loop3
- ld e, l
- ld d, h
- ld a, [wMobileMonOTNamePointerBuffer]
- ld l, a
- ld a, [wMobileMonOTNamePointerBuffer + 1]
- ld h, a
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [de], a
-
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- ld a, [wMobileMonSpeciesBuffer]
-.loop4
- add hl, bc
- dec a
- and a
- jr nz, .loop4
- ld e, l
- ld d, h
- ld a, [wMobileMonNicknamePointerBuffer]
- ld l, a
- ld a, [wMobileMonNicknamePointerBuffer + 1]
- ld h, a
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [de], a
-
- ld hl, sPartyMail
- ld bc, MAIL_STRUCT_LENGTH
- ld a, [wMobileMonSpeciesBuffer]
-.loop5
- add hl, bc
- dec a
- and a
- jr nz, .loop5
- ld a, BANK(sPartyMail)
- call GetSRAMBank
- ld e, l
- ld d, h
- ld a, [wMobileMonMailPointerBuffer]
- ld l, a
- ld a, [wMobileMonMailPointerBuffer + 1]
- ld h, a
- ld bc, MAIL_STRUCT_LENGTH
- call CopyBytes
-
- call CloseSRAM
- ret
-; 11ba38
-
-Function11ba38: ; 11ba38
- callba CheckCurPartyMonFainted
- ret c
- xor a
- ld [ScriptVar], a
- ret
-; 11ba44
-
-TilemapPack_11ba44:
- db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 ; 00
- db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 ; 01
- db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 ; 02
- db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 ; 03
- db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 ; 04
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 ; 05
- db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 ; 06
- db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f ; 07
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e ; 08
- db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 ; 09
- db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 ; 0a
- db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 ; 0b
- db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 ; 0c
- db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 ; 0d
- db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 ; 0e
- db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 ; 0f
- db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 ; 10
- db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 ; 11
- db $4a, $30, $0a, $0a, $61, $62, $0a, $58 ; 12
- db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 ; 13
- db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 ; 14
- db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 ; 15
- db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 ; 16
- db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 ; 17
- db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 ; 18
- db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 ; 19
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 ; 1a
- db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 ; 1b
- db $4a, $2f, $68, $87, $88, $89, $0a, $58 ; 1c
- db $4a, $3d, $6e, $6f, $70, $75, $76, $58 ; 1d
- db $4a, $30, $75, $76, $5c, $5d, $5e, $58 ; 1e
- db $4a, $2f, $71, $72, $73, $74, $6d, $58 ; 1f
- db $4a, $3d, $75, $76, $77, $8a, $8b, $58 ; 20
- db $4a, $30, $66, $67, $65, $0a, $6a, $58 ; 21
- db $4a, $2f, $83, $84, $0a, $83, $84, $58 ; 22
- db $4a, $3d, $0a, $85, $82, $84, $0a, $58 ; 23
- db $4a, $30, $41, $80, $40, $0a, $0a, $58 ; 24
- db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 ; 25
- db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 ; 26
- db -1
-
-TilemapPack_11bb7d:
- db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 ; 00
- db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 01
- db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 02
- db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 03
- db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 04
- db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 05
- db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 06
- db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 ; 07
- db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 ; 08
- db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 ; 09
- db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 ; 0a
- db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 ; 0b
- db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 ; 0c
- db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 ; 0d
- db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 ; 0e
- db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 ; 0f
- db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 ; 10
- db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 ; 11
- db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 ; 12
- db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 ; 13
- db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 ; 14
- db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 15
- db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 ; 16
- db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 ; 17
- db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 ; 18
- db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 ; 19
- db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1a
- db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 ; 1b
- db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 ; 1c
- db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1d
- db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 ; 1e
- db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 ; 1f
- db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 20
- db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 ; 21
- db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 ; 22
- db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 ; 23
- db -1
-
-
--- a/misc/mobile_5b.asm
+++ /dev/null
@@ -1,833 +1,0 @@
-Function16c000: ; 16c000
-; unreferenced
- ; Only for CGB
- ld a, [hCGB]
- and a
- ret z
- ; Only do this once per boot cycle
- ld a, [hFFEA]
- and a
- ret z
- ; Set some flag, preserving the old state
- ld a, [wcfbe]
- push af
- set 7, a
- ld [wcfbe], a
- ; Do stuff
- call MobileSystemSplashScreen_InitGFX ; Load GFX
- callba SetRAMStateForMobile
- callba EnableMobile
- call .RunJumptable
- callba DisableMobile
- ; Prevent this routine from running again
- ; until the next time the syatem is turned on
- xor a
- ld [hFFEA], a
- ; Restore the flag state
- pop af
- ld [wcfbe], a
- ret
-; 16c031
-
-.RunJumptable: ; 16c031
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wd002], a
- ld [wd003], a
-.loop
- call DelayFrame
- callba Function10635c
- ld a, [wd002]
- ld hl, .Jumptable
- rst JumpTable
- call Function16cb2e
- call Function16cbae
- ld a, [wd002]
- cp $ff
- jr nz, .loop
- ret
-; 16c05c
-
-.Jumptable: ; 16c05c
- dw .init
- dw Function16c0ba
- dw Function16c089
- dw Function16c09e
- dw Function16c0a8
- dw Function16c0dc
- dw Function16c0ec
- dw Function16c0ba
- dw Function16c0ca
- dw Function16c0dc
- dw Function16c0ec
- dw .quit
-; 16c074
-
-.init ; 16c074
- ld a, [wcf64]
- and a
- ret z
- ld [wd002], a
- xor a
- ld [wd003], a
- ret
-; 16c081
-
-.quit ; 16c081
- push af
- ld a, $ff
- ld [wd002], a
- pop af
- ret
-; 16c089
-
-Function16c089: ; 16c089
- ld a, $1
- ld [Buffer2], a
- ld [wd1f1], a
- xor a
- ld [hWY], a
- call Function16c0fa
- ld a, [wd002]
- ld [wcf64], a
- ret
-; 16c09e
-
-Function16c09e: ; 16c09e
- ld a, [wcf64]
- cp $4
- ret nz
- call Function16c0fa
- ret
-; 16c0a8
-
-Function16c0a8: ; 16c0a8
- xor a
- ld [Buffer2], a
- ld [wd1f1], a
- call ClearSprites
- ld a, $90
- ld [hWY], a
- call Function16c0fa
- ret
-; 16c0ba
-
-Function16c0ba: ; 16c0ba
- call Function16c943
- push af
- ld a, [wd003]
- inc a
- ld [wd003], a
- pop af
- call c, Function16c0fa
- ret
-; 16c0ca
-
-Function16c0ca: ; 16c0ca
- ld a, [wd003]
- cp $28
- push af
- ld a, [wd003]
- inc a
- ld [wd003], a
- pop af
- call z, Function16c0fa
- ret
-; 16c0dc
-
-Function16c0dc: ; 16c0dc
- call Function16ca11
- push af
- ld a, [wd003]
- inc a
- ld [wd003], a
- pop af
- call c, Function16c0fa
- ret
-; 16c0ec
-
-Function16c0ec: ; 16c0ec
- call ClearBGPalettes
- call ClearScreen
- push af
- ld a, $ff
- ld [wd002], a
- pop af
- ret
-; 16c0fa
-
-Function16c0fa: ; 16c0fa
- push af
- ld a, [wd002]
- inc a
- ld [wd002], a
- xor a
- ld [wd003], a
- pop af
- ret
-; 16c108
-
-MobileSystemSplashScreen_InitGFX: ; 16c108
- call DisableLCD
- ld hl, VTiles2
- ld de, .Tiles
- lb bc, BANK(.Tiles), $68
- call Get2bpp
- call .LoadPals
- call .LoadTileMap
- call .LoadAttrMap
- hlbgcoord 0, 0
- call Function16cc73
- call Function16cc02
- xor a
- ld [hBGMapMode], a
- call EnableLCD
- ret
-; 16c130
-
-.LoadPals: ; 16c130
- ld de, UnknBGPals
- ld hl, UnknownMobilePalettes_16c903
- ld bc, 8
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- ret
-; 16c145
-
-.LoadTileMap: ; 16c145
- hlcoord 0, 0
- ld bc, 20
- xor a
- call ByteFill
- ld hl, .TileMap
- decoord 0, 1
- ld bc, $0154
- call CopyBytes
- ret
-; 16c15c
-
-.LoadAttrMap: ; 16c15c
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH
- xor a
- call ByteFill
- ld hl, .AttrMap
- decoord 0, 1, AttrMap
- ld bc, 17 * SCREEN_WIDTH
- call CopyBytes
- ret
-; 16c173
-
-.Tiles:
-INCBIN "gfx/unknown/mobile_splash.2bpp"
-
-.TileMap:
-INCBIN "gfx/unknown/mobile_splash.tilemap"
-
-.AttrMap:
-INCBIN "gfx/unknown/mobile_splash.attrmap"
-
-UnknownMobilePalettes_16c903: ; 16c903
-INCLUDE "gfx/unknown/16c903.pal"
-
-; 16c943
-
-Function16c943: ; 16c943
- ld a, [wd003]
- and a
- jr nz, .asm_16c95e
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, $ff
- ld bc, $0008
- ld hl, UnknBGPals
- call ByteFill
- pop af
- ld [rSVBK], a
-
-.asm_16c95e
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld e, $0
- ld a, $0
-.asm_16c969
- ld hl, UnknownMobilePalettes_16c903
- call Function16cab6
- call Function16cabb
- ld d, a
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cabb
- cp d
- jr z, .asm_16c991
- ld b, $1
-.asm_16c981
- dec a
- cp d
- jr z, .asm_16c988
- dec b
- jr nz, .asm_16c981
-
-.asm_16c988
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cadc
-
-.asm_16c991
- ld hl, UnknownMobilePalettes_16c903
- call Function16cab6
- call Function16cad8
- ld d, a
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cad8
- cp d
- jr z, .asm_16c9b9
- ld b, $1
-.asm_16c9a9
- dec a
- cp d
- jr z, .asm_16c9b0
- dec b
- jr nz, .asm_16c9a9
-
-.asm_16c9b0
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cb08
-
-.asm_16c9b9
- ld hl, UnknownMobilePalettes_16c903
- call Function16cab6
- call Function16cac4
- ld d, a
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cac4
- cp d
- jr z, .asm_16c9e1
- ld b, $1
-.asm_16c9d1
- dec a
- cp d
- jr z, .asm_16c9d8
- dec b
- jr nz, .asm_16c9d1
-
-.asm_16c9d8
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cae8
-
-.asm_16c9e1
- inc e
- inc e
- ld a, e
- cp $8
- jr nz, .asm_16c969
- callba ApplyPals
- call SetPalettes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [wd003]
- cp $1f
- jr z, .asm_16ca09
- pop af
- ld [rSVBK], a
- ld e, $0
- pop af
- ld [rSVBK], a
- and a
- ret
-
-.asm_16ca09
- pop af
- ld [rSVBK], a
- pop af
- ld [rSVBK], a
- scf
- ret
-; 16ca11
-
-Function16ca11: ; 16ca11
- ld a, [wd003]
- and a
- jr nz, .asm_16ca1d
- callba ApplyPals
-
-.asm_16ca1d
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld e, $0
- ld a, $0
-.asm_16ca28
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cabb
- cp $1f
- jr z, .asm_16ca48
- ld b, $1
-.asm_16ca37
- inc a
- cp $1f
- jr z, .asm_16ca3f
- dec b
- jr nz, .asm_16ca37
-
-.asm_16ca3f
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cadc
-
-.asm_16ca48
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cad8
- cp $1f
- jr z, .asm_16ca68
- ld b, $1
-.asm_16ca57
- inc a
- cp $1f
- jr z, .asm_16ca5f
- dec b
- jr nz, .asm_16ca57
-
-.asm_16ca5f
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cb08
-
-.asm_16ca68
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cac4
- cp $1f
- jr z, .asm_16ca88
- ld b, $1
-.asm_16ca77
- inc a
- cp $1f
- jr z, .asm_16ca7f
- dec b
- jr nz, .asm_16ca77
-
-.asm_16ca7f
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cae8
-
-.asm_16ca88
- inc e
- inc e
- ld a, e
- cp $8
- jr nz, .asm_16ca28
- callba ApplyPals
- call SetPalettes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [wd003]
- cp $1f
- jr z, .asm_16caae
- pop af
- ld [rSVBK], a
- pop af
- ld [rSVBK], a
- and a
- ret
-
-.asm_16caae
- pop af
- ld [rSVBK], a
- pop af
- ld [rSVBK], a
- scf
- ret
-; 16cab6
-
-Function16cab6: ; 16cab6
- ld b, $0
- ld c, e
- add hl, bc
- ret
-; 16cabb
-
-Function16cabb: ; 16cabb
- inc hl
- ld a, [hl]
- srl a
- srl a
- and $1f
- ret
-; 16cac4
-
-Function16cac4: ; 16cac4
- inc hl
- ld a, [hld]
- and $3
- ld b, a
- ld a, [hl]
- sla a
- rl b
- sla a
- rl b
- sla a
- rl b
- ld a, b
- ret
-; 16cad8
-
-Function16cad8: ; 16cad8
- ld a, [hl]
- and $1f
- ret
-; 16cadc
-
-Function16cadc: ; 16cadc
- sla a
- sla a
- ld b, a
- inc hl
- ld a, [hl]
- and $83
- or b
- ld [hl], a
- ret
-; 16cae8
-
-Function16cae8: ; 16cae8
- ld c, a
- srl a
- srl a
- srl a
- ld b, a
- inc hl
- ld a, [hl]
- and $fc
- or b
- ld [hld], a
- ld a, c
- sla a
- sla a
- sla a
- sla a
- sla a
- ld b, a
- ld a, [hl]
- and $1f
- or b
- ld [hl], a
- ret
-; 16cb08
-
-Function16cb08: ; 16cb08
- ld b, a
- ld a, [hl]
- and $e0
- or b
- ld [hl], a
- ret
-; 16cb0f
-
-Function16cb0f: ; 16cb0f
- xor a
- ld [Buffer1], a
- ld [Buffer2], a
- xor a
- ld [wd1ec], a
- ld a, $70
- ld [wd1ee], a
- ld a, $4
- ld [wd1ed], a
- ld a, $a0
- ld [wd1ef], a
- xor a
- ld [wd1f0], a
- ret
-; 16cb2e
-
-Function16cb2e: ; 16cb2e
- ld a, [Buffer2]
- and a
- ret z
- call Function16cb40
- ld hl, Unknown_16cb86
- ld de, Sprites
- call Function16cb5d
- ret
-; 16cb40
-
-Function16cb40: ; 16cb40
- ld hl, wd1ec
- inc [hl]
- ld a, [hl]
- cp $18
- ret c
- xor a
- ld [hl], a
- ld a, [wd1ef]
- cp $a0
- jr nz, .asm_16cb57
- ld a, $a7
- ld [wd1ef], a
- ret
-
-.asm_16cb57
- ld a, $a0
- ld [wd1ef], a
- ret
-; 16cb5d
-
-Function16cb5d: ; 16cb5d
- ld a, [hli]
- and a
- ret z
-.asm_16cb60
- push af
- ld a, [wd1ee]
- add [hl]
- add $10
- ld [de], a
- inc hl
- inc de
- ld a, [wd1ed]
- add [hl]
- add $8
- ld [de], a
- inc hl
- inc de
- ld a, [wd1ef]
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [wd1f0]
- or [hl]
- ld [de], a
- inc hl
- inc de
- pop af
- dec a
- jr nz, .asm_16cb60
- ret
-; 16cb86
-
-Unknown_16cb86:
- db 7
- db 0, 0, 0, 1
- db 8, 0, 1, 1
- db 8, 8, 2, 0
- db 8, 16, 3, 0
- db 16, 0, 4, 1
- db 16, 8, 5, 0
- db 16, 16, 6, 0
-; 16cba3
-
-Function16cba3: ; 16cba3
- xor a
- ld [wd1f1], a
- ld [wd1f2], a
- ld [wd1f3], a
- ret
-; 16cbae
-
-Function16cbae: ; 16cbae
- ld a, [wd1f1]
- and a
- ret z
- call Function16cbba
- call Function16cbd1
- ret
-; 16cbba
-
-Function16cbba: ; 16cbba
- ld hl, wd1f2
- inc [hl]
- ld a, [hl]
- cp $c
- ret c
- xor a
- ld [hl], a
- ld a, [wd1f3]
- inc a
- cp $4
- jr c, .asm_16cbcd
- xor a
-
-.asm_16cbcd
- ld [wd1f3], a
- ret
-; 16cbd1
-
-Function16cbd1: ; 16cbd1
- ld a, [wd1f3]
- ld c, a
- ld b, 0
- ld hl, Unknown_16cbfb
- add hl, bc
- ld a, [hl]
- ld bc, 2
- ld hl, Unknown_16cfa3
- call AddNTimes
- ld de, UnknBGPals + 1 palettes + 4
- ld bc, 2
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 16cbfb
-
-Unknown_16cbfb:
- db 0, 1, 2, 1, 0, 1, 2
-; 16cc02
-
-Function16cc02: ; 16cc02
- call Function16cc18
- call Function16cc49
- call Function16cc62
- call Function16cc25
- call Function16cc6e
- call Function16cb0f
- call Function16cba3
- ret
-; 16cc18
-
-Function16cc18: ; 16cc18
- ld hl, VTiles1
- ld de, GFX_16cca3
- lb bc, BANK(GFX_16cca3), $2e
- call Get2bpp
- ret
-; 16cc25
-
-Function16cc25: ; 16cc25
- ld hl, Unknown_16cfa9
- ld de, UnknBGPals + 1 palettes
- call .CopyPal
- ld hl, Unknown_16cfb1
- ld de, UnknOBPals
- call .CopyPal
- ld hl, Unknown_16cfb9
- ld de, UnknOBPals + 1 palettes
- call .CopyPal
- ret
-; 16cc41
-
-.CopyPal: ; 16cc41
- ld bc, 1 palettes
- ld a, $5
- jp FarCopyWRAM
-; 16cc49
-
-Function16cc49: ; 16cc49
- hlcoord 4, 15
- ld a, $80
- call Function16cc5a
- hlcoord 4, 16
- ld a, $90
- call Function16cc5a
- ret
-; 16cc5a
-
-Function16cc5a: ; 16cc5a
- ld c, $10
-.asm_16cc5c
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_16cc5c
- ret
-; 16cc62
-
-Function16cc62: ; 16cc62
- hlcoord 0, 15, AttrMap
- ld bc, $0028
- ld a, $1
- call ByteFill
- ret
-; 16cc6e
-
-Function16cc6e: ; 16cc6e
- hlbgcoord 0, 0, VBGMap1
- jr Function16cc73
-
-Function16cc73:
- ld a, [rVBK]
- push af
- ld a, $0
- ld [rVBK], a
- push hl
- decoord 0, 0
- call Function16cc90
- pop hl
- ld a, $1
- ld [rVBK], a
- decoord 0, 0, AttrMap
- call Function16cc90
- pop af
- ld [rVBK], a
- ret
-; 16cc90
-
-Function16cc90: ; 16cc90
- ld bc, $1214
-.asm_16cc93
- push bc
-.asm_16cc94
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_16cc94
- ld bc, $000c
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_16cc93
- ret
-; 16cca3
-
-GFX_16cca3:
-INCBIN "gfx/unknown/16cca3.2bpp"
-
-Unknown_16cfa3:
- RGB 31, 31, 31
- RGB 25, 27, 29
- RGB 16, 19, 25
-
-Unknown_16cfa9:
- RGB 31, 31, 31
- RGB 25, 27, 29
- RGB 31, 31, 31
- RGB 07, 07, 07
-
-
-Unknown_16cfb1:
- RGB 31, 31, 31
- RGB 13, 09, 18
- RGB 26, 21, 16
- RGB 07, 07, 07
-
-
-Unknown_16cfb9:
- RGB 31, 31, 31
- RGB 18, 05, 02
- RGB 27, 11, 12
- RGB 07, 07, 07
-
-; 16cfc1
--- a/misc/mobile_5c.asm
+++ /dev/null
@@ -1,944 +1,0 @@
-Function170000: ; 170000
- ld a, [$c62b]
- ld [wPlayerTrademonSpecies], a
- ld hl, $c62e
- ld de, wPlayerTrademonSenderName
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, $c663
- ld de, wPlayerTrademonOTName
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, $c648
- ld a, [hli]
- ld [wPlayerTrademonDVs], a
- ld a, [hl]
- ld [wPlayerTrademonDVs + 1], a
- ld hl, $c639
- ld a, [hli]
- ld [wPlayerTrademonID], a
- ld a, [hl]
- ld [wPlayerTrademonID + 1], a
- ld bc, $c633
- callba GetCaughtGender
- ld a, c
- ld [wPlayerTrademonCaughtData], a
- ld a, [wcd81]
- ld [wc74e], a
- ld hl, $c608
- ld de, $d800
- ld bc, $008f
- call CopyBytes
- ret
-
-; 17005a
-
-Function17005a: ; 17005a
- ld a, $5
- call GetSRAMBank
- ld a, [$a824]
- ld [wOTTrademonSpecies], a
- ld hl, $a827
- ld de, wOTTrademonSenderName
- ld bc, 5 ; Japanese Name Length
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld hl, $a85c
- ld de, wOTTrademonOTName
- ld bc, 5 ; Japanese Name Length
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld hl, $a841
- ld a, [hli]
- ld [wOTTrademonDVs], a
- ld a, [hl]
- ld [wOTTrademonDVs + 1], a
- ld hl, $a832
- ld a, [hli]
- ld [wOTTrademonID], a
- ld a, [hl]
- ld [wOTTrademonID + 1], a
- ld bc, $a82c
- callba GetCaughtGender
- ld a, c
- ld [wOTTrademonCaughtData], a
- ld a, [wcd81]
- ld [wc74e], a
- call CloseSRAM
- ret
-
-; 1700b0
-
-INCLUDE "misc/battle_tower_5c.asm"
-
-Function170be4: ; 170be4
- ld a, $5
- call GetSRAMBank
- xor a
- ld hl, $a894
- ld bc, $0008
- call ByteFill
- call CloseSRAM
- ret
-
-; 170bf7
-
-Clears5_a89a: ; 170bf7
- ld a, $5
- call GetSRAMBank
- ld hl, $a89a
- xor a
- ld [hli], a
- ld [hl], a
- call CloseSRAM
- ret
-
-; 170c06
-
-Function170c06: ; 170c06
- ld a, $5
- call GetSRAMBank
- ld hl, $a894
- ld a, [wBattleResult]
- and a
- jr nz, .asm_170c15
- inc [hl]
-
-.asm_170c15
- inc hl
- inc hl
- ld a, [$a89b]
- add [hl]
- ld [hld], a
- ld a, [$a89a]
- adc [hl]
- ld [hli], a
- jr nc, .asm_170c27
- ld a, $ff
- ld [hld], a
- ld [hli], a
-
-.asm_170c27
- inc hl
- push hl
- ld de, 0
- xor a
- ld [wd265], a
-.asm_170c30
- ld hl, PartyMon1HP
- ld a, [wd265]
- call GetPartyLocation
- ld a, [hli]
- ld b, a
- ld c, [hl]
- inc hl
- inc hl
- ld a, [hld]
- sub c
- ld c, a
- ld a, [hl]
- sbc b
- ld b, a
- push de
- pop hl
- add hl, bc
- push hl
- pop de
- jr c, .asm_170c58
- ld a, [wd265]
- inc a
- ld [wd265], a
- cp $3
- jr c, .asm_170c30
- jr .asm_170c5b
-
-.asm_170c58
- ld de, -1
-
-.asm_170c5b
- pop hl
- inc hl
- ld a, e
- add [hl]
- ld [hld], a
- ld a, d
- adc [hl]
- ld [hli], a
- jr nc, .asm_170c69
- ld a, $ff
- ld [hld], a
- ld [hli], a
-
-.asm_170c69
- inc hl
- push hl
- ld b, $0
- ld c, $0
-.asm_170c6f
- ld hl, PartyMon1HP
- ld a, b
- push bc
- call GetPartyLocation
- pop bc
- ld a, [hli]
- or [hl]
- jr nz, .asm_170c7d
- inc c
-
-.asm_170c7d
- inc b
- ld a, b
- cp $3
- jr c, .asm_170c6f
- pop hl
- ld a, [hl]
- add c
- ld [hl], a
- call CloseSRAM
- ret
-
-; 170c8b
-
-Function170c8b: ; 170c8b
- ld hl, LastEnemyCounterMove
- ld b, $5
-.asm_170c90
- ld a, [hl]
- xor $ff
- ld [hli], a
- dec b
- jr nz, .asm_170c90
- ret
-
-; 170c98
-
-CheckBTMonMovesForErrors: ; 170c98
- ld c, BATTLETOWER_NROFPKMNS
- ld hl, wBT_OTTempPkmn1Moves
-.loop
- push hl
- ld a, [hl]
- cp NUM_ATTACKS + 1
- jr c, .okay
- ld a, POUND
- ld [hl], a
-
-.okay
- inc hl
- ld b, NUM_MOVES - 1
-.loop2
- ld a, [hl]
- and a
- jr z, .loop3
- cp NUM_ATTACKS + 1
- jr c, .next
-
-.loop3
- xor a
- ld [hl], a
- inc hl
- dec b
- jr nz, .loop3
- jr .done
-
-.next
- inc hl
- dec b
- jr nz, .loop2
-
-.done
- pop hl
- ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
- add hl, de
- dec c
- jr nz, .loop
- ret
-
-; 170cc6
-
-Function170cc6: ; 170cc6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, LZ_170d16
- ld de, wDecompressScratch
- call Decompress
- ld a, $1
- ld [rVBK], a
- ld de, wd000
- ld hl, VTiles0
- lb bc, $6, $c1
- call Get2bpp
- xor a
- ld [rVBK], a
- ld hl, LZ_1715a4
- ld de, wd000
- call Decompress
- ld de, UnknBGPals
- ld hl, VTiles0
- lb bc, $6, $53
- call Get2bpp
- pop af
- ld [rSVBK], a
- ret
-
-; 170d02
-
-Function170d02: ; 170d02
- ld a, $1
- ld [rVBK], a
- ld de, GFX_171848
- ld hl, VTiles1 tile $41
- lb bc, BANK(GFX_171848), $18
- call Get2bpp
- xor a
- ld [rVBK], a
- ret
-
-; 170d16
-
-LZ_170d16:
-INCBIN "gfx/unknown/pichu_animated.2bpp.lz"
-
-LZ_1715a4:
-INCBIN "gfx/unknown/egg_animated.2bpp.lz"
-
-GFX_171848:
-INCBIN "gfx/unknown/171848.2bpp"
-
-Function1719c8: ; 1719c8 (5c:59c8)
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function1719d6
- pop af
- ld [hInMenu], a
- ret
-
-Function1719d6: ; 1719d6 (5c:59d6)
- callba BattleTowerRoomMenu_InitRAM
- call Function1719ed
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Function171a11
- pop af
- ld [rSVBK], a
- ret
-
-Function1719ed: ; 1719ed (5c:59ed)
- xor a
- ld [wcd49], a
- ld [wcd4a], a
- dec a
- ld [wcd4b], a
- call ClearBGPalettes
- call ClearSprites
- callba Function171d2b
- callba ReloadMapPart
- callba ClearSpriteAnims
- ret
-
-Function171a11: ; 171a11 (5c:5a11)
-.loop
- call JoyTextDelay
- ld a, [wcd49]
- bit 7, a
- jr nz, .done
- call Function171a36
- callba PlaySpriteAnimations
- callba ReloadMapPart
- jr .loop
-.done
- callba ClearSpriteAnims
- call ClearSprites
- ret
-
-Function171a36: ; 171a36 (5c:5a36)
- ld a, [wcd49]
- ld e, a
- ld d, 0
- ld hl, Jumptable_171a45
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-Jumptable_171a45: ; 171a45 (5c:5a45)
- dw Function171a95
- dw Function171ac9
- dw Function171a5d
- dw Function171ad7
- dw Function171a5d
- dw Function171aec
- dw Function171b4b
- dw Function171b85
- dw Function171bcc
- dw Function171c2c
- dw Function171c39
- dw Function171c41
-
-
-Function171a5d: ; 171a5d (5c:5a5d)
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_171a6a
- bit 0, a
- ret nz
- jp Function171c66
-
-.asm_171a6a
- ld a, $0
- call Function3e32
- ld [wc300], a
- ld a, l
- ld [wc301], a
- ld a, h
- ld [wc302], a
- ld a, $a
- call Function3e32
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba BattleTowerRoomMenu_Cleanup
- pop af
- ld [rSVBK], a
- ld a, $a
- ld [wcd49], a
- ret
-
-Function171a95: ; 171a95 (5c:5a95)
- callba Function171ccd
- hlcoord 2, 8
- ld de, String_171aa7
- call PlaceString
- jp Function171c66
-
-; 171aa7 (5c:5aa7)
-
-String_171aa7: ; 171aa7
- db "モバイルアダプタに"
- next "せつぞく しています"
- next "しばらく おまちください"
- db "@"
-; 171ac9
-
-Function171ac9: ; 171ac9 (5c:5ac9)
- ld de, wcd81
- ld hl, $5c
- ld a, $2
- call Function3e32
- jp Function171c66
-
-Function171ad7: ; 171ad7 (5c:5ad7)
- xor a
- ld hl, $c608
- ld bc, $66
- call ByteFill
- ld de, $c608
- ld a, $c
- call Function3e32
- jp Function171c66
-
-Function171aec: ; 171aec (5c:5aec)
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba BattleTowerRoomMenu_Cleanup
- pop af
- ld [rSVBK], a
- hlcoord 2, 6
- ld a, $8
-.asm_171b01
- push af
- push hl
- xor a
- ld bc, $10
- call ByteFill
- pop hl
- ld de, $14
- add hl, de
- pop af
- dec a
- jr nz, .asm_171b01
- hlcoord 2, 7
- ld a, $3
- ld de, $c608
-.asm_171b1b
- push af
- push hl
- ld a, [de]
- and a
- jr z, .asm_171b34
- ld a, [wcd4b]
- inc a
- ld [wcd4b], a
- push hl
- call Function171b42
- pop hl
- ld bc, $ffec
- add hl, bc
- call Function171b42
-.asm_171b34
- pop hl
- ld bc, $14
- add hl, bc
- add hl, bc
- add hl, bc
- pop af
- dec a
- jr nz, .asm_171b1b
- jp Function171c66
-
-Function171b42: ; 171b42 (5c:5b42)
- ld a, [de]
- inc de
- and a
- ret z
- sub $20
- ld [hli], a
- jr Function171b42
-
-Function171b4b: ; 171b4b (5c:5b4b)
- depixel 8, 2
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $8
- ld [hl], a
-
- depixel 8, 19
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $9
- ld [hl], a
-
- depixel 17, 14, 2, 0
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $a
- ld [hl], a
-
- ld a, $4
- ld [wcd23], a
- ld a, $8
- ld [wcd24], a
- jp Function171c66
-
-Function171b85: ; 171b85 (5c:5b85)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and $2
- jp nz, Function171b9f
- ld a, [hl]
- and $1
- jp nz, Function171bbd
- ld a, [hl]
- and $40
- jr nz, asm_171ba5
- ld a, [hl]
- and $80
- jr nz, asm_171baf
- ret
-
-Function171b9f: ; 171b9f (5c:5b9f)
- ld a, $80
- ld [wcd49], a
- ret
-
-asm_171ba5: ; 171ba5 (5c:5ba5)
- ld a, [wcd4a]
- and a
- ret z
- dec a
- ld [wcd4a], a
- ret
-
-asm_171baf: ; 171baf (5c:5baf)
- ld a, [wcd4b]
- ld c, a
- ld a, [wcd4a]
- cp c
- ret z
- inc a
- ld [wcd4a], a
- ret
-
-Function171bbd: ; 171bbd (5c:5bbd)
- call PlayClickSFX
- ld a, $8
- ld [wcd23], a
- xor a
- ld [wcd24], a
- jp Function171c66
-
-Function171bcc: ; 171bcc (5c:5bcc)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and $2
- jp nz, Function171bdc
- ld a, [hl]
- and $1
- jp nz, Function171beb
- ret
-
-Function171bdc: ; 171bdc (5c:5bdc)
- ld a, $4
- ld [wcd23], a
- ld a, $8
- ld [wcd24], a
- ld hl, wcd49
- dec [hl]
- ret
-
-Function171beb: ; 171beb (5c:5beb)
- ld a, $5
- call GetSRAMBank
- ld a, [wcd4a]
- ld [$aa4a], a
- call CloseSRAM
- ld hl, MenuDataHeader_171c6b
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- callba ReloadMapPart
- hlcoord 1, 14
- ld de, String_171c73
- call PlaceString
- ld a, [wcd4a]
- cp $2
- jr z, .asm_171c1f
- ld a, $8
- jr .asm_171c21
-.asm_171c1f
- ld a, $c
-.asm_171c21
- ld [wcd24], a
- ld a, $1e
- ld [wcd4c], a
- call Function171c66
-
-Function171c2c: ; 171c2c (5c:5c2c)
- ld hl, wcd4c
- dec [hl]
- ret nz
- call ExitMenu
- call ClearBGPalettes
- jr asm_171c60
-
-Function171c39: ; 171c39 (5c:5c39)
- ld a, $28
- ld [wcd4c], a
- call Function171c66
-
-Function171c41: ; 171c41 (5c:5c41)
- ld hl, wcd4c
- dec [hl]
- ret nz
- call ClearBGPalettes
- callba MobileFunc_106462
- callba Function106464
- ld a, $2
- ld [wc303], a
- callba DisplayMobileError
-asm_171c60: ; 171c60 (5c:5c60)
- ld a, $80
- ld [wcd49], a
- ret
-
-Function171c66: ; 171c66 (5c:5c66)
- ld hl, wcd49
- inc [hl]
- ret
-
-; 171c6b (5c:5c6b)
-
-MenuDataHeader_171c6b: ; 171c6b
- db $40 ; flags
- db 12, 0 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 171c73
-
-String_171c73: ; 171c73
- db "モバイルセンターを けってい"
- next "しました@"
-; 171c87
-
-Function171c87: ; 171c87 (5c:5c87)
- call DisableLCD
- ld hl, GFX_171db1
- ld de, VTiles2 tile $00
- ld bc, $6e0
- call CopyBytes
- ld hl, LZ_172abd
- ld de, VTiles0 tile $00
- call Decompress
- call EnableLCD
- ld hl, Tilemap_172491
- decoord 0, 0
- ld bc, $168
- call CopyBytes
- ld hl, Attrmap_1727ed
- decoord 0, 0, AttrMap
- ld bc, $168
- call CopyBytes
- hlcoord 3, 2
- ld de, String_172e31
- call PlaceString
- hlcoord 3, 16
- ld de, String_172e3f
- call PlaceString
- ret
-
-Function171ccd: ; 171ccd (5c:5ccd)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_171d71
- ld de, UnknBGPals
- ld bc, $40
- call CopyBytes
- ld hl, EngineBuffer5
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hl], a
- call SetPalettes
- pop af
- ld [rSVBK], a
- ret
-
-Function171cf0: ; 171cf0 (5c:5cf0)
- xor a
- hlcoord 4, 15
- ld [hli], a
- ld [hli], a
- ld a, [wcd4b]
- xor $1
- ld [wcd4b], a
- and a
- jr nz, .asm_171d16
- ld hl, Tilemap_17251d
- decoord 0, 7
- ld bc, $8c
- call CopyBytes
- hlcoord 3, 16
- ld de, String_172e3f
- jp PlaceString
-
-.asm_171d16
- ld hl, Tilemap_1725f9
- decoord 0, 7
- ld bc, $8c
- call CopyBytes
- hlcoord 3, 16
- ld de, String_172e4e
- jp PlaceString
-
-Function171d2b: ; 171d2b (5c:5d2b)
- call DisableLCD
- ld hl, GFX_171db1
- ld de, VTiles2 tile $00
- ld bc, $6e0
- call CopyBytes
- ld hl, LZ_172abd
- ld de, VTiles0 tile $00
- call Decompress
- call EnableLCD
- ld hl, Tilemap_172685
- decoord 0, 0
- ld bc, $168
- call CopyBytes
- ld hl, Attrmap_172955
- decoord 0, 0, AttrMap
- ld bc, $168
- call CopyBytes
- hlcoord 2, 2
- ld de, String_172e5d
- call PlaceString
- hlcoord 14, 16
- ld de, String_172e58
- call PlaceString
- ret
-
-; 171d71 (5c:5d71)
-
-Palette_171d71:
- RGB 0, 0, 0
- RGB 3, 0, 0
- RGB 5, 0, 0
- RGB 31, 31, 29
- RGB 0, 2, 10
- RGB 2, 10, 21
- RGB 0, 0, 0
- RGB 10, 26, 31
- RGB 0, 0, 0
- RGB 0, 7, 8
- RGB 31, 8, 0
- RGB 1, 17, 15
- RGB 31, 16, 0
- RGB 31, 22, 0
- RGB 31, 27, 0
- RGB 31, 31, 0
- RGB 31, 18, 6
- RGB 0, 3, 0
- RGB 0, 9, 0
- RGB 0, 12, 0
- RGB 0, 16, 0
- RGB 0, 22, 0
- RGB 0, 25, 0
- RGB 0, 27, 0
- RGB 5, 5, 16
- RGB 8, 19, 28
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 29
- RGB 21, 21, 20
- RGB 11, 11, 10
- RGB 0, 0, 0
-
-GFX_171db1:
-INCBIN "gfx/unknown/ascii_font.2bpp"
-Tilemap_172491:
-INCBIN "gfx/unknown/172491.tilemap"
-Tilemap_17251d:
-INCBIN "gfx/unknown/17251d.tilemap"
-Tilemap_1725f9:
-INCBIN "gfx/unknown/1725f9.tilemap"
-Tilemap_172685:
-INCBIN "gfx/unknown/172685.tilemap"
-Attrmap_1727ed:
-INCBIN "gfx/unknown/1727ed.attrmap"
-Attrmap_172955:
-INCBIN "gfx/unknown/172955.attrmap"
-LZ_172abd:
-INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-
-String_172e31: ; 172e31
- db "パスワード", $1f, "いれてください@"
-String_172e3f: ; 172e3f
- db "きりかえ やめる けってい@"
-String_172e4e: ; 172e4e
- db "きりかえ やめる "
-String_172e58:
- db "けってい@"
-String_172e5d: ; 172e5d
- db "せつぞくする モバイルセンターを"
- next "えらんで ください@"
-; 172e78
-
-
-Function172e78: ; 172e78 (5c:6e78)
- ld a, $7f
- hlcoord 0, 0
- ld bc, $168
- call ByteFill
- ld a, $7
- hlcoord 0, 0, AttrMap
- ld bc, $168
- call ByteFill
- call DisableLCD
- ld hl, GameBoyN64GFX
- ld de, VTiles2 tile $00
- ld bc, $610
- call CopyBytes
- call EnableLCD
- ld hl, Tilemap_1733af
- decoord 0, 0
- ld bc, $168
- call CopyBytes
- ld hl, Attrmap_173517
- decoord 0, 0, AttrMap
- ld bc, $168
- call CopyBytes
- ret
-
-; 172eb9 (5c:6eb9)
-
-Function172eb9:
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_172edf
- ld de, UnknBGPals
- ld bc, $40
- call CopyBytes
- ld hl, Palette_172edf
- ld de, BGPals
- ld bc, $40
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a
- ret
-
-; 172edf (5c:6edf)
-
-Palette_172edf:
- RGB 5, 12, 17
- RGB 31, 31, 31
- RGB 18, 25, 28
- RGB 10, 17, 21
- RGB 6, 13, 18
- RGB 31, 31, 31
- RGB 20, 26, 28
- RGB 12, 19, 23
- RGB 3, 10, 16
- RGB 31, 31, 31
- RGB 6, 13, 18
- RGB 20, 26, 28
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 5, 5, 16
- RGB 8, 19, 28
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-GameBoyN64GFX:
-INCBIN "gfx/trade/game_boy_n64.2bpp"
-
-Tilemap_1733af:
-IF DEF(CRYSTAL11)
-INCBIN "gfx/unknown/1733af_corrupt.tilemap"
-ELSE
-INCBIN "gfx/unknown/1733af.tilemap"
-ENDC
-
-Attrmap_173517:
-INCBIN "gfx/unknown/173517.attrmap"
--- a/misc/mobile_5f.asm
+++ /dev/null
@@ -1,5310 +1,0 @@
-
-SECTION "bank5F", ROMX
-
-Function17c000: ; 17c000
-
- call DisableLCD
-
- ld hl, VTiles2
- ld bc, $31 tiles
- xor a
- call ByteFill
-
- call LoadStandardFont
- call LoadFontsExtra
-
- ld hl, HaveWantMap
- decoord 0, 0
- bccoord 0, 0, AttrMap
-
- ld a, SCREEN_HEIGHT
-.y
- push af
- ld a, SCREEN_WIDTH
-
- push hl
-.x
- push af
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- jr nz, .x
- pop hl
-
- push bc
- ld bc, BG_MAP_WIDTH * 2
- add hl, bc
- pop bc
-
- pop af
- dec a
- jr nz, .y
-
- ld a, [rSVBK]
- push af
-
- ld a, 5 ; BANK(UnknBGPals)
- ld [rSVBK], a
-
- ld hl, HaveWantPals
- ld de, UnknBGPals
- ld bc, $80
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- ld hl, MobileSelectGFX
- ld de, VTiles0 tile $30
- ld bc, $20 tiles
- call CopyBytes
-
- ld a, 1
- ld [rVBK], a
-
- ld hl, HaveWantGFX
- ld de, VTiles2
- ld bc, $80 tiles
- call CopyBytes
-
- ld hl, HaveWantGFX + $800
- ld de, VTiles1
- ld bc, $10 tiles
- call CopyBytes
-
- xor a
- ld [rVBK], a
-
- call EnableLCD
- callba ReloadMapPart
- ret
-; 17c083
-
-HaveWantGFX: ; 17c083
-INCBIN "gfx/mobile/havewant.2bpp"
-
-MobileSelectGFX: ; 17c983
-INCBIN "gfx/mobile/select.2bpp"
-
-HaveWantMap: ; 17cb83
-; Interleaved tile/palette map.
-INCBIN "gfx/mobile/havewant_map.bin"
-
-HaveWantPals: ; 17cff3
-; BG and OBJ palettes.
- RGB 0, 0, 0
- RGB 21, 21, 21
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 4, 17, 29
- RGB 6, 19, 31
- RGB 31, 31, 31
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 2, 13, 18
- RGB 6, 19, 31
- RGB 31, 31, 31
-
- RGB 0, 0, 0
- RGB 31, 5, 5
- RGB 29, 21, 21
- RGB 31, 31, 31
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 4, 17, 29
- RGB 6, 19, 31
- RGB 2, 15, 27
-
- RGB 0, 0, 0
- RGB 28, 19, 18
- RGB 25, 9, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 31, 27, 27
- RGB 31, 10, 4
- RGB 29, 0, 0
-
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 26, 8, 23
- RGB 22, 0, 16
-
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 8, 31
- RGB 15, 1, 26
-
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 17, 12, 31
- RGB 12, 6, 31
-
- RGB 0, 16, 0
- RGB 11, 11, 14
- RGB 5, 5, 7
- RGB 31, 31, 31
-
- RGB 0, 31, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 16, 31, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-
-CheckStringForErrors: ; 17d073
-; Valid character ranges:
-; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
-.loop
- ld a, [de]
- inc de
- and a
- jr z, .NextChar
- cp $60
- jr nc, .NextChar
- cp $4e
- jr z, .NextChar
- cp "@"
- jr z, .Done
- cp $5
- jr c, .Fail
- cp "<PLAY_G>"
- jr c, .NextChar
- cp $19
- jr c, .Fail
- cp $1d
- jr c, .NextChar
- cp $26
- jr c, .Fail
- cp $35
- jr c, .NextChar
- cp $3a
- jr c, .Fail
- cp $3f
- jr c, .NextChar
- cp $40
- jr c, .Fail
- cp $49
- jr c, .NextChar
-
-.Fail:
- scf
- ret
-
-.NextChar:
- dec c
- jr nz, .loop
-
-.Done:
- and a
- ret
-; 17d0b3
-
-CheckStringForErrors_IgnoreTerminator: ; 17d0b3
-; Find control chars
-.loop
- ld a, [de]
- inc de
- and a
- jr z, .next
- cp "<DEXEND>" + 1
- jr nc, .next
- cp "<NEXT>"
- jr z, .next
- cp "@"
- jr z, .next
-
- cp $5
- jr c, .end
- cp "<PLAY_G>"
- jr c, .next
- cp $19
- jr c, .end
- cp $1d
- jr c, .next
- cp "%" + 1
- jr c, .end
- cp $35
- jr c, .next
- cp "<GREEN>" + 1
- jr c, .end
- cp "<ENEMY>"
- jr c, .next
- cp "<ENEMY>" + 1
- jr c, .end
- cp "<MOM>"
- jr c, .next
-
-.end
- scf
- ret
-
-.next
- dec c
- jr nz, .loop
- and a
- ret
-; 17d0f3
-
-Function17d0f3: ; 17d0f3
- ld a, [$c608 + 5]
- ld [wOTTrademonSpecies], a
- ld [CurPartySpecies], a
- ld a, [wcd81]
- ld [$c74e], a
- ld hl, $c63d
- ld de, wOTTrademonOTName
- ld bc, 5
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld a, [$c608 + 11]
- ld [wOTTrademonID], a
- ld a, [$c608 + 12]
- ld [wOTTrademonID + 1], a
- ld hl, $c608 + 26
- ld a, [hli]
- ld [wOTTrademonDVs], a
- ld a, [hl]
- ld [wOTTrademonDVs + 1], a
- ld bc, $c608 + 5
- callba GetCaughtGender
- ld a, c
- ld [wOTTrademonCaughtData], a
- call SpeechTextBox
- call FadeToMenu
- callba Function10804d
- callba Function17d1f1
- ld a, $1
- ld [wForceEvolution], a
- ld a, $2
- ld [wLinkMode], a
- callba EvolvePokemon
- xor a
- ld [wLinkMode], a
- callba SaveAfterLinkTrade
- ld a, $5
- call GetSRAMBank
- ld a, $5
- ld [$a800], a
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .asm_17d180
- ld a, $1
- ld [de], a
-
-.asm_17d180
- call CloseSubmenu
- call RestartMapMusic
- ret
-; 17d187
-
-Mobile_CopyDefaultOTName: ; 17d187
- ld hl, Mobile5F_KrissName
- ld de, $c63d
- ld bc, 5
- call CopyBytes
- ret
-; 17d194
-
-Mobile5F_KrissName:
- db "クりス@@"
-; 17d198
-
-Mobile_CopyDefaultNickname: ; 17d199
- ld hl, .DefaultNickname
- ld de, $c642
- ld bc, 5
- call CopyBytes
- ret
-; 17d1a6
-
-.DefaultNickname:
- db "?????"
-
-Mobile_CopyDefaultMail: ; 17d1ab
- ld a, "@"
- ld hl, $c647
- ld bc, MAIL_MSG_LENGTH + 1
- call ByteFill
- ld hl, .DefaultMessage
- ld de, $c647
- ld bc, 6
- call CopyBytes
- ret
-; 17d1c3
-
-.DefaultMessage:
- db "こんにちは@"
-; 17d1c9
-
-Mobile_CopyDefaultMailAuthor: ; 17d1c9
- ld a, "@"
- ld de, $c668
- ld bc, 5
- call ByteFill
- ld hl, Mobile5F_KrissName
- ld de, $c668
- ld bc, 5
- call CopyBytes
- ret
-; 17d1e1
-
-CheckStringContainsLessThanBNextCharacters: ; 17d1e1
-.loop
- ld a, [de]
- inc de
- cp "<NEXT>"
- jr nz, .next_char
- dec b
- jr z, .done
-
-.next_char
- dec c
- jr nz, .loop
- and a
- ret
-
-.done
- scf
- ret
-; 17d1f1
-
-Function17d1f1: ; 17d1f1
- ld a, [CurPartySpecies]
- dec a
- call SetSeenAndCaughtMon
-
- ld a, [CurPartySpecies]
- cp UNOWN
- jr nz, .asm_17d223
-
- ld hl, PartyMon1DVs
- ld a, [PartyCount]
- dec a
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- predef GetUnownLetter
- callab UpdateUnownDex
- ld a, [wFirstUnownSeen]
- and a
- jr nz, .asm_17d223
-
- ld a, [UnownLetter]
- ld [wFirstUnownSeen], a
-
-.asm_17d223
- ret
-; 17d224
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Parameter: [ScriptVar] = 0..1
-;
-; if [ScriptVar] == 0
-; Show japanese menu options
-; - News - News - ??? - Cancel
-; if [ScriptVar] == 1
-; Show BattleTower-Menu with 3 options in english language
-; - Challenge - Explanation - Cancel
-Special_Menu_ChallengeExplanationCancel: ; 17d224
- ld a, [ScriptVar]
- and a
- jr nz, .English
- ld a, $4
- ld [ScriptVar], a
- ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option
- jr .Load_Interpret
-
-.English:
- ld a, $4
- ld [ScriptVar], a
- ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu
-
-.Load_Interpret:
- call LoadMenuDataHeader
- call Function17d246
- call CloseWindow
- ret
-; 17d246
-
-Function17d246: ; 17d246
- call VerticalMenu
- jr c, .Exit
- ld a, [ScriptVar]
- cp $5
- jr nz, .UsewMenuCursorY
- ld a, [wMenuCursorY]
- cp $3
- ret z
- jr c, .UsewMenuCursorY
- dec a
- jr .LoadToScriptVar
-
-.UsewMenuCursorY:
- ld a, [wMenuCursorY]
-
-.LoadToScriptVar:
- ld [ScriptVar], a
- ret
-
-.Exit:
- ld a, $4
- ld [ScriptVar], a
- ret
-; 17d26a
-
-MenuDataHeader_17d26a: ; 17d26a
- db $40 ; flags
- db 0, 0 ; start coords
- db 9, 14 ; end coords
- dw MenuData2_17d272
- db 1 ; default option
-
-MenuData2_17d272: ; 17d272
- db $a0 ; flags
- db 4
- db "ニュース¯よみこむ@"
- db "ニュース¯みる@"
- db "せつめい@"
- db "やめる@"
-; 17d28f
-
-MenuDataHeader_ChallengeExplanationCancel: ; 17d28f
- db $40 ; flags
- db 0, 0 ; start coords
- db 7, 14 ; end coords
- dw MenuData2_ChallengeExplanationCancel
- db 1 ; default option
-
-MenuData2_ChallengeExplanationCancel: ; 17d297
- db $a0 ; flags
- db 3
- db "Challenge@"
- db "Explanation@"
- db "Cancel@"
-; 17d2b6
-
-Function17d2b6: ; 17d2b6
- call Function17d2c0
- callba Function1181da
- ret
-; 17d2c0
-
-Function17d2c0: ; 17d2c0
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ret
-; 17d2ce
-
-Function17d2ce: ; 17d2ce
- ld a, $5
- call GetSRAMBank
- ld a, [$aa72]
- call CloseSRAM
- and a
- jr nz, .asm_17d2e2
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_17d2e2
- call Function17d314
- ret c
- call SpeechTextBox
- call FadeToMenu
- ld a, [rSVBK]
- push af
- ld a, $4
- ld [rSVBK], a
- call Function17d370
- call Function17d45a
- pop af
- ld [rSVBK], a
- ld de, MUSIC_MOBILE_CENTER
- ld a, e
- ld [wMapMusic], a
- ld [MusicFadeID], a
- ld a, d
- ld [MusicFadeID + 1], a
- call PlayMusic
- call ReturnToMapFromSubmenu
- call CloseSubmenu
- ret
-; 17d314
-
-Function17d314: ; 17d314
- ld a, $5
- call GetSRAMBank
- ld a, [$b1b1]
- call CloseSRAM
- cp $21
- jr nc, .asm_17d354
- ld a, $6
- call GetSRAMBank
- ld l, $0
- ld h, l
- ld de, $a006
- ld a, [$a004]
- ld c, a
- ld a, [$a005]
- ld b, a
-.asm_17d336
- push bc
- ld a, [de]
- inc de
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- dec bc
- ld a, b
- or c
- jr nz, .asm_17d336
- ld a, [$a002]
- cp l
- jr nz, .asm_17d354
- ld a, [$a003]
- cp h
- jr nz, .asm_17d354
- call CloseSRAM
- and a
- ret
-
-.asm_17d354
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- xor a
- ld hl, $aa73
- ld bc, $c
- call ByteFill
- call CloseSRAM
- ld a, $2
- ld [ScriptVar], a
- scf
- ret
-; 17d370
-
-Function17d370: ; 17d370
- xor a
- ld [wcd77], a
- ld [wcd78], a
- ld [wcd79], a
- dec a
- ld [wcd6c], a
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
- callba ReloadMapPart
- call DisableLCD
- ld hl, VTiles1 tile $6e
- ld de, $c608
- ld bc, 1 tiles
- call CopyBytes
- ld a, $1
- ld [rVBK], a
- ld hl, PokemonNewsGFX
- ld de, VTiles1
- ld bc, $48 tiles
- call CopyBytes
- xor a
- ld hl, VTiles2 tile $7f
- ld bc, 1 tiles
- call ByteFill
- ld hl, $c608
- ld de, VTiles1 tile $6e
- ld bc, 1 tiles
- call CopyBytes
- xor a
- ld [rVBK], a
- ld hl, GFX_17eb7e
- ld de, VTiles2 tile $60
- ld bc, 1 tiles
- call CopyBytes
- call EnableLCD
- call Function17d60b
- ld a, $0
- ld [BGMapBuffer], a
- ld a, $d0
- ld [wcd21], a
- ld a, $6
- call GetSRAMBank
- ld hl, $a006
- ld de, UnknBGPals
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- ret
-; 17d3f6
-
-Function17d3f6: ; 17d3f6
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
- callba ReloadMapPart
-
-Function17d405:
- call DisableLCD
- ld hl, VTiles1 tile $6e
- ld de, $c608
- ld bc, 1 tiles
- call CopyBytes
- ld a, $1
- ld [rVBK], a
- ld hl, PokemonNewsGFX
- ld de, VTiles1
- ld bc, $48 tiles
- call CopyBytes
- xor a
- ld hl, VTiles2 tile $7f
- ld bc, 1 tiles
- call ByteFill
- ld hl, $c608
- ld de, VTiles1 tile $6e
- ld bc, 1 tiles
- call CopyBytes
- xor a
- ld [rVBK], a
- call EnableLCD
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_17eff6
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a
- ret
-; 17d45a
-
-Function17d45a: ; 17d45a
-.asm_17d45a
- call JoyTextDelay
- ld a, [wcd77]
- bit 7, a
- jr nz, .asm_17d46f
- call Function17d474
- callba ReloadMapPart
- jr .asm_17d45a
-
-.asm_17d46f
- xor a
- ld [ScriptVar], a
- ret
-; 17d474
-
-Function17d474: ; 17d474
- jumptable Jumptable_17d483, wcd77
-; 17d483
-
-Jumptable_17d483: ; 17d483
- dw Function17d48d
- dw Function17d5be
- dw Function17d5c4
- dw Function17d6fd
- dw Function17e427
-; 17d48d
-
-Function17d48d: ; 17d48d
- ld hl, Palette_17eff6
- ld de, $c608
- ld bc, $40
- call CopyBytes
- ld hl, TileAttrmap_17eb8e
- decoord 0, 0
- bccoord 0, 0, AttrMap
- ld a, $12
-.asm_17d4a4
- push af
- ld a, $14
- push hl
-.asm_17d4a8
- push af
- ld a, [hli]
- cp $7f
- jr z, .asm_17d4b0
- add $80
-
-.asm_17d4b0
- ld [de], a
- inc de
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- jr nz, .asm_17d4a8
- pop hl
- push bc
- ld bc, $40
- add hl, bc
- pop bc
- pop af
- dec a
- jr nz, .asm_17d4a4
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- ld a, [hli]
- ld e, a
- ld a, [wcd6c]
- cp e
- jr z, .asm_17d4e0
- ld a, e
- ld [wcd6c], a
- ld [wMapMusic], a
- ld d, $0
- call PlayMusic2
-
-.asm_17d4e0
- ld a, [hli]
- ld de, $c608
- ld c, $8
-.asm_17d4e6
- srl a
- jr nc, .asm_17d4f6
- ld b, $8
- push af
-.asm_17d4ed
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .asm_17d4ed
- pop af
- jr .asm_17d4fc
-
-.asm_17d4f6
- push af
- ld a, e
- add $8
- ld e, a
- pop af
-
-.asm_17d4fc
- dec c
- jr nz, .asm_17d4e6
- push hl
- call Function17d5f6
- pop hl
- ld a, [hli]
- and a
- jr z, .asm_17d539
-.asm_17d508
- push af
- ld a, [hli]
- ld [wcd4f], a
- ld a, [hli]
- ld [wcd50], a
- ld a, [hli]
- ld [wcd51], a
- ld a, [hli]
- ld [wcd52], a
- ld a, [hli]
- sla a
- sla a
- sla a
- add $98
- ld [wcd53], a
- ld de, wcd4f
- call Function17e613
- ld a, [hli]
- ld [wcd53], a
- ld de, wcd4f
- call Function17e691
- pop af
- dec a
- jr nz, .asm_17d508
-
-.asm_17d539
- ld a, [hli]
-.asm_17d53a
- push af
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- push hl
- pop de
- hlcoord 0, 0
- add hl, bc
- call PlaceString
- push de
- pop hl
- inc hl
- pop af
- dec a
- jr nz, .asm_17d53a
- ld de, CreditsTimer
- ld bc, $c
- call CopyBytes
- xor a
- ld [wcd2e], a
- ld [wcd2f], a
- inc a
- ld [wcd30], a
- ld [wcd31], a
- ld de, wcd32
- ld bc, $10
- call CopyBytes
- ld a, [hli]
- ld [wcd42], a
- ld a, [hli]
- ld [wcd43], a
- ld a, [hli]
- ld [wMobileInactivityTimerMinutes], a
- ld a, [hli]
- ld [wMobileInactivityTimerSeconds], a
- ld a, [hli]
- ld [wMobileInactivityTimerFrames], a
- ld a, [hli]
- and a
- jr z, .asm_17d58a
- call Function17d6a1
-
-.asm_17d58a
- ld a, l
- ld [wcd49], a
- ld a, h
- ld [wcd4a], a
- ld a, [wcd42]
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- ld a, l
- ld [wcd4b], a
- ld a, h
- ld [wcd4c], a
- add hl, bc
- add hl, bc
- ld a, l
- ld [wcd4d], a
- ld a, h
- ld [wcd4e], a
- call Function17e451
- call Function17e55b
- call Function17e5af
- callba ReloadMapPart
- jp Function17e438
-; 17d5be
-
-Function17d5be: ; 17d5be
- call SetPalettes
- call Function17e438
-
-Function17d5c4:
- ld a, [hJoyPressed]
- and a
- ret z
- ld c, 0
- ld b, c
- ld hl, wcd32
-.loop
- srl a
- jr c, .got_button
- inc c
- inc c
- jr .loop
-
-.got_button
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- and c
- cp $ff
- ret z
- ld a, [wcd20]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, bc
- ld a, l
- ld [wcd78], a
- ld a, h
- ld [wcd79], a
- ld a, $3
- ld [wcd77], a
- ret
-; 17d5f6
-
-Function17d5f6: ; 17d5f6
- ld a, $5
- ld [rSVBK], a
- ld hl, $c608
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- ld a, $4
- ld [rSVBK], a
- ret
-; 17d60b
-
-Function17d60b: ; 17d60b
- ld a, $5
- call GetSRAMBank
- ld hl, $b1d3
- ld de, $c608
- ld bc, $20
- call CopyBytes
- ld a, [$b1b1]
- ld c, a
- ld a, [$b1b2]
- ld b, a
- ld a, [$b1b3]
- ld l, a
- ld a, [$b1b4]
- ld h, a
- call CloseSRAM
- ld a, $6
- call GetSRAMBank
- ld de, $c708
- ld a, c
- and a
- jr z, .asm_17d684
-.asm_17d63b
- push bc
- ld a, l
- ld [de], a
- inc de
- ld a, h
- ld [de], a
- inc de
- ld bc, $a
- add hl, bc
- pop bc
- ld a, [hli]
- ld [wcd4a], a
- ld a, [hli]
- ld [wcd49], a
- push hl
- push de
- ld hl, $c608
- ld e, b
- ld d, $0
- add hl, de
- ld a, [hli]
- ld [wcd4b], a
- ld a, [hl]
- ld [wcd4c], a
- pop de
- pop hl
- inc b
- inc b
- dec c
- dec c
- jr z, .asm_17d684
- push bc
- push de
- ld a, [wcd49]
- ld c, a
- ld a, [wcd4a]
- ld b, a
- ld a, [wcd4b]
- ld e, a
- ld a, [wcd4c]
- ld d, a
-.asm_17d67a
- add hl, de
- dec bc
- ld a, c
- or b
- jr nz, .asm_17d67a
- pop de
- pop bc
- jr .asm_17d63b
-
-.asm_17d684
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $c708
- ld de, $b1b3
- ld a, [$b1b1]
- ld c, a
- ld a, [$b1b2]
- ld b, a
- call CopyBytes
- call CloseSRAM
- ret
-; 17d6a1
-
-
-Function17d6a1: ; 17d6a1
- push hl
- ld a, [wcd6e]
- ld c, a
- ld b, $0
- ld a, $5
- call GetSRAMBank
- ld hl, $b1d3
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld [wcd47], a
- ld a, [hl]
- ld [BGMapPalBuffer], a
- ld hl, $b1b3
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld h, a
- ld l, c
- call CloseSRAM
- ld a, $6
- call GetSRAMBank
- ld a, l
- ld [wcd5e], a
- ld a, h
- ld [wcd5f], a
- ld de, wcd60
- ld bc, $4
- call CopyBytes
- inc hl
- inc hl
- ld de, wcd64
- ld bc, $4
- call CopyBytes
- ld a, [hli]
- ld [wcd69], a
- ld a, [hli]
- ld [wcd68], a
- ld a, l
- ld [wcd6a], a
- ld a, h
- ld [wcd6b], a
- call CloseSRAM
- pop hl
- ret
-; 17d6fd
-
-Function17d6fd: ; 17d6fd
- ld a, [wcd77]
- bit 7, a
- jr nz, asm_17d721
- ld a, [wcd78]
- ld l, a
- ld a, [wcd79]
- ld h, a
- ld a, [hl]
- cp $ff
- jr z, asm_17d721
-
-Function17d711:
-.crash_loop
- cp $31
- jr nc, .crash_loop
- ld e, a
- ld d, 0
- ld hl, Jumptable17d72a
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-asm_17d721
- call Function17e5af
- ld a, $2
- ld [wcd77], a
- ret
-; 17d72a
-
-Jumptable17d72a: ; 17d72a
- dw Function17d78c
- dw Function17d78d
- dw Function17d7b4
- dw Function17d7c2
- dw Function17d7d3
- dw Function17d7e5
- dw Function17d818
- dw Function17d833
- dw Function17d85d
- dw Function17d902
- dw Function17d93a
- dw Function17d98b
- dw Function17d9e3
- dw Function17da31
- dw Function17da9c
- dw Function17dadc
- dw Function17db2d
- dw Function17db56
- dw Function17db77
- dw Function17dbe9
- dw Function17dc1f
- dw Function17dc9f
- dw Function17dca9
- dw Function17dccf
- dw Function17dd13
- dw Function17dd30
- dw Function17dd49
- dw Function17ddcd
- dw Function17de32
- dw Function17de91
- dw Function17ded9
- dw Function17e0fd
- dw Function17e133
- dw Function17e165
- dw Function17e1a1
- dw Function17e254
- dw Function17e261
- dw Function17e270
- dw Function17e27f
- dw Function17e293
- dw Function17e2a7
- dw Function17e367
- dw Function17e37e
- dw Function17e395
- dw Function17e3ac
- dw Function17e3c3
- dw Function17e3e0
- dw Function17e3f0
- dw Function17e409
-; 17d78c
-
-Function17d78c: ; 17d78c
- ret
-; 17d78d
-
-Function17d78d: ; 17d78d
- call Function17e415
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- call Function17e41e
- ld a, $6
- call GetSRAMBank
- ld hl, $a006
- add hl, bc
- ld de, UnknBGPals
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- xor a
- ld [wcd77], a
- call ClearBGPalettes
- ret
-; 17d7b4
-
-Function17d7b4: ; 17d7b4
- call Function17e415
- ld a, [hli]
- ld e, a
- ld d, $0
- call PlayMusic2
- call Function17e41e
- ret
-; 17d7c2
-
-Function17d7c2: ; 17d7c2
- call Function17e415
- ld a, [hli]
- ld e, a
- ld d, $0
- call PlaySFX
- call WaitSFX
- call Function17e41e
- ret
-; 17d7d3
-
-Function17d7d3: ; 17d7d3
- call Function17e415
- ld a, [hli]
- dec a
- ld e, a
- ld d, $0
- call PlayCryHeader
- call WaitSFX
- call Function17e41e
- ret
-; 17d7e5
-
-Function17d7e5: ; 17d7e5
- call Function17e415
- ld a, [hli]
- ld [wcd4f], a
- ld a, [hli]
- ld [wcd50], a
- ld a, [hli]
- ld [wcd51], a
- ld a, [hli]
- ld [wcd52], a
- ld a, [hli]
- sla a
- sla a
- sla a
- add $98
- ld [wcd53], a
- ld de, wcd4f
- call Function17e613
- ld a, [hli]
- ld [wcd53], a
- ld de, wcd4f
- call Function17e691
- call Function17e41e
- ret
-; 17d818
-
-Function17d818: ; 17d818
- call Function17e415
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call Function17e41e
- call Function17e447
- ld e, l
- ld d, h
- hlcoord 0, 0
- add hl, bc
- call PlaceString
- ret
-; 17d833
-
-Function17d833: ; 17d833
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- call Function17e41e
- push de
- push bc
- call Function17e32b
- pop bc
- pop de
- call Function17e43d
- ld c, l
- ld b, h
- hlcoord 0, 0
- add hl, de
- ld e, l
- ld d, h
- callba Function11c08f
- call Function17e349
- ret
-; 17d85d
-
-Function17d85d: ; 17d85d
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- ld hl, UnknBGPals
- add hl, de
- ld de, wcc60
-.asm_17d86c
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr nz, .asm_17d86c
- pop hl
- ld de, $c608
- ld c, $0
-.asm_17d878
- ld a, [hli]
- cp $ff
- jr z, .asm_17d8c7
- ld [wcd4f], a
- ld a, [hli]
- ld [wcd50], a
- ld a, [hli]
- ld [wcd51], a
- ld a, [hli]
- ld [wcd52], a
- ld a, [wcd51]
- push af
- cp $c0
- jr c, .asm_17d89b
- ld a, [wcd4f]
- ld [rSVBK], a
- jr .asm_17d8a1
-
-.asm_17d89b
- ld a, [wcd4f]
- call GetSRAMBank
-
-.asm_17d8a1
- push hl
- ld a, [wcd50]
- ld l, a
- ld a, [wcd51]
- ld h, a
- ld a, [wcd52]
-.asm_17d8ad
- push af
- ld a, [hli]
- ld [de], a
- inc de
- inc c
- pop af
- dec a
- jr nz, .asm_17d8ad
- pop hl
- pop af
- cp $c0
- jr c, .asm_17d8c2
- ld a, $4
- ld [rSVBK], a
- jr .asm_17d878
-
-.asm_17d8c2
- call CloseSRAM
- jr .asm_17d878
-
-.asm_17d8c7
- call Function17e41e
- push bc
- ld a, $3
- ld [rSVBK], a
- ld hl, $c608
- ld de, UnknBGPals
- ld b, $0
- call CopyBytes
- ld a, $4
- ld [rSVBK], a
- call Function17e32b
- pop bc
- ld a, c
- ld [wcd3b], a
- xor a
- ld [wcf66], a
- callba Function118329
- ld a, [wc300]
- and a
- jr z, .asm_17d8fe
- cp $a
- jr z, .asm_17d8fe
- call Function17e309
- ret
-
-.asm_17d8fe
- call Function17e349
- ret
-; 17d902
-
-Function17d902: ; 17d902
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- call Function17e41e
- call Function17e32b
- pop de
- ld hl, UnknBGPals
- add hl, de
- ld de, wcc60
-.asm_17d918
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr nz, .asm_17d918
- xor a
- ld [wcf66], a
- callba Function11837a
- ld a, [wc300]
- and a
- jr z, .asm_17d936
- cp $a
- jr z, .asm_17d936
- call Function17e309
- ret
-
-.asm_17d936
- call Function17e349
- ret
-; 17d93a
-
-Function17d93a: ; 17d93a
- call Function17e415
- ld de, $c708
- ld bc, $5
- call CopyBytes
- call Function17e41e
- call Function17e32b
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [$c70c]
- call Function17e6de
- ld a, [$c70a]
- ld [CurPartySpecies], a
- ld a, [$c70c]
- ld e, a
- callba LoadMonPaletteAsNthBGPal
- call SetPalettes
- ld a, [$c708]
- ld l, a
- ld a, [$c709]
- ld h, a
- ld a, [$c70b]
- ld c, a
- decoord 0, 0
- add hl, de
- ld e, l
- ld d, h
- callba HOF_AnimateFrontpic
- pop af
- ld [rSVBK], a
- call Function17e349
- ret
-; 17d98b
-
-Function17d98b: ; 17d98b
- call Function17e415
- ld de, $c708
- ld bc, $4
- call CopyBytes
- call Function17e41e
- call Function17e32b
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [$c70b]
- call Function17e6de
- ld a, [$c70a]
- ld [TrainerClass], a
- ld a, [$c70b]
- ld e, a
- callba LoadTrainerClassPaletteAsNthBGPal
- call SetPalettes
- ld a, [$c708]
- ld e, a
- ld a, [$c709]
- ld d, a
- push de
- ld de, VTiles2
- callba GetTrainerPic
- pop hl
- decoord 0, 0
- add hl, de
- ld bc, $707
- predef PlaceGraphic
- pop af
- ld [rSVBK], a
- call Function17e349
- ret
-; 17d9e3
-
-Function17d9e3: ; 17d9e3
- call Function17e415
- ld de, $c708
- ld bc, $7
- call CopyBytes
- call Function17e41e
- ld a, [$c70b]
- push af
- cp $c0
- jr c, .asm_17da01
- ld a, [$c70c]
- ld [rSVBK], a
- jr .asm_17da07
-
-.asm_17da01
- ld a, [$c70c]
- call GetSRAMBank
-
-.asm_17da07
- ld a, [$c708]
- ld l, a
- ld a, [$c709]
- ld h, a
- ld a, [$c70a]
- ld e, a
- ld a, [$c70b]
- ld d, a
- ld a, [$c70d]
- ld c, a
- ld a, [$c70e]
- ld b, a
- call CopyBytes
- pop af
- cp $c0
- jr c, .asm_17da2d
- ld a, $4
- ld [rSVBK], a
- jr .asm_17da30
-
-.asm_17da2d
- call CloseSRAM
-
-.asm_17da30
- ret
-; 17da31
-
-Function17da31: ; 17da31
- call Function17e415
- ld de, $c708
- ld bc, $4
- call CopyBytes
- call Function17e41e
- ld a, [$c709]
- push af
- cp $c0
- jr c, .asm_17da4f
- ld a, [$c70a]
- ld [rSVBK], a
- jr .asm_17da55
-
-.asm_17da4f
- ld a, [$c70a]
- call GetSRAMBank
-
-.asm_17da55
- ld a, [$c708]
- ld e, a
- ld a, [$c709]
- ld d, a
- ld a, [$c70b]
- ld c, a
- bit 7, c
- jr nz, .asm_17da70
- ld hl, Unknown_17da8c
- ld b, $0
- add hl, bc
- ld a, [de]
- or [hl]
- ld [de], a
- jr .asm_17da7d
-
-.asm_17da70
- ld hl, Unknown_17da94
- ld a, c
- and $7f
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- and [hl]
- ld [de], a
-
-.asm_17da7d
- pop af
- cp $c0
- jr c, .asm_17da88
- ld a, $4
- ld [rSVBK], a
- jr .asm_17da8b
-
-.asm_17da88
- call CloseSRAM
-
-.asm_17da8b
- ret
-; 17da8c
-
-Unknown_17da8c:
-x = 0
- rept 8
- db 1 << x
-x = x + 1
- endr
-
-Unknown_17da94:
-x = 0
- rept 8
- db (1 << x) ^ $ff
-x = x + 1
- endr
-; 17da9c
-
-Function17da9c: ; 17da9c
- ld a, [wcd31]
- dec a
- jr z, .asm_17dabd
- push af
- call Function17e566
- pop af
- ld [wcd31], a
- ld hl, wcd24
- ld a, [wcd2e]
- sub [hl]
- ld [wcd2e], a
- call Function17e55b
- call Function17e5af
-.asm_17daba
- jp Function17e415
-
-.asm_17dabd
- ld a, [wcd2f]
- and a
- jr z, .asm_17daba
- ld hl, wcd24
- sub [hl]
- ld [wcd2f], a
- ld a, [wcd2e]
- sub [hl]
- ld [wcd2e], a
- call Function17e451
- call Function17e55b
- call Function17e5af
- jr .asm_17daba
-; 17dadc
-
-Function17dadc: ; 17dadc
- ld a, [wcd2e]
- ld hl, wcd24
- add [hl]
- ld hl, wcd42
- cp [hl]
- jr z, .asm_17db0e
- jr nc, .asm_17db0e
- ld hl, wcd31
- ld a, [wcd2b]
- cp [hl]
- jr z, .asm_17db11
- call Function17e566
- ld a, [wcd31]
- inc a
- ld [wcd31], a
- ld hl, wcd24
- ld a, [wcd2e]
- add [hl]
- ld [wcd2e], a
- call Function17e55b
- call Function17e5af
-
-.asm_17db0e
- jp Function17e415
-
-.asm_17db11
- ld hl, wcd24
- ld a, [wcd2f]
- add [hl]
- ld [wcd2f], a
- ld a, [wcd2e]
- add [hl]
- ld [wcd2e], a
- call Function17e451
- call Function17e55b
- call Function17e5af
- jr .asm_17db0e
-; 17db2d
-
-Function17db2d: ; 17db2d
- ld a, [wcd30]
- ld hl, wcd24
- cp [hl]
- jr z, .asm_17db53
- ld hl, wcd42
- ld a, [wcd2e]
- inc a
- cp [hl]
- jr z, .asm_17db53
- ld [wcd2e], a
- call Function17e566
- ld a, [wcd30]
- inc a
- ld [wcd30], a
- call Function17e55b
- call Function17e5af
-
-.asm_17db53
- jp Function17e415
-; 17db56
-
-Function17db56: ; 17db56
- ld a, [wcd30]
- cp $1
- jr z, .asm_17db74
- call Function17e566
- ld a, [wcd30]
- dec a
- ld [wcd30], a
- ld a, [wcd2e]
- dec a
- ld [wcd2e], a
- call Function17e55b
- call Function17e5af
-
-.asm_17db74
- jp Function17e415
-; 17db77
-
-Function17db77: ; 17db77
- ld hl, wcd2d
- ld a, [wcd2f]
- add [hl]
- ld hl, wcd42
- cp [hl]
- jr z, .asm_17dbae
- jr nc, .asm_17dbae
- call Function17e566
- ld hl, wcd2d
- ld a, [wcd2f]
- add [hl]
- ld [wcd2f], a
- ld a, [wcd2e]
- add [hl]
- ld hl, wcd42
- cp [hl]
- jr c, .asm_17db9f
- ld a, [hl]
- dec a
-
-.asm_17db9f
- ld [wcd2e], a
- call Function17dbb1
- call Function17e451
- call Function17e55b
- call Function17e5af
-
-.asm_17dbae
- jp Function17e415
-; 17dbb1
-
-Function17dbb1: ; 17dbb1
- ld hl, wcd2f
- ld a, [wcd42]
- sub [hl]
- ld hl, wcd2d
- cp [hl]
- ret nc
- ld a, $1
- ld [wcd30], a
- ld [wcd31], a
- ld a, [wcd24]
- ld c, a
- ld a, [wcd24]
- ld b, a
- ld a, [wcd2e]
- ld hl, wcd2f
- sub [hl]
-.asm_17dbd4
- and a
- ret z
- push af
- ld hl, wcd30
- ld a, b
- cp [hl]
- jr nz, .asm_17dbe4
- ld a, $1
- ld [hl], a
- ld hl, wcd31
-
-.asm_17dbe4
- inc [hl]
- pop af
- dec a
- jr .asm_17dbd4
-; 17dbe9
-
-Function17dbe9: ; 17dbe9
- ld hl, wcd2d
- ld a, [wcd2f]
- sub [hl]
- bit 7, a
- jr z, .asm_17dbf5
- xor a
-
-.asm_17dbf5
- ld [wcd2f], a
- ld a, [wcd30]
- dec a
- ld c, a
- ld a, [wcd31]
- ld b, a
- xor a
- ld hl, wcd24
-.asm_17dc05
- dec b
- jr z, .asm_17dc0b
- add [hl]
- jr .asm_17dc05
-
-.asm_17dc0b
- add c
- ld hl, wcd2f
- add [hl]
- ld [wcd2e], a
- call Function17e451
- call Function17e55b
- call Function17e5af
- jp Function17e415
-; 17dc1f
-
-Function17dc1f: ; 17dc1f
- call Function17e415
- ld de, $c688
- ld bc, $6
- call CopyBytes
- call Function17e32b
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c688
- ld a, $40
- ld [$c708], a
- ld a, [hli]
- ld [$c70a], a
- add $5
- ld [$c70c], a
- ld a, [hli]
- ld [$c709], a
- add $4
- ld [$c70b], a
- ld a, $96
- ld [$c70d], a
- ld a, $5c
- ld [$c70e], a
- ld a, $1
- ld [$c70f], a
- ld hl, $c708
- call LoadMenuDataHeader
- call VerticalMenu
- jr nc, .asm_17dc6e
- ld a, $2
- ld [wMenuCursorY], a
-
-.asm_17dc6e
- call CloseWindow
- pop af
- ld [rSVBK], a
- ld a, [wMenuCursorY]
- cp $1
- jr nz, .asm_17dc85
- ld a, [$c68a]
- ld l, a
- ld a, [$c68a + 1]
- ld h, a
- jr .asm_17dc8d
-
-.asm_17dc85
- ld a, [$c68a + 2]
- ld l, a
- ld a, [$c68a + 3]
- ld h, a
-
-.asm_17dc8d
- push hl
- call Function17e349
- pop hl
- call Function17e40f
- ret
-; 17dc96
-
-MenuData2_17dc96:
- db $e0 ; flags
- db 2
- db "はい@"
- db "いいえ@"
-; 17dc9f
-
-Function17dc9f: ; 17dc9f
- call Function17e415
- call Function17e41e
- call RotateFourPalettesLeft
- ret
-; 17dca9
-
-Function17dca9: ; 17dca9
- call Function17e415
- call Function17e41e
-
-Function17dcaf:
- ld a, $5
- ld [rSVBK], a
- ld hl, UnknBGPals
- ld de, $8
- ld c, $8
-.asm_17dcbb
- push hl
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hl], a
- pop hl
- add hl, de
- dec c
- jr nz, .asm_17dcbb
- call RotateThreePalettesRight
- ld a, $4
- ld [rSVBK], a
- ret
-; 17dccf
-
-Function17dccf: ; 17dccf
- call Function17e415
- push hl
- ld a, [wcd4b]
- ld l, a
- ld a, [wcd4c]
- ld h, a
- ld a, [wcd2e]
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld b, a
- call Function17e43d
- call Function17e41e
-.asm_17dced
- ld a, [wcd78]
- ld l, a
- ld a, [wcd79]
- ld h, a
- ld a, [hl]
- cp $ff
- jr z, .asm_17dd0d
-.crash_loop
- cp $31
- jr nc, .crash_loop
- call Function17d711
- ld a, [wcd77]
- bit 7, a
- jr nz, .asm_17dd0d
- and a
- jr z, .asm_17dd11
- jr .asm_17dced
-
-.asm_17dd0d
- pop hl
- jp Function17e41e
-
-.asm_17dd11
- pop hl
- ret
-; 17dd13
-
-Function17dd13: ; 17dd13
- call Function17e415
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call Function17e41e
- call Function17e447
- push hl
- hlcoord 0, 0
- add hl, bc
- push hl
- pop bc
- pop hl
- call PlaceHLTextAtBC
- ret
-; 17dd30
-
-Function17dd30: ; 17dd30
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld b, $0
- ld a, [hli]
- push af
- call Function17e41e
- pop af
- hlcoord 0, 0
- add hl, de
- call Function17e600
- ret
-; 17dd49
-
-Function17dd49: ; 17dd49
- call Function17e415
- ld de, $c708
- ld bc, $a
- call CopyBytes
- ld a, [$c711]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .sram
- ld a, [$c708]
- ld [rSVBK], a
- jr .got_bank
-
-.sram
- ld a, [$c708]
- call GetSRAMBank
-
-.got_bank
- ld a, [$c709]
- ld l, a
- ld a, [$c70a]
- ld h, a
- ld de, $c688
- ld a, [$c711]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .close_sram
- ld a, $4
- ld [rSVBK], a
- jr .exited_bank
-
-.close_sram
- call CloseSRAM
-
-.exited_bank
- ld a, [$c711]
- ld c, a
- ld hl, $c712
- ld de, $c688
-.loop
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr z, .next
- jr c, .load
- jr .load2
-
-.next
- dec c
- jr nz, .loop
- ld a, [$c70d]
- ld l, a
- ld a, [$c70e]
- ld h, a
- jr .done
-
-.load2
- ld a, [$c70f]
- ld l, a
- ld a, [$c710]
- ld h, a
- jr .done
-
-.load
- ld a, [$c70b]
- ld l, a
- ld a, [$c70c]
- ld h, a
-
-.done
- call Function17e40f
- ret
-; 17ddcd
-
-Function17ddcd: ; 17ddcd
- call Function17e415
- ld de, $c708
- ld bc, $8
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .asm_17dde7
- ld a, [$c708]
- ld [rSVBK], a
- jr .asm_17dded
-
-.asm_17dde7
- ld a, [$c708]
- call GetSRAMBank
-
-.asm_17dded
- ld a, [$c709]
- ld e, a
- ld a, [$c70a]
- ld d, a
- ld a, [de]
- ld [$c710], a
- ld a, [$c70b]
- ld c, a
- ld b, $0
- ld a, [$c70a]
- cp $c0
- jr c, .asm_17de0c
- ld a, $4
- ld [rSVBK], a
- jr .asm_17de0f
-
-.asm_17de0c
- call CloseSRAM
-
-.asm_17de0f
- push hl
- ld hl, Unknown_17da8c
- add hl, bc
- ld a, [hl]
- ld hl, $c710
- and [hl]
- pop hl
- jr nz, .asm_17de26
- ld a, [$c70e]
- ld l, a
- ld a, [$c70f]
- ld h, a
- jr .asm_17de2e
-
-.asm_17de26
- ld a, [$c70c]
- ld l, a
- ld a, [$c70d]
- ld h, a
-
-.asm_17de2e
- call Function17e40f
- ret
-; 17de32
-
-Function17de32: ; 17de32
- call Function17e415
- ld de, $c708
- ld bc, $9
- call CopyBytes
- ld a, [$c710]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, $6
- call GetSRAMBank
- call Function17f4f6
- ld a, [$c708]
- ld e, a
- ld a, [$c709]
- ld d, a
- add hl, de
- ld e, l
- ld d, h
- ld a, [$c710]
- ld c, a
- ld hl, $c711
-.asm_17de61
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr z, .asm_17de6b
- jr c, .asm_17de82
- jr .asm_17de78
-
-.asm_17de6b
- dec c
- jr nz, .asm_17de61
- ld a, [$c70c]
- ld l, a
- ld a, [$c70d]
- ld h, a
- jr .asm_17de8a
-
-.asm_17de78
- ld a, [$c70e]
- ld l, a
- ld a, [$c70f]
- ld h, a
- jr .asm_17de8a
-
-.asm_17de82
- ld a, [$c70a]
- ld l, a
- ld a, [$c70b]
- ld h, a
-
-.asm_17de8a
- call CloseSRAM
- call Function17e40f
- ret
-; 17de91
-
-Function17de91: ; 17de91
- call Function17e415
- ld de, $c708
- ld bc, $7
- call CopyBytes
- ld a, $6
- call GetSRAMBank
- call Function17f4f6
- ld a, [$c708]
- ld e, a
- ld a, [$c709]
- ld d, a
- add hl, de
- ld e, l
- ld d, h
- ld a, [$c70a]
- ld c, a
- ld b, $0
- ld hl, Unknown_17da8c
- add hl, bc
- ld a, [hl]
- ld l, e
- ld h, d
- and [hl]
- jr nz, .asm_17deca
- ld a, [$c70d]
- ld l, a
- ld a, [$c70e]
- ld h, a
- jr .asm_17ded2
-
-.asm_17deca
- ld a, [$c70b]
- ld l, a
- ld a, [$c70c]
- ld h, a
-
-.asm_17ded2
- call CloseSRAM
- call Function17e40f
- ret
-; 17ded9
-
-Function17ded9: ; 17ded9
- call Function17e415
- ld de, $c708
- ld bc, $1f
- call CopyBytes
- call Function17e32b
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c708
- ld a, [hli]
- ld [CurPartySpecies], a
- ld [TempEnemyMonSpecies], a
- ld a, [hli]
- ld [CurPartyLevel], a
- ld a, [hli]
- ld b, a
- ld a, [PartyCount]
- cp $6
- jp nc, Function17e026
- xor a
- ld [MonType], a
- push hl
- push bc
- predef TryAddMonToParty
- callba SetCaughtData
- pop bc
- pop hl
- bit 1, b
- jr z, .asm_17df33
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonNicknames
- call SkipNames
- ld d, h
- ld e, l
- pop hl
- call CopyBytes
- pop bc
- jr .asm_17df37
-
-.asm_17df33
- ld de, $6
- add hl, de
-
-.asm_17df37
- bit 2, b
- jr z, .asm_17df5a
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonOT
- call SkipNames
- ld d, h
- ld e, l
- pop hl
- call CopyBytes
- ld a, [hli]
- ld b, a
- push hl
- callba SetGiftPartyMonCaughtData
- pop hl
- pop bc
- jr .asm_17df5e
-
-.asm_17df5a
- ld de, $7
- add hl, de
-
-.asm_17df5e
- bit 3, b
- jr z, .asm_17df79
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1ID
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- pop bc
- jr .asm_17df7b
-
-.asm_17df79
- inc hl
- inc hl
-
-.asm_17df7b
- bit 4, b
- jr z, .asm_17dfd0
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1DVs
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld a, [hl]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1MaxHP
- call GetPartyLocation
- ld d, h
- ld e, l
- push hl
- ld b, $0
- callba CalcPkmnStats
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1HP
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- pop hl
- pop bc
- jr .asm_17dfd2
-
-.asm_17dfd0
- inc hl
- inc hl
-
-.asm_17dfd2
- bit 5, b
- jr z, .asm_17dfea
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Item
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- pop bc
- jr .asm_17dfeb
-
-.asm_17dfea
- inc hl
-
-.asm_17dfeb
- bit 6, b
- jr z, .asm_17e01f
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Moves
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- push de
- ld bc, $4
- call CopyBytes
- pop de
- push hl
- push de
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1PP
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- predef FillPP
- pop hl
- pop bc
- jp asm_17e0ee
-
-.asm_17e01f
- ld de, $4
- add hl, de
- jp asm_17e0ee
-; 17e026
-
-Function17e026: ; 17e026
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld a, [sBoxCount]
- call CloseSRAM
- cp $14
- jp nc, .asm_17e0ea
- bit 0, b
- jp z, .asm_17e0ea
- push bc
- push hl
- callba LoadEnemyMon
- callba SentPkmnIntoBox
- callba SetBoxMonCaughtData
- pop hl
- pop bc
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
- bit 1, b
- jr z, .asm_17e067
- push bc
- ld bc, $b
- ld de, sBoxMonNicknames
- call CopyBytes
- pop bc
- jr .asm_17e06b
-
-.asm_17e067
- ld de, $6
- add hl, de
-
-.asm_17e06b
- bit 2, b
- jr z, .asm_17e08e
- push bc
- ld bc, $6
- ld de, sBoxMonOT
- call CopyBytes
- ld a, [hli]
- ld b, a
- push hl
- call CloseSRAM
- callba SetGiftBoxMonCaughtData
- ld a, $1
- call GetSRAMBank
- pop hl
- pop bc
- jr .asm_17e092
-
-.asm_17e08e
- ld de, $7
- add hl, de
-
-.asm_17e092
- bit 3, b
- jr z, .asm_17e0a2
- push bc
- ld de, sBoxMon1ID
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- pop bc
- jr .asm_17e0a4
-
-.asm_17e0a2
- inc hl
- inc hl
-
-.asm_17e0a4
- bit 4, b
- jr z, .asm_17e0b4
- push bc
- ld de, sBoxMon1DVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- pop bc
- jr .asm_17e0b6
-
-.asm_17e0b4
- inc hl
- inc hl
-
-.asm_17e0b6
- bit 5, b
- ld a, [hli]
- jr z, .asm_17e0be
- ld [sBoxMon1Item], a
-
-.asm_17e0be
- bit 6, b
- jr z, .asm_17e0e1
- push bc
- ld de, sBoxMon1Moves
- ld bc, $4
- call CopyBytes
- push hl
- ld hl, sBoxMon1Moves
- ld de, sBoxMon1PP
- predef FillPP
- call CloseSRAM
- pop hl
- pop bc
- inc hl
- inc hl
- jr asm_17e0ee
-
-.asm_17e0e1
- call CloseSRAM
- ld de, $6
- add hl, de
- jr asm_17e0ee
-
-.asm_17e0ea
- ld bc, $1a
- add hl, bc
-
-asm_17e0ee
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- ld [rSVBK], a
- push hl
- call Function17e349
- pop hl
- call Function17e40f
- ret
-; 17e0fd
-
-Function17e0fd: ; 17e0fd
- call Function17e415
- ld de, $c708
- ld bc, $6
- call CopyBytes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c708
- ld a, [hli]
- ld [CurItem], a
- ld a, [hli]
- ld [wItemQuantityChangeBuffer], a
- push hl
- ld hl, NumItems
- call ReceiveItem
- pop hl
- jr c, .asm_17e127
- inc hl
- inc hl
-
-.asm_17e127
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld h, a
- ld l, b
- pop af
- ld [rSVBK], a
- call Function17e40f
- ret
-; 17e133
-
-Function17e133: ; 17e133
- call Function17e415
- ld de, $c708
- ld bc, $5
- call CopyBytes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c708
- ld a, [hli]
- ld [ScriptVar], a
- push hl
- callba MobileCheckOwnMonAnywhere
- pop hl
- jr c, .asm_17e159
- inc hl
- inc hl
-
-.asm_17e159
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld h, a
- ld l, b
- pop af
- ld [rSVBK], a
- call Function17e40f
- ret
-; 17e165
-
-Function17e165: ; 17e165
- call Function17e415
- ld de, $c708
- ld bc, $5
- call CopyBytes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c708
- ld a, [hli]
- ld [CurItem], a
- push hl
- ld hl, NumItems
- call CheckItem
- pop hl
- jr c, .asm_17e195
- push hl
- ld hl, PCItems
- call CheckItem
- pop hl
- jr c, .asm_17e195
- inc hl
- inc hl
-
-.asm_17e195
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld h, a
- ld l, b
- pop af
- ld [rSVBK], a
- call Function17e40f
- ret
-; 17e1a1
-
-Function17e1a1: ; 17e1a1
- call Function17e415
- ld de, $c708
- ld bc, $d
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .asm_17e1bb
- ld a, [$c708]
- ld [rSVBK], a
- jr .asm_17e1c1
-
-.asm_17e1bb
- ld a, [$c708]
- call GetSRAMBank
-
-.asm_17e1c1
- ld a, [$c709]
- ld l, a
- ld a, [$c70a]
- ld h, a
- ld de, $c608
- ld a, [$c70b]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .asm_17e1e2
- ld a, $4
- ld [rSVBK], a
- jr .asm_17e1e5
-
-.asm_17e1e2
- call CloseSRAM
-
-.asm_17e1e5
- ld a, [$c70e]
- cp $c0
- jr c, .asm_17e1f3
- ld a, [$c70c]
- ld [rSVBK], a
- jr .asm_17e1f9
-
-.asm_17e1f3
- ld a, [$c70c]
- call GetSRAMBank
-
-.asm_17e1f9
- ld a, [$c70d]
- ld l, a
- ld a, [$c70e]
- ld h, a
- ld de, $c688
- ld a, [$c70b]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [$c70e]
- cp $c0
- jr c, .asm_17e21a
- ld a, $4
- ld [rSVBK], a
- jr .asm_17e21d
-
-.asm_17e21a
- call CloseSRAM
-
-.asm_17e21d
- ld a, [$c70b]
- ld c, a
- ld hl, $c688
- ld de, $c608
-.asm_17e227
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr z, .asm_17e231
- jr c, .asm_17e23e
- jr .asm_17e248
-
-.asm_17e231
- dec c
- jr nz, .asm_17e227
- ld a, [$c711]
- ld l, a
- ld a, [$c712]
- ld h, a
- jr .asm_17e250
-
-.asm_17e23e
- ld a, [$c70f]
- ld l, a
- ld a, [$c710]
- ld h, a
- jr .asm_17e250
-
-.asm_17e248
- ld a, [$c712 + 1]
- ld l, a
- ld a, [$c712 + 2]
- ld h, a
-
-.asm_17e250
- call Function17e40f
- ret
-; 17e254
-
-Function17e254: ; 17e254
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [de], a
- call Function17e41e
- ret
-; 17e261
-
-Function17e261: ; 17e261
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [de]
- add [hl]
- ld [de], a
- inc hl
- call Function17e41e
- ret
-; 17e270
-
-Function17e270: ; 17e270
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [de]
- sub [hl]
- ld [de], a
- inc hl
- call Function17e41e
- ret
-; 17e27f
-
-Function17e27f: ; 17e27f
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- call Function17e41e
- ld l, c
- ld h, b
- ld a, [de]
- add [hl]
- ld [de], a
- ret
-; 17e293
-
-Function17e293: ; 17e293
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- call Function17e41e
- ld l, c
- ld h, b
- ld a, [de]
- sub [hl]
- ld [de], a
- ret
-; 17e2a7
-
-Function17e2a7: ; 17e2a7
- call Function17e415
- call Function17e41e
- call Function17e32b
- xor a
- ld [wcf66], a
- callba Function118233
- ld de, GFX_17eb7e
- ld hl, VTiles2 tile $60
- lb bc, BANK(GFX_17eb7e), 1
- call Get2bpp
- ld a, [wc300]
- and a
- jr z, .asm_17e2d8
- cp $a
- jr z, .asm_17e2f7
- cp $b
- jr z, .asm_17e300
- call Function17e309
- ret
-
-.asm_17e2d8
- call Function17d60b
- call Function17e349
- xor a
- ld [wcd7a], a
- ld a, $5
- call GetSRAMBank
- ld hl, $aa73
- ld de, $aa7f
- ld bc, $c
- call CopyBytes
- call CloseSRAM
- ret
-
-.asm_17e2f7
- call Function17e349
- ld a, $1
- ld [wcd7a], a
- ret
-
-.asm_17e300
- call Function17e349
- ld a, $2
- ld [wcd7a], a
- ret
-; 17e309
-
-Function17e309: ; 17e309
- ld a, $2
- ld [wc303], a
- call Function17dcaf
- call ClearScreen
- call Function17e349
- call Function17d5f6
- callba DisplayMobileError
- call Function17e349
- call Function17dcaf
- xor a
- ld [wcd77], a
- ret
-; 17e32b
-
-Function17e32b: ; 17e32b
- ld a, $5
- call GetSRAMBank
- ld hl, $c608
- ld de, $b0b1
- ld bc, $40
- call CopyBytes
- ld hl, BGMapBuffer
- ld bc, $5b
- call CopyBytes
- call CloseSRAM
- ret
-; 17e349
-
-Function17e349: ; 17e349
- ld a, $5
- call GetSRAMBank
- ld hl, $b0b1
- ld de, $c608
- ld bc, $40
- call CopyBytes
- ld de, BGMapBuffer
- ld bc, $5b
- call CopyBytes
- call CloseSRAM
- ret
-; 17e367
-
-Function17e367: ; 17e367
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba SaveGameData_
- pop af
- ld [rSVBK], a
- ret
-; 17e37e
-
-Function17e37e: ; 17e37e
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba SaveAfterLinkTrade
- pop af
- ld [rSVBK], a
- ret
-; 17e395
-
-Function17e395: ; 17e395
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba SaveBox
- pop af
- ld [rSVBK], a
- ret
-; 17e3ac
-
-Function17e3ac: ; 17e3ac
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba SaveChecksum
- pop af
- ld [rSVBK], a
- ret
-; 17e3c3
-
-Function17e3c3: ; 17e3c3
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba UpdateTrainerRankingsChecksum2
- callba BackupMobileEventIndex
- pop af
- ld [rSVBK], a
- ret
-; 17e3e0
-
-Function17e3e0: ; 17e3e0
- call Function17e415
- ld a, [hli]
- ld c, a
- call Function17e41e
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrames
- ret
-; 17e3f0
-
-Function17e3f0: ; 17e3f0
- call Function17e415
- call Function17e41e
-.asm_17e3f6
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and $1
- ret nz
- ld a, [hl]
- and $2
- ret nz
- call WaitBGMap
- jr .asm_17e3f6
-; 17e409
-
-Function17e409: ; 17e409
- ld hl, wcd77
- set 7, [hl]
- ret
-; 17e40f
-
-Function17e40f: ; 17e40f
- ld de, UnknBGPals
- add hl, de
- jr Function17e41e
-
-Function17e415:
- ld a, [wcd78]
- ld l, a
- ld a, [wcd79]
- ld h, a
- inc hl
-
-Function17e41e:
- ld a, l
- ld [wcd78], a
- ld a, h
- ld [wcd79], a
- ret
-; 17e427
-
-Function17e427: ; 17e427
- ld hl, hJoyPressed
- ld a, [hl]
- and $1
- jr nz, .asm_17e432
- and $2
- ret z
-
-.asm_17e432
- ld a, $3
- ld [wcd77], a
- ret
-; 17e438
-
-Function17e438: ; 17e438
- ld hl, wcd77
- inc [hl]
- ret
-; 17e43d
-
-Function17e43d: ; 17e43d
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, bc
- ret
-; 17e447
-
-Function17e447: ; 17e447
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, de
- ret
-; 17e451
-
-Function17e451: ; 17e451
- ld a, [wcd42]
- and a
- ret z
- call Function17e51b
- call Function17e4dd
- ld a, [wcd2e]
- push af
- ld a, [wcd49]
- ld l, a
- ld a, [wcd4a]
- ld h, a
- ld a, [wcd2f]
- ld [wcd2e], a
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- push hl
- hlcoord 0, 0
- ld bc, $14
- ld a, [wcd23]
- call AddNTimes
- ld a, [CreditsTimer]
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- ld a, [wMobileCommsJumptableIndex]
-.asm_17e48b
- push af
- push hl
- ld a, [wcd24]
-.asm_17e490
- push af
- push hl
- ld a, [bc]
- inc bc
- ld e, a
- ld a, [bc]
- inc bc
- ld d, a
- push bc
- push hl
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, de
- push hl
- pop de
- pop hl
- call PlaceString
- pop bc
- pop hl
- ld a, [wcd26]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [wcd2e]
- inc a
- ld [wcd2e], a
- ld e, a
- ld a, [wcd42]
- cp e
- jr z, .asm_17e4d5
- pop af
- dec a
- jr nz, .asm_17e490
- pop hl
- ld a, [wcd27]
- ld de, $14
-.asm_17e4cb
- add hl, de
- dec a
- jr nz, .asm_17e4cb
- pop af
- dec a
- jr nz, .asm_17e48b
- jr .asm_17e4d8
-
-.asm_17e4d5
- pop af
- pop hl
- pop af
-
-.asm_17e4d8
- pop af
- ld [wcd2e], a
- ret
-; 17e4dd
-
-Function17e4dd: ; 17e4dd
- ld a, [wcd2c]
- and $1
- ret z
- ld a, [wcd29]
- hlcoord 0, 0
- ld bc, $14
- call AddNTimes
- ld a, [wcd28]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [wcd2f]
- and a
- jr z, .asm_17e4ff
- ld a, $61
- ld [hl], a
-
-.asm_17e4ff
- ld a, [wcd2a]
- ld bc, $14
- call AddNTimes
- ld a, [wcd42]
- ld c, a
- ld a, [wcd2e]
- ld b, a
- ld a, [wcd24]
- add b
- cp c
- ret z
- ret nc
- ld a, $ee
- ld [hl], a
- ret
-; 17e51b
-
-Function17e51b: ; 17e51b
- ld a, [wcd28]
- ld hl, CreditsTimer
- sub [hl]
- inc a
- ld [wcd4f], a
- hlcoord 0, 0
- ld bc, $14
- ld a, [wcd23]
- dec a
- call AddNTimes
- ld a, [CreditsTimer]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [wMobileCommsJumptableIndex]
- ld c, a
- ld a, [wcd27]
- call SimpleMultiply
-.asm_17e544
- push af
- push hl
- ld a, [wcd4f]
- ld c, a
- ld b, $0
- ld a, $7f
- call ByteFill
- pop hl
- ld bc, $14
- add hl, bc
- pop af
- dec a
- jr nz, .asm_17e544
- ret
-; 17e55b
-
-Function17e55b: ; 17e55b
- ld a, [wcd42]
- and a
- ret z
- ld a, $ed
- call Function17e571
- ret
-; 17e566
-
-Function17e566: ; 17e566
- ld a, [wcd42]
- and a
- ret z
- ld a, $7f
- call Function17e571
- ret
-; 17e571
-
-Function17e571: ; 17e571
- push af
- hlcoord 0, 0
- ld bc, $14
- ld a, [wcd23]
- call AddNTimes
- ld a, [CreditsTimer]
- ld c, a
- ld b, $0
- add hl, bc
- dec hl
- push hl
- ld a, [wcd31]
- dec a
- ld c, a
- ld a, [wcd27]
- call SimpleMultiply
- ld l, $0
- ld h, l
- ld bc, $14
- call AddNTimes
- ld a, [wcd30]
- dec a
- ld c, a
- ld a, [wcd26]
- call SimpleMultiply
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- add hl, bc
- pop af
- ld [hl], a
- ret
-; 17e5af
-
-Function17e5af: ; 17e5af
- ld a, [wcd2c]
- and $2
- ret z
- ld a, [wcd43]
- ld l, a
- ld a, [wMobileInactivityTimerMinutes]
- ld h, a
- bccoord 0, 0
- add hl, bc
- ld bc, $ffec
- add hl, bc
- ld a, [wMobileInactivityTimerSeconds]
- ld c, a
- ld b, $0
- ld a, [wMobileInactivityTimerFrames]
- call Function17e600
- ld a, [wcd2e]
- ld c, a
- ld b, $0
- ld a, [wcd4d]
- ld l, a
- ld a, [wcd4e]
- ld h, a
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, de
- push hl
- pop de
- ld a, [wcd43]
- ld l, a
- ld a, [wMobileInactivityTimerMinutes]
- ld h, a
- bccoord 0, 0
- add hl, bc
- call PlaceString
- ret
-; 17e600
-
-Function17e600: ; 17e600
-.asm_17e600
- push af
- push hl
- push bc
- ld a, $7f
- call ByteFill
- pop bc
- pop hl
- ld de, $14
- add hl, de
- pop af
- dec a
- jr nz, .asm_17e600
- ret
-; 17e613
-
-Function17e613: ; 17e613
- push hl
- hlcoord 0, 0
- ld bc, $14
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.asm_17e620
- jr z, .asm_17e626
- add hl, bc
- dec a
- jr .asm_17e620
-
-.asm_17e626
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- push hl
- ld a, [wcd53]
- ld [hli], a
- ld a, [de]
- inc de
- dec a
- dec a
- jr z, .asm_17e63f
- ld c, a
- ld a, [wcd53]
- inc a
-.asm_17e63b
- ld [hli], a
- dec c
- jr nz, .asm_17e63b
-
-.asm_17e63f
- ld a, [wcd53]
- add $2
- ld [hl], a
- pop hl
- ld bc, $14
- add hl, bc
- ld a, [de]
- dec de
- dec a
- dec a
- jr z, .asm_17e674
- ld b, a
-.asm_17e651
- push hl
- ld a, [wcd53]
- add $3
- ld [hli], a
- ld a, [de]
- dec a
- dec a
- jr z, .asm_17e664
- ld c, a
- ld a, $7f
-.asm_17e660
- ld [hli], a
- dec c
- jr nz, .asm_17e660
-
-.asm_17e664
- ld a, [wcd53]
- add $4
- ld [hl], a
- pop hl
- push bc
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_17e651
-
-.asm_17e674
- ld a, [wcd53]
- add $5
- ld [hli], a
- ld a, [de]
- dec a
- dec a
- jr z, .asm_17e689
- ld c, a
- ld a, [wcd53]
- add $6
-.asm_17e685
- ld [hli], a
- dec c
- jr nz, .asm_17e685
-
-.asm_17e689
- ld a, [wcd53]
- add $7
- ld [hl], a
- pop hl
- ret
-; 17e691
-
-Function17e691: ; 17e691
- push hl
- ld hl, NULL
- ld bc, $14
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- inc de
- and a
-.asm_17e69f
- jr z, .asm_17e6a5
- add hl, bc
- dec a
- jr .asm_17e69f
-
-.asm_17e6a5
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- dec de
-.asm_17e6ac
- push af
- push hl
- ld a, [de]
-.asm_17e6af
- push af
- push hl
- push hl
- bccoord 0, 0
- add hl, bc
- ld a, [hl]
- cp $7f
- jr z, .asm_17e6c2
- ld a, [wcd53]
- add $8
- jr .asm_17e6c7
-
-.asm_17e6c2
- ld a, [wcd53]
- jr .asm_17e6c7
-
-.asm_17e6c7
- pop hl
- bccoord 0, 0, AttrMap
- add hl, bc
- ld [hl], a
- pop hl
- inc hl
- pop af
- dec a
- jr nz, .asm_17e6af
- pop hl
- ld bc, $14
- add hl, bc
- pop af
- dec a
- jr nz, .asm_17e6ac
- pop hl
- ret
-; 17e6de
-
-Function17e6de: ; 17e6de
- push af
- ld a, [$c708]
- ld l, a
- ld a, [$c709]
- ld h, a
- decoord 0, 0, AttrMap
- add hl, de
- pop af
- ld b, $7
-.asm_17e6ee
- push hl
- ld c, $7
-.asm_17e6f1
- ld [hli], a
- dec c
- jr nz, .asm_17e6f1
- pop hl
- ld de, $14
- add hl, de
- dec b
- jr nz, .asm_17e6ee
- ret
-; 17e6fe
-
-
-PokemonNewsGFX: ; 17e6fe
-INCBIN "gfx/mobile/pokemon_news.2bpp"
-
-GFX_17eb7e:
-INCBIN "gfx/unknown/17eb7e.2bpp"
-
-TileAttrmap_17eb8e:
-INCBIN "gfx/unknown/17eb8e.attrmap"
-
-Palette_17eff6:
- RGB 24, 9, 8
- RGB 4, 9, 18
- RGB 18, 18, 12
- RGB 0, 0, 0
- RGB 24, 24, 18
- RGB 18, 18, 12
- RGB 4, 9, 18
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 23, 11, 10
- RGB 13, 6, 5
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 15, 25, 5
- RGB 10, 20, 0
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 28, 20
- RGB 10, 18, 15
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 22, 22, 12
- RGB 17, 12, 5
- RGB 0, 0, 0
- RGB 5, 5, 16
- RGB 8, 19, 28
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 27, 24, 0
- RGB 24, 16, 3
- RGB 0, 0, 0
-
-
-Function17f036:: ; 17f036
- ld a, $6
- call GetSRAMBank
- inc de
-.asm_17f03c
- call Function17f047
- jr c, .asm_17f043
- jr .asm_17f03c
-
-.asm_17f043
- call CloseSRAM
- ret
-; 17f047
-
-Function17f047: ; 17f047
- ld a, [de]
- inc de
- cp $50
- jr z, .finished
- cp $10
- jr nc, .finished
- dec a
- push de
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.finished
- scf
- ret
-; 17f061
-
-.Jumptable: ; 17f061
- dw Function17f081 ; 0
- dw Function17f0f8 ; 1
- dw Function17f154 ; 2
- dw Function17f181 ; 3
- dw Function17f1d0 ; 4
- dw Function17f220 ; 5
- dw Function17f27b ; 6
- dw Function17f2cb ; 7
- dw Function17f2ff ; 8
- dw Function17f334 ; 9
- dw Function17f382 ; a
- dw Function17f3c9 ; b
- dw Function17f3f0 ; c
- dw Function17f41d ; d
- dw Function17f44f ; e
- dw Function17f44f ; f
-; 17f081
-
-Function17f081: ; 17f081
- pop hl
- call Function17f524
- jr c, .asm_17f09f
- ld de, 4
- add hl, de
- ld a, [hli]
- inc hl
- inc hl
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f09d
- and a
- ret
-
-.asm_17f09d
- scf
- ret
-
-.asm_17f09f
- push bc
- ld de, wcd54
- ld bc, 7
- call CopyBytes
- pop bc
- push hl
- push bc
- call Function17f4f6
- pop bc
- ld a, [wcd54]
- ld e, a
- ld a, [wcd55]
- ld d, a
- add hl, de
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- push hl
- ld a, [wcd56]
- ld b, a
- ld a, [wcd57]
- ld c, a
- call MobilePrintNum
- ld a, l
- ld [wcd52], a
- ld a, h
- ld [wcd53], a
- ld a, [wcd59]
- and a
- jr z, .asm_17f0ee
- ld c, a
- ld a, [wcd57]
- inc a
- ld b, a
- ld e, l
- ld d, h
- dec de
-.asm_17f0e0
- ld a, c
- cp b
- jr z, .asm_17f0ea
- ld a, [de]
- dec de
- ld [hld], a
- dec b
- jr .asm_17f0e0
-
-.asm_17f0ea
- ld a, [wcd5a]
- ld [hl], a
-
-.asm_17f0ee
- pop hl
- ld a, [wcd58]
- call Function17f50f
- pop de
- and a
- ret
-; 17f0f8
-
-Function17f0f8: ; 17f0f8
- pop hl
- call Function17f524
- jr c, .asm_17f114
- ld de, $3
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f112
- and a
- ret
-
-.asm_17f112
- scf
- ret
-
-.asm_17f114
- push bc
- ld de, wcd54
- ld bc, $4
- call CopyBytes
- pop bc
- push hl
- push bc
- call Function17f4f6
- ld a, [wcd54]
- ld e, a
- ld a, [wcd55]
- ld d, a
- add hl, de
- ld de, $c608
- ld a, [wcd56]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, $50
- ld [de], a
- pop hl
- ld de, $c608
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd57]
- call Function17f50f
- pop de
- and a
- ret
-; 17f154
-
-Function17f154: ; 17f154
- pop hl
- call Function17f524
- jr c, .asm_17f167
- inc hl
- inc hl
- ld e, l
- ld d, h
- ld a, [de]
- cp $50
- jr z, .asm_17f165
- and a
- ret
-
-.asm_17f165
- scf
- ret
-
-.asm_17f167
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld c, l
- ld b, h
- pop de
- callba Function11c08f
- ld c, l
- ld b, h
- pop de
- and a
- ret
-; 17f181
-
-Function17f181: ; 17f181
- pop hl
- call Function17f524
- jr c, .asm_17f19d
- ld de, $2
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f19b
- and a
- ret
-
-.asm_17f19b
- scf
- ret
-
-.asm_17f19d
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld a, [hl]
- ld c, a
- ld de, $c608
- callba Function48c63
- pop hl
- ld de, $c608
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f1d0
-
-Function17f1d0: ; 17f1d0
- pop hl
- call Function17f524
- jr c, .asm_17f1ec
- ld de, $2
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f1ea
- and a
- ret
-
-.asm_17f1ea
- scf
- ret
-
-.asm_17f1ec
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld a, [hl]
- ld a, $1
- ld [rSVBK], a
- ld [wd265], a
- call GetPokemonName
- pop hl
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, $4
- ld [rSVBK], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f220
-
-Function17f220: ; 17f220
- pop hl
- call Function17f524
- jr c, .asm_17f23c
- ld de, $2
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f23a
- and a
- ret
-
-.asm_17f23a
- scf
- ret
-
-.asm_17f23c
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld a, [hl]
- ld e, a
- ld d, 0
- ld hl, .Genders
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- pop hl
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f26e
-
-.Genders: dw .Boy, .Girl
-.Boy: db "Boy@"
-.Girl: db "Girl@"
-
-Function17f27b: ; 17f27b
- pop hl
- call Function17f524
- jr c, .asm_17f297
- ld de, $2
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f295
- and a
- ret
-
-.asm_17f295
- scf
- ret
-
-.asm_17f297
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld a, [hl]
- ld a, $1
- ld [rSVBK], a
- ld [wd265], a
- call GetItemName
- pop hl
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, $4
- ld [rSVBK], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f2cb
-
-Function17f2cb: ; 17f2cb
- pop hl
- push bc
- ld a, [hli]
- ld [wcd54], a
- ld a, [hli]
- ld [wcd55], a
- ld a, [wcd2e]
- inc a
- ld [wcd56], a
- pop bc
- push hl
- ld l, c
- ld h, b
- push hl
- ld de, wcd56
- ld b, $1
- ld a, [wcd54]
- ld c, a
- call MobilePrintNum
- ld a, l
- ld [wcd52], a
- ld a, h
- ld [wcd53], a
- pop hl
- ld a, [wcd55]
- call Function17f50f
- pop de
- and a
- ret
-; 17f2ff
-
-Function17f2ff: ; 17f2ff
- pop hl
- push bc
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- ld a, $1
- ld [rSVBK], a
- ld hl, PlayerName
- ld de, $c608
- ld bc, $6
- call CopyBytes
- ld a, $4
- ld [rSVBK], a
- pop hl
- ld de, $c608
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f334
-
-Function17f334: ; 17f334
- pop hl
- push bc
- ld a, [hli]
- ld [wcd55], a
- and $f
- ld [wcd54], a
- pop bc
- push hl
- ld l, c
- ld h, b
- push hl
- ld a, [wcd55]
- bit 7, a
- jr nz, .asm_17f355
- ld a, BANK(sCrystalData)
- call GetSRAMBank
- ld a, [sCrystalData + 2]
- jr .asm_17f35d
-
-.asm_17f355
- ld a, $5
- call GetSRAMBank
- ld a, [$b2f3]
-
-.asm_17f35d
- ld c, a
- call CloseSRAM
- ld de, $c608
- callba Function48c63
- pop hl
- ld de, $c608
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f382
-
-Function17f382: ; 17f382
- pop hl
- push bc
- ld a, [hli]
- ld [wcd55], a
- and $f
- ld [wcd54], a
- pop bc
- push hl
- push bc
- ld l, c
- ld h, b
- ld a, [wcd55]
- bit 7, a
- jr nz, .asm_17f3a3
- ld a, BANK(sCrystalData)
- call GetSRAMBank
- ld de, sCrystalData + 3
- jr .asm_17f3ab
-
-.asm_17f3a3
- ld a, $5
- call GetSRAMBank
- ld de, $b2f4
-
-.asm_17f3ab
- ld a, PRINTNUM_LEADINGZEROS | 2
- ld b, a
- ld a, 3
- ld c, a
- call PrintNum
- call CloseSRAM
- ld a, l
- ld [wcd52], a
- ld a, h
- ld [wcd53], a
- pop hl
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f3c9
-
-Function17f3c9: ; 17f3c9
- push bc
- ld hl, wcd36
- ld de, $c708
- ld bc, 12
- call CopyBytes
- pop de
- ld c, $0
- callba Function11c075
- push hl
- ld hl, $c708
- ld de, wcd36
- ld bc, $c
- call CopyBytes
- pop bc
- pop de
- and a
- ret
-; 17f3f0
-
-Function17f3f0: ; 17f3f0
- pop hl
- push hl
- ld a, [hli]
- push af
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [de]
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld hl, UnknBGPals
- add hl, de
- ld e, l
- ld d, h
- pop hl
- call PlaceString
- pop af
- ld e, a
- ld d, $0
- pop hl
- add hl, de
- add hl, de
- inc hl
- inc hl
- inc hl
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- scf
- ret
-; 17f41d
-
-Function17f41d: ; 17f41d
- pop hl
- ld a, [hli]
- push hl
- push af
- ld l, c
- ld h, b
- ld bc, -TileMap + $10000
- add hl, bc
- ld de, -SCREEN_WIDTH
- ld c, $1
-.asm_17f42c
- ld a, h
- and a
- jr nz, .asm_17f435
- ld a, l
- cp SCREEN_WIDTH
- jr c, .asm_17f439
-
-.asm_17f435
- add hl, de
- inc c
- jr .asm_17f42c
-
-.asm_17f439
- hlcoord 0, 0
- ld de, SCREEN_WIDTH
- ld a, c
-.asm_17f440
- and a
- jr z, .asm_17f447
- add hl, de
- dec a
- jr .asm_17f440
-
-.asm_17f447
- pop af
- ld e, a
- ld d, 0
- add hl, de
- pop de
- and a
- ret
-; 17f44f
-
-Function17f44f: ; 17f44f
- pop hl
- call Function17f524
- jr c, .asm_17f46d
- ld de, $5
- add hl, de
- ld a, [hli]
- inc hl
- inc hl
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f46b
- and a
- ret
-
-.asm_17f46b
- scf
- ret
-
-.asm_17f46d
- push bc
- ld de, wcd54
- ld bc, $8
- call CopyBytes
- pop bc
- push hl
- push bc
- ld a, [wcd56]
- cp $c0
- jr c, .asm_17f488
- ld a, [wcd54]
- ld [rSVBK], a
- jr .asm_17f48e
-
-.asm_17f488
- ld a, [wcd54]
- call GetSRAMBank
-
-.asm_17f48e
- ld a, [wcd55]
- ld l, a
- ld a, [wcd56]
- ld h, a
- ld de, $c608
- ld a, [wcd57]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [wcd56]
- cp $c0
- jr c, .asm_17f4af
- ld a, $4
- ld [rSVBK], a
- jr .asm_17f4b7
-
-.asm_17f4af
- call CloseSRAM
- ld a, $6
- call GetSRAMBank
-
-.asm_17f4b7
- ld de, $c608
- pop hl
- push hl
- ld a, [wcd57]
- ld b, a
- ld a, [wcd58]
- ld c, a
- call MobilePrintNum
- ld a, l
- ld [wcd52], a
- ld a, h
- ld [wcd53], a
- ld a, [wcd5a]
- and a
- jr z, .asm_17f4ec
- ld c, a
- ld a, [wcd58]
- inc a
- ld b, a
- ld e, l
- ld d, h
- dec de
-.asm_17f4de
- ld a, c
- cp b
- jr z, .asm_17f4e8
- ld a, [de]
- dec de
- ld [hld], a
- dec b
- jr .asm_17f4de
-
-.asm_17f4e8
- ld a, [wcd5b]
- ld [hl], a
-
-.asm_17f4ec
- pop hl
- ld a, [wcd59]
- call Function17f50f
- pop de
- and a
- ret
-; 17f4f6
-
-Function17f4f6: ; 17f4f6
- ld a, [wcd6a]
- ld l, a
- ld a, [wcd6b]
- ld h, a
- ld a, [wcd47]
- ld c, a
- ld a, [BGMapPalBuffer]
- ld b, a
- ld a, [wcd2e]
-.asm_17f509
- and a
- ret z
- dec a
- add hl, bc
- jr .asm_17f509
-; 17f50f
-
-Function17f50f: ; 17f50f
- and a
- jr z, .asm_17f519
- ld c, a
- ld b, $0
- add hl, bc
- ld c, l
- ld b, h
- ret
-
-.asm_17f519
- ld a, [wcd52]
- ld c, a
- ld l, a
- ld a, [wcd53]
- ld b, a
- ld h, a
- ret
-; 17f524
-
-Function17f524: ; 17f524
- push hl
- push bc
- push de
- ld a, [wcd42]
- dec a
- ld b, a
- ld a, [wcd2e]
- cp b
- jr z, .asm_17f53a
- ld hl, wcd68
- cp [hl]
-.asm_17f536
- pop de
- pop bc
- pop hl
- ret
-
-.asm_17f53a
- scf
- jr .asm_17f536
-; 17f53d
-
-BattleTowerMobileError: ; 17f53d
- call FadeToMenu
- xor a
- ld [wc303], a
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
-
- call DisplayMobileError
-
- pop af
- ld [rSVBK], a
- call ExitAllMenus
- ret
-; 17f555
-
-DisplayMobileError: ; 17f555
-.loop
- call JoyTextDelay
- call .RunJumptable
- ld a, [wc303]
- bit 7, a
- jr nz, .quit
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- jr .loop
-
-.quit
- call .deinit
- ret
-
-.deinit
- ld a, [wc300]
- cp $22
- jr z, .asm_17f597
- cp $31
- jr z, .asm_17f58a
- cp $33
- ret nz
- ld a, [wc301]
- cp $1
- ret nz
- ld a, [wc302]
- cp $2
- ret nz
- jr .asm_17f5a1
-
-.asm_17f58a
- ld a, [wc301]
- cp $3
- ret nz
- ld a, [wc302]
- and a
- ret nz
- jr .asm_17f5a1
-
-.asm_17f597
- ld a, [wc301]
- and a
- ret nz
- ld a, [wc302]
- and a
- ret nz
-
-.asm_17f5a1
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- xor a
- ld [sMobileLoginPassword], a
- call CloseSRAM
- ret
-; 17f5ae
-
-.RunJumptable: ; 17f5ae
- jumptable .Jumptable, wc303
-; 17f5bd
-
-.Jumptable: ; 17f5bd
- dw Function17f5c3
- dw Function17ff23
- dw Function17f5d2
-; 17f5c3
-
-Function17f5c3: ; 17f5c3
- call Function17f5e4
- callba FinishExitMenu
- ld a, $1
- ld [wc303], a
- ret
-; 17f5d2
-
-Function17f5d2: ; 17f5d2
- call Function17f5e4
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- call SetPalettes
- ld a, $1
- ld [wc303], a
- ret
-; 17f5e4
-
-Function17f5e4: ; 17f5e4
- ld a, $8
- ld [MusicFade], a
- ld de, MUSIC_NONE
- ld a, e
- ld [MusicFadeID], a
- ld a, d
- ld [MusicFadeID + 1], a
- ld a, " "
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ld a, $6
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- hlcoord 2, 1
- ld b, $1
- ld c, $e
- call Function3eea
- hlcoord 1, 4
- ld b, $c
- ld c, $10
- call Function3eea
- hlcoord 3, 2
- ld de, String_17f6dc
- call PlaceString
- call Function17ff3c
- jr nc, .asm_17f632
- hlcoord 11, 2
- call Function17f6b7
-
-.asm_17f632
- ld a, [wc300]
- cp $d0
- jr nc, .asm_17f684
- cp $10
- jr c, .asm_17f679
- sub $10
- cp $24
- jr nc, .asm_17f679
- ld e, a
- ld d, $0
- ld hl, Table_17f706
- add hl, de
- add hl, de
- ld a, [wc301]
- ld e, a
- ld a, [wc302]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld h, a
- ld l, c
- ld a, [hli]
- and a
- jr z, .asm_17f679
- ld c, a
-.asm_17f65d
- ld a, [hli]
- ld b, a
- ld a, [hli]
- cp $ff
- jr nz, .asm_17f667
- cp b
- jr z, .asm_17f66e
-
-.asm_17f667
- xor d
- jr nz, .asm_17f674
- ld a, b
- xor e
- jr nz, .asm_17f674
-
-.asm_17f66e
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- jr .asm_17f67d
-
-.asm_17f674
- inc hl
- inc hl
- dec c
- jr nz, .asm_17f65d
-
-.asm_17f679
- ld a, $d9
- jr .asm_17f684
-
-.asm_17f67d
- hlcoord 2, 6
- call PlaceString
- ret
-
-.asm_17f684
- sub $d0
- ld e, a
- ld d, 0
- ld hl, Table_17f699
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- hlcoord 2, 6
- call PlaceString
- ret
-; 17f699
-
-Table_17f699: ; 17f699
- dw String_17fedf
- dw String_17fdd9
- dw String_17fdd9
- dw String_17fe03
- dw String_17fd84
- dw String_17fe63
- dw String_17fdb2
- dw String_17fe4b
- dw String_17fe03
- dw String_17fe03
- dw String_17fe03
-; 17f6af
-
-Palette_17f6af: ; 17f6af
- RGB 5, 5, 16
- RGB 8, 19, 28
- RGB 0, 0, 0
- RGB 31, 31, 31
-; 17f6b7
-
-Function17f6b7: ; 17f6b7
- ld a, [wc300]
- call .bcd_two_digits
- inc hl
- ld a, [wc302]
- and $f
- call .bcd_digit
- ld a, [wc301]
- call .bcd_two_digits
- ret
-; 17f6cd
-
-.bcd_two_digits ; 17f6cd
- ld c, a
- and $f0
- swap a
- call .bcd_digit
- ld a, c
- and $f
-
-.bcd_digit ; 17f6d8
- add "0"
- ld [hli], a
- ret
-; 17f6dc
-
-String_17f6dc: ; 17f6dc
- db "つうしんエラー ー@"
-; 17f6e8
-
-String_17f6e8: ; 17f6e8
- db "みていぎ", $25, "エラーです"
- next "プログラム", $1f
- next "かくにん してください"
- db "@"
-; 17f706
-
-Table_17f706:
- dw Unknown_17f74e
- dw Unknown_17f753
- dw Unknown_17f758
- dw Unknown_17f75d
- dw Unknown_17f762
- dw Unknown_17f767
- dw Unknown_17f778
- dw Unknown_17f77d
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f787
- dw Unknown_17f78c
- dw Unknown_17f791
- dw Unknown_17f796
- dw Unknown_17f79b
- dw Unknown_17f7a0
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7ea
- dw Unknown_17f7ff
- dw Unknown_17f844
-
-Unknown_17f74e: db 1
- dbbw $0, $0, String_17f891
-
-Unknown_17f753: db 1
- dbbw $0, $0, String_17f8d1
-
-Unknown_17f758: db 1
- dbbw $0, $0, String_17f913
-
-Unknown_17f75d: db 1
- dbbw $0, $0, String_17f8d1
-
-Unknown_17f762: db 1
- dbbw $0, $0, String_17fa71
-
-Unknown_17f767: db 4
- dbbw $0, $0, String_17f946
- dbbw $1, $0, String_17f946
- dbbw $2, $0, String_17f946
- dbbw $3, $0, String_17f946
-
-Unknown_17f778: db 1
- dbbw $0, $0, String_17f98e
-
-Unknown_17f77d: db 1
- dbbw $0, $0, String_17f98e
-
-Unknown_17f782: db 1
- dbbw $0, $0, String_17f98e
-
-Unknown_17f787: db 1
- dbbw $0, $0, String_17f98e
-
-Unknown_17f78c: db 1
- dbbw $0, $0, String_17f9d0
-
-Unknown_17f791: db 1
- dbbw $0, $0, String_17fa14
-
-Unknown_17f796: db 1
- dbbw $0, $0, String_17fcbf
-
-Unknown_17f79b: db 1
- dbbw $0, $0, String_17fa71
-
-Unknown_17f7a0: db 1
- dbbw $0, $0, String_17fbfe
-
-Unknown_17f7a5: db 17
- dbbw $0, $0, String_17f98e
- dbbw $21, $2, String_17fcbf
- dbbw $21, $4, String_17fcbf
- dbbw $50, $4, String_17faf9
- dbbw $51, $4, String_17fcbf
- dbbw $52, $4, String_17fcbf
- dbbw $0, $5, String_17f98e
- dbbw $1, $5, String_17f98e
- dbbw $2, $5, String_17f98e
- dbbw $3, $5, String_17f98e
- dbbw $4, $5, String_17f98e
- dbbw $50, $5, String_17faf9
- dbbw $51, $5, String_17faf9
- dbbw $52, $5, String_17fcbf
- dbbw $53, $5, String_17faf9
- dbbw $54, $5, String_17fcbf
- dbbw $ff, $ff, String_17fcbf
-
-Unknown_17f7ea: db 5
- dbbw $0, $0, String_17f98e
- dbbw $2, $0, String_17fb2a
- dbbw $3, $0, String_17fb6e
- dbbw $4, $0, String_17f98e
- dbbw $ff, $ff, String_17fcbf
-
-Unknown_17f7ff: db 17
- dbbw $0, $0, String_17f98e
- dbbw $1, $3, String_17f98e
- dbbw $2, $3, String_17f98e
- dbbw $0, $4, String_17f98e
- dbbw $1, $4, String_17f98e
- dbbw $3, $4, String_17fbb6
- dbbw $4, $4, String_17fbb6
- dbbw $5, $4, String_17f98e
- dbbw $6, $4, String_17f98e
- dbbw $7, $4, String_17f98e
- dbbw $8, $4, String_17fbfe
- dbbw $0, $5, String_17fa49
- dbbw $1, $5, String_17f98e
- dbbw $2, $5, String_17fa49
- dbbw $3, $5, String_17fab0
- dbbw $4, $5, String_17fa49
- dbbw $ff, $ff, String_17fa49
-
-Unknown_17f844: db 19
- dbbw $1, $1, String_17fc3e
- dbbw $2, $1, String_17fc88
- dbbw $3, $1, String_17fcff
- dbbw $4, $1, String_17fd84
- dbbw $5, $1, String_17fd84
- dbbw $6, $1, String_17fd47
- dbbw $1, $2, String_17fb6e
- dbbw $2, $2, String_17f98e
- dbbw $3, $2, String_17fd84
- dbbw $4, $2, String_17f98e
- dbbw $5, $2, String_17fa49
- dbbw $6, $2, String_17fd84
- dbbw $99, $2, String_17fc88
- dbbw $1, $3, String_17fa49
- dbbw $1, $4, String_17fa49
- dbbw $2, $4, String_17fa49
- dbbw $3, $4, String_17fa49
- dbbw $4, $4, String_17fa49
- dbbw $ff, $ff, String_17fa49
-
-String_17f891: ; 17f891
- db "モバイルアダプタが ただしく"
- next "さしこまれていません"
- next "とりあつかいせつめいしょを"
- next "ごらんのうえ しっかりと"
- next "さしこんで ください"
- db "@"
-
-String_17f8d1: ; 17f8d1
- db "でんわが うまく かけられないか"
- next "でんわかいせんが こんでいるので"
- next "つうしん できません"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17f913: ; 17f913
- db "でんわかいせんが こんでいるため"
- next "でんわが かけられません"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17f946: ; 17f946
- db "モバイルアダプタの エラーです"
- next "しばらく まって"
- next "かけなおして ください"
- next "なおらない ときは"
- next "モバイルサポートセンターへ"
- next "おといあわせください"
- db "@"
-
-String_17f98e: ; 17f98e
- db "つうしんエラーです"
- next "しばらく まって"
- next "かけなおして ください"
- next "なおらない ときは"
- next "モバイルサポートセンターへ"
- next "おといあわせください"
- db "@"
-
-String_17f9d0: ; 17f9d0
- db "ログインパスワードか"
- next "ログイン アイディーに"
- next "まちがいがあります"
- next "パスワードを かくにんして"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fa14: ; 17fa14
- db "でんわが きれました"
- next "とりあつかいせつめいしょを"
- next "ごらんのうえ"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fa49: ; 17fa49
- db "モバイルセンターの"
- next "つうしんエラーです"
- next "しばらくまって"
- next "かけなおして ください"
- db "@"
-
-String_17fa71: ; 17fa71
- db "モバイルアダプタに"
- next "とうろくされた じょうほうが"
- next "ただしく ありません"
- next "モバイルトレーナーで"
- next "しょきとうろくを してください"
- db "@"
-
-String_17fab0: ; 17fab0
- db "モバイルセンターが"
- next "こんでいて つながりません"
- next "しばらくまって"
- next "かけなおして ください"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17faf9: ; 17faf9
- db "あてさき メールアドレスに"
- next "まちがいがあります"
- next "ただしい メールアドレスを"
- next "いれなおしてください"
- db "@"
-
-String_17fb2a: ; 17fb2a
- db "メールアドレスに"
- next "まちがいが あります"
- next "とりあつかいせつめいしょを"
- next "ごらんのうえ"
- next "モバイルトレーナーで"
- next "しょきとうろくを してください"
- db "@"
-
-String_17fb6e: ; 17fb6e
- db "ログインパスワードに"
- next "まちがいが あるか"
- next "モバイルセンターの エラーです"
- next "パスワードを かくにんして"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fbb6: ; 17fbb6
- db "データの よみこみが できません"
- next "しばらくまって"
- next "かけなおして ください"
- next "なおらない ときは"
- next "モバイルサポートセンターへ"
- next "おといあわせください"
- db "@"
-
-String_17fbfe: ; 17fbfe
- db "じかんぎれです"
- next "でんわが きれました"
- next "でんわを かけなおしてください"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fc3e: ; 17fc3e
- db "ごりよう りょうきんの "
- next "おしはらいが おくれたばあいには"
- next "ごりようが できなくなります"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fc88: ; 17fc88
- db "おきゃくさまの ごつごうにより"
- next "ごりようできません"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fcbf: ; 17fcbf
- db "でんわかいせんが こんでいるか"
- next "モバイルセンターの エラーで"
- next "つうしんが できません"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fcff: ; 17fcff
- db "ごりよう りょうきんが"
- next "じょうげんを こえているため"
- next "こんげつは ごりようできません"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fd47: ; 17fd47
- db "げんざい モバイルセンターの"
- next "てんけんを しているので"
- next "つうしんが できません"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fd84: ; 17fd84
- db "データの よみこみが できません"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-
-String_17fdb2: ; 17fdb2
- db "3ぷん いじょう なにも"
- next "にゅうりょく しなかったので"
- next "でんわが きれました"
- db "@"
-
-String_17fdd9: ; 17fdd9
- db "つうしんが うまく"
- next "できませんでした"
- next "もういちど はじめから"
- next "やりなおしてください"
- db "@"
-
-String_17fe03: ; 17fe03
- db "データの よみこみが できません"
- next "しばらくまって"
- next "かけなおして ください"
- next "なおらない ときは"
- next "モバイルサポートセンターへ"
- next "おといあわせください"
- db "@"
-
-String_17fe4b: ; 17fe4b
- db "まちじかんが ながいので"
- next "でんわが きれました"
- db "@"
-
-String_17fe63: ; 17fe63
- db "あいての モバイルアダプタと"
- next "タイプが ちがいます"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fe9a: ; 17fe9a ; unreferenced
- db "ポケモンニュースが"
- next "あたらしくなっているので"
- next "レポートを おくれません"
- next "あたらしい ポケモンニュースの"
- next "よみこみを さきに してください"
- db "@"
-
-String_17fedf: ; 17fedf
- db "つうしんの じょうきょうが"
- next "よくないか かけるあいてが"
- next "まちがっています"
- next "もういちど かくにんをして"
- next "でんわを かけなおして ください"
- db "@"
-; 17ff23
-
-Function17ff23: ; 17ff23
- ld a, [hJoyPressed]
- and a
- ret z
- ld a, $8
- ld [MusicFade], a
- ld a, [wMapMusic]
- ld [MusicFadeID], a
- xor a
- ld [MusicFadeID + 1], a
- ld hl, wc303
- set 7, [hl]
- ret
-; 17ff3c
-
-Function17ff3c: ; 17ff3c
- nop
- ld a, [wc300]
- cp $d0
- ret c
- hlcoord 10, 2
- ld de, String_17ff68
- call PlaceString
- ld a, [wc300]
- push af
- sub $d0
- inc a
- ld [wc300], a
- hlcoord 14, 2
- ld de, wc300
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- pop af
- ld [wc300], a
- and a
- ret
-; 17ff68
-
-String_17ff68: ; 17ff68
- db "101@"
-; 17ff6c
--- a/misc/mobile_menu.asm
+++ /dev/null
@@ -1,879 +1,0 @@
-MainMenu_Mobile: ; 49efc
- call ClearBGPalettes
- ld a, MUSIC_MOBILE_ADAPTER_MENU
- ld [wMapMusic], a
- ld de, MUSIC_MOBILE_ADAPTER_MENU
- call Function4a6c5
-Function49f0a: ; 49f0a
- call ClearBGPalettes
- call Function4a3a7
- call Function4a492
- call ClearBGPalettes
-Function49f16: ; 49f16
- call MobileMenu_InitMenuBuffers
- ld c, 12
- call DelayFrames
- hlcoord 4, 0
- ld b, 10
- ld c, 10
- call Function48cdc
- hlcoord 6, 2
- ld de, MobileString1
- call PlaceString
- hlcoord 0, 12
- ld b, 4
- ld c, SCREEN_HEIGHT
- call TextBox
- xor a
- ld de, String_0x49fe9
- hlcoord 1, 14
- call PlaceString
- call WaitBGMap2
- call SetPalettes
- call StaticMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
- jr .check_buttons
-
-.joy_loop
- call ScrollingMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
-
-.check_buttons
- bit A_BUTTON_F, a
- jr nz, .a_button
- bit B_BUTTON_F, a
- jr nz, .b_button
- jr .next
-
-.a_button
- ld hl, wMenuCursorY
- ld a, [hl]
- cp 1
- jp z, Function4a098
- cp 2
- jp z, Function4a0b9
- cp 3
- jp z, Function4a0c2
- cp 4
- jp z, Function4a100
- ld a, 1
- call MenuClickSound
-.b_button
- pop bc
- call ClearBGPalettes
- call ClearTileMap
- ld a, MUSIC_MAIN_MENU
- ld [wMapMusic], a
- ld de, MUSIC_MAIN_MENU
- call Function4a6c5
- ret
-
-.next
- ld hl, wMenuCursorY
- ld a, [hl]
- dec a
- ld hl, MobileStrings2
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, 4
- ld c, SCREEN_HEIGHT
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- jp .useless_jump
-
-.useless_jump
- call MobileMenu_InitMenuBuffers
- pop bc
- ld hl, wMenuCursorY
- ld [hl], b
- ld b, $a
- ld c, $1
- hlcoord 5, 1
- call ClearBox
- jp .joy_loop
-; 49fcc
-
-
-MobileString1: ; 49fcc
- db "めいしフ,ルダー"
- next "あいさつ"
- next "プロフィール"
- next "せ", $1e, "い"
- next "もどる"
- db "@"
-; 49fe9
-
-
-MobileStrings2:
-
-String_0x49fe9: ; 49fe9
- db "めいし¯つくったり"
- next "ほぞんしておける フ,ルダーです@"
-; 4a004
-
-String_0x4a004: ; 4a004
- db "モバイルたいせんや じぶんのめいしで"
- next "つかう あいさつ¯つくります@"
-; 4a026
-
-String_0x4a026: ; 4a026
- db "あなた%じゅうしょや ねんれいの"
- next "せ", $1e, "い¯かえられます@"
-; 4a042
-
-String_0x4a042: ; 4a042
- db "モバイルセンター", $1d, "せつぞくするとき"
- next "ひつような こと¯きめます@"
-; 4a062
-
-String_0x4a062: ; 4a062
- db "まえ%がめん ", $1d, "もどります"
- next "@"
-; 4a071
-
-MobileMenu_InitMenuBuffers: ; 4a071 (12:6071)
- ld hl, w2DMenuCursorInitY
- ld a, 2
- ld [hli], a
- ld a, 5 ; w2DMenuCursorInitX
- ld [hli], a
- ld a, 5 ; w2DMenuNumRows
- ld [hli], a
- ld a, 1 ; w2DMenuNumCols
- ld [hli], a
- ld [hl], $0 ; w2DMenuFlags1
- set 5, [hl]
- inc hl
- xor a ; w2DMenuFlags2
- ld [hli], a
- ld a, $20 ; w2DMenuCursorOffsets
- ld [hli], a
- ; this is a stupid way to load $c3
- ld a, A_BUTTON
- add D_UP
- add D_DOWN
- add B_BUTTON
- ld [hli], a ; wMenuJoypadFilter
- ld a, 1
- ld [hli], a ; wMenuCursorY, wMenuCursorX
- ld [hli], a ; wMenuCursorY, wMenuCursorX
- ret
-
-Function4a098: ; 4a098 (12:6098)
- ld a, 2
- call MenuClickSound
- call PlaceHollowCursor
- call WaitBGMap
- call LoadStandardMenuDataHeader
- callba Function89de0
- call Call_ExitMenu
- call MG_Mobile_Layout_LoadPals
- call Function4a485
- pop bc
- jp Function49f16
-
-Function4a0b9: ; 4a0b9 (12:60b9)
- ld a, 2
- call MenuClickSound
- pop bc
- jp Function4a4c4
-
-Function4a0c2: ; 4a0c2 (12:60c2)
- ld a, 2
- call MenuClickSound
- ld a, BANK(sPlayerData)
- call GetSRAMBank
- ld hl, sPlayerData + PlayerName - wPlayerData
- ld de, PlayerName
- ld bc, 6 ; japanese name length
- call CopyBytes
- call CloseSRAM
- callba _LoadData
- ld c, 2
- call DelayFrames
- ld c, $1
- call InitMobileProfile
- push af
- call ClearBGPalettes
- pop af
- and a
- jr nz, .skip_save
- callba _SaveData
-.skip_save
- ld c, 5
- call DelayFrames
- jr asm_4a111
-
-Function4a100: ; 4a100 (12:6100)
- ld a, 2
- call MenuClickSound
- call ClearBGPalettes
- call Function4a13b
- call ClearBGPalettes
- call ClearTileMap
-
-asm_4a111: ; 4a111 (12:6111)
- pop bc
- call LoadFontsExtra
- jp Function49f0a
-
-Function4a118: ; 4a118 (12:6118)
- ld hl, w2DMenuCursorInitY
- ld a, $1
- ld [hli], a
- ld a, $d
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $2
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hli], a
- ret
-
-Function4a13b: ; 4a13b (12:613b)
- call Function4a3a7
- call Function4a492
- call Function4a373
- ld c, 10
- call DelayFrames
-
-Function4a149: ; 4a149 (12:6149)
- hlcoord 1, 2
- ld b, $6
- ld c, $10
- call Function48cdc
- hlcoord 3, 4
- ld de, String_4a1ef
- call PlaceString
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld a, [wMenuCursorY]
- dec a
- ld hl, Strings_4a23d
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- call SetPalettes
- call StaticMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
- jr asm_4a19d
-
-Function4a195: ; 4a195 (12:6195)
- call ScrollingMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
-
-asm_4a19d: ; 4a19d (12:619d)
- bit 0, a
- jr nz, .asm_4a1a7
- bit 1, a
- jr nz, .asm_4a1ba
- jr .asm_4a1bc
-.asm_4a1a7
- ld hl, wMenuCursorY
- ld a, [hl]
- cp $1
- jp z, Function4a20e
- cp $2
- jp z, Function4a221
- ld a, $1
- call MenuClickSound
-.asm_4a1ba
- pop bc
- ret
-.asm_4a1bc
- ld hl, wMenuCursorY
- ld a, [hl]
- dec a
- ld hl, Strings_4a23d
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- jr .asm_4a1db
-.asm_4a1db
- call Function4a373
- pop bc
- ld hl, wMenuCursorY
- ld [hl], b
- lb bc, 6, 1
- hlcoord 2, 3
- call ClearBox
- jp Function4a195
-; 4a1ef (12:61ef)
-
-String_4a1ef: ; 4a1ef
- db "モバイルセンター¯えらぶ"
- next "ログインパスワード¯いれる"
- next "もどる@"
-; 4a20e
-
-Function4a20e: ; 4a20e (12:620e)
- ld a, $1
- call MenuClickSound
- callba Function1719c8
- call ClearBGPalettes
- call DelayFrame
- jr Function4a239
-
-Function4a221: ; 4a221 (12:6221)
- ld a, $1
- call MenuClickSound
- call Function4a28a
- jr c, Function4a239
- call Function4a373
- ld a, $2
- ld [wMenuCursorY], a
- jr .asm_4a235
-.asm_4a235
- pop bc
- jp Function4a149
-
-Function4a239: ; 4a239 (12:6239)
- pop bc
- jp Function4a13b
-; 4a23d (12:623d)
-
-Strings_4a23d: ; 4a23d
- db "いつも せつぞく¯する"
- next "モバイルセンター¯えらびます@"
-
- db "モバイルセンター", $1d, "せつぞくするとき"
- next "つかうパスワード¯ほぞんできます@"
-
- db "まえ%がめん ", $1d, "もどります@"
-
- db "@"
-; 4a28a
-
-Function4a28a: ; 4a28a (12:628a)
- hlcoord 2, 3
- lb bc, 6, 1
- ld a, " "
- call Function4a6d8
- call PlaceHollowCursor
- call WaitBGMap
- call LoadStandardMenuDataHeader
- ld a, $5
- call GetSRAMBank
- ld a, [$aa4b]
- call CloseSRAM
- and a
- jr z, .asm_4a2df
- hlcoord 12, 0
- ld b, $5
- ld c, $6
- call Function48cdc
- hlcoord 14, 1
- ld de, String_4a34b
- call PlaceString
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- call Function4a118
- call ScrollingMenuJoypad
- push af
- call PlayClickSFX
- pop af
- bit B_BUTTON_F, a
- jr nz, .quit
- ld a, [wMenuCursorY]
- cp $2
- jr z, .DeleteLoginPassword
- cp $3
- jr z, .quit
-.asm_4a2df
- callba Function11765d
- call ClearBGPalettes
- call Call_ExitMenu
- call LoadFontsExtra
- scf
- ret
-
-.DeleteLoginPassword:
- call PlaceHollowCursor
- ld hl, UnknownText_0x4a358
- call PrintText
- hlcoord 14, 7
- ld b, 3
- ld c, 4
- call TextBox
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- ld hl, DeletePassword_YesNo_MenuDataHeader
- call LoadMenuDataHeader
- call VerticalMenu
- bit B_BUTTON_F, a
- jr nz, .dont_delete_password
- ld a, [wMenuCursorY]
- cp $2
- jr z, .dont_delete_password
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- ld hl, sMobileLoginPassword
- xor a
- ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
- call ByteFill
- call CloseSRAM
- ld hl, UnknownText_0x4a35d
- call PrintText
- call JoyWaitAorB
-.dont_delete_password
- call ExitMenu
-.quit
- call Call_ExitMenu
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- xor a
- ret
-; 4a346 (12:6346)
-
-MenuDataHeader_0x4a346: ; 0x4a346
- db $40 ; flags
- db 00, 12 ; start coords
- db 06, 19 ; end coords
-
-String_4a34b: ; 4a34b
- db "いれなおす"
- next "けす"
- next "もどる@"
-; 4a358
-
-UnknownText_0x4a358: ; 0x4a358
- ; Delete the saved LOG-IN PASSWORD?
- text_jump UnknownText_0x1c5196
- db "@"
-; 0x4a35d
-
-UnknownText_0x4a35d: ; 0x4a35d
- ; Deleted the LOG-IN PASSWORD.
- text_jump UnknownText_0x1c51b9
- db "@"
-; 0x4a362
-
-DeletePassword_YesNo_MenuDataHeader: ; 0x4a362
- db $40 ; flags
- db 07, 14 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_0x4a36a
- db 2 ; default option
-; 0x4a36a
-
-MenuData2_0x4a36a: ; 0x4a36a
- db $e0 ; flags
- db 2 ; items
- db "はい@"
- db "いいえ@"
-; 0x4a373
-
-Function4a373: ; 4a373 (12:6373)
- ld hl, w2DMenuCursorInitY
- ld a, $4
- ld [hli], a
- ld a, $2
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
- add $2
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hli], a
- ret
-; 4a39a (12:639a)
-
-Function4a39a: ; 4a39a
- call Function4a485
- call Function4a492
- call Function4a3aa
- call SetPalettes
- ret
-; 4a3a7
-
-Function4a3a7: ; 4a3a7 (12:63a7)
- call Function4a485
-Function4a3aa: ; 4a3aa
- hlcoord 0, 0
- lb bc, 3, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 1, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 4, 1
- ld a, $2
- call Function4a6d8
- lb bc, 1, 1
- ld a, $3
- call Function4a6d8
- lb bc, 1, 1
- ld a, " "
- call Function4a6d8
- hlcoord 1, 0
- ld a, $1
- lb bc, 3, 18
- call Function4a6d8
- lb bc, 1, 18
- ld a, $0
- call Function4a6d8
- lb bc, 1, 18
- ld a, $1
- call Function4a6d8
- lb bc, 1, 18
- ld a, $2
- call Function4a6d8
- lb bc, 11, 18
- ld a, " "
- call Function4a6d8
- hlcoord 19, 0
- lb bc, 3, 1
- ld a, $0
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 1, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 4, 1
- ld a, $2
- call Function4a6d8
- lb bc, 1, 1
- ld a, $3
- call Function4a6d8
- lb bc, 1, 1
- ld a, " "
- call Function4a6d8
- ret
-; 4a449 (12:6449)
-
-Function4a449: ; 4a449
- ld bc, 3 * SCREEN_WIDTH
- ld a, $0
- hlcoord 0, 0
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $1
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $0
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $1
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, $2
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, $3
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, " "
- call ByteFill
- ret
-; 4a485
-
-Function4a485: ; 4a485 (12:6485)
- ld de, GFX_49c0c
- ld hl, VTiles2 tile $00
- lb bc, BANK(GFX_49c0c), 13
- call Get2bpp
- ret
-
-Function4a492: ; 4a492 (12:6492)
- call MG_Mobile_Layout00
- ret
-
-
-MainMenu_MobileStudium: ; 4a496
- ld a, [StartDay]
- ld b, a
- ld a, [StartHour]
- ld c, a
- ld a, [StartMinute]
- ld d, a
- ld a, [StartSecond]
- ld e, a
- push bc
- push de
- callba MobileStudium
- call ClearBGPalettes
- pop de
- pop bc
- ld a, b
- ld [StartDay], a
- ld a, c
- ld [StartHour], a
- ld a, d
- ld [StartMinute], a
- ld a, e
- ld [StartSecond], a
- ret
-; 4a4c4
-
-
-Function4a4c4: ; 4a4c4 (12:64c4)
- call ClearBGPalettes
- call Function4a3a7
- call Function4a492
- call Function4a680
- call ClearBGPalettes
- ld c, 20
- call DelayFrames
- hlcoord 2, 0
- ld b, $a
- ld c, $e
- call Function48cdc
- hlcoord 4, 2
- ld de, String_4a5c5
- call PlaceString
- hlcoord 4, 4
- ld de, String_4a5cd
- call PlaceString
- hlcoord 4, 6
- ld de, String_4a5da
- call PlaceString
- hlcoord 4, 8
- ld de, String_4a5e6
- call PlaceString
- hlcoord 4, 10
- ld de, String_4a5f2
- call PlaceString
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- xor a
- ld hl, Strings_4a5f6
- ld d, h
- ld e, l
- hlcoord 1, 14
- call PlaceString
- ld a, $1
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 16
- call PlaceString
- call WaitBGMap2
- call SetPalettes
- call StaticMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
- jr asm_4a54d
-
-Function4a545: ; 4a545 (12:6545)
- call ScrollingMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
-
-asm_4a54d: ; 4a54d (12:654d)
- bit 0, a
- jr nz, .asm_4a557
- bit 1, a
- jr nz, .asm_4a574
- jr .asm_4a57e
-.asm_4a557
- ld hl, wMenuCursorY
- ld a, [hl]
- cp $1
- jp z, Function4a6ab
- cp $2
- jp z, Function4a6ab
- cp $3
- jp z, Function4a6ab
- cp $4
- jp z, Function4a6ab
- ld a, $1
- call MenuClickSound
-.asm_4a574
- pop bc
- call ClearBGPalettes
- call ClearTileMap
- jp Function49f0a
-.asm_4a57e
- ld hl, wMenuCursorY
- ld a, [hl]
- dec a
- add a
- push af
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- pop af
- inc a
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 16
- call PlaceString
- jp Function4a5b0
-
-Function4a5b0: ; 4a5b0 (12:65b0)
- call Function4a680
- pop bc
- ld hl, wMenuCursorY
- ld [hl], b
- ld b, $a
- ld c, $1
- hlcoord 3, 1
- call ClearBox
- jp Function4a545
-; 4a5c5 (12:65c5)
-
-String_4a5c5: ; 4a5c5
- db "じこしょうかい@"
-String_4a5cd: ; 4a5cd
- db "たいせん ", $4a, "はじまるとき@"
-String_4a5da: ; 4a5da
- db "たいせん ", $1d, "かったとき@"
-String_4a5e6: ; 4a5e6
- db "たいせん ", $1d, "まけたとき@"
-String_4a5f2: ; 4a5f2
- db "もどる@"
-; 4a5f6
-
-Strings_4a5f6: ; 4a5f6
- db "めいし や ニュース ", $1d, "のせる@"
- db "あなた%あいさつです@"
- db "モバイル たいせん", $4a, "はじまるとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "モバイル たいせんで かったとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "モバイル たいせんで まけたとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "まえ%がめん ", $1d, "もどります@"
- db "@"
-; 4a680
-
-Function4a680: ; 4a680 (12:6680)
- ld hl, w2DMenuCursorInitY
- ld a, $2
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $5
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
- add $2
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ret
-
-Function4a6ab: ; 4a6ab (12:66ab)
- ld a, $2
- call MenuClickSound
- call ClearBGPalettes
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- callba Function11c1ab
- pop bc
- call LoadFontsExtra
- jp Function4a4c4
-
-Function4a6c5: ; 4a6c5 (12:66c5)
- ld a, $5
- ld [MusicFade], a
- ld a, e
- ld [MusicFadeID], a
- ld a, d
- ld [MusicFadeID + 1], a
- ld c, 22
- call DelayFrames
- ret
-
-Function4a6d8: ; 4a6d8 (12:66d8)
- push bc
- push hl
-.asm_4a6da
- ld [hli], a
- dec c
- jr nz, .asm_4a6da
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, Function4a6d8
- ret
--- a/misc/printer_77.asm
+++ /dev/null
@@ -1,356 +1,0 @@
-PrintPage1: ; 1dc1b0
- hlcoord 0, 0
- decoord 0, 0, wPrinterTileMapBuffer
- ld bc, 17 * SCREEN_WIDTH
- call CopyBytes
- hlcoord 17, 1, wPrinterTileMapBuffer
- ld a, $62
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 17, 2, wPrinterTileMapBuffer
- ld a, $64
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 1, 9, wPrinterTileMapBuffer
- ld a, " "
- ld [hli], a
- ld [hl], a
- hlcoord 1, 10, wPrinterTileMapBuffer
- ld a, $61
- ld [hli], a
- ld [hl], a
- hlcoord 2, 11, wPrinterTileMapBuffer
- lb bc, 5, 18
- call ClearBox
- ld a, [wd265]
- dec a
- call CheckCaughtMon
- push af
- ld a, [wd265]
- ld b, a
- ld c, 1 ; get page 1
- callba GetDexEntryPagePointer
- pop af
- ld a, b
- hlcoord 1, 11, wPrinterTileMapBuffer
- call nz, FarString
- hlcoord 19, 0, wPrinterTileMapBuffer
- ld [hl], $35
- ld de, SCREEN_WIDTH
- add hl, de
- ld b, $f
-.column_loop
- ld [hl], $37
- add hl, de
- dec b
- jr nz, .column_loop
- ld [hl], $3a
- ret
-; 1dc213
-
-PrintPage2: ; 1dc213
- hlcoord 0, 0, wPrinterTileMapBuffer
- ld bc, 8 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- hlcoord 0, 0, wPrinterTileMapBuffer
- ld a, $36
- ld b, 6
- call .FillColumn
- hlcoord 19, 0, wPrinterTileMapBuffer
- ld a, $37
- ld b, 6
- call .FillColumn
- hlcoord 0, 6, wPrinterTileMapBuffer
- ld [hl], $38
- inc hl
- ld a, $39
- ld bc, SCREEN_HEIGHT
- call ByteFill
- ld [hl], $3a
- hlcoord 0, 7, wPrinterTileMapBuffer
- ld bc, SCREEN_WIDTH
- ld a, $32
- call ByteFill
- ld a, [wd265]
- dec a
- call CheckCaughtMon
- push af
- ld a, [wd265]
- ld b, a
- ld c, 2 ; get page 2
- callba GetDexEntryPagePointer
- pop af
- hlcoord 1, 1, wPrinterTileMapBuffer
- ld a, b
- call nz, FarString
- ret
-; 1dc26a
-
-.FillColumn: ; 1dc26a
- push de
- ld de, SCREEN_WIDTH
-.column_loop
- ld [hl], a
- add hl, de
- dec b
- jr nz, .column_loop
- pop de
- ret
-; 1dc275
-
-GBPrinterStrings:
-GBPrinterString_Null: db "@"
-GBPrinterString_CheckingLink: next " CHECKING LINK...@"
-GBPrinterString_Transmitting: next " TRANSMITTING...@"
-GBPrinterString_Printing: next " PRINTING...@"
-GBPrinterString_PrinterError1:
- db " Printer Error 1"
- next ""
- next "Check the Game Boy"
- next "Printer Manual."
- db "@"
-GBPrinterString_PrinterError2:
- db " Printer Error 2"
- next ""
- next "Check the Game Boy"
- next "Printer Manual."
- db "@"
-GBPrinterString_PrinterError3:
- db " Printer Error 3"
- next ""
- next "Check the Game Boy"
- next "Printer Manual."
- db "@"
-GBPrinterString_PrinterError4:
- db " Printer Error 4"
- next ""
- next "Check the Game Boy"
- next "Printer Manual."
- db "@"
-; 1dc381
-
-PrintPartyMonPage1: ; 1dc381
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- call LoadFontsBattleExtra
-
- ld de, MobileHPIcon
- ld hl, VTiles2 tile $71
- lb bc, BANK(MobileHPIcon), 1
- call Request1bpp
-
- ld de, MobileLvIcon
- ld hl, VTiles2 tile $6e
- lb bc, BANK(MobileLvIcon), 1
- call Request1bpp
-
- ld de, ShinyIconGFX
- ld hl, VTiles2 tile $3f
- lb bc, BANK(ShinyIconGFX), 1
- call Get2bpp
-
- xor a
- ld [MonType], a
- callba CopyPkmnToTempMon
- hlcoord 0, 7
- ld b, 9
- ld c, 18
- call TextBox
- hlcoord 8, 2
- ld a, [TempMonLevel]
- call PrintLevel_Force3Digits
- hlcoord 12, 2
- ld [hl], "◀" ; Filled left triangle
- inc hl
- ld de, TempMonMaxHP
- lb bc, 2, 3
- call PrintNum
- ld a, [CurPartySpecies]
- ld [wd265], a
- ld [CurSpecies], a
- ld hl, PartyMonNicknames
- call Function1dc50e
- hlcoord 8, 4
- call PlaceString
- hlcoord 9, 6
- ld [hl], "/"
- call GetPokemonName
- hlcoord 10, 6
- call PlaceString
- hlcoord 8, 0
- ld [hl], "№"
- inc hl
- ld [hl], "."
- inc hl
- ld de, wd265
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- hlcoord 1, 9
- ld de, String1dc550
- call PlaceString
- ld hl, PartyMonOT
- call Function1dc50e
- hlcoord 4, 9
- call PlaceString
- hlcoord 1, 11
- ld de, String1dc559
- call PlaceString
- hlcoord 4, 11
- ld de, TempMonID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- hlcoord 1, 14
- ld de, String1dc554
- call PlaceString
- hlcoord 7, 14
- ld a, [TempMonMoves + 0]
- call Function1dc51a
- call Function1dc52c
- ld hl, TempMonDVs
- predef GetUnownLetter
- ld hl, wBoxAlignment
- xor a
- ld [hl], a
- ld a, [CurPartySpecies]
- cp UNOWN
- jr z, .asm_1dc469
- inc [hl]
-
-.asm_1dc469
- hlcoord 0, 0
- call _PrepMonFrontpic
- call WaitBGMap
- ld b, SCGB_STATS_SCREEN_HP_PALS
- call GetSGBLayout
- call SetPalettes
- ret
-; 1dc47b
-
-PrintPartyMonPage2: ; 1dc47b
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- call LoadFontsBattleExtra
- xor a
- ld [MonType], a
- callba CopyPkmnToTempMon
- hlcoord 0, 0
- ld b, 15
- ld c, 18
- call TextBox
- ld bc, SCREEN_WIDTH
- decoord 0, 0
- hlcoord 0, 1
- call CopyBytes
- hlcoord 7, 0
- ld a, [TempMonMoves + 1]
- call Function1dc51a
- hlcoord 7, 2
- ld a, [TempMonMoves + 2]
- call Function1dc51a
- hlcoord 7, 4
- ld a, [TempMonMoves + 3]
- call Function1dc51a
- hlcoord 7, 7
- ld de, String1dc55d
- call PlaceString
- hlcoord 16, 7
- ld de, TempMonAttack
- call .PrintTempMonStats
- hlcoord 16, 9
- ld de, TempMonDefense
- call .PrintTempMonStats
- hlcoord 16, 11
- ld de, TempMonSpclAtk
- call .PrintTempMonStats
- hlcoord 16, 13
- ld de, TempMonSpclDef
- call .PrintTempMonStats
- hlcoord 16, 15
- ld de, TempMonSpeed
- call .PrintTempMonStats
- call WaitBGMap
- ld b, SCGB_STATS_SCREEN_HP_PALS
- call GetSGBLayout
- call SetPalettes
- ret
-; 1dc507
-
-.PrintTempMonStats: ; 1dc507
- lb bc, 2, 3
- call PrintNum
- ret
-; 1dc50e
-
-Function1dc50e: ; 1dc50e
- ld bc, NAME_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld e, l
- ld d, h
- ret
-; 1dc51a
-
-Function1dc51a: ; 1dc51a
- and a
- jr z, .no_move
-
- ld [wd265], a
- call GetMoveName
- jr .got_string
-
-.no_move
- ld de, String1dc584
-
-.got_string
- call PlaceString
- ret
-; 1dc52c
-
-Function1dc52c: ; 1dc52c
- callba GetGender
- ld a, " "
- jr c, .got_gender
- ld a, "♂"
- jr nz, .got_gender
- ld a, "♀"
-
-.got_gender
- hlcoord 17, 2
- ld [hl], a
- ld bc, TempMonDVs
- callba CheckShininess
- ret nc
- hlcoord 18, 2
- ld [hl], "<SHINY>"
- ret
-; 1dc550
-
-String1dc550: ; 1dc550
- db "OT/@"
-
-String1dc554: ; 1dc554
- db "MOVE@"
-
-String1dc559: ; 1dc559
- db "<ID>№.@"
-
-String1dc55d: ; 1dc55d
- db "ATTACK"
- next "DEFENSE"
- next "SPCL.ATK"
- next "SPCL.DEF"
- next "SPEED"
- db "@"
-
-String1dc584: ; 1dc584
- db "------------@"
-; 1dc591
binary files a/misc/stadium2_1.bin /dev/null differ
binary files a/misc/stadium2_2.bin /dev/null differ
--- a/misc/unused_title.asm
+++ /dev/null
@@ -1,556 +1,0 @@
-UnusedTitleScreen: ; 10c000
-
- call ClearBGPalettes
- call ClearTileMap
- call DisableLCD
- xor a
- ld [hBGMapMode], a
-
- ld hl, wJumptableIndex
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
- ld hl, UnusedTitleBG_GFX
- ld de, VTiles2
- ld bc, VBGMap0 - VTiles2
- call CopyBytes
-
- ld hl, UnusedTitleBG_GFX + $800
- ld de, VTiles1
- ld bc, VTiles2 - VTiles1
- call CopyBytes
-
- ld hl, UnusedTitleFG_GFX
- ld de, VTiles0
- ld bc, VTiles1 - VTiles0
- call CopyBytes
-
- ld hl, UnusedTitleBG_Tilemap
- debgcoord 0, 0
- ld bc, 32 * 32
-.copy
- ld a, 0
- ld [rVBK], a
- ld a, [hli]
- ld [de], a
- ld a, 1
- ld [rVBK], a
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .copy
-
- ld hl, UnusedTitleFG_OAM
- ld de, Sprites
- ld bc, $a0
- call CopyBytes
-
- call EnableLCD
- ld a, [rLCDC]
- set 1, a
- set 2, a
- ld [rLCDC], a
-
- call DelayFrame
-
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld hl, UnusedTitleBG_Palettes
- ld de, UnknBGPals
- ld bc, $40
- call CopyBytes
-
- ld hl, UnusedTitleFG_Palettes
- ld de, UnknOBPals
- ld bc, $40
- call CopyBytes
-
- ld hl, UnusedTitleBG_Palettes
- ld de, BGPals
- ld bc, $40
- call CopyBytes
-
- ld hl, UnusedTitleFG_Palettes
- ld de, OBPals
- ld bc, $40
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- ld a, $1
- ld [hCGBPalUpdate], a
-
- ld de, MUSIC_TITLE
- call PlayMusic
-
- ret
-; 10c0b1
-
-UnusedTitleBG_GFX: ; 10c0b1
-INCBIN "gfx/title/old_bg.2bpp"
-; 10d0b1
-
-UnusedTitleBG_Tilemap: ; 10d0b1
-; 32x32 (tile, attributes)
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-; 10d8b1
-
-UnusedTitleBG_Palettes: ; 10d8b1
- RGB 00, 00, 00
- RGB 25, 15, 28
- RGB 22, 11, 28
- RGB 19, 08, 26
-
- RGB 00, 00, 00
- RGB 17, 07, 22
- RGB 13, 07, 16
- RGB 19, 08, 26
-
- RGB 25, 15, 28
- RGB 22, 11, 28
- RGB 19, 08, 26
- RGB 17, 07, 22
-
- RGB 22, 11, 28
- RGB 19, 08, 26
- RGB 17, 07, 22
- RGB 13, 07, 16
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 12, 12, 12
-
- RGB 00, 00, 00
- RGB 01, 11, 23
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 22, 10, 31
- RGB 19, 08, 26
- RGB 17, 07, 22
-
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 20, 04, 20
- RGB 16, 08, 16
- RGB 24, 00, 24
-
- rept 54
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- endr
-; 10dab1
-
-UnusedTitleFG_GFX: ; 10dab1
-INCBIN "gfx/title/old_fg.2bpp"
-; 10eab1
-
-UnusedTitleFG_Palettes: ; 10eab1
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 12, 12, 12
-
- RGB 00, 00, 00
- RGB 01, 11, 23
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 22, 00
- RGB 31, 27, 00
- RGB 31, 31, 00
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 12, 12, 12
-
- RGB 00, 00, 00
- RGB 01, 11, 23
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 16, 31, 00
- RGB 22, 31, 00
- RGB 27, 31, 00
- RGB 31, 31, 00
-
-
- RGB 31, 00, 18
- RGB 31, 31, 31
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 12, 12, 12
-
- RGB 00, 00, 00
- RGB 01, 11, 23
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 16, 31, 00
- RGB 22, 31, 00
- RGB 27, 31, 00
- RGB 31, 31, 00
-
- RGB 24, 18, 31
- RGB 31, 31, 00
- RGB 31, 31, 01
- RGB 31, 31, 03
-
- RGB 31, 31, 05
- RGB 31, 31, 08
- RGB 31, 31, 10
- RGB 31, 31, 12
-
- RGB 31, 31, 14
- RGB 31, 31, 16
- RGB 31, 31, 18
- RGB 31, 31, 20
-
- RGB 31, 31, 22
- RGB 31, 31, 25
- RGB 31, 31, 27
- RGB 31, 31, 29
-
- RGB 24, 06, 06
- RGB 01, 01, 01
- RGB 03, 03, 03
- RGB 05, 05, 05
-
- RGB 08, 08, 08
- RGB 10, 10, 10
- RGB 12, 12, 12
- RGB 14, 14, 14
-
- RGB 16, 16, 16
- RGB 18, 18, 18
- RGB 20, 20, 20
- RGB 22, 22, 22
-
- RGB 25, 25, 25
- RGB 27, 27, 27
- RGB 29, 29, 29
- RGB 31, 31, 31
-
- RGB 18, 24, 18
- RGB 31, 29, 01
- RGB 31, 27, 03
- RGB 31, 25, 05
-
- RGB 31, 22, 08
- RGB 31, 20, 10
- RGB 31, 18, 12
- RGB 31, 16, 14
-
- RGB 31, 14, 16
- RGB 31, 12, 18
- RGB 31, 10, 20
- RGB 31, 08, 22
-
- RGB 31, 05, 25
- RGB 31, 03, 27
- RGB 31, 01, 29
- RGB 31, 00, 31
-
- RGB 18, 06, 31
- RGB 00, 31, 31
- RGB 00, 31, 29
- RGB 00, 31, 27
-
- RGB 00, 31, 25
- RGB 00, 31, 22
- RGB 00, 31, 20
- RGB 00, 31, 18
-
- RGB 00, 31, 16
- RGB 00, 31, 14
- RGB 00, 31, 12
- RGB 00, 31, 10
-
- RGB 00, 31, 08
- RGB 00, 31, 05
- RGB 00, 31, 03
- RGB 00, 31, 01
-
- RGB 12, 31, 06
- RGB 00, 00, 31
- RGB 00, 01, 31
- RGB 00, 03, 31
-
- RGB 00, 05, 31
- RGB 00, 08, 31
- RGB 00, 10, 31
- RGB 00, 12, 31
-
- RGB 00, 14, 31
- RGB 00, 16, 31
- RGB 00, 18, 31
- RGB 00, 20, 31
-
- RGB 00, 22, 31
- RGB 00, 25, 31
- RGB 00, 27, 31
- RGB 00, 29, 31
-
- RGB 00, 00, 00
- RGB 06, 00, 04
- RGB 19, 02, 09
- RGB 28, 04, 11
-
- RGB 31, 07, 16
- RGB 31, 17, 23
- RGB 31, 26, 30
- RGB 07, 05, 10
-
- RGB 14, 10, 18
- RGB 20, 20, 25
- RGB 25, 27, 31
- RGB 09, 05, 06
-
- RGB 23, 16, 13
- RGB 30, 23, 22
- RGB 31, 28, 28
- RGB 31, 31, 31
-
- RGB 06, 31, 31
- RGB 04, 00, 04
- RGB 11, 02, 04
- RGB 17, 02, 04
-
- RGB 24, 05, 04
- RGB 28, 07, 04
- RGB 31, 11, 04
- RGB 02, 01, 15
-
- RGB 04, 11, 22
- RGB 12, 25, 25
- RGB 20, 31, 31
- RGB 09, 04, 03
-
- RGB 22, 11, 08
- RGB 27, 19, 16
- RGB 30, 28, 26
- RGB 31, 31, 31
-
- RGB 06, 18, 06
- RGB 04, 04, 02
- RGB 07, 07, 02
- RGB 18, 18, 04
-
- RGB 24, 24, 06
- RGB 27, 27, 11
- RGB 31, 31, 20
- RGB 02, 03, 10
-
- RGB 04, 05, 13
- RGB 06, 10, 25
- RGB 08, 15, 31
- RGB 04, 00, 06
-
- RGB 11, 07, 14
- RGB 21, 16, 23
- RGB 29, 26, 31
- RGB 31, 31, 31
-
- RGB 06, 00, 18
- RGB 00, 04, 03
- RGB 02, 09, 05
- RGB 11, 19, 07
-
- RGB 16, 24, 08
- RGB 22, 31, 09
- RGB 24, 31, 18
- RGB 03, 01, 03
-
- RGB 10, 04, 10
- RGB 20, 08, 20
- RGB 31, 17, 31
- RGB 01, 03, 06
-
- RGB 05, 09, 10
- RGB 15, 21, 21
- RGB 23, 25, 25
- RGB 31, 31, 31
-
- RGB 00, 18, 31
- RGB 00, 05, 07
- RGB 00, 08, 13
- RGB 00, 12, 17
-
- RGB 01, 20, 24
- RGB 04, 27, 31
- RGB 14, 31, 31
- RGB 04, 02, 02
-
- RGB 15, 01, 03
- RGB 26, 04, 07
- RGB 31, 13, 16
- RGB 00, 05, 02
-
- RGB 01, 11, 03
- RGB 06, 21, 06
- RGB 13, 31, 16
- RGB 31, 31, 31
-
- RGB 00, 06, 06
- RGB 00, 01, 08
- RGB 00, 05, 14
- RGB 00, 08, 19
-
- RGB 02, 14, 26
- RGB 04, 21, 31
- RGB 06, 26, 31
- RGB 13, 00, 00
-
- RGB 27, 07, 00
- RGB 31, 17, 05
- RGB 31, 25, 16
- RGB 02, 04, 00
-
- RGB 07, 11, 03
- RGB 17, 19, 05
- RGB 27, 31, 16
- RGB 31, 31, 31
-
- RGB 02, 00, 00
- RGB 04, 01, 06
- RGB 11, 03, 14
- RGB 16, 04, 19
-
- RGB 20, 07, 22
- RGB 26, 12, 27
- RGB 26, 20, 31
- RGB 04, 07, 00
-
- RGB 16, 20, 07
- RGB 24, 28, 15
- RGB 29, 31, 24
- RGB 05, 02, 02
-
- RGB 15, 04, 02
- RGB 24, 11, 10
- RGB 31, 22, 20
- RGB 31, 31, 31
-
- RGB 00, 00, 14
- RGB 12, 00, 00
- RGB 27, 05, 00
- RGB 31, 15, 05
-
- RGB 31, 26, 13
- RGB 31, 30, 21
- RGB 05, 07, 16
- RGB 04, 16, 20
-
- RGB 04, 24, 26
- RGB 08, 31, 31
- RGB 23, 31, 31
- RGB 00, 00, 00
-
- RGB 05, 05, 05
- RGB 17, 17, 15
- RGB 28, 28, 24
- RGB 31, 31, 31
-; 10ecb1
-
-UnusedTitleFG_OAM: ; 10ecb1
- db $18, $38, $00, $01, $18, $40, $02, $01, $18, $48, $04, $01, $18, $50, $06, $01
- db $18, $58, $08, $01, $18, $60, $0a, $01, $18, $68, $0c, $01, $18, $70, $0e, $01
-
- db $28, $38, $10, $00, $28, $40, $12, $00, $28, $48, $14, $00, $28, $50, $16, $00
- db $28, $58, $18, $00, $28, $60, $1a, $00, $28, $68, $1c, $00, $28, $70, $1e, $00
-
- db $38, $38, $20, $00, $38, $40, $22, $00, $38, $48, $24, $00, $38, $50, $26, $00
- db $38, $58, $28, $00, $38, $60, $2a, $00, $38, $68, $2c, $00, $38, $70, $2e, $00
-
- db $48, $38, $30, $02, $48, $40, $32, $02, $48, $48, $34, $02, $48, $50, $36, $02
- db $48, $58, $38, $02, $48, $60, $3a, $02, $48, $68, $3c, $02, $48, $70, $3e, $02
-
- db $58, $38, $40, $01, $58, $40, $42, $01, $58, $48, $44, $01, $58, $50, $46, $01
- db $58, $58, $48, $01, $58, $60, $4a, $01, $58, $68, $4c, $01, $58, $70, $4e, $01
-; 10ed51
-
-
-Function10ed51: ; 10ed51
- call _TitleScreen
-.loop
- call JoyTextDelay
- ld a, [hJoyLast]
- ld b, a
- and 1
- jr nz, .done
- call SuicuneFrameIterator
- call DelayFrame
- jr .loop
-.done
- ret
-; 10ed67
--- /dev/null
+++ b/mobile/battle_tower_47.asm
@@ -1,0 +1,784 @@
+BattleTowerText:: ; 11c000
+; Print text c for trainer [BT_OTTrainerClass]
+; 1: Intro text
+; 2: Player lost
+; 3: Player won
+ ld a, [rSVBK]
+ push af
+ ld a, 3 ; BANK(BT_OTTrainerClass)
+ ld [rSVBK], a
+IF DEF(CRYSTAL11)
+ ld hl, BT_OTTrainerClass
+ELSE
+ ld hl, BT_OTName + 5
+; BUG ALERT
+; Instead of loading the Trainer Class, this routine
+; loads the 6th character in the Trainer's name, then
+; uses it to get the gender of the trainer.
+; As a consequence, the enemy trainer's dialog will
+; always be sampled from the female array.
+ENDC
+ ld a, [hl]
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, BTTrainerClassGenders
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .female
+ ; generate a random number between 0 and 24
+ ld a, [hRandomAdd]
+ and $1f
+ cp 25
+ jr c, .okay0
+ sub 25
+
+.okay0
+ ld hl, BTMaleTrainerTexts
+ jr .proceed
+
+.female
+ ; generate a random number between 0 and 14
+ ld a, [hRandomAdd]
+ and $f
+ cp 15
+ jr c, .okay1
+ sub 15
+
+.okay1
+ ld hl, BTFemaleTrainerTexts
+
+.proceed
+ ld b, 0
+ dec c
+ jr nz, .restore
+ ld [BT_TrainerTextIndex], a
+ jr .okay2
+
+.restore
+ ld a, [BT_TrainerTextIndex]
+
+.okay2
+ push af
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld h, a
+ ld l, c
+ pop af
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld l, c
+ ld h, a
+ bccoord 1, 14
+ pop af
+ ld [rSVBK], a
+ call PlaceHLTextAtBC
+ ret
+; 11c05d
+
+INCLUDE "mobile/fixed_words.asm"
+
+BTTrainerClassGenders: ; 11f2f0
+ db MALE ; FALKNER
+ db FEMALE ; WHITNEY
+ db FEMALE ; BUGSY
+ db MALE ; MORTY
+ db MALE ; PRYCE
+ db FEMALE ; JASMINE
+ db MALE ; CHUCK
+ db FEMALE ; CLAIR
+ db MALE ; RIVAL1
+ db MALE ; POKEMON_PROF
+ db FEMALE ; WILL
+ db MALE ; CAL
+ db MALE ; BRUNO
+ db FEMALE ; KAREN
+ db MALE ; KOGA
+ db MALE ; CHAMPION
+ db MALE ; BROCK
+ db FEMALE ; MISTY
+ db MALE ; LT_SURGE
+ db MALE ; SCIENTIST
+ db FEMALE ; ERIKA
+ db MALE ; YOUNGSTER
+ db MALE ; SCHOOLBOY
+ db MALE ; BIRD_KEEPER
+ db FEMALE ; LASS
+ db FEMALE ; JANINE
+ db MALE ; COOLTRAINERM
+ db FEMALE ; COOLTRAINERF
+ db FEMALE ; BEAUTY
+ db MALE ; POKEMANIAC
+ db MALE ; GRUNTM
+ db MALE ; GENTLEMAN
+ db FEMALE ; SKIER
+ db FEMALE ; TEACHER
+ db FEMALE ; SABRINA
+ db MALE ; BUG_CATCHER
+ db MALE ; FISHER
+ db MALE ; SWIMMERM
+ db FEMALE ; SWIMMERF
+ db MALE ; SAILOR
+ db MALE ; SUPER_NERD
+ db MALE ; RIVAL2
+ db MALE ; GUITARIST
+ db MALE ; HIKER
+ db MALE ; BIKER
+ db MALE ; BLAINE
+ db MALE ; BURGLAR
+ db MALE ; FIREBREATHER
+ db MALE ; JUGGLER
+ db MALE ; BLACKBELT_T
+ db MALE ; EXECUTIVEM
+ db MALE ; PSYCHIC_T
+ db FEMALE ; PICNICKER
+ db MALE ; CAMPER
+ db FEMALE ; EXECUTIVEF
+ db MALE ; SAGE
+ db FEMALE ; MEDIUM
+ db MALE ; BOARDER
+ db MALE ; POKEFANM
+ db FEMALE ; KIMONO_GIRL
+ db FEMALE ; TWINS
+ db FEMALE ; POKEFANF
+ db MALE ; RED
+ db MALE ; BLUE
+ db MALE ; OFFICER
+ db FEMALE ; GRUNTF
+
+
+BTMaleTrainerTexts: ; 11f332
+ dw .Greetings
+ dw .PlayerLost
+ dw .PlayerWon
+
+.Greetings: ; 11f338
+ dw BTGreetingM1
+ dw BTGreetingM2
+ dw BTGreetingM3
+ dw BTGreetingM4
+ dw BTGreetingM5
+ dw BTGreetingM6
+ dw BTGreetingM7
+ dw BTGreetingM8
+ dw BTGreetingM9
+ dw BTGreetingM10
+ dw BTGreetingM11
+ dw BTGreetingM12
+ dw BTGreetingM13
+ dw BTGreetingM14
+ dw BTGreetingM15
+ dw BTGreetingM16
+ dw BTGreetingM17
+ dw BTGreetingM18
+ dw BTGreetingM19
+ dw BTGreetingM20
+ dw BTGreetingM21
+ dw BTGreetingM22
+ dw BTGreetingM23
+ dw BTGreetingM24
+ dw BTGreetingM25
+
+.PlayerLost: ; 11f36a
+ dw BTLossM1
+ dw BTLossM2
+ dw BTLossM3
+ dw BTLossM4
+ dw BTLossM5
+ dw BTLossM6
+ dw BTLossM7
+ dw BTLossM8
+ dw BTLossM9
+ dw BTLossM10
+ dw BTLossM11
+ dw BTLossM12
+ dw BTLossM13
+ dw BTLossM14
+ dw BTLossM15
+ dw BTLossM16
+ dw BTLossM17
+ dw BTLossM18
+ dw BTLossM19
+ dw BTLossM20
+ dw BTLossM21
+ dw BTLossM22
+ dw BTLossM23
+ dw BTLossM24
+ dw BTLossM25
+
+.PlayerWon: ; 11f39c
+ dw BTWinM1
+ dw BTWinM2
+ dw BTWinM3
+ dw BTWinM4
+ dw BTWinM5
+ dw BTWinM6
+ dw BTWinM7
+ dw BTWinM8
+ dw BTWinM9
+ dw BTWinM10
+ dw BTWinM11
+ dw BTWinM12
+ dw BTWinM13
+ dw BTWinM14
+ dw BTWinM15
+ dw BTWinM16
+ dw BTWinM17
+ dw BTWinM18
+ dw BTWinM19
+ dw BTWinM20
+ dw BTWinM21
+ dw BTWinM22
+ dw BTWinM23
+ dw BTWinM24
+ dw BTWinM25
+
+
+BTFemaleTrainerTexts:
+ dw .Greetings
+ dw .PlayerLost
+ dw .PlayerWon
+
+.Greetings: ; 11f3d4
+ dw BTGreetingF1
+ dw BTGreetingF2
+ dw BTGreetingF3
+ dw BTGreetingF4
+ dw BTGreetingF5
+ dw BTGreetingF6
+ dw BTGreetingF7
+ dw BTGreetingF8
+ dw BTGreetingF9
+ dw BTGreetingF10
+ dw BTGreetingF11
+ dw BTGreetingF12
+ dw BTGreetingF13
+ dw BTGreetingF14
+ dw BTGreetingF15
+
+.PlayerLost: ; 11f3f2
+ dw BTLossF1
+ dw BTLossF2
+ dw BTLossF3
+ dw BTLossF4
+ dw BTLossF5
+ dw BTLossF6
+ dw BTLossF7
+ dw BTLossF8
+ dw BTLossF9
+ dw BTLossF10
+ dw BTLossF11
+ dw BTLossF12
+ dw BTLossF13
+ dw BTLossF14
+ dw BTLossF15
+
+.PlayerWon: ; 11f410
+ dw BTWinF1
+ dw BTWinF2
+ dw BTWinF3
+ dw BTWinF4
+ dw BTWinF5
+ dw BTWinF6
+ dw BTWinF7
+ dw BTWinF8
+ dw BTWinF9
+ dw BTWinF10
+ dw BTWinF11
+ dw BTWinF12
+ dw BTWinF13
+ dw BTWinF14
+ dw BTWinF15
+
+
+BTGreetingM1: ; 0x11f42e
+ text_jump BattleTowerText_0x1ec000
+ db "@"
+
+BTLossM1: ; 0x11f433
+ text_jump BattleTowerText_0x1ec03b
+ db "@"
+
+BTWinM1: ; 0x11f438
+ text_jump UnknownText_0x1ec060
+ db "@"
+
+BTGreetingM2: ; 0x11f43d
+ text_jump BattleTowerText_0x1ec080
+ db "@"
+
+BTLossM2: ; 0x11f442
+ text_jump UnknownText_0x1ec0a3
+ db "@"
+
+BTWinM2: ; 0x11f447
+ text_jump UnknownText_0x1ec0c4
+ db "@"
+
+BTGreetingM3: ; 0x11f44c
+ text_jump UnknownText_0x1ec0e1
+ db "@"
+
+BTLossM3: ; 0x11f451
+ text_jump UnknownText_0x1ec108
+ db "@"
+
+BTWinM3: ; 0x11f456
+ text_jump UnknownText_0x1ec12a
+ db "@"
+
+BTGreetingM4: ; 0x11f45b
+ text_jump UnknownText_0x1ec14d
+ db "@"
+
+BTLossM4: ; 0x11f460
+ text_jump UnknownText_0x1ec16f
+ db "@"
+
+BTWinM4: ; 0x11f465
+ text_jump UnknownText_0x1ec190
+ db "@"
+
+BTGreetingM5: ; 0x11f46a
+ text_jump UnknownText_0x1ec1ae
+ db "@"
+
+BTLossM5: ; 0x11f46f
+ text_jump UnknownText_0x1ec1d0
+ db "@"
+
+BTWinM5: ; 0x11f474
+ text_jump UnknownText_0x1ec1f4
+ db "@"
+
+BTGreetingM6: ; 0x11f479
+ text_jump UnknownText_0x1ec216
+ db "@"
+
+BTLossM6: ; 0x11f47e
+ text_jump UnknownText_0x1ec238
+ db "@"
+
+BTWinM6: ; 0x11f483
+ text_jump UnknownText_0x1ec259
+ db "@"
+
+BTGreetingM7: ; 0x11f488
+ text_jump UnknownText_0x1ec27b
+ db "@"
+
+BTLossM7: ; 0x11f48d
+ text_jump UnknownText_0x1ec2a0
+ db "@"
+
+BTWinM7: ; 0x11f492
+ text_jump UnknownText_0x1ec2c0
+ db "@"
+
+BTGreetingM8: ; 0x11f497
+ text_jump UnknownText_0x1ec2d9
+ db "@"
+
+BTLossM8: ; 0x11f49c
+ text_jump UnknownText_0x1ec2fe
+ db "@"
+
+BTWinM8: ; 0x11f4a1
+ text_jump UnknownText_0x1ec320
+ db "@"
+
+BTGreetingM9: ; 0x11f4a6
+ text_jump UnknownText_0x1ec33f
+ db "@"
+
+BTLossM9: ; 0x11f4ab
+ text_jump UnknownText_0x1ec36c
+ db "@"
+
+BTWinM9: ; 0x11f4b0
+ text_jump UnknownText_0x1ec389
+ db "@"
+
+BTGreetingM10: ; 0x11f4b5
+ text_jump UnknownText_0x1ec3ad
+ db "@"
+
+BTLossM10: ; 0x11f4ba
+ text_jump UnknownText_0x1ec3c5
+ db "@"
+
+BTWinM10: ; 0x11f4bf
+ text_jump UnknownText_0x1ec3e5
+ db "@"
+
+BTGreetingM11: ; 0x11f4c4
+ text_jump UnknownText_0x1ec402
+ db "@"
+
+BTLossM11: ; 0x11f4c9
+ text_jump UnknownText_0x1ec411
+ db "@"
+
+BTWinM11: ; 0x11f4ce
+ text_jump UnknownText_0x1ec41f
+ db "@"
+
+BTGreetingM12: ; 0x11f4d3
+ text_jump UnknownText_0x1ec42e
+ db "@"
+
+BTLossM12: ; 0x11f4d8
+ text_jump UnknownText_0x1ec461
+ db "@"
+
+BTWinM12: ; 0x11f4dd
+ text_jump UnknownText_0x1ec4a0
+ db "@"
+
+BTGreetingM13: ; 0x11f4e2
+ text_jump UnknownText_0x1ec4d6
+ db "@"
+
+BTLossM13: ; 0x11f4e7
+ text_jump UnknownText_0x1ec4f5
+ db "@"
+
+BTWinM13: ; 0x11f4ec
+ text_jump UnknownText_0x1ec512
+ db "@"
+
+BTGreetingM14: ; 0x11f4f1
+ text_jump UnknownText_0x1ec532
+ db "@"
+
+BTLossM14: ; 0x11f4f6
+ text_jump UnknownText_0x1ec54b
+ db "@"
+
+BTWinM14: ; 0x11f4fb
+ text_jump UnknownText_0x1ec565
+ db "@"
+
+BTGreetingM15: ; 0x11f500
+ text_jump UnknownText_0x1ec580
+ db "@"
+
+BTLossM15: ; 0x11f505
+ text_jump UnknownText_0x1ec59d
+ db "@"
+
+BTWinM15: ; 0x11f50a
+ text_jump UnknownText_0x1ec5b5
+ db "@"
+
+BTGreetingM16: ; 0x11f50f
+ text_jump UnknownText_0x1ec5d3
+ db "@"
+
+BTLossM16: ; 0x11f514
+ text_jump UnknownText_0x1ec5ee
+ db "@"
+
+BTWinM16: ; 0x11f519
+ text_jump UnknownText_0x1ec60d
+ db "@"
+
+BTGreetingM17: ; 0x11f51e
+ text_jump UnknownText_0x1ec631
+ db "@"
+
+BTLossM17: ; 0x11f523
+ text_jump UnknownText_0x1ec651
+ db "@"
+
+BTWinM17: ; 0x11f528
+ text_jump UnknownText_0x1ec68f
+ db "@"
+
+BTGreetingM18: ; 0x11f52d
+ text_jump UnknownText_0x1ec6b1
+ db "@"
+
+BTLossM18: ; 0x11f532
+ text_jump UnknownText_0x1ec6d0
+ db "@"
+
+BTWinM18: ; 0x11f537
+ text_jump UnknownText_0x1ec708
+ db "@"
+
+BTGreetingM19: ; 0x11f53c
+ text_jump UnknownText_0x1ec720
+ db "@"
+
+BTLossM19: ; 0x11f541
+ text_jump UnknownText_0x1ec73e
+ db "@"
+
+BTWinM19: ; 0x11f546
+ text_jump UnknownText_0x1ec75b
+ db "@"
+
+BTGreetingM20: ; 0x11f54b
+ text_jump UnknownText_0x1ec77f
+ db "@"
+
+BTLossM20: ; 0x11f550
+ text_jump UnknownText_0x1ec798
+ db "@"
+
+BTWinM20: ; 0x11f555
+ text_jump UnknownText_0x1ec7bb
+ db "@"
+
+BTGreetingM21: ; 0x11f55a
+ text_jump UnknownText_0x1ec7d8
+ db "@"
+
+BTLossM21: ; 0x11f55f
+ text_jump UnknownText_0x1ec818
+ db "@"
+
+BTWinM21: ; 0x11f564
+ text_jump UnknownText_0x1ec837
+ db "@"
+
+BTGreetingM22: ; 0x11f569
+ text_jump UnknownText_0x1ec858
+ db "@"
+
+BTLossM22: ; 0x11f56e
+ text_jump UnknownText_0x1ec876
+ db "@"
+
+BTWinM22: ; 0x11f573
+ text_jump UnknownText_0x1ec898
+ db "@"
+
+BTGreetingM23: ; 0x11f578
+ text_jump UnknownText_0x1ec8b1
+ db "@"
+
+BTLossM23: ; 0x11f57d
+ text_jump UnknownText_0x1ec8d5
+ db "@"
+
+BTWinM23: ; 0x11f582
+ text_jump UnknownText_0x1ec8f0
+ db "@"
+
+BTGreetingM24: ; 0x11f587
+ text_jump UnknownText_0x1ec911
+ db "@"
+
+BTLossM24: ; 0x11f58c
+ text_jump UnknownText_0x1ec928
+ db "@"
+
+BTWinM24: ; 0x11f591
+ text_jump UnknownText_0x1ec949
+ db "@"
+
+BTGreetingM25: ; 0x11f596
+ text_jump UnknownText_0x1ec969
+ db "@"
+
+BTLossM25: ; 0x11f59b
+ text_jump UnknownText_0x1ec986
+ db "@"
+
+BTWinM25: ; 0x11f5a0
+ text_jump UnknownText_0x1ec99b
+ db "@"
+
+
+
+
+BTGreetingF1: ; 0x11f5a5
+ text_jump UnknownText_0x1ec9bd
+ db "@"
+
+BTLossF1: ; 0x11f5aa
+ text_jump UnknownText_0x1ec9d9
+ db "@"
+
+BTWinF1: ; 0x11f5af
+ text_jump UnknownText_0x1ec9f7
+ db "@"
+
+BTGreetingF2: ; 0x11f5b4
+ text_jump UnknownText_0x1eca0a
+ db "@"
+
+BTLossF2: ; 0x11f5b9
+ text_jump UnknownText_0x1eca2a
+ db "@"
+
+BTWinF2: ; 0x11f5be
+ text_jump UnknownText_0x1eca47
+ db "@"
+
+BTGreetingF3: ; 0x11f5c3
+ text_jump UnknownText_0x1eca64
+ db "@"
+
+BTLossF3: ; 0x11f5c8
+ text_jump UnknownText_0x1eca82
+ db "@"
+
+BTWinF3: ; 0x11f5cd
+ text_jump UnknownText_0x1eca9d
+ db "@"
+
+BTGreetingF4: ; 0x11f5d2
+ text_jump UnknownText_0x1ecabf
+ db "@"
+
+BTLossF4: ; 0x11f5d7
+ text_jump UnknownText_0x1ecade
+ db "@"
+
+BTWinF4: ; 0x11f5dc
+ text_jump UnknownText_0x1ecafa
+ db "@"
+
+BTGreetingF5: ; 0x11f5e1
+ text_jump UnknownText_0x1ecb19
+ db "@"
+
+BTLossF5: ; 0x11f5e6
+ text_jump UnknownText_0x1ecb37
+ db "@"
+
+BTWinF5: ; 0x11f5eb
+ text_jump UnknownText_0x1ecb55
+ db "@"
+
+BTGreetingF6: ; 0x11f5f0
+ text_jump UnknownText_0x1ecb70
+ db "@"
+
+BTLossF6: ; 0x11f5f5
+ text_jump UnknownText_0x1ecb92
+ db "@"
+
+BTWinF6: ; 0x11f5fa
+ text_jump UnknownText_0x1ecbb6
+ db "@"
+
+BTGreetingF7: ; 0x11f5ff
+ text_jump UnknownText_0x1ecbd9
+ db "@"
+
+BTLossF7: ; 0x11f604
+ text_jump UnknownText_0x1ecbf3
+ db "@"
+
+BTWinF7: ; 0x11f609
+ text_jump UnknownText_0x1ecc15
+ db "@"
+
+BTGreetingF8: ; 0x11f60e
+ text_jump UnknownText_0x1ecc39
+ db "@"
+
+BTLossF8: ; 0x11f613
+ text_jump UnknownText_0x1ecc55
+ db "@"
+
+BTWinF8: ; 0x11f618
+ text_jump UnknownText_0x1ecc75
+ db "@"
+
+BTGreetingF9: ; 0x11f61d
+ text_jump UnknownText_0x1ecc92
+ db "@"
+
+BTLossF9: ; 0x11f622
+ text_jump UnknownText_0x1ecca7
+ db "@"
+
+BTWinF9: ; 0x11f627
+ text_jump UnknownText_0x1eccc1
+ db "@"
+
+BTGreetingF10: ; 0x11f62c
+ text_jump UnknownText_0x1eccd7
+ db "@"
+
+BTLossF10: ; 0x11f631
+ text_jump UnknownText_0x1eccef
+ db "@"
+
+BTWinF10: ; 0x11f636
+ text_jump UnknownText_0x1ecd0e
+ db "@"
+
+BTGreetingF11: ; 0x11f63b
+ text_jump UnknownText_0x1ecd2b
+ db "@"
+
+BTLossF11: ; 0x11f640
+ text_jump UnknownText_0x1ecd4d
+ db "@"
+
+BTWinF11: ; 0x11f645
+ text_jump UnknownText_0x1ecd6b
+ db "@"
+
+BTGreetingF12: ; 0x11f64a
+ text_jump UnknownText_0x1ecd8d
+ db "@"
+
+BTLossF12: ; 0x11f64f
+ text_jump UnknownText_0x1ecdaf
+ db "@"
+
+BTWinF12: ; 0x11f654
+ text_jump UnknownText_0x1ecdcf
+ db "@"
+
+BTGreetingF13: ; 0x11f659
+ text_jump UnknownText_0x1ecded
+ db "@"
+
+BTLossF13: ; 0x11f65e
+ text_jump UnknownText_0x1ece0d
+ db "@"
+
+BTWinF13: ; 0x11f663
+ text_jump UnknownText_0x1ece2a
+ db "@"
+
+BTGreetingF14: ; 0x11f668
+ text_jump UnknownText_0x1ece4b
+ db "@"
+
+BTLossF14: ; 0x11f66d
+ text_jump UnknownText_0x1ece70
+ db "@"
+
+BTWinF14: ; 0x11f672
+ text_jump UnknownText_0x1ece8a
+ db "@"
+
+BTGreetingF15: ; 0x11f677
+ text_jump UnknownText_0x1ecea8
+ db "@"
+
+BTLossF15: ; 0x11f67c
+ text_jump UnknownText_0x1ecec9
+ db "@"
+
+BTWinF15: ; 0x11f681
+ text_jump UnknownText_0x1ecee8
+ db "@"
--- /dev/null
+++ b/mobile/battle_tower_5c.asm
@@ -1,0 +1,1772 @@
+BattleTowerRoomMenu: ; 1700b0
+; special
+ call InitBattleTowerChallengeRAM
+ callba _BattleTowerRoomMenu
+ ret
+; 1700ba
+
+Function1700ba: ; 1700ba
+ call InitBattleTowerChallengeRAM
+ callba Function11811a
+ ret
+; 1700c4
+
+Function1700c4: ; 1700c4
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+
+ call Function17042c
+
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$be45], a
+ xor a
+ ld [$be46], a
+ ld hl, w3_dffc
+ ld de, $aa41
+ ld bc, 4
+ call CopyBytes
+ ld hl, w3_d202Name
+ ld de, $aa8e
+ ld bc, 7 * $cc ; length of battle tower struct from japanese games?
+ call CopyBytes
+ ld hl, $aa5d ; some sort of count
+ ld a, [hl]
+ inc [hl]
+ inc hl
+ sla a
+ sla a
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, w3_dffc
+ ld bc, 4
+ call CopyBytes
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ ret
+; 170114
+
+Function170114: ; 170114
+ call InitBattleTowerChallengeRAM
+ call .Function170121
+ callba Function11805f
+ ret
+; 170121
+
+.Function170121: ; 170121
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a948
+ ld de, wMisc
+ ld bc, $f6 ; 246
+ call CopyBytes
+ call CloseSRAM
+ call Function170c8b
+ ret
+; 170139
+
+Function170139: ; 170139
+; Convert the 4-digit decimal number at 5:aa41 into binary
+ ld a, $5
+ call GetSRAMBank
+ ld de, $aa41
+ ld h, $0
+ ld l, h
+ ld bc, 1000
+ call .DecToBin
+ ld bc, 100
+ call .DecToBin
+ ld bc, 10
+ call .DecToBin
+ ld a, [de]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ call CloseSRAM
+; Store that number in wMisc
+ ld a, h
+ ld [wMisc], a
+ ld a, l
+ ld [wMisc + 1], a
+ ld hl, wBT_OTTempPkmn1DVs
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [PlayerID + 1]
+ ld [hli], a
+ ld a, [wSecretID]
+ ld [hli], a
+ ld a, [wSecretID + 1]
+ ld [hli], a
+ ld e, l
+ ld d, h
+ ld hl, PlayerName
+ ld bc, NAME_LENGTH_JAPANESE - 1
+ call CopyBytes
+ ld bc, PlayerID
+ ld de, PlayerGender
+ callba GetMobileOTTrainerClass
+ ld de, wBT_OTTempPkmn1CaughtGender
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, PartyMons % $100
+ ld [wcd49], a
+ ld a, PartyMons / $100
+ ld [wcd4a], a
+ ld a, PartyMonNicknames % $100
+ ld [wcd4b], a
+ ld a, PartyMonNicknames / $100
+ ld [wcd4c], a
+ ld a, 3
+.CopyLoop:
+ push af
+ ld a, [wcd49]
+ ld l, a
+ ld a, [wcd4a]
+ ld h, a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld a, l
+ ld [wcd49], a
+ ld a, h
+ ld [wcd4a], a
+ ld a, [wcd4b]
+ ld l, a
+ ld a, [wcd4c]
+ ld h, a
+ ld bc, $0006
+ call CopyBytes
+ ld a, l
+ ld [wcd4b], a
+ ld a, h
+ ld [wcd4c], a
+ pop af
+ dec a
+ jr nz, .CopyLoop
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a013
+ ld bc, $24
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a894
+ ld bc, NAME_LENGTH_JAPANESE
+ call CopyBytes
+ ld hl, wMisc
+ ld de, $a948
+ ld bc, $f6
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17020c
+
+.DecToBin: ; 17020c
+ ld a, [de]
+ inc de
+ and a
+ ret z
+
+.digit_loop
+ add hl, bc
+ dec a
+ jr nz, .digit_loop
+ ret
+; 170215
+
+BattleTowerBattle: ; 170215
+ xor a
+ ld [wBattleTowerBattleEnded], a
+ call _BattleTowerBattle
+ ret
+; 17021d
+
+EmptySpecial_17021d: ; 17021d
+ ret
+; 17021e
+
+InitBattleTowerChallengeRAM: ; 17021e
+ xor a
+ ld [wBattleTowerBattleEnded], a
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ret
+; 17022c
+
+_BattleTowerBattle: ; 17022c
+.loop
+ call .do_dw
+ call DelayFrame
+ ld a, [wBattleTowerBattleEnded]
+ cp $1
+ jr nz, .loop
+ ret
+; 17023a
+
+.do_dw ; 17023a
+ ld a, [wBattleTowerBattleEnded]
+ ld e, a
+ ld d, 0
+ ld hl, .dw
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 170249
+
+.dw ; 170249
+ dw RunBattleTowerTrainer
+ dw SkipBattleTowerTrainer
+; 17024d
+
+RunBattleTowerTrainer: ; 17024d
+ ld a, [Options]
+ push af
+ ld hl, Options
+ set BATTLE_SHIFT, [hl] ; SET MODE
+
+ ld a, [InBattleTowerBattle]
+ push af
+ or $1
+ ld [InBattleTowerBattle], a
+
+ xor a
+ ld [wLinkMode], a
+ callba TrainerRankings_Healings
+ callba HealParty
+ call ReadBTTrainerParty
+ call Clears5_a89a
+
+ predef StartBattle
+
+ callba LoadPokemonData
+ callba HealParty
+ ld a, [wBattleResult]
+ ld [ScriptVar], a
+ and a
+ jr nz, .lost
+ ld a, BANK(sNrOfBeatenBattleTowerTrainers)
+ call GetSRAMBank
+ ld a, [sNrOfBeatenBattleTowerTrainers]
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ call CloseSRAM
+ ld hl, StringBuffer3
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ add "1"
+ ld [hli], a
+ ld a, "@"
+ ld [hl], a
+
+.lost
+ pop af
+ ld [InBattleTowerBattle], a
+ pop af
+ ld [Options], a
+ ld a, $1
+ ld [wBattleTowerBattleEnded], a
+ ret
+
+
+ReadBTTrainerParty: ; 1702b7
+; Initialise the BattleTower-Trainer and his Pkmn
+ call CopyBTTrainer_FromBT_OT_TowBT_OTTemp
+
+; Check the nicknames for illegal characters, and replace bad nicknames
+; with their species names.
+ ld de, wBT_OTTempPkmn1Name ; $c643
+ ld c, PKMN_NAME_LENGTH
+ callba CheckStringForErrors
+ jr nc, .skip_mon_1
+
+ ld a, [wBT_OTTempPkmn1]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld l, e
+ ld h, d
+ ld de, wBT_OTTempPkmn1Name ; $c643
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+.skip_mon_1
+ ld de, wBT_OTTempPkmn2Name ; $c67e
+ ld c, PKMN_NAME_LENGTH
+ callba CheckStringForErrors
+ jr nc, .skip_mon_2
+ ld a, [wBT_OTTempPkmn2] ; [$c64e]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld l, e
+ ld h, d
+ ld de, wBT_OTTempPkmn2Name ; $c67e
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+.skip_mon_2
+ ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
+ ld c, PKMN_NAME_LENGTH
+ callba CheckStringForErrors
+ jr nc, .skip_mon_3
+ ld a, [wBT_OTTempPkmn3] ; [$c689]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld l, e
+ ld h, d
+ ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+.skip_mon_3
+; Add the terminator character to each of these names
+ ld a, "@"
+ ld [wBT_OTTempPkmn1NameEnd - 1], a ; $c64d
+ ld [wBT_OTTempPkmn2NameEnd - 1], a ; $c688
+ ld [wBT_OTTempPkmn3NameEnd - 1], a ; $c68a + 57 = $c6c3
+; Fix errors in the movesets
+ call CheckBTMonMovesForErrors
+; Repair the trainer name if needed, then copy it to OTPlayerName
+ ld de, wBT_OTTempName
+ ld c, NAME_LENGTH - 1
+ callba CheckStringForErrors
+ jr nc, .trainer_name_okay
+ ld hl, BT_ChrisName
+ jr .done_trainer_name
+
+.trainer_name_okay
+ ld hl, wBT_OTTempName ; 0xc608
+
+.done_trainer_name
+ ld de, OTPlayerName
+ ld bc, NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+
+ ld hl, wBT_OTTempTrainerClass
+ ld a, [hli]
+ ld [OtherTrainerClass], a
+ ld a, OTPartyMonNicknames % $100
+ ld [BGMapBuffer], a
+ ld a, OTPartyMonNicknames / $100
+ ld [BGMapBuffer + 1], a
+
+ ; Copy Pkmn into Memory from the address in hl
+ ld de, OTPartyMon1Species
+ ld bc, OTPartyCount
+ ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has
+ ld [bc], a
+ inc bc
+.otpartymon_loop
+ push af
+ ld a, [hl]
+ ld [bc], a
+ inc bc
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ push de
+ ld a, [BGMapBuffer]
+ ld e, a
+ ld a, [BGMapBuffer + 1]
+ ld d, a
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ld a, e
+ ld [BGMapBuffer], a
+ ld a, d
+ ld [BGMapBuffer + 1], a
+ pop de
+ pop bc
+ pop af
+ dec a
+ and a
+ jr nz, .otpartymon_loop
+ ld a, -1
+ ld [bc], a
+ ret
+; 170394
+
+ValidateBTParty: ; 170394
+; Check for and fix errors in party data
+ ld hl, wBT_OTTempPkmn1Species
+ ld d, BATTLETOWER_NROFPKMNS
+.pkmn_loop
+ push de
+ push hl
+ ld b, h
+ ld c, l
+ ld a, [hl]
+ and a
+idx = $ff
+rept ($ff +- NUM_POKEMON)
+ jr z, .invalid
+ cp idx
+idx = idx +- 1
+endr
+ jr nz, .valid
+
+.invalid
+ ld a, SMEARGLE
+ ld [hl], a
+
+.valid
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb] ; s5_b2fb ; max level?
+ call CloseSRAM
+ ld e, a
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .load
+ ld a, [hl]
+ cp e
+ jr c, .dont_load
+ ld a, e
+
+.load
+ ld [hl], a
+
+.dont_load
+ ld [CurPartyLevel], a
+ ld hl, MON_MOVES
+ add hl, bc
+ ld d, NUM_MOVES - 1
+ ld a, [hli]
+ and a
+ jr z, .not_move
+ cp NUM_ATTACKS + 1
+ jr nc, .not_move
+ jr .valid_move
+
+.not_move
+ dec hl
+ ld a, POUND
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ jr .done_moves
+
+.valid_move
+ ld a, [hl]
+ cp NUM_ATTACKS + 1
+ jr c, .next
+ ld [hl], $0
+
+.next
+ inc hl
+ dec d
+ jr nz, .valid_move
+
+.done_moves
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ push hl
+ push de
+ ld hl, MON_STAT_EXP - 1
+ add hl, bc
+ ld b, $1
+ predef CalcPkmnStats
+ pop de
+ pop hl
+ dec de
+ dec de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ pop hl
+ ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
+ add hl, bc
+ pop de
+ dec d
+ jp nz, .pkmn_loop
+ ret
+; 170426
+
+BT_ChrisName: ; 170426
+ db "CHRIS@"
+; 17042c
+
+Function17042c: ; 17042c
+ ld hl, w3_d202TrainerData
+ ld a, BATTLETOWER_NROFTRAINERS
+.loop
+ push af
+ push hl
+ ld c, BATTLETOWER_TRAINERDATALENGTH / 2
+.loop2
+ ; First byte is a comparison value.
+ ld a, [hli]
+ ld b, a
+ ; Second byte is a lookup index.
+ ld a, [hli]
+ and a
+ jr z, .empty
+ cp 15
+ jr nc, .copy_data
+
+ push hl
+ ld hl, Unknown_170470
+ dec a
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+ pop hl
+
+ ; If Unknown_170470[a-1] <= b, overwrite the current trainer's data
+ ; with Unknown17047e, and exit the inner loop.
+ cp b
+ jr c, .copy_data
+ jr z, .copy_data
+ jr .next_iteration
+
+.empty
+ ; If a == 0 and b >= $fc, overwrite the current trainer's data with
+ ; Unknown17047e, and exit the inner loop.
+ ld a, b
+ cp $fc
+ jr nc, .copy_data
+
+.next_iteration
+ dec c
+ jr nz, .loop2
+ jr .next_trainer
+
+.copy_data
+ pop de
+ push de
+ ld hl, Unknown_17047e
+ ld bc, BATTLETOWER_TRAINERDATALENGTH
+ call CopyBytes
+
+.next_trainer
+ pop hl
+ ld de, BATTLE_TOWER_STRUCT_LENGTH
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+; 170470
+
+Unknown_170470:
+ db $12
+ db $24
+ db $45
+ db $45
+ db $42
+ db $42
+ db $45
+ db $42
+ db $27
+ db $27
+ db $45
+ db $27
+ db $42
+ db $24
+
+Unknown_17047e:
+; see data/battle_tower_2.asm
+ db $03, 4
+ db $05, 8
+ db $03, 5
+ db $0e, 6
+ db $03, 2
+ db $00, 0
+ db $39, 7
+ db $07, 4
+ db $00, 5
+ db $04, 7
+ db $01, 5
+ db $00, 0
+ db $0f, 5
+ db $14, 7
+ db $05, 5
+ db $11, 12
+ db $0c, 6
+ db $06, 4
+
+
+CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
+; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp'
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(BT_OTTrainer)
+ ld [rSVBK], a
+
+ ld hl, BT_OTTrainer
+ ld de, wBT_OTTemp
+ ld bc, BATTLE_TOWER_STRUCT_LENGTH
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, BATTLETOWER_CHALLENGE_IN_PROGESS
+ ld [sBattleTowerChallengeState], a
+ ld hl, sNrOfBeatenBattleTowerTrainers
+ inc [hl]
+ call CloseSRAM
+SkipBattleTowerTrainer: ; 1704c9
+ ret
+; 1704ca
+
+Function1704ca: ; 1704ca
+; unreferenced mobile function
+ ld a, [$be46]
+ cp $7
+ jr c, .asm_1704d3
+ ld a, $6
+
+.asm_1704d3
+ ld hl, $afce
+ ld de, -$e0
+.asm_1704d9
+ and a
+ jr z, .asm_1704e0
+ add hl, de
+ dec a
+ jr .asm_1704d9
+
+.asm_1704e0
+ ret
+; 1704e1
+
+Function1704e1: ; 1704e1
+; unreferenced special
+ call SpeechTextBox
+ call FadeToMenu
+ call InitBattleTowerChallengeRAM
+ call .JumptableLoop
+ call CloseSubmenu
+ ret
+; 1704f1
+
+.JumptableLoop: ; 1704f1
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+.loop
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done
+ call .DoJumptable
+ callba ReloadMapPart
+ jr .loop
+
+.done
+ ret
+; 170510
+
+.DoJumptable: ; 170510
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .dw
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 17051f
+
+.dw ; 17051f
+ dw .Jumptable_0
+ dw .Jumptable_1
+ dw .Jumptable_2
+; 170525
+
+.Jumptable_0: ; 170525
+ ld a, $5
+ call GetSRAMBank
+
+ ld hl, $a89c
+ ld de, StringBuffer3
+ ld bc, $16
+ call CopyBytes
+
+ ld hl, $a8b2
+ ld de, wMisc
+ ld bc, $0096
+ call CopyBytes
+
+ call CloseSRAM
+ hlcoord 1, 1
+ ld de, StringBuffer3
+ call PlaceString
+ hlcoord 1, 3
+ ld de, .String_Mail
+ call PlaceString
+ hlcoord 4, 3
+ ld de, StringBuffer4
+ call PlaceString
+ hlcoord 8, 3
+ ld de, .String_PastReaders
+ call PlaceString
+ call .DrawBorder
+ call .PlaceTextItems
+ jr .NextJumptableFunction
+
+
+.Jumptable_1:
+ call SetPalettes
+ call .NextJumptableFunction
+
+
+.Jumptable_2:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .pressed_a_or_b
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .pressed_a_or_b
+ ld a, [hl]
+ and D_UP
+ jr nz, .pressed_up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .pressed_down
+ ret
+
+.pressed_up
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ and a
+ ret z
+ sub 15
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ call .PlaceTextItems
+ ret
+
+.pressed_down
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ cp 60
+ ret z
+ add 15
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ call .PlaceTextItems
+ ret
+
+.pressed_a_or_b
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.NextJumptableFunction:
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 1705b7
+
+.DrawBorder: ; 1705b7
+ hlcoord 0, 4
+ ld a, $79
+ ld [hli], a
+ ld c, SCREEN_WIDTH - 2
+.top_border_loop
+ ld a, $7a
+ ld [hli], a
+ dec c
+ jr nz, .top_border_loop
+ ld a, $7b
+ ld [hli], a
+ ld de, SCREEN_WIDTH
+ ld c, 12
+.left_border_loop
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .left_border_loop
+ ld a, $7d
+ ld [hli], a
+ ld c, SCREEN_WIDTH - 2
+.bottom_border_loop
+ ld a, $7a
+ ld [hli], a
+ dec c
+ jr nz, .bottom_border_loop
+ ld a, $7e
+ ld [hl], a
+ ld de, -SCREEN_WIDTH
+ add hl, de
+ ld c, 12
+.right_border_loop
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .right_border_loop
+ ret
+; 1705f0
+
+.PlaceTextItems: ; 1705f0
+ call .ClearBox
+ call .PlaceUpDownArrows
+ ld a, $50
+ ld [wcd4e], a
+ ld hl, wMisc
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ push hl
+ pop bc
+ hlcoord 1, 6
+ ld a, 6
+.loop1
+ push af
+ push hl
+ ld a, 3
+.loop2
+ push af
+ ld de, wcd49
+ ld a, [bc]
+ and a
+ jr z, .fill_with_e3
+; .copy
+ ld a, 5
+.loop3a
+ push af
+ ld a, [bc]
+ ld [de], a
+ inc bc
+ inc de
+ pop af
+ dec a
+ jr nz, .loop3a
+ jr .rejoin
+
+.fill_with_e3
+ ld a, 5
+.loop3b
+ push af
+ ld a, $e3
+ ld [de], a
+ inc de
+ inc bc
+ pop af
+ dec a
+ jr nz, .loop3b
+
+.rejoin
+ ld de, wcd49
+ push bc
+ call PlaceString
+ ld de, NAME_LENGTH_JAPANESE
+ add hl, de
+ pop bc
+ pop af
+ dec a
+ jr nz, .loop2
+ pop hl
+ ld de, $28
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop1
+ ret
+; 17064b
+
+.ClearBox: ; 17064b
+ hlcoord 1, 5
+ xor a
+ ld b, 12
+.clearbox_row
+ ld c, SCREEN_WIDTH - 2
+.clearbox_column
+ ld [hli], a
+ dec c
+ jr nz, .clearbox_column
+ inc hl
+ inc hl
+ dec b
+ jr nz, .clearbox_row
+ ret
+; 17065d
+
+.PlaceUpDownArrows: ; 17065d
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ and a
+ jr z, .nope
+ hlcoord 18, 5
+ ld a, "▲"
+ ld [hl], a
+
+.nope
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ cp 60
+ ret z
+ hlcoord 18, 16
+ ld a, "▼"
+ ld [hl], a
+ ret
+; 170676
+
+.String_Mail: ; 170676
+ db "ルーム@"
+; 17067a
+
+.String_PastReaders: ; 17067a
+ db "れきだいりーダーいちらん@"
+; 170687
+
+BattleTowerAction: ; 170687
+ ld a, [ScriptVar]
+ ld e, a
+ ld d, 0
+ ld hl, .dw
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 170696
+
+
+.dw ; 170696 (5c:4696)
+ dw BattleTowerAction_CheckExplanationRead ; 0x00
+ dw BattleTowerAction_SetExplanationRead ; 0x01
+ dw BattleTowerAction_GetChallengeState ; 0x02
+ dw BattleTowerAction_SetByteToQuickSaveChallenge ; 0x03
+ dw BattleTowerAction_SetByteToCancelChallenge ; 0x04
+ dw Function1707ac ; 0x05
+ dw Function1707f4 ; 0x06
+ dw SaveBattleTowerLevelGroup ; 0x07
+ dw LoadBattleTowerLevelGroup ; 0x08
+ dw BattleTower_CheckSaveFileExistsAndIsYours ; 0x09
+ dw Function1708b1 ; 0x0a
+ dw CheckMobileEventIndex ; 0x0b
+ dw Function1708c8 ; 0x0c
+ dw Function1708f0 ; 0x0d
+ dw BattleTowerAction_EggTicket ; 0x0e
+ dw Function1709aa ; 0x0f
+ dw Function1709bb ; 0x10
+ dw Function170a9c ; 0x11
+ dw Function170aa0 ; 0x12
+ dw Function170aaf ; 0x13
+ dw Function170abe ; 0x14
+ dw Function170ad7 ; 0x15
+ dw Function170807 ; 0x16
+ dw Function17081d ; 0x17
+ dw BattleTowerAction_LevelCheck ; 0x18
+ dw BattleTowerAction_UbersCheck ; 0x19
+ dw ResetBattleTowerTrainersSRAM ; 0x1a
+ dw BattleTower_GiveReward ; 0x1b
+ dw Function17071b ; 0x1c
+ dw Function170729 ; 0x1d
+ dw BattleTower_RandomlyChooseReward ; 0x1e
+ dw BattleTower_SaveOptions ; 0x1f
+
+
+; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
+ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
+ ld a, BANK(sBTTrainers)
+ call GetSRAMBank
+
+ ld a, $ff
+ ld hl, sBTTrainers
+ ld bc, BATTLETOWER_NROFTRAINERS
+ call ByteFill
+
+ xor a
+ ld [sNrOfBeatenBattleTowerTrainers], a
+
+ call CloseSRAM
+
+ ret
+
+BattleTower_GiveReward: ; 1706ee (5c:46ee) BattleTowerAction $1b
+ ld a, BANK(sBattleTowerReward)
+ call GetSRAMBank
+
+ ld a, [sBattleTowerReward]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ld hl, NumItems
+ ld a, [hli]
+ cp MAX_ITEMS
+ ret c
+ ld b, MAX_ITEMS
+ ld a, [ScriptVar]
+ ld c, a
+.loop
+ ld a, [hli]
+ cp c
+ jr nz, .next
+ ld a, [hl]
+ cp 95
+ ret c
+.next
+ inc hl
+ dec b
+ jr nz, .loop
+ ld a, POTION
+ ld [ScriptVar], a
+ ret
+
+Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, BATTLETOWER_WON_CHALLENGE
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+Function170729: ; 170729 (5c:4729) BattleTowerAction $1d
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, BATTLETOWER_RECEIVED_REWARD
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+BattleTower_SaveOptions: ; 170737 (5c:4737) BattleTowerAction $1f
+ callba SaveOptions
+ ret
+
+BattleTower_RandomlyChooseReward: ; 17073e (5c:473e) BattleTowerAction $1e
+; Generate a random stat boosting item.
+.loop
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ cp 6
+ jr c, .okay
+ sub 6
+.okay
+ add HP_UP
+ cp LUCKY_PUNCH
+ jr z, .loop
+ push af
+ ld a, BANK(sBattleTowerReward)
+ call GetSRAMBank
+ pop af
+ ld [sBattleTowerReward], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_CheckExplanationRead: ; 17075f (5c:475f) BattleTowerAction $00
+ call BattleTower_CheckSaveFileExistsAndIsYours
+ ld a, [ScriptVar]
+ and a
+ ret z
+
+ ld a, BANK(sBattleTowerSaveFileFlags)
+ call GetSRAMBank
+ ld a, [sBattleTowerSaveFileFlags]
+ and $2
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_GetChallengeState: ; 170778 (5c:4778) BattleTowerAction $02
+ ld hl, sBattleTowerChallengeState
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, [hl]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_SetExplanationRead: ; 170788 (5c:4788) BattleTowerAction $01
+ ld a, BANK(sBattleTowerSaveFileFlags)
+ call GetSRAMBank
+ ld a, [sBattleTowerSaveFileFlags]
+ or $2
+ ld [sBattleTowerSaveFileFlags], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_SetByteToQuickSaveChallenge: ; 170799 (5c:4799) BattleTowerAction $03
+ ld c, BATTLETOWER_SAVED_AND_LEFT
+ jr asm_17079f
+
+BattleTowerAction_SetByteToCancelChallenge: ; 17079d (5c:479d) BattleTowerAction $04
+ ld c, BATTLETOWER_NO_CHALLENGE
+asm_17079f: ; 17079f (5c:479f)
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, c
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+Function1707ac: ; 1707ac (5c:47ac) BattleTowerAction $05
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8c]
+ ld b, a
+ ld a, [$be46]
+ ld [ScriptVar], a
+ call CloseSRAM
+ and a
+ ret z
+ ld a, b
+ cp $2
+ jr nc, .asm_1707ef
+ push bc
+ call UpdateTime
+ pop bc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8b]
+ call CloseSRAM
+ ld c, a
+ ld a, [CurDay]
+ sub c
+ jr c, .asm_1707e5
+ cp $8
+ jr nc, .asm_1707ef
+ ld a, b
+ and a
+ jr nz, .asm_1707ef
+ ret
+.asm_1707e5
+ ld hl, CurDay
+ ld a, $8c
+ sub c
+ add [hl]
+ cp $8
+ ret c
+.asm_1707ef
+ ld a, $8
+ ld [ScriptVar], a
+
+Function1707f4: ; 1707f4 (5c:47f4) BattleTowerAction $06
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$be46], a
+ ld [$aa8b], a
+ ld [$aa8c], a
+ call CloseSRAM
+ ret
+
+Function170807: ; 170807 (5c:4807) BattleTowerAction $16
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [CurDay]
+ ld [$b2f9], a
+ xor a
+ ld [$b2fa], a
+ call CloseSRAM
+ ret
+
+Function17081d: ; 17081d (5c:481d) BattleTowerAction $17
+ xor a
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2f9]
+ ld c, a
+ ld a, [$b2fa]
+ ld b, a
+ call CloseSRAM
+ cp $2
+ jr nc, .asm_170853
+ push bc
+ call UpdateTime
+ pop bc
+ ld a, [CurDay]
+ sub c
+ jr c, .asm_170849
+ cp $b
+ jr nc, .asm_170853
+ ld a, b
+ and a
+ jr nz, .asm_170853
+ ret
+
+.asm_170849
+ ld hl, CurDay
+ ld a, 140
+ sub c
+ add [hl]
+ cp $b
+ ret c
+.asm_170853
+ ld a, $1
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$b2f9], a
+ ld [$b2fa], a
+ call CloseSRAM
+ ret
+
+SaveBattleTowerLevelGroup: ; 170868 (5c:4868) BattleTowerAction $07
+ ld a, BANK(sBTChoiceOfLevelGroup)
+ call GetSRAMBank
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [wBTChoiceOfLvlGroup]
+ ld [sBTChoiceOfLevelGroup], a
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+LoadBattleTowerLevelGroup: ; 170881 (5c:4881) BattleTowerAction $08 ; Load level group choice
+ ld a, BANK(sBTChoiceOfLevelGroup)
+ call GetSRAMBank
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [sBTChoiceOfLevelGroup]
+ ld [wBTChoiceOfLvlGroup], a
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+BattleTower_CheckSaveFileExistsAndIsYours: ; 17089a BattleTowerAction $09
+ ld a, [wSaveFileExists]
+ and a
+ jr z, .nope
+ callba CompareLoadedAndSavedPlayerID
+ jr z, .yes
+ xor a
+ jr .nope
+
+.yes
+ ld a, $1
+
+.nope
+ ld [ScriptVar], a
+ ret
+; 1708b1
+
+
+Function1708b1: ; 1708b1 (5c:48b1) BattleTowerAction $0a
+ xor a
+ ld [MusicFade], a
+ call MaxVolume
+ ret
+
+CheckMobileEventIndex: ; 1708b9 (5c:48b9) BattleTowerAction $0b something to do with GS Ball
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ ld a, [sMobileEventIndex]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function1708c8: ; 1708c8 (5c:48c8) BattleTowerAction $0c
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [CurDay]
+ ld [$aa8b], a
+ xor a
+ ld [$aa8c], a
+ ld a, [$aa5d]
+ cp $2
+ jr nc, .asm_1708ec
+ ld a, [CurDay]
+ ld [$aa48], a
+ ld a, $1
+ ld [$aa47], a
+.asm_1708ec
+ call CloseSRAM
+ ret
+
+Function1708f0: ; 1708f0 (5c:48f0) BattleTowerAction $0d
+ xor a
+ ld [ScriptVar], a
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa48]
+ ld c, a
+ ld a, [$aa47]
+ call CloseSRAM
+ and a
+ ret z
+ ld hl, CurDay
+ ld a, c
+ cp [hl]
+ jr nz, Function170923
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa5d]
+ call CloseSRAM
+ cp $5
+ ret c
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+
+Function170923: ; 170923
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$aa48], a
+ ld [$aa47], a
+ ld hl, $aa5d
+ ld bc, $0011
+ call ByteFill
+ call CloseSRAM
+ ret
+; 17093c
+
+
+BattleTowerAction_EggTicket: ; 17093c (5c:493c) BattleTowerAction $0e
+ xor a
+ ld [ScriptVar], a
+ ld a, EGG_TICKET
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ ret nc
+ ld a, [PartyCount]
+ ld b, 0
+ ld c, a
+ ld hl, PartySpecies
+.loop
+ ld a, [hli]
+ cp EGG
+ jr nz, .not_egg
+ push hl
+ ld hl, PartyMonOT
+ ld de, NAME_LENGTH_JAPANESE
+ ld a, b
+ and a
+ jr z, .skip
+.loop2
+ add hl, de
+ dec a
+ jr nz, .loop2
+.skip
+ ld de, String_1709a4
+ ld a, NAME_LENGTH_JAPANESE
+.compare_loop
+ push af
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .different
+ pop af
+ dec a
+ jr nz, .compare_loop
+rept 4
+ dec hl
+endr
+ ld a, "@"
+ ld [hli], a
+ ld [hli], a
+ pop hl
+ ld a, EGG_TICKET
+ ld [CurItem], a
+ ld a, 1
+ ld [wItemQuantityChangeBuffer], a
+ ld a, -1
+ ld [CurItemQuantity], a
+ ld hl, NumItems
+ call TossItem
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.different
+ pop af
+ pop hl
+.not_egg
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 1709a4 (5c:49a4)
+
+String_1709a4: ; 1709a4
+ db "なぞナゾ@@"
+
+Function1709aa: ; 1709aa (5c:49aa) BattleTowerAction $0f
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(w3_d090)
+ ld [rSVBK], a
+ ld a, [w3_d090]
+ ld [ScriptVar], a
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function1709bb: ; 1709bb (5c:49bb) BattleTowerAction $10
+ xor a
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a800]
+ call CloseSRAM
+ cp 6
+ jr nc, .invalid
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1709e7
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.invalid
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ call CloseSRAM
+ ret
+; 1709e7 (5c:49e7)
+
+Jumptable_1709e7: ; 1709e7
+ dw .NoAction
+ dw .NoAction
+ dw .DoAction1
+ dw .DoAction1
+ dw .Action4
+ dw .Action5
+; 1709f3
+
+.DoAction1: ; 1709f3
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$a800], a
+ call CloseSRAM
+
+.NoAction: ; 170a00
+ ret
+; 170a01
+
+.Action4: ; 170a01
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b023
+ ld de, wMisc
+ ld bc, $0069
+ call CopyBytes
+ ld a, [$a825]
+ ld [wcd30], a
+ ld a, [$a826]
+ ld [wcd31], a
+ call CloseSRAM
+ callba Function11b6b4
+ callba Function17d0f3
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 170a33
+
+.Action5: ; 170a33
+ ld a, $0
+ call GetSRAMBank
+ ld hl, wRTC
+ ld de, wMisc
+ ld bc, $0004
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b08c
+ ld de, wMisc
+ ld c, $4
+.compare_loop
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .different
+ inc hl
+ dec c
+ jr nz, .compare_loop
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .no_trigger
+ ld a, [de]
+ and a
+ ret nz
+
+.no_trigger
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.different
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ call CloseSRAM
+ ld [ScriptVar], a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .no_trigger_2
+ xor a
+ ld [de], a
+
+.no_trigger_2
+ ret
+; 170a9c
+
+Function170a9c: ; 170a9c (5c:4a9c) BattleTowerAction $11
+ ld c, $0
+ jr asm_170aa2
+
+Function170aa0: ; 170aa0 (5c:4aa0) BattleTowerAction $12
+ ld c, $1
+asm_170aa2: ; 170aa2 (5c:4aa2)
+ ld a, $5
+ call GetSRAMBank
+ ld a, c
+ ld [$aa8d], a
+ call CloseSRAM
+ ret
+
+Function170aaf: ; 170aaf (5c:4aaf) BattleTowerAction $13
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8d]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14
+ call BattleTower_CheckSaveFileExistsAndIsYours
+ ld a, [ScriptVar]
+ and a
+ ret z
+
+ ld a, BANK(sBattleTowerSaveFileFlags)
+ call GetSRAMBank
+ ld a, [sBattleTowerSaveFileFlags]
+ and $1
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15
+ ld a, BANK(sBattleTowerSaveFileFlags)
+ call GetSRAMBank
+ ld a, [sBattleTowerSaveFileFlags]
+ or $1
+ ld [sBattleTowerSaveFileFlags], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_LevelCheck: ; 170ae8 (5c:4ae8) BattleTowerAction $18
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld c, 10
+ call SimpleDivide
+ ld a, b
+ ld [wcd4f], a
+ xor a
+ ld [ScriptVar], a
+ callba BattleTower_LevelCheck ; level check
+ ret nc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ret
+
+BattleTowerAction_UbersCheck: ; 170b16 (5c:4b16) BattleTowerAction $19
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld c, 10
+ call SimpleDivide
+ ld a, b
+ ld [wcd4f], a
+ xor a
+ ld [ScriptVar], a
+ callba BattleTower_UbersCheck
+ ret nc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ret
+
+Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
+ callba Function_LoadOpponentTrainerAndPokemons
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, BT_OTTrainerClass
+ ld a, [hl]
+ dec a
+ ld c, a
+ ld b, $0
+ pop af
+ ld [rSVBK], a
+ ld hl, .Sprites
+ add hl, bc
+ ld a, [hl]
+ ld [wBTTempOTSprite], a
+
+; Load sprite of the opponent trainer
+; because s/he is chosen randomly and appears out of nowhere
+ ld a, [ScriptVar]
+ dec a
+ sla a
+ ld e, a
+ sla a
+ sla a
+ sla a
+ ld c, a
+ ld b, 0
+ ld d, 0
+ ld hl, MapObjects
+ add hl, bc
+ inc hl
+ ld a, [wBTTempOTSprite]
+ ld [hl], a
+ ld hl, UsedSprites
+ add hl, de
+ ld [hli], a
+ ld [hUsedSpriteIndex], a
+ ld a, [hl]
+ ld [hUsedSpriteTile], a
+ callba GetUsedSprite
+ ret
+; 170b90
+
+.Sprites:
+ db SPRITE_FALKNER
+ db SPRITE_WHITNEY
+ db SPRITE_BUGSY
+ db SPRITE_MORTY
+ db SPRITE_PRYCE
+ db SPRITE_JASMINE
+ db SPRITE_CHUCK
+ db SPRITE_CLAIR
+ db SPRITE_SILVER
+ db SPRITE_OAK
+ db SPRITE_WILL
+ db SPRITE_CHRIS
+ db SPRITE_BRUNO
+ db SPRITE_KAREN
+ db SPRITE_KOGA
+ db SPRITE_LANCE
+ db SPRITE_BROCK
+ db SPRITE_MISTY
+ db SPRITE_SURGE
+ db SPRITE_SCIENTIST
+ db SPRITE_ERIKA
+ db SPRITE_YOUNGSTER
+ db SPRITE_YOUNGSTER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_JANINE
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_BUENA
+ db SPRITE_SUPER_NERD
+ db SPRITE_ROCKET
+ db SPRITE_GENTLEMAN
+ db SPRITE_BUENA
+ db SPRITE_TEACHER
+ db SPRITE_SABRINA
+ db SPRITE_BUG_CATCHER
+ db SPRITE_FISHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SAILOR
+ db SPRITE_SUPER_NERD
+ db SPRITE_BLUE
+ db SPRITE_ROCKER
+ db SPRITE_POKEFAN_M
+ db SPRITE_BIKER
+ db SPRITE_BLAINE
+ db SPRITE_PHARMACIST
+ db SPRITE_FISHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BLACK_BELT
+ db SPRITE_ROCKET
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_YOUNGSTER
+ db SPRITE_ROCKET_GIRL
+ db SPRITE_SAGE
+ db SPRITE_GRANNY
+ db SPRITE_ROCKER
+ db SPRITE_POKEFAN_M
+ db SPRITE_KIMONO_GIRL
+ db SPRITE_TWIN
+ db SPRITE_POKEFAN_F
+ db SPRITE_RED
+ db SPRITE_BLUE
+ db SPRITE_OFFICER
+ db SPRITE_ROCKET_GIRL
+
+ret_170bd2: ; 170bd2
+ ret
+; 170bd3
+
+SpecialCheckForBattleTowerRules: ; 170bd3
+ callba CheckForBattleTowerRules
+ jr c, .asm_170bde
+ xor a
+ jr .asm_170be0
+
+.asm_170bde
+ ld a, $1
+
+.asm_170be0
+ ld [ScriptVar], a
+ ret
+; 170be4
--- /dev/null
+++ b/mobile/fixed_words.asm
@@ -1,0 +1,4294 @@
+; These functions seem to be related to the selection of preset phrases
+; for use in mobile communications. Annoyingly, they separate the
+; Battle Tower function above from the data it references.
+Function11c05d: ; 11c05d
+ ld a, e
+ or d
+ jr z, .error
+ ld a, e
+ and d
+ cp $ff
+ jr z, .error
+ push hl
+ call CopyMobileEZChatToC608
+ pop hl
+ call PlaceString
+ and a
+ ret
+
+.error
+ ld c, l
+ ld b, h
+ scf
+ ret
+; 11c075
+
+Function11c075: ; 11c075
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, wcd36
+ call Function11c08f
+ ret
+; 11c082
+
+Function11c082: ; 11c082
+; XXX
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, wcd36
+ call PrintEZChatBattleMessage
+ ret
+; 11c08f
+
+Function11c08f: ; 11c08f
+ ld l, e
+ ld h, d
+ push hl
+ ld a, 3
+.loop
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .okay
+ inc bc
+
+.okay
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .loop
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ ld a, $3
+.loop2
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .okay2
+ inc bc
+
+.okay2
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .loop2
+ ret
+; 11c0c6
+
+PrintEZChatBattleMessage: ; 11c0c6
+; Use up to 6 words from bc to print text starting at de.
+ ; Preserve $cf63, $cf64
+ ld a, [wJumptableIndex]
+ ld l, a
+ ld a, [wcf64]
+ ld h, a
+ push hl
+ ; reset value at c618 (not preserved)
+ ld hl, $c618
+ ld a, $0
+ ld [hli], a
+ ; preserve de
+ push de
+ ; $cf63 keeps track of which line we're on (0, 1, or 2)
+ ; $cf64 keeps track of how much room we have left in the current line
+ xor a
+ ld [wJumptableIndex], a
+ ld a, 18
+ ld [wcf64], a
+ ld a, $6 ; up to 6 times
+.loop
+ push af
+ ; load the 2-byte word data pointed to by bc
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ ; if $0000, we're done
+ or e
+ jr z, .done
+ ; preserving hl and bc, get the length of the word
+ push hl
+ push bc
+ call CopyMobileEZChatToC608
+ call GetLengthOfWordAtC608
+ ld e, c
+ pop bc
+ pop hl
+ ; if the functions return 0, we're done
+ ld a, e
+ or a
+ jr z, .done
+.loop2
+ ; e contains the length of the word
+ ; add 1 for the space, unless we're at the start of the line
+ ld a, [wcf64]
+ cp 18
+ jr z, .skip_inc
+ inc e
+
+.skip_inc
+ ; if the word fits, put it on the same line
+ cp e
+ jr nc, .same_line
+ ; otherwise, go to the next line
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ; if we're on line 2, insert "<NEXT>"
+ ld [hl], "<NEXT>"
+ rra
+ jr c, .got_line_terminator
+ ; else, insert "<CONT>"
+ ld [hl], "<CONT>"
+
+.got_line_terminator
+ inc hl
+ ; init the next line, holding on to the same word
+ ld a, 18
+ ld [wcf64], a
+ dec e
+ jr .loop2
+
+.same_line
+ ; add the space, unless we're at the start of the line
+ cp 18
+ jr z, .skip_space
+ ld [hl], " "
+ inc hl
+
+.skip_space
+ ; deduct the length of the word
+ sub e
+ ld [wcf64], a
+ ld de, $c608
+.place_string_loop
+ ; load the string from de to hl
+ ld a, [de]
+ cp "@"
+ jr z, .done
+ inc de
+ ld [hli], a
+ jr .place_string_loop
+
+.done
+ ; next word?
+ pop af
+ dec a
+ jr nz, .loop
+ ; we're finished, place "<DONE>"
+ ld [hl], "<DONE>"
+ ; now, let's place the string from c618 to bc
+ pop bc
+ ld hl, $c618
+ call PlaceHLTextAtBC
+ ; restore the original values of $cf63 and $cf64
+ pop hl
+ ld a, l
+ ld [wJumptableIndex], a
+ ld a, h
+ ld [wcf64], a
+ ret
+; 11c14a
+
+GetLengthOfWordAtC608: ; 11c14a
+ ld c, $0
+ ld hl, $c608
+.loop
+ ld a, [hli]
+ cp "@"
+ ret z
+ inc c
+ jr .loop
+; 11c156
+
+CopyMobileEZChatToC608: ; 11c156
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, "@"
+ ld hl, $c608
+ ld bc, NAME_LENGTH
+ call ByteFill
+ ld a, d
+ and a
+ jr z, .get_name
+ ld hl, MobileEZChatCategoryPointers
+ dec d
+ sla d
+ ld c, d
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ push bc
+ pop hl
+ ld c, e
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ ld bc, NAME_LENGTH_JAPANESE - 1
+.copy_string
+ ld de, $c608
+ call CopyBytes
+ ld de, $c608
+ pop af
+ ld [rSVBK], a
+ ret
+
+.get_name
+ ld a, e
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld bc, PKMN_NAME_LENGTH - 1
+ jr .copy_string
+; 11c1ab
+
+Function11c1ab: ; 11c1ab
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function11c1b9
+ pop af
+ ld [hInMenu], a
+ ret
+; 11c1b9
+
+Function11c1b9: ; 11c1b9
+ call .InitKanaMode
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call EZChat_MasterLoop
+ pop af
+ ld [rSVBK], a
+ ret
+; 11c1ca
+
+.InitKanaMode: ; 11c1ca
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [wcd23], a
+ ld [wcd20], a
+ ld [wcd21], a
+ ld [wcd22], a
+ ld [wcd35], a
+ ld [wcd2b], a
+ ld a, $ff
+ ld [wcd24], a
+ ld a, [wMenuCursorY]
+ dec a
+ call Function11c254
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+ call Function11d323
+ call SetPalettes
+ call DisableLCD
+ ld hl, GFX_11d67e
+ ld de, VTiles2
+ ld bc, $60
+ call CopyBytes
+ ld hl, LZ_11d6de
+ ld de, VTiles0
+ call Decompress
+ call EnableLCD
+ callba ReloadMapPart
+ callba ClearSpriteAnims
+ callba LoadPokemonData
+ callba Pokedex_ABCMode
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $c6d0
+ ld de, LYOverrides
+ ld bc, $100
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call EZChat_GetCategoryWordsByKana
+ call EZChat_GetSeenPokemonByKana
+ ret
+; 11c254
+
+Function11c254: ; 11c254
+ push af
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a007
+ pop af
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld de, wcd36
+ ld bc, 12
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 11c277
+
+EZChat_ClearBottom12Rows: ; 11c277 (47:4277)
+ ld a, " "
+ hlcoord 0, 6
+ ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH
+ call ByteFill
+ ret
+
+EZChat_MasterLoop: ; 11c283
+.loop
+ call JoyTextDelay
+ ld a, [hJoyPressed]
+ ld [hJoypadPressed], a
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .exit
+ call .DoJumptableFunction
+ callba PlaySpriteAnimations
+ callba ReloadMapPart
+ jr .loop
+
+.exit
+ callba ClearSpriteAnims
+ call ClearSprites
+ ret
+; 11c2ac
+
+.DoJumptableFunction: ; 11c2ac
+ jumptable .Jumptable, wJumptableIndex
+; 11c2bb
+
+.Jumptable: ; 11c2bb (47:42bb)
+ dw .SpawnObjects ; 00
+ dw .InitRAM ; 01
+ dw Function11c35f ; 02
+ dw Function11c373 ; 03
+ dw Function11c3c2 ; 04
+ dw Function11c3ed ; 05
+ dw Function11c52c ; 06
+ dw Function11c53d ; 07
+ dw Function11c658 ; 08
+ dw Function11c675 ; 09
+ dw Function11c9bd ; 0a
+ dw Function11c9c3 ; 0b
+ dw Function11caad ; 0c
+ dw Function11cab3 ; 0d
+ dw Function11cb52 ; 0e
+ dw Function11cb66 ; 0f
+ dw Function11cbf5 ; 10
+ dw Function11ccef ; 11
+ dw Function11cd04 ; 12
+ dw Function11cd20 ; 13
+ dw Function11cd54 ; 14
+ dw Function11ce0b ; 15
+ dw Function11ce2b ; 16
+
+.SpawnObjects: ; 11c2e9 (47:42e9)
+ depixel 3, 1, 2, 5
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ depixel 8, 1, 2, 5
+
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $1
+ ld [hl], a
+
+ depixel 9, 2, 2, 0
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $3
+ ld [hl], a
+
+ depixel 10, 16
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $4
+ ld [hl], a
+
+ depixel 10, 4
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $5
+ ld [hl], a
+
+ depixel 10, 2
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $2
+ ld [hl], a
+
+ ld hl, wcd23
+ set 1, [hl]
+ set 2, [hl]
+ jp Function11cfb5
+
+.InitRAM: ; 11c346 (47:4346)
+ ld a, $9
+ ld [wcd2d], a
+ ld a, $2
+ ld [wcd2e], a
+ ld [wcd2f], a
+ ld [wcd30], a
+ ld de, wcd2d
+ call Function11cfce
+ jp Function11cfb5
+
+Function11c35f: ; 11c35f (47:435f)
+ ld hl, wcd2f
+ inc [hl]
+ inc [hl]
+ dec hl
+ dec hl
+ dec [hl]
+ push af
+ ld de, wcd2d
+ call Function11cfce
+ pop af
+ ret nz
+ jp Function11cfb5
+
+Function11c373: ; 11c373 (47:4373)
+ ld hl, wcd30
+ inc [hl]
+ inc [hl]
+ dec hl
+ dec hl
+ dec [hl]
+ push af
+ ld de, wcd2d
+ call Function11cfce
+ pop af
+ ret nz
+ call Function11c38a
+ jp Function11cfb5
+
+Function11c38a: ; 11c38a (47:438a)
+ ld hl, Unknown_11c986
+ ld bc, wcd36
+ ld a, $6
+.asm_11c392
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ push de
+ pop hl
+ ld a, [bc]
+ inc bc
+ ld e, a
+ ld a, [bc]
+ inc bc
+ ld d, a
+ push bc
+ or e
+ jr z, .asm_11c3af
+ ld a, e
+ and d
+ cp $ff
+ jr z, .asm_11c3af
+ call Function11c05d
+ jr .asm_11c3b5
+.asm_11c3af
+ ld de, String_11c3bc
+ call PlaceString
+.asm_11c3b5
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_11c392
+ ret
+; 11c3bc (47:43bc)
+
+String_11c3bc: ; 11c3bc
+ db "ーーーーー@"
+; 11c3c2
+
+Function11c3c2: ; 11c3c2 (47:43c2)
+ call EZChat_ClearBottom12Rows
+ ld de, Unknown_11cfbe
+ call Function11d035
+ hlcoord 1, 7
+ ld de, String_11c4db
+ call PlaceString
+ hlcoord 1, 16
+ ld de, String_11c51b
+ call PlaceString
+ call Function11c4be
+ ld hl, wcd23
+ set 0, [hl]
+ ld hl, wcd24
+ res 0, [hl]
+ call Function11cfb5
+
+Function11c3ed: ; 11c3ed (47:43ed)
+ ld hl, wcd20 ; wcd20
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $8
+ jr nz, .asm_11c426
+ ld a, [de]
+ and $2
+ jr nz, .asm_11c41a
+ ld a, [de]
+ and $1
+ jr nz, .asm_11c42c
+ ld de, hJoyLast
+ ld a, [de]
+ and $40
+ jr nz, .asm_11c47c
+ ld a, [de]
+ and $80
+ jr nz, .asm_11c484
+ ld a, [de]
+ and $20
+ jr nz, .asm_11c48c
+ ld a, [de]
+ and $10
+ jr nz, .asm_11c498
+ ret
+
+.asm_11c41a
+ call PlayClickSFX
+.asm_11c41d
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $c
+ jr .asm_11c475
+.asm_11c426
+ ld a, $8
+ ld [wcd20], a ; wcd20
+ ret
+
+.asm_11c42c
+ ld a, [wcd20] ; wcd20
+ cp $6
+ jr c, .asm_11c472
+ sub $6
+ jr z, .asm_11c469
+ dec a
+ jr z, .asm_11c41d
+ ld hl, wcd36
+ ld c, $c
+ xor a
+.asm_11c440
+ or [hl]
+ inc hl
+ dec c
+ jr nz, .asm_11c440
+ and a
+ jr z, .asm_11c460
+ ld de, Unknown_11cfba
+ call Function11cfce
+ decoord 1, 2
+ ld bc, wcd36
+ call Function11c08f
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $e
+ jr .asm_11c475
+.asm_11c460
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $11
+ jr .asm_11c475
+.asm_11c469
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $a
+ jr .asm_11c475
+.asm_11c472
+ call Function11c4a5
+.asm_11c475
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+
+.asm_11c47c
+ ld a, [hl]
+ cp $3
+ ret c
+ sub $3
+ jr .asm_11c4a3
+.asm_11c484
+ ld a, [hl]
+ cp $6
+ ret nc
+ add $3
+ jr .asm_11c4a3
+.asm_11c48c
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ dec a
+ jr .asm_11c4a3
+.asm_11c498
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ inc a
+.asm_11c4a3
+ ld [hl], a
+ ret
+
+Function11c4a5: ; 11c4a5 (47:44a5)
+ ld hl, wcd23
+ res 0, [hl]
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c4b7
+ xor a
+ ld [wcd21], a
+ ld a, $6
+ ret
+
+.asm_11c4b7
+ xor a
+ ld [wcd22], a
+ ld a, $15
+ ret
+
+Function11c4be: ; 11c4be (47:44be)
+ ld a, $1
+ hlcoord 0, 6, AttrMap
+ ld bc, $a0
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 14, AttrMap
+ ld bc, $28
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11c4db (47:44db)
+
+String_11c4db: ; 11c4db
+ db "6つのことば¯くみあわせます"
+ next "かえたいところ¯えらぶと でてくる"
+ next "ことばのグループから いれかえたい"
+ next "たんご¯えらんでください"
+ db "@"
+; 11c51b
+
+String_11c51b: ; 11c51b
+ db "ぜんぶけす やめる けってい@"
+; 11c52c
+
+Function11c52c: ; 11c52c (47:452c)
+ call EZChat_ClearBottom12Rows
+ call EZChat_PlaceCategoryNames
+ call Function11c618
+ ld hl, wcd24
+ res 1, [hl]
+ call Function11cfb5
+
+Function11c53d: ; 11c53d (47:453d)
+ ld hl, wcd21
+ ld de, hJoypadPressed ; $ffa3
+
+ ld a, [de]
+ and START
+ jr nz, .start
+
+ ld a, [de]
+ and SELECT
+ jr nz, .select
+
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+
+ ld de, hJoyLast
+
+ ld a, [de]
+ and D_UP
+ jr nz, .up
+
+ ld a, [de]
+ and D_DOWN
+ jr nz, .down
+
+ ld a, [de]
+ and D_LEFT
+ jr nz, .left
+
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .right
+
+ ret
+
+.a
+ ld a, [wcd21]
+ cp 15
+ jr c, .got_category
+ sub $f
+ jr z, .done
+ dec a
+ jr z, .mode
+ jr .b
+
+.start
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $8
+ ld [wcd20], a ; wcd20
+
+.b
+ ld a, $4
+ jr .go_to_function
+
+.select
+ ld a, [wcd2b]
+ xor $1
+ ld [wcd2b], a
+ ld a, $15
+ jr .go_to_function
+
+.mode
+ ld a, $13
+ jr .go_to_function
+
+.got_category
+ ld a, $8
+
+.go_to_function
+ ld hl, wcd24
+ set 1, [hl]
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+
+.done
+ ld a, [wcd20] ; wcd20
+ call Function11ca6a
+ call PlayClickSFX
+ ret
+
+.up
+ ld a, [hl]
+ cp $3
+ ret c
+ sub $3
+ jr .finish_dpad
+
+.down
+ ld a, [hl]
+ cp $f
+ ret nc
+ add $3
+ jr .finish_dpad
+
+.left
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ cp $9
+ ret z
+ cp $c
+ ret z
+ cp $f
+ ret z
+ dec a
+ jr .finish_dpad
+
+.right
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ cp $b
+ ret z
+ cp $e
+ ret z
+ cp $11
+ ret z
+ inc a
+
+.finish_dpad
+ ld [hl], a
+ ret
+; 11c5f0
+
+EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0)
+ ld de, MobileEZChatCategoryNames
+ ld bc, Coords_11c63a
+ ld a, 15
+.loop
+ push af
+ ld a, [bc]
+ inc bc
+ ld l, a
+ ld a, [bc]
+ inc bc
+ ld h, a
+ push bc
+ call PlaceString
+ ; The category names are padded with "@".
+ ; To find the next category, the system must
+ ; find the first character at de that is not "@".
+.find_next_string_loop
+ inc de
+ ld a, [de]
+ cp "@"
+ jr z, .find_next_string_loop
+ pop bc
+ pop af
+ dec a
+ jr nz, .loop
+ hlcoord 1, 17
+ ld de, EZChatString_Stop_Mode_Cancel
+ call PlaceString
+ ret
+
+Function11c618: ; 11c618 (47:4618)
+ ld a, $2
+ hlcoord 0, 6, AttrMap
+ ld bc, $c8
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11c62a (47:462a)
+
+EZChatString_Stop_Mode_Cancel: ; 11c62a
+ db "けす モード やめる@"
+; 11c63a
+
+Coords_11c63a: ; 11c63a
+ dwcoord 1, 7
+ dwcoord 7, 7
+ dwcoord 13, 7
+ dwcoord 1, 9
+ dwcoord 7, 9
+ dwcoord 13, 9
+ dwcoord 1, 11
+ dwcoord 7, 11
+ dwcoord 13, 11
+ dwcoord 1, 13
+ dwcoord 7, 13
+ dwcoord 13, 13
+ dwcoord 1, 15
+ dwcoord 7, 15
+ dwcoord 13, 15
+; 11c658
+
+Function11c658: ; 11c658 (47:4658)
+ call EZChat_ClearBottom12Rows
+ call Function11c770
+ ld de, Unknown_11cfc2
+ call Function11d035
+ call Function11c9ab
+ call Function11c7bc
+ call Function11c86e
+ ld hl, wcd24
+ res 3, [hl]
+ call Function11cfb5
+
+Function11c675: ; 11c675 (47:4675)
+ ld hl, wMobileCommsJumptableIndex
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+ ld a, [de]
+ and START
+ jr nz, .start
+ ld a, [de]
+ and SELECT
+ jr z, .select
+
+ ld a, [wcd26]
+ and a
+ ret z
+ sub $c
+ jr nc, .asm_11c699
+ xor a
+.asm_11c699
+ ld [wcd26], a
+ jr .asm_11c6c4
+
+.start
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ cp [hl]
+ ret nc
+ ld [wcd26], a
+ ld a, [hl]
+ ld b, a
+ ld hl, wMobileCommsJumptableIndex
+ ld a, [wcd26]
+ add [hl]
+ jr c, .asm_11c6b9
+ cp b
+ jr c, .asm_11c6c4
+.asm_11c6b9
+ ld a, [wcd28]
+ ld hl, wcd26
+ sub [hl]
+ dec a
+ ld [wMobileCommsJumptableIndex], a
+.asm_11c6c4
+ call Function11c992
+ call Function11c7bc
+ call Function11c86e
+ ret
+
+.select
+ ld de, hJoyLast
+ ld a, [de]
+ and D_UP
+ jr nz, .asm_11c708
+ ld a, [de]
+ and D_DOWN
+ jr nz, .asm_11c731
+ ld a, [de]
+ and D_LEFT
+ jr nz, .asm_11c746
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .asm_11c755
+ ret
+
+.a
+ call Function11c8f6
+ ld a, $4
+ ld [wcd35], a
+ jr .asm_11c6fc
+.b
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c6fa
+ ld a, $6
+ jr .asm_11c6fc
+.asm_11c6fa
+ ld a, $15
+.asm_11c6fc
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 3, [hl]
+ call PlayClickSFX
+ ret
+
+.asm_11c708
+ ld a, [hl]
+ cp $3
+ jr c, .asm_11c711
+ sub $3
+ jr .asm_11c76e
+.asm_11c711
+ ld a, [wcd26]
+ sub $3
+ ret c
+ ld [wcd26], a
+ jr .asm_11c6c4
+.asm_11c71c
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ ret c
+ cp [hl]
+ ret nc
+ ld a, [wcd26]
+ add $3
+ ld [wcd26], a
+ jr .asm_11c6c4
+.asm_11c731
+ ld a, [wcd28]
+ ld b, a
+ ld a, [wcd26]
+ add [hl]
+ add $3
+ cp b
+ ret nc
+ ld a, [hl]
+ cp $9
+ jr nc, .asm_11c71c
+ add $3
+ jr .asm_11c76e
+.asm_11c746
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ cp $9
+ ret z
+ dec a
+ jr .asm_11c76e
+.asm_11c755
+ ld a, [wcd28]
+ ld b, a
+ ld a, [wcd26]
+ add [hl]
+ inc a
+ cp b
+ ret nc
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ cp $b
+ ret z
+ inc a
+.asm_11c76e
+ ld [hl], a
+ ret
+
+Function11c770: ; 11c770 (47:4770)
+ xor a
+ ld [wMobileCommsJumptableIndex], a
+ ld [wcd26], a
+ ld [wcd27], a
+ ld a, [wcd2b]
+ and a
+ jr nz, .cd2b_is_nonzero
+ ld a, [wcd21]
+ and a
+ jr z, .cd21_is_zero
+ ; load from data array
+ dec a
+ sla a
+ ld hl, MobileEZChatData_WordAndPageCounts
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hli]
+ ld [wcd28], a
+ ld a, [hl]
+.load
+ ld [wcd29], a
+ ret
+
+.cd21_is_zero
+ ; compute from [wc7d2]
+ ld a, [wc7d2]
+ ld [wcd28], a
+.div_12
+ ld c, 12
+ call SimpleDivide
+ and a
+ jr nz, .no_need_to_floor
+ dec b
+.no_need_to_floor
+ ld a, b
+ jr .load
+
+.cd2b_is_nonzero
+ ; compute from [c6a8 + 2 * [cd22]]
+ ld hl, $c6a8 ; $c68a + 30
+ ld a, [wcd22]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hl]
+ ld [wcd28], a
+ jr .div_12
+
+Function11c7bc: ; 11c7bc (47:47bc)
+ ld bc, Unknown_11c854
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c814
+ ld a, [wcd21]
+ ld d, a
+ and a
+ jr z, .asm_11c7e9
+ ld a, [wcd26]
+ ld e, a
+.asm_11c7d0
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ ret z
+ push bc
+ push de
+ call Function11c05d
+ pop de
+ pop bc
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c7d0
+ ret
+
+.asm_11c7e9
+ ld hl, wListPointer
+ ld a, [wcd26]
+ ld e, a
+ add hl, de
+.asm_11c7f1
+ push de
+ ld a, [hli]
+ ld e, a
+ ld d, $0
+ push hl
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ jr z, .asm_11c811
+ push bc
+ call Function11c05d
+ pop bc
+ pop hl
+ pop de
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c7f1
+ ret
+
+.asm_11c811
+ pop hl
+ pop de
+ ret
+
+.asm_11c814
+ ld hl, $c648
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wcd26]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [wcd26]
+ ld e, a
+.asm_11c831
+ push de
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ jr z, .asm_11c851
+ push bc
+ call Function11c05d
+ pop bc
+ pop hl
+ pop de
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c831
+ ret
+
+.asm_11c851
+ pop hl
+ pop de
+ ret
+; 11c854 (47:4854)
+
+Unknown_11c854: ; 11c854
+ dwcoord 2, 8
+ dwcoord 8, 8
+ dwcoord 14, 8
+ dwcoord 2, 10
+ dwcoord 8, 10
+ dwcoord 14, 10
+ dwcoord 2, 12
+ dwcoord 8, 12
+ dwcoord 14, 12
+ dwcoord 2, 14
+ dwcoord 8, 14
+ dwcoord 14, 14
+ dw -1
+; 11c86e
+
+Function11c86e: ; 11c86e (47:486e)
+ ld a, [wcd26]
+ and a
+ jr z, .asm_11c88a
+ hlcoord 2, 17
+ ld de, MobileString_Prev
+ call PlaceString
+ hlcoord 6, 17
+ ld c, $3
+ xor a
+.asm_11c883
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_11c883
+ jr .asm_11c895
+.asm_11c88a
+ hlcoord 2, 17
+ ld c, $7
+ ld a, $7f
+.asm_11c891
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c891
+.asm_11c895
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ jr c, .asm_11c8b7
+ cp [hl]
+ jr nc, .asm_11c8b7
+ hlcoord 16, 17
+ ld de, MobileString_Next
+ call PlaceString
+ hlcoord 11, 17
+ ld a, $3
+ ld c, a
+.asm_11c8b1
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_11c8b1
+ ret
+
+.asm_11c8b7
+ hlcoord 17, 16
+ ld a, $7f
+ ld [hl], a
+ hlcoord 11, 17
+ ld c, $7
+.asm_11c8c2
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c8c2
+ ret
+; 11c8c7 (47:48c7)
+
+BCD2String: ; 11c8c7
+ inc a
+ push af
+ and $f
+ ld [hDividend], a
+ pop af
+ and $f0
+ swap a
+ ld [hDividend + 1], a
+ xor a
+ ld [hDividend + 2], a
+ push hl
+ callba Function11a80c
+ pop hl
+ ld a, [wcd63]
+ add "0"
+ ld [hli], a
+ ld a, [wcd62]
+ add "0"
+ ld [hli], a
+ ret
+; 11c8ec
+
+MobileString_Page: ; 11c8ec
+ db "ぺージ@"
+; 11c8f0
+
+MobileString_Prev: ; 11c8f0
+ db "まえ@"
+; 11c8f3
+
+MobileString_Next: ; 11c8f3
+ db "つぎ@"
+; 11c8f6
+
+Function11c8f6: ; 11c8f6 (47:48f6)
+ ld a, [wcd20] ; wcd20
+ call Function11c95d
+ push hl
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c938
+ ld a, [wcd21]
+ ld d, a
+ and a
+ jr z, .asm_11c927
+ ld hl, wcd26
+ ld a, [wMobileCommsJumptableIndex]
+ add [hl]
+.asm_11c911
+ ld e, a
+.asm_11c912
+ pop hl
+ push de
+ call Function11c05d
+ pop de
+ ld a, [wcd20] ; wcd20
+ ld c, a
+ ld b, $0
+ ld hl, wcd36
+ add hl, bc
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+.asm_11c927
+ ld hl, wcd26
+ ld a, [wMobileCommsJumptableIndex]
+ add [hl]
+ ld c, a
+ ld b, $0
+ ld hl, wListPointer
+ add hl, bc
+ ld a, [hl]
+ jr .asm_11c911
+.asm_11c938
+ ld hl, $c648
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wcd26]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [wMobileCommsJumptableIndex]
+ ld e, a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ jr .asm_11c912
+
+Function11c95d: ; 11c95d (47:495d)
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_11c986
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ push bc
+ push bc
+ pop hl
+ ld a, $5
+ ld c, a
+ ld a, $7f
+.asm_11c972
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c972
+ dec hl
+ ld bc, -20
+ add hl, bc
+ ld a, $5
+ ld c, a
+ ld a, $7f
+.asm_11c980
+ ld [hld], a
+ dec c
+ jr nz, .asm_11c980
+ pop hl
+ ret
+; 11c986 (47:4986)
+
+Unknown_11c986:
+ dwcoord 1, 2
+ dwcoord 7, 2
+ dwcoord 13, 2
+ dwcoord 1, 4
+ dwcoord 7, 4
+ dwcoord 13, 4
+; 11c992
+
+Function11c992: ; 11c992 (47:4992)
+ ld a, $8
+ hlcoord 2, 7
+.asm_11c997
+ push af
+ ld a, $7f
+ push hl
+ ld bc, $11
+ call ByteFill
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_11c997
+ ret
+
+Function11c9ab: ; 11c9ab (47:49ab)
+ ld a, $7
+ hlcoord 0, 6, AttrMap
+ ld bc, $c8
+ call ByteFill
+ callba ReloadMapPart
+ ret
+
+Function11c9bd: ; 11c9bd (47:49bd)
+ ld de, String_11ca38
+ call Function11ca7f
+
+Function11c9c3: ; 11c9c3 (47:49c3)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11c9de
+ ld a, [de]
+ and $2
+ jr nz, .asm_11c9e9
+ ld a, [de]
+ and $40
+ jr nz, .asm_11c9f7
+ ld a, [de]
+ and $80
+ jr nz, .asm_11c9fc
+ ret
+
+.asm_11c9de
+ ld a, [hl]
+ and a
+ jr nz, .asm_11c9e9
+ call Function11ca5e
+ xor a
+ ld [wcd20], a ; wcd20
+.asm_11c9e9
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+
+.asm_11c9f7
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+
+.asm_11c9fc
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+
+Function11ca01: ; 11ca01 (47:4a01)
+ hlcoord 14, 7, AttrMap
+ ld de, $14
+ ld a, $5
+ ld c, a
+.asm_11ca0a
+ push hl
+ ld a, $6
+ ld b, a
+ ld a, $7
+.asm_11ca10
+ ld [hli], a
+ dec b
+ jr nz, .asm_11ca10
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .asm_11ca0a
+
+Function11ca19: ; 11ca19 (47:4a19)
+ hlcoord 0, 12, AttrMap
+ ld de, $14
+ ld a, $6
+ ld c, a
+.asm_11ca22
+ push hl
+ ld a, $14
+ ld b, a
+ ld a, $7
+.asm_11ca28
+ ld [hli], a
+ dec b
+ jr nz, .asm_11ca28
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .asm_11ca22
+ callba ReloadMapPart
+ ret
+; 11ca38 (47:4a38)
+
+String_11ca38: ; 11ca38
+ db "とうろくちゅう", $25, "あいさつ¯ぜんぶ"
+ next "けしても よろしいですか?@"
+; 11ca57
+
+String_11ca57: ; 11ca57
+ db "はい"
+ next "いいえ@"
+; 11ca5e
+
+Function11ca5e: ; 11ca5e (47:4a5e)
+ xor a
+.loop
+ push af
+ call Function11ca6a
+ pop af
+ inc a
+ cp $6
+ jr nz, .loop
+ ret
+
+Function11ca6a: ; 11ca6a (47:4a6a)
+ ld hl, wcd36
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld [hl], b
+ inc hl
+ ld [hl], b
+ call Function11c95d
+ ld de, String_11c3bc
+ call PlaceString
+ ret
+
+Function11ca7f: ; 11ca7f (47:4a7f)
+ push de
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ ld de, Unknown_11cfca
+ call Function11cfce
+ hlcoord 1, 14
+ pop de
+ call PlaceString
+ hlcoord 16, 8
+ ld de, String_11ca57
+ call PlaceString
+ call Function11ca01
+ ld a, $1
+ ld [wcd2a], a
+ ld hl, wcd24
+ res 4, [hl]
+ call Function11cfb5
+ ret
+
+Function11caad: ; 11caad (47:4aad)
+ ld de, String_11cb1c
+ call Function11ca7f
+
+Function11cab3: ; 11cab3 (47:4ab3)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11cace
+ ld a, [de]
+ and $2
+ jr nz, .asm_11caf9
+ ld a, [de]
+ and $40
+ jr nz, .asm_11cb12
+ ld a, [de]
+ and $80
+ jr nz, .asm_11cb17
+ ret
+
+.asm_11cace
+ call PlayClickSFX
+ ld a, [hl]
+ and a
+ jr nz, .asm_11cafc
+ ld a, [wcd35]
+ and a
+ jr z, .asm_11caf3
+ cp $ff
+ jr z, .asm_11caf3
+ ld a, $ff
+ ld [wcd35], a
+ hlcoord 1, 14
+ ld de, String_11cb31
+ call PlaceString
+ ld a, $1
+ ld [wcd2a], a
+ ret
+
+.asm_11caf3
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.asm_11caf9
+ call PlayClickSFX
+.asm_11cafc
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ ld a, [wcd35]
+ cp $ff
+ ret nz
+ ld a, $1
+ ld [wcd35], a
+ ret
+
+.asm_11cb12
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+
+.asm_11cb17
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+; 11cb1c (47:4b1c)
+
+String_11cb1c: ; 11cb1c
+ db "あいさつ", $25, "とうろく¯ちゅうし"
+ next "しますか?@"
+; 11cb31
+
+String_11cb31: ; 11cb31
+ db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
+ next "されません", $4a, "よろしい ですか?@"
+; 11cb52
+
+Function11cb52: ; 11cb52 (47:4b52)
+ ld hl, Unknown_11cc01
+ ld a, [wMenuCursorY]
+.asm_11cb58
+ dec a
+ jr z, .asm_11cb5f
+ inc hl
+ inc hl
+ jr .asm_11cb58
+.asm_11cb5f
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ call Function11ca7f
+
+Function11cb66: ; 11cb66 (47:4b66)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11cb81
+ ld a, [de]
+ and $2
+ jr nz, .asm_11cbd7
+ ld a, [de]
+ and $40
+ jr nz, .asm_11cbeb
+ ld a, [de]
+ and $80
+ jr nz, .asm_11cbf0
+ ret
+
+.asm_11cb81
+ ld a, [hl]
+ and a
+ jr nz, .asm_11cbd4
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a007
+ ld a, [wMenuCursorY]
+ dec a
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld de, wcd36
+ ld c, $c
+.asm_11cba2
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .asm_11cba2
+ call CloseSRAM
+ call PlayClickSFX
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ ld hl, Unknown_11cc7e
+ ld a, [wMenuCursorY]
+.asm_11cbba
+ dec a
+ jr z, .asm_11cbc1
+ inc hl
+ inc hl
+ jr .asm_11cbba
+.asm_11cbc1
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ hlcoord 1, 14
+ call PlaceString
+ ld hl, wJumptableIndex
+ inc [hl]
+ inc hl
+ ld a, $10
+ ld [hl], a
+ ret
+
+.asm_11cbd4
+ call PlayClickSFX
+.asm_11cbd7
+ ld de, Unknown_11cfba
+ call Function11cfce
+ call Function11c38a
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+
+.asm_11cbeb
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+
+.asm_11cbf0
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+
+Function11cbf5: ; 11cbf5 (47:4bf5)
+ call WaitSFX
+ ld hl, wcf64
+ dec [hl]
+ ret nz
+ dec hl
+ set 7, [hl]
+ ret
+; 11cc01 (47:4c01)
+
+Unknown_11cc01: ; 11cc01
+ dw String_11cc09
+ dw String_11cc23
+ dw String_11cc42
+ dw String_11cc60
+
+String_11cc09: ; 11cc09
+ db "じこしょうかい は"
+ next "この あいさつで いいですか?@"
+
+String_11cc23: ; 11cc23
+ db "たいせん ", $4a, "はじまるとき は"
+ next "この あいさつで いいですか?@"
+
+String_11cc42: ; 11cc42
+ db "たいせん ", $1d, "かったとき は"
+ next "この あいさつで いいですか?@"
+
+String_11cc60: ; 11cc60
+ db "たいせん ", $1d, "まけたとき は"
+ next "この あいさつで いいですか?@"
+; 11cc7e
+
+Unknown_11cc7e: ; 11cc7e
+ dw String_11cc86
+ dw String_11cc9d
+ dw String_11ccb9
+ dw String_11ccd4
+
+String_11cc86: ; 11cc86
+ db "じこしょうかい の"
+ next "あいさつ¯とうろくした!@"
+
+String_11cc9d: ; 11cc9d
+ db "たいせん ", $4a, "はじまるとき の"
+ next "あいさつ¯とうろくした!@"
+
+String_11ccb9: ; 11ccb9
+ db "たいせん ", $1d, "かったとき の"
+ next "あいさつ¯とうろくした!@"
+
+String_11ccd4: ; 11ccd4
+ db "たいせん ", $1d, "まけたとき の"
+ next "あいさつ¯とうろくした!@"
+; 11ccef
+
+Function11ccef: ; 11ccef (47:4cef)
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ hlcoord 1, 14
+ ld de, String_11cd10
+ call PlaceString
+ call Function11ca19
+ call Function11cfb5
+
+Function11cd04: ; 11cd04 (47:4d04)
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and a
+ ret z
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; 11cd10 (47:4d10)
+
+String_11cd10: ; 11cd10
+ db "なにか ことば¯いれてください@"
+; 11cd20
+
+Function11cd20: ; 11cd20 (47:4d20)
+ call EZChat_ClearBottom12Rows
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ hlcoord 1, 14
+ ld a, [wcd2b]
+ ld [wcd2c], a
+ and a
+ jr nz, .asm_11cd3a
+ ld de, String_11cdc7
+ jr .asm_11cd3d
+.asm_11cd3a
+ ld de, String_11cdd9
+.asm_11cd3d
+ call PlaceString
+ hlcoord 4, 8
+ ld de, String_11cdf5
+ call PlaceString
+ call Function11cdaa
+ ld hl, wcd24
+ res 5, [hl]
+ call Function11cfb5
+
+Function11cd54: ; 11cd54 (47:4d54)
+ ld hl, wcd2c
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .asm_11cd6f
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .asm_11cd73
+ ld a, [de]
+ and D_UP
+ jr nz, .asm_11cd8b
+ ld a, [de]
+ and D_DOWN
+ jr nz, .asm_11cd94
+ ret
+
+.asm_11cd6f
+ ld a, [hl]
+ ld [wcd2b], a
+.asm_11cd73
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11cd7d
+ ld a, $6
+ jr .asm_11cd7f
+
+.asm_11cd7d
+ ld a, $15
+.asm_11cd7f
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 5, [hl]
+ call PlayClickSFX
+ ret
+
+.asm_11cd8b
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ld de, String_11cdc7
+ jr .asm_11cd9b
+
+.asm_11cd94
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ld de, String_11cdd9
+.asm_11cd9b
+ push de
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ pop de
+ hlcoord 1, 14
+ call PlaceString
+ ret
+
+Function11cdaa: ; 11cdaa (47:4daa)
+ ld a, $2
+ hlcoord 0, 6, AttrMap
+ ld bc, 6 * SCREEN_WIDTH
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 12, AttrMap
+ ld bc, 4 * SCREEN_WIDTH
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11cdc7 (47:4dc7)
+
+String_11cdc7: ; 11cdc7
+; Words will be displayed by category
+ db "ことば¯しゅるいべつに"
+ next "えらべます@"
+; 11cdd9
+
+String_11cdd9: ; 11cdd9
+; Words will be displayed in alphabetical order
+ db "ことば¯アイウエォ の"
+ next "じゅんばんで ひょうじ します@"
+; 11cdf5
+
+String_11cdf5: ; 11cdf5
+ db "しゅるいべつ モード" ; Category mode
+ next "アイウエォ モード@" ; ABC mode
+; 11ce0b
+
+Function11ce0b: ; 11ce0b (47:4e0b)
+ call EZChat_ClearBottom12Rows
+ hlcoord 1, 7
+ ld de, String_11cf79
+ call PlaceString
+ hlcoord 1, 17
+ ld de, EZChatString_Stop_Mode_Cancel
+ call PlaceString
+ call Function11c618
+ ld hl, wcd24
+ res 2, [hl]
+ call Function11cfb5
+
+Function11ce2b: ; 11ce2b (47:4e2b)
+ ld a, [wcd22]
+ sla a
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_11ceb9
+ add hl, bc
+
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and START
+ jr nz, .start
+ ld a, [de]
+ and SELECT
+ jr nz, .select
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+
+ ld de, hJoyLast
+ ld a, [de]
+ and D_UP
+ jr nz, .up
+ ld a, [de]
+ and D_DOWN
+ jr nz, .down
+ ld a, [de]
+ and D_LEFT
+ jr nz, .left
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .right
+
+ ret
+
+.a
+ ld a, [wcd22]
+ cp NUM_KANA
+ jr c, .place
+ sub NUM_KANA
+ jr z, .done
+ dec a
+ jr z, .mode
+ jr .b
+
+.start
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $8
+ ld [wcd20], a ; wcd20
+.b
+ ld a, $4
+ jr .load
+
+.select
+ ld a, [wcd2b]
+ xor $1
+ ld [wcd2b], a
+ ld a, $6
+ jr .load
+
+.place
+ ld a, $8
+ jr .load
+
+.mode
+ ld a, $13
+.load
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 2, [hl]
+ call PlayClickSFX
+ ret
+
+.done
+ ld a, [wcd20] ; wcd20
+ call Function11ca6a
+ call PlayClickSFX
+ ret
+
+.left
+ inc hl
+.down
+ inc hl
+.right
+ inc hl
+.up
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [wcd22], a
+ ret
+; 11ceb9 (47:4eb9)
+
+Unknown_11ceb9: ; 11ceb9
+ ; up left down right
+ db $ff, $01
+ db $05, $ff
+ db $ff, $02
+ db $06, $00
+ db $ff, $03
+ db $07, $01
+ db $ff, $04
+ db $08, $02
+ db $ff, $14
+ db $09, $03
+ db $00, $06
+ db $0a, $ff
+ db $01, $07
+ db $0b, $05
+ db $02, $08
+ db $0c, $06
+ db $03, $09
+ db $0d, $07
+ db $04, $19
+ db $0e, $08
+ db $05, $0b
+ db $0f, $ff
+ db $06, $0c
+ db $10, $0a
+ db $07, $0d
+ db $11, $0b
+ db $08, $0e
+ db $12, $0c
+ db $09, $1e
+ db $13, $0d
+ db $0a, $10
+ db $2d, $ff
+ db $0b, $11
+ db $2d, $0f
+ db $0c, $12
+ db $2d, $10
+ db $0d, $13
+ db $2d, $11
+ db $0e, $26
+ db $2d, $12
+ db $ff, $15
+ db $19, $04
+ db $ff, $16
+ db $1a, $14
+ db $ff, $17
+ db $1b, $15
+ db $ff, $18
+ db $1c, $16
+ db $ff, $23
+ db $1d, $17
+ db $14, $1a
+ db $1e, $09
+ db $15, $1b
+ db $1f, $19
+ db $16, $1c
+ db $20, $1a
+ db $17, $1d
+ db $21, $1b
+ db $18, $2b
+ db $22, $1c
+ db $19, $1f
+ db $26, $0e
+ db $1a, $20
+ db $27, $1e
+ db $1b, $21
+ db $28, $1f
+ db $1c, $22
+ db $29, $20
+ db $1d, $2c
+ db $2a, $21
+ db $ff, $24
+ db $2b, $18
+ db $ff, $25
+ db $2b, $23
+ db $ff, $ff
+ db $2b, $24
+ db $1e, $27
+ db $2e, $13
+ db $1f, $28
+ db $2e, $26
+ db $20, $29
+ db $2e, $27
+ db $21, $2a
+ db $2e, $28
+ db $22, $ff
+ db $2e, $29
+ db $23, $ff
+ db $2c, $1d
+ db $2b, $ff
+ db $2f, $22
+ db $0f, $2e
+ db $ff, $ff
+ db $26, $2f
+ db $ff, $2d
+ db $2c, $ff
+ db $ff, $2e
+; 11cf79
+
+String_11cf79: ; 11cf79
+; Hiragana table
+ db "あいうえお なにぬねの や ゆ よ"
+ next "かきくけこ はひふへほ わ"
+ next "さしすせそ まみむめも そのた"
+ next "たちつてと らりるれろ"
+ db "@"
+; 11cfb5
+
+Function11cfb5: ; 11cfb5 (47:4fb5)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 11cfba (47:4fba)
+
+Unknown_11cfba:
+ db 0, 0 ; start coords
+ db 20, 6 ; end coords
+
+Unknown_11cfbe:
+ db 0, 14 ; start coords
+ db 20, 4 ; end coords
+
+Unknown_11cfc2:
+ db 0, 6 ; start coords
+ db 20, 10 ; end coords
+
+Unknown_11cfc6:
+ db 0, 12 ; start coords
+ db 20, 6 ; end coords
+
+Unknown_11cfca:
+ db 14, 7 ; start coords
+ db 6, 5 ; end coords
+; 11cfce
+
+Function11cfce: ; 11cfce (47:4fce)
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.add_n_times
+ jr z, .done_add_n_times
+ add hl, bc
+ dec a
+ jr .add_n_times
+.done_add_n_times
+ pop af
+ ld c, a
+ ld b, 0
+ add hl, bc
+ push hl
+ ld a, $79
+ ld [hli], a
+ ld a, [de]
+ inc de
+ dec a
+ dec a
+ jr z, .skip_fill
+ ld c, a
+ ld a, $7a
+.fill_loop
+ ld [hli], a
+ dec c
+ jr nz, .fill_loop
+.skip_fill
+ ld a, $7b
+ ld [hl], a
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld a, [de]
+ dec de
+ dec a
+ dec a
+ jr z, .skip_section
+ ld b, a
+.loop
+ push hl
+ ld a, $7c
+ ld [hli], a
+ ld a, [de]
+ dec a
+ dec a
+ jr z, .skip_row
+ ld c, a
+ ld a, $7f
+.row_loop
+ ld [hli], a
+ dec c
+ jr nz, .row_loop
+.skip_row
+ ld a, $7c
+ ld [hl], a
+ pop hl
+ push bc
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop
+.skip_section
+ ld a, $7d
+ ld [hli], a
+ ld a, [de]
+ dec a
+ dec a
+ jr z, .skip_remainder
+ ld c, a
+ ld a, $7a
+.final_loop
+ ld [hli], a
+ dec c
+ jr nz, .final_loop
+.skip_remainder
+ ld a, $7e
+ ld [hl], a
+ ret
+
+Function11d035: ; 11d035 (47:5035)
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.add_n_times
+ jr z, .done_add_n_times
+ add hl, bc
+ dec a
+ jr .add_n_times
+.done_add_n_times
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ push hl
+ ld a, $79
+ ld [hl], a
+ pop hl
+ push hl
+ ld a, [de]
+ dec a
+ inc de
+ ld c, a
+ add hl, bc
+ ld a, $7b
+ ld [hl], a
+ call .AddNMinusOneTimes
+ ld a, $7e
+ ld [hl], a
+ pop hl
+ push hl
+ call .AddNMinusOneTimes
+ ld a, $7d
+ ld [hl], a
+ pop hl
+ push hl
+ inc hl
+ push hl
+ call .AddNMinusOneTimes
+ pop bc
+ dec de
+ ld a, [de]
+ cp $2
+ jr z, .skip
+ dec a
+ dec a
+.loop
+ push af
+ ld a, $7a
+ ld [hli], a
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .loop
+.skip
+ pop hl
+ ld bc, $14
+ add hl, bc
+ push hl
+ ld a, [de]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ inc de
+ ld a, [de]
+ cp $2
+ ret z
+ push bc
+ dec a
+ dec a
+ ld c, a
+ ld b, a
+ ld de, $14
+.loop2
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .loop2
+ pop hl
+.loop3
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop3
+ ret
+
+.AddNMinusOneTimes: ; 11d0ac (47:50ac)
+ ld a, [de]
+ dec a
+ ld bc, SCREEN_WIDTH
+.add_n_minus_one_times
+ add hl, bc
+ dec a
+ jr nz, .add_n_minus_one_times
+ ret
+
+AnimateEZChatCursor: ; 11d0b6 (47:50b6)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.Jumptable:
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six
+ dw .seven
+ dw .eight
+ dw .nine
+ dw .ten
+
+.zero ; 11d0dd (47:50dd)
+ ld a, [wcd20] ; wcd20
+ sla a
+ ld hl, .Coords_Zero
+ ld e, $1
+ jr .load
+
+.one ; 11d0e9 (47:50e9)
+ ld a, [wcd21]
+ sla a
+ ld hl, .Coords_One
+ ld e, $2
+ jr .load
+
+.two ; 11d0f5 (47:50f5)
+ ld hl, .FramesetsIDs_Two
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ call ReinitSpriteAnimFrame
+
+ ld a, [wcd22]
+ sla a
+ ld hl, .Coords_Two
+ ld e, $4
+ jr .load
+
+.three ; 11d10f (47:510f)
+ ld a, SPRITE_ANIM_FRAMESET_27
+ call ReinitSpriteAnimFrame
+ ld a, [wMobileCommsJumptableIndex]
+ sla a
+ ld hl, .Coords_Three
+ ld e, $8
+.load ; 11d11e (47:511e)
+ push de
+ ld e, a
+ ld d, $0
+ add hl, de
+ push hl
+ pop de
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ pop de
+ ld a, e
+ call .UpdateObjectFlags
+ ret
+
+.four ; 11d134 (47:5134)
+ ld a, SPRITE_ANIM_FRAMESET_27
+ call ReinitSpriteAnimFrame
+ ld a, [wcd2a]
+ sla a
+ ld hl, .Coords_Four
+ ld e, $10
+ jr .load
+
+.five ; 11d145 (47:5145)
+ ld a, SPRITE_ANIM_FRAMESET_27
+ call ReinitSpriteAnimFrame
+ ld a, [wcd2c]
+ sla a
+ ld hl, .Coords_Five
+ ld e, $20
+ jr .load
+
+.six ; 11d156 (47:5156)
+ ld a, SPRITE_ANIM_FRAMESET_2A
+ call ReinitSpriteAnimFrame
+ ; X = [wcd4a] * 8 + 24
+ ld a, [wcd4a]
+ sla a
+ sla a
+ sla a
+ add $18
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hli], a
+ ; Y = 48
+ ld a, $30
+ ld [hl], a
+
+ ld a, $1
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+
+.seven ; 11d175 (47:5175)
+ ld a, [wEZChatCursorYCoord]
+ cp $4
+ jr z, .frameset_26
+ ld a, SPRITE_ANIM_FRAMESET_28
+ jr .got_frameset
+
+.frameset_26
+ ld a, SPRITE_ANIM_FRAMESET_26
+.got_frameset
+ call ReinitSpriteAnimFrame
+ ld a, [wEZChatCursorYCoord]
+ cp $4
+ jr z, .asm_11d1b1
+ ; X = [wEZChatCursorXCoord] * 8 + 32
+ ld a, [wEZChatCursorXCoord]
+ sla a
+ sla a
+ sla a
+ add $20
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hli], a
+ ; Y = [wEZChatCursorYCoord] * 16 + 72
+ ld a, [wEZChatCursorYCoord]
+ sla a
+ sla a
+ sla a
+ sla a
+ add $48
+ ld [hl], a
+ ld a, $2
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+
+.asm_11d1b1
+ ; X = [wEZChatCursorXCoord] * 40 + 24
+ ld a, [wEZChatCursorXCoord]
+ sla a
+ sla a
+ sla a
+ ld e, a
+ sla a
+ sla a
+ add e
+ add $18
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hli], a
+ ; Y = 138
+ ld a, $8a
+ ld [hl], a
+ ld a, $2
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+
+.nine ; 11d1d1 (47:51d1)
+ ld d, -13 * 8
+ ld a, SPRITE_ANIM_FRAMESET_2C
+ jr .eight_nine_load
+
+.eight ; 11d1d7 (47:51d7)
+ ld d, 2 * 8
+ ld a, SPRITE_ANIM_FRAMESET_2B
+.eight_nine_load ; 11d1db (47:51db)
+ push de
+ call ReinitSpriteAnimFrame
+ ld a, [wcd4a]
+ sla a
+ sla a
+ sla a
+ ld e, a
+ sla a
+ add e
+ add 8 * 8
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hld], a
+ pop af
+ ld [hl], a
+ ld a, $4
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+
+.ten ; 11d1fc (47:51fc)
+ ld a, SPRITE_ANIM_FRAMESET_26
+ call ReinitSpriteAnimFrame
+ ld a, $8
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+; 11d208 (47:5208)
+
+.Coords_Zero: ; 11d208
+ dbpixel 1, 3, 5, 2
+ dbpixel 7, 3, 5, 2
+ dbpixel 13, 3, 5, 2
+ dbpixel 1, 5, 5, 2
+ dbpixel 7, 5, 5, 2
+ dbpixel 13, 5, 5, 2
+ dbpixel 1, 17, 5, 2
+ dbpixel 7, 17, 5, 2
+ dbpixel 13, 17, 5, 2
+
+.Coords_One: ; 11d21a
+ dbpixel 1, 8, 5, 2
+ dbpixel 7, 8, 5, 2
+ dbpixel 13, 8, 5, 2
+ dbpixel 1, 10, 5, 2
+ dbpixel 7, 10, 5, 2
+ dbpixel 13, 10, 5, 2
+ dbpixel 1, 12, 5, 2
+ dbpixel 7, 12, 5, 2
+ dbpixel 13, 12, 5, 2
+ dbpixel 1, 14, 5, 2
+ dbpixel 7, 14, 5, 2
+ dbpixel 13, 14, 5, 2
+ dbpixel 1, 16, 5, 2
+ dbpixel 7, 16, 5, 2
+ dbpixel 13, 16, 5, 2
+ dbpixel 1, 18, 5, 2
+ dbpixel 7, 18, 5, 2
+ dbpixel 13, 18, 5, 2
+
+.Coords_Two: ; 11d23e
+ dbpixel 2, 9 ; 00
+ dbpixel 3, 9 ; 01
+ dbpixel 4, 9 ; 02
+ dbpixel 5, 9 ; 03
+ dbpixel 6, 9 ; 04
+ dbpixel 2, 11 ; 05
+ dbpixel 3, 11 ; 06
+ dbpixel 4, 11 ; 07
+ dbpixel 5, 11 ; 08
+ dbpixel 6, 11 ; 09
+ dbpixel 2, 13 ; 0a
+ dbpixel 3, 13 ; 0b
+ dbpixel 4, 13 ; 0c
+ dbpixel 5, 13 ; 0d
+ dbpixel 6, 13 ; 0e
+ dbpixel 2, 15 ; 0f
+ dbpixel 3, 15 ; 10
+ dbpixel 4, 15 ; 11
+ dbpixel 5, 15 ; 12
+ dbpixel 6, 15 ; 13
+ dbpixel 8, 9 ; 14
+ dbpixel 9, 9 ; 15
+ dbpixel 10, 9 ; 16
+ dbpixel 11, 9 ; 17
+ dbpixel 12, 9 ; 18
+ dbpixel 8, 11 ; 19
+ dbpixel 9, 11 ; 1a
+ dbpixel 10, 11 ; 1b
+ dbpixel 11, 11 ; 1c
+ dbpixel 12, 11 ; 1d
+ dbpixel 8, 13 ; 1e
+ dbpixel 9, 13 ; 1f
+ dbpixel 10, 13 ; 20
+ dbpixel 11, 13 ; 21
+ dbpixel 12, 13 ; 22
+ dbpixel 14, 9 ; 23
+ dbpixel 16, 9 ; 24
+ dbpixel 18, 9 ; 25
+ dbpixel 8, 15 ; 26
+ dbpixel 9, 15 ; 27
+ dbpixel 10, 15 ; 28
+ dbpixel 11, 15 ; 29
+ dbpixel 12, 15 ; 2a
+ dbpixel 14, 11 ; 2b
+ dbpixel 14, 13 ; 2c
+ dbpixel 1, 18, 5, 2 ; 2d
+ dbpixel 7, 18, 5, 2 ; 2e
+ dbpixel 13, 18, 5, 2 ; 2f
+
+.Coords_Three: ; 11d29e
+ dbpixel 2, 10
+ dbpixel 8, 10
+ dbpixel 14, 10
+ dbpixel 2, 12
+ dbpixel 8, 12
+ dbpixel 14, 12
+ dbpixel 2, 14
+ dbpixel 8, 14
+ dbpixel 14, 14
+ dbpixel 2, 16
+ dbpixel 8, 16
+ dbpixel 14, 16
+
+.Coords_Four: ; 11d2b6
+ dbpixel 16, 10
+ dbpixel 16, 12
+
+.Coords_Five: ; 11d2ba
+ dbpixel 4, 10
+ dbpixel 4, 12
+
+.FramesetsIDs_Two: ; 11d2be
+ db SPRITE_ANIM_FRAMESET_28 ; 00
+ db SPRITE_ANIM_FRAMESET_28 ; 01
+ db SPRITE_ANIM_FRAMESET_28 ; 02
+ db SPRITE_ANIM_FRAMESET_28 ; 03
+ db SPRITE_ANIM_FRAMESET_28 ; 04
+ db SPRITE_ANIM_FRAMESET_28 ; 05
+ db SPRITE_ANIM_FRAMESET_28 ; 06
+ db SPRITE_ANIM_FRAMESET_28 ; 07
+ db SPRITE_ANIM_FRAMESET_28 ; 08
+ db SPRITE_ANIM_FRAMESET_28 ; 09
+ db SPRITE_ANIM_FRAMESET_28 ; 0a
+ db SPRITE_ANIM_FRAMESET_28 ; 0b
+ db SPRITE_ANIM_FRAMESET_28 ; 0c
+ db SPRITE_ANIM_FRAMESET_28 ; 0d
+ db SPRITE_ANIM_FRAMESET_28 ; 0e
+ db SPRITE_ANIM_FRAMESET_28 ; 0f
+ db SPRITE_ANIM_FRAMESET_28 ; 10
+ db SPRITE_ANIM_FRAMESET_28 ; 11
+ db SPRITE_ANIM_FRAMESET_28 ; 12
+ db SPRITE_ANIM_FRAMESET_28 ; 13
+ db SPRITE_ANIM_FRAMESET_28 ; 14
+ db SPRITE_ANIM_FRAMESET_28 ; 15
+ db SPRITE_ANIM_FRAMESET_28 ; 16
+ db SPRITE_ANIM_FRAMESET_28 ; 17
+ db SPRITE_ANIM_FRAMESET_28 ; 18
+ db SPRITE_ANIM_FRAMESET_28 ; 19
+ db SPRITE_ANIM_FRAMESET_28 ; 1a
+ db SPRITE_ANIM_FRAMESET_28 ; 1b
+ db SPRITE_ANIM_FRAMESET_28 ; 1c
+ db SPRITE_ANIM_FRAMESET_28 ; 1d
+ db SPRITE_ANIM_FRAMESET_28 ; 1e
+ db SPRITE_ANIM_FRAMESET_28 ; 1f
+ db SPRITE_ANIM_FRAMESET_28 ; 20
+ db SPRITE_ANIM_FRAMESET_28 ; 21
+ db SPRITE_ANIM_FRAMESET_28 ; 22
+ db SPRITE_ANIM_FRAMESET_28 ; 23
+ db SPRITE_ANIM_FRAMESET_28 ; 24
+ db SPRITE_ANIM_FRAMESET_28 ; 25
+ db SPRITE_ANIM_FRAMESET_28 ; 26
+ db SPRITE_ANIM_FRAMESET_28 ; 27
+ db SPRITE_ANIM_FRAMESET_28 ; 28
+ db SPRITE_ANIM_FRAMESET_28 ; 29
+ db SPRITE_ANIM_FRAMESET_28 ; 2a
+ db SPRITE_ANIM_FRAMESET_28 ; 2b
+ db SPRITE_ANIM_FRAMESET_29 ; 2c
+ db SPRITE_ANIM_FRAMESET_26 ; 2d
+ db SPRITE_ANIM_FRAMESET_26 ; 2e
+ db SPRITE_ANIM_FRAMESET_26 ; 2f
+
+.UpdateObjectFlags: ; 11d2ee (47:52ee)
+ ld hl, wcd24
+ and [hl]
+ jr nz, .update_y_offset
+ ld a, e
+ ld hl, wcd23
+ and [hl]
+ jr z, .reset_y_offset
+ ld hl, SPRITEANIMSTRUCT_0E
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .flip_bit_0
+ dec [hl]
+ ret
+
+.flip_bit_0
+ ld a, $0
+ ld [hld], a
+ ld a, $1
+ xor [hl]
+ ld [hl], a
+ and a
+ jr nz, .update_y_offset
+.reset_y_offset
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ xor a
+ ld [hl], a
+ ret
+
+.update_y_offset
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, $b0
+ sub [hl]
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+Function11d323: ; 11d323
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_11d33a
+ ld de, UnknBGPals
+ ld bc, 16 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d33a
+
+Palette_11d33a:
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 16, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 23, 17, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; 11d3ba
+
+EZChat_GetSeenPokemonByKana: ; 11d3ba
+ ld a, [rSVBK]
+ push af
+ ld hl, $c648
+ ld a, w5_d800 % $100
+ ld [wcd2d], a
+ ld [hli], a
+ ld a, w5_d800 / $100
+ ld [wcd2e], a
+ ld [hl], a
+
+ ld a, SortedPokemon % $100
+ ld [wcd2f], a
+ ld a, SortedPokemon / $100
+ ld [wcd30], a
+
+ ld a, $c6a8 % $100
+ ld [wcd31], a
+ ld a, $c6a8 / $100
+ ld [wcd32], a
+
+ ld a, $c64a % $100
+ ld [wcd33], a
+ ld a, $c64a / $100
+ ld [wcd34], a
+
+ ld hl, EZChat_SortedWords
+ ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4
+
+.MasterLoop: ; 11d3ef
+ push af
+; read row
+; offset
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+; size
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+; save the pointer to the next row
+ push hl
+; add de to w3_d000
+ ld hl, w3_d000
+ add hl, de
+; recover de from wcd2d (default: w5_d800)
+ ld a, [wcd2d]
+ ld e, a
+ ld a, [wcd2e]
+ ld d, a
+; save bc for later
+ push bc
+
+.loop1
+; copy 2*bc bytes from 3:hl to 5:de
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop1
+
+; recover the pointer from wcd2f (default: SortedPokemon)
+ ld a, [wcd2f]
+ ld l, a
+ ld a, [wcd30]
+ ld h, a
+; copy the pointer from [hl] to bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+; store the pointer to the next pointer back in wcd2f
+ ld a, l
+ ld [wcd2f], a
+ ld a, h
+ ld [wcd30], a
+; push pop that pointer to hl
+ push bc
+ pop hl
+ ld c, $0
+.loop2
+; Have you seen this Pokemon?
+ ld a, [hl]
+ cp $ff
+ jr z, .done
+ call .CheckSeenMon
+ jr nz, .next
+; If not, skip it.
+ inc hl
+ jr .loop2
+
+.next
+; If so, append it to the list at 5:de, and increase the count.
+ ld a, [hli]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ inc c
+ jr .loop2
+
+.done
+; Remember the original value of bc from the table?
+; Well, the stack remembers it, and it's popping it to hl.
+ pop hl
+; Add the number of seen Pokemon from the list.
+ ld b, $0
+ add hl, bc
+; Push pop to bc.
+ push hl
+ pop bc
+; Load the pointer from [wcd31] (default: $c6a8)
+ ld a, [wcd31]
+ ld l, a
+ ld a, [wcd32]
+ ld h, a
+; Save the quantity from bc to [hl]
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+; Save the new value of hl to [wcd31]
+ ld a, l
+ ld [wcd31], a
+ ld a, h
+ ld [wcd32], a
+; Recover the pointer from [wcd33] (default: $c64a)
+ ld a, [wcd33]
+ ld l, a
+ ld a, [wcd34]
+ ld h, a
+; Save the current value of de there
+ ld a, e
+ ld [wcd2d], a
+ ld [hli], a
+ ld a, d
+ ld [wcd2e], a
+; Save the new value of hl back to [wcd33]
+ ld [hli], a
+ ld a, l
+ ld [wcd33], a
+ ld a, h
+ ld [wcd34], a
+; Next row
+ pop hl
+ pop af
+ dec a
+ jr z, .ExitMasterLoop
+ jp .MasterLoop
+
+.ExitMasterLoop:
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d493
+
+.CheckSeenMon: ; 11d493
+ push hl
+ push bc
+ push de
+ dec a
+ ld hl, rSVBK
+ ld e, $1
+ ld [hl], e
+ call CheckSeenMon
+ ld hl, rSVBK
+ ld e, $5
+ ld [hl], e
+ pop de
+ pop bc
+ pop hl
+ ret
+; 11d4aa
+
+EZChat_GetCategoryWordsByKana: ; 11d4aa
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+
+ ; load pointers
+ ld hl, MobileEZChatCategoryPointers
+ ld bc, MobileEZChatData_WordAndPageCounts
+
+ ; init WRAM registers
+ xor a
+ ld [wcd2d], a
+ inc a
+ ld [wcd2e], a
+
+ ; enter the first loop
+ ld a, 14
+.loop1
+ push af
+
+ ; load the pointer to the category
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+
+ ; skip to the attributes
+ ld hl, NAME_LENGTH_JAPANESE - 1
+ add hl, de
+
+ ; get the number of words in the category
+ ld a, [bc] ; number of entries to copy
+ inc bc
+ inc bc
+ push bc
+
+.loop2
+ push af
+ push hl
+
+ ; load offset at [hl]
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+
+ ; add to w3_d000
+ ld hl, w3_d000
+ add hl, de
+
+ ; copy from wcd2d and increment [wcd2d] in place
+ ld a, [wcd2d]
+ ld [hli], a
+ inc a
+ ld [wcd2d], a
+
+ ; copy from wcd2e
+ ld a, [wcd2e]
+ ld [hl], a
+
+ ; next entry
+ pop hl
+ ld de, 8
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop2
+
+ ; reset and go to next category
+ ld hl, wcd2d
+ xor a
+ ld [hli], a
+ inc [hl]
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .loop1
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d4fe
+
+SortedPokemon:
+; Pokemon sorted by kana.
+; Notably, Rhydon is missing.
+ dw .a
+ dw .i
+ dw .u
+ dw .e
+ dw .o
+ dw .ka_ga
+ dw .ki_gi
+ dw .ku_gu
+ dw .ke_ge
+ dw .ko_go
+ dw .sa_za
+ dw .shi_ji
+ dw .su_zu
+ dw .se_ze
+ dw .so_zo
+ dw .ta_da
+ dw .chi_dhi
+ dw .tsu_du
+ dw .te_de
+ dw .to_do
+ dw .na
+ dw .ni
+ dw .nu
+ dw .ne
+ dw .no
+ dw .ha_ba_pa
+ dw .hi_bi_pi
+ dw .fu_bu_pu
+ dw .he_be_pe
+ dw .ho_bo_po
+ dw .ma
+ dw .mi
+ dw .mu
+ dw .me
+ dw .mo
+ dw .ya
+ dw .yu
+ dw .yo
+ dw .ra
+ dw .ri
+ dw .ru
+ dw .re
+ dw .ro
+ dw .wa
+ dw .end
+
+.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1
+.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1
+.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1
+.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1
+.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1
+.ka_ga db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1
+.ki_gi db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1
+.ku_gu db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1
+.ke_ge db ABRA, GENGAR, TAUROS, -1
+.ko_go db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1
+.sa_za db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list
+.shi_ji db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1
+.su_zu db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1
+.se_ze db SQUIRTLE, CELEBI, -1
+.so_zo db WOBBUFFET, -1
+.ta_da db DUGTRIO, HORSEA, EXEGGCUTE, -1
+.chi_dhi db CHIKORITA, CHINCHOU, -1
+.tsu_du db SHUCKLE, -1
+.te_de db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1
+.to_do db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1
+.na db ODDISH, EXEGGUTOR, -1
+.ni db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1
+.nu db QUAGSIRE, -1
+.ne db NATU, XATU, -1
+.no db DUNSPARCE, -1
+.ha_ba_pa db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1
+.hi_bi_pi db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1
+.fu_bu_pu db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1
+.he_be_pe db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1
+.ho_bo_po db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1
+.ma db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1
+.mi db DRATINI, MEW, MEWTWO, MILTANK, -1
+.mu db MISDREAVUS, SMOOCHUM, -1
+.me db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1
+.mo db FLAAFFY, VENOMOTH, TANGELA, -1
+.ya db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1
+.yu db KADABRA, -1
+.yo db LARVITAR, NOCTOWL, -1
+.ra db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1
+.ri db CHARMELEON, CHARIZARD, URSARING, -1
+.ru db JYNX, LUGIA, -1
+.re db MAGNETON, LEDIAN, LEDYBA, -1
+.ro db VULPIX, -1
+.wa db JUMPLUFF, TOTODILE, MACHOP;, -1
+.end db -1
+; 11d67e
+
+GFX_11d67e:
+INCBIN "gfx/pokedex/select_start.2bpp"
+; 11d6de
+
+LZ_11d6de:
+INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
+; 11da52
+
+MobileEZChatCategoryNames: ; 11da52
+; Fixed message categories
+ db "ポケモン@@" ; 00
+ db "タイプ@@@" ; 01
+ db "あいさつ@@" ; 02
+ db "ひと@@@@" ; 03
+ db "バトル@@@" ; 04
+ db "こえ@@@@" ; 05
+ db "かいわ@@@" ; 06
+ db "きもち@@@" ; 07
+ db "じょうたい@" ; 08
+ db "せいかつ@@" ; 09
+ db "しゅみ@@@" ; 0a
+ db "こうどう@@" ; 0b
+ db "じかん@@@" ; 0c
+ db "むすび@@@" ; 0d
+ db "あれこれ@@" ; 0e
+; 11daac
+
+MobileEZChatCategoryPointers: ; 11daac
+; entries correspond to EZCHAT_* constants
+ dw .Types ; 01
+ dw .Greetings ; 02
+ dw .People ; 03
+ dw .Battle ; 04
+ dw .Exclamations ; 05
+ dw .Conversation ; 06
+ dw .Feelings ; 07
+ dw .Conditions ; 08
+ dw .Life ; 09
+ dw .Hobbies ; 0a
+ dw .Actions ; 0b
+ dw .Time ; 0c
+ dw .Farewells ; 0d
+ dw .ThisAndThat ; 0e
+
+.Types: ; 11dac8
+ db "あく@@@", $26, $0, $0
+ db "いわ@@@", $aa, $0, $0
+ db "エスパー@", $da, $0, $0
+ db "かくとう@", $4e, $1, $0
+ db "くさ@@@", $ba, $1, $0
+ db "ゴースト@", $e4, $1, $0
+ db "こおり@@", $e6, $1, $0
+ db "じめん@@", $68, $2, $0
+ db "タイプ@@", $e8, $2, $0
+ db "でんき@@", $8e, $3, $0
+ db "どく@@@", $ae, $3, $0
+ db "ドラゴン@", $bc, $3, $0
+ db "ノーマル@", $22, $4, $0
+ db "はがね@@", $36, $4, $0
+ db "ひこう@@", $5e, $4, $0
+ db "ほのお@@", $b2, $4, $0
+ db "みず@@@", $f4, $4, $0
+ db "むし@@@", $12, $5, $0
+
+.Greetings: ; 11db58
+ db "ありがと@", $58, $0, $0
+ db "ありがとう", $5a, $0, $0
+ db "いくぜ!@", $80, $0, $0
+ db "いくよ!@", $82, $0, $0
+ db "いくわよ!", $84, $0, $0
+ db "いやー@@", $a6, $0, $0
+ db "おっす@@", $a, $1, $0
+ db "おはつです", $22, $1, $0
+ db "おめでとう", $2a, $1, $0
+ db "ごめん@@", $f8, $1, $0
+ db "ごめんよ@", $fa, $1, $0
+ db "こらっ@@", $fc, $1, $0
+ db "こんちは!", $a, $2, $0
+ db "こんにちは", $10, $2, $0
+ db "さようなら", $28, $2, $0
+ db "サンキュー", $2e, $2, $0
+ db "さんじょう", $30, $2, $0
+ db "しっけい@", $48, $2, $0
+ db "しつれい@", $4c, $2, $0
+ db "じゃーね@", $6c, $2, $0
+ db "すいません", $8c, $2, $0
+ db "それじゃ@", $ca, $2, $0
+ db "どうも@@", $a6, $3, $0
+ db "なんじゃ@", $ee, $3, $0
+ db "ハーイ@@", $2c, $4, $0
+ db "はいはい@", $32, $4, $0
+ db "バイバイ@", $34, $4, $0
+ db "へイ@@@", $8a, $4, $0
+ db "またね@@", $de, $4, $0
+ db "もしもし@", $32, $5, $0
+ db "やあ@@@", $3e, $5, $0
+ db "やっほー@", $4e, $5, $0
+ db "よう@@@", $62, $5, $0
+ db "ようこそ@", $64, $5, $0
+ db "よろしく@", $80, $5, $0
+ db "らっしゃい", $94, $5, $0
+
+.People: ; 11dc78
+ db "あいて@@", $1c, $0, $0
+ db "あたし@@", $36, $0, $0
+ db "あなた@@", $40, $0, $0
+ db "あなたが@", $42, $0, $0
+ db "あなたに@", $44, $0, $0
+ db "あなたの@", $46, $0, $0
+ db "あなたは@", $48, $0, $0
+ db "あなたを@", $4a, $0, $0
+ db "おかあさん", $e8, $0, $0
+ db "おじいさん", $fc, $0, $0
+ db "おじさん@", $2, $1, $0
+ db "おとうさん", $e, $1, $0
+ db "おとこのこ", $10, $1, $0
+ db "おとな@@", $14, $1, $0
+ db "おにいさん", $16, $1, $0
+ db "おねえさん", $18, $1, $0
+ db "おばあさん", $1c, $1, $0
+ db "おばさん@", $20, $1, $0
+ db "おれさま@", $34, $1, $0
+ db "おんなのこ", $3a, $1, $0
+ db "ガール@@", $40, $1, $0
+ db "かぞく@@", $52, $1, $0
+ db "かのじょ@", $72, $1, $0
+ db "かれ@@@", $7c, $1, $0
+ db "きみ@@@", $9a, $1, $0
+ db "きみが@@", $9c, $1, $0
+ db "きみに@@", $9e, $1, $0
+ db "きみの@@", $a0, $1, $0
+ db "きみは@@", $a2, $1, $0
+ db "きみを@@", $a4, $1, $0
+ db "ギャル@@", $ae, $1, $0
+ db "きょうだい", $b2, $1, $0
+ db "こども@@", $f0, $1, $0
+ db "じぶん@@", $54, $2, $0
+ db "じぶんが@", $56, $2, $0
+ db "じぶんに@", $58, $2, $0
+ db "じぶんの@", $5a, $2, $0
+ db "じぶんは@", $5c, $2, $0
+ db "じぶんを@", $5e, $2, $0
+ db "だれ@@@", $18, $3, $0
+ db "だれか@@", $1a, $3, $0
+ db "だれが@@", $1c, $3, $0
+ db "だれに@@", $1e, $3, $0
+ db "だれの@@", $20, $3, $0
+ db "だれも@@", $22, $3, $0
+ db "だれを@@", $24, $3, $0
+ db "ちゃん@@", $38, $3, $0
+ db "ともだち@", $b8, $3, $0
+ db "なかま@@", $d4, $3, $0
+ db "ひと@@@", $62, $4, $0
+ db "ボーイ@@", $98, $4, $0
+ db "ボク@@@", $a0, $4, $0
+ db "ボクが@@", $a2, $4, $0
+ db "ボクに@@", $a4, $4, $0
+ db "ボクの@@", $a6, $4, $0
+ db "ボクは@@", $a8, $4, $0
+ db "ボクを@@", $aa, $4, $0
+ db "みんな@@", $4, $5, $0
+ db "みんなが@", $6, $5, $0
+ db "みんなに@", $8, $5, $0
+ db "みんなの@", $a, $5, $0
+ db "みんなは@", $c, $5, $0
+ db "ライバル@", $8a, $5, $0
+ db "わたし@@", $c2, $5, $0
+ db "わたしが@", $c4, $5, $0
+ db "わたしに@", $c6, $5, $0
+ db "わたしの@", $c8, $5, $0
+ db "わたしは@", $ca, $5, $0
+ db "わたしを@", $cc, $5, $0
+
+.Battle: ; 11dea0
+ db "あいしょう", $18, $0, $0
+ db "いけ!@@", $88, $0, $0
+ db "いちばん@", $96, $0, $0
+ db "かくご@@", $4c, $1, $0
+ db "かたせて@", $54, $1, $0
+ db "かち@@@", $56, $1, $0
+ db "かつ@@@", $58, $1, $0
+ db "かった@@", $60, $1, $0
+ db "かったら@", $62, $1, $0
+ db "かって@@", $64, $1, $0
+ db "かてない@", $66, $1, $0
+ db "かてる@@", $68, $1, $0
+ db "かなわない", $70, $1, $0
+ db "きあい@@", $84, $1, $0
+ db "きめた@@", $a8, $1, $0
+ db "きりふだ@", $b6, $1, $0
+ db "くらえ@@", $c2, $1, $0
+ db "こい!@@", $da, $1, $0
+ db "こうげき@", $e0, $1, $0
+ db "こうさん@", $e2, $1, $0
+ db "こんじょう", $8, $2, $0
+ db "さいのう@", $16, $2, $0
+ db "さくせん@", $1a, $2, $0
+ db "さばき@@", $22, $2, $0
+ db "しょうぶ@", $7e, $2, $0
+ db "しょうり@", $80, $2, $0
+ db "せめ@@@", $b4, $2, $0
+ db "センス@@", $b6, $2, $0
+ db "たいせん@", $e6, $2, $0
+ db "たたかい@", $f6, $2, $0
+ db "ちから@@", $32, $3, $0
+ db "チャレンジ", $36, $3, $0
+ db "つよい@@", $58, $3, $0
+ db "つよすぎ@", $5a, $3, $0
+ db "つらい@@", $5c, $3, $0
+ db "つらかった", $5e, $3, $0
+ db "てかげん@", $6c, $3, $0
+ db "てき@@@", $6e, $3, $0
+ db "てんさい@", $90, $3, $0
+ db "でんせつ@", $94, $3, $0
+ db "トレーナー", $c6, $3, $0
+ db "にげ@@@", $4, $4, $0
+ db "ぬるい@@", $10, $4, $0
+ db "ねらう@@", $16, $4, $0
+ db "バトル@@", $4a, $4, $0
+ db "ファイト@", $72, $4, $0
+ db "ふっかつ@", $78, $4, $0
+ db "ポイント@", $94, $4, $0
+ db "ポケモン@", $ac, $4, $0
+ db "ほんき@@", $bc, $4, $0
+ db "まいった!", $c4, $4, $0
+ db "まけ@@@", $c8, $4, $0
+ db "まけたら@", $ca, $4, $0
+ db "まけて@@", $cc, $4, $0
+ db "まける@@", $ce, $4, $0
+ db "まもり@@", $ea, $4, $0
+ db "みかた@@", $f2, $4, $0
+ db "みとめない", $fe, $4, $0
+ db "みとめる@", $0, $5, $0
+ db "むてき@@", $16, $5, $0
+ db "もらった!", $3c, $5, $0
+ db "よゆう@@", $7a, $5, $0
+ db "よわい@@", $82, $5, $0
+ db "よわすぎ@", $84, $5, $0
+ db "らくしょう", $8e, $5, $0
+ db "りーダー@", $9e, $5, $0
+ db "ルール@@", $a0, $5, $0
+ db "レべル@@", $a6, $5, $0
+ db "わざ@@@", $be, $5, $0
+
+.Exclamations: ; 11e0c8
+ db "!@@@@", $0, $0, $0
+ db "!!@@@", $2, $0, $0
+ db "!?@@@", $4, $0, $0
+ db "?@@@@", $6, $0, $0
+ db "…@@@@", $8, $0, $0
+ db "…!@@@", $a, $0, $0
+ db "………@@", $c, $0, $0
+ db "ー@@@@", $e, $0, $0
+ db "ーーー@@", $10, $0, $0
+ db "あーあ@@", $14, $0, $0
+ db "あーん@@", $16, $0, $0
+ db "あははー@", $52, $0, $0
+ db "あら@@@", $54, $0, $0
+ db "いえ@@@", $72, $0, $0
+ db "イエス@@", $74, $0, $0
+ db "うう@@@", $ac, $0, $0
+ db "うーん@@", $ae, $0, $0
+ db "うおー!@", $b0, $0, $0
+ db "うおりゃー", $b2, $0, $0
+ db "うひょー@", $bc, $0, $0
+ db "うふふ@@", $be, $0, $0
+ db "うわー@@", $ca, $0, $0
+ db "うわーん@", $cc, $0, $0
+ db "ええ@@@", $d2, $0, $0
+ db "えー@@@", $d4, $0, $0
+ db "えーん@@", $d6, $0, $0
+ db "えへへ@@", $dc, $0, $0
+ db "おいおい@", $e0, $0, $0
+ db "おお@@@", $e2, $0, $0
+ db "おっと@@", $c, $1, $0
+ db "がーん@@", $42, $1, $0
+ db "キャー@@", $aa, $1, $0
+ db "ギャー@@", $ac, $1, $0
+ db "ぐふふふふ", $bc, $1, $0
+ db "げっ@@@", $ce, $1, $0
+ db "しくしく@", $3e, $2, $0
+ db "ちえっ@@", $2e, $3, $0
+ db "てへ@@@", $86, $3, $0
+ db "ノー@@@", $20, $4, $0
+ db "はあー@@", $2a, $4, $0
+ db "はい@@@", $30, $4, $0
+ db "はっはっは", $48, $4, $0
+ db "ひいー@@", $56, $4, $0
+ db "ひゃあ@@", $6a, $4, $0
+ db "ふっふっふ", $7c, $4, $0
+ db "ふにゃ@@", $7e, $4, $0
+ db "ププ@@@", $80, $4, $0
+ db "ふふん@@", $82, $4, $0
+ db "ふん@@@", $88, $4, $0
+ db "へっへっへ", $8e, $4, $0
+ db "へへー@@", $90, $4, $0
+ db "ほーほほほ", $9c, $4, $0
+ db "ほら@@@", $b6, $4, $0
+ db "まあ@@@", $c0, $4, $0
+ db "むきー!!", $10, $5, $0
+ db "むふー@@", $18, $5, $0
+ db "むふふ@@", $1a, $5, $0
+ db "むむ@@@", $1c, $5, $0
+ db "よーし@@", $6a, $5, $0
+ db "よし!@@", $72, $5, $0
+ db "ラララ@@", $98, $5, $0
+ db "わーい@@", $ac, $5, $0
+ db "わーん!!", $b0, $5, $0
+ db "ワォ@@@", $b2, $5, $0
+ db "わっ!!@", $ce, $5, $0
+ db "わははは!", $d0, $5, $0
+
+.Conversation: ; 11e2d8
+ db "あのね@@", $50, $0, $0
+ db "あんまり@", $6e, $0, $0
+ db "いじわる@", $8e, $0, $0
+ db "うそ@@@", $b6, $0, $0
+ db "うむ@@@", $c4, $0, $0
+ db "おーい@@", $e4, $0, $0
+ db "おすすめ@", $6, $1, $0
+ db "おばかさん", $1e, $1, $0
+ db "かなり@@", $6e, $1, $0
+ db "から@@@", $7a, $1, $0
+ db "きぶん@@", $98, $1, $0
+ db "けど@@@", $d6, $1, $0
+ db "こそ@@@", $ea, $1, $0
+ db "こと@@@", $ee, $1, $0
+ db "さあ@@@", $12, $2, $0
+ db "さっぱり@", $1e, $2, $0
+ db "さて@@@", $20, $2, $0
+ db "じゅうぶん", $72, $2, $0
+ db "すぐ@@@", $94, $2, $0
+ db "すごく@@", $98, $2, $0
+ db "すこしは@", $9a, $2, $0
+ db "すっっごい", $a0, $2, $0
+ db "ぜーんぜん", $b0, $2, $0
+ db "ぜったい@", $b2, $2, $0
+ db "それで@@", $ce, $2, $0
+ db "だけ@@@", $f2, $2, $0
+ db "だって@@", $fc, $2, $0
+ db "たぶん@@", $6, $3, $0
+ db "たら@@@", $14, $3, $0
+ db "ちょー@@", $3a, $3, $0
+ db "ちょっと@", $3c, $3, $0
+ db "ったら@@", $4e, $3, $0
+ db "って@@@", $50, $3, $0
+ db "ていうか@", $62, $3, $0
+ db "でも@@@", $88, $3, $0
+ db "どうしても", $9c, $3, $0
+ db "とうぜん@", $a0, $3, $0
+ db "どうぞ@@", $a2, $3, $0
+ db "とりあえず", $be, $3, $0
+ db "なあ@@@", $cc, $3, $0
+ db "なんて@@", $f4, $3, $0
+ db "なんでも@", $fc, $3, $0
+ db "なんとか@", $fe, $3, $0
+ db "には@@@", $8, $4, $0
+ db "バッチり@", $46, $4, $0
+ db "ばりばり@", $52, $4, $0
+ db "ほど@@@", $b0, $4, $0
+ db "ほんと@@", $be, $4, $0
+ db "まさに@@", $d0, $4, $0
+ db "マジ@@@", $d2, $4, $0
+ db "マジで@@", $d4, $4, $0
+ db "まったく@", $e4, $4, $0
+ db "まで@@@", $e6, $4, $0
+ db "まるで@@", $ec, $4, $0
+ db "ムード@@", $e, $5, $0
+ db "むしろ@@", $14, $5, $0
+ db "めちゃ@@", $24, $5, $0
+ db "めっぽう@", $28, $5, $0
+ db "もう@@@", $2c, $5, $0
+ db "モード@@", $2e, $5, $0
+ db "もっと@@", $36, $5, $0
+ db "もはや@@", $38, $5, $0
+ db "やっと@@", $4a, $5, $0
+ db "やっぱり@", $4c, $5, $0
+ db "より@@@", $7c, $5, $0
+ db "れば@@@", $a4, $5, $0
+
+.Feelings: ; 11e4e8
+ db "あいたい@", $1a, $0, $0
+ db "あそびたい", $32, $0, $0
+ db "いきたい@", $7c, $0, $0
+ db "うかれて@", $b4, $0, $0
+ db "うれしい@", $c6, $0, $0
+ db "うれしさ@", $c8, $0, $0
+ db "エキサイト", $d8, $0, $0
+ db "えらい@@", $de, $0, $0
+ db "おかしい@", $ec, $0, $0
+ db "ォッケー@", $8, $1, $0
+ db "かえりたい", $48, $1, $0
+ db "がっくし@", $5a, $1, $0
+ db "かなしい@", $6c, $1, $0
+ db "がんばって", $80, $1, $0
+ db "きがしない", $86, $1, $0
+ db "きがする@", $88, $1, $0
+ db "ききたい@", $8a, $1, $0
+ db "きになる@", $90, $1, $0
+ db "きのせい@", $96, $1, $0
+ db "きらい@@", $b4, $1, $0
+ db "くやしい@", $be, $1, $0
+ db "くやしさ@", $c0, $1, $0
+ db "さみしい@", $24, $2, $0
+ db "ざんねん@", $32, $2, $0
+ db "しあわせ@", $36, $2, $0
+ db "したい@@", $44, $2, $0
+ db "したくない", $46, $2, $0
+ db "しまった@", $64, $2, $0
+ db "しょんぼり", $82, $2, $0
+ db "すき@@@", $92, $2, $0
+ db "だいきらい", $da, $2, $0
+ db "たいくつ@", $dc, $2, $0
+ db "だいじ@@", $de, $2, $0
+ db "だいすき@", $e4, $2, $0
+ db "たいへん@", $ea, $2, $0
+ db "たのしい@", $0, $3, $0
+ db "たのしすぎ", $2, $3, $0
+ db "たべたい@", $8, $3, $0
+ db "ダメダメ@", $e, $3, $0
+ db "たりない@", $16, $3, $0
+ db "ちくしょー", $34, $3, $0
+ db "どうしよう", $9e, $3, $0
+ db "ドキドキ@", $ac, $3, $0
+ db "ナイス@@", $d0, $3, $0
+ db "のみたい@", $26, $4, $0
+ db "びっくり@", $60, $4, $0
+ db "ふあん@@", $74, $4, $0
+ db "ふらふら@", $86, $4, $0
+ db "ほしい@@", $ae, $4, $0
+ db "ボロボロ@", $b8, $4, $0
+ db "まだまだ@", $e0, $4, $0
+ db "まてない@", $e8, $4, $0
+ db "まんぞく@", $f0, $4, $0
+ db "みたい@@", $f8, $4, $0
+ db "めずらしい", $22, $5, $0
+ db "メラメラ@", $2a, $5, $0
+ db "やだ@@@", $46, $5, $0
+ db "やったー@", $48, $5, $0
+ db "やばい@@", $50, $5, $0
+ db "やばすぎる", $52, $5, $0
+ db "やられた@", $54, $5, $0
+ db "やられて@", $56, $5, $0
+ db "よかった@", $6e, $5, $0
+ db "ラブラブ@", $96, $5, $0
+ db "ロマン@@", $a8, $5, $0
+ db "ろんがい@", $aa, $5, $0
+ db "わから@@", $b4, $5, $0
+ db "わかり@@", $b6, $5, $0
+ db "わくわく@", $ba, $5, $0
+
+.Conditions: ; 11e710
+ db "あつい@@", $38, $0, $0
+ db "あった@@", $3a, $0, $0
+ db "あり@@@", $56, $0, $0
+ db "ある@@@", $5e, $0, $0
+ db "あわてて@", $6a, $0, $0
+ db "いい@@@", $70, $0, $0
+ db "いか@@@", $76, $0, $0
+ db "イカス@@", $78, $0, $0
+ db "いきおい@", $7a, $0, $0
+ db "いける@@", $8a, $0, $0
+ db "いじょう@", $8c, $0, $0
+ db "いそがしい", $90, $0, $0
+ db "いっしょに", $9a, $0, $0
+ db "いっぱい@", $9c, $0, $0
+ db "いない@@", $a0, $0, $0
+ db "いや@@@", $a4, $0, $0
+ db "いる@@@", $a8, $0, $0
+ db "うまい@@", $c0, $0, $0
+ db "うまく@@", $c2, $0, $0
+ db "おおきい@", $e6, $0, $0
+ db "おくれ@@", $f2, $0, $0
+ db "おしい@@", $fa, $0, $0
+ db "おもしろい", $2c, $1, $0
+ db "おもしろく", $2e, $1, $0
+ db "かっこいい", $5c, $1, $0
+ db "かわいい@", $7e, $1, $0
+ db "かんぺき@", $82, $1, $0
+ db "けっこう@", $d0, $1, $0
+ db "げんき@@", $d8, $1, $0
+ db "こわい@@", $6, $2, $0
+ db "さいこう@", $14, $2, $0
+ db "さむい@@", $26, $2, $0
+ db "さわやか@", $2c, $2, $0
+ db "しかたない", $38, $2, $0
+ db "すごい@@", $96, $2, $0
+ db "すごすぎ@", $9c, $2, $0
+ db "すてき@@", $a4, $2, $0
+ db "たいした@", $e0, $2, $0
+ db "だいじょぶ", $e2, $2, $0
+ db "たかい@@", $ec, $2, $0
+ db "ただしい@", $f8, $2, $0
+ db "だめ@@@", $c, $3, $0
+ db "ちいさい@", $2c, $3, $0
+ db "ちがう@@", $30, $3, $0
+ db "つかれ@@", $48, $3, $0
+ db "とくい@@", $b0, $3, $0
+ db "とまらない", $b6, $3, $0
+ db "ない@@@", $ce, $3, $0
+ db "なかった@", $d2, $3, $0
+ db "なし@@@", $d8, $3, $0
+ db "なって@@", $dc, $3, $0
+ db "はやい@@", $50, $4, $0
+ db "ひかる@@", $5a, $4, $0
+ db "ひくい@@", $5c, $4, $0
+ db "ひどい@@", $64, $4, $0
+ db "ひとりで@", $66, $4, $0
+ db "ひま@@@", $68, $4, $0
+ db "ふそく@@", $76, $4, $0
+ db "へた@@@", $8c, $4, $0
+ db "まちがって", $e2, $4, $0
+ db "やさしい@", $42, $5, $0
+ db "よく@@@", $70, $5, $0
+ db "よわって@", $86, $5, $0
+ db "らく@@@", $8c, $5, $0
+ db "らしい@@", $90, $5, $0
+ db "わるい@@", $d4, $5, $0
+
+.Life: ; 11e920
+ db "アルバイト", $64, $0, $0
+ db "うち@@@", $ba, $0, $0
+ db "おかね@@", $ee, $0, $0
+ db "おこづかい", $f4, $0, $0
+ db "おふろ@@", $24, $1, $0
+ db "がっこう@", $5e, $1, $0
+ db "きねん@@", $92, $1, $0
+ db "グループ@", $c6, $1, $0
+ db "ゲット@@", $d2, $1, $0
+ db "こうかん@", $de, $1, $0
+ db "しごと@@", $40, $2, $0
+ db "しゅぎょう", $74, $2, $0
+ db "じゅぎょう", $76, $2, $0
+ db "じゅく@@", $78, $2, $0
+ db "しんか@@", $88, $2, $0
+ db "ずかん@@", $90, $2, $0
+ db "せいかつ@", $ae, $2, $0
+ db "せんせい@", $b8, $2, $0
+ db "センター@", $ba, $2, $0
+ db "タワー@@", $28, $3, $0
+ db "つうしん@", $40, $3, $0
+ db "テスト@@", $7e, $3, $0
+ db "テレビ@@", $8c, $3, $0
+ db "でんわ@@", $96, $3, $0
+ db "どうぐ@@", $9a, $3, $0
+ db "トレード@", $c4, $3, $0
+ db "なまえ@@", $e8, $3, $0
+ db "ニュース@", $a, $4, $0
+ db "にんき@@", $c, $4, $0
+ db "パーティー", $2e, $4, $0
+ db "べんきょう", $92, $4, $0
+ db "マシン@@", $d6, $4, $0
+ db "めいし@@", $1e, $5, $0
+ db "メッセージ", $26, $5, $0
+ db "もようがえ", $3a, $5, $0
+ db "ゆめ@@@", $5a, $5, $0
+ db "ようちえん", $66, $5, $0
+ db "ラジォ@@", $92, $5, $0
+ db "ワールド@", $ae, $5, $0
+
+.Hobbies: ; 11ea58
+ db "アイドル@", $1e, $0, $0
+ db "アニメ@@", $4c, $0, $0
+ db "うた@@@", $b8, $0, $0
+ db "えいが@@", $d0, $0, $0
+ db "おかし@@", $ea, $0, $0
+ db "おしゃべり", $4, $1, $0
+ db "おままごと", $28, $1, $0
+ db "おもちゃ@", $30, $1, $0
+ db "おんがく@", $38, $1, $0
+ db "カード@@", $3e, $1, $0
+ db "かいもの@", $46, $1, $0
+ db "グルメ@@", $c8, $1, $0
+ db "ゲーム@@", $cc, $1, $0
+ db "ざっし@@", $1c, $2, $0
+ db "さんぽ@@", $34, $2, $0
+ db "じてんしゃ", $50, $2, $0
+ db "しゅみ@@", $7a, $2, $0
+ db "スポーツ@", $a8, $2, $0
+ db "ダイエット", $d8, $2, $0
+ db "たからもの", $f0, $2, $0
+ db "たび@@@", $4, $3, $0
+ db "ダンス@@", $2a, $3, $0
+ db "つり@@@", $60, $3, $0
+ db "デート@@", $6a, $3, $0
+ db "でんしゃ@", $92, $3, $0
+ db "ぬいぐるみ", $e, $4, $0
+ db "パソコン@", $3e, $4, $0
+ db "はな@@@", $4c, $4, $0
+ db "ヒーロー@", $58, $4, $0
+ db "ひるね@@", $6e, $4, $0
+ db "ヒロイン@", $70, $4, $0
+ db "ぼうけん@", $96, $4, $0
+ db "ボード@@", $9a, $4, $0
+ db "ボール@@", $9e, $4, $0
+ db "ほん@@@", $ba, $4, $0
+ db "マンガ@@", $ee, $4, $0
+ db "やくそく@", $40, $5, $0
+ db "やすみ@@", $44, $5, $0
+ db "よてい@@", $74, $5, $0
+
+.Actions: ; 11eb90
+ db "あう@@@", $20, $0, $0
+ db "あきらめ@", $24, $0, $0
+ db "あげる@@", $28, $0, $0
+ db "あせる@@", $2e, $0, $0
+ db "あそび@@", $30, $0, $0
+ db "あそぶ@@", $34, $0, $0
+ db "あつめ@@", $3e, $0, $0
+ db "あるき@@", $60, $0, $0
+ db "あるく@@", $62, $0, $0
+ db "いく@@@", $7e, $0, $0
+ db "いけ@@@", $86, $0, $0
+ db "おき@@@", $f0, $0, $0
+ db "おこり@@", $f6, $0, $0
+ db "おこる@@", $f8, $0, $0
+ db "おしえ@@", $fe, $0, $0
+ db "おしえて@", $0, $1, $0
+ db "おねがい@", $1a, $1, $0
+ db "おぼえ@@", $26, $1, $0
+ db "かえる@@", $4a, $1, $0
+ db "がまん@@", $74, $1, $0
+ db "きく@@@", $8c, $1, $0
+ db "きたえ@@", $8e, $1, $0
+ db "きめ@@@", $a6, $1, $0
+ db "くる@@@", $c4, $1, $0
+ db "さがし@@", $18, $2, $0
+ db "さわぎ@@", $2a, $2, $0
+ db "した@@@", $42, $2, $0
+ db "しって@@", $4a, $2, $0
+ db "して@@@", $4e, $2, $0
+ db "しない@@", $52, $2, $0
+ db "しまう@@", $60, $2, $0
+ db "じまん@@", $66, $2, $0
+ db "しらない@", $84, $2, $0
+ db "しる@@@", $86, $2, $0
+ db "しんじて@", $8a, $2, $0
+ db "する@@@", $aa, $2, $0
+ db "たべる@@", $a, $3, $0
+ db "つかう@@", $42, $3, $0
+ db "つかえ@@", $44, $3, $0
+ db "つかって@", $46, $3, $0
+ db "できない@", $70, $3, $0
+ db "できる@@", $72, $3, $0
+ db "でない@@", $84, $3, $0
+ db "でる@@@", $8a, $3, $0
+ db "なげる@@", $d6, $3, $0
+ db "なやみ@@", $ea, $3, $0
+ db "ねられ@@", $18, $4, $0
+ db "ねる@@@", $1a, $4, $0
+ db "のがし@@", $24, $4, $0
+ db "のむ@@@", $28, $4, $0
+ db "はしり@@", $3a, $4, $0
+ db "はしる@@", $3c, $4, $0
+ db "はたらき@", $40, $4, $0
+ db "はたらく@", $42, $4, $0
+ db "はまって@", $4e, $4, $0
+ db "ぶつけ@@", $7a, $4, $0
+ db "ほめ@@@", $b4, $4, $0
+ db "みせて@@", $f6, $4, $0
+ db "みて@@@", $fc, $4, $0
+ db "みる@@@", $2, $5, $0
+ db "めざす@@", $20, $5, $0
+ db "もって@@", $34, $5, $0
+ db "ゆずる@@", $58, $5, $0
+ db "ゆるす@@", $5c, $5, $0
+ db "ゆるせ@@", $5e, $5, $0
+ db "られない@", $9a, $5, $0
+ db "られる@@", $9c, $5, $0
+ db "わかる@@", $b8, $5, $0
+ db "わすれ@@", $c0, $5, $0
+
+.Time: ; 11edb8
+ db "あき@@@", $22, $0, $0
+ db "あさ@@@", $2a, $0, $0
+ db "あした@@", $2c, $0, $0
+ db "いちにち@", $94, $0, $0
+ db "いつか@@", $98, $0, $0
+ db "いつも@@", $9e, $0, $0
+ db "いま@@@", $a2, $0, $0
+ db "えいえん@", $ce, $0, $0
+ db "おととい@", $12, $1, $0
+ db "おわり@@", $36, $1, $0
+ db "かようび@", $78, $1, $0
+ db "きのう@@", $94, $1, $0
+ db "きょう@@", $b0, $1, $0
+ db "きんようび", $b8, $1, $0
+ db "げつようび", $d4, $1, $0
+ db "このあと@", $f4, $1, $0
+ db "このまえ@", $f6, $1, $0
+ db "こんど@@", $c, $2, $0
+ db "じかん@@", $3c, $2, $0
+ db "じゅうねん", $70, $2, $0
+ db "すいようび", $8e, $2, $0
+ db "スタート@", $9e, $2, $0
+ db "ずっと@@", $a2, $2, $0
+ db "ストップ@", $a6, $2, $0
+ db "そのうち@", $c4, $2, $0
+ db "ついに@@", $3e, $3, $0
+ db "つぎ@@@", $4a, $3, $0
+ db "どようび@", $ba, $3, $0
+ db "なつ@@@", $da, $3, $0
+ db "にちようび", $6, $4, $0
+ db "はじめ@@", $38, $4, $0
+ db "はる@@@", $54, $4, $0
+ db "ひる@@@", $6c, $4, $0
+ db "ふゆ@@@", $84, $4, $0
+ db "まいにち@", $c6, $4, $0
+ db "もくようび", $30, $5, $0
+ db "よなか@@", $76, $5, $0
+ db "よる@@@", $7e, $5, $0
+ db "らいしゅう", $88, $5, $0
+
+.Farewells: ; 11eef0
+ db "いたします", $92, $0, $0
+ db "おります@", $32, $1, $0
+ db "か!?@@", $3c, $1, $0
+ db "かい?@@", $44, $1, $0
+ db "かしら?@", $50, $1, $0
+ db "かな?@@", $6a, $1, $0
+ db "かも@@@", $76, $1, $0
+ db "くれ@@@", $ca, $1, $0
+ db "ございます", $e8, $1, $0
+ db "しがち@@", $3a, $2, $0
+ db "します@@", $62, $2, $0
+ db "じゃ@@@", $6a, $2, $0
+ db "じゃん@@", $6e, $2, $0
+ db "しよう@@", $7c, $2, $0
+ db "ぜ!@@@", $ac, $2, $0
+ db "ぞ!@@@", $bc, $2, $0
+ db "た@@@@", $d4, $2, $0
+ db "だ@@@@", $d6, $2, $0
+ db "だからね@", $ee, $2, $0
+ db "だぜ@@@", $f4, $2, $0
+ db "だった@@", $fa, $2, $0
+ db "だね@@@", $fe, $2, $0
+ db "だよ@@@", $10, $3, $0
+ db "だよねー!", $12, $3, $0
+ db "だわ@@@", $26, $3, $0
+ db "ッス@@@", $4c, $3, $0
+ db "ってかんじ", $52, $3, $0
+ db "っぱなし@", $54, $3, $0
+ db "つもり@@", $56, $3, $0
+ db "ていない@", $64, $3, $0
+ db "ている@@", $66, $3, $0
+ db "でーす!@", $68, $3, $0
+ db "でした@@", $74, $3, $0
+ db "でしょ?@", $76, $3, $0
+ db "でしょー!", $78, $3, $0
+ db "です@@@", $7a, $3, $0
+ db "ですか?@", $7c, $3, $0
+ db "ですよ@@", $80, $3, $0
+ db "ですわ@@", $82, $3, $0
+ db "どうなの?", $a4, $3, $0
+ db "どうよ?@", $a8, $3, $0
+ db "とかいって", $aa, $3, $0
+ db "なの@@@", $e0, $3, $0
+ db "なのか@@", $e2, $3, $0
+ db "なのだ@@", $e4, $3, $0
+ db "なのよ@@", $e6, $3, $0
+ db "なんだね@", $f2, $3, $0
+ db "なんです@", $f8, $3, $0
+ db "なんてね@", $fa, $3, $0
+ db "ね@@@@", $12, $4, $0
+ db "ねー@@@", $14, $4, $0
+ db "の@@@@", $1c, $4, $0
+ db "の?@@@", $1e, $4, $0
+ db "ばっかり@", $44, $4, $0
+ db "まーす!@", $c2, $4, $0
+ db "ます@@@", $d8, $4, $0
+ db "ますわ@@", $da, $4, $0
+ db "ません@@", $dc, $4, $0
+ db "みたいな@", $fa, $4, $0
+ db "よ!@@@", $60, $5, $0
+ db "よー@@@", $68, $5, $0
+ db "よーん@@", $6c, $5, $0
+ db "よね@@@", $78, $5, $0
+ db "るよ@@@", $a2, $5, $0
+ db "わけ@@@", $bc, $5, $0
+ db "わよ!@@", $d2, $5, $0
+
+.ThisAndThat: ; 11f100
+ db "ああ@@@", $12, $0, $0
+ db "あっち@@", $3c, $0, $0
+ db "あの@@@", $4e, $0, $0
+ db "ありゃ@@", $5c, $0, $0
+ db "あれ@@@", $66, $0, $0
+ db "あれは@@", $68, $0, $0
+ db "あんな@@", $6c, $0, $0
+ db "こう@@@", $dc, $1, $0
+ db "こっち@@", $ec, $1, $0
+ db "この@@@", $f2, $1, $0
+ db "こりゃ@@", $fe, $1, $0
+ db "これ@@@", $0, $2, $0
+ db "これだ!@", $2, $2, $0
+ db "これは@@", $4, $2, $0
+ db "こんな@@", $e, $2, $0
+ db "そう@@@", $be, $2, $0
+ db "そっち@@", $c0, $2, $0
+ db "その@@@", $c2, $2, $0
+ db "そりゃ@@", $c6, $2, $0
+ db "それ@@@", $c8, $2, $0
+ db "それだ!@", $cc, $2, $0
+ db "それは@@", $d0, $2, $0
+ db "そんな@@", $d2, $2, $0
+ db "どう@@@", $98, $3, $0
+ db "どっち@@", $b2, $3, $0
+ db "どの@@@", $b4, $3, $0
+ db "どりゃ@@", $c0, $3, $0
+ db "どれ@@@", $c2, $3, $0
+ db "どれを@@", $c8, $3, $0
+ db "どんな@@", $ca, $3, $0
+ db "なに@@@", $de, $3, $0
+ db "なんか@@", $ec, $3, $0
+ db "なんだ@@", $f0, $3, $0
+ db "なんで@@", $f6, $3, $0
+ db "なんなんだ", $0, $4, $0
+ db "なんの@@", $2, $4, $0
+; 11f220
+
+MobileEZChatData_WordAndPageCounts:
+macro_11f220: macro
+; parameter: number of words
+ db \1
+; 12 words per page (0-based indexing)
+x = \1 / 12
+if \1 % 12 == 0
+x = x +- 1
+endc
+ db x
+endm
+ macro_11f220 18 ; 01: Types
+ macro_11f220 36 ; 02: Greetings
+ macro_11f220 69 ; 03: People
+ macro_11f220 69 ; 04: Battle
+ macro_11f220 66 ; 05: Exclamations
+ macro_11f220 66 ; 06: Conversation
+ macro_11f220 69 ; 07: Feelings
+ macro_11f220 66 ; 08: Conditions
+ macro_11f220 39 ; 09: Life
+ macro_11f220 39 ; 0a: Hobbies
+ macro_11f220 69 ; 0b: Actions
+ macro_11f220 39 ; 0c: Time
+ macro_11f220 66 ; 0d: Farewells
+ macro_11f220 36 ; 0e: ThisAndThat
+
+EZChat_SortedWords:
+; Addresses in WRAM bank 3 where EZChat words beginning
+; with the given kana are sorted in memory, and the pre-
+; allocated size for each.
+; These arrays are expanded dynamically to accomodate
+; any Pokemon you've seen that starts with each kana.\
+macro_11f23c: macro
+ dw x - w3_d000, \1
+x = x + 2 * \1
+endm
+x = $d012
+ macro_11f23c $2f ; a
+ macro_11f23c $1e ; i
+ macro_11f23c $11 ; u
+ macro_11f23c $09 ; e
+ macro_11f23c $2e ; o
+ macro_11f23c $24 ; ka_ga
+ macro_11f23c $1b ; ki_gi
+ macro_11f23c $09 ; ku_gu
+ macro_11f23c $07 ; ke_ge
+ macro_11f23c $1c ; ko_go
+ macro_11f23c $12 ; sa_za
+ macro_11f23c $2b ; shi_ji
+ macro_11f23c $10 ; su_zu
+ macro_11f23c $08 ; se_ze
+ macro_11f23c $0c ; so_zo
+ macro_11f23c $2c ; ta_da
+ macro_11f23c $09 ; chi_dhi
+ macro_11f23c $12 ; tsu_du
+ macro_11f23c $1b ; te_de
+ macro_11f23c $1a ; to_do
+ macro_11f23c $1c ; na
+ macro_11f23c $05 ; ni
+ macro_11f23c $02 ; nu
+ macro_11f23c $05 ; ne
+ macro_11f23c $07 ; no
+ macro_11f23c $16 ; ha_ba_pa
+ macro_11f23c $0e ; hi_bi_pi
+ macro_11f23c $0c ; fu_bu_pu
+ macro_11f23c $05 ; he_be_pe
+ macro_11f23c $16 ; ho_bo_po
+ macro_11f23c $19 ; ma
+ macro_11f23c $0e ; mi
+ macro_11f23c $08 ; mu
+ macro_11f23c $07 ; me
+ macro_11f23c $09 ; mo
+ macro_11f23c $0d ; ya
+ macro_11f23c $04 ; yu
+ macro_11f23c $14 ; yo
+ macro_11f23c $0b ; ra
+ macro_11f23c $01 ; ri
+ macro_11f23c $02 ; ru
+ macro_11f23c $02 ; re
+ macro_11f23c $02 ; ro
+ macro_11f23c $15 ; wa
+x = $d000
+ macro_11f23c $09 ; end
+EZChat_SortedWordsEnd:
--- /dev/null
+++ b/mobile/get_trainer_class.asm
@@ -1,0 +1,46 @@
+GetMobileOTTrainerClass: ; mobile function
+ ld h, b
+ ld l, c
+ call .GetMobileOTTrainerClass
+ ld c, a
+ ret
+
+.GetMobileOTTrainerClass: ; 4e930
+ ld a, [hli]
+ xor [hl]
+ ld c, a
+ jr z, .skip_male_trainers
+ srl c
+ srl c
+.male_trainer_loop
+ srl c
+ ld a, c
+ cp MaleTrainersEnd - MaleTrainers - 1
+ jr nc, .male_trainer_loop
+ inc c
+
+.skip_male_trainers
+ ld a, [de]
+ cp $1
+ ld hl, MaleTrainers
+ jr nz, .finished
+
+ ld hl, FemaleTrainers
+ ld a, c
+ and a
+ jr z, .finished
+
+.female_trainer_loop
+ srl c
+ ld a, c
+ cp FemaleTrainersEnd - FemaleTrainers - 1
+ jr nc, .female_trainer_loop
+ inc c
+
+.finished
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ret
+
+INCLUDE "data/trainers/gendered_trainers.asm"
--- /dev/null
+++ b/mobile/mobile_12.asm
@@ -1,0 +1,1845 @@
+InitMobileProfile: ; 4802f (12:402f)
+ xor a
+ set 6, a
+ ld [wd002], a
+ ld hl, wd003
+ set 0, [hl]
+ ld a, c
+ and a
+ call z, InitCrystalData
+ call ClearBGPalettes
+ call Function48d3d
+ ld a, [wd479]
+ bit 1, a
+ jr z, .not_yet_initialized
+ ld a, [wd003]
+ set 0, a
+ set 1, a
+ set 2, a
+ set 3, a
+ ld [wd003], a
+.not_yet_initialized
+ call Function486bf
+ call LoadFontsExtra
+ ld de, MobileUpArrowGFX
+ ld hl, VTiles2 tile $10
+ lb bc, BANK(MobileUpArrowGFX), 1
+ call Request1bpp
+ ld de, MobileDownArrowGFX
+ ld hl, VTiles2 tile $11
+ lb bc, BANK(MobileDownArrowGFX), 1
+ call Request1bpp
+ call Function4a3a7
+ call ClearBGPalettes
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4808a
+ call Function48689
+ jr .asm_480d7
+.asm_4808a
+ ld a, $5
+ ld [MusicFade], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
+ ld [MusicFadeID], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
+ ld [MusicFadeID + 1], a
+ ld c, 20
+ call DelayFrames
+ ld b, $1
+ call GetMysteryGift_MobileAdapterLayout
+ call ClearBGPalettes
+ hlcoord 0, 0
+ ld b, 2
+ ld c, 20
+ call ClearBox
+ hlcoord 0, 1
+ ld a, $c
+ ld [hl], a
+ ld bc, $13
+ add hl, bc
+ ld [hl], a
+ ld de, MobileProfileString
+ hlcoord 1, 1
+ call PlaceString
+ hlcoord 0, 2
+ ld b, $a
+ ld c, $12
+ call Function48cdc
+ hlcoord 2, 4
+ ld de, MobileString_Gender
+ call PlaceString
+.asm_480d7
+ hlcoord 2, 6
+ ld de, MobileString_Age
+ call PlaceString
+ hlcoord 2, 8
+ ld de, MobileString_Address
+ call PlaceString
+ hlcoord 2, 10
+ ld de, MobileString_ZipCode
+ call PlaceString
+ hlcoord 2, 12
+ ld de, MobileString_OK
+ call PlaceString
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_48113
+ ld a, [PlayerGender]
+ ld hl, Strings_484fb
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 11, 4
+ call PlaceString
+.asm_48113
+ hlcoord 11, 6
+ call Function487ec
+ ld a, [wd474]
+ dec a
+ ld hl, Prefectures
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 11, 8
+ call PlaceString
+ hlcoord 11, 10
+ call Function489ea
+ hlcoord 0, 14
+ ld b, $2
+ ld c, $12
+ call TextBox
+ hlcoord 1, 16
+ ld de, MobileString_PersonalInfo
+ call PlaceString
+ call Function48187
+ call WaitBGMap2
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr asm_4815f
+
+Function48157: ; 48157 (12:4157)
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+asm_4815f: ; 4815f (12:415f)
+ bit A_BUTTON_F, a
+ jp nz, Function4820d
+ ld b, a
+ ld a, [wd002]
+ bit 6, a
+ jr z, .dont_check_b_button
+ ld hl, wd479
+ bit 1, [hl]
+ jr z, .dont_check_b_button
+ bit B_BUTTON_F, b
+ jr nz, .b_button
+.dont_check_b_button
+ jp Function48272
+
+.b_button
+ call ClearBGPalettes
+ call Function48d30
+ pop bc
+ call ClearTileMap
+ ld a, $ff
+ ret
+
+Function48187: ; 48187 (12:4187)
+ ld a, [wd479]
+ bit 1, a
+ jr nz, .asm_481f1
+ ld a, [wd003]
+ ld d, a
+ call Function48725
+ jr c, .asm_481a2
+ lb bc, 1, 4
+ hlcoord 2, 12
+ call ClearBox
+ jr .asm_481ad
+.asm_481a2
+ push de
+ hlcoord 2, 12
+ ld de, MobileString_OK
+ call PlaceString
+ pop de
+.asm_481ad
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_481c1
+ bit 0, d
+ jr nz, .asm_481c1
+ lb bc, 1, 8
+ hlcoord 11, 4
+ call ClearBox
+.asm_481c1
+ bit 1, d
+ jr nz, .asm_481ce
+ lb bc, 1, 8
+ hlcoord 11, 6
+ call ClearBox
+.asm_481ce
+ bit 2, d
+ jr nz, .asm_481db
+ lb bc, 2, 8
+ hlcoord 11, 7
+ call ClearBox
+.asm_481db
+ bit 3, d
+ jr nz, .asm_481f1
+ ld a, [wd479]
+ bit 0, a
+ jr nz, .asm_481f8
+ lb bc, 1, 8
+ hlcoord 11, 10
+ call ClearBox
+ jr .asm_48201
+.asm_481f1
+ ld a, [wd479]
+ bit 0, a
+ jr nz, .asm_48201
+.asm_481f8
+ hlcoord 11, 10
+ ld de, .String_TellLater
+ call PlaceString
+.asm_48201
+ ret
+; 48202 (12:4202)
+
+.String_TellLater: ; 48202
+ db "Tell Later@"
+; 4820d
+
+Function4820d: ; 4820d (12:420d)
+ call PlaceHollowCursor
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ push af
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4821f
+ pop af
+ inc a
+ push af
+.asm_4821f
+ pop af
+ cp $1
+ jr z, asm_4828d
+ cp $2
+ jp z, Function4876f
+ cp $3
+ jp z, Function48304
+ cp $4
+ jp z, Function488d3
+ ld a, $2
+ call MenuClickSound
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4825c
+ jr .asm_4825c
+; 48241 (12:4241)
+
+ hlcoord 1, 15
+ ld b, $2
+ ld c, $12
+ call ClearBox
+ ld de, MobileString_ProfileChanged
+ hlcoord 1, 16
+ call PlaceString
+ call WaitBGMap
+ ld c, 48
+ call DelayFrames
+
+.asm_4825c
+ call ClearBGPalettes
+ call Function48d30
+ pop bc
+ call ClearTileMap
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ ld hl, wd479
+ set 1, [hl]
+ xor a
+ ret
+
+Function48272: ; 48272 (12:4272)
+ jp Function4840c
+; 48275 (12:4275)
+
+MobileString_PersonalInfo: ; 48275
+ db "Personal Info@"
+; 48283
+
+Function48283: ; 48283 (12:4283)
+ lb bc, 2, 18
+ hlcoord 1, 15
+ call ClearBox
+ ret
+
+asm_4828d: ; 4828d (12:428d)
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileDesc_Gender
+ call PlaceString
+ ld hl, MenuDataHeader_0x484f1
+ call LoadMenuDataHeader
+ call Function4873c
+ hlcoord 11, 2
+ ld b, $4
+ ld c, $7
+ call Function48cdc
+ hlcoord 13, 4
+ ld de, String_484fb
+ call PlaceString
+ hlcoord 13, 6
+ ld de, String_484ff
+ call PlaceString
+ call WaitBGMap
+ ld a, [PlayerGender]
+ inc a
+ ld [wMenuCursorBuffer], a
+ call StaticMenuJoypad
+ call PlayClickSFX
+ call ExitMenu
+ bit 0, a
+ jp z, Function4840c
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ ld hl, Strings_484fb
+ cp $1
+ jr z, .asm_482ed
+.asm_482e1
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_482e1
+ ld a, $1
+ ld [PlayerGender], a
+ jr .asm_482f1
+.asm_482ed
+ xor a
+ ld [PlayerGender], a
+.asm_482f1
+ ld d, h
+ ld e, l
+ hlcoord 11, 4
+ call PlaceString
+ ld a, [wd003]
+ set 0, a
+ ld [wd003], a
+ jp Function4840c
+
+Function48304: ; 48304 (12:4304)
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileDesc_Address
+ call PlaceString
+ ld hl, MenuDataHeader_0x48504
+ call LoadMenuDataHeader
+ ld hl, MenuDataHeader_0x48513
+ call LoadMenuDataHeader
+ hlcoord 10, 0
+ ld b, $c
+ ld c, $8
+ call Function48cdc
+ ld a, [wMenuCursorBuffer]
+ ld b, a
+ ld a, [wMenuScrollPosition]
+ ld c, a
+ push bc
+ ld a, [wd474]
+ dec a
+ cp $29
+ jr c, .asm_4833f
+ sub $29
+ inc a
+ ld [wMenuCursorBuffer], a
+ ld a, $29
+.asm_4833f
+ ld [wMenuScrollPosition], a
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+.asm_48348
+ call ScrollingMenu
+ ld de, $629
+ call Function48383
+ jr c, .asm_48348
+ ld d, a
+ pop bc
+ ld a, b
+ ld [wMenuCursorBuffer], a
+ ld a, c
+ ld [wMenuScrollPosition], a
+ ld a, d
+ push af
+ call ExitMenu
+ call ExitMenu
+ pop af
+ ld a, [hJoyPressed]
+ bit 0, a
+ jr z, .asm_48377
+ call Function483bb
+ ld a, [wd003]
+ set 2, a
+ ld [wd003], a
+.asm_48377
+ call Function48187
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ jp Function4840c
+
+Function48383: ; 48383 (12:4383)
+ push bc
+ push af
+ bit 5, a
+ jr nz, .asm_48390
+ bit 4, a
+ jr nz, .asm_4839f
+ and a
+ jr .asm_483b7
+.asm_48390
+ ld a, [wMenuScrollPosition]
+ sub d
+ ld [wMenuScrollPosition], a
+ jr nc, .asm_483af
+ xor a
+ ld [wMenuScrollPosition], a
+ jr .asm_483af
+.asm_4839f
+ ld a, [wMenuScrollPosition]
+ add d
+ ld [wMenuScrollPosition], a
+ cp e
+ jr c, .asm_483af
+ ld a, e
+ ld [wMenuScrollPosition], a
+ jr .asm_483af
+.asm_483af
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ ld [wMenuCursorBuffer], a
+ scf
+.asm_483b7
+ pop bc
+ ld a, b
+ pop bc
+ ret
+
+Function483bb: ; 483bb (12:43bb)
+ ld hl, wScrollingMenuCursorPosition
+ ld a, [hl]
+ inc a
+ ld [wd474], a
+ dec a
+ ld b, a
+ ld hl, Prefectures
+.asm_483c8
+ and a
+ jr z, .asm_483d5
+.asm_483cb
+ ld a, [hli]
+ cp "@"
+ jr nz, .asm_483cb
+ ld a, b
+ dec a
+ ld b, a
+ jr .asm_483c8
+.asm_483d5
+ ld d, h
+ ld e, l
+ ld b, $2
+ ld c, $8
+ hlcoord 11, 7
+ call ClearBox
+ hlcoord 11, 8
+ call PlaceString
+ ret
+; 483e8 (12:43e8)
+
+Function483e8: ; 483e8
+ push de
+ ld hl, Prefectures
+ ld a, [MenuSelection]
+ cp $ff
+ jr nz, .asm_483f8
+ ld hl, Wakayama ; last string
+ jr .asm_48405
+
+.asm_483f8
+ ld d, a
+ and a
+ jr z, .asm_48405
+.asm_483fc
+ ld a, [hli]
+ cp "@"
+ jr nz, .asm_483fc
+ ld a, d
+ dec a
+ jr .asm_483f8
+
+.asm_48405
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ret
+; 4840c
+
+Function4840c: ; 4840c (12:440c)
+ call Function48187
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileString_PersonalInfo
+ call PlaceString
+ call Function486bf
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .narrower_box
+ ld b, 9
+ ld c, 1
+ hlcoord 1, 4
+ call ClearBox
+ jp Function48157
+
+.narrower_box
+ ld b, 7
+ ld c, 1
+ hlcoord 1, 6
+ call ClearBox
+ jp Function48157
+
+Mobile12_Bin2Dec: ; 48444 (12:4444)
+ push bc
+ push af
+ push de
+ push hl
+ ld hl, .DigitStrings
+.loop
+ and a
+ jr z, .got_string
+ inc hl
+ inc hl
+ dec a
+ jr .loop
+.got_string
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ pop de
+ pop af
+ pop bc
+ ret
+; 4845d (12:445d)
+
+.DigitStrings: ; 4845d
+; 4845d
+ db "0@"
+ db "1@"
+ db "2@"
+ db "3@"
+ db "4@"
+ db "5@"
+ db "6@"
+ db "7@"
+ db "8@"
+ db "9@"
+; 48471
+
+MobileProfileString: db " Mobile Profile@"
+MobileString_Gender: db "Gender@"
+MobileString_Age: db "Age@"
+MobileString_Address: db "Address@"
+MobileString_ZipCode: db "Zip Code@"
+MobileString_OK: db "OK@"
+MobileString_ProfileChanged: db "Profile Changed@"
+MobileDesc_Gender: db "Boy or girl?@"
+MobileDesc_Age: db "How old are you?@"
+MobileDesc_Address: db "Where do you live?@"
+MobileDesc_ZipCode: db "Your zip code?@"
+; 484f1
+
+MenuDataHeader_0x484f1: ; 0x484f1
+ db $40 ; flags
+ db 02, 11 ; start coords
+ db 07, 19 ; end coords
+ dw MenuData2_0x484f9
+ db 1 ; default option
+; 0x484f9
+
+MenuData2_0x484f9: ; 0x484f9
+ db $a0 ; flags
+ db 2 ; items
+Strings_484fb:
+String_484fb: db "Boy@"
+String_484ff: db "Girl@"
+; 0x48504
+
+MenuDataHeader_0x48504: ; 0x48504
+ db $40 ; flags
+ db 00, 10 ; start coords
+ db 17, 19 ; end coords
+
+MenuDataHeader_0x48509: ; 0x48509
+ db $40 ; flags
+ db 05, 10 ; start coords
+ db 07, 19 ; end coords
+
+MenuDataHeader_0x4850e: ; 0x4850e
+ db $40 ; flags
+ db 09, 10 ; start coords
+ db 11, 19 ; end coords
+
+MenuDataHeader_0x48513: ; 0x48513
+ db $40 ; flags
+ db 01, 11 ; start coords
+ db 12, 18 ; end coords
+ dw MenuData2_0x4851b
+ db 1 ; default option
+; 0x4851b
+
+MenuData2_0x4851b: ; 0x4851b
+ db $1d ; flags
+ db 6 ; items
+
+Unknown_4851d: ; 4851d
+ db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
+ db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
+ db $2d, $ff
+
+Prefectures:
+Aichi: db "あいちけん@" ; Aichi
+Aomori: db "あおもりけん@" ; Aomori
+Akita: db "あきたけん@" ; Akita
+Ishikawa: db "いしかわけん@" ; Ishikawa
+Ibaraki: db "いばらきけん@" ; Ibaraki
+Iwate: db "いわてけん@" ; Iwate
+Ehime: db "えひめけん@" ; Ehime
+Oita: db "おおいたけん@" ; Oita
+Osakafu: db "おおさかふ@" ; Osakafu
+Okayama: db "おかやまけん@" ; Okayama
+Okinawa: db "おきなわけん@" ; Okinawa
+Kagawa: db "かがわけん@" ; Kagawa
+Kagoshima: db "かごしまけん@" ; Kagoshima
+Kanagawa: db "かながわけん@" ; Kanagawa
+Gifu: db "ぎふけん@" ; Gifu
+Kyotofu: db "きょうとふ@" ; Kyotofu
+Kumamoto: db "くまもとけん@" ; Kumamoto
+Gunma: db "ぐんまけん@" ; Gunma
+Kochi: db "こうちけん@" ; Kochi
+Saitama: db "さいたまけん@" ; Saitama
+Saga: db "さがけん@" ; Saga
+Shiga: db "しがけん@" ; Shiga
+Shizuoka: db "しずおかけん@" ; Shizuoka
+Shimane: db "しまねけん@" ; Shimane
+Chiba: db "ちばけん@" ; Chiba
+Tokyo: db "とうきょうと@" ; Tokyo
+Tokushima: db "とくしまけん@" ; Tokushima
+Tochigi: db "とちぎけん@" ; Tochigi
+Tottori: db "とっとりけん@" ; Tottori
+Toyama: db "とやまけん@" ; Toyama
+Nagasaki: db "ながさきけん@" ; Nagasaki
+Nagano: db "ながのけん@" ; Nagano
+Naraken: db "ならけん@" ; Naraken
+Niigata: db "にいがたけん@" ; Niigata
+Hyogo: db "ひょうごけん@" ; Hyogo
+Hiroshima: db "ひろしまけん@" ; Hiroshima
+Fukui: db "ふくいけん@" ; Fukui
+Fukuoka: db "ふくおかけん@" ; Fukuoka
+Fukushima: db "ふくしまけん@" ; Fukushima
+Hokkaido: db "ほっかいどう@" ; Hokkaido
+Mie: db "みえけん@" ; Mie
+Miyagi: db "みやぎけん@" ; Miyagi
+Miyazaki: db "みやざきけん@" ; Miyazaki
+Yamagata: db "やまがたけん@" ; Yamagata
+Yamaguchi: db "やまぐちけん@" ; Yamaguchi
+Yamanashi: db "やまなしけん@" ; Yamanashi
+Wakayama: db "わかやまけん@" ; Wakayama
+; 48689
+
+Function48689: ; 48689 (12:4689)
+ ld c, 7
+ call DelayFrames
+ ld b, $1
+ call GetMysteryGift_MobileAdapterLayout
+ call ClearBGPalettes
+ hlcoord 0, 0
+ ld b, 4
+ ld c, SCREEN_WIDTH
+ call ClearBox
+ hlcoord 0, 2
+ ld a, $c
+ ld [hl], a
+ ld bc, SCREEN_WIDTH - 1
+ add hl, bc
+ ld [hl], a
+ ld de, MobileProfileString
+ hlcoord 1, 2
+ call PlaceString
+ hlcoord 0, 4
+ ld b, $8
+ ld c, $12
+ call Function48cdc
+ ret
+
+Function486bf: ; 486bf (12:46bf)
+ ld hl, w2DMenuCursorInitY
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .start_at_6
+ ld a, 4
+ ld [hli], a
+ jr .got_init_y
+
+.start_at_6
+ ld a, 6
+ ld [hli], a
+.got_init_y
+ ld a, 1
+ ld [hli], a ; init x
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .check_wd479
+ call Function48725
+ ld a, 4
+ jr nc, .got_num_rows_1
+ ld a, 5
+.got_num_rows_1
+ ld [hli], a
+ jr .got_num_rows_2
+
+.check_wd479
+ ld a, [wd479]
+ bit 1, a
+ jr nz, .four_rows
+ call Function48725
+ jr c, .four_rows
+ ld a, 3
+ ld [hli], a
+ jr .got_num_rows_2
+
+.four_rows
+ ld a, 4
+ ld [hli], a
+.got_num_rows_2
+ ld a, 1
+ ld [hli], a ; num cols
+ ld [hl], $0 ; flags 1
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a ; flags 2
+ ld a, $20
+ ld [hli], a ; cursor offsets
+ ld a, A_BUTTON
+ add D_UP
+ add D_DOWN
+ push af
+ ld a, [wd002]
+ bit 6, a
+ jr z, .got_joypad_mask
+ pop af
+ add B_BUTTON
+ push af
+.got_joypad_mask
+ pop af
+ ld [hli], a
+ ld a, $1
+ ld [hli], a ; cursor y
+ ld [hli], a ; cursor x
+ xor a
+ ld [hli], a ; off char
+ ld [hli], a ; cursor tile
+ ld [hli], a ; cursor tile + 1
+ ret
+
+Function48725: ; 48725 (12:4725)
+; ld a, [wd003]
+; and $f
+; cp $f
+; jr nz, .clear_carry
+; scf
+; ret
+; .clear_carry
+; and a
+; ret
+
+ ld a, [wd003]
+ bit 0, a
+ jr z, .clear_carry
+ bit 1, a
+ jr z, .clear_carry
+ bit 2, a
+ jr z, .clear_carry
+ bit 3, a
+ jr z, .clear_carry
+ scf
+ ret
+
+.clear_carry
+ and a
+ ret
+
+Function4873c: ; 4873c (12:473c)
+ ld hl, w2DMenuCursorInitY
+ ld a, 4
+ ld [hli], a
+ ld a, 12
+ ld [hli], a ; init x
+ ld a, 2
+ ld [hli], a ; num rows
+ ld a, 1
+ ld [hli], a ; num cols
+ ld [hl], $0 ; flags 1
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a ; flags 2
+ ln a, 2, 0
+ ld [hli], a ; cursor offsets
+ ld a, A_BUTTON
+ add B_BUTTON
+ ld [hli], a ; joypad filter
+ ; ld a, [PlayerGender]
+ ; xor 1
+ ; inc a
+ ld a, [PlayerGender]
+ and a
+ jr z, .male
+ ld a, 2
+ jr .okay_gender
+
+.male
+ ld a, 1
+.okay_gender
+ ld [hli], a ; cursor y
+ ld a, $1
+ ld [hli], a ; cursor x
+ xor a
+ ld [hli], a ; off char
+ ld [hli], a ; cursor tile
+ ld [hli], a ; cursor tile + 1
+ ret
+
+Function4876f: ; 4876f (12:476f)
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileDesc_Age
+ call PlaceString
+ ld hl, MenuDataHeader_0x48509
+ call LoadMenuDataHeader
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ call WaitBGMap
+ ld a, [wd473]
+ and a
+ jr z, .asm_487ab
+ cp $64
+ jr z, .asm_487b2
+ hlcoord 12, 5
+ ld [hl], $10
+ hlcoord 12, 7
+ ld [hl], $11
+ jr .asm_487b7
+.asm_487ab
+ hlcoord 12, 5
+ ld [hl], $10
+ jr .asm_487b7
+.asm_487b2
+ hlcoord 12, 7
+ ld [hl], $11
+.asm_487b7
+ hlcoord 11, 6
+ call Function487ec
+ ld c, 10
+ call DelayFrames
+ ld a, [wd473]
+ push af
+.asm_487c6
+ call JoyTextDelay
+ call Function4880e
+ jr nc, .asm_487c6
+ ld a, $1
+ call MenuClickSound
+ pop bc
+ jr nz, .asm_487da
+ ld a, b
+ ld [wd473], a
+.asm_487da
+ ld a, [wd473]
+ call ExitMenu
+ hlcoord 11, 6
+ call Function487ec
+ pop af
+ ld [hInMenu], a
+ jp Function4840c
+
+Function487ec: ; 487ec (12:47ec)
+ push hl
+ ld de, wd473
+ call Function487ff
+ pop hl
+rept 4
+ inc hl
+endr
+ ld de, String_4880d
+ call PlaceString
+ ret
+
+Function487ff: ; 487ff (12:47ff)
+ push hl
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ ld b, PRINTNUM_LEADINGZEROS | 1
+ ld c, 3
+ call PrintNum
+ ret
+; 4880d (12:480d)
+
+String_4880d: ; 4880d
+ db "@"
+; 4880e
+
+Function4880e: ; 4880e (12:480e)
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jp nz, Function488b9
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jp nz, Function488b4
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_48843
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_48838
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .asm_4884f
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_4885f
+ call DelayFrame
+ and a
+ ret
+.asm_48838
+ ld hl, wd473
+ ld a, [hl]
+ and a
+ jr z, .asm_48840
+ dec a
+.asm_48840
+ ld [hl], a
+ jr .asm_4886f
+.asm_48843
+ ld hl, wd473
+ ld a, [hl]
+ cp $64
+ jr nc, .asm_4884c
+ inc a
+.asm_4884c
+ ld [hl], a
+ jr .asm_4886f
+.asm_4884f
+ ld a, [wd473]
+ cp $5b
+ jr c, .asm_48858
+ ld a, $5a
+.asm_48858
+ add $a
+ ld [wd473], a
+ jr .asm_4886f
+.asm_4885f
+ ld a, [wd473]
+ cp $a
+ jr nc, .asm_48868
+ ld a, $a
+.asm_48868
+ sub $a
+ ld [wd473], a
+ jr .asm_4886f
+.asm_4886f
+ ld a, [wd473]
+ and a
+ jr z, .asm_48887
+ cp $64
+ jr z, .asm_48898
+ jr z, .asm_488a7
+ hlcoord 12, 5
+ ld [hl], $10
+ hlcoord 12, 7
+ ld [hl], $11
+ jr .asm_488a7
+.asm_48887
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 5
+ ld [hl], $10
+ jr .asm_488a7
+.asm_48898
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 7
+ ld [hl], $11
+.asm_488a7
+ hlcoord 11, 6
+ call Function487ec
+ call WaitBGMap
+ ld a, $1
+ and a
+ ret
+
+Function488b4: ; 488b4 (12:48b4)
+ ld a, $0
+ and a
+ scf
+ ret
+
+Function488b9: ; 488b9 (12:48b9)
+ ld a, [wd003]
+ set 1, a
+ ld [wd003], a
+ scf
+ ret
+; 488c3 (12:48c3)
+
+MobileUpArrowGFX: ; 488c3
+INCBIN "gfx/mobile/up_arrow.2bpp"
+
+MobileDownArrowGFX: ; 488cb
+INCBIN "gfx/mobile/down_arrow.2bpp"
+
+Function488d3: ; 488d3 (12:48d3)
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileDesc_ZipCode
+ call PlaceString
+ call Function48a3a
+ jp c, Function4840c
+ ld hl, MenuDataHeader_0x4850e
+ call LoadMenuDataHeader
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ ld a, [wd475]
+ and $f
+ ld d, $0
+ hlcoord 11, 10
+ call Function489ea
+ call WaitBGMap
+ ld a, [wd475]
+ ld b, a
+ ld a, [wd476]
+ ld c, a
+ ld a, [wd477]
+ ld d, a
+ ld a, [wd478]
+ ld e, a
+ push de
+ push bc
+ ld d, $0
+ ld b, $0
+
+asm_48922: ; 48922 (12:4922)
+ push bc
+ call JoyTextDelay
+ ld a, [hJoyDown]
+ and a
+ jp z, Function4896e
+ bit 0, a
+ jp nz, Function4896e
+ bit 1, a
+ jp nz, Function4896e
+ ld a, [wd002]
+ and %11001111
+ res 7, a
+ ld [wd002], a
+ pop bc
+ inc b
+ ld a, b
+ cp $5
+ push bc
+ jr c, .asm_4894c
+ pop bc
+ ld b, $4
+ push bc
+.asm_4894c
+ pop bc
+ push bc
+ ld a, b
+ cp $4
+ jr nz, asm_48972
+ ld c, 10
+ call DelayFrames
+ jr asm_48972
+; 4895a (12:495a)
+
+Function4895a: ; 4895a
+ ld a, [hJoyPressed]
+ and a
+ jr z, .asm_48965
+ pop bc
+ ld b, $1
+ push bc
+ jr asm_48972
+
+.asm_48965
+ ld a, [hJoyLast]
+ and a
+ jr z, asm_48972
+
+ pop bc
+ ld b, $1
+ push bc
+
+Function4896e: ; 4896e (12:496e)
+ pop bc
+ ld b, $0
+ push bc
+
+asm_48972: ; 48972 (12:4972)
+ call Function48ab5
+ push af
+ cp $f0
+ jr z, .asm_48994
+ cp $f
+ jr nz, .asm_48988
+ ld a, [wd002]
+ set 7, a
+ and $cf
+ ld [wd002], a
+.asm_48988
+ hlcoord 11, 10
+ ld b, $0
+ ld c, d
+ add hl, bc
+ ld b, $3
+ call Function48c11
+.asm_48994
+ call WaitBGMap
+ pop af
+ pop bc
+ jr nc, asm_48922
+ jr nz, .asm_489b1
+ pop bc
+ ld a, b
+ ld [wd475], a
+ ld a, c
+ ld [wd476], a
+ pop bc
+ ld a, b
+ ld [wd477], a
+ ld a, c
+ ld [wd478], a
+ jr .asm_489c5
+.asm_489b1
+ push af
+ ld a, [wd479]
+ set 0, a
+ ld [wd479], a
+ ld a, [wd003]
+ set 3, a
+ ld [wd003], a
+ pop af
+ pop bc
+ pop bc
+.asm_489c5
+ push af
+ push bc
+ push de
+ push hl
+ ld a, $1
+ call MenuClickSound
+ pop hl
+ pop de
+ pop bc
+ pop af
+ call ExitMenu
+ hlcoord 11, 10
+ call Function489ea
+ hlcoord 11, 9
+ lb bc, 1, 8
+ call ClearBox
+ pop af
+ ld [hInMenu], a
+ jp Function4840c
+
+Function489ea: ; 489ea (12:49ea)
+ push de
+ ld a, [wd475]
+ and $f
+ call Mobile12_Bin2Dec
+ ld a, [wd476]
+ and $f0
+ swap a
+ inc hl
+ call Mobile12_Bin2Dec
+ ld a, [wd476]
+ and $f
+ inc hl
+ call Mobile12_Bin2Dec
+ inc hl
+ ld de, String_48a38
+ call PlaceString
+ ld a, [wd477]
+ and $f0
+ swap a
+ inc hl
+ call Mobile12_Bin2Dec
+ ld a, [wd477]
+ and $f
+ inc hl
+ call Mobile12_Bin2Dec
+ ld a, [wd478]
+ and $f0
+ swap a
+ inc hl
+ call Mobile12_Bin2Dec
+ ld a, [wd478]
+ and $f
+ inc hl
+ call Mobile12_Bin2Dec
+ pop de
+ ret
+; 48a38 (12:4a38)
+
+String_48a38: ; 48a38
+ db "-@"
+; 48a3a
+
+Function48a3a: ; 48a3a (12:4a3a)
+ ld hl, MenuDataHeader_0x48a9c
+ call LoadMenuDataHeader
+ call Function4873c
+ ld a, $a
+ ld [w2DMenuCursorInitY], a
+ ld a, $b
+ ld [w2DMenuCursorInitX], a
+ ld a, $1
+ ld [wMenuCursorY], a
+ hlcoord 10, 8
+ ld b, $4
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 10
+ ld de, String_48aa1
+ call PlaceString
+ call StaticMenuJoypad
+ push af
+ call PlayClickSFX
+ call ExitMenu
+ pop af
+ bit 1, a
+ jp nz, Function48a9a
+ ld a, [wMenuCursorY]
+ cp $1
+ jr z, .asm_48a98
+ ld a, [wd003]
+ set 3, a
+ ld [wd003], a
+ ld a, [wd479]
+ res 0, a
+ ld [wd479], a
+ xor a
+ ld bc, $4
+ ld hl, wd475
+ call ByteFill
+ jr Function48a9a
+.asm_48a98
+ and a
+ ret
+
+Function48a9a: ; 48a9a (12:4a9a)
+ scf
+ ret
+; 48a9c (12:4a9c)
+
+MenuDataHeader_0x48a9c: ; 0x48a9c
+ db $40 ; flags
+ db 08, 10 ; start coords
+ db 13, 19 ; end coord
+
+String_48aa1: ; 48aa1
+ db "Tell Now"
+ next "Tell Later@"
+; 48ab5
+
+
+Function48ab5: ; 48ab5 (12:4ab5)
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jp nz, Function48c0f
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jp nz, Function48c0d
+ ld a, d
+ and a
+ jr z, .asm_48adf
+ cp $1
+ jr z, .asm_48ae7
+ cp $2
+ jr z, .asm_48af1
+ cp $3
+ jr z, .asm_48af9
+ cp $4
+ jr z, .asm_48b03
+ cp $5
+ jr z, .asm_48b0b
+ cp $6
+ jr .asm_48b15
+.asm_48adf
+ ld hl, wd475
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48ae7
+ ld hl, wd476
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48af1
+ ld hl, wd476
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48af9
+ ld hl, wd477
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48b03
+ ld hl, wd477
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48b0b
+ ld hl, wd478
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48b15
+ ld hl, wd478
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48b1d
+ push hl
+ push af
+ ld e, $0
+ hlcoord 11, 10
+ ld a, d
+.asm_48b25
+ and a
+ jr z, .asm_48b2c
+ inc e
+ dec a
+ jr .asm_48b25
+.asm_48b2c
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_48b8d
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_48b55
+ ld a, [hl]
+ and D_LEFT
+ jp nz, Function48bd7
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_48b9d
+ hlcoord 11, 10
+ call Function489ea
+ ld a, [wd002]
+ bit 7, a
+ jr nz, .asm_48b51
+.asm_48b51
+ pop bc
+ pop bc
+ and a
+ ret
+.asm_48b55
+ pop af
+ ld b, a
+ and $f
+ and a
+ ld a, b
+ jr nz, .asm_48b61
+ and $f0
+ add $a
+.asm_48b61
+ dec a
+.asm_48b62
+ push de
+ push af
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop af
+ pop de
+ hlcoord 11, 10
+ ld b, a
+ ld a, d
+ cp $3
+ jr c, .asm_48b7a
+ inc hl
+.asm_48b7a
+ ld a, b
+ pop hl
+ bit 7, a
+ jr z, .asm_48b85
+ call Function48c4d
+ jr .asm_48b88
+.asm_48b85
+ call Function48c5a
+.asm_48b88
+ ld a, $f0
+ jp Function48c00
+.asm_48b8d
+ pop af
+ ld b, a
+ and $f
+ cp $9
+ ld a, b
+ jr c, .asm_48b9a
+ and $f0
+ add $ff
+.asm_48b9a
+ inc a
+ jr .asm_48b62
+.asm_48b9d
+ push de
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop de
+ ld a, d
+ cp $6
+ jr nc, .asm_48baf
+ inc d
+.asm_48baf
+ pop af
+ pop hl
+ ld b, a
+ ld a, d
+ cp $6
+ ld a, b
+ jr z, .asm_48bc4
+ bit 7, a
+ jr nz, .asm_48bc4
+ inc hl
+ ld a, [hl]
+ swap a
+ and $f
+ jr asm_48bc7
+.asm_48bc4
+ ld a, [hl]
+ and $f
+
+asm_48bc7: ; 48bc7 (12:4bc7)
+ hlcoord 11, 10
+ push af
+ ld a, d
+ cp $3
+ pop bc
+ ld a, b
+ jr c, .asm_48bd3
+ inc hl
+.asm_48bd3
+ ld a, $f
+ jr Function48c00
+
+Function48bd7: ; 48bd7 (12:4bd7)
+ push de
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop de
+ ld a, d
+ and a
+ pop af
+ pop hl
+ ld b, a
+ ld a, d
+ and a
+ ld a, b
+ jr z, .asm_48bf3
+ bit 7, a
+ jr z, .asm_48bf8
+ dec d
+ dec hl
+.asm_48bf3
+ ld a, [hl]
+ and $f
+ jr asm_48bc7
+.asm_48bf8
+ dec d
+ ld a, [hl]
+ swap a
+ and $f
+ jr asm_48bc7
+
+Function48c00: ; 48c00 (12:4c00)
+ push af
+ hlcoord 11, 10
+ call Function489ea
+ ld a, $1
+ and a
+ pop bc
+ ld a, b
+ ret
+
+Function48c0d: ; 48c0d (12:4c0d)
+ xor a
+ and a
+
+Function48c0f: ; 48c0f (12:4c0f)
+ scf
+ ret
+
+Function48c11: ; 48c11 (12:4c11)
+ ld a, [wd002]
+ bit 7, a
+ jr z, .asm_48c20
+ ld a, d
+ cp $3
+ jr c, .asm_48c1e
+ inc hl
+.asm_48c1e
+ ld [hl], $7f
+.asm_48c20
+ ld a, [wd002]
+ swap a
+ and $3
+ inc a
+ cp b
+ jr nz, .asm_48c40
+ ld a, [wd002]
+ bit 7, a
+ jr z, .asm_48c3a
+ res 7, a
+ ld [wd002], a
+ xor a
+ jr .asm_48c40
+.asm_48c3a
+ set 7, a
+ ld [wd002], a
+ xor a
+.asm_48c40
+ swap a
+ ld b, a
+ ld a, [wd002]
+ and $cf
+ or b
+ ld [wd002], a
+ ret
+
+Function48c4d: ; 48c4d (12:4c4d)
+ swap a
+ and $f0
+ push af
+ ld a, [hl]
+ and $f
+ ld [hl], a
+ pop af
+ or [hl]
+ ld [hl], a
+ ret
+
+Function48c5a: ; 48c5a (12:4c5a)
+ push af
+ ld a, [hl]
+ and $f0
+ ld [hl], a
+ pop af
+ or [hl]
+ ld [hl], a
+ ret
+
+Function48c63: ; 48c63
+ ld a, "@"
+ ld [de], a
+ ld a, c
+ cp $30
+ jr nc, .asm_48c8c
+ and a
+ jr z, .asm_48c8c
+ dec c
+ push de
+ ld h, d
+ ld l, e
+ ld a, "@"
+ ld b, 7
+.asm_48c76
+ ld [hli], a
+ dec b
+ jr nz, .asm_48c76
+ ld hl, Prefectures
+ ld a, c
+ call GetNthString
+.asm_48c81
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ cp "@"
+ jr nz, .asm_48c81
+ and a
+ pop de
+ ret
+
+.asm_48c8c
+ scf
+ ret
+; 48c8e
+
+Function48c8e: ; 48c8e
+; unreferenced
+ ld hl, $d02a
+ ld d, h
+ ld e, l
+ callba Function48c63
+ hlcoord 10, 7
+ call PlaceString
+ call WaitBGMap
+ ret
+; 48ca3
+
+Function48ca3: ; 48ca3
+ push af
+ push bc
+ push de
+ push hl
+ ld b, 0
+ ld c, 0
+ ld d, 0
+.asm_48cad
+ cp 100
+ jr c, .asm_48cb6
+ sub 100
+ inc b
+ jr .asm_48cad
+
+.asm_48cb6
+ cp 10
+ jr c, .asm_48cbf
+ sub 10
+ inc c
+ jr .asm_48cb6
+
+.asm_48cbf
+ cp 1
+ jr c, .asm_48cc7
+ dec a
+ inc d
+ jr .asm_48cbf
+
+.asm_48cc7
+ ld a, b
+ call Mobile12_Bin2Dec
+ inc hl
+ ld a, c
+ call Mobile12_Bin2Dec
+ inc hl
+ ld a, d
+ call Mobile12_Bin2Dec
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; 48cda
+
+Function48cda: ; 48cda (12:4cda)
+ ld h, d
+ ld l, e
+
+Function48cdc: ; 48cdc (12:4cdc)
+ push bc
+ push hl
+ call Function48cfd
+ pop hl
+ pop bc
+ ld de, AttrMap - TileMap
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ ld a, $0
+.asm_48ced
+ push bc
+ push hl
+.asm_48cef
+ ld [hli], a
+ dec c
+ jr nz, .asm_48cef
+ pop hl
+ ld de, $14
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_48ced
+ ret
+
+Function48cfd: ; 48cfd (12:4cfd)
+ push hl
+ ld a, $4
+ ld [hli], a
+ inc a
+ call Function48d2a
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, $14
+ add hl, de
+.asm_48d0c
+ push hl
+ ld a, $7
+ ld [hli], a
+ ld a, $7f
+ call Function48d2a
+ ld [hl], $8
+ pop hl
+ ld de, $14
+ add hl, de
+ dec b
+ jr nz, .asm_48d0c
+ ld a, $9
+ ld [hli], a
+ ld a, $a
+ call Function48d2a
+ ld [hl], $b
+ ret
+
+Function48d2a: ; 48d2a (12:4d2a)
+ ld d, c
+.asm_48d2b
+ ld [hli], a
+ dec d
+ jr nz, .asm_48d2b
+ ret
+
+Function48d30: ; 48d30 (12:4d30)
+ ld hl, wd475
+ call Function48d4a
+ ld hl, wd477
+ call Function48d4a
+ ret
+
+Function48d3d: ; 48d3d (12:4d3d)
+ ld hl, wd475
+ call Function48d94
+ ld hl, wd477
+ call Function48d94
+ ret
+
+Function48d4a: ; 48d4a (12:4d4a)
+ inc hl
+ ld a, [hl]
+ ld b, a
+ and $f
+ ld c, a
+ srl b
+ srl b
+ srl b
+ srl b
+ push bc
+ ld c, 10
+ ld a, b
+ call SimpleMultiply
+ pop bc
+ add c
+ ld [hld], a
+ xor a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ ld a, [hl]
+ srl a
+ srl a
+ srl a
+ srl a
+ ld c, 10
+ call SimpleMultiply
+ ld b, a
+ ld a, [hli]
+ and $f
+ add b
+ ld [hMultiplicand + 2], a
+ ld a, 100
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hProduct + 2]
+ ld b, a
+ ld a, [hProduct + 3]
+ ld c, a
+ ld e, [hl]
+ add e
+ ld c, a
+ ld a, b
+ adc $0
+ ld b, a
+ ld a, c
+ ld [hld], a
+ ld [hl], b
+ ret
+
+Function48d94: ; 48d94 (12:4d94)
+ xor a
+ ld [hDividend + 0], a
+ ld [hDividend + 1], a
+ ld a, [hli]
+ ld [hDividend + 0], a
+ ld a, [hl]
+ ld [hDividend + 1], a
+ ld a, 100
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+ ld a, [hRemainder]
+ ld c, 10
+ call SimpleDivide
+ sla b
+ sla b
+ sla b
+ sla b
+ or b
+ ld [hld], a
+ ld a, [hQuotient + 2]
+ ld c, 10
+ call SimpleDivide
+ sla b
+ sla b
+ sla b
+ sla b
+ or b
+ ld [hl], a
+ ret
--- /dev/null
+++ b/mobile/mobile_12_2.asm
@@ -1,0 +1,936 @@
+MobileCheckOwnMonAnywhere: ; 4a843
+; Like CheckOwnMonAnywhere, but only check for species.
+; OT/ID don't matter.
+
+ ld a, [PartyCount]
+ and a
+ ret z
+
+ ld d, a
+ ld e, 0
+ ld hl, PartyMon1Species
+ ld bc, PartyMonOT
+.asm_4a851
+ call .CheckMatch
+ ret c
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ call .CopyName
+ dec d
+ jr nz, .asm_4a851
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld a, [sBoxCount]
+ and a
+ jr z, .asm_4a888
+ ld d, a
+ ld hl, sBoxMon1Species
+ ld bc, sBoxMonOT
+.asm_4a873
+ call .CheckMatch
+ jr nc, .asm_4a87c
+ call CloseSRAM
+ ret
+
+.asm_4a87c
+ push bc
+ ld bc, BOXMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ call .CopyName
+ dec d
+ jr nz, .asm_4a873
+
+.asm_4a888
+ call CloseSRAM
+ ld c, 0
+.asm_4a88d
+ ld a, [wCurBox]
+ and $f
+ cp c
+ jr z, .asm_4a8d1
+ ld hl, .BoxAddrs
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ call GetSRAMBank
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ and a
+ jr z, .asm_4a8d1
+ push bc
+ push hl
+ ld de, sBoxMons - sBoxCount
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ push de
+ ld de, sBoxMonOT - sBoxCount
+ add hl, de
+ ld b, h
+ ld c, l
+ pop hl
+ ld d, a
+.asm_4a8ba
+ call .CheckMatch
+ jr nc, .asm_4a8c4
+ pop bc
+ call CloseSRAM
+ ret
+
+.asm_4a8c4
+ push bc
+ ld bc, BOXMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ call .CopyName
+ dec d
+ jr nz, .asm_4a8ba
+ pop bc
+
+.asm_4a8d1
+ inc c
+ ld a, c
+ cp NUM_BOXES
+ jr c, .asm_4a88d
+ call CloseSRAM
+ and a
+ ret
+; 4a8dc
+
+.CheckMatch: ; 4a8dc
+ push bc
+ push hl
+ push de
+ ld d, b
+ ld e, c
+ ld a, [ScriptVar]
+ ld b, [hl]
+ cp b
+ jr nz, .no_match
+ jr .match
+
+.no_match
+ pop de
+ pop hl
+ pop bc
+ and a
+ ret
+
+.match
+ pop de
+ pop hl
+ pop bc
+ scf
+ ret
+; 4a8f4
+
+.BoxAddrs: ; 4a8f4
+ dba sBox1
+ dba sBox2
+ dba sBox3
+ dba sBox4
+ dba sBox5
+ dba sBox6
+ dba sBox7
+ dba sBox8
+ dba sBox9
+ dba sBox10
+ dba sBox11
+ dba sBox12
+ dba sBox13
+ dba sBox14
+; 4a91e
+
+.CopyName: ; 4a91e
+ push hl
+ ld hl, NAME_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 4a927
+
+FindItemInPCOrBag: ; 4a927
+ ld a, [ScriptVar]
+ ld [CurItem], a
+ ld hl, PCItems
+ call CheckItem
+ jr c, .found
+
+ ld a, [ScriptVar]
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ jr c, .found
+
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.found
+ ld a, 1
+ ld [ScriptVar], a
+ ret
+; 4a94e
+
+Function4a94e: ; 4a94e
+ call FadeToMenu
+ ld a, -1
+ ld hl, wd002
+ ld bc, 3
+ call ByteFill
+ xor a
+ ld [wd018], a
+ ld [wd019], a
+ ld b, SCGB_PACKPALS
+ call GetSGBLayout
+ call SetPalettes
+ call Function4aa22
+ jr c, .asm_4a985
+ jr z, .asm_4a9a1
+ jr .asm_4a97b
+
+.asm_4a974
+ call Function4aa25
+ jr c, .asm_4a985
+ jr z, .asm_4a9a1
+
+.asm_4a97b
+ call Function4ac58
+ ld hl, wd019
+ res 1, [hl]
+ jr .asm_4a974
+
+.asm_4a985
+ ld a, [wd018]
+ and a
+ jr nz, .asm_4a990
+ call Function4aba8
+ jr c, .asm_4a974
+
+.asm_4a990
+ call CloseSubmenu
+ ld hl, wd002
+ ld a, -1
+ ld bc, 3
+ call ByteFill
+ scf
+ jr .asm_4a9af
+
+.asm_4a9a1
+ call Function4a9c3
+ jr c, .asm_4a9b0
+ call Function4a9d7
+ jr c, .asm_4a974
+ call CloseSubmenu
+ and a
+
+.asm_4a9af
+ ret
+
+.asm_4a9b0
+ ld de, SFX_WRONG
+ call PlaySFX
+ ld hl, UnknownText_0x4a9be
+ call PrintText
+ jr .asm_4a974
+; 4a9be
+
+UnknownText_0x4a9be: ; 0x4a9be
+ ; Pick three #MON for battle.
+ text_jump UnknownText_0x1c51d7
+ db "@"
+; 0x4a9c3
+
+Function4a9c3: ; 4a9c3
+ ld hl, wd002
+ ld a, $ff
+ cp [hl]
+ jr z, .asm_4a9d5
+ inc hl
+ cp [hl]
+ jr z, .asm_4a9d5
+ inc hl
+ cp [hl]
+ jr z, .asm_4a9d5
+ and a
+ ret
+
+.asm_4a9d5
+ scf
+ ret
+; 4a9d7
+
+Function4a9d7: ; 4a9d7
+ ld a, [wd002]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, EndFlypoint
+ ld bc, 6
+ call CopyBytes
+ ld a, [wd003]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, wd00c
+ ld bc, 6
+ call CopyBytes
+ ld a, [wd004]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, wd012
+ ld bc, 6
+ call CopyBytes
+ ld hl, UnknownText_0x4aa1d
+ call PrintText
+ call YesNoBox
+ ret
+; 4aa1d
+
+UnknownText_0x4aa1d: ; 0x4aa1d
+ ; , @ and @ . Use these three?
+ text_jump UnknownText_0x1c51f4
+ db "@"
+; 0x4aa22
+
+Function4aa22: ; 4aa22
+ call ClearBGPalettes
+
+Function4aa25: ; 4aa25
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ call Function4aad3
+
+Function4aa34: ; 4aa34
+ ld a, PARTYMENUACTION_MOBILE
+ ld [PartyMenuActionText], a
+ callba WritePartyMenuTilemap
+ xor a
+ ld [PartyMenuActionText], a
+ callba PrintPartyMenuText
+ call Function4aab6
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+ call Function4ab1a
+ jr z, .asm_4aa66
+ push af
+ call Function4aafb
+ jr c, .asm_4aa67
+ call Function4ab06
+ jr c, .asm_4aa67
+ pop af
+
+.asm_4aa66
+ ret
+
+.asm_4aa67
+ ld hl, wd019
+ set 1, [hl]
+ pop af
+ ret
+; 4aa6e
+
+Function4aa6e: ; 4aa6e
+ pop af
+ ld de, SFX_WRONG
+ call PlaySFX
+ call WaitSFX
+ jr Function4aa34
+; 4aa7a
+
+Function4aa7a: ; 4aa7a
+ ld hl, wd002
+ ld d, $3
+.loop
+ ld e, PARTY_LENGTH
+ ld a, [hli]
+ push de
+ push hl
+ cp -1
+ jr z, .done
+ ld hl, wSpriteAnimationStructs
+ inc a
+ ld d, a
+.inner_loop
+ ld a, [hl]
+ and a
+ jr z, .next
+ cp d
+ jr z, .same_as_d
+ jr .next
+
+ ld a, $3
+ jr .proceed
+
+.same_as_d
+ ld a, $2
+
+.proceed
+ push hl
+ ld c, l
+ ld b, h
+ ld hl, $2
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.next
+ ld bc, $10
+ add hl, bc
+ dec e
+ jr nz, .inner_loop
+ pop hl
+ pop de
+ dec d
+ jr nz, .loop
+ jr .finished
+
+.done
+ pop hl
+ pop de
+
+.finished
+ ret
+; 4aab6
+
+Function4aab6: ; 4aab6
+ ld hl, wd002
+ ld d, $3
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ push de
+ push hl
+ hlcoord 0, 1
+ ld bc, $28
+ call AddNTimes
+ ld [hl], $ec
+ pop hl
+ pop de
+ dec d
+ jr nz, .loop
+
+.done
+ ret
+; 4aad3
+
+Function4aad3: ; 4aad3
+ ld hl, PartyCount
+ ld a, [hli]
+ and a
+ ret z ; Nothing in your party
+
+ ld c, a
+ xor a
+ ld [hObjectStructIndexBuffer], a
+.loop
+ push bc
+ push hl
+ ld e, 0
+ callba LoadMenuMonIcon
+ ld a, [hObjectStructIndexBuffer]
+ inc a
+ ld [hObjectStructIndexBuffer], a
+ pop hl
+ pop bc
+ dec c
+ jr nz, .loop
+
+ call Function4aa7a
+ callba PlaySpriteAnimations
+ ret
+; 4aafb
+
+Function4aafb: ; 4aafb
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ and a
+ ret
+
+.egg
+ scf
+ ret
+; 4ab06
+
+Function4ab06: ; 4ab06
+ ld a, [CurPartyMon]
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1HP
+ call AddNTimes
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ or b
+ jr nz, .NotFainted
+ scf
+
+.NotFainted:
+ ret
+; 4ab1a
+
+Function4ab1a: ; 4ab1a
+.asm_4ab1a
+ ld a, $fb
+ ld [wMenuJoypadFilter], a
+ ld a, $26
+ ld [w2DMenuCursorOffsets], a
+ ld a, $2
+ ld [w2DMenuNumCols], a
+ call Function4adf7
+ call StaticMenuJoypad
+ call Function4abc3
+ jr c, .asm_4ab1a
+ push af
+ call Function4ab99
+ call nc, PlaceHollowCursor
+ pop af
+ bit 1, a
+ jr nz, .asm_4ab6d
+ ld a, [PartyCount]
+ inc a
+ ld b, a
+ ld a, [wMenuCursorY]
+ ld [wPartyMenuCursor], a
+ cp b
+ jr z, .asm_4ab7e
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, $0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ ld a, $1
+ and a
+ ret
+
+.asm_4ab6d
+ ld a, [wMenuCursorY]
+ ld [wPartyMenuCursor], a
+.asm_4ab73
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ scf
+ ret
+
+.asm_4ab7e
+ ld a, $1
+ ld [wd018], a
+ ld a, [wMenuCursorX]
+ cp $2
+ jr z, .asm_4ab73
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ xor a
+ ld [wd018], a
+ and a
+ ret
+; 4ab99
+
+Function4ab99: ; 4ab99
+ bit 1, a
+ jr z, .asm_4aba6
+ ld a, [wd002]
+ cp $ff
+ jr z, .asm_4aba6
+ scf
+ ret
+
+.asm_4aba6
+ and a
+ ret
+; 4aba8
+
+Function4aba8: ; 4aba8
+ ld hl, wd004
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ dec hl
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ dec hl
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_4abbe
+ and a
+ ret
+
+.asm_4abbe
+ ld a, $ff
+ ld [hl], a
+ scf
+ ret
+; 4abc3
+
+Function4abc3: ; 4abc3
+ bit 3, a
+ jr z, .asm_4abd5
+ ld a, [PartyCount]
+ inc a
+ ld [wMenuCursorY], a
+ ld a, $1
+ ld [wMenuCursorX], a
+ jr .asm_4ac29
+
+.asm_4abd5
+ bit 6, a
+ jr z, .asm_4abeb
+ ld a, [wMenuCursorY]
+ ld [wMenuCursorY], a
+ and a
+ jr nz, .asm_4ac29
+ ld a, [PartyCount]
+ inc a
+ ld [wMenuCursorY], a
+ jr .asm_4ac29
+
+.asm_4abeb
+ bit 7, a
+ jr z, .asm_4ac08
+ ld a, [wMenuCursorY]
+ ld [wMenuCursorY], a
+ ld a, [PartyCount]
+ inc a
+ inc a
+ ld b, a
+ ld a, [wMenuCursorY]
+ cp b
+ jr nz, .asm_4ac29
+ ld a, $1
+ ld [wMenuCursorY], a
+ jr .asm_4ac29
+
+.asm_4ac08
+ bit 4, a
+ jr nz, .asm_4ac10
+ bit 5, a
+ jr z, .asm_4ac56
+
+.asm_4ac10
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [PartyCount]
+ inc a
+ cp b
+ jr nz, .asm_4ac29
+ ld a, [wMenuCursorX]
+ cp $1
+ jr z, .asm_4ac26
+ ld a, $1
+ jr .asm_4ac29
+
+.asm_4ac26
+ ld [wMenuCursorX], a
+
+.asm_4ac29
+ hlcoord 0, 1
+ lb bc, 13, 1
+ call ClearBox
+ call Function4aab6
+ ld a, [PartyCount]
+ hlcoord 6, 1
+.asm_4ac3b
+ ld bc, $28
+ add hl, bc
+ dec a
+ jr nz, .asm_4ac3b
+ ld [hl], $7f
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [PartyCount]
+ inc a
+ cp b
+ jr z, .asm_4ac54
+ ld a, $1
+ ld [wMenuCursorX], a
+
+.asm_4ac54
+ scf
+ ret
+
+.asm_4ac56
+ and a
+ ret
+; 4ac58
+
+Function4ac58: ; 4ac58
+ lb bc, 2, 18
+ hlcoord 1, 15
+ call ClearBox
+ callba FreezeMonIcons
+ ld hl, MenuDataHeader_0x4aca2
+ call LoadMenuDataHeader
+ ld hl, wd019
+ bit 1, [hl]
+ jr z, .asm_4ac89
+ hlcoord 11, 13
+ ld b, $3
+ ld c, $7
+ call TextBox
+ hlcoord 13, 14
+ ld de, String_4ada7
+ call PlaceString
+ jr .asm_4ac96
+
+.asm_4ac89
+ hlcoord 11, 9
+ ld b, $7
+ ld c, $7
+ call TextBox
+ call Function4ad68
+
+.asm_4ac96
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function4acaa
+ call ExitMenu
+ and a
+ ret
+; 4aca2
+
+MenuDataHeader_0x4aca2: ; 0x4aca2
+ db $40 ; flags
+ db 09, 11 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 1 ; default option
+; 0x4acaa
+
+Function4acaa: ; 4acaa
+.asm_4acaa
+ ld a, $a0
+ ld [wMenuData2Flags], a
+ ld a, [wd019]
+ bit 1, a
+ jr z, .asm_4acc2
+ ld a, $2
+ ld [wMenuData2Items], a
+ ld a, $c
+ ld [wMenuBorderTopCoord], a
+ jr .asm_4accc
+
+.asm_4acc2
+ ld a, $4
+ ld [wMenuData2Items], a
+ ld a, $8
+ ld [wMenuBorderTopCoord], a
+
+.asm_4accc
+ ld a, $b
+ ld [wMenuBorderLeftCoord], a
+ ld a, $1
+ ld [wMenuCursorBuffer], a
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 6, [hl]
+ call StaticMenuJoypad
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ ld a, [hJoyPressed]
+ bit 0, a
+ jr nz, .asm_4acf4
+ bit 1, a
+ jr nz, .asm_4acf3
+ jr .asm_4acaa
+
+.asm_4acf3
+ ret
+
+.asm_4acf4
+ ld a, [wd019]
+ bit 1, a
+ jr nz, .asm_4ad0e
+ ld a, [wMenuCursorY]
+ cp $1
+ jr z, Function4ad17
+ cp $2
+ jp z, Function4ad56
+ cp $3
+ jp z, Function4ad60
+ jr .asm_4acf3
+
+.asm_4ad0e
+ ld a, [wMenuCursorY]
+ cp $1
+ jr z, Function4ad56
+ jr .asm_4acf3
+
+Function4ad17: ; 4ad17
+ call Function4adb2
+ jr z, .asm_4ad4a
+ ld hl, wd002
+ ld a, $ff
+ cp [hl]
+ jr z, .asm_4ad39
+ inc hl
+ cp [hl]
+ jr z, .asm_4ad39
+ inc hl
+ cp [hl]
+ jr z, .asm_4ad39
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ ld hl, UnknownText_0x4ad51
+ call PrintText
+ ret
+
+.asm_4ad39
+ ld a, [CurPartyMon]
+ ld [hl], a
+ call Function4a9c3
+ ret c
+ ld a, [wd019]
+ set 0, a
+ ld [wd019], a
+ ret
+
+.asm_4ad4a
+ ld a, $ff
+ ld [hl], a
+ call Function4adc2
+ ret
+
+UnknownText_0x4ad51: ; 0x4ad51
+ ; Only three #MON may enter.
+ text_jump UnknownText_0x1c521c
+ db "@"
+; 0x4ad56
+
+Function4ad56: ; 4ad56
+ callba OpenPartyStats
+ call WaitBGMap2
+ ret
+; 4ad60
+
+Function4ad60: ; 4ad60
+ callba ManagePokemonMoves
+ ret
+; 4ad67
+
+Function4ad67: ; 4ad67
+ ret
+; 4ad68
+
+Function4ad68: ; 4ad68
+ hlcoord 13, 12
+ ld de, String_4ad88
+ call PlaceString
+ call Function4adb2
+ jr c, .asm_4ad7e
+ hlcoord 13, 10
+ ld de, String_4ada0
+ jr .asm_4ad84
+
+.asm_4ad7e
+ hlcoord 13, 10
+ ld de, String_4ad9a
+
+.asm_4ad84
+ call PlaceString
+ ret
+; 4ad88
+
+String_4ad88: ; 4ad88
+ db "つよさをみる"
+ next "つかえるわざ"
+ next "もどる@"
+; 4ad9a
+
+String_4ad9a: ; 4ad9a
+ db "さんかする@"
+; 4ada0
+
+String_4ada0: ; 4ada0
+ db "さんかしない@"
+; 4ada7
+
+String_4ada7: ; 4ada7
+ db "つよさをみる"
+ next "もどる@" ; BACK
+; 4adb2
+
+Function4adb2: ; 4adb2
+ ld hl, wd002
+ ld a, [CurPartyMon]
+ cp [hl]
+ ret z
+ inc hl
+ cp [hl]
+ ret z
+ inc hl
+ cp [hl]
+ ret z
+ scf
+ ret
+; 4adc2
+
+Function4adc2: ; 4adc2
+ ld a, [wd002]
+ cp $ff
+ jr nz, .skip
+ ld a, [wd003]
+ cp $ff
+ jr nz, .skip2
+ ld a, [wd004]
+ ld [wd002], a
+ ld a, $ff
+ ld [wd004], a
+ jr .skip
+
+.skip2
+ ld [wd002], a
+ ld a, $ff
+ ld [wd003], a
+
+.skip
+ ld a, [wd003]
+ cp $ff
+ ret nz
+ ld b, a
+ ld a, [wd004]
+ ld [wd003], a
+ ld a, b
+ ld [wd004], a
+ ret
+; 4adf7
+
+Function4adf7: ; 4adf7
+ ld a, [wd019]
+ bit 0, a
+ ret z
+ ld a, [PartyCount]
+ inc a
+ ld [wMenuCursorY], a
+ ld a, $1
+ ld [wMenuCursorX], a
+ ld a, [wd019]
+ res 0, a
+ ld [wd019], a
+ ret
+; 4ae12
--- /dev/null
+++ b/mobile/mobile_22.asm
@@ -1,0 +1,4450 @@
+String_89116:
+ db "-----@"
+
+String_8911c: ; 8911c
+ db "でんわばんごうが ただしく" ; Phone number is not
+ next "はいって いません!@" ; entered correctly!
+; 89135
+
+String_89135: ; 89135
+ db "データが かわって いますが" ; The data has changed.
+ next "かきかえないで やめますか?@" ; Quit anyway?
+; 89153
+
+String_89153: ; 89153
+ db "メッセージは ありません@" ; No message
+; 89160
+
+OpenSRAMBank4: ; 89160
+ push af
+ ld a, $4
+ call GetSRAMBank
+ pop af
+ ret
+; 89168
+
+
+Function89168: ; 89168 (22:5168)
+ ld hl, GameTimerPause
+ set 7, [hl]
+ ret
+
+Function8916e: ; 8916e (22:516e)
+ ld hl, GameTimerPause
+ res 7, [hl]
+ ret
+
+Function89174: ; 89174 (22:5174)
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ ret
+
+Function8917a: ; 8917a (22:517a)
+ ld hl, wd002
+ ld bc, $32
+ xor a
+ call ByteFill
+ ret
+
+Function89185: ; 89185 (22:5185)
+; strcmp(hl, de, c)
+; Compares c bytes starting at de and hl and incrementing together until a mismatch is found.
+; Preserves hl and de.
+ push de
+ push hl
+.loop
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .done
+ inc hl
+ dec c
+ jr nz, .loop
+.done
+ pop hl
+ pop de
+ ret
+
+Function89193: ; 89193
+; copy(hl, de, 4)
+; Copies c bytes from hl to de.
+; Preserves hl and de.
+ push de
+ push hl
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop
+ pop hl
+ pop de
+ ret
+; 8919e
+
+
+Function8919e: ; 8919e (22:519e)
+; Searches for the c'th string starting at de. Returns the pointer in de.
+ ld a, c
+ and a
+ ret z
+.loop
+ ld a, [de]
+ inc de
+ cp "@"
+ jr nz, .loop
+ dec c
+ jr nz, .loop
+ ret
+
+Function891ab: ; 891ab
+ call Mobile22_SetBGMapMode1
+ callba ReloadMapPart
+ call Mobile22_SetBGMapMode0
+ ret
+; 891b8
+
+Function891b8: ; 891b8
+ call Mobile22_SetBGMapMode0
+ hlcoord 0, 0
+ ld a, " "
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call DelayFrame
+ ret
+; 891ca
+
+
+Function891ca: ; 891ca (22:51ca)
+ push bc
+ call Function891b8
+ call WaitBGMap
+ pop bc
+ ret
+
+Function891d3: ; 891d3 (22:51d3)
+ push bc
+ call Function891ca
+ ld c, $10
+ call DelayFrames
+ pop bc
+ ret
+
+Function891de: ; 891de
+ call Mobile22_SetBGMapMode0
+ call ClearPalettes
+ hlcoord 0, 0, AttrMap
+ ld a, $7
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ hlcoord 0, 0
+ ld a, " "
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call Function891ab
+ ret
+; 891fe
+
+Function891fe: ; 891fe
+ push bc
+ call Function891de
+ ld c, $10
+ call DelayFrames
+ pop bc
+ ret
+; 89209
+
+Function89209: ; 89209
+ ld a, 1
+ ld [wSpriteUpdatesEnabled], a
+ ret
+; 8920f
+
+Function8920f: ; 8920f
+ ld a, 0
+ ld [wSpriteUpdatesEnabled], a
+ ret
+; 89215
+
+Function89215: ; 89215
+ push hl
+ push bc
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ ld [hl], a
+ pop bc
+ pop hl
+ ret
+; 8921f
+
+
+Function8921f: ; 8921f (22:521f)
+ push de
+ ld de, SCREEN_WIDTH
+ add hl, de
+ inc hl
+ ld a, $7f
+.loop
+ push bc
+ push hl
+.asm_89229
+ ld [hli], a
+ dec c
+ jr nz, .asm_89229
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .loop
+ pop de
+ ret
+
+Mobile22_ButtonSound: ; 89235 (22:5235)
+ call JoyWaitAorB
+ call PlayClickSFX
+ ret
+
+Mobile22_SetBGMapMode0: ; 8923c
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 89240
+
+Mobile22_SetBGMapMode1: ; 89240
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 89245
+
+
+Function89245: ; 89245 (22:5245)
+ callba TryLoadSaveFile
+ ret c
+ callba _LoadData
+ and a
+ ret
+
+Function89254: ; 89254 (22:5254)
+ ld bc, $d07
+ jr Function89261
+
+Function89259: ; 89259
+ ld bc, $0e07
+ jr Function89261
+
+Function8925e: ; 8925e
+ ld bc, $0e0c
+
+Function89261: ; 89261
+ push af
+ push bc
+ ld hl, MenuDataHeader_0x892a3
+ call CopyMenuDataHeader
+ pop bc
+ ld hl, wMenuBorderTopCoord
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld a, c
+ add $4
+ ld [hli], a
+ ld a, b
+ add $5
+ ld [hl], a
+ pop af
+ ld [wMenuCursorBuffer], a
+ call PushWindow
+ call Mobile22_SetBGMapMode0
+ call Function89209
+ call VerticalMenu
+ push af
+ ld c, $a
+ call DelayFrames
+ call CloseWindow
+ call Function8920f
+ pop af
+ jr c, .done
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .done
+ and a
+ ret
+
+.done
+ scf
+ ret
+; 892a3
+
+MenuDataHeader_0x892a3: ; 0x892a3
+ db $40 ; flags
+ db 05, 10 ; start coords
+ db 09, 15 ; end coords
+ dw MenuData2_0x892ab
+ db 1 ; default option
+; 0x892ab
+
+MenuData2_0x892ab: ; 0x892ab
+ db $c0 ; flags
+ db 2 ; items
+ db "はい@"
+ db "いいえ@"
+; 0x892b4
+
+Function892b4: ; 892b4 (22:52b4)
+ call Function8931b
+
+Function892b7: ; 892b7
+ ld d, b
+ ld e, c
+ ld hl, 0
+ add hl, bc
+ ld a, "@"
+ ld bc, 6
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld hl, 6
+ add hl, bc
+ ld a, "@"
+ ld bc, 6
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld hl, 12
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld hl, 14
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ld hl, 16
+ add hl, bc
+ ld [hl], a
+ ld hl, 17
+ add hl, bc
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld e, 6
+ ld hl, 25
+ add hl, bc
+.loop
+ ld a, -1
+ ld [hli], a
+ ld a, -1
+ ld [hli], a
+ dec e
+ jr nz, .loop
+ ret
+; 89305
+
+
+Function89305: ; 89305 (22:5305)
+ xor a
+ ld [MenuSelection], a
+ ld c, 40
+.loop
+ ld a, [MenuSelection]
+ inc a
+ ld [MenuSelection], a
+ push bc
+ call Function892b4
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+Function8931b: ; 8931b
+ push hl
+ ld hl, $a03b ; 4:a03b
+ ld a, [MenuSelection]
+ dec a
+ ld bc, 37
+ call AddNTimes
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 8932d
+
+Function8932d: ; 8932d
+ ld hl, 0
+ add hl, bc
+
+Function89331: ; 89331
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.
+; Sets carry if it does not find a nonspace character.
+; Returns the location of the following character in hl.
+ push bc
+ ld c, NAME_LENGTH_JAPANESE - 1
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .terminator
+ cp " "
+ jr nz, .nonspace
+ dec c
+ jr nz, .loop
+
+.terminator
+ scf
+ jr .done
+
+.nonspace
+ and a
+
+.done
+ pop bc
+ ret
+; 89346
+
+
+Function89346: ; 89346 (22:5346)
+ ld h, b
+ ld l, c
+ jr _incave
+
+Function8934a: ; 8934a
+ ld hl, NAME_LENGTH_JAPANESE
+ add hl, bc
+_incave:
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
+ push bc
+ ld c, NAME_LENGTH_JAPANESE - 1
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .terminator
+ cp " "
+ jr nz, .nonspace
+ dec c
+ jr nz, .loop
+
+.terminator
+ scf
+ jr .done
+
+.nonspace
+ and a
+
+.done
+ pop bc
+ ret
+; 89363
+
+Function89363: ; 89363
+; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl.
+ ld h, b
+ ld l, c
+ jr ._incave
+
+ ld hl, 25
+ add hl, bc
+
+._incave
+ push de
+ ld e, NAME_LENGTH_JAPANESE
+.loop
+ ld a, [hli]
+ cp -1
+ jr nz, .ok
+ ld a, [hli]
+ cp -1
+ jr nz, .ok
+ dec e
+ jr nz, .loop
+ scf
+ jr .done
+
+.ok
+ and a
+
+.done
+ pop de
+ ret
+; 89381
+
+Function89381: ; 89381
+ push bc
+ push de
+ call Function89b45
+ jr c, .ok
+ push hl
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ pop hl
+
+.ok
+ pop de
+ ld c, 8
+ call Function89193
+ pop bc
+ ret
+; 8939a
+
+Function8939a: ; 8939a
+ push bc
+ ld hl, 0
+ add hl, bc
+ ld de, wd002
+ ld c, 6
+ call Function89193
+ pop bc
+ ld hl, 17
+ add hl, bc
+ ld de, wd008
+ call Function89381
+ ret
+; 893b3
+
+
+Function893b3: ; 893b3 (22:53b3)
+ call DisableLCD
+ call ClearSprites
+ call LoadStandardFont
+ call LoadFontsExtra
+ call Function893ef
+ call Function8942b
+ call Function89455
+ call EnableLCD
+ ret
+
+Function893cc: ; 893cc
+ call DisableLCD
+ call ClearSprites
+ call LoadStandardFont
+ call LoadFontsExtra
+ call Function893ef
+ call Function89464
+ call EnableLCD
+ ret
+; 893e2
+
+
+Function893e2: ; 893e2 (22:53e2)
+ call Function89b1e
+ call Function893b3
+ call Function8a5b6
+ call Function8949c
+ ret
+
+Function893ef: ; 893ef
+ ld de, VTiles0
+ ld hl, GFX_8940b
+ ld bc, $20
+ ld a, BANK(GFX_8940b)
+ call FarCopyBytes
+ ret
+; 893fe
+
+Function893fe: ; 893fe
+ call DisableLCD
+ call Function893ef
+ call EnableLCD
+ call DelayFrame
+ ret
+; 8940b
+
+GFX_8940b: ; 8940b
+INCBIN "gfx/unknown/08940b.2bpp"
+; 8942b
+
+Function8942b: ; 8942b (22:542b)
+ ld de, VTiles0 tile $02
+ ld hl, MobileAdapterGFX + $7d0
+ ld bc, $80
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ld de, VTiles0 tile $0a
+ ld hl, MobileAdapterGFX + $c60
+ ld bc, $40
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+
+Function89448: ; 89448 (22:5448)
+; Clears the Sprites array
+ push af
+ ld hl, Sprites
+ ld d, $10 * 6
+ xor a
+.loop
+ ld [hli], a
+ dec d
+ jr nz, .loop
+ pop af
+ ret
+
+Function89455: ; 89455 (22:5455)
+ ld hl, MobileAdapterGFX + $7d0
+ ld de, VTiles2 tile $0c
+ ld bc, $490
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+
+Function89464: ; 89464
+ ld hl, MobileAdapterGFX
+ ld de, VTiles2
+ ld bc, $200
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ld hl, MobileAdapterGFX + $660
+ ld de, VTiles2 tile $20
+ ld bc, $170
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+; 89481
+
+Function89481: ; 89481
+ ld d, 2
+ call Function8934a
+ ret c
+ ld d, 0
+ ld hl, 16
+ add hl, bc
+ bit 0, [hl]
+ ret z
+ inc d
+ ret
+; 89492
+
+
+Function89492: ; 89492 (22:5492)
+ ld d, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ ret z
+ inc d
+ ret
+
+Function8949c: ; 8949c
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld hl, Palette_894b3
+ ld de, UnknBGPals + 8 * 7
+ ld bc, 8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 894b3
+
+Palette_894b3: ; 894b3
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+; 894bb
+
+Function894bb: ; 894bb
+ call Function894dc
+ push bc
+ call Function8956f
+ call Function8949c
+ call Function8a60d
+ pop bc
+ ret
+; 894ca
+
+
+Function894ca: ; 894ca (22:54ca)
+ push bc
+ call Function894dc
+ call Function895c7
+ call Function8949c
+ call Function8a60d
+ call SetPalettes
+ pop bc
+ ret
+
+Function894dc: ; 894dc
+ push bc
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+
+ ld c, d
+ ld b, 0
+ ld hl, .PalettePointers
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, UnknBGPals
+ ld bc, 3 palettes
+ call CopyBytes
+ ld hl, .Pals345
+ ld de, UnknBGPals + 3 palettes
+ ld bc, 3 palettes
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+ pop bc
+ ret
+; 89509
+
+.PalettePointers: ; 89509
+ dw .Pals012a
+ dw .Pals012b
+ dw .Pals012c
+; 8950f
+
+.Pals012a: ; 8950f
+ RGB 31, 31, 31
+ RGB 10, 17, 13
+ RGB 10, 08, 22
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 10, 08, 22
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 10, 17, 13
+ RGB 00, 00, 00
+
+.Pals012b: ; 89527
+ RGB 31, 31, 31
+ RGB 30, 22, 11
+ RGB 31, 08, 15
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 31, 08, 15
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 30, 22, 11
+ RGB 00, 00, 00
+
+.Pals012c: ; 8953f
+ RGB 31, 31, 31
+ RGB 15, 20, 26
+ RGB 25, 07, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 25, 07, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 15, 20, 26
+ RGB 00, 00, 00
+
+.Pals345: ; 89557
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 13, 00
+ RGB 14, 08, 00
+
+ RGB 31, 31, 31
+ RGB 16, 16, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 19, 31, 11
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; 8956f
+
+Function8956f: ; 8956f
+ push bc
+ ld hl, 16
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000c
+ add hl, bc
+ ld b, h
+ ld c, l
+ callba GetMobileOTTrainerClass
+ ld a, c
+ ld [TrainerClass], a
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld hl, wd030
+ ld a, -1
+ ld [hli], a
+ ld a, " "
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ ld a, [TrainerClass]
+ ld h, 0
+ ld l, a
+ add hl, hl
+ add hl, hl
+ ld de, TrainerPalettes
+ add hl, de
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, wd032
+ ld c, 4
+.loop
+ ld a, BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+ dec c
+ jr nz, .loop
+ ld hl, wd036
+ xor a
+ ld [hli], a
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ pop bc
+ ret
+; 895c7
+
+
+Function895c7: ; 895c7 (22:55c7)
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld hl, Palette_895de
+ ld de, wd030
+ ld bc, 8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 895de (22:55de)
+
+Palette_895de: ; 895de
+ RGB 31, 31, 31
+ RGB 07, 07, 06
+ RGB 07, 07, 06
+ RGB 00, 00, 00
+; 895e6
+
+Function895e6: ; 895e6
+ ld a, 7
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ret
+; 895f2
+
+Function895f2: ; 895f2
+ push bc
+ xor a
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call Function89605
+ call Function89655
+ pop bc
+ ret
+; 89605
+
+Function89605: ; 89605
+ hlcoord 19, 2, AttrMap
+ ld a, 1
+ ld de, SCREEN_WIDTH
+ ld c, 14
+.loop
+ ld [hl], a
+ dec c
+ jr z, .done
+ add hl, de
+ inc a
+ ld [hl], a
+ dec a
+ add hl, de
+ dec c
+ jr nz, .loop
+
+.done
+ hlcoord 0, 16, AttrMap
+ ld c, 10
+ ld a, 2
+.loop2
+ ld [hli], a
+ dec a
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .loop2
+ hlcoord 1, 11, AttrMap
+ ld a, 4
+ ld bc, 4
+ call ByteFill
+ ld a, 5
+ ld bc, 14
+ call ByteFill
+ ret
+; 8963d
+
+Function8963d: ; 8963d
+ hlcoord 12, 3, AttrMap
+ ld a, 6
+ ld de, SCREEN_WIDTH
+ lb bc, 7, 7
+.loop
+ push hl
+ ld c, 7
+.next
+ ld [hli], a
+ dec c
+ jr nz, .next
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; 89655
+
+Function89655: ; 89655
+ hlcoord 1, 12, AttrMap
+ ld de, SCREEN_WIDTH
+ ld a, 5
+ ld b, 4
+.loop
+ ld c, 18
+ push hl
+.next
+ ld [hli], a
+ dec c
+ jr nz, .next
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; 8966c
+
+Function8966c: ; 8966c
+ push bc
+ call Function89688
+ hlcoord 4, 0
+ ld c, 8
+ call Function896f5
+ pop bc
+ ret
+; 8967a
+
+
+Function8967a: ; 8967a (22:567a)
+ push bc
+ call Function89688
+ hlcoord 2, 0
+ ld c, 12
+ call Function896f5
+ pop bc
+ ret
+
+Function89688: ; 89688
+ hlcoord 0, 0
+ ld a, 1
+ ld e, SCREEN_WIDTH
+ call Function896e1
+ ld a, 2
+ ld e, SCREEN_WIDTH
+ call Function896eb
+ ld a, 3
+ ld [hli], a
+ ld a, 4
+ ld e, SCREEN_HEIGHT
+ call Function896e1
+ ld a, 6
+ ld [hli], a
+ push bc
+ ld c, 13
+.loop
+ call Function896cb
+ dec c
+ jr z, .done
+ call Function896d6
+ dec c
+ jr nz, .loop
+
+.done
+ pop bc
+ ld a, 25
+ ld [hli], a
+ ld a, 26
+ ld e, SCREEN_HEIGHT
+ call Function896e1
+ ld a, 28
+ ld [hli], a
+ ld a, 2
+ ld e, SCREEN_WIDTH
+ call Function896eb
+ ret
+; 896cb
+
+Function896cb: ; 896cb
+ ld de, SCREEN_WIDTH - 1
+ ld a, 7
+ ld [hl], a
+ add hl, de
+ ld a, 9
+ ld [hli], a
+ ret
+; 896d6
+
+Function896d6: ; 896d6
+ ld de, SCREEN_WIDTH - 1
+ ld a, 10
+ ld [hl], a
+ add hl, de
+ ld a, 11
+ ld [hli], a
+ ret
+; 896e1
+
+Function896e1: ; 896e1
+.loop
+ ld [hli], a
+ inc a
+ dec e
+ ret z
+ ld [hli], a
+ dec a
+ dec e
+ jr nz, .loop
+ ret
+; 896eb
+
+Function896eb: ; 896eb
+.loop
+ ld [hli], a
+ dec a
+ dec e
+ ret z
+ ld [hli], a
+ inc a
+ dec e
+ jr nz, .loop
+ ret
+; 896f5
+
+Function896f5: ; 896f5
+ call Function8971f
+ call Function89736
+ inc hl
+ inc hl
+ ld b, 2
+
+ClearScreenArea: ; 0x896ff
+; clears an area of the screen
+; INPUT:
+; hl = address of upper left corner of the area
+; b = height
+; c = width
+
+ ld a, " " ; blank tile
+ ld de, 20 ; screen width
+.loop
+ push bc
+ push hl
+.innerLoop
+ ld [hli], a
+ dec c
+ jr nz, .innerLoop
+ pop hl
+ pop bc
+ add hl, de
+ dec b
+ jr nz, .loop
+
+ dec hl
+ inc c
+ inc c
+.asm_89713
+ ld a, $36
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $18
+ ld [hli], a
+ dec c
+ jr nz, .asm_89713 ; 0x8971c $f5
+ ret
+; 0x8971f
+
+Function8971f: ; 8971f
+ ld a, $2c
+ ld [hli], a
+ ld a, $2d
+ ld [hld], a
+ push hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld a, $31
+ ld [hli], a
+ ld a, $32
+ ld [hld], a
+ add hl, de
+ ld a, $35
+ ld [hl], a
+ pop hl
+ ret
+; 89736
+
+Function89736: ; 89736
+ push hl
+ inc hl
+ inc hl
+ ld e, c
+ ld d, $0
+ add hl, de
+ ld a, $2f
+ ld [hli], a
+ ld a, $30
+ ld [hld], a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld a, $33
+ ld [hli], a
+ ld a, $34
+ ld [hl], a
+ add hl, de
+ ld a, $1f
+ ld [hl], a
+ pop hl
+ ret
+; 89753
+
+Function89753: ; 89753
+ ld a, $c
+ ld [hl], a
+ xor a
+ call Function89215
+ ret
+; 8975b
+
+Function8975b: ; 8975b
+ ld a, $1d
+ ld [hli], a
+ inc a
+ ld [hli], a
+ ld a, $d
+ ld [hl], a
+ dec hl
+ dec hl
+ ld a, $4
+ ld e, $3
+.asm_89769
+ call Function89215
+ inc hl
+ dec e
+ jr nz, .asm_89769
+ ret
+; 89771
+
+Function89771: ; 89771
+ ld a, $12
+ ld [hl], a
+ ld a, $3
+ call Function89215
+ ret
+; 8977a
+
+Function8977a: ; 8977a
+ ld e, $4
+ ld d, $13
+.asm_8977e
+ ld a, d
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc d
+ dec e
+ jr nz, .asm_8977e
+ ld e, $e
+.asm_8978c
+ ld a, d
+ ld [hl], a
+ xor a
+ call Function89215
+ inc hl
+ dec e
+ jr nz, .asm_8978c
+ ret
+; 89797
+
+Function89797: ; 89797
+ push bc
+ ld a, $e
+ ld [hl], a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld a, $11
+ ld [hli], a
+ ld a, $10
+ ld c, $8
+.asm_897a6
+ ld [hli], a
+ dec c
+ jr nz, .asm_897a6
+ ld a, $f
+ ld [hl], a
+ pop bc
+ ret
+; 897af
+
+Function897af: ; 897af
+ push bc
+ ld hl, $0010
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000c
+ add hl, bc
+ ld b, h
+ ld c, l
+ callba GetMobileOTTrainerClass
+ ld a, c
+ ld [TrainerClass], a
+ xor a
+ ld [CurPartySpecies], a
+ ld de, VTiles2 tile $37
+ callba GetTrainerPic
+ pop bc
+ ret
+; 897d5
+
+Function897d5: ; 897d5
+ push bc
+ call Function8934a
+ jr nc, .asm_897f3
+ hlcoord 12, 3, AttrMap
+ xor a
+ ld de, SCREEN_WIDTH
+ lb bc, 7, 7
+.asm_897e5
+ push hl
+ ld c, $7
+.asm_897e8
+ ld [hli], a
+ dec c
+ jr nz, .asm_897e8
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_897e5
+ pop bc
+ ret
+
+.asm_897f3
+ ld a, $37
+ ld [hGraphicStartTile], a
+ hlcoord 12, 3
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call Function8963d
+ pop bc
+ ret
+; 89807
+
+
+Function89807: ; 89807 (22:5807)
+ ld hl, MobileAdapterGFX + $200
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_89814
+ ld hl, MobileAdapterGFX + $200 + $230
+.asm_89814
+ call DisableLCD
+ ld de, VTiles2 tile $37
+ ld bc, $230
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ call EnableLCD
+ call DelayFrame
+ ret
+
+Function89829: ; 89829 (22:5829)
+ push bc
+ ld bc, $705
+ ld de, $14
+ ld a, $37
+.asm_89832
+ push bc
+ push hl
+.asm_89834
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_89834
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_89832
+ call Function8963d
+ pop bc
+ ret
+
+Function89844: ; 89844
+ call Function89481
+ call Function894bb
+ call Function897af
+ push bc
+ call WaitBGMap2
+ call SetPalettes
+ pop bc
+ ret
+; 89856
+
+Function89856: ; 89856
+ push bc
+ call Function891b8
+ pop bc
+ call Function895f2
+ call Function8966c
+ call Function899d3
+ call Function898aa
+ call Function898be
+ call Function898dc
+ call Function898f3
+ push bc
+ ld bc, wd008
+ hlcoord 2, 10
+ call Function89975
+ pop bc
+ call Function897d5
+ ret
+; 8987f
+
+
+Function8987f: ; 8987f (22:587f)
+ call Function891b8
+ call Function895f2
+ call Function8967a
+ call Function899d3
+ hlcoord 5, 1
+ call Function8999c
+ hlcoord 13, 3
+ call Function89829
+ call Function899b2
+ hlcoord 5, 5
+ call Function899c9
+ ld bc, wd008
+ hlcoord 2, 10
+ call Function89975
+ ret
+
+Function898aa: ; 898aa
+ ld a, [MenuSelection]
+ and a
+ ret z
+ push bc
+ hlcoord 6, 1
+ ld de, MenuSelection
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ pop bc
+ ret
+; 898be
+
+Function898be: ; 898be
+ push bc
+ ld de, wd002
+ ld hl, wd002
+ call Function89331
+ jr nc, .asm_898cd
+ ld de, String_89116
+
+.asm_898cd
+ hlcoord 9, 1
+ ld a, [MenuSelection]
+ and a
+ jr nz, .asm_898d7
+ dec hl
+
+.asm_898d7
+ call PlaceString
+ pop bc
+ ret
+; 898dc
+
+Function898dc: ; 898dc
+ ld hl, $0006
+ add hl, bc
+ push bc
+ ld d, h
+ ld e, l
+ call Function8934a
+ jr nc, .asm_898eb
+ ld de, String_89116
+
+.asm_898eb
+ hlcoord 6, 4
+ call PlaceString
+ pop bc
+ ret
+; 898f3
+
+Function898f3: ; 898f3
+ push bc
+ ld hl, $000c
+ add hl, bc
+ ld d, h
+ ld e, l
+ call Function8934a
+ jr c, .asm_8990a
+ hlcoord 5, 5
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ jr .asm_89913
+
+.asm_8990a
+ hlcoord 5, 5
+ ld de, String_89116
+ call PlaceString
+
+.asm_89913
+ pop bc
+ ret
+; 89915
+
+Function89915: ; 89915
+ push bc
+ push hl
+ ld de, Unknown_89942
+ ld c, $8
+.asm_8991c
+ ld a, [de]
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc de
+ dec c
+ jr nz, .asm_8991c
+ pop hl
+ ld b, $4
+ ld c, $2b
+ ld a, $8
+ ld de, Unknown_8994a
+.asm_89932
+ push af
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_8993b
+ call Function8994e
+ inc de
+
+.asm_8993b
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_89932
+ pop bc
+ ret
+; 89942
+
+Unknown_89942: ; 89942
+ db $24, $25, $26, " ", $27, $28, $29, $2a
+Unknown_8994a: ; 8994a
+ db $24, $27, $29, $ff
+; 8994e
+
+Function8994e: ; 8994e
+ push hl
+ push de
+ ld de, SCREEN_WIDTH
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ ld a, c
+ ld [hl], a
+ ld a, b
+ call Function89215
+ pop de
+ pop hl
+ ret
+; 89962
+
+Function89962: ; 89962
+ push bc
+ ld c, $4
+ ld b, $20
+.asm_89967
+ ld a, b
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc b
+ dec c
+ jr nz, .asm_89967
+ pop bc
+ ret
+; 89975
+
+Function89975: ; 89975
+ push bc
+ ld e, $8
+.asm_89978
+ ld a, [bc]
+ ld d, a
+ call Function8998b
+ swap d
+ inc hl
+ ld a, d
+ call Function8998b
+ inc bc
+ inc hl
+ dec e
+ jr nz, .asm_89978
+ pop bc
+ ret
+; 8998b
+
+Function8998b: ; 8998b
+ push bc
+ and $f
+ cp $a
+ jr nc, .asm_89997
+ ld c, $f6
+ add c
+ jr .asm_89999
+
+.asm_89997
+ ld a, $7f
+
+.asm_89999
+ ld [hl], a
+ pop bc
+ ret
+; 8999c
+
+
+Function8999c: ; 8999c (22:599c)
+ ld de, PlayerName
+ call PlaceString
+ inc bc
+ ld h, b
+ ld l, c
+ ld de, String_899ac
+ call PlaceString
+ ret
+; 899ac (22:59ac)
+
+String_899ac: ; 899ac
+ db "の めいし@"
+; 899b2
+
+Function899b2: ; 899b2 (22:59b2)
+ ld bc, PlayerName
+ call Function89346
+ jr c, .asm_899bf
+ ld de, PlayerName
+ jr .asm_899c2
+.asm_899bf
+ ld de, String_89116
+.asm_899c2
+ hlcoord 6, 4
+ call PlaceString
+ ret
+
+Function899c9: ; 899c9 (22:59c9)
+ ld de, PlayerID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+
+Function899d3: ; 899d3
+ hlcoord 1, 4
+ call Function89753
+ hlcoord 2, 5
+ call Function8975b
+ hlcoord 1, 9
+ call Function89771
+ hlcoord 1, 11
+ call Function8977a
+ hlcoord 1, 5
+ call Function89797
+ hlcoord 2, 4
+ call Function89962
+ hlcoord 2, 9
+ call Function89915
+ ret
+; 899fe
+
+Function899fe: ; 899fe
+ push bc
+ push hl
+ ld hl, $0019
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ call Function89a0c
+ pop bc
+ ret
+; 89a0c
+
+Function89a0c: ; 89a0c
+ push hl
+ call Function89363
+ pop hl
+ jr c, .asm_89a1c
+ ld d, h
+ ld e, l
+ callba Function11c08f
+ ret
+
+.asm_89a1c
+ ld de, String_89153
+ call PlaceString
+ ret
+; 89a23
+
+
+Function89a23: ; 89a23 (22:5a23)
+ hlcoord 0, 11
+ ld b, $4
+ ld c, $12
+ call Function8921f
+ ret
+
+Function89a2e: ; 89a2e (22:5a2e)
+ hlcoord 11, 12
+ ld b, $2
+ ld c, $6
+ call TextBox
+ hlcoord 13, 13
+ ld de, String_89a4e
+ call PlaceString
+ hlcoord 13, 14
+ ld de, String_89a53
+ call PlaceString
+ call Function89655
+ ret
+; 89a4e (22:5a4e)
+
+String_89a4e: ; 89a4e
+ db "けってい@"
+; 89a53
+
+String_89a53: ; 89a53
+ db "やめる@"
+; 89a57
+
+Function89a57: ; 89a57
+ call JoyTextDelay_ForcehJoyDown ; joypad
+ bit D_UP_F, c
+ jr nz, .d_up
+ bit D_DOWN_F, c
+ jr nz, .d_down
+ bit A_BUTTON_F, c
+ jr nz, .a_b_button
+ bit B_BUTTON_F, c
+ jr nz, .a_b_button
+ bit START_F, c
+ jr nz, .start_button
+ scf
+ ret
+
+.a_b_button
+ ld a, $1
+ and a
+ ret
+
+.start_button
+ ld a, $2
+ and a
+ ret
+
+.d_up
+ call .MoveCursorUp
+ call nc, .PlayPocketSwitchSFX
+ ld a, $0
+ ret
+
+.d_down
+ call .MoveCursorDown
+ call nc, .PlayPocketSwitchSFX
+ ld a, $0
+ ret
+; 89a8a
+
+.PlayPocketSwitchSFX: ; 89a8a
+ push af
+ ld de, SFX_SWITCH_POCKETS
+ call PlaySFX
+ pop af
+ ret
+; 89a93
+
+.MoveCursorDown: ; 89a93
+ ld d, 40
+ ld e, 1
+ call .ApplyCursorMovement
+ ret
+; 89a9b
+
+.MoveCursorUp: ; 89a9b
+ ld d, 1
+ ld e, -1
+ call .ApplyCursorMovement
+ ret
+; 89aa3
+
+.ApplyCursorMovement: ; 89aa3
+ ld a, [MenuSelection]
+ ld c, a
+ push bc
+.loop
+ ld a, [MenuSelection]
+ cp d
+ jr z, .equal_to_d
+ add e
+ jr nz, .not_zero
+ inc a
+
+.not_zero
+ ld [MenuSelection], a
+ call .Function89ac7 ; BCD conversion of data in SRAM?
+ jr nc, .loop
+ call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5
+ pop bc
+ and a
+ ret
+
+.equal_to_d
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ scf
+ ret
+; 89ac7
+
+.Function89ac7: ; 89ac7
+ call OpenSRAMBank4
+ call Function8931b
+ call .Function89ad4
+ call CloseSRAM
+ ret
+; 89ad4
+
+.Function89ad4: ; 89ad4
+ push de
+ call Function8932d ; find a non-space character within 5 bytes of bc
+ jr c, .no_nonspace_character
+ ld hl, 17
+ add hl, bc
+ call Function89b45
+ jr c, .finish_decode
+
+.no_nonspace_character
+ and a
+
+.finish_decode
+ pop de
+ ret
+; 89ae6
+
+.Function89ae6: ; 89ae6
+ ld hl, wd031
+ xor a
+ ld [hl], a
+ ld a, [MenuSelection]
+.loop2
+ cp 6
+ jr c, .load_and_ret
+ sub 5
+ ld c, a
+ ld a, [hl]
+ add 5
+ ld [hl], a
+ ld a, c
+ jr .loop2
+
+.load_and_ret
+ ld [wd030], a
+ ret
+; 89b00
+
+
+Function89b00: ; 89b00 (22:5b00)
+ callba MG_Mobile_Layout_LoadPals
+ ret
+; 89b07 (22:5b07)
+
+Function89b07: ; 89b07
+ call Mobile22_SetBGMapMode0
+ call DelayFrame
+ callba Function4a3a7
+ ret
+; 89b14
+
+Function89b14: ; 89b14
+ call ClearBGPalettes
+ call Function89b07
+ call Function89b00
+ ret
+; 89b1e
+
+Function89b1e: ; 89b1e (22:5b1e)
+ callba Function4a485
+ call Function89b00
+ ret
+
+Function89b28: ; 89b28 (22:5b28)
+ call Function891de
+ call ClearBGPalettes
+ call Function893e2
+ call Call_ExitMenu
+ call Function891ab
+ call SetPalettes
+ ret
+
+Function89b3b: ; 89b3b (22:5b3b)
+ call Mobile22_SetBGMapMode0
+ callba Function48cda
+ ret
+
+Function89b45: ; 89b45
+ ; some sort of decoder?
+ ; BCD?
+ push hl
+ push bc
+ ld c, $10
+ ld e, $0
+.loop
+ ld a, [hli]
+ ld b, a
+ and $f
+ cp 10
+ jr c, .low_nybble_less_than_10
+ ld a, c
+ cp $b
+ jr nc, .clear_carry
+ jr .set_carry
+
+.low_nybble_less_than_10
+ dec c
+ swap b
+ inc e
+ ld a, b
+ and $f
+ cp 10
+ jr c, .high_nybble_less_than_10
+ ld a, c
+ cp $b
+ jr nc, .clear_carry
+ jr .set_carry
+
+.high_nybble_less_than_10
+ inc e
+ dec c
+ jr nz, .loop
+ dec e
+
+.set_carry
+ scf
+ jr .finish
+
+.clear_carry
+ and a
+
+.finish
+ pop bc
+ pop hl
+ ret
+; 89b78
+
+
+Function89b78: ; 89b78 (22:5b78)
+ push bc
+ ld a, [wd010]
+ cp $10
+ jr c, .asm_89b8c
+ ld a, e
+ and a
+ jr z, .asm_89b89
+ ld c, e
+.asm_89b85
+ inc hl
+ dec c
+ jr nz, .asm_89b85
+.asm_89b89
+ ld a, $7f
+ ld [hl], a
+.asm_89b8c
+ ld a, [wd010]
+ inc a
+ and $1f
+ ld [wd010], a
+ pop bc
+ ret
+
+Function89b97: ; 89b97 (22:5b97)
+ call Function89c34
+ jr c, .asm_89ba0
+ call Function89448
+ ret
+.asm_89ba0
+ ld a, [wd011]
+ ld hl, Unknown_89bd8
+ and a
+ jr z, .asm_89bae
+.asm_89ba9
+ inc hl
+ inc hl
+ dec a
+ jr nz, .asm_89ba9
+.asm_89bae
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Sprites
+.asm_89bb4
+ ld a, [hli]
+ cp $ff
+ ret z
+ ld c, a
+ ld b, $0
+.asm_89bbb
+ push hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, $8
+ add b
+ ld b, a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop hl
+ dec c
+ jr nz, .asm_89bbb
+ ld b, $0
+ ld c, $4
+ add hl, bc
+ jr .asm_89bb4
+; 89bd8 (22:5bd8)
+
+Unknown_89bd8: ; 89bd8
+ dw Unknown_89be0
+ dw Unknown_89bf5
+ dw Unknown_89c0a
+ dw Unknown_89c1f
+; 89be0
+
+Unknown_89be0: ; 89be0
+ db $01, $12, $4e, $01, $00
+ db $01, $19, $4e, $01, $40
+ db $01, $12, $72, $01, $20
+ db $01, $19, $72, $01, $60
+ db $ff
+
+Unknown_89bf5: ; 89bf5
+ db $01, $60, $16, $01, $00
+ db $01, $62, $16, $01, $40
+ db $01, $60, $92, $01, $20
+ db $01, $62, $92, $01, $60
+ db $ff
+
+Unknown_89c0a: ; 89c0a
+ db $01, $78, $66, $01, $00
+ db $01, $78, $66, $01, $40
+ db $01, $78, $92, $01, $20
+ db $01, $78, $92, $01, $60
+ db $ff
+
+Unknown_89c1f: ; 89c1f
+ db $01, $80, $66, $01, $00
+ db $01, $80, $66, $01, $40
+ db $01, $80, $92, $01, $20
+ db $01, $80, $92, $01, $60
+ db $ff
+; 89c34
+
+Function89c34: ; 89c34 (22:5c34)
+ push bc
+ ld a, [wd012]
+ ld c, a
+ inc a
+ and $f
+ ld [wd012], a
+ ld a, c
+ cp $8
+ pop bc
+ ret
+
+Function89c44: ; 89c44 (22:5c44)
+ call Function89c34
+ jr c, .asm_89c4f
+ push de
+ call Function89448
+ pop de
+ ret
+.asm_89c4f
+ ld hl, Sprites
+ push de
+ ld a, b
+ ld [hli], a
+ ld d, $8
+ ld a, e
+ and a
+ ld a, c
+ jr z, .asm_89c60
+.asm_89c5c
+ add d
+ dec e
+ jr nz, .asm_89c5c
+.asm_89c60
+ pop de
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ret
+
+Function89c67: ; 89c67 (22:5c67)
+; menu scrolling?
+ call JoyTextDelay_ForcehJoyDown ; joypad
+ ld b, $0
+ bit A_BUTTON_F, c
+ jr z, .not_a_button
+ ld b, $1
+ and a
+ ret
+
+.not_a_button
+ bit B_BUTTON_F, c
+ jr z, .not_b_button
+ scf
+ ret
+
+.not_b_button
+ xor a
+ bit D_UP_F, c
+ jr z, .not_d_up
+ ld a, $1
+.not_d_up
+ bit D_DOWN_F, c
+ jr z, .not_d_down
+ ld a, $2
+.not_d_down
+ bit D_LEFT_F, c
+ jr z, .not_d_left
+ ld a, $3
+.not_d_left
+ bit D_RIGHT_F, c
+ jr z, .not_d_right
+ ld a, $4
+.not_d_right
+ and a
+ ret z ; no dpad pressed
+ dec a
+ ld c, a
+ ld d, $0
+ ld hl, .ScrollData0
+ ld a, [wd02f]
+ and a
+ jr z, .got_data
+ ld hl, .ScrollData1
+.got_data
+ ld a, [wd011]
+ and a
+ jr z, .got_row
+ ld e, $4
+.add_n_times
+ add hl, de
+ dec a
+ jr nz, .add_n_times
+.got_row
+ ld e, c
+ add hl, de
+ ld a, [hl]
+ and a
+ ret z
+ dec a
+ ld [wd011], a
+ xor a
+ ld [wd012], a
+ ret
+; 89cbf (22:5cbf)
+
+.ScrollData0: ; 89cbf
+ db 0, 2, 0, 0
+ db 1, 3, 0, 0
+ db 2, 4, 0, 0
+ db 3, 0, 0, 0
+
+.ScrollData1: ; 89ccf
+ db 0, 0, 0, 0
+ db 0, 3, 0, 0
+ db 2, 4, 0, 0
+ db 3, 0, 0, 0
+; 89cdf
+
+Function89cdf: ; 89cdf (22:5cdf)
+ ld a, $10
+ add b
+ ld b, a
+ ld a, $8
+ add c
+ ld c, a
+ ld e, $2
+ ld a, $2
+ ld hl, Sprites
+.asm_89cee
+ push af
+ push bc
+ ld d, $4
+.asm_89cf2
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld a, $8
+ add c
+ ld c, a
+ inc e
+ dec d
+ jr nz, .asm_89cf2
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ pop af
+ dec a
+ jr nz, .asm_89cee
+ ret
+
+Function89d0d: ; 89d0d (22:5d0d)
+ call Mobile22_SetBGMapMode0
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld c, 8
+ ld de, UnknBGPals
+.loop
+ push bc
+ ld hl, .Palette1
+ ld bc, 1 palettes
+ call CopyBytes
+ pop bc
+ dec c
+ jr nz, .loop
+
+ ld hl, .Palette2
+ ld de, UnknBGPals + 2 palettes
+ ld bc, 1 palettes
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ call SetPalettes
+ callba PrintMail_
+ call Mobile22_SetBGMapMode1
+ ld c, 24
+ call DelayFrames
+ call RestartMapMusic
+ ret
+; 89d4e (22:5d4e)
+
+.Palette1: ; 89d4e
+ RGB 31, 31, 31
+ RGB 19, 19, 19
+ RGB 15, 15, 15
+ RGB 00, 00, 00
+; 89d56
+
+.Palette2: ; 89d56
+ RGB 31, 31, 31
+ RGB 19, 19, 19
+ RGB 19, 19, 19
+ RGB 00, 00, 00
+; 89d5e
+
+Function89d5e: ; 89d5e (22:5d5e)
+ push af
+ call CopyMenuDataHeader
+ pop af
+ ld [wMenuCursorBuffer], a
+ call Mobile22_SetBGMapMode0
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ ret
+
+Function89d75: ; 89d75 (22:5d75)
+ push hl
+ call Mobile22_SetBGMapMode0
+ call _hl_
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ pop hl
+ jr asm_89d90
+
+Function89d85: ; 89d85 (22:5d85)
+ push hl
+ call Mobile22_SetBGMapMode0
+ call _hl_
+ call CGBOnly_LoadEDTile
+ pop hl
+
+asm_89d90: ; 89d90 (22:5d90)
+ call Mobile22_SetBGMapMode0
+ push hl
+ call _hl_
+ call Function89dab
+ ld a, [wMenuCursorY]
+ push af
+ call Function891ab
+ pop af
+ pop hl
+ jr c, .asm_89da9
+ jr z, asm_89d90
+ scf
+ ret
+.asm_89da9
+ and a
+ ret
+
+Function89dab: ; 89dab (22:5dab)
+ call Mobile22_SetBGMapMode0
+ callba MobileMenuJoypad
+ call Mobile22_SetBGMapMode0
+ ld a, c
+ ld hl, wMenuJoypadFilter
+ and [hl]
+ ret z
+ bit 0, a
+ jr nz, .asm_89dc7
+ bit 1, a
+ jr nz, .asm_89dd9
+ xor a
+ ret
+.asm_89dc7
+ call PlayClickSFX
+ ld a, [w2DMenuNumRows]
+ ld c, a
+ ld a, [wMenuCursorY]
+ cp c
+ jr z, .asm_89dd9
+ call PlaceHollowCursor
+ scf
+ ret
+.asm_89dd9
+ call PlayClickSFX
+ ld a, $1
+ and a
+ ret
+
+Function89de0: ; 89de0 (22:5de0)
+ call ClearSprites
+ call Function89e0a
+ jr c, .asm_89e00
+ ld c, $1
+.asm_89dea
+ call Function8a31c
+ jr z, .asm_89dfd
+ ld a, [wMenuCursorY]
+ ld c, a
+ push bc
+ ld hl, Jumptable_89e04
+ ld a, e
+ dec a
+ rst JumpTable
+ pop bc
+ jr .asm_89dea
+.asm_89dfd
+ call Function891fe
+.asm_89e00
+ call Function8917a
+ ret
+
+Jumptable_89e04: ; 89e04 (22:5e04)
+ dw Function8a62c
+ dw Function8a999
+ dw Function8ab93
+
+
+Function89e0a: ; 89e0a (22:5e0a)
+ call OpenSRAMBank4
+ call Function8b3b0
+ call CloseSRAM
+ ld hl, Jumptable_89e18
+ rst JumpTable
+ ret
+
+Jumptable_89e18: ; 89e18 (22:5e18)
+ dw Function89e1e
+ dw Function8a116
+ dw Function8a2aa
+
+
+Function89e1e: ; 89e1e (22:5e1e)
+ call OpenSRAMBank4
+ ld bc, $a037 ; 4:a037
+ call Function8b36c
+ call CloseSRAM
+ xor a
+ ld [wd02d], a
+
+asm_89e2e: ; 89e2e (22:5e2e)
+ ld a, [wd02d]
+ ld hl, Jumptable_89e3c
+ rst JumpTable
+ ret
+
+Function89e36: ; 89e36 (22:5e36)
+ ld hl, wd02d
+ inc [hl]
+ jr asm_89e2e
+
+Jumptable_89e3c: ; 89e3c (22:5e3c)
+ dw Function89e6f
+ dw Function89fed
+ dw Function89ff6
+ dw Function8a03d
+ dw Function89eb9
+ dw Function89efd
+ dw Function89fce
+ dw Function8a04c
+ dw Function8a055
+ dw Function8a0e6
+ dw Function8a0ec
+ dw Function8a0f5
+ dw Function89e58
+ dw Function89e68
+
+
+Function89e58: ; 89e58 (22:5e58)
+ ld a, $1
+ call Function8a2fe
+ call Function891fe
+ call Function893e2
+ call Function89168
+ and a
+ ret
+
+Function89e68: ; 89e68 (22:5e68)
+ call Function891fe
+ ld a, $1
+ scf
+ ret
+
+Function89e6f: ; 89e6f (22:5e6f)
+ call Function891de
+ call Function89245
+ call Function89ee1
+ call Function89e9a
+ hlcoord 7, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function891ab
+ call SetPalettes
+ jp Function89e36
+
+Function89e9a: ; 89e9a (22:5e9a)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_89eb1
+ ld de, UnknBGPals palette 5
+ ld bc, 1 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 89eb1 (22:5eb1)
+
+Palette_89eb1: ; 89eb1
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+; 89eb9
+
+Function89eb9: ; 89eb9 (22:5eb9)
+ call Function891fe
+ call Function89ee1
+ call Function89e9a
+ hlcoord 7, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function891ab
+ call SetPalettes
+ jp Function89e36
+
+Function89ee1: ; 89ee1 (22:5ee1)
+ call ClearBGPalettes
+ call Function893e2
+ call Mobile22_SetBGMapMode0
+ callba Function4a3a7
+ callba MG_Mobile_Layout_CreatePalBoxes
+ hlcoord 1, 0
+ call Function8a53d
+ ret
+
+Function89efd: ; 89efd (22:5efd)
+ ld hl, wd012
+ ld a, $ff
+ ld [hli], a
+ xor a
+rept 4
+ ld [hli], a
+endr
+ ld [hl], a
+.asm_89f09
+ ld hl, wd012
+ inc [hl]
+ ld a, [hli]
+ and $3
+ jr nz, .asm_89f2e
+ ld a, [hl]
+ cp $4
+ jr nc, .asm_89f2e
+ ld b, $32
+ inc [hl]
+ ld a, [hl]
+ dec a
+ jr z, .asm_89f26
+ ld c, a
+.asm_89f1f
+ ld a, $b
+ add b
+ ld b, a
+ dec c
+ jr nz, .asm_89f1f
+.asm_89f26
+ ld c, $e8
+ ld a, [wd013]
+ call Function89fa5
+.asm_89f2e
+ ld a, [wd013]
+ and a
+ jr z, .asm_89f58
+.asm_89f34
+ call Function89f6a
+ ld e, a
+ ld a, c
+ cp $a8
+ jr nc, .asm_89f4d
+ cp $46
+ jr c, .asm_89f4d
+ ld d, $0
+ dec e
+ ld hl, wd014
+ add hl, de
+ set 0, [hl]
+ inc e
+ jr .asm_89f51
+.asm_89f4d
+ ld a, $2
+ add c
+ ld c, a
+.asm_89f51
+ ld a, e
+ call Function89f77
+ dec a
+ jr nz, .asm_89f34
+.asm_89f58
+ call DelayFrame
+ ld hl, wd014
+ ld c, $4
+.asm_89f60
+ ld a, [hli]
+ and a
+ jr z, .asm_89f09
+ dec c
+ jr nz, .asm_89f60
+ jp Function89e36
+
+Function89f6a: ; 89f6a (22:5f6a)
+ push af
+ ld de, $10
+ call Function89f9a
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld c, a
+ pop af
+ ret
+
+Function89f77: ; 89f77 (22:5f77)
+ push af
+ ld de, $10
+ call Function89f9a
+ ld d, $2
+.asm_89f80
+ push bc
+ ld e, $2
+.asm_89f83
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ inc hl
+ inc hl
+ ld a, $8
+ add c
+ ld c, a
+ dec e
+ jr nz, .asm_89f83
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ dec d
+ jr nz, .asm_89f80
+ pop af
+ ret
+
+Function89f9a: ; 89f9a (22:5f9a)
+ dec a
+ ld hl, Sprites
+ and a
+ ret z
+.asm_89fa0
+ add hl, de
+ dec a
+ jr nz, .asm_89fa0
+ ret
+
+Function89fa5: ; 89fa5 (22:5fa5)
+ ld de, $10
+ call Function89f9a
+ ld e, $2
+ ld d, $a
+.asm_89faf
+ push bc
+ ld a, $2
+.asm_89fb2
+ push af
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, d
+ inc d
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld a, $8
+ add c
+ ld c, a
+ pop af
+ dec a
+ jr nz, .asm_89fb2
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ dec e
+ jr nz, .asm_89faf
+ ret
+
+Function89fce: ; 89fce (22:5fce)
+ call Function8a5b6
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function89448
+ call SetPalettes
+ call Function891ab
+ jp Function89e36
+
+Function89fed: ; 89fed (22:5fed)
+ ld hl, UnknownText_0x8a102
+ call PrintText
+ jp Function89e36
+
+Function89ff6: ; 89ff6 (22:5ff6)
+ call Function891fe
+ call ClearBGPalettes
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function8987f
+ call OpenSRAMBank4
+ hlcoord 1, 13
+ ld bc, $a007
+ call Function89a0c
+ call CloseSRAM
+ call Function891ab
+ call Mobile22_ButtonSound
+ jp Function89e36
+
+Function8a03d: ; 8a03d (22:603d)
+ ld hl, UnknownText_0x8a107
+ call Function89209
+ call PrintText
+ call Function8920f
+ jp Function89e36
+
+Function8a04c: ; 8a04c (22:604c)
+ ld hl, UnknownText_0x8a10c
+ call PrintText
+ jp Function89e36
+
+Function8a055: ; 8a055 (22:6055)
+ ld c, $7
+ ld b, $4
+.asm_8a059
+ call Function8a0a1
+ inc c
+ call Function8a0c9
+ push bc
+ call Function8a58d
+ pop bc
+ call Function8a0de
+ push bc
+ push hl
+ ld a, $5
+ call Function8a5a3
+ pop hl
+ inc hl
+ inc hl
+ inc hl
+ ld a, $6
+ call Function8a5a3
+ call CGBOnly_LoadEDTile
+ pop bc
+ ld a, c
+ cp $b
+ jr nz, .asm_8a059
+ call Function8a0a1
+ hlcoord 12, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ pop hl
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ call CGBOnly_LoadEDTile
+ jp Function89e36
+
+Function8a0a1: ; 8a0a1 (22:60a1)
+ call Mobile22_SetBGMapMode0
+ push bc
+ call Function8a0c9
+ ld e, $6
+.asm_8a0aa
+ push hl
+ ld bc, $6
+ add hl, bc
+ ld d, [hl]
+ call Function8a0c1
+ pop hl
+ ld [hl], d
+ call Function89215
+ ld bc, $14
+ add hl, bc
+ dec e
+ jr nz, .asm_8a0aa
+ pop bc
+ ret
+
+Function8a0c1: ; 8a0c1 (22:60c1)
+ push hl
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ ret
+
+Function8a0c9: ; 8a0c9 (22:60c9)
+ push bc
+ hlcoord 0, 0
+ ld de, $14
+ ld a, b
+ and a
+ jr z, .asm_8a0d8
+.asm_8a0d4
+ add hl, de
+ dec b
+ jr nz, .asm_8a0d4
+.asm_8a0d8
+ ld d, $0
+ ld e, c
+ add hl, de
+ pop bc
+ ret
+
+Function8a0de: ; 8a0de (22:60de)
+ call Function8a0c9
+ ld de, AttrMap - TileMap
+ add hl, de
+ ret
+
+Function8a0e6: ; 8a0e6 (22:60e6)
+ call Function8b539
+ jp Function89e36
+
+Function8a0ec: ; 8a0ec (22:60ec)
+ ld hl, UnknownText_0x8a111
+ call PrintText
+ jp Function89e36
+
+Function8a0f5: ; 8a0f5 (22:60f5)
+ call Function8b555
+ jp nc, Function8a0ff
+ ld hl, wd02d
+ inc [hl]
+
+Function8a0ff: ; 8a0ff (22:60ff)
+ jp Function89e36
+; 8a102 (22:6102)
+
+UnknownText_0x8a102: ; 0x8a102
+ ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
+ text_jump UnknownText_0x1c5238
+ db "@"
+; 0x8a107
+
+UnknownText_0x8a107: ; 0x8a107
+ ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
+ text_jump UnknownText_0x1c52bc
+ db "@"
+; 0x8a10c
+
+UnknownText_0x8a10c: ; 0x8a10c
+ ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
+ text_jump UnknownText_0x1c531e
+ db "@"
+; 0x8a111
+
+UnknownText_0x8a111: ; 0x8a111
+ ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
+ text_jump UnknownText_0x1c5394
+ db "@"
+; 0x8a116
+
+Function8a116: ; 8a116 (22:6116)
+ ld a, $1
+ ld [wd030], a
+ ld hl, MenuDataHeader_0x8a176
+ call LoadMenuDataHeader
+.asm_8a121
+ call Mobile22_SetBGMapMode0
+ call Function8a17b
+ jr c, .asm_8a16b
+ ld a, [wMenuCursorY]
+ ld [wd030], a
+ dec d
+ jr z, .asm_8a140
+ call Function8a20d
+ jr c, .asm_8a121
+ xor a
+ call Function8a2fe
+ call Function8916e
+ jr .asm_8a16b
+.asm_8a140
+ call Function89174
+ jr nz, .asm_8a14c
+ call Function8a241
+ jr c, .asm_8a121
+ jr .asm_8a15a
+.asm_8a14c
+ call WaitSFX
+ ld de, SFX_TWINKLE
+ call PlaySFX
+ ld c, $10
+ call DelayFrames
+.asm_8a15a
+ call ExitMenu
+ call Function891de
+ call Function893e2
+ call Function89245
+ call Function89168
+ and a
+ ret
+.asm_8a16b
+ call Function89209
+ call CloseWindow
+ call Function8920f
+ scf
+ ret
+; 8a176 (22:6176)
+
+MenuDataHeader_0x8a176: ; 0x8a176
+ db $40 ; flags
+ db 00, 14 ; start coords
+ db 06, 19 ; end coords
+; 8a17b
+
+Function8a17b: ; 8a17b (22:617b)
+ decoord 14, 0
+ ld b, $5
+ ld c, $4
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a19a
+ ld a, [wd030]
+ call Function89d5e
+ ld hl, Function8a1b0
+ call Function89d75
+ jr nc, .asm_8a198
+ ld a, $0
+.asm_8a198
+ ld d, a
+ ret
+; 8a19a (22:619a)
+
+MenuDataHeader_0x8a19a: ; 0x8a19a
+ db $40 ; flags
+ db 00, 14 ; start coords
+ db 06, 19 ; end coords
+ dw MenuData2_0x8a1a2
+ db 1 ; default option
+; 0x8a1a2
+
+MenuData2_0x8a1a2: ; 0x8a1a2
+ db $e0 ; flags
+ db 3 ; items
+ db "ひらく@"
+ db "すてる@"
+ db "もどる@"
+; 0x8a1b0
+
+Function8a1b0: ; 8a1b0
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld a, [wMenuCursorY]
+ ld de, Strings_8a1cc
+ dec a
+ ld c, a
+ call Function8919e
+ call PlaceString
+ ret
+; 8a1cc
+
+Strings_8a1cc: ; 8a1cc
+ db "めいし", $25, "せいりと へんしゅうを"
+ next "おこないます"
+ db "@"
+
+ db "めいしフ,ルダー", $25, "めいしと"
+ next "あんしょうばんごう", $1f, "けします"
+ db "@"
+
+ db "まえ", $25, "がめん", $1d, "もどります"
+ db "@"
+; 8a20d
+
+
+Function8a20d: ; 8a20d (22:620d)
+ ld hl, UnknownText_0x8a232
+ call PrintText
+ ld a, $2
+ call Function89259
+ ret c
+ ld hl, UnknownText_0x8a237
+ call PrintText
+ ld a, $2
+ call Function89259
+ ret c
+ xor a
+ call Function8a2fe
+ ld hl, UnknownText_0x8a23c
+ call PrintText
+ xor a
+ and a
+ ret
+; 8a232 (22:6232)
+
+UnknownText_0x8a232: ; 0x8a232
+ ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
+ text_jump UnknownText_0x1c53ee
+ db "@"
+; 0x8a237
+
+UnknownText_0x8a237: ; 0x8a237
+ ; Are you sure you want to delete it?
+ text_jump UnknownText_0x1c5494
+ db "@"
+; 0x8a23c
+
+UnknownText_0x8a23c: ; 0x8a23c
+ ; The CARD FOLDER has been deleted.
+ text_jump UnknownText_0x1c54b9
+ db "@"
+; 0x8a241
+
+Function8a241: ; 8a241 (22:6241)
+ call LoadStandardMenuDataHeader
+ call Function891fe
+ call Function8a262
+ jr nc, .asm_8a254
+ call Function891fe
+ call Function89b28
+ scf
+ ret
+.asm_8a254
+ call Function891de
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call Function891de
+ and a
+ ret
+
+Function8a262: ; 8a262 (22:6262)
+ call ClearBGPalettes
+ call Function893e2
+ call Mobile22_SetBGMapMode0
+ callba Function4a3a7
+ callba MG_Mobile_Layout_CreatePalBoxes
+ hlcoord 1, 0
+ call Function8a53d
+ hlcoord 12, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ xor a
+ ld [wd02e], a
+ ld bc, wd013
+ call Function8b36c
+ call Function8b493
+ call Function891ab
+ call SetPalettes
+ call Function8b5e7
+ ret
+
+Function8a2aa: ; 8a2aa (22:62aa)
+ ld hl, MenuDataHeader_0x8a2ef
+ call LoadMenuDataHeader
+ ld hl, UnknownText_0x8a2f4
+ call PrintText
+ ld a, $1
+ call Function89259
+ jr nc, .asm_8a2cf
+ ld hl, UnknownText_0x8a2f9
+ call PrintText
+ ld a, $2
+ call Function89259
+ jr c, .asm_8a2ea
+ call Function8a20d
+ jr .asm_8a2ea
+.asm_8a2cf
+ call ExitMenu
+ call Function8a241
+ jr c, .asm_8a2ed
+ ld a, $1
+ call Function8a313
+ call CloseSRAM
+ call Function891de
+ call Function89245
+ call Function89168
+ and a
+ ret
+.asm_8a2ea
+ call CloseWindow
+.asm_8a2ed
+ scf
+ ret
+; 8a2ef (22:62ef)
+
+MenuDataHeader_0x8a2ef: ; 0x8a2ef
+ db $40 ; flags
+ db 12, 00 ; start coords
+ db 17, 19 ; end coords
+; 8a2f4
+
+UnknownText_0x8a2f4: ; 0x8a2f4
+ ; There is an older CARD FOLDER from a previous journey. Do you want to open it?
+ text_jump UnknownText_0x1c54dd
+ db "@"
+; 0x8a2f9
+
+UnknownText_0x8a2f9: ; 0x8a2f9
+ ; Delete the old CARD FOLDER?
+ text_jump UnknownText_0x1c552d
+ db "@"
+; 0x8a2fe
+
+Function8a2fe: ; 8a2fe (22:62fe)
+ call Function8a313
+ call Function89305
+ ld hl, $a603
+ ld bc, $8
+ ld a, -1
+ call ByteFill
+ call CloseSRAM
+ ret
+
+Function8a313: ; 8a313 (22:6313)
+ ld c, a
+ call OpenSRAMBank4
+ ld a, c
+ ld [$a60b], a
+ ret
+
+Function8a31c: ; 8a31c (22:631c)
+ push bc
+ call Mobile22_SetBGMapMode0
+ callba Function4a3a7
+ callba MG_Mobile_Layout_CreatePalBoxes
+ hlcoord 1, 0
+ call Function8a53d
+ hlcoord 12, 4
+ call Function8a58d
+ call Function8a3b2
+ pop bc
+ ld a, c
+ ld [wMenuCursorBuffer], a
+ ld [MenuSelection], a
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+.asm_8a34e
+ call Function8a3a2
+ call Mobile22_SetBGMapMode0
+ call Function8a453
+ call Function8a4d3
+ call Function8a4fc
+ call Function891ab
+ call SetPalettes
+ call Function8a383
+ jr c, .asm_8a370
+ jr z, .asm_8a34e
+.asm_8a36a
+ call Function89448
+ xor a
+ ld e, a
+ ret
+.asm_8a370
+ call Function89448
+ call PlaceHollowCursor
+ call Function8a3a2
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .asm_8a36a
+ ld e, a
+ and a
+ ret
+
+Function8a383: ; 8a383 (22:6383)
+ callba MobileMenuJoypad
+ ld a, c
+ ld hl, wMenuJoypadFilter
+ and [hl]
+ ret z
+ bit 0, a
+ jr nz, .asm_8a399
+ bit 1, a
+ jr nz, .asm_8a39e
+ xor a
+ ret
+.asm_8a399
+ call PlayClickSFX
+ scf
+ ret
+.asm_8a39e
+ call PlayClickSFX
+ ret
+
+Function8a3a2: ; 8a3a2 (22:63a2)
+ ld a, [wMenuCursorY]
+ dec a
+ ld hl, wd002
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ld [MenuSelection], a
+ ret
+
+Function8a3b2: ; 8a3b2 (22:63b2)
+ ld a, $1
+ ld [MenuSelection], a
+ call Function8a4fc
+ call Function8a3df
+ jr nc, .asm_8a3ce
+ decoord 0, 2
+ ld b, $6
+ ld c, $9
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a435
+ jr .asm_8a3db
+.asm_8a3ce
+ decoord 0, 2
+ ld b, $8
+ ld c, $9
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a40f
+.asm_8a3db
+ call CopyMenuDataHeader
+ ret
+
+Function8a3df: ; 8a3df (22:63df)
+ call OpenSRAMBank4
+ ld hl, $a603
+ call Function89b45
+ call CloseSRAM
+ ld hl, wd002
+ jr c, .asm_8a3f8
+ ld de, Unknown_8a408
+ call Function8a400
+ scf
+ ret
+.asm_8a3f8
+ ld de, Unknown_8a40b
+ call Function8a400
+ and a
+ ret
+
+Function8a400: ; 8a400 (22:6400)
+ ld a, [de]
+ inc de
+ ld [hli], a
+ cp $ff
+ jr nz, Function8a400
+ ret
+; 8a408 (22:6408)
+
+Unknown_8a408: db 1, 2, -1
+Unknown_8a40b: db 1, 2, 3, -1
+
+MenuDataHeader_0x8a40f: ; 0x8a40f
+ db $40 ; flags
+ db 02, 00 ; start coords
+ db 11, 10 ; end coords
+ dw MenuData2_0x8a417
+ db 1 ; default option
+; 0x8a417
+
+MenuData2_0x8a417: ; 0x8a417
+ db $a0 ; flags
+ db 4 ; items
+ db "めいしりスト@"
+ db "じぶんの めいし@"
+ db "めいしこうかん@"
+ db "やめる@"
+; 0x8a435
+
+MenuDataHeader_0x8a435: ; 0x8a435
+ db $40 ; flags
+ db 02, 00 ; start coords
+ db 09, 10 ; end coords
+ dw MenuData2_0x8a43d
+ db 1 ; default option
+; 0x8a43d
+
+MenuData2_0x8a43d: ; 0x8a43d
+ db $a0 ; flags
+ db 3 ; items
+ db "めいしりスト@"
+ db "じぶんの めいし@"
+ db "やめる@"
+; 0x8a453
+
+Function8a453: ; 8a453 (22:6453)
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld de, String_8a476
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .asm_8a472
+ ld de, Strings_8a483
+ dec a
+ ld c, a
+ call Function8919e
+.asm_8a472
+ call PlaceString
+ ret
+; 8a476 (22:6476)
+
+String_8a476: ; 8a476
+ db "まえ", $25, "がめん", $1d, "もどります@"
+; 8a483
+
+Strings_8a483: ; 8a483
+ db "おともだち", $25, "めいしは"
+ next "ここ", $1d, "いれておきます@"
+
+ db "でんわばんごう", $1f, "いれると"
+ next "めいしこうかん", $4a, "できます@"
+
+ db "ともだちと じぶん", $25, "めいしを"
+ next "せきがいせんで こうかん します@"
+; 8a4d3
+
+Function8a4d3: ; 8a4d3 (22:64d3)
+ ld a, [MenuSelection]
+ cp $1
+ jr nz, .asm_8a4eb
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $7
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ ret
+.asm_8a4eb
+ ld a, $7
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ ret
+
+Function8a4fc: ; 8a4fc (22:64fc)
+ ld a, [MenuSelection]
+ cp $3
+ jr nz, asm_8a529
+ ld hl, wd012
+ ld a, [hli]
+ ld b, a
+ ld a, [hld]
+ add b
+ ld [hl], a
+ ld b, a
+ ld c, $80
+ call Function89cdf
+ call Function8a515
+ ret
+
+Function8a515: ; 8a515 (22:6515)
+ ld hl, wd012
+ ld a, [hl]
+ cp $38
+ jr c, .asm_8a520
+ cp $3c
+ ret c
+.asm_8a520
+ ld a, [wd013]
+ cpl
+ inc a
+ ld [wd013], a
+ ret
+
+asm_8a529: ; 8a529 (22:6529)
+ ld hl, wd012
+ ld a, $3c
+ ld [hli], a
+ ld a, $ff
+ ld [hli], a
+ ld hl, Sprites
+ xor a
+ ld bc, $20
+ call ByteFill
+ ret
+
+Function8a53d: ; 8a53d (22:653d)
+ push hl
+ ld a, $15
+ ld c, $8
+ ld de, $14
+ call Function8a573
+ ld a, $1d
+ ld c, $9
+ call Function8a57c
+ inc a
+ ld [hl], a
+ call Function8a584
+ pop hl
+ add hl, de
+ ld a, $1f
+ ld c, $8
+ call Function8a573
+ dec hl
+ ld a, $51
+ ld [hli], a
+ ld a, $26
+ ld c, $1
+ call Function8a57c
+ ld a, $52
+ ld c, $3
+ call Function8a573
+ ld a, $27
+ ld c, $6
+
+Function8a573: ; 8a573 (22:6573)
+ ld [hl], a
+ call Function8a584
+ inc a
+ dec c
+ jr nz, Function8a573
+ ret
+
+Function8a57c: ; 8a57c (22:657c)
+ ld [hl], a
+ call Function8a584
+ dec c
+ jr nz, Function8a57c
+ ret
+
+Function8a584: ; 8a584 (22:6584)
+ push af
+ ld a, $4
+ call Function89215
+ inc hl
+ pop af
+ ret
+
+Function8a58d: ; 8a58d (22:658d)
+ ld a, $2d
+ ld bc, $606
+ ld de, $14
+.asm_8a595
+ push bc
+ push hl
+.asm_8a597
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_8a597
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8a595
+ ret
+
+Function8a5a3: ; 8a5a3 (22:65a3)
+ ld bc, $603
+ ld de, $14
+.asm_8a5a9
+ push bc
+ push hl
+.asm_8a5ab
+ ld [hli], a
+ dec c
+ jr nz, .asm_8a5ab
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8a5a9
+ ret
+
+Function8a5b6: ; 8a5b6 (22:65b6)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_8a5e5
+ ld de, UnknBGPals + 4 palettes
+ ld bc, 3 palettes
+ call CopyBytes
+ ld hl, Palette_8a5fd
+ ld de, UnknOBPals
+ ld bc, 1 palettes
+ call CopyBytes
+ ld hl, Palette_8a605
+ ld de, UnknOBPals + 1 palettes
+ ld bc, 1 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 8a5e5 (22:65e5)
+
+Palette_8a5e5: ; 8a5e5
+ RGB 31, 31, 31
+ RGB 27, 19, 00
+ RGB 07, 11, 22
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 16, 31
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+; 8a5fd
+
+Palette_8a5fd: ; 8a5fd
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+; 8a605
+
+Palette_8a605: ; 8a605
+ RGB 00, 00, 00
+ RGB 14, 18, 31
+ RGB 16, 16, 31
+ RGB 31, 31, 31
+; 8a60d
+
+Function8a60d: ; 8a60d
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_8a624
+ ld de, UnknOBPals
+ ld bc, 1 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 8a624
+
+Palette_8a624: ; 8a624
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+; 8a62c
+
+Function8a62c: ; 8a62c (22:662c)
+ call LoadStandardMenuDataHeader
+ call Function891fe
+ xor a
+ call Function8b94a
+ call Function8b677
+.asm_8a639
+ xor a
+ ld [wd033], a
+ ld [wd032], a
+ ld [wd0e3], a
+ call Function8b7bd
+ ld a, c
+ and a
+ jr z, .asm_8a66a
+ ld [MenuSelection], a
+ ld b, a
+ ld a, [wScrollingMenuCursorPosition]
+ inc a
+ ld [wd034], a
+ push bc
+ call Function8b960
+ ld a, c
+ pop bc
+ jr z, .asm_8a639
+ ld c, a
+ ld hl, Jumptable_8a671
+ ld a, b
+ ld [MenuSelection], a
+ ld a, c
+ dec a
+ rst JumpTable
+ jr .asm_8a639
+.asm_8a66a
+ call Function891fe
+ call Function89b28
+ ret
+
+Jumptable_8a671: ; 8a671 (22:6671)
+ dw Function8a679
+ dw Function8a6cd
+ dw Function8a8c3
+ dw Function8a930
+
+
+Function8a679: ; 8a679 (22:6679)
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call CloseSRAM
+ call OpenSRAMBank4
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call Function891ab
+ call CloseSRAM
+.asm_8a6a3
+ call Function89a57
+ jr c, .asm_8a6a3
+ and a
+ jr z, Function8a679
+ ld hl, Jumptable_8a6bc
+ dec a
+ rst JumpTable
+ jr c, Function8a679
+ call Function891fe
+ call Function8b677
+ call Function89448
+ ret
+
+Jumptable_8a6bc: ; 8a6bc (22:66bc)
+ dw Function8a6c0
+ dw Function8a6c5
+
+
+Function8a6c0: ; 8a6c0 (22:66c0)
+ call PlayClickSFX
+ and a
+ ret
+
+Function8a6c5: ; 8a6c5 (22:66c5)
+ call PlayClickSFX
+ call Function89d0d
+ scf
+ ret
+
+Function8a6cd: ; 8a6cd (22:66cd)
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function8a757
+ call CloseSRAM
+.asm_8a6e5
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89856
+ call Function89a2e
+ call Function891ab
+ xor a
+ ld [wd02f], a
+ call CloseSRAM
+.asm_8a6fb
+ call Function89b97
+ call Function89c67
+ jr c, .asm_8a718
+ ld a, b
+ and a
+ jr z, .asm_8a6fb
+ call PlayClickSFX
+ call Function89448
+ ld a, [wd011]
+ ld hl, Jumptable_8a74f
+ rst JumpTable
+ jr nc, .asm_8a6e5
+ jr .asm_8a742
+.asm_8a718
+ call OpenSRAMBank4
+ call Function8a765
+ call CloseSRAM
+ jr nc, .asm_8a73f
+ call Mobile22_SetBGMapMode0
+ call Function89448
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ call WaitBGMap
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a6e5
+.asm_8a73f
+ call CloseSRAM
+.asm_8a742
+ call ClearBGPalettes
+ call Function89448
+ call Function891d3
+ call Function8b677
+ ret
+
+Jumptable_8a74f: ; 8a74f (22:674f)
+ dw Function8a78c
+ dw Function8a7cb
+ dw Function8a818
+ dw Function8a8a1
+
+
+Function8a757: ; 8a757 (22:6757)
+ call Function8939a
+ xor a
+ ld [wd010], a
+ ld [wd011], a
+ ld [wd012], a
+ ret
+
+Function8a765: ; 8a765 (22:6765)
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld de, wd002
+ ld c, $6
+ call Function89185
+ pop bc
+ jr nz, .asm_8a78a
+ push bc
+ ld hl, $11
+ add hl, bc
+ ld de, wd008
+ ld c, $8
+ call Function89185
+ pop bc
+ jr nz, .asm_8a78a
+ and a
+ ret
+.asm_8a78a
+ scf
+ ret
+
+Function8a78c: ; 8a78c (22:678c)
+ call Function891fe
+ ld de, wd002
+ ld b, $5
+ callba NamingScreen
+ call OpenSRAMBank4
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, wd002
+ call InitName
+ call CloseSRAM
+ call DelayFrame
+ call JoyTextDelay
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ pop bc
+ call Function89844
+ call CloseSRAM
+ and a
+ ret
+
+Function8a7cb: ; 8a7cb (22:67cb)
+ ld a, [MenuSelection]
+ push af
+ call Function891de
+ ld de, wd008
+ ld c, $0
+ callba Function17a68f
+ jr c, .asm_8a7f4
+ ld hl, wd008
+ ld a, $ff
+ ld bc, $8
+ call ByteFill
+ ld h, d
+ ld l, e
+ ld de, wd008
+ ld c, $8
+ call Function89193
+.asm_8a7f4
+ pop af
+ ld [MenuSelection], a
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function89856
+ call Function89a2e
+ call Function891ab
+ call CloseSRAM
+ and a
+ ret
+
+Function8a818: ; 8a818 (22:6818)
+ call Function89a23
+ ld hl, wd002
+ call Function89331
+ jr c, .asm_8a875
+ ld hl, wd008
+ call Function89b45
+ jr nc, .asm_8a87a
+ call OpenSRAMBank4
+ call Function8a765
+ jr nc, .asm_8a863
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, wd002
+ ld c, $6
+ call Function89193
+ pop bc
+ ld hl, $11
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, wd008
+ ld c, $8
+ call Function89193
+ hlcoord 1, 13
+ ld de, .string_8a868
+ call PlaceString
+ call WaitBGMap
+ call JoyWaitAorB
+.asm_8a863
+ call CloseSRAM
+ scf
+ ret
+; 8a868 (22:6868)
+
+.string_8a868
+ db "めいし", $1f, "かきかえ まし", $22, "@"
+
+.asm_8a875
+ ld de, String_8a88b
+ jr .asm_8a87d
+.asm_8a87a
+ ld de, String_8911c
+.asm_8a87d
+ hlcoord 1, 13
+ call PlaceString
+ call WaitBGMap
+ call JoyWaitAorB
+ and a
+ ret
+; 8a88b (22:688b)
+
+String_8a88b: ; 8a88b
+ db "おともだち", $25, "なまえが"
+ next "かかれて いません!@"
+; 8a8a1
+
+Function8a8a1: ; 8a8a1 (22:68a1)
+ call OpenSRAMBank4
+ call Function8a765
+ call CloseSRAM
+ jr nc, .asm_8a8bf
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a8c1
+.asm_8a8bf
+ scf
+ ret
+.asm_8a8c1
+ and a
+ ret
+
+Function8a8c3: ; 8a8c3 (22:68c3)
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function8939a
+ call Function89856
+ call CloseSRAM
+ call Function891ab
+ hlcoord 1, 13
+ ld de, String_8a919
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a90f
+ call OpenSRAMBank4
+ call Function892b4
+ call CloseSRAM
+ call Function89a23
+ call Mobile22_SetBGMapMode0
+ hlcoord 1, 13
+ ld de, String_8a926
+ call PlaceString
+ call WaitBGMap
+ call JoyWaitAorB
+.asm_8a90f
+ call Function89448
+ call Function891fe
+ call Function8b677
+ ret
+; 8a919 (22:6919)
+
+String_8a919: ; 8a919
+ db "このデータ", $1f, "けしますか?@"
+; 8a926
+
+String_8a926: ; 8a926
+ db "データ", $1f, "けしまし", $22, "@"
+; 8a930
+
+Function8a930: ; 8a930 (22:6930)
+ ld a, [MenuSelection]
+ push af
+ xor a
+ ld [wd032], a
+ ld a, $1
+ ld [wd033], a
+ ld a, [wd034]
+ ld [wd0e3], a
+.asm_8a943
+ call Function8b7bd
+ ld a, [wMenuJoypad]
+ and $1
+ jr nz, .asm_8a953
+ ld a, c
+ and a
+ jr nz, .asm_8a943
+ pop af
+ ret
+.asm_8a953
+ call OpenSRAMBank4
+ pop af
+ cp c
+ jr z, .asm_8a995
+ push bc
+ ld [MenuSelection], a
+ call Function8931b
+ push bc
+ ld h, b
+ ld l, c
+ ld de, wd002
+ ld bc, $25
+ call CopyBytes
+ pop de
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ call Function8931b
+ push bc
+ ld h, b
+ ld l, c
+ ld bc, $25
+ call CopyBytes
+ pop de
+ ld hl, wd002
+ ld bc, $25
+ call CopyBytes
+ ld de, SFX_SWITCH_POKEMON
+ call WaitPlaySFX
+ ld de, SFX_SWITCH_POKEMON
+ call WaitPlaySFX
+.asm_8a995
+ call CloseSRAM
+ ret
+
+Function8a999: ; 8a999 (22:6999)
+ ld hl, MenuDataHeader_0x8a9c9
+ call LoadMenuDataHeader
+ ld c, $1
+.asm_8a9a1
+ call Function8a9ce
+ jr c, .asm_8a9bb
+ push bc
+ push de
+ call LoadStandardMenuDataHeader
+ pop de
+ dec e
+ ld a, e
+ ld hl, Jumptable_8a9c5
+ rst JumpTable
+ call Function891fe
+ call Function89b28
+ pop bc
+ jr .asm_8a9a1
+.asm_8a9bb
+ call Function89209
+ call CloseWindow
+ call Function8920f
+ ret
+
+Jumptable_8a9c5: ; 8a9c5 (22:69c5)
+ dw Function8aa0a
+ dw Function8ab3b
+; 8a9c9 (22:69c9)
+
+MenuDataHeader_0x8a9c9: ; 0x8a9c9
+ db $40 ; flags
+ db 04, 11 ; start coords
+ db 11, 18 ; end coords
+; 8a9ce
+
+Function8a9ce: ; 8a9ce (22:69ce)
+ push bc
+ decoord 11, 4
+ ld b, $6
+ ld c, $6
+ call Function89b3b
+ pop bc
+ ld a, c
+ ld hl, MenuDataHeader_0x8a9f2
+ call Function89d5e
+ ld hl, Function8aa09
+ call Function89d85
+ jr c, .asm_8a9ed
+ ld c, a
+ ld e, a
+ and a
+ ret
+.asm_8a9ed
+ ld c, a
+ ld e, $0
+ scf
+ ret
+; 8a9f2 (22:69f2)
+
+MenuDataHeader_0x8a9f2: ; 0x8a9f2
+ db $40 ; flags
+ db 04, 11 ; start coords
+ db 11, 18 ; end coords
+ dw MenuData2_0x8a9fa
+ db 1 ; default option
+; 0x8a9fa
+
+MenuData2_0x8a9fa: ; 0x8a9fa
+ db $a0 ; flags
+ db 3 ; items
+ db "へんしゅう@"
+ db "みる@"
+ db "やめる@"
+; 0x8aa09
+
+Function8aa09: ; 8aa09
+ ret
+; 8aa0a
+
+Function8aa0a: ; 8aa0a (22:6a0a)
+ ld a, $1
+ ld [wd02f], a
+ ld [wd011], a
+ xor a
+ ld [wd010], a
+ ld [wd012], a
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function891fe
+ call ClearBGPalettes
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+.asm_8aa3a
+ call Function8987f
+ call Function89a2e
+ call Function891ab
+.asm_8aa43
+ call Function89b97
+ call Function89c67
+ jr c, .asm_8aa61
+ ld a, b
+ and a
+ jr z, .asm_8aa43
+ call PlayClickSFX
+ call Function89448
+ ld a, [wd011]
+ dec a
+ ld hl, Jumptable_8aa6d
+ rst JumpTable
+ jr nc, .asm_8aa3a
+ jr .asm_8aa69
+.asm_8aa61
+ call Function89448
+ call Function8ab11
+ jr nc, .asm_8aa3a
+.asm_8aa69
+ call Function89448
+ ret
+
+Jumptable_8aa6d: ; 8aa6d (22:6a6d)
+ dw Function8aa73
+ dw Function8aab6
+ dw Function8ab11
+
+
+Function8aa73: ; 8aa73 (22:6a73)
+ ld a, [MenuSelection]
+ ld e, a
+ push de
+ call Function891de
+ ld de, wd008
+ ld c, $0
+ callba Function17a68f
+ jr c, .asm_8aa9d
+ ld hl, wd008
+ ld a, $ff
+ ld bc, $8
+ call ByteFill
+ ld h, d
+ ld l, e
+ ld de, wd008
+ ld c, $8
+ call Function89193
+.asm_8aa9d
+ call Function891fe
+ call ClearBGPalettes
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ pop de
+ ld a, e
+ ld [MenuSelection], a
+ and a
+ ret
+
+Function8aab6: ; 8aab6 (22:6ab6)
+ call Function89a23
+ ld hl, wd008
+ call Function89b45
+ jr nc, Function8ab00
+ call OpenSRAMBank4
+ ld de, wd008
+ ld hl, $a603
+ ld c, $8
+ call Function89185
+ jr z, .asm_8aaeb
+ ld hl, wd008
+ ld de, $a603
+ ld c, $8
+ call Function89193
+ hlcoord 1, 13
+ ld de, String_8aaf0
+ call PlaceString
+ call WaitBGMap
+ call JoyWaitAorB
+.asm_8aaeb
+ call CloseSRAM
+ scf
+ ret
+; 8aaf0 (22:6af0)
+
+String_8aaf0: ; 8aaf0
+ db "あたらしい めいし<PKMN>できまし<LNBRK>@"
+; 8ab00
+
+Function8ab00: ; 8ab00
+ ld de, String_8911c
+ hlcoord 1, 13
+ call PlaceString
+ call WaitBGMap
+ call Mobile22_ButtonSound
+ and a
+ ret
+
+Function8ab11: ; 8ab11 (22:6b11)
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ ld c, $8
+ call Function89185
+ call CloseSRAM
+ jr z, .asm_8ab37
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8ab39
+.asm_8ab37
+ scf
+ ret
+.asm_8ab39
+ and a
+ ret
+
+Function8ab3b: ; 8ab3b (22:6b3b)
+.pressed_start
+ call Function891fe
+ call ClearBGPalettes
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function8987f
+ call OpenSRAMBank4
+ hlcoord 1, 13
+ ld bc, $a007
+ call Function89a0c
+ call CloseSRAM
+ call Function891ab
+ call .JoypadLoop
+ jr c, .pressed_start
+ ret
+
+.JoypadLoop: ; 8ab77 (22:6b77)
+ call JoyTextDelay_ForcehJoyDown
+ bit A_BUTTON_F, c
+ jr nz, .a_b_button
+ bit B_BUTTON_F, c
+ jr nz, .a_b_button
+ bit START_F, c
+ jr z, .JoypadLoop
+ call PlayClickSFX
+ call Function89d0d
+ scf
+ ret
+
+.a_b_button
+ call PlayClickSFX
+ and a
+ ret
+
+Function8ab93: ; 8ab93 (22:6b93)
+ call ClearBGPalettes
+ call LoadStandardMenuDataHeader
+ callba Function105688
+ call ClearSprites
+ call Function891fe
+ call Function89b28
+ ret
+; 8aba9 (22:6ba9)
+
+Function8aba9: ; 8aba9
+ ld a, $2
+ call Function8b94a
+ ld a, $1
+ ld [wd032], a
+.asm_8abb3
+ call Function891fe
+ call Function8b677
+.asm_8abb9
+ call Function8b7bd
+ jr z, .asm_8abdf
+ ld a, c
+ ld [MenuSelection], a
+ call OpenSRAMBank4
+ call Function8931b
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ call CloseSRAM
+ jr c, .asm_8abe2
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call CloseSRAM
+ jr .asm_8abb9
+
+.asm_8abdf
+ xor a
+ ld c, a
+ ret
+
+.asm_8abe2
+ call PlayClickSFX
+.asm_8abe5
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call CloseSRAM
+ call OpenSRAMBank4
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call CloseSRAM
+ call Function891ab
+.asm_8ac0f
+ call Function89a57
+ jr c, .asm_8ac0f
+ and a
+ jr z, .asm_8abe5
+ cp $2
+ jr z, .asm_8ac0f
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld de, String_8ac3b
+ call PlaceString
+ ld a, $1
+ call Function8925e
+ jp c, .asm_8abb3
+ ld a, [MenuSelection]
+ ld c, a
+ ret
+; 8ac3b
+
+String_8ac3b: ; 8ac3b
+ db "こ", $25, "ともだち", $1d, "でんわを"
+ next "かけますか?@"
+; 8ac4e
+
+Function8ac4e: ; 8ac4e
+ xor a
+ ld [MenuSelection], a
+ push de
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ pop bc
+ call Function89844
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call Function891ab
+ ret
+; 8ac70
+
+Function8ac70: ; 8ac70
+ push de
+ ld a, $3
+ call Function8b94a
+
+Function8ac76: ; 8ac76
+ call Function891fe
+ call Function8b677
+
+Function8ac7c: ; 8ac7c
+ call Function8b7bd
+ jr z, .asm_8acf0
+ ld a, c
+ ld [wd02f], a
+ ld [MenuSelection], a
+ call OpenSRAMBank4
+ call Function8931b
+ call Function8932d
+ call CloseSRAM
+ jr nc, .asm_8acb0
+ call OpenSRAMBank4
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ call CloseSRAM
+ jr nc, .asm_8accc
+ call OpenSRAMBank4
+ call Function892b7
+ call CloseSRAM
+ jr .asm_8accc
+
+.asm_8acb0
+ call Function8ad0b
+ jr c, Function8ac76
+ and a
+ jr nz, .asm_8accc
+ call OpenSRAMBank4
+ ld h, b
+ ld l, c
+ ld d, $0
+ ld e, $6
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld c, $1f
+ call Function89193
+ jr .asm_8ace4
+
+.asm_8accc
+ pop hl
+ call OpenSRAMBank4
+ ld d, b
+ ld e, c
+ ld c, $6
+ call Function89193
+ ld a, $6
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ ld c, $1f
+ call Function89193
+
+.asm_8ace4
+ call CloseSRAM
+ call LoadStandardFont
+ ld a, [wd02f]
+ ld c, a
+ and a
+ ret
+
+.asm_8acf0
+ ld hl, UnknownText_0x8ad06
+ call PrintText
+ ld a, $2
+ call Function89259
+ jp c, Function8ac7c
+ call LoadStandardFont
+ pop de
+ ld c, $0
+ scf
+ ret
+; 8ad06
+
+UnknownText_0x8ad06: ; 0x8ad06
+ ; Finish registering CARDS?
+ text_jump UnknownText_0x1c554a
+ db "@"
+; 0x8ad0b
+
+Function8ad0b: ; 8ad0b
+.asm_8ad0b
+ ld a, [MenuSelection]
+ ld [wd02f], a
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ push bc
+ call Function89844
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call CloseSRAM
+ call Function891ab
+ pop bc
+.asm_8ad37
+ push bc
+ call Function89a57
+ pop bc
+ jr c, .asm_8ad37
+ and a
+ jr z, .asm_8ad0b
+ cp $2
+ jr z, .asm_8ad37
+ call Mobile22_SetBGMapMode0
+ push bc
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld de, String_8ad89
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $2
+ call Function8925e
+ jr c, .asm_8ad87
+ call Mobile22_SetBGMapMode0
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld de, String_8ad9c
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $1
+ call Function8925e
+ jr c, .asm_8ad84
+ ld a, $0
+ jr .asm_8ad86
+
+.asm_8ad84
+ ld a, $1
+
+.asm_8ad86
+ and a
+
+.asm_8ad87
+ pop bc
+ ret
+; 8ad89
+
+String_8ad89: ; 8ad89
+ db "こ", $25, "めいし", $1f, "けして"
+ next "いれかえますか?@"
+; 8ad9c
+
+String_8ad9c: ; 8ad9c
+ db "おともだち", $25, "なまえを"
+ next "のこして おきますか?@"
+; 8adb3
+
+Function8adb3: ; 8adb3
+ call Function891de
+ call Function8a262
+ push af
+ call Function891de
+ pop af
+ ret
+; 8adbf
+
+Function8adbf: ; 8adbf
+ call OpenSRAMBank4
+ ld hl, $a603
+ call Function89b45
+ call CloseSRAM
+ ret
+; 8adcc
+
+Function8adcc: ; 8adcc
+ call OpenSRAMBank4
+ call Function8b3b0
+ call CloseSRAM
+ ret nc
+ cp $2
+ ret z
+ scf
+ ret
+; 8addb
--- /dev/null
+++ b/mobile/mobile_22_2.asm
@@ -1,0 +1,1162 @@
+Function8b342:: ; 8b342
+; Loads the secondary map header pointer, then runs through a
+; dw with three dummy functions. Spends a lot of energy
+; doing pretty much nothing.
+ call GetSecondaryMapHeaderPointer
+ ld d, h
+ ld e, l
+
+; Everything between here and "ret" is useless.
+ xor a
+.loop
+ push af
+ ld hl, .dw
+ rst JumpTable
+ pop af
+ inc a
+ cp 3
+ jr nz, .loop
+ ret
+; 8b354
+
+.dw ; 8b354
+ dw .zero
+ dw .one
+ dw .two
+; 8b35a
+
+.zero ; 8b35a
+ mobile
+; 8b35b
+
+.one ; 8b35b
+ mobile
+; 8b35c
+
+.two ; 8b35c
+ mobile
+; 8b35d
+
+Function8b35d: ; 8b35d
+ ld a, h
+ cp d
+ ret nz
+ ld a, l
+ cp e
+ ret
+; 8b363
+
+Function8b363: ; 8b363
+ push bc
+ callba Mobile_AlwaysReturnNotCarry
+ pop bc
+ ret
+; 8b36c
+
+Function8b36c: ; 8b36c (22:736c)
+ ; [bc + (0:4)] = -1
+ push bc
+ ld h, b
+ ld l, c
+ ld bc, 4
+ ld a, -1
+ call ByteFill
+ pop bc
+ ret
+
+Function8b379: ; 8b379 (22:7379)
+ ; d = [bc + e]
+ push bc
+ ld a, c
+ add e
+ ld c, a
+ ld a, $0
+ adc b
+ ld b, a
+ ld a, [bc]
+ ld d, a
+ pop bc
+ ret
+
+Function8b385: ; 8b385 (22:7385)
+ ; [bc + e] = d
+ push bc
+ ld a, c
+ add e
+ ld c, a
+ ld a, $0
+ adc b
+ ld b, a
+ ld a, d
+ ld [bc], a
+ pop bc
+ ret
+
+Function8b391: ; 8b391 (22:7391)
+ ; find first e in range(4) such that [bc + e] == -1
+ ; if none exist, return carry
+ push bc
+ ld e, 0
+ ld d, 4
+.loop
+ ld a, [bc]
+ inc bc
+ cp -1
+ jr z, .done
+ inc e
+ dec d
+ jr nz, .loop
+ dec e
+ scf
+.done
+ pop bc
+ ret
+
+Function8b3a4: ; 8b3a4 (22:73a4)
+ ; strcmp(hl, bc, 4)
+ push de
+ push bc
+ ld d, b
+ ld e, c
+ ld c, 4
+ call Function89185
+ pop bc
+ pop de
+ ret
+
+Function8b3b0: ; 8b3b0 (22:73b0)
+ ld bc, $a037 ; 4:a037
+ ld a, [$a60b]
+ and a
+ jr z, .asm_8b3c2
+ cp $3
+ jr nc, .asm_8b3c2
+ call Function8b391
+ jr c, .asm_8b3c9
+.asm_8b3c2
+ call Function8b36c
+ xor a
+ ld [$a60b], a
+.asm_8b3c9
+ ld a, [$a60b]
+ ret
+
+Function8b3cd: ; 8b3cd (22:73cd)
+ push de
+ push bc
+ ld e, $4
+.asm_8b3d1
+ ld a, [bc]
+ inc bc
+ call Function8998b
+ inc hl
+ dec e
+ jr nz, .asm_8b3d1
+ pop bc
+ pop de
+ ret
+
+Function8b3dd: ; 8b3dd (22:73dd)
+ push de
+ push bc
+ call JoyTextDelay_ForcehJoyDown ; joypad
+ ld a, c
+ pop bc
+ pop de
+ bit A_BUTTON_F, a
+ jr nz, .a_button
+ bit B_BUTTON_F, a
+ jr nz, .b_button
+ bit D_UP_F, a
+ jr nz, .d_up
+ bit D_DOWN_F, a
+ jr nz, .d_down
+ and a
+ ret
+
+.a_button
+ ld a, e
+ cp $3
+ jr z, .e_is_zero
+ inc e
+ ld d, 0
+ call Function8b385
+ xor a
+ ld [wd010], a
+ ret
+
+.e_is_zero
+ call PlayClickSFX
+ ld d, $0
+ scf
+ ret
+
+.b_button
+ ld a, e
+ and a
+ jr nz, .e_is_not_zero
+ call PlayClickSFX
+ ld d, -1
+ call Function8b385
+ ld d, 1
+ scf
+ ret
+
+.e_is_not_zero
+ ld d, -1
+ call Function8b385
+ dec e
+ xor a
+ ld [wd010], a
+ ret
+
+.d_up
+ call Function8b379
+ ld a, d
+ cp $a
+ jr c, .less_than_10_up_1
+ ld d, $9
+.less_than_10_up_1
+ inc d
+ ld a, d
+ cp $a
+ jr c, .less_than_10_up_2
+ ld d, $0
+.less_than_10_up_2
+ call Function8b385
+ xor a
+ ld [wd010], a
+ ret
+
+.d_down
+ call Function8b379
+ ld a, d
+ cp $a
+ jr c, .less_than_10_down
+ ld d, $0
+.less_than_10_down
+ ld a, d
+ dec d
+ and a
+ jr nz, .nonzero_down
+ ld d, $9
+.nonzero_down
+ call Function8b385
+ xor a
+ ld [wd010], a
+ ret
+
+Function8b45c: ; 8b45c (22:745c)
+ call Function8b36c
+ xor a
+ ld [wd010], a
+ ld [wd012], a
+ call Function8b391
+ ld d, $0
+ call Function8b385
+.asm_8b46e
+ call Mobile22_SetBGMapMode0
+ call Function8b493
+ call Function8b4cc
+ call Function8b518
+ call Function89b78
+ push bc
+ call Function8b4fd
+ call Function89c44
+ ld a, $1
+ ld [hBGMapMode], a
+ pop bc
+ call Function8b3dd
+ jr nc, .asm_8b46e
+ ld a, d
+ and a
+ ret z
+ scf
+ ret
+
+Function8b493: ; 8b493 (22:7493)
+ push bc
+ call Mobile22_SetBGMapMode0
+ call Function8b521
+ ld hl, Jumptable_8b4a0
+ pop bc
+ rst JumpTable
+ ret
+
+Jumptable_8b4a0: ; 8b4a0 (22:74a0)
+ dw Function8b4a4
+ dw Function8b4b8
+
+
+Function8b4a4: ; 8b4a4 (22:74a4)
+ push bc
+ push de
+ call Function8b4d8
+ call TextBox
+ pop de
+ pop bc
+ call Function8b4cc
+ call Function8b518
+ call Function8b3cd
+ ret
+
+Function8b4b8: ; 8b4b8 (22:74b8)
+ push bc
+ push de
+ call Function8b4ea
+ call Function89b3b
+ pop de
+ pop bc
+ call Function8b4cc
+ call Function8b518
+ call Function8b3cd
+ ret
+
+Function8b4cc: ; 8b4cc (22:74cc)
+ push bc
+ ld hl, Unknown_8b529
+ call Function8b50a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop bc
+ ret
+
+Function8b4d8: ; 8b4d8 (22:74d8)
+ ld hl, Unknown_8b529
+ call Function8b50a
+ push hl
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld c, a
+ pop hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+Function8b4ea: ; 8b4ea (22:74ea)
+ ld hl, Unknown_8b529
+ call Function8b50a
+ push hl
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld c, a
+ pop hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ret
+
+Function8b4fd: ; 8b4fd (22:74fd)
+ ld hl, Unknown_8b529 + 4
+ call Function8b50a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld d, a
+ ret
+
+Function8b50a: ; 8b50a (22:750a)
+ ld a, [wd02e]
+ and a
+ ret z
+ ld b, $0
+ ld c, $8
+.asm_8b513
+ add hl, bc
+ dec a
+ jr nz, .asm_8b513
+ ret
+
+Function8b518: ; 8b518 (22:7518)
+ push de
+ ld d, $0
+ ld e, $14
+ add hl, de
+ inc hl
+ pop de
+ ret
+
+Function8b521: ; 8b521 (22:7521)
+ ld hl, Unknown_8b529 + 7
+ call Function8b50a
+ ld a, [hl]
+ ret
+; 8b529 (22:7529)
+
+Unknown_8b529: ; 8b529
+ dwcoord 2, 5
+ db 1, 4, $20, $49, 0, 1
+ dwcoord 7, 4
+ db 1, 4, $48, $41, 0, 0
+; 8b539
+
+Function8b539: ; 8b539 (22:7539)
+ ld bc, wd017
+ call Function8b36c
+ xor a
+ ld [wd012], a
+ ld [wd02e], a
+ call Function8b493
+ call Function8b4fd
+ ld e, $0
+ call Function89c44
+ call CGBOnly_LoadEDTile
+ ret
+
+Function8b555: ; 8b555 (22:7555)
+.loop
+ ld hl, UnknownText_0x8b5ce
+ call PrintText
+ ld bc, wd017
+ call Function8b45c
+ jr c, .asm_8b5c8
+ call Function89448
+ ld bc, wd017
+ call Function8b493
+ ld bc, wd017
+ call Function8b664
+ jr nz, .asm_8b57c
+ ld hl, UnknownText_0x8b5e2
+ call PrintText
+ jr .loop
+
+.asm_8b57c
+ ld hl, UnknownText_0x8b5d3
+ call PrintText
+ ld bc, wd013
+ call Function8b45c
+ jr c, .loop
+ ld bc, wd017
+ ld hl, wd013
+ call Function8b3a4
+ jr z, .strings_equal
+ call Function89448
+ ld bc, wd013
+ call Function8b493
+ ld hl, UnknownText_0x8b5d8
+ call PrintText
+ jr .asm_8b57c
+
+.strings_equal
+ call OpenSRAMBank4
+ ld hl, wd013
+ ld de, $a037 ; 4:a037
+ ld bc, $4
+ call CopyBytes
+ call CloseSRAM
+ call Function89448
+ ld bc, wd013
+ call Function8b493
+ ld hl, UnknownText_0x8b5dd
+ call PrintText
+ and a
+.asm_8b5c8
+ push af
+ call Function89448
+ pop af
+ ret
+; 8b5ce (22:75ce)
+
+UnknownText_0x8b5ce: ; 0x8b5ce
+ ; Please enter any four-digit number.
+ text_jump UnknownText_0x1bc187
+ db "@"
+; 0x8b5d3
+
+UnknownText_0x8b5d3: ; 0x8b5d3
+ ; Enter the same number to confirm.
+ text_jump UnknownText_0x1bc1ac
+ db "@"
+; 0x8b5d8
+
+UnknownText_0x8b5d8: ; 0x8b5d8
+ ; That's not the same number.
+ text_jump UnknownText_0x1bc1cf
+ db "@"
+; 0x8b5dd
+
+UnknownText_0x8b5dd: ; 0x8b5dd
+ ; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER.
+ text_jump UnknownText_0x1bc1eb
+ db "@"
+; 0x8b5e2
+
+UnknownText_0x8b5e2: ; 0x8b5e2
+ ; 0000 is invalid!
+ text_jump UnknownText_0x1bc23e
+ db "@"
+; 0x8b5e7
+
+Function8b5e7: ; 8b5e7 (22:75e7)
+ ld bc, wd013
+ call Function8b36c
+ xor a
+ ld [wd012], a
+ ld [wd02e], a
+ call Function8b493
+ call Function891ab
+ call Function8b4fd
+ ld e, $0
+ call Function89c44
+.asm_8b602
+ ld hl, UnknownText_0x8b642
+ call PrintText
+ ld bc, wd013
+ call Function8b45c
+ jr c, .asm_8b63c
+ call Function89448
+ ld bc, wd013
+ call Function8b493
+ call OpenSRAMBank4
+ ld hl, $a037 ; 4:a037
+ call Function8b3a4
+ call CloseSRAM
+ jr z, .asm_8b635
+ ld hl, UnknownText_0x8b647
+ call PrintText
+ ld bc, wd013
+ call Function8b36c
+ jr .asm_8b602
+.asm_8b635
+ ld hl, UnknownText_0x8b64c
+ call PrintText
+ and a
+.asm_8b63c
+ push af
+ call Function89448
+ pop af
+ ret
+; 8b642 (22:7642)
+
+UnknownText_0x8b642: ; 0x8b642
+ ; Enter the CARD FOLDER PASSCODE.
+ text_jump UnknownText_0x1bc251
+ db "@"
+; 0x8b647
+
+UnknownText_0x8b647: ; 0x8b647
+ ; Incorrect PASSCODE!
+ text_jump UnknownText_0x1bc272
+ db "@"
+; 0x8b64c
+
+UnknownText_0x8b64c: ; 0x8b64c
+ ; CARD FOLDER open.@ @
+ text_jump UnknownText_0x1bc288
+ start_asm
+ ld de, SFX_TWINKLE
+ call PlaySFX
+ call WaitSFX
+ ld c, $8
+ call DelayFrames
+ ld hl, .string_8b663
+ ret
+.string_8b663
+ db "@"
+; 8b664
+
+Function8b664: ; 8b664 (22:7664)
+ push bc
+ ld de, $4
+.asm_8b668
+ ld a, [bc]
+ cp $0
+ jr nz, .asm_8b66e
+ inc d
+.asm_8b66e
+ inc bc
+ dec e
+ jr nz, .asm_8b668
+ pop bc
+ ld a, d
+ cp $4
+ ret
+
+Function8b677: ; 8b677
+ call ClearBGPalettes
+ call DisableLCD
+ call Function8b690
+ call Function8b6bb
+ call Function8b6ed
+ call EnableLCD
+ call Function891ab
+ call SetPalettes
+ ret
+; 8b690
+
+Function8b690: ; 8b690
+ ld hl, GFX_17afa5 + $514
+ ld de, VTiles2
+ ld bc, $160
+ ld a, BANK(GFX_17afa5)
+ call FarCopyBytes
+ ld hl, GFX_17afa5 + $514 + $160 - $10
+ ld de, VTiles2 tile $61
+ ld bc, $10
+ ld a, BANK(GFX_17afa5)
+ call FarCopyBytes
+ ld hl, GFX_17afa5 + $514 + $160
+ ld de, VTiles1 tile $6e
+ ld bc, $10
+ ld a, BANK(GFX_17afa5)
+ call FarCopyBytes
+ ret
+; 8b6bb
+
+Function8b6bb: ; 8b6bb
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_8b6d5
+ ld de, UnknBGPals
+ ld bc, $0018
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function8949c
+ ret
+; 8b6d5
+
+Palette_8b6d5: ; 8b6d5
+ RGB 31, 31, 31
+ RGB 31, 21, 00
+ RGB 14, 07, 03
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 31, 21, 00
+ RGB 22, 09, 17
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 31, 21, 00
+ RGB 06, 24, 08
+ RGB 00, 00, 00
+; 8b6ed
+
+Function8b6ed: ; 8b6ed
+ hlcoord 0, 0, AttrMap
+ ld bc, $012c
+ xor a
+ call ByteFill
+ hlcoord 0, 14, AttrMap
+ ld bc, $0050
+ ld a, $7
+ call ByteFill
+ ret
+; 8b703
+
+Function8b703: ; 8b703
+ call Mobile22_SetBGMapMode0
+ push hl
+ ld a, $c
+ ld [hli], a
+ inc a
+ call Function8b73e
+ inc a
+ ld [hl], a
+ pop hl
+ push hl
+ push bc
+ ld de, SCREEN_WIDTH
+ add hl, de
+.asm_8b717
+ push hl
+ ld a, $f
+ ld [hli], a
+ ld a, $7f
+ call Function8b73e
+ ld a, $11
+ ld [hl], a
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ dec b
+ jr nz, .asm_8b717
+ call Function8b732
+ pop bc
+ pop hl
+ jr Function8b744
+; 8b732
+
+Function8b732: ; 8b732
+ ld a, $12
+ ld [hli], a
+ ld a, $13
+ call Function8b73e
+ ld a, $14
+ ld [hl], a
+ ret
+; 8b73e
+
+Function8b73e: ; 8b73e
+ ld d, c
+.asm_8b73f
+ ld [hli], a
+ dec d
+ jr nz, .asm_8b73f
+ ret
+; 8b744
+
+Function8b744: ; 8b744
+ ld de, AttrMap - TileMap
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ xor a
+.asm_8b74d
+ push bc
+ push hl
+.asm_8b74f
+ ld [hli], a
+ dec c
+ jr nz, .asm_8b74f
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8b74d
+ ret
+; 8b75d
+
+Function8b75d: ; 8b75d
+ call Mobile22_SetBGMapMode0
+ hlcoord 0, 0
+ ld a, $1
+ ld bc, SCREEN_WIDTH
+ call ByteFill
+ hlcoord 0, 1
+ ld a, $2
+ ld [hl], a
+ hlcoord 9, 1
+ ld c, $b
+ call Function8b788
+ hlcoord 1, 1
+ ld a, $4
+ ld e, $8
+.asm_8b780
+ ld [hli], a
+ inc a
+ dec e
+ jr nz, .asm_8b780
+ jr Function8b79e
+; 8b787
+
+Function8b787: ; 8b787
+ ret
+; 8b788
+
+Function8b788: ; 8b788
+.asm_8b788
+ ld a, $2
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $1
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $3
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $1
+ ld [hli], a
+ dec c
+ jr nz, .asm_8b788
+ ret
+; 8b79e
+
+Function8b79e: ; 8b79e
+ hlcoord 0, 1, AttrMap
+ ld a, $1
+ ld [hli], a
+ hlcoord 9, 1, AttrMap
+ ld e, $b
+.asm_8b7a9
+ ld a, $2
+ ld [hli], a
+ dec e
+ ret z
+ xor a
+ ld [hli], a
+ dec e
+ ret z
+ ld a, $1
+ ld [hli], a
+ dec e
+ ret z
+ xor a
+ ld [hli], a
+ dec e
+ jr nz, .asm_8b7a9
+ ret
+; 8b7bd
+
+Function8b7bd: ; 8b7bd
+ call Function8b855
+ ld hl, MenuDataHeader_0x8b867
+ call CopyMenuDataHeader
+ ld a, [wd030]
+ ld [wMenuCursorBuffer], a
+ ld a, [wd031]
+ ld [wMenuScrollPosition], a
+ ld a, [wd032]
+ and a
+ jr z, .asm_8b7e0
+ ld a, [wMenuFlags]
+ set 3, a
+ ld [wMenuFlags], a
+
+.asm_8b7e0
+ ld a, [wd0e3]
+ and a
+ jr z, .asm_8b7ea
+ dec a
+ ld [wScrollingMenuCursorPosition], a
+
+.asm_8b7ea
+ hlcoord 0, 2
+ ld b, $b
+ ld c, $12
+ call Function8b703
+ call Function8b75d
+ call UpdateSprites
+ call Function89209
+ call ScrollingMenu
+ call Function8920f
+ ld a, [wMenuJoypad]
+ cp $2
+ jr z, .asm_8b823
+ cp $20
+ jr nz, .asm_8b813
+ call Function8b832
+ jr .asm_8b7ea
+
+.asm_8b813
+ cp $10
+ jr nz, .asm_8b81c
+ call Function8b83e
+ jr .asm_8b7ea
+
+.asm_8b81c
+ ld a, [MenuSelection]
+ cp $ff
+ jr nz, .asm_8b824
+
+.asm_8b823
+ xor a
+
+.asm_8b824
+ ld c, a
+ ld a, [wMenuCursorY]
+ ld [wd030], a
+ ld a, [wMenuScrollPosition]
+ ld [wd031], a
+ ret
+; 8b832
+
+Function8b832: ; 8b832
+ ld a, [wMenuScrollPosition]
+ ld hl, wMenuData2Items
+ sub [hl]
+ jr nc, Function8b84b
+ xor a
+ jr Function8b84b
+; 8b83e
+
+Function8b83e: ; 8b83e
+ ld a, [wMenuScrollPosition]
+ ld hl, wMenuData2Items
+ add [hl]
+ cp $24
+ jr c, Function8b84b
+ ld a, $24
+
+Function8b84b: ; 8b84b
+ ld [wMenuScrollPosition], a
+ ld a, [wMenuCursorY]
+ ld [wMenuCursorBuffer], a
+ ret
+; 8b855
+
+Function8b855: ; 8b855
+ ld a, $28
+ ld hl, wd002
+ ld [hli], a
+ ld c, $28
+ xor a
+.asm_8b85e
+ inc a
+ ld [hli], a
+ dec c
+ jr nz, .asm_8b85e
+ ld a, $ff
+ ld [hl], a
+ ret
+; 8b867
+
+MenuDataHeader_0x8b867: ; 0x8b867
+ db $40 ; flags
+ db 03, 01 ; start coords
+ db 13, 18 ; end coords
+ dw MenuData2_0x8b870
+ db 1 ; default option
+; 0x8b86f
+
+ db 0
+
+MenuData2_0x8b870: ; 0x8b870
+ db $3c ; flags
+ db 5 ; items
+ db 3, 1
+ dbw 0, wd002
+ dba Function8b880
+ dba Function8b88c
+ dba Function8b8c8
+; 8b880
+
+Function8b880: ; 8b880
+ ld h, d
+ ld l, e
+ ld de, MenuSelection
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+; 8b88c
+
+Function8b88c: ; 8b88c
+ call OpenSRAMBank4
+ ld h, d
+ ld l, e
+ push hl
+ ld de, String_89116
+ call Function8931b
+ call Function8932d
+ jr c, .asm_8b8a3
+ ld hl, 0
+ add hl, bc
+ ld d, h
+ ld e, l
+
+.asm_8b8a3
+ pop hl
+ push hl
+ call PlaceString
+ pop hl
+ ld d, $0
+ ld e, $6
+ add hl, de
+ push hl
+ ld de, String_89116
+ call Function8931b
+ call Function8934a
+ jr c, .asm_8b8c0
+ ld hl, $0006
+ add hl, bc
+ ld d, h
+ ld e, l
+
+.asm_8b8c0
+ pop hl
+ call PlaceString
+ call CloseSRAM
+ ret
+; 8b8c8
+
+Function8b8c8: ; 8b8c8
+ hlcoord 0, 14
+ ld b, $2
+ ld c, $12
+ call TextBox
+ ld a, [wd033]
+ ld b, 0
+ ld c, a
+ ld hl, Unknown_8b903
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ hlcoord 0, 13
+ ld a, $f
+ ld [hl], a
+ hlcoord 19, 13
+ ld a, $11
+ ld [hl], a
+ ld a, [wMenuScrollPosition]
+ cp $24
+ ret c
+ hlcoord 0, 13
+ ld c, $12
+ call Function8b732
+ ret
+; 8b903
+
+Unknown_8b903: ; 8b903
+ dw String_8b90b
+ dw String_8b919
+ dw String_8b92a
+ dw String_8b938
+
+String_8b90b: db "めいしを えらんでください@" ; Please select a noun.
+String_8b919: db "どの めいしと いれかえますか?@" ; OK to swap with any noun?
+String_8b92a: db "あいてを えらんでください@" ; Please select an opponent.
+String_8b938: db "いれる ところを えらんでください@" ; Please select a location.
+; 8b94a
+
+Function8b94a: ; 8b94a
+ ld [wd033], a
+ xor a
+ ld [wMenuScrollPosition], a
+ ld [wd032], a
+ ld [wd0e3], a
+ ld [wd031], a
+ ld a, $1
+ ld [wd030], a
+ ret
+; 8b960
+
+
+Function8b960: ; 8b960 (22:7960)
+ ld hl, MenuDataHeader_0x8b9ac
+ call LoadMenuDataHeader
+ call Function8b9e9
+ jr c, .asm_8b97a
+ hlcoord 11, 0
+ ld b, $6
+ ld c, $7
+ call Function8b703
+ ld hl, MenuDataHeader_0x8b9b1
+ jr .asm_8b987
+.asm_8b97a
+ hlcoord 11, 0
+ ld b, $a
+ ld c, $7
+ call Function8b703
+ ld hl, MenuDataHeader_0x8b9ca
+.asm_8b987
+ ld a, $1
+ call Function89d5e
+ ld hl, Function8b9ab
+ call Function89d85
+ call ExitMenu
+ jr c, .asm_8b99c
+ call Function8b99f
+ jr nz, .asm_8b99d
+.asm_8b99c
+ xor a
+.asm_8b99d
+ ld c, a
+ ret
+
+Function8b99f: ; 8b99f (22:799f)
+ ld hl, wd002
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret
+; 8b9ab (22:79ab)
+
+Function8b9ab: ; 8b9ab
+ ret
+; 8b9ac
+
+MenuDataHeader_0x8b9ac: ; 0x8b9ac
+ db $40 ; flags
+ db 00, 11 ; start coords
+ db 11, 19 ; end coords
+
+MenuDataHeader_0x8b9b1: ; 0x8b9b1
+ db $40 ; flags
+ db 00, 11 ; start coords
+ db 07, 19 ; end coords
+ dw MenuData2_0x8b9b9
+ db 1 ; default option
+; 0x8b9b9
+
+MenuData2_0x8b9b9: ; 0x8b9b9
+ db $a0 ; flags
+ db 3 ; items
+ db "へんしゅう@" ; EDIT
+ db "いれかえ@" ; REPLACE
+ db "やめる@" ; QUIT
+; 0x8b9ca
+
+MenuDataHeader_0x8b9ca: ; 0x8b9ca
+ db $40 ; flags
+ db 00, 11 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_0x8b9d2
+ db 1 ; default option
+; 0x8b9d2
+
+MenuData2_0x8b9d2: ; 0x8b9d2
+ db $a0 ; flags
+ db 5 ; items
+ db "みる@" ; VIEW
+ db "へんしゅう@" ; EDIT
+ db "いれかえ@" ; REPLACE
+ db "けす@" ; ERASE
+ db "やめる@" ; QUIT
+; 0x8b9e9
+
+Function8b9e9: ; 8b9e9 (22:79e9)
+ call OpenSRAMBank4
+ call Function8931b
+ call Function8932d
+ jr nc, .asm_8b9f6
+ jr .asm_8b9ff
+.asm_8b9f6
+ ld hl, $11
+ add hl, bc
+ call Function89b45
+ jr c, .asm_8ba08
+.asm_8b9ff
+ call Function892b4
+ and a
+ ld de, Unknown_8ba1c
+ jr .asm_8ba0c
+.asm_8ba08
+ ld de, Unknown_8ba1f
+ scf
+.asm_8ba0c
+ push af
+ ld hl, wd002
+.asm_8ba10
+ ld a, [de]
+ inc de
+ ld [hli], a
+ cp $ff
+ jr nz, .asm_8ba10
+ call CloseSRAM
+ pop af
+ ret
+; 8ba1c (22:7a1c)
+
+Unknown_8ba1c: ; 8b1ac
+ db 2, 4, -1
+
+Unknown_8ba1f: ; 8ba1f
+ db 1, 2, 4, 3, -1
+; 8ba24
--- /dev/null
+++ b/mobile/mobile_40.asm
@@ -1,0 +1,8158 @@
+SECTION "mobile_40", ROMX
+
+Function100000: ; 100000
+; d: 1 or 2
+; e: bank
+; bc: addr
+ ld a, [rSVBK]
+ push af
+ ld a, 1
+ ld [rSVBK], a
+
+ call Function100022
+ call Function1000ba
+ call Function100675
+ call Function100057
+ call Function10016f
+ call Function100276
+
+ push bc
+ call Function100301
+ pop bc
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 100022
+
+Function100022: ; 100022
+ push de
+ push bc
+ call SetRAMStateForMobile
+ pop bc
+ pop de
+ ld a, d
+ ld [wcd21], a
+ ld a, e
+ ld [wcd22], a
+ ld a, c
+ ld [wcd23], a
+ ld a, b
+ ld [wcd24], a
+ callba Function10127e
+ callba MobileFunc_106462
+ callba Function106464 ; load broken gfx
+ callba Function11615a ; init RAM
+ ld hl, VramState
+ set 1, [hl]
+ ret
+; 100057
+
+Function100057: ; 100057
+ call DisableMobile
+ call ReturnToMapFromSubmenu
+ ld hl, VramState
+ res 1, [hl]
+ ret
+; 100063
+
+SetRAMStateForMobile: ; 100063
+ xor a
+ ld hl, BGMapBuffer
+ ld bc, $65
+ call ByteFill
+ xor a
+ ld hl, wc300
+ ld bc, $100
+ call ByteFill
+ ld a, [rIE]
+ ld [BGMapBuffer], a
+ xor a
+ ld [hMapAnims], a
+ ld [hLCDCPointer], a
+ ret
+; 100082
+
+EnableMobile: ; 100082
+ xor a
+ ld hl, OverworldMap
+ ld bc, OverworldMapEnd - OverworldMap
+ call ByteFill
+
+ di
+ call DoubleSpeed
+ xor a
+ ld [rIF], a
+ ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL
+ ld [rIE], a
+ xor a
+ ld [hMapAnims], a
+ ld [hLCDCPointer], a
+ ld a, $01
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ ei
+
+ ret
+; 0x1000a4
+
+DisableMobile: ; 1000a4
+ di
+ xor a
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ xor a
+ ld [hVBlank], a
+ call NormalSpeed
+ xor a
+ ld [rIF], a
+ ld a, [BGMapBuffer]
+ ld [rIE], a
+ ei
+ ret
+; 1000ba
+
+Function1000ba: ; 1000ba
+.loop
+ ; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex])
+ ld hl, wcd23
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wMobileCommsJumptableIndex]
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [wcd22]
+ call GetFarHalfword
+ ld a, [wcd22]
+ rst FarCall
+
+ call Function1000e8
+ call Function1000fa
+ call Function100144
+ call Function100163
+ ld a, [wcd2b]
+ and a
+ jr z, .loop
+ call DelayFrame
+ ret
+; 1000e8
+
+Function1000e8: ; 1000e8
+ ld hl, wcd29
+ bit 7, [hl]
+ ret z
+ callba Function115dd3
+ ld hl, wcd29
+ set 6, [hl]
+ ret
+; 1000fa
+
+Function1000fa: ; 1000fa
+ ld a, [wc30d]
+ and a
+ ret z
+ ld hl, wcd29
+ bit 4, [hl]
+ ret z
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_100117
+ callba Function11619d
+ ld hl, wcd29
+ set 6, [hl]
+ ret
+
+.asm_100117
+ di
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ and $13
+ ld [rIE], a
+ xor a
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ ei
+
+ ld a, [wLinkMode]
+ push af
+ xor a
+ ld [wLinkMode], a
+ ld a, $04
+ ld [wc314 + 5], a
+ callba Function11619d
+ ld hl, wcd29
+ set 6, [hl]
+ pop af
+ ld [wLinkMode], a
+ ret
+; 100144
+
+Function100144: ; 100144
+ ld hl, wcd29
+ bit 5, [hl]
+ jr z, .asm_100155
+ res 5, [hl]
+ res 2, [hl]
+ res 6, [hl]
+ call Function100320
+ ret
+
+.asm_100155
+ bit 2, [hl]
+ ret z
+ res 2, [hl]
+ res 6, [hl]
+ callba HDMATransferTileMapToWRAMBank3
+ ret
+; 100163
+
+Function100163: ; 100163
+ ld hl, wcd29
+ bit 6, [hl]
+ ret z
+ res 6, [hl]
+ call DelayFrame
+ ret
+; 10016f
+
+Function10016f: ; 10016f
+ ld a, [wcd2b]
+ cp $01
+ ret z
+ cp $02
+ ret z
+ cp $ff
+ jp z, .asm_1001f5
+ cp $fe
+ jr z, .asm_1001c4
+ cp $f5
+ jr z, .asm_1001e7
+ cp $f6
+ jr z, .asm_1001b6
+ cp $fa
+ jp z, .asm_1001bd
+ cp $f7
+ jp z, .asm_1001ee
+ cp $f4
+ jr z, .asm_1001d2
+ cp $f3
+ jr z, .asm_1001cb
+ cp $f1
+ jr z, .asm_1001c4
+ cp $f2
+ jr z, .asm_1001c4
+ cp $fc
+ jr z, .asm_1001e6
+ cp $fb
+ jr z, .asm_1001af
+ cp $f8
+ ret z
+ ret ; ????????????????????????????
+
+.asm_1001af
+ ld a, $d7
+ ld de, 0
+ jr .asm_1001d7
+
+.asm_1001b6
+ ld a, $d5
+ ld de, 0
+ jr .asm_1001d7
+
+.asm_1001bd
+ ld a, $d6
+ ld de, 0
+ jr .asm_1001d7
+
+.asm_1001c4
+ ld a, $d2
+ ld de, 2
+ jr .asm_1001d7
+
+.asm_1001cb
+ ld a, $d1
+ ld de, 1
+ jr .asm_1001d7
+
+.asm_1001d2
+ ld a, $d0
+ ld de, 0
+
+.asm_1001d7
+ ld [wc300], a
+ ld a, d
+ ld [wc302], a
+ ld a, e
+ ld [wc301], a
+ call Function10020b
+ ret
+
+.asm_1001e6
+ ret
+
+.asm_1001e7
+ ld de, String10025e
+ call Function100232
+ ret
+
+.asm_1001ee
+ ld de, String10024d
+ call Function100232
+ ret
+
+.asm_1001f5
+ ld a, [wcd2c]
+ ld [wc300], a
+ ld a, [wcd2d]
+ ld [wc302], a
+ ld a, [wcd2d]
+ ld [wc301], a
+ call Function10020b
+ ret
+; 10020b
+
+Function10020b: ; 10020b
+ xor a
+ ld [wc303], a
+ callba FadeOutPalettes
+ callba Function106464
+ call HideSprites
+ call DelayFrame
+
+ ld a, [rSVBK]
+ push af
+ ld a, $01
+ ld [rSVBK], a
+
+ callba DisplayMobileError
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 100232
+
+Function100232: ; 100232
+ push de
+ callba Function106464
+ call Function3f20
+ call UpdateSprites
+ hlcoord 1, 2
+ pop de
+ call PlaceString
+ call Function100320
+ call JoyWaitAorB
+ ret
+; 10024d
+
+String10024d: ; 10024d
+ db "つうしんを キャンセル しました@"
+; 10025e
+
+String10025e: ; 10025e
+ db "おともだちと えらんだ へやが"
+ next "ちがうようです@"
+; 100276
+
+Function100276: ; 100276
+ ld a, [wcd2b]
+ cp $01
+ jr z, .asm_10029f
+ cp $02
+ jr z, .asm_100296
+ cp $f5
+ jr z, .asm_1002a5
+ cp $f6
+ jr z, .asm_1002a5
+ cp $f7
+ jr z, .asm_100293
+ cp $f8
+ jr z, .asm_1002b1
+ jr .asm_1002c0
+
+.asm_100293
+ ld c, $02
+ ret
+
+.asm_100296
+ callba Script_reloadmappart
+ ld c, $04
+ ret
+
+.asm_10029f
+ call Function1002dc
+ ld c, 0
+ ret
+
+.asm_1002a5
+ callba Script_reloadmappart
+ call Function1002ed
+ ld c, $03
+ ret
+
+.asm_1002b1
+ call Function1002c9
+ call Function1002dc
+ ld de, String10024d
+ call Function100232
+ ld c, $02
+ ret
+
+.asm_1002c0
+ call Function1002c9
+ call Function1002dc
+ ld c, $01
+ ret
+; 1002c9
+
+Function1002c9: ; 1002c9
+ ld hl, wcd2a
+ bit 0, [hl]
+ ret z
+ callba CleanUpBattleRAM
+ callba LoadPokemonData
+ ret
+; 1002dc
+
+Function1002dc: ; 1002dc
+ ld a, MAPSETUP_LINKRETURN
+ ld [hMapEntryMethod], a
+ callba RunMapSetupScript
+ xor a
+ ld [hMapEntryMethod], a
+ call LoadStandardFont
+ ret
+; 1002ed
+
+Function1002ed: ; 1002ed
+ callba LoadOW_BGPal7
+ callba ApplyPals
+ ld a, $01
+ ld [hCGBPalUpdate], a
+ call DelayFrame
+ ret
+; 100301
+
+Function100301: ; 100301
+ ld hl, wcd2a
+ bit 1, [hl]
+ ret z
+ callba Function106464
+ callba Function10202c
+ callba Function115dd3
+ call Function100320
+ call JoyWaitAorB
+ ret
+; 100320
+
+Function100320: ; 100320
+ callba Mobile_ReloadMapPart
+ ret
+; 100327
+
+Function100327: ; 100327
+ callba HDMATransferTileMapToWRAMBank3
+ ret
+; 100327
+
+
+Function10032e: ; 10032e
+ call Function10034d
+ ld e, a
+ ret nc
+ ld [wcd2b], a
+ ret
+; 100337
+
+Function100337: ; 100337
+ call Function10032e
+ ret c
+ ld a, [wc821]
+ bit 4, a
+ jr z, .asm_100345
+ ld a, e
+ and a
+ ret
+
+.asm_100345
+ ld a, $f9
+ ld e, a
+ ld [wcd2b], a
+ scf
+ ret
+; 10034d
+
+Function10034d: ; 10034d
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_10036a
+ bit 2, a
+ jr nz, .asm_10037e
+ bit 3, a
+ jr nz, .asm_100366
+ bit 0, a
+ jr nz, .asm_100364
+ ld a, $01
+ and a
+ ret
+
+.asm_100364
+ xor a
+ ret
+
+.asm_100366
+ ld a, $02
+ and a
+ ret
+
+.asm_10036a
+ ld a, 0
+ call Function3e32
+ ld [wcd2c], a
+ ld a, h
+ ld [wcd2d], a
+ ld a, l
+ ld [wcd2e], a
+ ld a, $ff
+ scf
+ ret
+
+.asm_10037e
+ ld a, $fe
+ scf
+ ret
+; 100382
+
+Function100382: ; 100382
+ ld a, [wcd27]
+ ld hl, Jumptable_10044e
+ rst JumpTable
+ ret
+; 10038a
+
+Function10038a: ; 10038a
+ ld hl, wccb4
+ ld a, $2e
+ call Function3e32
+ ret
+; 100393
+
+Function100393: ; 100393
+ ld hl, wcc60
+ ld a, $3a
+ call Function3e32
+ ret
+; 10039c
+
+Function10039c: ; 10039c
+ ld hl, wcc60
+ ld de, w3_d000
+ ld bc, $54
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1003ab
+
+Function1003ab: ; 1003ab
+ ld hl, w3_d000
+ ld de, wcc60
+ ld bc, $54
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1003ba
+
+Function1003ba: ; 1003ba
+ ld hl, wccb4
+ ld de, w3_d080
+ ld bc, $54
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1003c9
+
+Function1003c9: ; 1003c9
+ ld hl, w3_d080
+ ld de, wccb4
+ ld bc, $54
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1003d8
+
+Function1003d8: ; 1003d8
+ ld hl, wccb4
+ ld a, [hli]
+ ld c, a
+ ld b, 0
+ push hl
+ add hl, bc
+ ld a, [BGMapPalBuffer]
+ ld [hl], a
+ pop hl
+ inc bc
+ call Function10043a
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, c
+ add $02
+ ld [wccb4], a
+ ret
+; 1003f5
+
+Function1003f5: ; 1003f5
+ ld a, [wcc60]
+ sub $03
+ ld [wcc60], a
+ ld a, [wccb4]
+ sub $03
+ ld [wccb4], a
+ ret
+; 100406
+
+Function100406: ; 100406
+ ld a, [wcc60]
+ sub $02
+ ld c, a
+ ld b, 0
+ ld hl, wcc61
+ call Function10043a
+ add hl, bc
+ ld a, [hli]
+ cp e
+ jr nz, .asm_100426
+ ld a, [hld]
+ cp d
+ jr nz, .asm_100426
+ dec hl
+ ld a, [BGMapPalBuffer]
+ cp [hl]
+ jr nz, .asm_10042d
+ xor a
+ ret
+
+.asm_100426
+ ld a, $f4
+ ld [wcd2b], a
+ jr .asm_100432
+
+.asm_10042d
+ ld a, $f3
+ ld [wcd2b], a
+
+.asm_100432
+ push hl
+ ld hl, wcd7c
+ inc [hl]
+ pop hl
+ scf
+ ret
+; 10043a
+
+Function10043a: ; 10043a
+ push hl
+ push bc
+ ld de, 0
+.asm_10043f
+ ld a, [hli]
+ add e
+ ld e, a
+ ld a, d
+ adc 0
+ ld d, a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_10043f
+ pop bc
+ pop hl
+ ret
+; 10044e
+
+
+Jumptable_10044e: ; 10044e (40:444e)
+ dw Function10046a
+ dw Function10047c
+ dw Function100493
+ dw Function1004ba
+ dw Function1004f4
+ dw Function1004ce
+ dw Function1004de
+ dw Function1004a4
+ dw Function100495
+ dw Function1004ce
+ dw Function1004de
+ dw Function1004e9
+ dw Function1004f4
+ dw Function1004a4
+
+Function10046a: ; 10046a
+ ld hl, BGMapPalBuffer
+ inc [hl]
+ call Function1003d8
+ call Function1003ba
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 10047c
+
+Function10047c: ; 10047c
+ call Function100337
+ ret c
+ ret z
+ cp $02
+ jr z, .asm_100487
+ jr .asm_10048d
+
+.asm_100487
+ ld a, $08
+ ld [wcd27], a
+ ret
+
+.asm_10048d
+ ld a, $02
+ ld [wcd27], a
+ ret
+; 100493
+
+Function100493: ; 100493
+ jr asm_100497
+
+Function100495: ; 100495
+ jr asm_100497
+
+asm_100497
+ call Function100337
+ ret c
+ ret z
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 1004a4
+
+Function1004a4: ; 1004a4
+ call Function100406
+ jr c, .asm_1004b8
+ call Function1003c9
+ call Function1003f5
+ ld a, [wcd27]
+ set 7, a
+ ld [wcd27], a
+ ret
+
+.asm_1004b8
+ scf
+ ret
+; 1004ba
+
+Function1004ba: ; 1004ba
+ call Function10038a
+ and a
+ jr nz, .asm_1004c8
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+
+.asm_1004c8
+ ld a, $08
+ ld [wcd27], a
+ ret
+; 1004ce
+
+Function1004ce: ; 1004ce
+ call Function100337
+ ret c
+ ret z
+ cp $02
+ ret nz
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 1004de
+
+Function1004de: ; 1004de
+ call Function100393
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 1004e9
+
+Function1004e9: ; 1004e9
+ call Function10038a
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 1004f4
+
+Function1004f4: ; 1004f4
+ call Function100337
+ ret c
+ ret z
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ call Function10039c
+ ret
+; 100504
+
+Function100504: ; 100504
+ push de
+ call Function3f20
+ call UpdateSprites
+ pop de
+ hlcoord 4, 2
+ call PlaceString
+ ret
+; 100513
+
+Function100513: ; 100513
+ call Function3f7c
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ ret
+; 100522
+
+Function100522: ; 100522
+ ld a, [wcd28]
+ ld hl, Jumptable_10052a
+ rst JumpTable
+ ret
+; 10052a
+
+Jumptable_10052a: ; 10052a
+ dw Function100534
+ dw Function100545
+ dw Function100545
+ dw Function100545
+ dw Function10054d
+; 100534
+
+Function100534: ; 100534
+ call Function100513
+ call UpdateSprites
+ call ApplyTilemap
+ ld a, [wcd28]
+ inc a
+ ld [wcd28], a
+ ret
+; 100545
+
+Function100545: ; 100545
+ ld a, [wcd28]
+ inc a
+ ld [wcd28], a
+ ret
+; 10054d
+
+Function10054d: ; 10054d
+ callba MobileMenuJoypad
+ ld a, c
+ ld hl, wMenuJoypadFilter
+ and [hl]
+ ret z
+ call MenuClickSound
+ bit 0, a
+ jr nz, .asm_100565
+ bit 1, a
+ jr nz, .asm_10056f
+ ret
+
+.asm_100565
+ ld a, [wcd28]
+ set 7, a
+ ld [wcd28], a
+ and a
+ ret
+
+.asm_10056f
+ ld a, [wcd28]
+ set 7, a
+ ld [wcd28], a
+ scf
+ ret
+; 100579
+
+Function100579: ; 100579
+ ld a, [wcd26]
+ ld hl, Jumptable_100581
+ rst JumpTable
+ ret
+; 100581
+
+Jumptable_100581: ; 100581
+ dw Function100585
+ dw Function100597
+; 100585
+
+Function100585: ; 100585
+ ld hl, MenuDataHeader_1005b2
+ call LoadMenuDataHeader
+ ld a, 0
+ ld [wcd28], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function100597: ; 100597
+ call Function100522
+ ld a, [wcd28]
+ bit 7, a
+ ret z
+ jr nc, .asm_1005a6
+ xor a
+ ld [wMenuCursorY], a
+
+.asm_1005a6
+ call ExitMenu
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 1005b2
+
+MenuDataHeader_1005b2: ; 1005b2
+ db $40 ; flags
+ db 6, 14
+ db 10, 19
+ dw MenuData2_1005ba
+ db 1 ; default option
+
+MenuData2_1005ba:
+ db $c0 ; flags
+ db 2
+ db "はい@"
+ db "いいえ@"
+; 1005c3
+
+Function1005c3: ; 1005c3
+ ld a, [wcd26]
+ ld hl, Jumptable_1005cb
+ rst JumpTable
+ ret
+; 1005cb
+
+Jumptable_1005cb: ; 1005cb
+ dw Function1005cf
+ dw Function1005e1
+; 1005cf
+
+Function1005cf: ; 1005cf
+ ld hl, MenuDataHeader_1005fc
+ call LoadMenuDataHeader
+ ld a, 0
+ ld [wcd28], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function1005e1: ; 1005e1
+ call Function100522
+ ld a, [wcd28]
+ bit 7, a
+ ret z
+ jr nc, .asm_1005f0
+ xor a
+ ld [wMenuCursorY], a
+.asm_1005f0
+ call ExitMenu
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 1005fc
+
+MenuDataHeader_1005fc: ; 1005fc
+ db $40 ; flags
+ db 6, 14
+ db 10, 19
+ dw MenuData2_100604
+ db 1 ; default option
+
+MenuData2_100604: ; 100604
+ db $c0 ; flags
+ db 2
+ db "かける@"
+ db "まつ@"
+; 10060d
+
+Mobile_CommunicationStandby: ; 10060d
+ hlcoord 3, 10
+ ld b, 1
+ ld c, 11
+ call Function3eea
+ ld de, .String
+ hlcoord 4, 11
+ call PlaceString
+ ret
+; 100621
+
+.String: ; 100621
+ db "つうしんたいきちゅう!@"
+; 10062d
+
+AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d
+ push bc
+ call IncrementMobileInactivityTimerByCFrames
+ pop bc
+ ld a, [wMobileInactivityTimerMinutes]
+ cp b
+ jr nc, .timed_out
+ and a
+ ret
+
+.timed_out
+ ld a, $fa
+ ld [wcd2b], a
+ scf
+ ret
+; 100641
+
+StartMobileInactivityTimer: ; 100641
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ ld [wMobileInactivityTimerSeconds], a
+ ld [wMobileInactivityTimerFrames], a
+ ret
+; 10064c
+
+IncrementMobileInactivityTimerBy1Frame: ; 10064c
+ ld c, 1
+IncrementMobileInactivityTimerByCFrames: ; 10064e
+ ld hl, wMobileInactivityTimerFrames ; timer?
+ ld a, [hl]
+ add c
+ cp 60
+ jr c, .seconds
+ xor a
+
+.seconds
+ ld [hld], a
+ ret c
+ ld a, [hl]
+ inc a
+ cp 60
+ jr c, .minutes
+ xor a
+
+.minutes
+ ld [hld], a
+ ret c
+ inc [hl]
+ ret
+; 100665
+
+Function100665: ; 100665
+ call UpdateTime
+ ld hl, wcd36
+ ld a, [hHours]
+ ld [hli], a
+ ld a, [hMinutes]
+ ld [hli], a
+ ld a, [hSeconds]
+ ld [hl], a
+ ret
+; 100675
+
+Function100675: ; 100675
+ ld hl, wcd2a
+ bit 2, [hl]
+ set 2, [hl]
+ ret nz
+ call Function1006d3
+ ret
+; 100681
+
+Function100681: ; 100681
+ push hl
+ ld hl, wcd2a
+ bit 2, [hl]
+ ld hl, wcd2a
+ set 2, [hl]
+ pop hl
+ jr nz, .asm_100694
+ push hl
+ call Function1006d3
+ pop hl
+.asm_100694
+ ld de, wcd32
+
+Function100697: ; 100697
+ ld a, [de]
+ and a
+ jr nz, .asm_1006bb
+ inc de
+ push de
+ call .asm_1006b4
+ ld de, String1006c2
+ call PlaceString
+ ld h, b
+ ld l, c
+ pop de
+ inc de
+ call .asm_1006b4
+ ld de, String1006c6
+ call PlaceString
+ ret
+
+.asm_1006b4
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+
+.asm_1006bb
+ ld de, String1006ca
+ call PlaceString
+ ret
+; 1006c2
+
+String1006c2: ; 1006c2
+ db "ふん @"
+String1006c6: ; 1006c6
+ db "びょう@"
+String1006ca: ; 1006ca
+ db "1じかんいじょう@"
+; 1006d3
+
+Function1006d3: ; 1006d3
+ call UpdateTime
+ ld de, wcd34
+ ld hl, wcd38
+
+Function1006dc: ; 1006dc
+ ld a, [hld]
+ ld c, a
+ ld a, [hSeconds]
+ sub c
+ jr nc, .asm_1006e5
+ add $3c
+
+.asm_1006e5
+ ld [de], a
+ dec de
+ ld a, [hld]
+ ld c, a
+ ld a, [hMinutes]
+ sbc c
+ jr nc, .asm_1006f0
+ add $3c
+
+.asm_1006f0
+ ld [de], a
+ dec de
+ ld a, [hl]
+ ld c, a
+ ld a, [hHours]
+ sbc c
+ jr nc, .asm_1006fb
+ add $18
+
+.asm_1006fb
+ ld [de], a
+ ret
+; 1006fd
+
+Function1006fd: ; 1006fd
+ ld a, $04
+ ld hl, $a800
+ call GetSRAMBank
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ call CloseSRAM
+ ret
+; 10070d
+
+Function10070d: ; 10070d
+ ld a, $04
+ ld hl, $a800
+ call GetSRAMBank
+ xor a
+ ld [hli], a
+ ld a, $0a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ call CloseSRAM
+ ret
+; 100720
+
+Function100720: ; 100720
+ xor a
+ ld [wcd6a], a
+ call UpdateTime
+ ld a, [hHours]
+ ld [wcd72], a
+ ld a, [hMinutes]
+ ld [wcd73], a
+ ld a, [hSeconds]
+ ld [wcd74], a
+ ld a, $04
+ ld hl, $a800
+ call GetSRAMBank
+ ld a, [hli]
+ ld [wcd6c], a
+ ld a, [hli]
+ ld [wcd6d], a
+ ld a, [hli]
+ ld [wcd6e], a
+ call CloseSRAM
+ ld a, [wcd6d]
+ ld [wcd6b], a
+ ret
+; 100754
+
+Function100754: ; 100754
+ call UpdateTime
+ ld a, [hHours]
+ ld [wcd72], a
+ ld a, [hMinutes]
+ ld [wcd73], a
+ ld a, [hSeconds]
+ ld [wcd74], a
+ ld a, [wcd6d]
+ ld [wcd6b], a
+ ld hl, wcd2a
+ res 6, [hl]
+ ret
+; 100772
+
+Function100772: ; 100772
+ push de
+ ld hl, wcd6c
+ ld a, [de]
+ cp [hl]
+ jr c, .asm_10079a
+ jr nz, .asm_10078c
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr c, .asm_10079a
+ jr nz, .asm_10078c
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr c, .asm_10079a
+ jr z, .asm_10079a
+
+.asm_10078c
+ pop hl
+ ld a, [hli]
+ ld [wcd6c], a
+ ld a, [hli]
+ ld [wcd6d], a
+ ld a, [hli]
+ ld [wcd6e], a
+ ret
+
+.asm_10079a
+ pop de
+ ret
+; 10079c
+
+
+Function10079c: ; 10079c
+ ld a, [wcd21]
+ cp $01
+ jr nz, .dont_quit
+ ld hl, wcd2a
+ bit 5, [hl]
+ jr nz, .dont_quit
+ ld hl, wcd2a
+ bit 6, [hl]
+ jr nz, .dont_quit
+ ld a, [wcd6a]
+ add c
+ cp 60
+ jr nc, .overflow
+ ld [wcd6a], a
+ and a
+ ret
+
+.overflow
+ sub 60
+ ld [wcd6a], a
+ ld d, b
+ push de
+ call Function1007f6
+ pop de
+ jr c, .quit
+ ld a, c
+ and a
+ jr nz, .quit
+ ld a, b
+ cp 10
+ jr nc, .quit
+ ld a, d
+ and a
+ ret z
+ ld a, [wcd6b]
+ cp b
+ ret z
+ ld a, b
+ ld [wcd6b], a
+ call Function1008e0
+ and a
+ ret
+
+.quit
+ call Function1008e0
+ ld hl, wcd2a
+ set 4, [hl]
+ ld a, $fc
+ ld [wcd2b], a
+ scf
+ ret
+
+.dont_quit
+ and a
+ ret
+; 1007f6
+
+Function1007f6: ; 1007f6
+ call UpdateTime
+ ld hl, wcd74
+ ld de, wcd71
+ call Function1006dc
+ ld a, $04
+ call GetSRAMBank
+ ld hl, $a802
+ call Function100826
+ call CloseSRAM
+ ld hl, wcd6e
+ call Function100826
+ ld a, [hHours]
+ ld [wcd72], a
+ ld a, [hMinutes]
+ ld [wcd73], a
+ ld a, [hSeconds]
+ ld [wcd74], a
+ ret
+; 100826
+
+Function100826: ; 100826
+ ld a, [wcd71]
+ add [hl]
+ sub $3c
+ jr nc, .asm_100830
+ add $3c
+
+.asm_100830
+ ld [hld], a
+ ccf
+ ld a, [BGMapBufferPtrs]
+ adc [hl]
+ sub $3c
+ jr nc, .asm_10083c
+ add $3c
+
+.asm_10083c
+ ld [hld], a
+ ld b, a
+ ccf
+ ld a, [wcd6f]
+ adc [hl]
+ ld [hl], a
+ ld c, a
+ ret
+; 100846
+
+Function100846: ; 100846
+ ld hl, wcd2a
+ bit 5, [hl]
+ jr nz, .asm_10087c
+ ld a, [wcd6e]
+ ld c, a
+ ld a, 0
+ sub c
+ jr nc, .asm_100858
+ add $3c
+
+.asm_100858
+ ld [StringBuffer2 + 2], a
+ ld a, [wcd6d]
+ ld c, a
+ ld a, $0a
+ sbc c
+ ld [StringBuffer2 + 1], a
+ xor a
+ ld [StringBuffer2], a
+ ld de, String_10088e
+ hlcoord 1, 14
+ call PlaceString
+ ld de, StringBuffer2
+ hlcoord 4, 16
+ call Function100697
+ ret
+
+.asm_10087c
+ ld de, String_10088e
+ hlcoord 1, 14
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, String_10089f
+ call PlaceString
+ ret
+; 10088e
+
+String_10088e: ; 10088e
+ db "モバイルたいせん できる"
+ next "じかん@"
+; 10089f
+
+String_10089f: ; 10089f
+ db " むせいげん@"
+; 1008a6
+
+Function1008a6: ; 1008a6
+ ld a, $04
+ ld hl, $a800
+ call GetSRAMBank
+ ld a, [hli]
+ ld [StringBuffer2], a
+ ld a, [hli]
+ ld [StringBuffer2 + 1], a
+ ld a, [hli]
+ ld [StringBuffer2 + 2], a
+ call CloseSRAM
+ ld a, [StringBuffer2 + 2]
+ ld b, a
+ ld a, 0
+ sub b
+ jr nc, .asm_1008c8
+ add $3c
+
+.asm_1008c8
+ ld b, a
+ ld a, [StringBuffer2 + 1]
+ ld c, a
+ ld a, $0a
+ sbc c
+ ld c, a
+ jr c, .asm_1008da
+ ld a, [StringBuffer2]
+ and a
+ jr nz, .asm_1008da
+ ret
+
+.asm_1008da
+ call Function10070d
+ ld c, 0
+ ret
+; 1008e0
+
+
+Function1008e0: ; 1008e0
+ ld a, [hBGMapMode]
+ ld b, a
+ ld a, [hVBlank]
+ ld c, a
+ push bc
+ xor a
+ ld [hBGMapMode], a
+ ld a, $03
+ ld [hVBlank], a
+ call Function100970
+ call Function100902
+ call Function100989
+ call DelayFrame
+ pop bc
+ ld a, c
+ ld [hVBlank], a
+ ld a, b
+ ld [hBGMapMode], a
+ ret
+; 100902
+
+Function100902: ; 100902
+ hlcoord 3, 10
+ ld b, $01
+ ld c, $0b
+ call TextBox
+ ld a, [wcd6d]
+ ld c, a
+ ld a, $0a
+ sub c
+ ld [StringBuffer2], a
+ jr z, .asm_10093f
+ ld de, .string_100966
+ hlcoord 4, 11
+ call PlaceString
+ hlcoord 8, 11
+ lb bc, 1, 2
+ ld de, StringBuffer2
+ call PrintNum
+ ld de, SFX_TWO_PC_BEEPS
+ call PlaySFX
+ callba ReloadMapPart
+ ld c, $3c
+ call DelayFrames
+ ret
+
+.asm_10093f
+ ld de, .string_10095a
+ hlcoord 4, 11
+ call PlaceString
+ ld de, SFX_4_NOTE_DITTY
+ call PlaySFX
+ callba ReloadMapPart
+ ld c, 120
+ call DelayFrames
+ ret
+; 10095a
+
+.string_10095a ; 10095a
+ db "たいせん しゅうりょう@"
+.string_100966 ; 100966
+ db "のこり ふん", $e7, "@"
+; 100970
+
+
+Function100970: ; 100970
+ hlcoord 0, 0
+ ld de, w3_dc00
+ call Function1009a5
+ hlcoord 0, 0, AttrMap
+ ld de, w3_dd68
+ call Function1009a5
+ call Function1009d2
+ call Function1009ae
+ ret
+; 100989
+
+Function100989: ; 100989
+ ld hl, w3_dc00
+ decoord 0, 0
+ call Function1009a5
+ call Function1009ae
+ callba ReloadMapPart
+ ld hl, w3_dd68
+ decoord 0, 0, AttrMap
+ call Function1009a5
+ ret
+; 1009a5
+
+Function1009a5: ; 1009a5
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1009ae
+
+Function1009ae: ; 1009ae
+ ld a, [rSVBK]
+ push af
+ ld a, $03
+ ld [rSVBK], a
+
+ ld hl, w3_d800
+ decoord 0, 0, AttrMap
+ ld c, SCREEN_WIDTH
+ ld b, SCREEN_HEIGHT
+.loop_row
+ push bc
+.loop_col
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop_col
+ ld bc, BG_MAP_WIDTH - SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop_row
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 1009d2
+
+Function1009d2: ; 1009d2
+ ld a, [rSVBK]
+ push af
+ ld a, $03
+ ld [rSVBK], a
+
+ ld a, [rVBK]
+ push af
+ ld a, $01
+ ld [rVBK], a
+
+ ld hl, w3_d800
+ debgcoord 0, 0
+ lb bc, $03, $24
+ call Get2bpp
+
+ pop af
+ ld [rVBK], a
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 1009f3
+
+Function1009f3: ; 1009f3
+ ld a, [hJoyDown]
+ and SELECT + A_BUTTON
+ cp SELECT + A_BUTTON
+ jr nz, .select_a
+ ld hl, wcd2a
+ set 4, [hl]
+ ld a, $f8
+ ld [wcd2b], a
+ scf
+ ret
+
+.select_a
+ xor a
+ ret
+; 100a09
+
+_LinkBattleSendReceiveAction: ; 100a09
+ call .StageForSend
+ ld [wd431], a
+ callba PlaceWaitingText
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jr nz, .not_mobile
+
+ call .MobileBattle_SendReceiveAction
+ call Function100da5
+ callba FinishBattleAnim
+ jr .done
+
+.not_mobile
+ call .LinkBattle_SendReceiveAction
+
+.done
+ ret
+; 100a2e
+
+.StageForSend: ; 100a2e
+ ld a, [wPlayerAction]
+ and a
+ jr nz, .switch
+ ld a, [CurPlayerMove]
+ ld b, BATTLEACTION_E
+ cp STRUGGLE
+ jr z, .struggle
+ ld b, BATTLEACTION_D
+ cp $ff
+ jr z, .struggle
+ ld a, [CurMoveNum]
+ jr .use_move
+
+.switch
+ ld a, [CurPartyMon]
+ add BATTLEACTION_SWITCH1
+ jr .use_move
+
+.struggle
+ ld a, b
+
+.use_move
+ and $0f
+ ret
+; 100a53
+
+.LinkBattle_SendReceiveAction: ; 100a53
+ ld a, [wd431]
+ ld [wPlayerLinkAction], a
+ ld a, $ff
+ ld [wOtherPlayerLinkAction], a
+.waiting
+ call LinkTransfer
+ call DelayFrame
+ ld a, [wOtherPlayerLinkAction]
+ inc a
+ jr z, .waiting
+
+ ld b, 10
+.receive
+ call DelayFrame
+ call LinkTransfer
+ dec b
+ jr nz, .receive
+
+ ld b, 10
+.acknowledge
+ call DelayFrame
+ call LinkDataReceived
+ dec b
+ jr nz, .acknowledge
+
+ ld a, [wOtherPlayerLinkAction]
+ ld [wBattleAction], a
+ ret
+; 100a87
+
+.MobileBattle_SendReceiveAction: ; 100a87
+ call Function100acf
+ call StartMobileInactivityTimer
+ ld a, 0
+ ld [wcd27], a
+.asm_100a92
+ call DelayFrame
+ call GetJoypad
+ callba Function100382
+ ld c, $01
+ ld b, $03
+ push bc
+ call AdvanceMobileInactivityTimerAndCheckExpired
+ pop bc
+ jr c, .asm_100ac7
+ ld b, $01
+ call Function10079c
+ jr c, .asm_100ac7
+ call Function1009f3
+ jr c, .asm_100ac7
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_100ac7
+ ld a, [wcd27]
+ bit 7, a
+ jr z, .asm_100a92
+ call Function100ae7
+ jr .asm_100ace
+
+.asm_100ac7
+ ld a, $0f
+ ld [wd430], a
+ jr .asm_100ace
+
+.asm_100ace
+ ret
+; 100acf
+
+Function100acf: ; 100acf
+ ld de, Unknown_100b0a
+ ld hl, wccb5
+ ld a, [wd431]
+ ld [hli], a
+ ld c, $01
+.asm_100adb
+ ld a, [de]
+ inc de
+ ld [hli], a
+ inc c
+ and a
+ jr nz, .asm_100adb
+ ld a, c
+ ld [wccb4], a
+ ret
+; 100ae7
+
+Function100ae7: ; 100ae7
+ ld de, Unknown_100b0a
+ ld hl, wcc62
+.asm_100aed
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_100af8
+ cp [hl]
+ jr nz, .asm_100aff
+ inc hl
+ jr .asm_100aed
+
+.asm_100af8
+ ld a, [wcc61]
+ ld [wd430], a
+ ret
+
+.asm_100aff
+ ld a, $0f
+ ld [wd430], a
+ ld a, $f1
+ ld [wcd2b], a
+ ret
+; 100b0a
+
+
+SECTION "tetsuji", ROMX
+
+ charmap " ", $20 ; revert to ascii
+
+Unknown_100b0a: ; 100b0a
+ db "tetsuji", 0
+; 100b12
+
+
+SECTION "bank40_2", ROMX
+
+Function100b12: ; 100b12
+ call Function100dd8
+ ret c
+ ld hl, BattleMenuDataHeader
+ ld a, BANK(BattleMenuDataHeader)
+ ld de, LoadMenuDataHeader
+ call FarCall_de
+ ld a, BANK(BattleMenuDataHeader)
+ ld [wMenuData2_2DMenuItemStringsBank], a
+ ld a, [wBattleMenuCursorBuffer]
+ ld [wMenuCursorBuffer], a
+ call Function100e72
+ call Function100b45
+ callba InitPartyMenuBGPal7
+ call Function100ed4
+ ld a, [wMenuCursorBuffer]
+ ld [wBattleMenuCursorBuffer], a
+ call ExitMenu
+ ret
+; 100b45
+
+Function100b45: ; 100b45
+ call Function100b7a
+.loop
+ call Mobile_SetOverworldDelay
+ callba MobileMenuJoypad
+ push bc
+ callba HDMATransferTileMapToWRAMBank3
+ call Function100e2d
+ pop bc
+ jr c, .asm_100b6b
+ ld a, [wMenuJoypadFilter]
+ and c
+ jr z, .loop
+ callba Mobile_GetMenuSelection
+ ret
+
+.asm_100b6b
+ ld a, [w2DMenuNumCols]
+ ld c, a
+ ld a, [w2DMenuNumRows]
+ call SimpleMultiply
+ ld [wMenuCursorBuffer], a
+ and a
+ ret
+; 100b7a
+
+Function100b7a: ; 100b7a
+ ld hl, CopyMenuData2
+ ld a, [wMenuData2_2DMenuItemStringsBank]
+ rst FarCall
+ callba Draw2DMenu
+ callba MobileTextBorder
+ call UpdateSprites
+ call ApplyTilemap
+ callba Init2DMenuCursorPosition
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ ret
+; 100b9f
+
+MobileMoveSelectionScreen: ; 100b9f
+ xor a
+ ld [wMoveSwapBuffer], a
+ callba CheckPlayerHasUsableMoves
+ ret z
+ call Function100dd8
+ jp c, xor_a_dec_a
+ call Function100e72
+ call .GetMoveSelection
+ push af
+ callba InitPartyMenuBGPal7
+ call Function100ed4
+ pop af
+ ret
+; 100bc2
+
+.GetMoveSelection: ; 100bc2
+ xor a
+ ld [hBGMapMode], a
+ call Function100c74
+ call Function100c98
+.master_loop
+ callba MoveInfoBox
+.loop
+ call Mobile_SetOverworldDelay
+ callba MobileMenuJoypad
+ push bc
+ callba HDMATransferTileMapToWRAMBank3
+ call Function100e2d
+ pop bc
+ jr c, .b_button
+ ld a, [wMenuJoypadFilter]
+ and c
+ bit D_UP_F, a
+ jp nz, .d_up
+ bit D_DOWN_F, a
+ jp nz, .d_down
+ bit A_BUTTON_F, a
+ jr nz, .a_button
+ bit B_BUTTON_F, a
+ jr nz, .b_button
+ jr .loop
+
+.d_up
+ ld a, [wMenuCursorY]
+ and a
+ jp nz, .master_loop
+ ld a, [wNumMoves]
+ inc a
+ ld [wMenuCursorY], a
+ jp .master_loop
+
+.d_down
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [wNumMoves]
+ inc a
+ inc a
+ cp b
+ jp nz, .master_loop
+ ld a, $01
+ ld [wMenuCursorY], a
+ jp .master_loop
+
+.b_button
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurMoveNum], a
+ ld a, $01
+ and a
+ ret
+
+.a_button
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurMoveNum], a
+ ld a, [wMenuCursorY]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, BattleMonPP
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ jr z, .no_pp_left
+ ld a, [PlayerDisableCount]
+ swap a
+ and $0f
+ dec a
+ cp c
+ jr z, .move_disabled
+ ld a, [wMenuCursorY]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, BattleMonMoves
+ add hl, bc
+ ld a, [hl]
+ ld [CurPlayerMove], a
+ xor a
+ ret
+
+.move_disabled
+ ld hl, BattleText_TheMoveIsDisabled
+ jr .print_text
+
+.no_pp_left
+ ld hl, BattleText_TheresNoPPLeftForThisMove
+
+.print_text
+ call StdBattleTextBox
+ call Call_LoadTempTileMapToTileMap
+ jp .GetMoveSelection
+; 100c74
+
+Function100c74: ; 100c74
+ hlcoord 0, 8
+ ld b, 8
+ ld c, 8
+ call TextBox
+ ld hl, BattleMonMoves
+ ld de, wListMoves_MoveIndicesBuffer
+ ld bc, NUM_MOVES
+ call CopyBytes
+ ld a, SCREEN_WIDTH * 2
+ ld [Buffer1], a
+ hlcoord 2, 10
+ predef ListMoves
+ ret
+; 100c98
+
+Function100c98: ; 100c98
+ ld de, .attrs
+ call SetMenuAttributes
+ ld a, [wNumMoves]
+ inc a
+ ld [w2DMenuNumRows], a
+ ld a, [CurMoveNum]
+ inc a
+ ld [wMenuCursorY], a
+ ret
+; 100cad
+
+.attrs ; 100cad
+ db 10, 1
+ db 255, 1
+ db $a0, $00
+ dn 2, 0
+ db D_UP | D_DOWN | A_BUTTON | B_BUTTON
+
+Mobile_PartyMenuSelect: ; 100cb5
+ call Function100dd8
+ ret c
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ res 6, [hl]
+.loop
+ call Mobile_SetOverworldDelay
+ callba MobileMenuJoypad
+ push bc
+ callba PlaySpriteAnimations
+ callba HDMATransferTileMapToWRAMBank3
+ call MobileComms_CheckInactivityTimer
+ pop bc
+ jr c, .done
+ ld a, [wMenuJoypadFilter]
+ and c
+ jr z, .loop
+ call PlaceHollowCursor
+ ld a, [PartyCount]
+ inc a
+ ld b, a
+ ld a, [wMenuCursorY]
+ cp b
+ jr z, .done
+ ld [wPartyMenuCursor], a
+ ld a, [hJoyLast]
+ ld b, a
+ bit 1, b
+ jr nz, .done
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ and a
+ ret
+
+.done
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ scf
+ ret
+; 100d22
+
+MobileBattleMonMenu: ; 100d22
+ call Function100dd8
+ ret c
+ call Function100d67
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ res 6, [hl]
+.asm_100d30
+ call Mobile_SetOverworldDelay
+ callba MobileMenuJoypad
+ push bc
+ callba PlaySpriteAnimations
+ callba HDMATransferTileMapToWRAMBank3
+ call MobileComms_CheckInactivityTimer
+ pop bc
+ jr c, .asm_100d54
+ ld a, [wMenuJoypadFilter]
+ and c
+ jr nz, .asm_100d56
+ jr .asm_100d30
+
+.asm_100d54
+ scf
+ ret
+
+.asm_100d56
+ push af
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ pop af
+ bit 1, a
+ jr z, .asm_100d65
+ ret z
+ scf
+ ret
+
+.asm_100d65
+ and a
+ ret
+; 100d67
+
+Function100d67: ; 100d67
+ ld hl, .MenuDataHeader
+ call CopyMenuDataHeader
+ xor a
+ ld [hBGMapMode], a
+ call MenuBox
+ call UpdateSprites
+ call PlaceVerticalMenuItems
+ call WaitBGMap
+ call CopyMenuData2
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 6, [hl]
+ ret
+; 100d88
+
+.MenuDataHeader: ; 100d88
+ db 0 ; flags
+ db 11, 11 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+
+.MenuData2: ; 100d90
+ db $c0 ; flags
+ db 3
+ db "いれかえる@" ; TRADE
+ db "つよさをみる@" ; STATS
+ db "キャンセル@" ; CANCEL
+; 100da5
+
+Function100da5: ; 100da5
+ ld hl, wcd2a
+ res 3, [hl]
+ ld hl, wcd29
+ res 0, [hl]
+ ret
+; 100db0
+
+Function100db0: ; 100db0
+ ld hl, wcd2a
+ bit 3, [hl]
+ jr nz, .asm_100dbe
+ ld hl, wcd2a
+ set 3, [hl]
+ scf
+ ret
+
+.asm_100dbe
+ xor a
+ ret
+; 100dc0
+
+
+
+Function100dc0: ; 100dc0
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jr nz, .mobile
+ ld hl, wcd2a
+ bit 3, [hl]
+ jr z, .mobile
+ scf
+ ret
+
+.mobile
+ xor a
+ ret
+; 100dd2
+
+Mobile_SetOverworldDelay: ; 100dd2
+ ld a, 30
+ ld [OverworldDelay], a
+ ret
+; 100dd8
+
+Function100dd8: ; 100dd8
+ ld c, $01
+ ld b, $03
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ jr c, .asm_100dfb
+ ld c, $3c
+ ld b, $01
+ call Function10079c
+ jr c, .asm_100dfb
+ callba Function10032e
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_100dfb
+ xor a
+ ret
+
+.asm_100dfb
+ scf
+ ret
+; 100dfd
+
+MobileComms_CheckInactivityTimer: ; 100dfd
+ ld a, [OverworldDelay]
+ ld c, a
+ ld a, 30
+ sub c
+ ld c, a
+ ld b, 3
+ push bc
+ callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall
+ pop bc
+ jr c, .quit
+ ld b, 1
+ call Function10079c
+ jr c, .quit
+ call Function1009f3
+ jr c, .quit
+ callba Function10032e ; useless to farcall
+ ld a, [wcd2b]
+ and a
+ jr nz, .quit
+ xor a
+ ret
+
+.quit
+ scf
+ ret
+; 100e2d
+
+Function100e2d: ; 100e2d
+ ld a, [OverworldDelay]
+ ld c, a
+ ld a, 30
+ sub c
+ ld c, a
+ ld b, 3
+ push bc
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ pop bc
+ jr c, .asm_100e61
+ ld b, 1
+ call Function10079c
+ jr c, .asm_100e61
+ call Function1009f3
+ jr c, .asm_100e61
+ callba Function10032e
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_100e61
+ call Function100e63
+ call Function100e84
+ xor a
+ ret
+
+.asm_100e61
+ scf
+ ret
+; 100e63
+
+Function100e63: ; 100e63
+ ld a, e
+ cp $02
+ ret nz
+ call Function100db0
+ ret nc
+ ld de, SFX_ELEVATOR_END
+ call PlaySFX
+ ret
+; 100e72
+
+Function100e72: ; 100e72
+ xor a
+ ld hl, wcd29
+ bit 0, [hl]
+ jr z, .asm_100e7c
+ ld a, $0a
+
+.asm_100e7c
+ ld [wcd67], a
+ xor a
+ ld [wcd68], a
+ ret
+; 100e84
+
+Function100e84: ; 100e84
+ ld a, [wcd67]
+ ld hl, Jumptable_100e8c
+ rst JumpTable
+ ret
+; 100e8c
+
+
+Jumptable_100e8c: ; 100e8c (40:4e8c)
+ dw Function100ea2
+ dw Function100eae
+ dw Function100eb4
+ dw Function100eae
+ dw Function100eb4
+ dw Function100eae
+ dw Function100eb4
+ dw Function100eae
+ dw Function100eb4
+ dw Function100eae
+ dw Function100ec4
+
+
+Function100ea2: ; 100ea2 (40:4ea2)
+ call Function100dc0
+ ret nc
+ ld hl, wcd29
+ set 0, [hl]
+ call Function100ec5
+
+
+Function100eae: ; 100eae
+ scf
+ call Function100eca
+ jr asm_100eb8
+
+Function100eb4: ; 100eb4
+ and a
+ call Function100eca
+
+asm_100eb8
+ ld hl, wcd68
+ inc [hl]
+ ld a, [hl]
+ cp $02
+ ret c
+ ld [hl], 0
+ jr Function100ec5
+
+Function100ec4: ; 100ec4
+ ret
+
+Function100ec5
+ ld hl, wcd67
+ inc [hl]
+ ret
+; 100eca
+
+Function100eca: ; 100eca
+ callba Mobile_InitPartyMenuBGPal7
+ call Function100ed4
+ ret
+; 100ed4
+
+Function100ed4: ; 100ed4
+ callba ApplyPals
+ ld a, $01
+ ld [hCGBPalUpdate], a
+ ret
+; 100edf
+
+Function100edf: ; 100edf
+ ld hl, Unknown_100fc0
+ ld c, 1
+ jr asm_100f02
+
+Function100ee6: ; 100ee6
+ ld hl, Unknown_100fc0
+ ld c, 2
+ jr asm_100f02
+
+Function100eed: ; 100eed
+ ld hl, Unknown_100feb
+ ld c, 1
+ jr asm_100f02
+
+Function100ef4: ; 100ef4
+ ld hl, Unknown_100ff3
+ ld c, 1
+ jr asm_100f02
+
+Function100efb: ; 100efb
+ ld hl, Unknown_10102c
+ ld c, 1
+ jr asm_100f02
+
+asm_100f02:
+ ld a, c
+ ld [StringBuffer2], a
+ ; someting that was previously stored in de gets backed up to here
+ ld a, e
+ ld [StringBuffer2 + 1], a
+ ld a, d
+ ld [StringBuffer2 + 2], a
+ ; empty this
+ xor a
+ ld [StringBuffer2 + 4], a
+ ld [StringBuffer2 + 5], a
+.loop
+ ld a, [hl]
+ cp $ff
+ jr z, .done
+ ld [StringBuffer2 + 3], a ; bank
+ push hl
+ inc hl
+ ; addr 1
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ; size
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ; addr 2
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function100f3d
+ ; next line
+ pop hl
+ ld de, 7
+ add hl, de
+ jr .loop
+
+.done
+ ; recover the values into bc
+ ld a, [StringBuffer2 + 4]
+ ld c, a
+ ld a, [StringBuffer2 + 5]
+ ld b, a
+ ret
+; 100f3d
+
+Function100f3d: ; 100f3d
+ ; parameter
+ ld a, [StringBuffer2]
+ cp $02
+ jr z, .two
+ cp $01
+ jr z, .one
+ cp $03
+ jr z, .three
+ ret
+
+.three
+ ; what was once in de gets copied to hl,
+ ; modified by Function100f8d, and put back
+ ; into this backup
+ ld a, [StringBuffer2 + 1]
+ ld l, a
+ ld a, [StringBuffer2 + 2]
+ ld h, a
+ call Function100f8d
+ ld a, l
+ ld [StringBuffer2 + 1], a
+ ld a, h
+ ld [StringBuffer2 + 2], a
+ ret
+
+.two
+ ; hl gets backed up to de, then
+ ; do the same as in .three
+ ld d, h
+ ld e, l
+ ld a, [StringBuffer2 + 1]
+ ld l, a
+ ld a, [StringBuffer2 + 2]
+ ld h, a
+ call Function100f8d
+ ld a, l
+ ld [StringBuffer2 + 1], a
+ ld a, h
+ ld [StringBuffer2 + 2], a
+ ret
+
+.one
+ ; de gets copied to hl, then
+ ; load the backup into de,
+ ; finally run Function100f8d
+ ; and store the de result
+ ld h, d
+ ld l, e
+ ld a, [StringBuffer2 + 1]
+ ld e, a
+ ld a, [StringBuffer2 + 2]
+ ld d, a
+ call Function100f8d
+ ld a, e
+ ld [StringBuffer2 + 1], a
+ ld a, d
+ ld [StringBuffer2 + 2], a
+ ret
+; 100f8d
+
+Function100f8d: ; 100f8d
+ push hl
+ ld a, [StringBuffer2 + 4]
+ ld l, a
+ ld a, [StringBuffer2 + 5]
+ ld h, a
+ add hl, bc
+ ld a, l
+ ld [StringBuffer2 + 4], a
+ ld a, h
+ ld [StringBuffer2 + 5], a
+ pop hl
+ ld a, [StringBuffer2 + 3]
+ bit 7, a
+ res 7, a
+ jr z, .sram
+ and a
+ jr nz, .far_wram
+ call CopyBytes
+ ret
+
+.far_wram
+ and $7f
+ call FarCopyWRAM
+ ret
+
+.sram
+ call GetSRAMBank
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 100fc0
+
+Unknown_100fc0: ; 100fc0
+ ; first byte:
+ ; Bit 7 set: Not SRAM
+ ; Lower 7 bits: Bank
+ ; Address, size (dw), address
+ dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName
+ dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount
+ dbwww $80, PlayerID, 2, OTPlayerID
+ dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons
+ dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT
+ dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames
+ db -1
+
+Unknown_100feb: ; 100feb
+ dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
+ db -1
+
+Unknown_100ff3: ; 100ff3
+ dbwww $80, wdc41, 1, NULL
+ dbwww $80, PlayerName, NAME_LENGTH, NULL
+ dbwww $80, PlayerName, NAME_LENGTH, NULL
+ dbwww $80, PlayerID, 2, NULL
+ dbwww $80, wSecretID, 2, NULL
+ dbwww $80, PlayerGender, 1, NULL
+ dbwww $04, $a603, 8, NULL
+ dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL
+ db -1
+
+Unknown_10102c: ; 10102c
+ dbwww $80, OTPlayerName, NAME_LENGTH, NULL
+ dbwww $80, OTPlayerID, 2, NULL
+ dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL
+ dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL
+ dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
+ db -1
+; 10104f
+
+Function101050: ; 101050
+ call Function10107d
+ ld a, [OTPartyCount]
+rept 2 ; ???
+ ld hl, wc608
+endr
+ ld bc, wc7bb - wc608
+ call Function1010de
+ ld hl, wc7bb
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, $07
+ call GetSRAMBank
+ ld hl, wc608
+ ld de, $a001
+ ld bc, wc7bd - wc608
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 10107d
+
+Function10107d: ; 10107d
+ xor a
+ ld hl, wc608
+ ld bc, wc7bd - wc608
+ call ByteFill
+ ld hl, OTPlayerName
+ ld de, wc608
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, wd271
+ ld a, [hli]
+ ld [wc608 + 11], a
+ ld a, [hl]
+ ld [wc608 + 12], a
+ ld hl, OTPartyMonNicknames
+ ld de, wc608 + 13
+ ld bc, NAME_LENGTH
+ call .CopyAllFromOT
+ ld hl, OTPartyMonOT
+ ld de, OTClassName + 1
+ ld bc, NAME_LENGTH
+ call .CopyAllFromOT
+ ld hl, OTPartyMon1Species
+ ld de, $c699
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call .CopyAllFromOT
+ ld a, $50
+ ld [wc7b9], a
+ ld a, $33
+ ld [wc7ba], a
+ ret
+; 1010cd
+
+.CopyAllFromOT: ; 1010cd
+ push hl
+ ld hl, 0
+ ld a, [OTPartyCount]
+ call AddNTimes
+ ld b, h
+ ld c, l
+ pop hl
+ call CopyBytes
+ ret
+; 1010de
+
+Function1010de: ; 1010de
+ push hl
+ push bc
+ ld de, 0
+.loop
+ ld a, [hli]
+ add e
+ ld e, a
+ ld a, d
+ adc 0
+ ld d, a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ pop bc
+ pop hl
+ ret
+; 1010f2
+
+LoadSelectedPartiesForColosseum: ; 1010f2
+ xor a
+ ld hl, StringBuffer2
+ ld bc, 9
+ call ByteFill
+ ld hl, wPlayerMonSelection
+ ld de, PartyCount
+ call .CopyThreeSpecies
+ ld hl, wPlayerMonSelection
+ ld de, PartyMon1Species
+ call .CopyPartyStruct
+ ld hl, wPlayerMonSelection
+ ld de, PartyMonOT
+ call .CopyName
+ ld hl, wPlayerMonSelection
+ ld de, PartyMonNicknames
+ call .CopyName
+ ld hl, wOTMonSelection
+ ld de, OTPartyCount
+ call .CopyThreeSpecies
+ ld hl, wOTMonSelection
+ ld de, OTPartyMon1Species
+ call .CopyPartyStruct
+ ld hl, wOTMonSelection
+ ld de, OTPartyMonOT
+ call .CopyName
+ ld hl, wOTMonSelection
+ ld de, OTPartyMonNicknames
+ call .CopyName
+ ret
+; 101145
+
+.CopyThreeSpecies: ; 101145
+; Load the 3 choices to the buffer
+ push de
+ ld bc, StringBuffer2 + NAME_LENGTH_JAPANESE
+ xor a
+.party_loop
+ push af
+ call .GetNthSpecies
+ ld [bc], a
+ inc bc
+ pop af
+ inc a
+ cp 3
+ jr nz, .party_loop
+ pop de
+; Copy the 3 choices to the party
+ ld a, 3
+ ld [de], a
+ inc de
+ ld hl, StringBuffer2 + NAME_LENGTH_JAPANESE
+ ld bc, 3
+ call CopyBytes
+ ld a, $ff
+ ld [de], a
+ ret
+; 101168
+
+.GetNthSpecies: ; 101168
+; Preserves hl and de
+; Get the index of the Nth selection
+ push hl
+ add l
+ ld l, a
+ ld a, h
+ adc 0
+ ld h, a
+ ld a, [hl]
+ pop hl
+; Get the corresponding species
+ push de
+ inc de
+ add e
+ ld e, a
+ ld a, d
+ adc 0
+ ld d, a
+ ld a, [de]
+ pop de
+ ret
+; 10117c
+
+.CopyPartyStruct: ; 10117c
+ ld bc, PARTYMON_STRUCT_LENGTH
+ jr .ContinueCopy
+
+.CopyName: ; 101181
+ ld bc, NAME_LENGTH
+
+.ContinueCopy:
+ ; Copy, via wc608...
+ ld a, wc608 % $100
+ ld [StringBuffer2], a
+ ld a, wc608 / $100
+ ld [StringBuffer2 + 1], a
+ ; ... bc bytes...
+ ld a, c
+ ld [StringBuffer2 + 2], a
+ ld a, b
+ ld [StringBuffer2 + 3], a
+ ; ... to de...
+ ld a, e
+ ld [StringBuffer2 + 4], a
+ ld a, d
+ ld [StringBuffer2 + 5], a
+ ; ... 3 times.
+ ld a, 3
+.big_copy_loop
+ push af
+ ld a, [hli]
+ push hl
+ push af
+ call .GetDestinationAddress
+ call .GetCopySize
+ pop af
+ call AddNTimes
+ ld a, [StringBuffer2]
+ ld e, a
+ ld a, [StringBuffer2 + 1]
+ ld d, a
+ call CopyBytes
+ ld a, e
+ ld [StringBuffer2], a
+ ld a, d
+ ld [StringBuffer2 + 1], a
+ pop hl
+ pop af
+ dec a
+ jr nz, .big_copy_loop
+ call .GetCopySize
+ ld a, 3
+ ld hl, 0
+ call AddNTimes
+ ld b, h
+ ld c, l
+ call .GetDestinationAddress
+ ld d, h
+ ld e, l
+ ld hl, wc608
+ call CopyBytes
+ ret
+; 1011df
+
+.GetDestinationAddress: ; 1011df
+ ld a, [StringBuffer2 + 4]
+ ld l, a
+ ld a, [StringBuffer2 + 5]
+ ld h, a
+ ret
+; 1011e8
+
+.GetCopySize: ; 1011e8
+ ld a, [StringBuffer2 + 2]
+ ld c, a
+ ld a, [StringBuffer2 + 3]
+ ld b, a
+ ret
+; 1011f1
+
+Function1011f1: ; 1011f1
+ ld a, $04
+ call GetSRAMBank
+ ld a, [$a60c]
+ ld [wdc41], a
+ call CloseSRAM
+ ld hl, wdc41
+ res 4, [hl]
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ jr z, .skip
+ ld hl, wdc41
+ set 4, [hl]
+
+.skip
+ call Function10209c
+ xor a
+ ld [wdc5f], a
+ ld [wdc60], a
+ ld a, LINK_MOBILE
+ ld [wLinkMode], a
+ ret
+; 101220
+
+Function101220: ; 101220
+ xor a
+ ld [wLinkMode], a
+ ret
+; 101225
+
+Function101225: ; 101225
+ ld d, 1
+ ld e, BANK(Jumptable_101297)
+ ld bc, Jumptable_101297
+ call Function100000
+ jr Function10123d
+
+Function101231: ; 101231
+ ld d, 2
+ ld e, BANK(Jumptable_101297)
+ ld bc, Jumptable_101297
+ call Function100000
+ jr Function10123d
+
+Function10123d: ; 10123d
+ xor a
+ ld [ScriptVar], a
+ ld a, c
+ ld hl, Jumptable_101247
+ rst JumpTable
+ ret
+; 101247
+
+Jumptable_101247: ; 101247
+ dw Function101251
+ dw Function10127d
+ dw Function10127c
+ dw Function10126c
+ dw Function101265
+; 101251
+
+Function101251: ; 101251
+ call UpdateSprites
+ call RefreshScreen
+ ld hl, UnknownText_0x1021f4
+ call Function1021e0
+ call Function1020ea
+ ret c
+ call Function102142
+ ret
+; 101265
+
+Function101265: ; 101265
+ ld hl, UnknownText_0x1021ef
+ call Function1021e0
+ ret
+; 10126c
+
+Function10126c: ; 10126c
+ call UpdateSprites
+ callba Script_reloadmappart
+ ld hl, UnknownText_0x1021f4
+ call Function1021e0
+ ret
+; 10127c
+
+Function10127c: ; 10127c
+ ret
+; 10127d
+
+Function10127d: ; 10127d
+ ret
+; 10127e
+
+Function10127e: ; 10127e
+ ld a, [wdc5f]
+ and a
+ jr z, .zero
+ cp 1
+ ld c, $27
+ jr z, .load
+ cp 2
+ ld c, $37
+ jr z, .load
+.zero
+ ld c, 0
+.load
+ ld a, c
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101297
+
+Jumptable_101297: ; 101297
+ dw Function101a97 ; 00
+ dw Function101ab4 ; 01
+ dw Function101475 ; 02
+ dw Function101b0f ; 03
+ dw Function101438 ; 04
+ dw Function101b2b ; 05
+ dw Function101b59 ; 06
+ dw Function101475 ; 07
+ dw Function101b70 ; 08
+ dw Function101438 ; 09
+ dw Function101b8f ; 0a
+ dw Function101d7b ; 0b
+ dw Function101d95 ; 0c
+ dw Function101475 ; 0d
+ dw Function101db2 ; 0e
+ dw Function101e4f ; 0f
+ dw Function101475 ; 10
+ dw Function101e64 ; 11
+ dw Function101e4f ; 12
+ dw Function101475 ; 13
+ dw Function101e64 ; 14
+ dw Function101d95 ; 15
+ dw Function101475 ; 16
+ dw Function101db2 ; 17
+ dw Function101dd0 ; 18
+ dw Function101de3 ; 19
+ dw Function101e39 ; 1a
+ dw Function101e09 ; 1b
+ dw Function101e4f ; 1c
+ dw Function101475 ; 1d
+ dw Function101e64 ; 1e
+ dw Function101d95 ; 1f
+ dw Function101475 ; 20
+ dw Function101db2 ; 21
+ dw Function101e09 ; 22
+ dw Function101e31 ; 23
+ dw Function101bc8 ; 24
+ dw Function101438 ; 25
+ dw Function101be5 ; 26
+ dw Function101ac6 ; 27
+ dw Function101ab4 ; 28
+ dw Function101475 ; 29
+ dw Function101c11 ; 2a
+ dw Function1014f4 ; 2b
+ dw Function101cc8 ; 2c
+ dw Function1014e2 ; 2d
+ dw Function1014e2 ; 2e
+ dw Function101d10 ; 2f
+ dw Function101d2a ; 30
+ dw Function101d2a ; 31
+ dw Function101507 ; 32
+ dw Function10156d ; 33
+ dw Function101557 ; 34
+ dw Function10158a ; 35
+ dw Function101c42 ; 36
+ dw Function101aed ; 37
+ dw Function101ab4 ; 38
+ dw Function101475 ; 39
+ dw Function101c2b ; 3a
+ dw Function1014f4 ; 3b
+ dw Function101cdf ; 3c
+ dw Function1014e2 ; 3d
+ dw Function1014e2 ; 3e
+ dw Function101d1e ; 3f
+ dw Function101d2a ; 40
+ dw Function101d2a ; 41
+ dw Function101507 ; 42
+ dw Function10156d ; 43
+ dw Function101544 ; 44
+ dw Function10158a ; 45
+ dw Function101c42 ; 46
+ dw Function101c50 ; 47
+ dw Function1014ce ; 48
+ dw Function101cf6 ; 49
+ dw Function101826 ; 4a
+ dw Function1017e4 ; 4b
+ dw Function1017f1 ; 4c
+ dw Function1018a8 ; 4d
+ dw Function1018d6 ; 4e
+ dw Function1017e4 ; 4f
+ dw Function1017f1 ; 50
+ dw Function1018e1 ; 51
+ dw Function1015df ; 52
+ dw Function10167d ; 53
+ dw Function10168a ; 54
+ dw Function10162a ; 55
+ dw Function1015be ; 56
+ dw Function10167d ; 57
+ dw Function10168a ; 58
+ dw Function10161f ; 59
+ dw Function10159d ; 5a
+ dw Function10167d ; 5b
+ dw Function10168a ; 5c
+ dw Function101600 ; 5d
+ dw Function101d03 ; 5e
+ dw Function101d6b ; 5f
+ dw Function10159d ; 60
+ dw Function1014ce ; 61
+ dw Function10168e ; 62
+ dw Function101600 ; 63
+ dw Function101913 ; 64
+ dw Function10194b ; 65
+ dw _SelectMonsForMobileBattle ; 66
+ dw Function1017e4 ; 67
+ dw Function1017f5 ; 68
+ dw _StartMobileBattle ; 69
+ dw Function101537 ; 6a
+ dw Function101571 ; 6b
+ dw Function101c92 ; 6c
+ dw Function10152a ; 6d
+ dw Function101571 ; 6e
+ dw Function101a4f ; 6f
+ dw Function101cbc ; 70
+ dw Function101c62 ; 71
+ dw Function101537 ; 72
+ dw Function101571 ; 73
+ dw Function101c92 ; 74
+ dw Function10152a ; 75
+ dw Function101571 ; 76
+ dw Function101ca0 ; 77
+ dw Function101475 ; 78
+ dw Function101cbc ; 79
+; 10138b
+
+Function10138b: ; 10138b
+ callba Function8adcc
+ ld c, 0
+ jr c, .asm_101396
+ inc c
+
+.asm_101396
+ sla c
+ ld a, [wcd2f]
+ and a
+ jr z, .asm_10139f
+ inc c
+
+.asm_10139f
+ sla c
+ ld a, [wcd21]
+ cp $01
+ jr z, .asm_1013a9
+ inc c
+
+.asm_1013a9
+ ret
+; 1013aa
+
+Function1013aa: ; 1013aa
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call ReloadTilesetAndPalettes
+ callba Function106464
+ call UpdateSprites
+ call FinishExitMenu
+ ret
+; 1013c0
+
+Function1013c0: ; 1013c0
+ callba BlankScreen
+ callba MobileFunc_106462
+ callba Function106464
+ call FinishExitMenu
+ ret
+; 1013d6
+
+Function1013d6: ; 1013d6
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ ret
+; 1013dd
+
+Function1013dd: ; 1013dd
+ call CGBOnly_LoadEDTile
+ ret
+; 1013e1
+
+Function1013e1: ; 1013e1 ; unreferenced
+ push de
+ inc de
+ ld b, a
+ ld c, 0
+.asm_1013e6
+ inc c
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_1013f1
+ dec b
+ jr nz, .asm_1013e6
+ scf
+
+.asm_1013f1
+ pop de
+ ld a, c
+ ld [de], a
+ ret
+; 1013f5
+
+Function1013f5: ; 1013f5
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld c, a
+.asm_1013f9
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_1013f9
+ ret
+; 101400
+
+Function101400: ; 101400 ; unreferenced
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, asm_101416
+ inc hl
+
+Function101406: ; 101406
+ ld c, a
+ ld b, 0
+.asm_101409
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, asm_101416
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_101409
+ and a
+ ret
+
+asm_101416
+ scf
+ ret
+; 101418
+
+Function101418: ; 101418
+ call GetJoypad
+ ld a, [hJoyDown]
+ and SELECT + A_BUTTON
+ cp SELECT + A_BUTTON
+ jr z, .asm_101425
+ xor a
+ ret
+
+.asm_101425
+ ld a, $f7
+ ld [wcd2b], a
+ scf
+ ret
+; 10142c
+
+Function10142c: ; 10142c
+ ld a, $01
+ ld [wc305], a
+ callba Function115e18
+ ret
+; 101438
+
+Function101438: ; 101438
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wcd26]
+ ld hl, Jumptable_101457
+ rst JumpTable
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101457
+
+Jumptable_101457: ; 101457
+ dw Function10145b
+ dw Function101467
+; 10145b
+
+Function10145b: ; 10145b
+ ld a, $3c
+ ld [wcd42], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function101467: ; 101467
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 101475
+
+Function101475: ; 101475
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wcd26]
+ ld hl, Jumptable_101494
+ rst JumpTable
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101494
+
+Jumptable_101494: ; 101494
+ dw Function10149a
+ dw Function1014a6
+ dw Function1014b7
+; 10149a
+
+Function10149a: ; 10149a
+ ld a, $28
+ ld [wcd42], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function1014a6: ; 1014a6
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, $50
+ ld [wcd42], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function1014b7: ; 1014b7
+ call GetJoypad
+ ld a, [hJoyPressed]
+ and $03
+ jr nz, .asm_1014c5
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+
+.asm_1014c5
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 1014ce
+
+Function1014ce: ; 1014ce
+ callba Function100720
+ callba StartMobileInactivityTimer
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1014e2
+
+Function1014e2: ; 1014e2
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1014f4
+
+Function1014f4: ; 1014f4
+ callba EnableMobile
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101507
+
+Function101507: ; 101507
+ ld de, wcd30
+ ld hl, $40
+ ld bc, $40
+ ld a, $02
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10151d
+
+Function10151d: ; 10151d ; unreferenced
+ ld a, $34
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10152a
+
+Function10152a: ; 10152a
+ ld a, $36
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101537
+
+Function101537: ; 101537
+ ld a, $0a
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101544
+
+Function101544: ; 101544
+ callba StartMobileInactivityTimer
+ ld a, $12
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101557
+
+Function101557: ; 101557
+ callba StartMobileInactivityTimer
+ ld hl, wcd53
+ ld a, $08
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10156d
+
+Function10156d: ; 10156d
+ call Function101418
+ ret c
+
+Function101571: ; 101571
+ callba Function10032e
+ ret c
+ ret z
+ ld a, e
+ cp $01
+ jr z, .asm_101582
+ ld [wcd2b], a
+ ret
+
+.asm_101582
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10158a
+
+Function10158a: ; 10158a
+ callba IncrementMobileInactivityTimerBy1Frame
+ ld a, [wMobileInactivityTimerMinutes]
+ cp $0a
+ jr c, Function10156d
+ ld a, $fb
+ ld [wcd2b], a
+ ret
+; 10159d
+
+Function10159d: ; 10159d
+ ld de, wc608
+ callba Function100edf
+ ld de, wc608
+ ld a, $05
+ ld hl, w5_d800
+ call Function10174c
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1015be
+
+Function1015be: ; 1015be
+ ld de, wc608
+ callba Function100eed
+ ld de, wc608
+ ld a, $05
+ ld hl, w5_d800
+ call Function10174c
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1015df
+
+Function1015df: ; 1015df
+ ld de, wc608
+ callba Function100ef4
+ ld de, wc608
+ ld a, $05
+ ld hl, w5_d800
+ call Function10174c
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101600
+
+Function101600: ; 101600
+ ld hl, w5_d800
+ ld de, wc608
+ ld bc, $1e0
+ ld a, $05
+ call FarCopyWRAM
+ ld de, wc608
+ callba Function100ee6
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10161f
+
+Function10161f: ; 10161f
+ call Function101649
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10162a
+
+Function10162a: ; 10162a
+ call Function101663
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101635
+
+Function101635: ; 101635
+ ld de, wc608
+ ld bc, $1e0
+ call FarCopyWRAM
+ ret
+; 10163f
+
+Function10163f: ; 10163f
+ ld hl, wc608
+ ld bc, $1e0
+ call FarCopyWRAM
+ ret
+; 101649
+
+Function101649: ; 101649
+ ld a, $05
+ ld hl, w5_d800
+ call Function101635
+ ld a, $05
+ ld de, w5_da00
+ call Function10163f
+ ret
+; 10165a
+
+Function10165a: ; 10165a
+ ld a, $05
+ ld hl, w5_da00
+ call Function101635
+ ret
+; 101663
+
+Function101663: ; 101663
+ ld a, $05
+ ld hl, w5_d800
+ call Function101635
+ ld a, $05
+ ld de, w5_dc00
+ call Function10163f
+ ret
+; 101674
+
+Function101674: ; 101674 ; unreferenced
+ ld a, $05
+ ld hl, w5_dc00
+ call Function101635
+ ret
+; 10167d
+
+Function10167d: ; 10167d
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10168a
+
+Function10168a: ; 10168a
+ call Function101418
+ ret c
+
+Function10168e: ; 10168e
+ ld b, 0
+ ld c, $01
+ callba Function10079c
+ ret c
+ ld c, $01
+ ld b, $03
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ ret c
+ ld a, [wcd26]
+ ld hl, Jumptable_1016c3
+ rst JumpTable
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1016c3
+
+Jumptable_1016c3: ; 1016c3
+ dw Function1016cf
+ dw Function1016de
+ dw Function1016f8
+ dw Function101705
+ dw Function101719
+ dw Function101724
+; 1016cf
+
+Function1016cf: ; 1016cf
+ ld hl, wcd3a
+ inc [hl]
+ call Function10176f
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 1016de
+
+Function1016de: ; 1016de
+ call Function10177b
+ jr nc, .asm_1016eb
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+
+.asm_1016eb
+ ld a, $ff
+ ld [wcd39], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 1016f8
+
+Function1016f8: ; 1016f8
+ ld a, 0
+ ld [wcd27], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 101705
+
+Function101705: ; 101705
+ callba Function100382
+ ld a, [wcd27]
+ bit 7, a
+ ret z
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 101719
+
+Function101719: ; 101719
+ call Function1017c7
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 101724
+
+Function101724: ; 101724
+ ld a, [wcd39]
+ cp $ff
+ jr z, .asm_101731
+ ld a, 0
+ ld [wcd26], a
+ ret
+
+.asm_101731
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 10173a
+
+Unknown_10173a:
+ db $50
+
+Function10173b: ; 10173b
+ push bc
+ push af
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [Unknown_10173a]
+ ld c, a
+ ld b, 0
+ pop af
+ call AddNTimes
+ pop bc
+ ret
+; 10174c
+
+Function10174c: ; 10174c
+ ld [wcd3d], a
+ ld a, l
+ ld [wcd3e], a
+ ld a, h
+ ld [wcd3f], a
+ ld a, e
+ ld [wcd3b], a
+ ld a, d
+ ld [wcd3c], a
+ ld a, c
+ ld [wcd40], a
+ ld a, b
+ ld [wcd41], a
+ xor a
+ ld [wcd39], a
+ ld [wcd3a], a
+ ret
+; 10176f
+
+Function10176f: ; 10176f
+ ld hl, wccb4
+ ld bc, $54
+ ld a, $11
+ call ByteFill
+ ret
+; 10177b
+
+Function10177b: ; 10177b
+ ld a, [Unknown_10173a]
+ ld c, a
+ ld b, 0
+ ld a, [wcd3a]
+ ld hl, 0
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld hl, wcd40
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ jr c, .asm_1017a0
+ add hl, bc
+ call Function1017b0
+ scf
+ ret
+
+.asm_1017a0
+ ld a, $ff
+ ld [wcd39], a
+ add hl, bc
+ ld a, h
+ or l
+ ret z
+ ld c, l
+ ld b, h
+ call Function1017b0
+ xor a
+ ret
+; 1017b0
+
+Function1017b0: ; 1017b0
+ ld a, c
+ ld [wccb4], a
+ push bc
+ ld a, [wcd3a]
+ dec a
+ ld hl, wcd3b
+ call Function10173b
+ pop bc
+ ld de, wccb5
+ call CopyBytes
+ ret
+; 1017c7
+
+Function1017c7: ; 1017c7
+ ld a, [wcc60]
+ ld c, a
+ ld b, 0
+ ld a, [wcd3a]
+ dec a
+ ld hl, wcd3e
+ call Function10173b
+ ld e, l
+ ld d, h
+ ld hl, wcc61
+ ld a, [wcd3d]
+ call FarCopyWRAM
+ and a
+ ret
+; 1017e4
+
+Function1017e4: ; 1017e4
+ ld a, 0
+ ld [wcd27], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1017f1
+
+Function1017f1: ; 1017f1
+ call Function101418
+ ret c
+
+Function1017f5: ; 1017f5
+ ld b, 0
+ ld c, $01
+ callba Function10079c
+ ret c
+ ld c, $01
+ ld b, $03
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ ret c
+ callba Function100382
+ ld a, [wcd27]
+ bit 7, a
+ jr nz, .next
+ ld hl, wcd29
+ set 6, [hl]
+ ret
+
+.next
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101826
+
+Function101826: ; 101826
+ ld a, [wcd21]
+ cp $02
+ jr z, .asm_101833
+ cp $01
+ jr z, .asm_101844
+ jr .asm_101869
+
+.asm_101833
+ ld hl, Unknown_10186f
+ ld de, wccb4
+ call Function1013f5
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101844
+ callba Function103654
+ ld a, c
+ ld hl, Unknown_101882
+ cp $01
+ jr z, .asm_10185b
+ ld hl, Unknown_101895
+ cp $02
+ jr z, .asm_10185b
+ jr .asm_101869
+
+.asm_10185b
+ ld de, wccb4
+ call Function1013f5
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101869
+ ld a, $fe
+ ld [wcd2b], a
+ ret
+; 10186f
+
+
+SECTION "ascii 10186f", ROMX
+
+ charmap " ", $20 ; revert to ascii
+
+Unknown_10186f:
+ db .end - @
+ db $19, $73, $09, $13, "trade_crystal"
+.end db 0
+
+Unknown_101882:
+ db .end - @
+ db $19, $67, $10, $01, "free__crystal"
+.end db 0
+
+Unknown_101895:
+ db .end - @
+ db $19, $67, $10, $01, "limit_crystal"
+.end db 0
+; 1018a8
+
+
+SECTION "bank40_3", ROMX
+
+Function1018a8: ; 1018a8
+ ld hl, wccb5
+ ld de, wcc61
+ ld a, $04
+ call Function101406
+ jr c, .asm_1018d0
+ ld hl, wccb9
+ ld de, wcc65
+ ld a, $06
+ call Function101406
+ jr c, .asm_1018ca
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_1018ca
+ ld a, $f6
+ ld [wcd2b], a
+ ret
+
+.asm_1018d0
+ ld a, $f5
+ ld [wcd2b], a
+ ret
+; 1018d6
+
+Function1018d6: ; 1018d6
+ call Function1018ec
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1018e1
+
+Function1018e1: ; 1018e1
+ call Function1018fb
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1018ec
+
+Function1018ec: ; 1018ec
+ ld a, $0a
+ ld hl, wccb4
+ ld [hli], a
+ ld c, a
+.asm_1018f3
+ call Random
+ ld [hli], a
+ dec c
+ jr nz, .asm_1018f3
+ ret
+; 1018fb
+
+Function1018fb: ; 1018fb
+ ld a, [wcd2f]
+ and a
+ jr z, .asm_101906
+ ld hl, wcc61
+ jr .asm_101909
+
+.asm_101906
+ ld hl, wccb5
+
+.asm_101909
+ ld de, LinkBattleRNs
+ ld bc, 10
+ call CopyBytes
+ ret
+; 101913
+
+Function101913: ; 101913
+ ld hl, wcd2a
+ set 0, [hl]
+ xor a
+ ld [wc30d], a
+ ld hl, wcd29
+ res 4, [hl]
+ xor a
+ ld [wc305], a
+ ld hl, wcd29
+ res 7, [hl]
+ ld a, $90
+ ld [hWY], a
+ ld a, [wcd21]
+ cp $01
+ jr z, .asm_10193f
+ cp $02
+ jr z, .asm_101945
+ ld a, $71
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_10193f
+ ld a, $66
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101945
+ ld a, $65
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10194b
+
+Function10194b: ; 10194b
+ call DisableSpriteUpdates
+ call ClearSprites
+ callba Function1021f9
+ ld hl, wcd29
+ bit 3, [hl]
+ jr nz, .asm_101967
+ call Function1013c0
+ ld a, $71
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101967
+ ld a, $60
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10196d
+
+_SelectMonsForMobileBattle: ; 10196d
+ callba BlankScreen
+ callba Mobile_CommunicationStandby
+ ld hl, wcd29
+ set 5, [hl]
+ ld hl, wcd2a
+ set 6, [hl]
+ ld a, $06
+ ld [wccb4], a
+ ld hl, wPlayerMonSelection
+ ld de, wccb5
+ ld bc, 3
+ call CopyBytes
+ ld hl, wcd6c
+ ld a, [hli]
+ ld [wccb8], a
+ ld a, [hli]
+ ld [wccb9], a
+ ld a, [hl]
+ ld [wccba], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1019ab
+
+_StartMobileBattle: ; 1019ab
+ call CopyOtherPlayersBattleMonSelection
+ callba Function100754
+ xor a
+ ld [wdc5f], a
+ ld [wdc60], a
+ callba BlankScreen
+ call SpeechTextBox
+ callba Function100846
+ ld c, 120
+ call DelayFrames
+ callba ClearTileMap
+ call .CopyOTDetails
+ call StartMobileBattle
+ ld a, [wcd2b]
+ cp $fc
+ jr nz, .asm_1019e6
+ xor a
+ ld [wcd2b], a
+.asm_1019e6
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1019ee
+
+.CopyOTDetails: ; 1019ee
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+
+ ld bc, w5_dc0d
+ ld de, w5_dc11
+ callba GetMobileOTTrainerClass
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, c
+ ld [OtherTrainerClass], a
+ ld hl, OTPlayerName
+ ld de, OTClassName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wcd2f]
+ and a
+ ld a, 2
+ jr z, .got_link_player_number
+ ld a, 1
+.got_link_player_number
+ ld [hLinkPlayerNumber], a
+ ret
+; 101a21
+
+StartMobileBattle: ; 101a21
+ ; force stereo and fast text speed
+ ld hl, Options
+ ld a, [hl]
+ push af
+ and (1 << STEREO)
+ or 1 ; 1 frame per character i.e. fast text
+ ld [hl], a
+ ld a, 1
+ ld [wDisableTextAcceleration], a
+ callba BattleIntro
+ callba DoBattle
+ callba ShowLinkBattleParticipantsAfterEnd
+ xor a
+ ld [wDisableTextAcceleration], a
+ ld a, $ff
+ ld [hLinkPlayerNumber], a
+ pop af
+ ld [Options], a
+ ret
+; 101a4f
+
+Function101a4f: ; 101a4f
+ ld a, 1
+ ld [wDisableTextAcceleration], a
+ callba DisplayLinkBattleResult
+ xor a
+ ld [wDisableTextAcceleration], a
+ callba CleanUpBattleRAM
+ callba LoadPokemonData
+ call Function1013c0
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101a75
+
+CopyOtherPlayersBattleMonSelection: ; 101a75
+ ld hl, wcc61
+ ld de, wOTMonSelection
+ ld bc, 3
+ call CopyBytes
+ ld de, wcc64
+ callba Function100772
+ callba Function101050
+ callba LoadSelectedPartiesForColosseum
+ ret
+; 101a97
+
+Function101a97: ; 101a97
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $02
+ call Function10142c
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101ab4
+
+Function101ab4: ; 101ab4
+ ld e, $01
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101ac6
+
+Function101ac6: ; 101ac6
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $02
+ call Function10142c
+ ld hl, wcd29
+ set 6, [hl]
+ xor a
+ ld [wcd2f], a
+ ld de, wdc42
+ call Function102068
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101aed
+
+Function101aed: ; 101aed
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $02
+ call Function10142c
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, $01
+ ld [wcd2f], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101b0f
+
+Function101b0f: ; 101b0f
+ ld c, 0
+ call Function10142c
+ ld e, $03
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101b2b
+
+Function101b2b: ; 101b2b
+ callba Function100579
+ ld hl, wcd29
+ set 2, [hl]
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ call Function1013dd
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMenuCursorY]
+ cp $01
+ jr z, .asm_101b51
+ ld a, $02
+ ld [wcd2b], a
+ ret
+
+.asm_101b51
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101b59
+
+Function101b59: ; 101b59
+ ld c, $02
+ call Function10142c
+ ld e, $02
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101b70
+
+Function101b70: ; 101b70
+ ld c, $02
+ call Function10142c
+ ld e, $04
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ call UpdateSprites
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101b8f
+
+Function101b8f: ; 101b8f
+ callba Function1005c3
+ ld hl, wcd29
+ set 2, [hl]
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ call Function1013dd
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMenuCursorY]
+ cp $01
+ jr z, .asm_101bbc
+ ld a, $01
+ ld [wcd2f], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101bbc
+ xor a
+ ld [wcd2f], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101bc8
+
+Function101bc8: ; 101bc8
+ ld c, $02
+ call Function10142c
+ ld e, $08
+ call Function101ee4
+ call Function102048
+ call Function1013dd
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101be5
+
+Function101be5: ; 101be5
+ callba Function100579
+ ld hl, wcd29
+ set 2, [hl]
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ call Function1013dd
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMenuCursorY]
+ cp $01
+ jr nz, .asm_101c0b
+ ld a, $2a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101c0b
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101c11
+
+Function101c11: ; 101c11
+ ld a, $01
+ ld [wdc5f], a
+ ld e, $09
+ call Function101ee4
+ call Function102048
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101c2b
+
+Function101c2b: ; 101c2b
+ ld a, $02
+ ld [wdc5f], a
+ ld e, $07
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101c42
+
+Function101c42: ; 101c42
+ ld hl, wcd2a
+ set 1, [hl]
+ call Function100665
+ ld a, $47
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101c50
+
+Function101c50: ; 101c50
+ ld e, $0a
+ call Function101ee4
+ ld hl, wcd29
+ set 2, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101c62
+
+Function101c62: ; 101c62
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $01
+ call Function10142c
+ xor a
+ ld [wc30d], a
+ ld hl, wcd29
+ res 4, [hl]
+ ld e, $0b
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101c92
+
+Function101c92: ; 101c92
+ callba Function100675
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101ca0
+
+Function101ca0: ; 101ca0
+ ld c, $02
+ call Function10142c
+ ld e, $0c
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101cbc
+
+Function101cbc: ; 101cbc
+ ld a, $01
+ ld [wcd2b], a
+ ret
+; 101cc2
+
+Function101cc2: ; 101cc2 ; unreferenced
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101cc8
+
+Function101cc8: ; 101cc8
+ ld a, $01
+ ld [wc314], a
+ ld a, $01
+ ld [wc30d], a
+ ld hl, wcd29
+ set 4, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101cdf
+
+Function101cdf: ; 101cdf
+ ld a, $06
+ ld [wc314], a
+ ld a, $01
+ ld [wc30d], a
+ ld hl, wcd29
+ set 4, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101cf6
+
+Function101cf6: ; 101cf6
+ ld a, $0b
+ ld [wc314 + 1], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d03
+
+Function101d03: ; 101d03
+ ld a, $0e
+ ld [wc314 + 1], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d10
+
+Function101d10: ; 101d10
+ ld c, $01
+ call Function10142c
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ jr Function101d2a
+
+Function101d1e: ; 101d1e
+ ld c, $03
+ call Function10142c
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+
+Function101d2a: ; 101d2a
+ call Function101418
+ ret c
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wcd26]
+ ld hl, Jumptable_101d4d
+ rst JumpTable
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d4d
+
+Jumptable_101d4d: ; 101d4d
+ dw Function101d51
+ dw Function101d5d
+; 101d51
+
+Function101d51: ; 101d51
+ ld a, $3c
+ ld [wcd42], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function101d5d: ; 101d5d
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 101d6b
+
+Function101d6b: ; 101d6b
+ ld a, [wc30d]
+ and a
+ ret nz
+ ld hl, wcd29
+ res 4, [hl]
+ ld a, $64
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d7b
+
+Function101d7b: ; 101d7b
+ callba Function10138b
+ ld b, 0
+ ld hl, Unknown_101d8d
+ add hl, bc
+ ld c, [hl]
+ ld a, c
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d8d
+
+Unknown_101d8d: ; 101d8d
+ db $15, $15, $1f, $1f, $0c, $12, $3a, $3a
+; 101d95
+
+Function101d95: ; 101d95
+ call Function101ee2
+ call LoadStandardMenuDataHeader
+ ld e, $0e
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101db2
+
+Function101db2: ; 101db2
+ callba Function103302
+ call ExitMenu
+ ld hl, wcd29
+ set 5, [hl]
+ jr c, .asm_101dca
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101dca
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101dd0
+
+Function101dd0: ; 101dd0
+ ld hl, wdc41
+ bit 1, [hl]
+ jr nz, .asm_101ddd
+ ld a, $19
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101ddd
+ ld a, $1b
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101de3
+
+Function101de3: ; 101de3
+ call Function101ecc
+ call Function101ead
+ jr c, .asm_101df3
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101df3
+ call Function101e98
+ jr c, .asm_101e00
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e00
+ call Function101ed3
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101e09
+
+Function101e09: ; 101e09
+ call Function101ead
+ jr c, .asm_101e16
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e16
+ call Function101ecc
+ call Function101e98
+ push af
+ call Function101ed3
+ pop af
+ jr c, .asm_101e2b
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e2b
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101e31
+
+Function101e31: ; 101e31
+ ld a, $3a
+ ld [wMobileCommsJumptableIndex], a
+ jp Function101c2b
+; 101e39
+
+Function101e39: ; 101e39
+ call Function1020bf
+ push af
+ call Function101ed3
+ pop af
+ jr c, .asm_101e49
+ ld a, $2a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e49
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101e4f
+
+Function101e4f: ; 101e4f
+ ld e, $06
+ call Function101ee4
+ call Function1013d6
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101e64
+
+Function101e64: ; 101e64
+ call Function101ecc
+ call Function1020a8
+ push af
+ call Function101ed3
+ pop af
+ jr c, .asm_101e77
+ ld a, $24
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e77
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101e82
+
+Function101e82: ; 101e82 ; unreferenced
+ call Function101ecc
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101e8d
+
+Function101e8d: ; 101e8d ; unreferenced
+ call Function101ed3
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101e98
+
+Function101e98: ; 101e98
+ call ClearSprites
+ callba Function8adb3
+ ret c
+ ld hl, GameTimerPause
+ set 7, [hl]
+ ld hl, wdc41
+ set 4, [hl]
+ ret
+; 101ead
+
+Function101ead: ; 101ead
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ jr nz, .asm_101ec8
+ ld hl, wdc41
+ bit 2, [hl]
+ jr z, .asm_101eca
+ ld a, [wcd2f]
+ and a
+ jr nz, .asm_101ec8
+ ld hl, wdc41
+ bit 1, [hl]
+ jr z, .asm_101eca
+
+.asm_101ec8
+ xor a
+ ret
+
+.asm_101eca
+ scf
+ ret
+; 101ecc
+
+Function101ecc: ; 101ecc
+ call Function101ee2
+ call FadeToMenu
+ ret
+; 101ed3
+
+Function101ed3: ; 101ed3
+ call Function1013aa
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ret
+; 101ee2
+
+Function101ee2: ; 101ee2
+ ld e, 0
+
+Function101ee4: ; 101ee4
+ ld d, 0
+ ld hl, Unknown_101ef5
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ callba Function100504
+ ret
+; 101ef5
+
+Unknown_101ef5: ; 101ef5
+ dw String_101f13
+ dw String_101f14
+ dw String_101f32
+ dw String_101f4f
+ dw String_101f69
+ dw String_101f81
+ dw String_101f93
+ dw String_101faa
+ dw String_101fc5
+ dw String_101fd2
+ dw String_101fe1
+ dw String_101fef
+ dw String_102000
+ dw String_10200c
+ dw String_102014
+
+String_101f13: ; 101f13
+ db "@"
+
+String_101f14: ; 101f14
+ db "モバイルアダプタを つかって"
+ next "おともだちと つうしんします@"
+
+String_101f32: ; 101f32
+ db "でんわを かけるひとには"
+ next "つうわりょうきんが かかります@"
+
+String_101f4f: ; 101f4f
+ db "モバイルアダプタの じゅんびは"
+ next "できて いますか?@"
+
+String_101f69: ; 101f69
+ db "あなたが おともだちに"
+ next "でんわを かけますか?@"
+
+String_101f81: ; 101f81
+ db "めいしフ,ルダーを"
+ next "つかいますか?@"
+
+String_101f93: ; 101f93
+ db "でんわばんごうを にゅうりょく"
+ next "してください@"
+
+String_101faa: ; 101faa
+ db "それでは おともだちからの"
+ next "でんわを おまちします…@"
+
+String_101fc5: ; 101fc5
+ next "に でんわを かけます@"
+
+String_101fd2: ; 101fd2
+ next "に でんわを かけています@"
+
+String_101fe1: ; 101fe1
+ db "でんわが つながりました!@"
+
+String_101fef: ; 101fef
+ db "つうわを"
+ next "しゅうりょう します…@"
+
+String_102000: ; 102000
+ db "つうしん しゅうりょう@"
+
+String_10200c: ; 10200c
+ db "つうわ じかん@"
+
+String_102014: ; 102014
+ db "それでは つうしんの"
+ next "せっていを してください@"
+; 10202c
+
+Function10202c: ; 10202c
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $02
+ call Function10142c
+ ld e, $0d
+ call Function101ee4
+ hlcoord 4, 4
+ call Function100681
+ ret
+; 102048
+
+Function102048: ; 102048
+ call Function10204c
+ ret
+; 10204c
+
+Function10204c: ; 10204c
+ hlcoord 3, 2
+ ld c, $10
+ ld de, wcd53
+.asm_102054
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_102067
+ sub $30
+ jr c, .asm_102067
+ cp $0a
+ jr nc, .asm_102067
+ add $f6
+ ld [hli], a
+ dec c
+ jr nz, .asm_102054
+
+.asm_102067
+ ret
+; 102068
+
+Function102068: ; 102068
+ ld hl, wcd53
+ ld c, $08
+.asm_10206d
+ ld a, [de]
+ call Function102080
+ jr c, .asm_10207f
+ ld a, [de]
+ swap a
+ call Function102080
+ jr c, .asm_10207f
+ inc de
+ dec c
+ jr nz, .asm_10206d
+
+.asm_10207f
+ ret
+; 102080
+
+Function102080: ; 102080
+ and $0f
+ cp $0f
+ jr z, .asm_10208a
+ add $30
+ ld [hli], a
+ ret
+
+.asm_10208a
+ ld [hl], 0
+ scf
+ ret
+; 10208e
+
+Function10208e: ; 10208e
+ push de
+ ld h, d
+ ld l, e
+ ld de, wdc42
+ ld bc, 8
+ call CopyBytes
+ pop de
+ ret
+; 10209c
+
+Function10209c: ; 10209c
+ ld a, $ff
+ ld hl, wdc42
+ ld bc, 8
+ call ByteFill
+ ret
+; 1020a8
+
+Function1020a8: ; 1020a8
+ call Function10209c
+ ld c, $01
+ ld de, wdc42
+ callba Function17a68f
+ ret c
+ call Function10208e
+ call Function102068
+ xor a
+ ret
+; 1020bf
+
+Function1020bf: ; 1020bf
+ call ClearSprites
+ callba Function8aba9
+ ld a, c
+ and a
+ jr z, .asm_1020e8
+ dec a
+ ld hl, $a04c
+ ld bc, $25
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld a, $04
+ call GetSRAMBank
+ call Function10208e
+ call Function102068
+ call CloseSRAM
+ xor a
+ ret
+
+.asm_1020e8
+ scf
+ ret
+; 1020ea
+
+Function1020ea: ; 1020ea
+ ld hl, wdc41
+ bit 4, [hl]
+ jr z, .quit
+ ld hl, wdc41
+ bit 2, [hl]
+ jr nz, .quit
+ call Function10218d
+ ld hl, wc608
+ bit 4, [hl]
+ jr z, .quit
+ ld hl, wc608
+ bit 2, [hl]
+ jr nz, .quit
+ call Function102112
+ jr z, .quit
+ and a
+ ret
+
+.quit
+ scf
+ ret
+; 102112
+
+Function102112: ; 102112
+ ld a, $04
+ call GetSRAMBank
+ ld hl, $a041
+ ld c, 40
+.outer_loop
+ push hl
+ ld de, $c60f
+ ld b, 31
+.inner_loop
+ ld a, [de]
+ cp [hl]
+ jr nz, .not_matching
+ inc de
+ inc hl
+ dec b
+ jr nz, .inner_loop
+ pop hl
+ xor a
+ jr .done
+
+.not_matching
+ pop hl
+ ld de, 37
+ add hl, de
+ dec c
+ jr nz, .outer_loop
+ ld a, $01
+ and a
+ jr .done ; useless jr
+
+.done
+ push af
+ call CloseSRAM
+ pop af
+ ret
+; 102142
+
+Function102142: ; 102142
+ call Function10218d
+ call Function102180
+ ld hl, UnknownText_0x1021d1
+ call MenuTextBox
+ ld de, SFX_LEVEL_UP
+ call PlaySFX
+ call JoyWaitAorB
+ call ExitMenu
+ call Function10219f
+ ld hl, UnknownText_0x1021d6
+ call MenuTextBox
+ call YesNoBox
+ call ExitMenu
+ jr c, .asm_10217c
+ call Function1021b8
+ jr c, .asm_10217c
+ call Function10218d
+ call Function102180
+ ld hl, UnknownText_0x1021db
+ call PrintText
+
+.asm_10217c
+ call Function1013d6
+ ret
+; 102180
+
+Function102180: ; 102180
+ ld hl, wc608 + 1
+ ld de, StringBuffer2
+ ld bc, 11
+ call CopyBytes
+ ret
+; 10218d
+
+Function10218d: ; 10218d
+ ld hl, w5_dc00
+ ld de, wc608
+ ld bc, $26
+ ld a, $05
+ call FarCopyWRAM
+ ld de, wc608 + 1 ; useless
+ ret
+; 10219f
+
+Function10219f: ; 10219f
+ call FadeToMenu
+ call Function10218d
+ ld de, wc608 + 1
+ callba Function8ac4e
+ call JoyWaitAorB
+ call PlayClickSFX
+ call Function1013aa
+ ret
+; 1021b8
+
+Function1021b8: ; 1021b8
+ call FadeToMenu
+ call Function10218d
+ ld de, wPlayerMoveStruct
+ callba Function8ac70
+ ld a, c
+ ld [StringBuffer1], a
+ push af
+ call Function1013aa
+ pop af
+ ret
+; 1021d1
+
+UnknownText_0x1021d1: ; 1021d1
+ text_jump UnknownText_0x1bd19a
+ db "@"
+
+UnknownText_0x1021d6: ; 1021d1
+ text_jump UnknownText_0x1bd1ba
+ db "@"
+
+UnknownText_0x1021db: ; 1021d1
+ text_jump UnknownText_0x1bd1dd
+ db "@"
+; 1021e0
+
+Function1021e0: ; 1021e0
+ call MenuTextBox
+ call JoyWaitAorB
+ call ExitMenu
+ ret
+; 1021ea
+
+UnknownText_0x1021ea: ; 1021ea
+ text_jump UnknownText_0x1bd201
+ db "@"
+
+UnknownText_0x1021ef:
+ text_jump UnknownText_0x1bd211
+ db "@"
+
+UnknownText_0x1021f4:
+ text_jump UnknownText_0x1bd223
+ db "@"
+; 1021f9
+
+Function1021f9: ; 1021f9
+ call Function102233
+ ld a, $0 ; Function10234b
+ ld [wcd49], a
+ ld hl, wcd29
+ bit 3, [hl]
+ res 3, [hl]
+ jr z, .asm_10220f
+ ld a, $1 ; Function102361
+ ld [wcd49], a
+
+.asm_10220f
+ call Function1022ca
+ ld a, [wcd49]
+ ld hl, Jumptable_1022f5
+ rst JumpTable
+ call Function102241
+ call Function1022d0
+ jr c, .asm_102231
+ ld a, [wcd49]
+ bit 7, a
+ jr z, .asm_10220f
+ xor a
+ ld hl, wcd29
+ bit 3, [hl]
+ ret z
+ scf
+ ret
+
+.asm_102231
+ xor a
+ ret
+; 102233
+
+Function102233: ; 102233
+ ld hl, wcd49
+ ld bc, 10
+ xor a
+ call ByteFill
+ call Function10304f
+ ret
+; 102241
+
+Function102241: ; 102241
+ call Function10226a
+ call Function102274
+ call Function10224b
+ ret
+; 10224b
+
+Function10224b: ; 10224b
+ ld hl, wcd4b
+ bit 1, [hl]
+ jr nz, .asm_10225e
+ bit 2, [hl]
+ jr nz, .asm_10225e
+ call DelayFrame
+ call DelayFrame
+ xor a
+ ret
+
+.asm_10225e
+ res 1, [hl]
+ res 2, [hl]
+ callba Mobile_ReloadMapPart
+ scf
+ ret
+; 10226a
+
+Function10226a: ; 10226a
+ ld hl, wcd4b
+ bit 0, [hl]
+ ret z
+ call Function10305d
+ ret
+; 102274
+
+Function102274: ; 102274
+ ld hl, wcd4b
+ bit 3, [hl]
+ ret z
+ res 3, [hl]
+ ld de, 8
+ call PlaySFX
+ ret
+; 102283
+
+Function102283: ; 102283
+ ld a, $01
+ ld [AttrMapEnd], a
+ ld hl, wcd4b
+ set 0, [hl]
+ ret
+; 10228e
+
+Function10228e: ; 10228e
+ xor a
+ ld [AttrMapEnd], a
+ ld hl, wcd4b
+ res 0, [hl]
+ ret
+; 102298
+
+Function102298: ; 102298
+ ld a, e
+ cp $02
+ ret nz
+ ld hl, wcd4b
+ bit 6, [hl]
+ jr z, .asm_1022b6
+ ld hl, wcd4b
+ bit 7, [hl]
+ ld hl, wcd4b
+ set 7, [hl]
+ ret nz
+ ld de, SFX_ELEVATOR_END
+ call PlaySFX
+ jr .asm_1022c1
+
+.asm_1022b6
+ ld hl, wcd4b
+ bit 7, [hl]
+ ld hl, wcd4b
+ res 7, [hl]
+ ret z
+
+.asm_1022c1
+ call Function10304f
+ ld a, $01
+ ld [AttrMapEnd], a
+ ret
+; 1022ca
+
+Function1022ca: ; 1022ca
+ ld a, 30
+ ld [OverworldDelay], a
+ ret
+; 1022d0
+
+Function1022d0: ; 1022d0
+ callba Function10032e
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_1022f3
+ call Function102298
+ ld a, [OverworldDelay]
+ ld c, a
+ ld a, 30
+ sub c
+ ld c, a
+ ld b, $03
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ jr c, .asm_1022f3
+ xor a
+ ret
+
+.asm_1022f3
+ scf
+ ret
+; 1022f5
+
+Jumptable_1022f5: ; 1022f5
+ dw Function10234b ; 00
+ dw Function102361 ; 01
+ dw Function10236e ; 02
+ dw Function102387 ; 03
+ dw Function1023a1 ; 04
+ dw Function1025c7 ; 05
+ dw Function1025dc ; 06
+ dw Function1024f6 ; 07
+ dw Function10250c ; 08
+ dw Function1024a8 ; 09
+ dw Function102591 ; 0a
+ dw Function1024a8 ; 0b
+ dw Function1025b0 ; 0c
+ dw Function1025bd ; 0d
+ dw Function102814 ; 0e
+ dw Function10283c ; 0f
+ dw Function102862 ; 10
+ dw Function10286f ; 11
+ dw Function1024a8 ; 12
+ dw Function1028a5 ; 13
+ dw Function1028ab ; 14
+ dw Function1023b5 ; 15
+ dw Function1023c6 ; 16
+ dw Function1024af ; 17
+ dw Function102416 ; 18
+ dw Function102423 ; 19
+ dw Function10244b ; 1a
+ dw Function1024af ; 1b
+ dw Function10246a ; 1c
+ dw Function102652 ; 1d
+ dw Function10266b ; 1e
+ dw Function1025e9 ; 1f
+ dw Function1025ff ; 20
+ dw Function102738 ; 21
+ dw Function102754 ; 22
+ dw Function1026b7 ; 23
+ dw Function1026c8 ; 24
+ dw Function1028bf ; 25
+ dw Function1028c6 ; 26
+ dw Function1028d3 ; 27
+ dw Function1028da ; 28
+ dw Function1024a8 ; 29
+ dw Function10248d ; 2a
+; 10234b
+
+Function10234b: ; 10234b
+ call Function102d9a
+ call Function102dd3
+ call Function102dec
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 102361
+
+Function102361: ; 102361
+ ld a, $cc
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10236e
+
+Function10236e: ; 10236e
+ call Function1028fc
+ ret nc
+ ld a, [wcd51]
+ cp $cc
+ jr z, .asm_10237f
+ ld a, $f2
+ ld [wcd2b], a
+ ret
+
+.asm_10237f
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 102387
+
+Function102387: ; 102387
+ ld hl, wcd4b
+ set 6, [hl]
+ xor a
+ ld [wdc5f], a
+ ld de, MUSIC_ROUTE_30
+ call PlayMusic
+ call Function102d9a
+ call Function102dd3
+ ld a, $01
+ ld [wMenuCursorY], a
+
+Function1023a1: ; 1023a1
+ call Function102283
+ call Function102db7
+ call Function102dec
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $1d
+ ld [wcd49], a
+ ret
+; 1023b5
+
+Function1023b5: ; 1023b5
+ call Function10228e
+ call Function102a3b
+ call Function102b12
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1023c6
+
+Function1023c6: ; 1023c6
+ call Function102c48
+ call Function102c87
+ ld a, [wcd4c]
+ dec a
+ ld [CurPartyMon], a
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callba RemoveMonFromPartyOrBox
+ ld hl, PartyCount
+ inc [hl]
+ ld a, [hli]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld [hl], $ff
+ ld a, [PartyCount]
+ ld [wcd4c], a
+ call Function102c07
+ call Function102d48
+ call Function102b32
+ call Function102f50
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $14
+ ld [wcd4e], a
+ ld a, 0
+ ld [wcd4f], a
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 102416
+
+Function102416: ; 102416
+ ld a, $aa
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 102423
+
+Function102423: ; 102423
+ call Function102921
+ ret nc
+ callba SaveAfterLinkTrade
+ callba TrainerRankings_Trades
+ callba BackupMobileEventIndex
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10244b
+
+Function10244b: ; 10244b
+ call Function102f32
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $19
+ ld [wcd4e], a
+ ld a, 0
+ ld [wcd4f], a
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10246a
+
+Function10246a: ; 10246a
+ call Function102d9a
+ ld hl, wcd29
+ set 3, [hl]
+ call Function102e07
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $2a
+ ld [wcd49], a
+ ret
+; 102480
+
+Function102480: ; 102480
+ ld c, $32
+ call DelayFrames
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10248d
+
+Function10248d: ; 10248d
+ ld a, [wcd49]
+ set 7, a
+ ld [wcd49], a
+ ret
+; 102496
+
+Function102496: ; 102496
+ ld hl, wcd4e
+ dec [hl]
+ ret nz
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1024a8
+
+Function1024a8: ; 1024a8
+ callba Function1009f3
+ ret c
+
+Function1024af: ; 1024af
+ call GetJoypad
+ ld a, [wcd4a]
+ ld hl, Jumptable_1024ba
+ rst JumpTable
+ ret
+; 1024ba
+
+Jumptable_1024ba: ; 1024ba
+ dw Function1024c0
+ dw Function1024cb
+ dw Function1024de
+; 1024c0
+
+Function1024c0: ; 1024c0
+ ld hl, wcd4e
+ inc [hl]
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+
+Function1024cb: ; 1024cb
+ ld hl, wcd4e
+ dec [hl]
+ ret nz
+ ld a, [wcd4f]
+ inc a
+ ld [wcd4e], a
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+
+Function1024de: ; 1024de
+ ld hl, wcd4e
+ dec [hl]
+ jr z, .asm_1024e9
+ ld a, [hJoyPressed]
+ and A_BUTTON | B_BUTTON
+ ret z
+
+.asm_1024e9
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1024f6
+
+Function1024f6: ; 1024f6
+ call PlaceHollowCursor
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd4c]
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10250c
+
+Function10250c: ; 10250c
+ call Function1028fc
+ ret nc
+ ld a, [wcd51]
+ cp $0f
+ jr z, .asm_10254b
+ and a
+ jr z, .asm_102572
+ cp $aa
+ jr z, .asm_102572
+ cp $07
+ jr nc, .asm_102572
+ ld [wcd4d], a
+ dec a
+ ld [wd003], a
+ ld a, [wcd4c]
+ dec a
+ ld [wd002], a
+ call Function102b9c
+ call Function102bdc
+ jr c, .asm_10256d
+ callba Functionfb5dd
+ jr c, .asm_102568
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $0e
+ ld [wcd49], a
+ ret
+
+.asm_10254b
+ call Function103021
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, 0
+ ld [wcd4a], a
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, $1e
+ ld [wcd4f], a
+ ld a, $29
+ ld [wcd49], a
+ ret
+
+.asm_102568
+ call Function102ff5
+ jr .asm_102577
+
+.asm_10256d
+ call Function102f85
+ jr .asm_102577
+
+.asm_102572
+ call Function102fce
+ jr .asm_102577
+
+.asm_102577
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, 0
+ ld [wcd4a], a
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, $3c
+ ld [wcd4f], a
+ ld a, $09
+ ld [wcd49], a
+ ret
+; 102591
+
+Function102591: ; 102591
+ call Function102ee7
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, 0
+ ld [wcd4a], a
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, $3c
+ ld [wcd4f], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1025b0
+
+Function1025b0: ; 1025b0
+ ld a, $09
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1025bd
+
+Function1025bd: ; 1025bd
+ call Function1028fc
+ ret nc
+ ld a, $04
+ ld [wcd49], a
+ ret
+; 1025c7
+
+Function1025c7: ; 1025c7
+ call Function102f6d
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $0f
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1025dc
+
+Function1025dc: ; 1025dc
+ call Function1028fc
+ ret nc
+ ld a, [wcd49]
+ set 7, a
+ ld [wcd49], a
+ ret
+; 1025e9
+
+Function1025e9: ; 1025e9
+ nop
+ ld hl, wcd4b
+ set 6, [hl]
+ call Function102b4e
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1025ff
+
+Function1025ff: ; 1025ff
+ ld hl, wcd4b
+ set 2, [hl]
+ callba Function1009f3
+ ret c
+ callba MobileMenuJoypad
+ ld a, [wMenuJoypadFilter]
+ and c
+ ret z
+ bit A_BUTTON_F, c
+ jr nz, .a_button
+ bit D_UP_F, c
+ jr nz, .d_up
+ bit D_DOWN_F, c
+ jr nz, .d_down
+ ret
+
+.a_button
+ ld hl, wcd4b
+ set 3, [hl]
+ ld a, $27 ; Function1028d3
+ ld [wcd49], a
+ ret
+
+.d_up
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [OTPartyCount]
+ cp b
+ ret nz
+ call HideCursor
+ ld a, [PartyCount]
+ ld [wMenuCursorY], a
+ ld a, $1d ; Function102652
+ ld [wcd49], a
+ ret
+
+.d_down
+ ld a, [wMenuCursorY]
+ cp $01
+ ret nz
+ ld a, $23 ; Function1026b7
+ ld [wcd49], a
+ ret
+; 102652
+
+Function102652: ; 102652
+ nop
+ ld hl, wcd4b
+ set 6, [hl]
+ nop
+ call Function102b7b
+ nop
+ ld hl, wcd4b
+ set 1, [hl]
+ nop
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10266b
+
+Function10266b: ; 10266b
+ ld hl, wcd4b
+ set 2, [hl]
+ callba Function1009f3
+ ret c
+ callba MobileMenuJoypad
+ ld a, [wMenuJoypadFilter]
+ and c
+ ret z
+ bit A_BUTTON_F, c
+ jr nz, .a_button
+ bit D_DOWN_F, c
+ jr nz, .d_down
+ bit D_UP_F, c
+ jr nz, .d_up
+ ret
+
+.a_button
+ ld hl, wcd4b
+ set 3, [hl]
+ ld a, $21 ; Function102738
+ ld [wcd49], a
+ ret
+
+.d_down
+ ld a, [wMenuCursorY]
+ dec a
+ ret nz
+ call HideCursor
+ ld a, $1f ; Function1025e9
+ ld [wcd49], a
+ ret
+
+.d_up
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [PartyCount]
+ cp b
+ ret nz
+ ld a, $23 ; Function1026b7
+ ld [wcd49], a
+ ret
+; 1026b7
+
+Function1026b7: ; 1026b7
+ ld hl, wcd4b
+ set 6, [hl]
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, 0
+ ld [wcd4a], a
+
+Function1026c8: ; 1026c8
+ call GetJoypad
+ callba Function1009f3
+ ret c
+ ld a, [wcd4a]
+ ld hl, Jumptable_1026da
+ rst JumpTable
+ ret
+; 1026da
+
+Jumptable_1026da: ; 1026da
+ dw Function1026de
+ dw Function1026f3
+; 1026de
+
+Function1026de: ; 1026de
+ call HideCursor
+ hlcoord 9, 17
+ ld [hl], $ed
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ ld hl, wcd4b
+ set 1, [hl]
+ ret
+; 1026f3
+
+Function1026f3: ; 1026f3
+ ld a, [hJoyPressed]
+ bit A_BUTTON_F, a
+ jr nz, .asm_102723
+ bit D_UP_F, a
+ jr nz, .asm_102712
+ bit D_DOWN_F, a
+ jr nz, .asm_102702
+ ret
+
+.asm_102702
+ hlcoord 9, 17
+ ld [hl], " "
+ ld a, $01
+ ld [wMenuCursorY], a
+ ld a, $1d ; Function102652
+ ld [wcd49], a
+ ret
+
+.asm_102712
+ hlcoord 9, 17
+ ld [hl], " "
+ ld a, [OTPartyCount]
+ ld [wMenuCursorY], a
+ ld a, $1f ; Function1025e9
+ ld [wcd49], a
+ ret
+
+.asm_102723
+ hlcoord 9, 17
+ ld [hl], "▷"
+ ld hl, wcd4b
+ set 3, [hl]
+ ld hl, wcd4b
+ set 2, [hl]
+ ld a, $5 ; Function1025c7
+ ld [wcd49], a
+ ret
+; 102738
+
+Function102738: ; 102738
+ ld hl, wcd4b
+ set 6, [hl]
+ call PlaceHollowCursor
+ call Function1027eb
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, 0
+ ld [wcd4a], a
+
+Function102754: ; 102754
+ call GetJoypad
+ callba Function1009f3
+ ret c
+ ld a, [wcd4a]
+ ld hl, Jumptable_102766
+ rst JumpTable
+ ret
+; 102766
+
+Jumptable_102766: ; 102766
+ dw Function102770
+ dw Function102775
+ dw Function10278c
+ dw Function1027a0
+ dw Function1027b7
+; 102770
+
+Function102770: ; 102770
+ ld a, $01
+ ld [wcd4a], a
+
+Function102775: ; 102775
+ hlcoord 1, 16
+ ld [hl], "▶"
+ hlcoord 11, 16
+ ld [hl], " "
+ ld hl, wcd4b
+ set 2, [hl]
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ ret
+; 10278c
+
+Function10278c: ; 10278c
+ ld a, [hJoyPressed]
+ bit A_BUTTON_F, a
+ jr nz, asm_1027c6
+ bit B_BUTTON_F, a
+ jr nz, asm_1027e2
+ bit D_RIGHT_F, a
+ jr nz, .asm_10279b
+ ret
+
+.asm_10279b
+ ld a, $03
+ ld [wcd4a], a
+Function1027a0: ; 1027a0
+ hlcoord 1, 16
+ ld [hl], " "
+ hlcoord 11, 16
+ ld [hl], "▶"
+ ld hl, wcd4b
+ set 2, [hl]
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ ret
+
+Function1027b7: ; 1027b7
+ ld a, [hJoyPressed]
+ bit A_BUTTON_F, a
+ jr nz, asm_1027d1
+ bit B_BUTTON_F, a
+ jr nz, asm_1027e2
+ bit D_LEFT_F, a
+ jr nz, Function102770
+ ret
+
+asm_1027c6:
+ ld hl, wcd4b
+ set 3, [hl]
+ ld a, $25 ; Function1028bf
+ ld [wcd49], a
+ ret
+
+asm_1027d1:
+ ld hl, wcd4b
+ set 3, [hl]
+ ld a, [wMenuCursorY]
+ ld [wcd4c], a
+ ld a, $7 ; Function1024f6
+ ld [wcd49], a
+ ret
+
+asm_1027e2:
+ call Function102db7
+ ld a, $1d ; Function102652
+ ld [wcd49], a
+ ret
+; 1027eb
+
+Function1027eb: ; 1027eb
+ hlcoord 0, 14
+ ld b, 2
+ ld c, 18
+ ld d, h
+ ld e, l
+ callba _LinkTextbox
+ ld de, .Stats_Trade
+ hlcoord 2, 16
+ call PlaceString
+ ret
+; 102804
+
+.Stats_Trade: ; 102804
+ db "STATS TRADE@"
+; 102814
+
+Function102814: ; 102814
+ ld a, [wMenuCursorY]
+ ld [wcd52], a
+ ld a, [wcd4c]
+ dec a
+ ld [wd002], a
+ ld a, [wcd4d]
+ dec a
+ ld [wd003], a
+ call Function102ea8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, 0
+ ld [wcd4a], a
+ ld hl, wcd4b
+ set 1, [hl]
+
+Function10283c: ; 10283c
+ ld hl, wcd4b
+ set 2, [hl]
+ call Function1029c3
+ ret z
+ jr c, .asm_102852
+ ld a, $10 ; Function102862
+ ld [wcd49], a
+ ld hl, wcd4b
+ set 1, [hl]
+ ret
+
+.asm_102852
+ ld a, $14 ; Function1028ab
+ ld [wcd49], a
+ ld hl, wcd4b
+ set 3, [hl]
+ ld hl, wcd4b
+ set 1, [hl]
+ ret
+; 102862
+
+Function102862: ; 102862
+ ld a, $08
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10286f
+
+Function10286f: ; 10286f
+ call Function1028fc
+ ret nc
+ ld a, [wcd52]
+ ld [wMenuCursorY], a
+ ld a, [wcd51]
+ cp $08
+ jr nz, .asm_102886
+ ld a, $15 ; Function1023b5
+ ld [wcd49], a
+ ret
+
+.asm_102886
+ call Function102ee7
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, $3c
+ ld [wcd4f], a
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1028a5
+
+Function1028a5: ; 1028a5
+ ld a, $4 ; Function1023a1
+ ld [wcd49], a
+ ret
+; 1028ab
+
+Function1028ab: ; 1028ab
+ ld a, [wcd52]
+ ld [wMenuCursorY], a
+ call Function102f15
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $c ; Function1025b0
+ ld [wcd49], a
+ ret
+; 1028bf
+
+Function1028bf: ; 1028bf
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+
+Function1028c6: ; 1028c6
+ xor a
+ ld [MonType], a
+ call Function102bac
+ ld a, $1d ; Function102652
+ ld [wcd49], a
+ ret
+; 1028d3
+
+Function1028d3: ; 1028d3
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+
+Function1028da: ; 1028da
+ ld a, OTPARTYMON
+ ld [MonType], a
+ call Function102bac
+ ld a, $1f ; Function1025e9
+ ld [wcd49], a
+ ret
+; 1028e8
+
+Function1028e8: ; 1028e8
+ ld hl, wcd4b
+ res 6, [hl]
+ ld [wcd50], a
+ callba StartMobileInactivityTimer
+ ld a, 0
+ ld [wcd4a], a
+ ret
+; 1028fc
+
+Function1028fc: ; 1028fc
+ call GetJoypad
+ callba Function1009f3
+ jr nc, .asm_102909
+ and a
+ ret
+
+.asm_102909
+ ld a, [wcd4a]
+ ld hl, Jumptable_102917
+ rst JumpTable
+ ret nc
+ ld a, 0
+ ld [wcd4a], a
+ ret
+; 102917
+
+Jumptable_102917: ; 102917
+ dw Function102933
+ dw Function10294f
+ dw Function10295d
+ dw Function10296e
+ dw Function102996
+; 102921
+
+Function102921: ; 102921
+ ld a, [wcd4a]
+ ld hl, Jumptable_10292f
+ rst JumpTable
+ ret nc
+ ld a, 0
+ ld [wcd4a], a
+ ret
+; 10292f
+
+Jumptable_10292f: ; 10292f
+ dw Function10295d
+ dw Function102984
+; 102933
+
+Function102933: ; 102933
+ ld hl, MenuDataHeader_1029bb
+ call LoadMenuDataHeader
+ call Function102e07
+ ld a, $32
+ ld [TextDelayFrames], a
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ and a
+ ret
+; 10294f
+
+Function10294f: ; 10294f
+ ld a, [TextDelayFrames]
+ and a
+ ret nz
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ and a
+ ret
+; 10295d
+
+Function10295d: ; 10295d
+ call Function10299e
+ ld a, 0
+ ld [wcd27], a
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ and a
+ ret
+; 10296e
+
+Function10296e: ; 10296e
+ callba Function100382
+ and a
+ ld a, [wcd27]
+ bit 7, a
+ ret z
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ and a
+ ret
+; 102984
+
+Function102984: ; 102984
+ callba Function100382
+ and a
+ ld a, [wcd27]
+ bit 7, a
+ ret z
+ call Function1029af
+ scf
+ ret
+; 102996
+
+Function102996: ; 102996
+ call Function1029af
+ call ExitMenu
+ scf
+ ret
+; 10299e
+
+Function10299e: ; 10299e
+ ld a, $01
+ ld [wccb4], a
+ ld a, [wcd50]
+ ld [wccb5], a
+ ld a, $aa
+ ld [wcd51], a
+ ret
+; 1029af
+
+Function1029af: ; 1029af
+ ld hl, wcd4b
+ res 7, [hl]
+ ld a, [wcc61]
+ ld [wcd51], a
+ ret
+; 1029bb
+
+MenuDataHeader_1029bb: ; 1029bb
+ db $40 ; flags
+ db 10, 3 ; start coords
+ db 12, 15 ; end coords
+ dw NULL
+ db 1 ; default option
+; 1029c3
+
+Function1029c3: ; 1029c3
+ ld a, [wcd4a]
+ ld hl, Jumptable_1029cb
+ rst JumpTable
+ ret
+; 1029cb
+
+Jumptable_1029cb: ; 1029cb
+ dw Function1029cf
+ dw Function1029fe
+; 1029cf
+
+Function1029cf: ; 1029cf
+ call LoadStandardMenuDataHeader
+ hlcoord 10, 7
+ ld b, 3
+ ld c, 8
+ ld d, h
+ ld e, l
+ callba _LinkTextbox
+ ld de, String_102a26
+ hlcoord 12, 8
+ call PlaceString
+ ld hl, wcd4b
+ set 1, [hl]
+ ld de, MenuData3_102a33
+ call SetMenuAttributes
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ xor a
+ ret
+; 1029fe
+
+Function1029fe: ; 1029fe
+ callba Function1009f3
+ ret c
+ callba MobileMenuJoypad
+ ld a, c
+ ld hl, wMenuJoypadFilter
+ and [hl]
+ ret z
+ push af
+ call ExitMenu
+ pop af
+ ld a, [wMenuCursorY]
+ cp $01
+ jr nz, .asm_102a21
+ ld a, $01
+ and a
+ ret
+
+.asm_102a21
+ ld a, $01
+ and a
+ scf
+ ret
+; 102a26
+
+String_102a26: ; 102a26
+ db "TRADE"
+ next "CANCEL"
+ db "@"
+; 102a33
+
+MenuData3_102a33:
+ db 8, 11
+ db 2, 1
+ db $80, $00
+ dn 2, 0
+ db A_BUTTON
+
+Function102a3b: ; 102a3b
+ ld a, [wcd30]
+ ld [wc74e], a
+ ld hl, PlayerName
+ ld de, wPlayerTrademonSenderName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wcd4c]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wPlayerTrademonSpecies], a
+ ld a, [wcd4c]
+ dec a
+ ld hl, PartyMonOT
+ call SkipNames
+ ld de, wPlayerTrademonOTName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wcd4c]
+ dec a
+ ld hl, PartyMon1ID
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wPlayerTrademonID], a
+ ld a, [hl]
+ ld [wPlayerTrademonID + 1], a
+ ld a, [wcd4c]
+ dec a
+ ld hl, PartyMon1DVs
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wPlayerTrademonDVs], a
+ ld a, [hl]
+ ld [wPlayerTrademonDVs + 1], a
+ ld a, [wcd4c]
+ dec a
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba GetCaughtGender
+ ld a, c
+ ld [wPlayerTrademonCaughtData], a
+ ld hl, OTPlayerName
+ ld de, wOTTrademonSenderName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+
+ ld a, [wcd4d]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, OTPartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wOTTrademonSpecies], a
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMonOT
+ call SkipNames
+ ld de, wOTTrademonOTName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMon1ID
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wOTTrademonID], a
+ ld a, [hl]
+ ld [wOTTrademonID + 1], a
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMon1DVs
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wOTTrademonDVs], a
+ ld a, [hl]
+ ld [wOTTrademonDVs + 1], a
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba GetCaughtGender
+ ld a, c
+ ld [wOTTrademonCaughtData], a
+ ret
+; 102b12
+
+Function102b12: ; 102b12
+ ld c, 100
+ call DelayFrames
+ call Function102d9a
+ call LoadFontsBattleExtra
+ ld a, [wcd2f]
+ and a
+ jr nz, .asm_102b2b
+ callba Function108026
+ jr .asm_102b31
+
+.asm_102b2b
+ callba Function10802a
+
+.asm_102b31
+ ret
+; 102b32
+
+Function102b32: ; 102b32
+ ld a, [wcd4c]
+ dec a
+ ld [CurPartyMon], a
+ ld a, $01
+ ld [wForceEvolution], a
+ callba EvolvePokemon
+ call Function102d9a
+ call Function102dd3
+ call Function102dec
+ ret
+; 102b4e
+
+Function102b4e: ; 102b4e
+ ld a, OTPARTYMON
+ ld [MonType], a
+ ld a, [wMenuCursorY]
+ push af
+ ld de, Unknown_102b73
+ call SetMenuAttributes
+ pop af
+ ld [wMenuCursorY], a
+ ld a, [OTPartyCount]
+ ld [w2DMenuNumRows], a
+ ret
+; 102b68
+
+Function102b68: ; 102b68 ; unreferenced
+ xor a
+ ld hl, wWindowStackPointer
+ ld bc, $10
+ call ByteFill
+ ret
+; 102b73
+
+Unknown_102b73:
+ db 9, 6
+ db 255, 1
+ db $a0, $00
+ dn 1, 0
+ db D_UP | D_DOWN | A_BUTTON
+
+Function102b7b: ; 102b7b
+ xor a
+ ld [MonType], a
+ ld a, [wMenuCursorY]
+ push af
+ ld de, Unknown_102b94
+ call SetMenuAttributes
+ pop af
+ ld [wMenuCursorY], a
+ ld a, [PartyCount]
+ ld [w2DMenuNumRows], a
+ ret
+; 102b94
+
+Unknown_102b94:
+ db 1, 6
+ db 255, 1
+ db $a0, $00
+ dn 1, 0
+ db D_UP | D_DOWN | A_BUTTON
+
+Function102b9c: ; 102b9c
+ ld a, [wcd4d]
+ dec a
+ hlcoord 6, 9
+ ld bc, $14
+ call AddNTimes
+ ld [hl], $ec
+ ret
+; 102bac
+
+Function102bac: ; 102bac
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurPartyMon], a
+ call LowVolume
+ call ClearSprites
+ callba _MobileStatsScreenInit
+ ld a, [CurPartyMon]
+ inc a
+ ld [wMenuCursorY], a
+ call Function102d9a
+ call ClearPalettes
+ call DelayFrame
+ call MaxVolume
+ call Function102dd3
+ call Function102dec
+ call Function102db7
+ ret
+; 102bdc
+
+Function102bdc: ; 102bdc
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ push hl
+ ld a, [wcd4d]
+ ld c, a
+ ld b, 0
+ ld hl, OTPartyCount
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ cp EGG
+ jr z, .asm_102bfa
+ cp [hl]
+ jr nz, .asm_102c05
+
+.asm_102bfa
+ ld bc, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MAX_LEVEL + 1
+ jr nc, .asm_102c05
+ and a
+ ret
+
+.asm_102c05
+ scf
+ ret
+; 102c07
+
+Function102c07: ; 102c07
+ call Function102c14
+ call Function102c3b
+ call Function102c21
+ call Function102c2e
+ ret
+; 102c14
+
+Function102c14: ; 102c14
+ ld hl, PartySpecies
+ ld de, OTPartySpecies
+ ld bc, 1
+ call Function102c71
+ ret
+; 102c21
+
+Function102c21: ; 102c21
+ ld hl, PartyMonNicknames
+ ld de, OTPartyMonNicknames
+ ld bc, 11
+ call Function102c71
+ ret
+; 102c2e
+
+Function102c2e: ; 102c2e
+ ld hl, PartyMonOT
+ ld de, OTPartyMonOT
+ ld bc, 11
+ call Function102c71
+ ret
+; 102c3b
+
+Function102c3b: ; 102c3b
+ ld hl, PartyMon1
+ ld de, OTPartyMon1
+ ld bc, $30
+ call Function102c71
+ ret
+; 102c48
+
+Function102c48: ; 102c48
+ callba Function10165a
+ ld a, 0
+ call GetSRAMBank
+ ld hl, $a600
+ ld de, wc608
+ ld bc, $2f
+ call Function102c71
+ call CloseSRAM
+ ld hl, wc608
+ ld de, w5_da00
+ ld bc, $1e0
+ ld a, $05
+ call FarCopyWRAM
+ ret
+; 102c71
+
+Function102c71: ; 102c71
+ ld a, [wcd4c]
+ dec a
+ call AddNTimes
+ push hl
+ ld h, d
+ ld l, e
+ ld a, [wcd4d]
+ dec a
+ call AddNTimes
+ pop de
+ call SwapBytes
+ ret
+; 102c87
+
+Function102c87: ; 102c87
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ ld a, [wcd4c]
+ ld [wJumptableIndex], a
+ ld a, [PartyCount]
+ ld [wcf64], a
+ ld a, 0
+ ld hl, $a600
+ ld de, wc608
+ ld bc, $11a
+ call Function102d3e
+ call Function102cee
+ ld a, 0
+ ld hl, wc608
+ ld de, $a600
+ ld bc, $11a
+ call Function102d3e
+ ld a, [wcd4d]
+ ld [wJumptableIndex], a
+ ld a, [OTPartyCount]
+ ld [wcf64], a
+ ld a, $05
+ ld hl, w5_da00
+ ld de, wc608
+ ld bc, $11a
+ call FarCopyWRAM
+ call Function102cee
+ ld a, $05
+ ld hl, wc608
+ ld de, w5_da00
+ ld bc, $11a
+ call FarCopyWRAM
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ ret
+; 102cee
+
+Function102cee: ; 102cee
+ ld a, [wJumptableIndex]
+ dec a
+ call Function102d34
+ ld de, wd002
+ ld bc, $2f
+ call CopyBytes
+ ld a, [wJumptableIndex]
+ ld c, a
+ ld a, $06
+ sub c
+ ret z
+ ld bc, $2f
+ ld hl, 0
+ call AddNTimes
+ push hl
+ ld a, [wJumptableIndex]
+ dec a
+ call Function102d34
+ ld d, h
+ ld e, l
+ ld hl, $2f
+ add hl, de
+ pop bc
+ call CopyBytes
+ ld a, [wcf64]
+ dec a
+ call Function102d34
+ ld d, h
+ ld e, l
+ ld hl, wd002
+ ld bc, $2f
+ call CopyBytes
+ ret
+; 102d34
+
+Function102d34: ; 102d34
+ ld hl, wc608
+ ld bc, $2f
+ call AddNTimes
+ ret
+; 102d3e
+
+Function102d3e: ; 102d3e
+ call GetSRAMBank
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 102d48
+
+Function102d48: ; 102d48
+ ld a, [wcd4c]
+ ld e, a
+ ld d, 0
+ ld hl, PartyCount
+ add hl, de
+ ld a, [hl]
+ ld [wd265], a
+ cp EGG
+ jr z, .asm_102d6d
+ dec a
+ call SetSeenAndCaughtMon
+ ld a, [wcd4c]
+ dec a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1Happiness
+ call AddNTimes
+ ld [hl], BASE_HAPPINESS
+
+.asm_102d6d
+ ld a, [wd265]
+ cp UNOWN
+ jr nz, .asm_102d98
+ ld a, [wcd4c]
+ dec a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1DVs
+ call AddNTimes
+ predef GetUnownLetter
+ callba UpdateUnownDex
+ ld a, [wFirstUnownSeen]
+ and a
+ jr nz, .asm_102d98
+ ld a, [UnownLetter]
+ ld [wFirstUnownSeen], a
+
+.asm_102d98
+ and a
+ ret
+; 102d9a
+
+Function102d9a: ; 102d9a
+ ld a, " "
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ld a, $07
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ ret
+; 102db7
+
+Function102db7: ; 102db7
+ call Function102e4f
+ call Function102e3e
+ ld hl, wcd4b
+ set 1, [hl]
+ ret
+; 102dc3
+
+Function102dc3: ; 102dc3
+ hlcoord 0, 12
+ ld b, 4
+ ld c, 18
+ ld d, h
+ ld e, l
+ callba _LinkTextbox
+ ret
+; 102dd3
+
+Function102dd3: ; 102dd3
+ call DisableLCD
+ ld de, GFX_1032a2
+ ld hl, VTiles0
+ lb bc, BANK(GFX_1032a2), 4
+ call Get2bpp
+ callba __LoadTradeScreenBorder
+ call EnableLCD
+ ret
+; 102dec
+
+Function102dec: ; 102dec
+ ld hl, Palettes_1032e2
+ ld de, UnknOBPals
+ ld bc, 4 palettes
+ ld a, $05
+ call FarCopyWRAM
+ callba Function49742
+ call SetPalettes
+ call DelayFrame
+ ret
+; 102e07
+
+Function102e07: ; 102e07
+ hlcoord 3, 10
+ ld b, 1
+ ld c, 11
+ ld a, [wBattleMode]
+ and a
+ jr z, .link_battle
+ call TextBox
+ jr .okay
+
+.link_battle
+; this is idiotic
+ hlcoord 3, 10
+ ld b, 1
+ ld c, 11
+ ld d, h
+ ld e, l
+ callba _LinkTextbox
+
+.okay
+ ld de, .waiting
+ hlcoord 4, 11
+ call PlaceString
+ ret
+; 102e32
+
+.waiting ; 102e32
+ db "Waiting...!@"
+; 102e3e
+
+Function102e3e: ; 102e3e
+ ld de, .CANCEL
+ hlcoord 10, 17
+ call PlaceString
+ ret
+; 102e48
+
+.CANCEL: ; 102e48
+ db "CANCEL@"
+; 102e4f
+
+Function102e4f: ; 102e4f
+ callba Function16d42e
+ callba _InitMG_Mobile_LinkTradePalMap
+ ld de, PlayerName
+ hlcoord 4, 0
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ ld de, OTPlayerName
+ hlcoord 4, 8
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ hlcoord 7, 1
+ ld de, PartySpecies
+ call .PlaceSpeciesNames
+ hlcoord 7, 9
+ ld de, OTPartySpecies
+ call .PlaceSpeciesNames
+ ret
+; 102e86
+
+.PlaceSpeciesNames: ; 102e86
+ ld c, 0
+.count_loop
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [wd265], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld a, c
+ ld [hDividend], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ pop de
+ inc de
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ inc c
+ jr .count_loop
+; 102ea8
+
+Function102ea8: ; 102ea8
+ call Function102dc3
+ ld a, [wcd4c]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, StringBuffer2
+ ld bc, 11
+ call CopyBytes
+ ld a, [wcd4d]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, OTPartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, UnknownText_0x102ee2
+ call PrintTextBoxText
+ ret
+; 102ee2
+
+UnknownText_0x102ee2: ; 102ee2
+ text_jump UnknownText_0x1bd286
+ db "@"
+
+Function102ee7: ; 102ee7
+ call Function102dc3
+ ld de, String_102ef4
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102ef4
+
+String_102ef4: ; 102ef4
+ db "Too bad! The trade"
+ next "was canceled!"
+ db "@"
+; 102f15
+
+Function102f15: ; 102f15
+ call Function102dc3
+ ld de, .TooBadTheTradeWasCanceled
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102f22
+
+.TooBadTheTradeWasCanceled: ; 102f22
+ db "こうかんを キャンセルしました@"
+; 102f32
+
+Function102f32: ; 102f32
+ call Function102dc3
+ ld de, .TradeCompleted
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102f3f
+
+.TradeCompleted: ; 102f3f
+ db "Trade completed!@"
+; 102f50
+
+Function102f50: ; 102f50
+ call Function102dc3
+ ld de, .PleaseWait
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102f5d
+
+.PleaseWait: ; 102f5d
+ db "しょうしょう おまち ください@"
+; 102f6d
+
+Function102f6d: ; 102f6d
+ call Function102dc3
+ ld de, .Finished
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102f7a
+
+.Finished: ; 102f7a
+ db "しゅうりょう します@"
+; 102f85
+
+Function102f85: ; 102f85
+ ld a, [wd003]
+ ld c, a
+ ld b, 0
+ ld hl, OTPartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ call Function102dc3
+ ld de, String_102fb2
+ hlcoord 1, 14
+ call PlaceString
+ ld de, StringBuffer1
+ hlcoord 13, 14
+ call PlaceString
+ ld de, String_102fcc
+ call PlaceString
+ ret
+; 102fb2
+
+String_102fb2: ; 102fb2
+ db "あいてがわ<PKMN>えらんだ "
+ next "いじょう<PKMN>あるようです!!"
+ db "@"
+; 102fcc
+
+String_102fcc: ; 102fcc
+ db "に@"
+; 102fce
+
+Function102fce: ; 102fce
+ call Function102dc3
+ ld de, String_102fdb
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102fdb
+
+String_102fdb: ; 102fdb
+ db "あいてがわ%せんたくに"
+ next "いじょう<PKMN>あるようです!!"
+ done
+; 102ff5
+
+Function102ff5: ; 102ff5
+ call Function102dc3
+ ld de, String_103002
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 103002
+
+String_103002: ; 103002
+ db "その#を こうかんすると"
+ next "せんとう できなく なっちゃうよ!"
+ db "@"
+; 103021
+
+Function103021: ; 103021
+ call Function102dc3
+ ld de, String_10302e
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 10302e
+
+String_10302e: ; 10302e
+ db "あいてが ちゅうしを えらんだので"
+ next "こうかんを ちゅうし します"
+ db "@"
+; 10304f
+
+Function10304f: ; 10304f
+ xor a
+ ld [AttrMapEnd], a
+ ld [wcf42], a
+ ld [wcf44], a
+ ld [wcf45], a
+ ret
+; 10305d
+
+Function10305d: ; 10305d
+ nop
+ ld a, [AttrMapEnd]
+ and a
+ ret z
+ call Function10307f
+ ret c
+ call Function103094
+ call Function10306e
+ ret
+; 10306e
+
+Function10306e: ; 10306e
+ ld a, $01
+ ld [hOAMUpdate], a
+ call ClearSprites
+ ld de, Sprites
+ call Function1030cd
+ xor a
+ ld [hOAMUpdate], a
+ ret
+; 10307f
+
+Function10307f: ; 10307f
+ ld c, $02
+ ld hl, wcd4b
+ bit 7, [hl]
+ jr z, .asm_10308a
+ ld c, $01
+
+.asm_10308a
+ ld hl, wcf45
+ inc [hl]
+ ld a, [hl]
+ cp c
+ ret c
+ xor a
+ ld [hl], a
+ ret
+; 103094
+
+Function103094: ; 103094
+ ld hl, wcd4b
+ bit 7, [hl]
+ jr nz, .asm_1030c0
+ ld a, [wcf42]
+ bit 7, a
+ jr nz, .asm_1030b2
+ ld a, [wcf44]
+ inc a
+ ld [wcf44], a
+ cp $2c
+ ret nz
+ ld hl, wcf42
+ set 7, [hl]
+ ret
+
+.asm_1030b2
+ ld a, [wcf44]
+ dec a
+ ld [wcf44], a
+ ret nz
+ ld hl, wcf42
+ res 7, [hl]
+ ret
+
+.asm_1030c0
+ ld hl, wcf44
+ ld a, [hl]
+ and a
+ jr z, .asm_1030ca
+ dec a
+ ld [hl], a
+ ret nz
+
+.asm_1030ca
+ ld [hl], $2c
+ ret
+; 1030cd
+
+Function1030cd: ; 1030cd
+ ld a, [wcf44]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld bc, Unknown_103112
+ add hl, bc
+ ld b, $30
+ ld c, $08
+.asm_1030de
+ push hl
+ ld hl, wcd4b
+ bit 7, [hl]
+ pop hl
+ ld a, 0
+ jr z, .asm_1030eb
+ ld a, $05
+.asm_1030eb
+
+ add [hl]
+ inc hl
+ push hl
+
+ add a
+ add a
+
+ add Unknown_10327a % $100
+ ld l, a
+ ld a, Unknown_10327a / $100
+ adc 0
+ ld h, a
+
+ ld a, b
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, $0a
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop hl
+ ld a, b
+ add $08
+ ld b, a
+ dec c
+ jr nz, .asm_1030de
+ ret
+; 103112
+
+Unknown_103112: ; 103112
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $01, $00, $00, $00, $00, $00, $00, $00
+ db $02, $01, $00, $00, $00, $00, $00, $00
+ db $03, $02, $01, $00, $00, $00, $00, $00
+ db $04, $03, $02, $01, $00, $00, $00, $00
+ db $04, $04, $03, $02, $01, $00, $00, $00
+ db $04, $04, $04, $03, $02, $01, $00, $00
+ db $04, $04, $04, $04, $03, $02, $01, $00
+ db $04, $04, $04, $04, $04, $03, $02, $01
+ db $04, $04, $04, $04, $04, $04, $03, $02
+ db $04, $04, $04, $04, $04, $04, $04, $03
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $03, $04, $04, $04, $04, $04, $04, $04
+ db $02, $03, $04, $04, $04, $04, $04, $04
+ db $01, $02, $03, $04, $04, $04, $04, $04
+ db $00, $01, $02, $03, $04, $04, $04, $04
+ db $00, $00, $01, $02, $03, $04, $04, $04
+ db $00, $00, $00, $01, $02, $03, $04, $04
+ db $00, $00, $00, $00, $01, $02, $03, $04
+ db $00, $00, $00, $00, $00, $01, $02, $03
+ db $00, $00, $00, $00, $00, $00, $01, $02
+ db $00, $00, $00, $00, $00, $00, $00, $01
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+; 10327a
+
+Unknown_10327a: ; 10327a
+ db $00, $00, $00, $00
+ db $00, $00, $01, $00
+ db $00, $00, $02, $00
+ db $00, $00, $03, $00
+ db $00, $00, $01, $01
+ db $00, $00, $00, $00
+ db $00, $00, $01, $02
+ db $00, $00, $02, $02
+ db $00, $00, $03, $02
+ db $00, $00, $01, $03
+
+GFX_1032a2:
+INCBIN "gfx/unknown/1032a2.2bpp"
+
+Palettes_1032e2:
+ RGB 0, 0, 0
+ RGB 31, 31, 7
+ RGB 20, 31, 6
+ RGB 13, 20, 16
+
+ RGB 0, 0, 0
+ RGB 7, 11, 17
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 31, 24, 4
+ RGB 25, 12, 0
+ RGB 31, 7, 4
+
+ RGB 0, 0, 0
+ RGB 25, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+; 103302
+
+Function103302: ; 103302
+ call Function103309
+ call Function103362
+ ret
+; 103309
+
+Function103309: ; 103309
+ xor a
+ ld [hBGMapMode], a
+ ld hl, Buffer1
+ ld bc, 10
+ xor a
+ call ByteFill
+ ld a, $04
+ call GetSRAMBank
+ ld a, [wdc41]
+ ld [$a60c], a
+ ld [Buffer1], a
+ call CloseSRAM
+ call Function1035c6
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld [wd1ef], a
+ ld a, [hli]
+ ld [wd1ec], a
+ ld a, [hli]
+ ld [wd1ed], a
+ ld h, d
+ ld l, e
+ call Function3eea
+ ld hl, wd1ec
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ ld [wd1ee], a
+ call Function1034be
+ call UpdateSprites
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ ld a, $01
+ ld [wd1f0], a
+ call Function10339a
+ ret
+; 103362
+
+Function103362: ; 103362
+.asm_103362
+ ld a, [wd1f0]
+ ld [wd1f1], a
+ call Function1033af
+ call Function10339a
+ call Function10342c
+ callba HDMATransferTileMapToWRAMBank3
+ ld a, [Buffer2]
+ bit 7, a
+ jr z, .asm_103362
+ ld hl, Buffer2
+ bit 6, [hl]
+ jr z, .asm_103398
+ ld a, $04
+ call GetSRAMBank
+ ld a, [Buffer1]
+ ld [$a60c], a
+ ld [wdc41], a
+ call CloseSRAM
+ xor a
+ ret
+
+.asm_103398
+ scf
+ ret
+; 10339a
+
+Function10339a: ; 10339a
+ ld a, [wd1f0]
+ ld [wd1f2], a
+ ld c, a
+ ld b, 0
+ ld hl, wd1ec
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ ld a, [hl]
+ ld [wd1f3], a
+ ret
+; 1033af
+
+Function1033af: ; 1033af
+ call GetJoypad
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .left
+ bit D_RIGHT_F, a
+ jr nz, .right
+ bit B_BUTTON_F, a
+ jr nz, .b
+ bit A_BUTTON_F, a
+ jr nz, .a
+ bit D_UP_F, a
+ jr nz, .up
+ bit D_DOWN_F, a
+ jr nz, .down
+ ret
+
+.up
+ ld a, [wd1f0]
+ dec a
+ ld [wd1f0], a
+ cp 1
+ ret nc
+ ld a, [wd1ee]
+ ld [wd1f0], a
+ ret
+
+.down
+ ld a, [wd1f0]
+ inc a
+ ld [wd1f0], a
+ ld c, a
+ ld a, [wd1ee]
+ cp c
+ ret nc
+ ld a, 1
+ ld [wd1f0], a
+ ret
+
+.b
+ call PlayClickSFX
+ ld hl, Buffer2
+ set 7, [hl]
+ ret
+
+.a
+ ld a, [wd1f3]
+ cp 3
+ jr nz, .a_return
+ ld de, SFX_TRANSACTION
+ call PlaySFX
+ ld hl, Buffer2
+ set 7, [hl]
+ ld hl, Buffer2
+ set 6, [hl]
+ ret
+
+.left
+.right
+.a_return
+ ld a, [wd1f3]
+ cp 3
+ ret z
+ ld de, SFX_PUSH_BUTTON
+ call PlaySFX
+ ld bc, 8
+ call Function10350f
+ ld a, [Buffer1]
+ xor e
+ ld [Buffer1], a
+ ret
+; 10342c
+
+Function10342c: ; 10342c
+ ld a, [wd1f0]
+ ld [wd1f2], a
+ call Function103490
+ call Function10343c
+ call Function1034a7
+ ret
+; 10343c
+
+Function10343c: ; 10343c
+ ld a, [wd1f3]
+ cp $02
+ jr nz, .asm_103452
+ ld bc, 1
+ call Function1034f7
+ ld c, $12
+ ld b, $01
+ call Function1034e0
+ jr .asm_10345f
+
+.asm_103452
+ ld bc, $ffed
+ call Function1034f7
+ ld c, $12
+ ld b, $02
+ call Function1034e0
+
+.asm_10345f
+ ld bc, 0
+ call Function10350f
+ ld bc, 1
+ call Function103487
+ ld bc, 8
+ call Function10350f
+ ld a, [Buffer1]
+ and e
+ ld bc, 2
+ jr z, .asm_10347d
+ ld bc, 4
+
+.asm_10347d
+ call Function10350f
+ ld bc, 11
+ call Function103487
+ ret
+; 103487
+
+Function103487: ; 103487
+ push de
+ call Function1034f7
+ pop de
+ call PlaceString
+ ret
+; 103490
+
+Function103490: ; 103490
+ hlcoord 0, 15
+ ld c, $14
+ ld b, $03
+ call Function1034e0
+ ld bc, 6
+ call Function10350f
+ hlcoord 1, 16
+ call PlaceString
+ ret
+; 1034a7
+
+Function1034a7: ; 1034a7
+ ld a, [wd1f1]
+ ld [wd1f2], a
+ ld bc, 10
+ call Function1034f7
+ ld [hl], $7f
+ ld bc, 10
+ call Function1034f1
+ ld [hl], $ed
+ ret
+; 1034be
+
+Function1034be: ; 1034be
+ ld a, $01
+ ld [wd1f2], a
+ ld hl, wd1ec
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+.asm_1034ca
+ push af
+ ld a, [hli]
+ push hl
+ ld [wd1f3], a
+ call Function10343c
+ ld hl, wd1f2
+ inc [hl]
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_1034ca
+ call Function103490
+ ret
+; 1034e0
+
+Function1034e0: ; 1034e0
+ push bc
+ push hl
+ call ClearBox
+ pop hl
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ pop bc
+ ld a, $06
+ call FillBoxWithByte
+ ret
+; 1034f1
+
+Function1034f1: ; 1034f1
+ ld a, [wd1f0]
+ ld [wd1f2], a
+
+Function1034f7: ; 10134f7
+ hlcoord 0, 0
+ add hl, bc
+ ld a, [wd1ef]
+ ld bc, SCREEN_WIDTH
+ call AddNTimes
+ ld a, [wd1f2]
+ dec a
+ ld bc, 40
+ call AddNTimes
+ ret
+; 10350f
+
+Function10350f: ; 10350f
+ ld a, [wd1f3]
+ push bc
+ ld hl, Unknown_103522
+ ld bc, 9
+ call AddNTimes
+ pop bc
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ret
+; 103522
+
+Unknown_103522: ; 103522
+ dw String_103546
+ dw String_103598
+ dw String_1035a0
+ dw String_10355f
+ db $01
+ dw String_10354f
+ dw String_1035a8
+ dw String_1035b1
+ dw String_103571
+ db $02
+ dw String_103557
+ dw String_1035ba
+ dw String_1035bd
+ dw String_103585
+ db $04
+ dw String_103545
+ dw String_1035c1
+ dw String_1035c1
+ dw String_103545
+
+String_103545: db "@"
+String_103546: db "せんとう アニメ@"
+String_10354f: db "でんわばんごう@"
+String_103557: db "めいしこうかん@"
+String_10355f: db "でんわを かけるひとが きめられる@"
+String_103571: db "でんわばんごうの にゅうりょくのしかた@"
+String_103585: db "あたらしいめいしが あれば こうかん@"
+String_103598: db "とばして みる@"
+String_1035a0: db "じっくり みる@"
+String_1035a8: db "めいしからえらぶ@"
+String_1035b1: db "すうじで いれる@"
+String_1035ba: db "する@"
+String_1035bd: db "しない@"
+String_1035c1: db "けってい@"
+; 1035c6
+
+Function1035c6: ; 1035c6
+ callba Function10138b
+ ld b, 0
+ ld hl, Unknown_1035d7
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 1035d7
+
+Unknown_1035d7: ; 1035d7
+ dw Unknown_1035e7
+ dw Unknown_1035f3
+ dw Unknown_103608
+ dw Unknown_103608
+ dw Unknown_1035fe
+ dw AskMobileOrCable
+ dw AskMobileOrCable
+ dw AskMobileOrCable
+
+Unknown_1035e7: ; 1035e7
+ dwcoord 0, 6
+ db $12, $07, $07
+ dw .this
+.this
+ db 4, 2, 1, 0, 3
+
+Unknown_1035f3: ; 1035f3
+ dwcoord 0, 7
+ db $12, $06, $09
+ dw .this
+.this
+ db 3, 2, 1, 3
+
+Unknown_1035fe: ; 1035fe
+ dwcoord 0, 9
+ db $12, $04, $0b
+ dw .this
+.this
+ db 2, 0, 3
+
+Unknown_103608: ; 103608
+ dwcoord 0, 9
+ db $12, $04, $0b
+ dw .this
+.this
+ db 2, 2, 3
+; 103612
+
+AskMobileOrCable: ; 103612
+ ld hl, MenuDataHeader_103640
+ call LoadMenuDataHeader
+ ld a, [wMobileOrCable_LastSelection]
+ and $0f
+ jr z, .skip_load
+ ld [wMenuCursorBuffer], a
+
+.skip_load
+ call VerticalMenu
+ call CloseWindow
+ jr c, .pressed_b
+ ld a, [wMenuCursorY]
+ ld [ScriptVar], a
+ ld c, a
+ ld a, [wMobileOrCable_LastSelection]
+ and $f0
+ or c
+ ld [wMobileOrCable_LastSelection], a
+ ret
+
+.pressed_b
+ xor a
+ ld [ScriptVar], a
+ ret
+; 103640
+
+MenuDataHeader_103640: ; 103640
+ db $40 ; flags
+ db 6, 13 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_103648
+ db 1 ; default option
+
+MenuData2_103648: ; 103648
+ db $80 ; flags
+ db 2
+ db "モバイル@"
+ db "ケーブル@"
+; 103654
+
+Function103654: ; 103654
+ callba Mobile_AlwaysReturnNotCarry
+ bit 7, c
+ jr nz, .asm_103666
+ ld hl, wcd2a
+ res 5, [hl]
+ ld c, $02
+ ret
+
+.asm_103666
+ ld hl, wcd2a
+ set 5, [hl]
+ ld c, $01
+ ret
+; 10366e
+
+Mobile_SelectThreeMons: ; 10366e
+ callba Mobile_AlwaysReturnNotCarry
+ bit 7, c
+ jr z, .asm_10369b
+ ld hl, UnknownText_0x10375d
+ call PrintText
+ call YesNoBox
+ jr c, .asm_103696
+ callba CheckForMobileBattleRules
+ jr nc, .asm_103690
+ call JoyWaitAorB
+ jr .asm_103696
+
+.asm_103690
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+
+.asm_103696
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_10369b
+ ld hl, wMobileOrCable_LastSelection
+ bit 7, [hl]
+ set 7, [hl]
+ jr nz, .asm_1036b5
+ ld hl, UnknownText_0x103762
+ call PrintText
+ call YesNoBox
+ jr c, .asm_1036b5
+ call Function1036f9
+ call JoyWaitAorB
+
+.asm_1036b5
+ call Function103700
+ jr c, .asm_1036f4
+ ld hl, MenuDataHeader_103747
+ call LoadMenuDataHeader
+ call VerticalMenu
+ call ExitMenu
+ jr c, .asm_1036f4
+ ld a, [wMenuCursorY]
+ cp $01
+ jr z, .asm_1036d9
+ cp $02
+ jr z, .asm_1036f4
+ cp $03
+ jr z, .asm_1036ec
+ jr .asm_1036b5
+
+.asm_1036d9
+ callba CheckForMobileBattleRules
+ jr nc, .asm_1036e6
+ call JoyWaitAorB
+ jr .asm_1036f4
+
+.asm_1036e6
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+
+.asm_1036ec
+ call Function1036f9
+ call JoyWaitAorB
+ jr .asm_1036b5
+
+.asm_1036f4
+ xor a
+ ld [ScriptVar], a
+ ret
+; 1036f9
+
+Function1036f9: ; 1036f9
+ ld hl, UnknownText_0x103767
+ call PrintText
+ ret
+; 103700
+
+Function103700: ; 103700
+ ld c, $0a
+ ld hl, SwarmFlags
+ bit 4, [hl]
+ jr z, .asm_10370f
+ callba Function1008a6
+
+.asm_10370f
+ ld a, c
+ ld [StringBuffer2], a
+ ld a, [StringBuffer2]
+ cp $05
+ jr nc, .asm_103724
+ cp $02
+ jr nc, .asm_10372c
+ cp $01
+ jr nc, .asm_103734
+ jr .asm_10373c
+
+.asm_103724
+ ld hl, UnknownText_0x10376c
+ call PrintText
+ and a
+ ret
+
+.asm_10372c
+ ld hl, UnknownText_0x103771
+ call PrintText
+ and a
+ ret
+
+.asm_103734
+ ld hl, UnknownText_0x103776
+ call PrintText
+ and a
+ ret
+
+.asm_10373c
+ ld hl, UnknownText_0x10377b
+ call PrintText
+ call JoyWaitAorB
+ scf
+ ret
+; 103747
+
+MenuDataHeader_103747: ; 103747
+ db $40 ; flags
+ db 5, 13 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_10374f
+ db 1 ; default option
+
+MenuData2_10374f: ; 10374f
+ db $c0 ; flags
+ db 3
+ db "はい@"
+ db "やめる@"
+ db "せつめい@"
+; 10375d
+
+UnknownText_0x10375d: ; 0x10375d
+ text_jump UnknownText_0x1c422a
+ db "@"
+; 0x103762
+UnknownText_0x103762: ; 0x103762
+ text_jump UnknownText_0x1c4275
+ db "@"
+; 0x103767
+UnknownText_0x103767: ; 0x103767
+ text_jump UnknownText_0x1c4298
+ db "@"
+; 0x10376c
+UnknownText_0x10376c: ; 0x10376c
+ text_jump UnknownText_0x1c439c
+ db "@"
+; 0x103771
+UnknownText_0x103771: ; 0x103771
+ text_jump UnknownText_0x1c43dc
+ db "@"
+; 0x103776
+UnknownText_0x103776: ; 0x103776
+ text_jump UnknownText_0x1c4419
+ db "@"
+; 0x10377b
+UnknownText_0x10377b: ; 0x10377b
+ text_jump UnknownText_0x1c445a
+ db "@"
+; 0x103780
+
+Function103780: ; 103780
+ ld a, [wd265]
+ push af
+ call Function10378c
+ pop af
+ ld [wd265], a
+ ret
+; 10378c
+
+Function10378c: ; 10378c
+ ld c, 0
+ ld hl, SwarmFlags
+ bit 4, [hl]
+ jr nz, .already_set
+ ld c, $01
+ ld hl, SwarmFlags
+ set 4, [hl]
+
+.already_set
+ push bc
+ callba Link_SaveGame
+ pop bc
+ jr c, .failed_to_save
+ ld a, $01
+ ld [ScriptVar], a
+ ld a, c
+ and a
+ ret z
+ callba Function1006fd
+ ret
+
+.failed_to_save
+ xor a
+ ld [ScriptVar], a
+ ld a, c
+ and a
+ ret z
+ ld hl, SwarmFlags
+ res 4, [hl]
+ ret
+; 1037c2
+
+Function1037c2: ; 1037c2
+ call Function103823
+ jr c, .nope
+ ld a, [wdc5f]
+ and a
+ jr z, .nope
+ ld hl, UnknownText_0x1037e6
+ call PrintText
+ call YesNoBox
+ jr c, .nope
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+
+.nope
+ xor a
+ ld [wdc5f], a
+ ld [ScriptVar], a
+ ret
+; 1037e6
+
+UnknownText_0x1037e6: ; 0x1037e6
+ text_jump UnknownText_0x1c449c
+ db "@"
+; 0x1037eb
+
+Function1037eb: ; 1037eb
+ call Function103823
+ jr nc, .asm_103807
+ ld hl, UnknownText_0x103819
+ call PrintText
+ call JoyWaitAorB
+ ld hl, UnknownText_0x10381e
+ call PrintText
+ call JoyWaitAorB
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_103807
+ ld a, [wdc60]
+ and a
+ jr nz, .asm_103813
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+
+.asm_103813
+ ld a, $02
+ ld [ScriptVar], a
+ ret
+; 103819
+
+UnknownText_0x103819: ; 0x103819
+ text_jump UnknownText_0x1c44c0
+ db "@"
+; 0x10381e
+
+UnknownText_0x10381e: ; 0x10381e
+ text_jump UnknownText_0x1c44e7
+ db "@"
+; 0x103823
+
+Function103823: ; 103823
+ callba Mobile_AlwaysReturnNotCarry
+ bit 7, c
+ jr nz, .asm_103838
+ callba Function1008a6
+ ld a, c
+ cp $01
+ jr c, .asm_10383a
+
+.asm_103838
+ xor a
+ ret
+
+.asm_10383a
+ scf
+ ret
+; 10383c
+
+Function10383c: ; 10383c
+ ld a, $01
+ ld [wdc60], a
+ xor a
+ ld hl, wPlayerMonSelection
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, UnknownText_0x103876
+ call PrintText
+ call JoyWaitAorB
+ callba Script_reloadmappart
+ callba Function4a94e
+ jr c, .asm_103870
+ ld hl, wd002
+ ld de, wPlayerMonSelection
+ ld bc, 3
+ call CopyBytes
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_103870
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+; 103876
+
+UnknownText_0x103876: ; 0x103876
+ text_jump UnknownText_0x1c4508
+ db "@"
+; 0x10387b
+
+Function10387b: ; 10387b
+ callba Mobile_AlwaysReturnNotCarry
+ bit 7, c
+ ret nz
+ callba Function1008a6
+ ld a, c
+ ld [StringBuffer2], a
+ ld hl, UnknownText_0x103898
+ call PrintText
+ call JoyWaitAorB
+ ret
+; 103898
+
+UnknownText_0x103898: ; 0x103898
+ text_jump UnknownText_0x1c4525
+ db "@"
+; 0x10389d
--- /dev/null
+++ b/mobile/mobile_41.asm
@@ -1,0 +1,1113 @@
+; These functions deal with miscellaneous statistics
+; which were used for Trainer Rankings in Pokémon News.
+
+; Copies certain values at the time the player enters the Hall of Fame.
+TrainerRankings_HallOfFame2:: mobile ; 0x105ef6
+ ld a, BANK(sTrainerRankingGameTimeHOF)
+ call GetSRAMBank
+
+ ld hl, GameTimeHours
+ ld de, sTrainerRankingGameTimeHOF
+ ld bc, 4
+ call CopyBytes
+
+ ld hl, sTrainerRankingStepCount
+ ld de, sTrainerRankingStepCountHOF
+ ld bc, 4
+ call CopyBytes
+
+ ; sTrainerRankingHealings is only a 3-byte value.
+ ; One extraneous byte is copied from sTrainerRankingMysteryGift.
+ ld hl, sTrainerRankingHealings
+ ld de, sTrainerRankingHealingsHOF
+ ld bc, 4
+ call CopyBytes
+
+ ld hl, sTrainerRankingBattles
+ ld de, sTrainerRankingBattlesHOF
+ ld bc, 3
+ call CopyBytes
+
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105f33
+
+TrainerRankings_MagikarpLength: mobile ; 105f33
+ ld a, BANK(sTrainerRankingLongestMagikarp)
+ call GetSRAMBank
+ ld de, Buffer1
+ ld hl, sTrainerRankingLongestMagikarp
+
+ ; Is this Magikarp the longest measured?
+ ld a, [de]
+ cp [hl]
+ jr z, .isLowByteHigher
+ jr nc, .newRecordLongest
+ jr .checkShortest
+
+.isLowByteHigher
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ dec hl
+ dec de
+ jr c, .checkShortest
+
+.newRecordLongest
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ dec de
+ ld [hl], a
+
+.checkShortest
+ ; First, check if the record for shortest Magikarp is 0.
+ ; This seems unnecessary, because the value is initialized to 100.0 cm.
+ ld hl, sTrainerRankingShortestMagikarp
+ ld a, [hli]
+ or [hl]
+ dec hl
+ jr z, .newRecordShortest
+
+ ; Now check if this Magikarp is the shortest
+ ld a, [de]
+ cp [hl]
+ jr z, .isLowByteLower
+ jr c, .newRecordShortest
+ jr .done
+
+.isLowByteLower
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr nc, .done
+ dec hl
+ dec de
+
+.newRecordShortest
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105f79
+
+TrainerRankings_BugContestScore: mobile ; 105f79
+ ld a, BANK(sTrainerRankingBugContestScore)
+ call GetSRAMBank
+ ld a, [hProduct]
+ ld hl, sTrainerRankingBugContestScore
+ cp [hl]
+ jr z, .isLowByteHigher
+ jr nc, .newHighScore
+ jr .done
+
+.isLowByteHigher
+ inc hl
+ ld a, [hMultiplicand]
+ cp [hl]
+ jr c, .done
+ dec hl
+
+.newHighScore
+ ld a, [hProduct]
+ ld [hli], a
+ ld a, [hMultiplicand]
+ ld [hl], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105f9f
+
+TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f
+ ld a, BANK(sTrainerRankingCurrentSlotsStreak)
+ call GetSRAMBank
+
+ ; Increment the current streak
+ ld hl, sTrainerRankingCurrentSlotsStreak + 1
+ inc [hl]
+ jr nz, .noCarry
+ dec hl
+ inc [hl]
+ inc hl
+
+.noCarry
+ dec hl
+ ; Now check if this is a new record for longest streak
+ ld a, [sTrainerRankingLongestSlotsStreak]
+ cp [hl]
+ jr z, .isLowByteHigher
+ jr c, .newRecordStreak
+ jr .done
+
+.isLowByteHigher
+ inc hl
+ ld a, [sTrainerRankingLongestSlotsStreak + 1]
+ cp [hl]
+ jr nc, .done
+ dec hl
+
+.newRecordStreak
+ ld a, [hli]
+ ld [sTrainerRankingLongestSlotsStreak], a
+ ld a, [hl]
+ ld [sTrainerRankingLongestSlotsStreak + 1], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105fd0
+
+TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0
+ ld a, BANK(sTrainerRankingCurrentSlotsStreak)
+ call GetSRAMBank
+ ld hl, sTrainerRankingCurrentSlotsStreak
+ xor a
+ ld [hli], a
+ ld [hl], a
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105fe3
+
+TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3
+ ld a, BANK(sTrainerRankingTotalSlotsPayouts)
+ call GetSRAMBank
+ ld hl, sTrainerRankingTotalSlotsPayouts + 3
+ ld a, e
+ add [hl]
+ ld [hld], a
+ ld a, d
+ adc [hl]
+ ld [hld], a
+ jr nc, .done
+ inc [hl]
+ jr nz, .done
+ dec hl
+ inc [hl]
+ jr nz, .done
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 106008
+
+TrainerRankings_AddToBattlePayouts: mobile ; 106008
+ ld a, BANK(sTrainerRankingTotalBattlePayouts)
+ call GetSRAMBank
+ ld hl, sTrainerRankingTotalBattlePayouts + 3
+ ld a, [bc]
+ dec bc
+ add [hl]
+ ld [hld], a
+ ld a, [bc]
+ dec bc
+ adc [hl]
+ ld [hld], a
+ ld a, [bc]
+ adc [hl]
+ ld [hld], a
+ jr nc, .done
+ inc [hl]
+ jr nz, .done
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 10602e
+
+TrainerRankings_StepCount: mobile ; 10602e (41:602e)
+ ld hl, sTrainerRankingStepCount
+ jp TrainerRankings_Increment4Byte
+
+; Unreferenced in English version.
+TrainerRankings_BattleTowerWins: mobile ; 106035
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8d]
+ and a
+ call CloseSRAM
+ ret nz
+ ld hl, sTrainerRankingBattleTowerWins
+ jp TrainerRankings_Increment2Byte
+
+TrainerRankings_TMsHMsTaught: mobile ; 106049
+ ld hl, sTrainerRankingTMsHMsTaught
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Battles: mobile ; 106050
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
+ ret z
+ ld hl, sTrainerRankingBattles
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_WildBattles: mobile ; 10605d
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
+ ret z
+ ld hl, sTrainerRankingWildBattles
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_TrainerBattles: mobile ; 10606a
+ ld hl, sTrainerRankingTrainerBattles
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused1: mobile ; 106071
+ ld hl, sTrainerRankingUnused1
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_HallOfFame:: mobile ; 0x106078
+ ld hl, sTrainerRankingHOFEntries
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f)
+ ld hl, sTrainerRankingWildMonsCaught
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_HookedEncounters: mobile ; 106086
+ ld hl, sTrainerRankingHookedEncounters
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_EggsHatched: mobile ; 10608d (41:608d)
+ ld hl, sTrainerRankingEggsHatched
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_MonsEvolved: mobile ; 106094
+ ld hl, sTrainerRankingMonsEvolved
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_FruitPicked: mobile ; 10609b
+ ld hl, sTrainerRankingFruitPicked
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Healings: mobile ; 1060a2
+ ld hl, sTrainerRankingHealings
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9)
+ ld hl, sTrainerRankingMysteryGift
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Trades: mobile ; 1060af
+ ld hl, sTrainerRankingTrades
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Fly: mobile ; 1060b5
+ ld hl, sTrainerRankingFly
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Surf: mobile ; 1060bb
+ ld hl, sTrainerRankingSurf
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Waterfall: mobile ; 1060c1
+ ld hl, sTrainerRankingWaterfall
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_WhiteOuts: mobile ; 1060c7
+ ld hl, sTrainerRankingWhiteOuts
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_LuckyNumberShow: mobile ; 1060cd
+ ld hl, sTrainerRankingLuckyNumberShow
+ jr TrainerRankings_Increment2Byte
+
+TrainerRankings_PhoneCalls: mobile ; 1060d3
+ ld hl, sTrainerRankingPhoneCalls
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused2: mobile ; 1060df
+ ld hl, sTrainerRankingUnused2
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_LinkBattles: mobile ; 1060df
+ ld hl, sTrainerRankingLinkBattles
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Splash: mobile ; 1060e5
+ ; Only counts if it’s the player’s turn
+ ld a, [hBattleTurn]
+ and a
+ ret nz
+ ld hl, sTrainerRankingSplash
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_TreeEncounters: mobile ; 1060ef
+ ld hl, sTrainerRankingTreeEncounters
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused3: mobile ; 1060f5
+ ld hl, sTrainerRankingUnused3
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_ColosseumWins: mobile ; win
+ ld hl, sTrainerRankingColosseumWins
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_ColosseumLosses: mobile ; lose
+ ld hl, sTrainerRankingColosseumLosses
+ jr TrainerRankings_Increment3Byte
+; 106107
+
+TrainerRankings_ColosseumDraws: mobile ; draw
+ ld hl, sTrainerRankingColosseumDraws
+ jr TrainerRankings_Increment3Byte
+; 10610d
+
+; Counts uses of both Selfdestruct and Explosion.
+TrainerRankings_Selfdestruct: mobile ; 10610d
+ ; Only counts if it’s the player’s turn
+ ld a, [hBattleTurn]
+ and a
+ ret nz
+ ld hl, sTrainerRankingSelfdestruct
+ jr TrainerRankings_Increment3Byte
+; 106117
+
+TrainerRankings_Increment4Byte: ; 106117
+ push bc
+ ld bc, 3
+ jr TrainerRankings_Increment
+; 10611d
+
+TrainerRankings_Increment3Byte: ; 10611d
+ push bc
+ ld bc, 2
+ jr TrainerRankings_Increment
+; 106123
+
+TrainerRankings_Increment2Byte: ; 106123
+ push bc
+ ld bc, 1
+ jr TrainerRankings_Increment
+; 106129
+
+; unused
+TrainerRankings_Increment1Byte: ; 106129
+ push bc
+ ld bc, 0
+
+; Increments a big-endian value of bc + 1 bytes at hl
+TrainerRankings_Increment: ; 10612d
+ ld a, BANK(sTrainerRankings)
+ call GetSRAMBank
+ push hl
+ push de
+ ld e, c
+ inc e
+.asm_106136
+ ld a, [hli]
+ inc a
+ jr nz, .asm_10613d
+ dec e
+ jr nz, .asm_106136
+
+.asm_10613d
+ pop de
+ pop hl
+ jr z, .asm_10614d
+ add hl, bc
+.asm_106142
+ inc [hl]
+ jr nz, .asm_10614d
+ ld a, c
+ and a
+ jr z, .asm_10614d
+ dec hl
+ dec c
+ jr .asm_106142
+
+.asm_10614d
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ pop bc
+ ret
+; 106155
+
+; Used when SRAM bank 5 isn’t already loaded — what’s the point of this?
+UpdateTrainerRankingsChecksum2: mobile ; 106155
+ ld a, BANK(sTrainerRankings)
+ call GetSRAMBank
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 106162
+
+UpdateTrainerRankingsChecksum: ; 106162
+ push de
+ call CalculateTrainerRankingsChecksum
+ ld hl, sTrainerRankingsChecksum
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ pop de
+ ret
+; 10616e
+
+CalculateTrainerRankingsChecksum: ; 10616e
+ push bc
+ ld hl, sTrainerRankings
+ ld bc, sTrainerRankingsChecksum - sTrainerRankings
+ xor a
+ ld de, 0
+.asm_106179
+ ld a, e
+ add [hl]
+ ld e, a
+ jr nc, .asm_10617f
+ inc d
+
+.asm_10617f
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_106179
+ pop bc
+ ret
+; 106187
+
+
+BackupMobileEventIndex: ; 106187
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ ld a, [sMobileEventIndex]
+ push af
+ ld a, BANK(sMobileEventIndexBackup)
+ call GetSRAMBank
+ pop af
+ ld [sMobileEventIndexBackup], a
+ call CloseSRAM
+ ret
+; 10619d
+
+
+RestoreMobileEventIndex: ; 10619d (41:619d)
+ ld a, BANK(sMobileEventIndexBackup)
+ call GetSRAMBank
+ ld a, [sMobileEventIndexBackup]
+ push af
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ pop af
+ ld [sMobileEventIndex], a
+ call CloseSRAM
+ ret
+; 1061b3 (41:61b3)
+
+; Unreferenced in English version.
+VerifyTrainerRankingsChecksum: ; 1061b3
+ call CalculateTrainerRankingsChecksum
+ ld hl, sTrainerRankingsChecksum
+ ld a, d
+ cp [hl]
+ ret nz
+ inc hl
+ ld a, e
+ cp [hl]
+ ret
+; 1061c0
+
+DeleteMobileEventIndex: ; 1061c0 (41:61c0)
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ xor a
+ ld [sMobileEventIndex], a
+ call CloseSRAM
+ ret
+; 1061cd (41:61cd)
+
+; Used in the Japanese version to initialize Trainer Rankings data
+; for a new save file. Unreferenced in the English version.
+InitializeTrainerRankings:
+ ld hl, sTrainerRankings
+ ld bc, sTrainerRankingsEnd - sTrainerRankings
+ xor a
+ call ByteFill
+
+ ; Initialize the shortest Magikarp to 100.0 cm
+ ld hl, sTrainerRankingShortestMagikarp
+ ld a, $3
+ ld [hli], a
+ ld [hl], $e8
+
+ call UpdateTrainerRankingsChecksum
+ ld hl, sTrainerRankings
+ ld de, sTrainerRankingsBackup
+ ld bc, sTrainerRankingsEnd - sTrainerRankings
+ call CopyBytes
+ ret
+; 1061ef
+
+
+_MobilePrintNum:: ; 1061ef
+; Supports signed 31-bit integers (up to 10 digits)
+; b: Bits 0-4 = # bytes
+; Bit 7 = set if negative
+; c: Number of digits
+; de: highest byte of number to convert
+; hl: where to print the converted string
+ push bc
+ xor a
+ ld [hPrintNum1], a
+ ld [hPrintNum2], a
+ ld [hPrintNum3], a
+ ld a, b
+ and $f
+ cp $1
+ jr z, .one_byte
+ cp $2
+ jr z, .two_bytes
+ cp $3
+ jr z, .three_bytes
+; four bytes
+ ld a, [de]
+ ld [hPrintNum1], a
+ inc de
+
+.three_bytes
+ ld a, [de]
+ ld [hPrintNum2], a
+ inc de
+
+.two_bytes
+ ld a, [de]
+ ld [hPrintNum3], a
+ inc de
+
+.one_byte
+ ld a, [de]
+ ld [hPrintNum4], a
+ inc de
+
+ push de
+ xor a
+ ld [hPrintNum9], a
+ ld a, b
+ ld [hPrintNum10], a
+ ld a, c
+ cp 2
+ jr z, .two_digits
+ ld de, ._2
+ cp 3
+ jr z, .three_to_nine_digits
+ ld de, ._3
+ cp 4
+ jr z, .three_to_nine_digits
+ ld de, ._4
+ cp 5
+ jr z, .three_to_nine_digits
+ ld de, ._5
+ cp 6
+ jr z, .three_to_nine_digits
+ ld de, ._6
+ cp 7
+ jr z, .three_to_nine_digits
+ ld de, ._7
+ cp 8
+ jr z, .three_to_nine_digits
+ ld de, ._8
+ cp 9
+ jr z, .three_to_nine_digits
+ ld de, ._9
+
+.three_to_nine_digits
+ inc de
+ inc de
+ inc de
+ dec a
+ dec a
+
+.digit_loop
+ push af
+ call .Function1062b2
+ call .Function1062ff
+rept 4
+ inc de
+endr
+ pop af
+ dec a
+ jr nz, .digit_loop
+
+.two_digits
+ ld c, 0
+ ld a, [hPrintNum4]
+.mod_ten_loop
+ cp 10
+ jr c, .simple_divide_done
+ sub 10
+ inc c
+ jr .mod_ten_loop
+
+.simple_divide_done
+ ld b, a
+ ld a, [hPrintNum9]
+ or c
+ ld [hPrintNum9], a
+ jr nz, .create_digit
+ call .LoadMinusTenIfNegative
+ jr .done
+
+.create_digit
+ ld a, "0"
+ add c
+ ld [hl], a
+
+.done
+ call .Function1062ff
+ ld a, "0"
+ add b
+ ld [hli], a
+ pop de
+ pop bc
+ ret
+; 106292
+
+._9 dd 1000000000
+._8 dd 100000000
+._7 dd 10000000
+._6 dd 1000000
+._5 dd 100000
+._4 dd 10000
+._3 dd 1000
+._2 dd 100
+; 1062b2
+
+.Function1062b2: ; 1062b2
+ ld c, $0
+.asm_1062b4
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [hPrintNum4]
+ sub b
+ ld [hPrintNum8], a
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [hPrintNum3]
+ sbc b
+ ld [hPrintNum7], a
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [hPrintNum2]
+ sbc b
+ ld [hPrintNum6], a
+ ld a, [de]
+ inc de
+ inc de
+ inc de
+ ld b, a
+ ld a, [hPrintNum1]
+ sbc b
+ ld [hPrintNum5], a
+ jr c, .asm_1062eb
+ ld a, [hPrintNum5]
+ ld [hPrintNum1], a
+ ld a, [hPrintNum6]
+ ld [hPrintNum2], a
+ ld a, [hPrintNum7]
+ ld [hPrintNum3], a
+ ld a, [hPrintNum8]
+ ld [hPrintNum4], a
+ inc c
+ jr .asm_1062b4
+
+.asm_1062eb
+ ld a, [hPrintNum9]
+ or c
+ jr z, .LoadMinusTenIfNegative
+ ld a, -10
+ add c
+ ld [hl], a
+ ld [hPrintNum9], a
+ ret
+
+.LoadMinusTenIfNegative:
+ ld a, [hPrintNum10]
+ bit 7, a
+ ret z
+
+ ld [hl], -10
+ ret
+; 1062ff
+
+.Function1062ff: ; 1062ff
+ ld a, [hPrintNum10]
+ bit 7, a
+ jr nz, .asm_10630d
+ bit 6, a
+ jr z, .asm_10630d
+ ld a, [hPrintNum9]
+ and a
+ ret z
+
+.asm_10630d
+ inc hl
+ ret
+; 10630f
+
+; functions related to the cable club and various NPC scripts referencing mobile communications
+
+Mobile_DummyReturnFalse: ; 10630f
+ xor a
+ ld [ScriptVar], a
+ ret
+; 106314
+
+MobileFn_106314: mobile ; 106314
+ ld a, $4
+ call GetSRAMBank
+ ld a, c
+ cpl
+ ld [$b000], a
+ call CloseSRAM
+ ld a, $7
+ call GetSRAMBank
+ ld a, c
+ ld [$a800], a
+ call CloseSRAM
+ ret
+; 10632f
+
+Mobile_AlwaysReturnNotCarry: ; 10632f
+ or a
+ ret
+
+Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
+ ; check ~[4:b000] == [7:a800]
+ ld a, $4
+ call GetSRAMBank
+ ld a, [$b000]
+ cpl
+ ld b, a
+ call CloseSRAM
+ ld a, $7
+ call GetSRAMBank
+ ld a, [$a800]
+ ld c, a
+ call CloseSRAM
+ ld a, c
+ cp b
+ jr nz, .nope
+
+ ; check [7:a800] != 0
+ and a
+ jr z, .nope
+
+ ; check !([7:a800] & %01110000)
+ and %10001111
+ cp c
+ jr nz, .nope
+
+ ld c, a
+ scf
+ ret
+
+.nope
+ xor a
+ ld c, a
+ ret
+; 10635c
+
+Function10635c: ; 10635c
+ ld a, [wMobileCommsJumptableIndex]
+ bit 7, a
+ ret nz
+ ld a, [wMobileCommsJumptableIndex]
+ ld hl, .Jumptable
+ rst JumpTable
+ ret
+; 10636a
+
+.Jumptable: ; 10636a
+ dw .init
+ dw Function106392
+ dw Function1063cc
+ dw Function1063d8
+ dw Function1063e5
+ dw Function1063f3
+ dw Function106403
+ dw Function106442
+ dw Function106453
+; 10637c
+
+.init: ; 10637c
+ ld de, wcd30
+ ld hl, $41
+ ld bc, $41
+ ld a, $40
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 106392
+
+Function106392: ; 106392
+ xor a
+ ld [wcf64], a
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_1063a2
+ bit 0, a
+ jr z, .asm_1063bf
+ ret
+
+.asm_1063a2
+ call Mobile_AlwaysReturnNotCarry
+ ld a, c
+ and a
+ jr nz, .asm_1063b4
+ ld a, $b
+ ld [wcf64], a
+ ld a, $7
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_1063b4
+ ld a, $7
+ ld [wcf64], a
+ ld a, $7
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_1063bf
+ ld a, $1
+ ld [wcf64], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1063cc
+
+Function1063cc: ; 1063cc
+ ld a, $78
+ ld [wcd42], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+
+Function1063d8: ; 1063d8
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1063e5
+
+Function1063e5: ; 1063e5
+ ld a, [wcf64]
+ cp $3
+ ret nz
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1063f3
+
+Function1063f3: ; 1063f3
+ ld de, wcd31
+ ld a, $32
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 106403
+
+Function106403: ; 106403
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_106426
+ bit 0, a
+ jr z, .asm_10640f
+ ret
+
+.asm_10640f
+ ld a, [wcd31]
+ and $80
+ ld c, a
+ ld a, [wcd30]
+ or c
+ inc a
+ ld c, a
+ call MobileFn_106314
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_106426
+ call Mobile_AlwaysReturnNotCarry
+ ld a, c
+ and a
+ jr z, .asm_106435
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_106435
+ ld c, $0
+ call MobileFn_106314
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 106442
+
+Function106442: ; 106442
+ ld a, $36
+ call Function3e32
+ xor a
+ ld [hMobile], a
+ ld [hMobileReceive], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+
+Function106453: ; 106453
+ ld a, [wMobileCommsJumptableIndex]
+ set 7, a
+ ld [wMobileCommsJumptableIndex], a
+ nop
+ ld a, $4
+ ld [wcf64], a
+ ret
+; 106462
+
+MobileFunc_106462: mobile
+ ret
+; 106464
+
+Function106464:: ; 106464
+ ld de, MobilePhoneTilesGFX
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(MobilePhoneTilesGFX), 1
+ call Get2bpp
+ ld de, FontsExtra2_UpArrowGFX
+ ld hl, VTiles2 tile $61
+ lb bc, BANK(FontsExtra2_UpArrowGFX), 1
+ call Get2bpp
+ ld de, GFX_106514
+ ld hl, VTiles2 tile $62
+ ld c, 9
+ ld b, BANK(GFX_106514)
+ call Get2bpp
+ ld de, $40b0
+ ld hl, VTiles2 tile $6b
+ ld b, $f ; XXX no graphics at 0f:40b0
+ call Get2bpp
+ callba LoadFrame
+ ret
+; 10649b
+
+Function10649b: ; 10649b
+ ld a, [TextBoxFrame]
+ and $7
+ ld bc, 3 tiles
+ ld hl, Frames
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, VTiles2 tile $79
+ ld c, 6
+ ld b, BANK(Frames)
+ call Function1064c3
+ ld hl, VTiles2 tile $7f
+ ld de, TextBoxSpaceGFX
+ ld c, 1
+ ld b, BANK(TextBoxSpaceGFX)
+ call Function1064c3
+ ret
+; 1064c3
+
+Function1064c3: ; 1064c3
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push bc
+ push hl
+ ld hl, Function3f88
+ ld a, b
+ rst FarCall
+ pop hl
+ pop bc
+ pop af
+ ld [rSVBK], a
+ jr asm_1064ed
+
+Function1064d8: ; 1064d8
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push bc
+ push hl
+ ld hl, Function3f9f
+ ld a, b
+ rst FarCall
+ pop hl
+ pop bc
+ pop af
+ ld [rSVBK], a
+ jr asm_1064ed
+
+asm_1064ed
+ ld de, wDecompressScratch
+ ld b, $0
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ call Get2bpp
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 10650a
+
+Function10650a: ; 10650a
+ ld de, MobilePhoneTilesGFX + $20
+ lb bc, BANK(MobilePhoneTilesGFX), $11
+ call Get2bpp
+ ret
+; 106514
+
+GFX_106514:
+INCBIN "gfx/unknown/106514.2bpp"
--- /dev/null
+++ b/mobile/mobile_42.asm
@@ -1,0 +1,2009 @@
+MobileTradeAnimation_SendGivemonToGTS: ; 108000
+ ld a, $80
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 10800b
+
+.TradeAnimScript:
+ mobiletradeanim_showgtsgivemon
+ mobiletradeanim_12
+ mobiletradeanim_10
+ mobiletradeanim_sendmon
+ mobiletradeanim_06
+ mobiletradeanim_0f
+ mobiletradeanim_end
+
+MobileTradeAnimation_RetrieveGivemonFromGTS:
+ ld a, $80
+ jr asm_108018
+
+MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016
+ ld a, $0
+asm_108018:
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108021
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_07
+ mobiletradeanim_receivemon
+ mobiletradeanim_showgtsgetmon
+ mobiletradeanim_end
+
+Function108026: ; 108026
+ ld a, $0
+ jr asm_10802c
+
+Function10802a: ; 10802a
+ ld a, $1
+
+asm_10802c:
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_Frontpics
+; 108035
+
+.TradeAnimScript: ; trade
+ mobiletradeanim_showgivemon
+ mobiletradeanim_12
+ mobiletradeanim_02
+ mobiletradeanim_sendmon
+ mobiletradeanim_05
+ mobiletradeanim_receivemon
+ mobiletradeanim_showgetmon
+ mobiletradeanim_end
+
+Function10803d: ; 10803d
+ ld a, $0
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108048
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_07
+ mobiletradeanim_receivemon
+ mobiletradeanim_showoddegg
+ mobiletradeanim_end
+
+Function10804d: ; 10804d
+ ld a, $0
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108058
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_showgtsgetmon
+ mobiletradeanim_end
+
+RunMobileTradeAnim_Frontpics: ; 10805b
+ ld hl, wTradeAnimAddress
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call Function1080b7
+.loop
+ call MobileTradeAnim_JumptableLoop
+ jr nc, .loop
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 108089
+
+RunMobileTradeAnim_NoFrontpics: ; 108089
+ ld hl, wTradeAnimAddress
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call Function108157
+.loop
+ call MobileTradeAnim_JumptableLoop
+ jr nc, .loop
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 1080b7
+
+Function1080b7: ; 1080b7
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+
+ call EnableLCD
+
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba ClearSpriteAnims
+
+ call DelayFrame
+
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], $0
+
+ ld a, [wPlayerTrademonSpecies]
+ ld hl, wPlayerTrademonDVs
+ ld de, VTiles0 tile $30
+ call MobileTradeAnim_GetFrontpic
+
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2 tile $31
+ call MobileTradeAnim_GetFrontpic
+
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+
+ xor a
+ call Function108b98
+ call Function108af4
+ ret
+; 108157
+
+Function108157: ; 108157
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ call EnableLCD
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba ClearSpriteAnims
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], $0
+ call DelayFrame
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+ xor a
+ call Function108b98
+ call Function108af4
+ ret
+; 1081ad
+
+MobileTradeAnim_ClearVTiles: ; 1081ad
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, 3 * $80 tiles
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, 3 * $80 tiles
+ xor a
+ call ByteFill
+ ret
+; 1081ca
+
+MobileTradeAnim_ClearBGMap: ; 1081ca
+ ld a, $1
+ ld [rVBK], a
+ hlbgcoord 0, 0
+ ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
+ ld a, $0
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ hlbgcoord 0, 0
+ ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
+ ld a, $7f
+ call ByteFill
+ ret
+; 1081e9
+
+MobileTradeAnim_GetFrontpic: ; 1081e9
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef GetFrontpic
+ ret
+; 108201
+
+Function108201: ; 108201
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef FrontpicPredef
+ ret
+; 108219
+
+Function108219: ; 108219
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_TRADE
+ predef AnimateFrontpic
+ ret
+; 108229
+
+Function108229: ; 108229
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_TRADE
+ predef LoadMonAnimation
+ ret
+; 108239
+
+MobileTradeAnim_InitSpeciesName: ; 108239
+ push de
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ret
+; 10824b
+
+MobileTradeAnim_JumptableLoop: ; 10824b
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .StopAnim
+ call .ExecuteMobileTradeAnimCommand
+ call DelayFrame
+ and a
+ ret
+
+.StopAnim:
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ callba MobileFunc_106462
+ callba Function106464
+ scf
+ ret
+; 10827b
+
+.ExecuteMobileTradeAnimCommand: ; 10827b
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 10828a
+
+.Jumptable: ; 10828a
+
+ dw GetMobileTradeAnimByte ; 00
+ dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01
+ dw MobileTradeAnim_02 ; 02
+ dw MobileTradeAnim_GiveTrademon1 ; 03
+ dw MobileTradeAnim_GiveTrademon2 ; 04
+ dw MobileTradeAnim_05 ; 05
+ dw MobileTradeAnim_06 ; 06
+ dw MobileTradeAnim_07 ; 07
+ dw MobileTradeAnim_GetTrademon1 ; 08
+ dw MobileTradeAnim_GetTrademon2 ; 09
+ dw MobileTradeAnim_GetTrademon3 ; 0a
+ dw MobileTradeAnim_ShowOTMonFromTrade ; 0b
+ dw EndMobileTradeAnim ; 0c
+ dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d
+ dw MobileTradeAnim_ShowOTMonFromGTS ; 0e
+ dw MobileTradeAnim_0f ; 0f
+ dw MobileTradeAnim_10 ; 10
+ dw MobileTradeAnim_11 ; 11
+ dw MobileTradeAnim_FadeToBlack ; 12
+ dw MobileTradeAnim_GetOddEgg ; 13 get odd egg
+; 1082b2
+
+MobileTradeAnim_Next: ; 1082b2
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 1082b7
+
+GetMobileTradeAnimByte: ; 1082b7
+ ld hl, wTradeAnimAddress
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ ld [wJumptableIndex], a
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+; 1082c6
+
+EndMobileTradeAnim: ; 1082c6
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 1082cc
+
+WaitMobileTradeSpriteAnims: ; 1082cc
+.loop
+ push bc
+ callba PlaySpriteAnimations
+ pop bc
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 1082db
+
+Function1082db: ; 1082db
+.loop
+ callba PlaySpriteAnimations
+ callba SetUpPokeAnim
+ callba HDMATransferTileMapToWRAMBank3
+ jr nc, .loop
+ ret
+; 1082f0
+
+Function1082f0: ; 1082f0
+.loop
+ call Function108b78
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 1082fa
+
+Function1082fa: ; 1082fa
+.loop
+ call Function108b78
+ push hl
+ push bc
+ callba PlaySpriteAnimations
+ pop bc
+ pop hl
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 10830e
+
+MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ ld a, $80
+ ld [hSCX], a
+ xor a
+ ld [hSCY], a
+ ld a, $87
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call MobileTradeAnim_DisplayMonToBeSent
+ ld a, [wPlayerTrademonSpecies]
+ ld [CurPartySpecies], a
+ call Function10895e
+ ld a, [wPlayerTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wPlayerTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call WaitBGMap
+.loop
+ ld a, [hWX]
+ cp $7
+ jr z, .okay
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ call DelayFrame
+ jr .loop
+
+.okay
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ ld a, [wPlayerTrademonSpecies]
+ call GetCryIndex
+ jr c, .skip_cry
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+
+.skip_cry
+ ld c, 80
+ call DelayFrames
+ call Function108bec
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+ call _InitSpriteAnimStruct
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ hlcoord 0, 0
+ ld bc, 12 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ld c, 80
+ call WaitMobileTradeSpriteAnims
+ call GetMobileTradeAnimByte
+ ret
+; 10839b
+
+MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call MobileTradeAnim_DisplayReceivedMon
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call Function108963
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call Function108c16
+ call GetMobileTradeAnimByte
+ ret
+; 10842c
+
+MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ ld a, $80
+ ld [hSCX], a
+ xor a
+ ld [hSCY], a
+ ld a, $87
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call MobileTradeAnim_DisplayMonToBeSent
+ ld a, [wPlayerTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wPlayerTrademonDVs
+ call Function10898a
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ ld a, [wPlayerTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wPlayerTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call WaitBGMap
+.loop
+ ld a, [hWX]
+ cp $7
+ jr z, .done
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ call DelayFrame
+ jr .loop
+
+.done
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ ld a, [wPlayerTrademonSpecies]
+ call GetCryIndex
+ jr c, .skip_cry
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+
+.skip_cry
+ ld c, 80
+ call DelayFrames
+ call Function108c2b
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+ call _InitSpriteAnimStruct
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ hlcoord 0, 0
+ ld bc, 12 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ld c, 80
+ call WaitMobileTradeSpriteAnims
+ call GetMobileTradeAnimByte
+ ret
+; 1084d7
+
+MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call MobileTradeAnim_DisplayReceivedMon
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ call Function10898a
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call Function108c40
+ call GetMobileTradeAnimByte
+ ret
+; 108589
+
+MobileTradeAnim_GetOddEgg: ; 108589
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call Function108a33
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ call Function10898a
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call GetMobileTradeAnimByte
+ ret
+; 108638
+
+MobileTradeAnim_02: ; 108638
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $c
+ ld [hSCX], a
+ ld a, $78
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 108689
+
+MobileTradeAnim_10: ; 108689
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $c
+ ld [hSCX], a
+ ld a, $78
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 1086f4
+
+MobileTradeAnim_11: ; 1086f4
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $80
+ ld [hSCX], a
+ ld a, $90
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call Function108b5a
+ ld a, $e0
+ ld [hSCX], a
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ call GetMobileTradeAnimByte
+ ret
+; 108763
+
+MobileTradeAnim_GiveTrademon1: ; 108763
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ld c, 40
+ ld hl, BGPals palette 6
+ call Function1082f0
+ call Function108af4
+.loop
+ ld a, [hSCX]
+ cp $e0
+ jr z, .loop2
+ dec a
+ dec a
+ ld [hSCX], a
+ cp $f8
+ jr nz, .next
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+
+.next
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.loop2
+ ld a, [hSCY]
+ cp $f8
+ jr z, .done
+ dec a
+ dec a
+ ld [hSCY], a
+ cp $40
+ jr z, .init
+ cp $30
+ jr z, .delete
+ cp $68
+ jr z, .replace
+ jr .next2
+
+.init
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ xor a
+ call Function108ad4
+ jr .next2
+
+.delete
+ call MobileTradeAnim_DeleteSprites
+ jr .next2
+
+.replace
+ call MobileTradeAnim_DeleteSprites
+ ld a, $1
+ call Function108ad4
+.next2
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop2
+
+.done
+ call MobileTradeAnim_Next
+ ret
+; 1087cf
+
+MobileTradeAnim_GiveTrademon2: ; 1087cf
+ ld c, 40
+ ld hl, BGPals + 1 palettes
+ call Function1082f0
+ call Function108af4
+ call Function108b5a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_25
+ call _InitSpriteAnimStruct
+ ld de, SFX_FORESIGHT
+ call PlaySFX
+ ld c, 10
+ call WaitMobileTradeSpriteAnims
+ xor a
+ ld [wcf64], a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_23
+ call _InitSpriteAnimStruct
+.loop
+ ld a, [hSCY]
+ cp $90
+ jr z, .done
+ sub $8
+ ld [hSCY], a
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.done
+ call GetMobileTradeAnimByte
+ ret
+; 108811
+
+MobileTradeAnim_05: ; 108811
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ ld a, $1
+ ld [wcf64], a
+ ld de, SFX_SHARPEN
+ call PlaySFX
+ ld c, 60
+ call WaitMobileTradeSpriteAnims
+ depixel 30, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_24
+ call _InitSpriteAnimStruct
+ call GetMobileTradeAnimByte
+ ld de, SFX_THROW_BALL
+ call PlaySFX
+ ret
+; 108838
+
+MobileTradeAnim_06: ; 108838
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ ld a, $1
+ ld [wcf64], a
+ ld de, SFX_SHARPEN
+ call PlaySFX
+ call GetMobileTradeAnimByte
+ ret
+; 10884c
+
+MobileTradeAnim_07: ; 10884c
+ ld c, 80
+ call DelayFrames
+ depixel 30, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_24
+ call _InitSpriteAnimStruct
+ call GetMobileTradeAnimByte
+ ld de, SFX_THROW_BALL
+ call PlaySFX
+ ret
+; 108863
+
+MobileTradeAnim_GetTrademon1: ; 108863
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+.loop
+ ld a, [hSCY]
+ cp $f8
+ jr z, .done
+ add $8
+ ld [hSCY], a
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.done
+ callba DeinitializeAllSprites
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_25
+ call _InitSpriteAnimStruct
+ ld de, SFX_GLASS_TING_2
+ call PlaySFX
+ call Function108af4
+ call MobileTradeAnim_Next
+ ret
+; 108894
+
+MobileTradeAnim_GetTrademon2: ; 108894
+ ld c, 20
+ ld hl, BGPals + 1 palettes
+ call Function1082fa
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ld c, 20
+ ld hl, BGPals + 1 palettes
+ call Function1082fa
+ call Function108af4
+.asm_1088ad
+ ld a, [hSCY]
+ cp $78
+ jr z, .asm_1088ee
+ inc a
+ inc a
+ ld [hSCY], a
+ cp $30
+ jr z, .asm_1088c5
+ cp $40
+ jr z, .asm_1088dd
+ cp $68
+ jr z, .asm_1088cf
+ jr .asm_1088e7
+
+.asm_1088c5
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ jr .asm_1088e7
+
+.asm_1088cf
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ xor a
+ call Function108ad4
+ jr .asm_1088e7
+
+.asm_1088dd
+ call MobileTradeAnim_DeleteSprites
+ ld a, $1
+ call Function108ad4
+ jr .asm_1088e7
+
+.asm_1088e7
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .asm_1088ad
+
+.asm_1088ee
+ ld a, [hSCX]
+ cp $c
+ jr z, .asm_108906
+ inc a
+ inc a
+ ld [hSCX], a
+ cp -8
+ jr nz, .asm_1088e7
+ call MobileTradeAnim_DeleteSprites
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .asm_1088ee
+
+.asm_108906
+ call MobileTradeAnim_Next
+ ret
+; 10890a
+
+MobileTradeAnim_GetTrademon3: ; 10890a
+ ld c, 40
+ ld hl, BGPals palette 6
+ call Function1082f0
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 108919
+
+MobileTradeAnim_0f: ; 108919
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call EnableLCD
+ call GetMobileTradeAnimByte
+ ret
+; 10893d
+
+MobileTradeAnim_FadeToBlack: ; 10893d
+.loop
+ ld a, [rBGP]
+ and a
+ jr z, .blank
+ sla a
+ sla a
+ call DmgToCgbBGPals
+ call DmgToCgbObjPal0
+ ld c, 4
+ call DelayFrames
+ jr .loop
+
+.blank
+ xor a
+ call DmgToCgbBGPals
+ call DmgToCgbObjPal0
+ call GetMobileTradeAnimByte
+ ret
+; 10895e
+
+Function10895e: ; 10895e
+ ld de, VTiles0 tile $30
+ jr asm_108966
+
+Function108963:
+ ld de, VTiles2 tile $31
+asm_108966
+ call DelayFrame
+ ld hl, VTiles2
+ lb bc, $a, $31 ; $a is the bank of ?????
+ call Request2bpp
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ hlcoord 7, 2
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call WaitBGMap
+ ret
+; 10898a
+
+Function10898a: ; 10898a
+ ld de, VTiles2
+ call MobileTradeAnim_GetFrontpic
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ hlcoord 7, 2
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call WaitBGMap
+ ret
+; 1089a8
+
+MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
+ ld de, wPlayerTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, MobileTradeAnim_DisplayEggData
+ call MobileTradeAnim_LoadMonTemplate
+ ld de, wPlayerTrademonSpecies
+ call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_MonDisplay_PrintSpeciesName
+ ld a, [wPlayerTrademonCaughtData]
+ ld de, wPlayerTrademonOTName
+ call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+ ld de, wPlayerTrademonID
+ call MobileTradeAnim_MonDisplay_PrintIDNumber
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+
+MobileTradeAnim_DisplayReceivedMon:
+ ld de, wOTTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, MobileTradeAnim_DisplayEggData
+ call MobileTradeAnim_LoadMonTemplate
+ ld de, wOTTrademonSpecies
+ call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_MonDisplay_PrintSpeciesName
+ ld a, [wOTTrademonCaughtData]
+ ld de, wOTTrademonOTName
+ call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+ ld de, wOTTrademonID
+ call MobileTradeAnim_MonDisplay_PrintIDNumber
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+
+MobileTradeAnim_DisplayEggData
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 5, 0
+ ld b, 6
+ ld c, 9
+ call TextBox
+ hlcoord 6, 2
+ ld de, .EggTemplate
+ call PlaceString
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+; 108a1d
+
+.EggTemplate: ; 108a1d
+ db "タマゴ"
+ next "おや/?????"
+ next "<ID>№<DOT>?????"
+ db "@"
+; 108a33
+
+Function108a33: ; 108a33
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 5, 0
+ ld b, 6
+ ld c, 9
+ call TextBox
+ hlcoord 7, 4
+ ld de, .OddEgg
+ call PlaceString
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+; 108a54
+
+.OddEgg: ; 108a54
+ db "なぞのタマゴ@"
+; 108a5b
+
+MobileTradeAnim_LoadMonTemplate: ; 108a5b
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 4, 0
+ ld b, 6
+ ld c, 10
+ call TextBox
+ hlcoord 5, 0
+ ld de, .MonTemplate
+ call PlaceString
+ ret
+; 108a79
+
+.MonTemplate: ; 108a79
+ db "─ №<DOT>"
+ next ""
+ next "おや/"
+ next "<ID>№<DOT>"
+ db "@"
+; 108a87
+
+MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ret
+; 108a92
+
+MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
+ hlcoord 9, 0
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ ret
+; 108a9c
+
+MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
+ hlcoord 5, 2
+ call PlaceString
+ ret
+; 108aa3
+
+MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
+ cp $3
+ jr c, .got_gender
+ xor a
+.got_gender
+ push af
+ hlcoord 8, 4
+ call PlaceString
+ inc bc
+ pop af
+ ld hl, .GenderChars
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [bc], a
+ ret
+; 108abb
+
+.GenderChars: ; 108abb
+ db " "
+ db "♂"
+ db "♀"
+; 108abe
+
+MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
+ hlcoord 8, 6
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+; 108ac8
+
+MobileTradeAnim_ClearTilemap: ; 108ac8
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ ret
+; 108ad4
+
+Function108ad4: ; 108ad4
+ and a
+ jr z, .asm_108adc
+ ld de, GFX_1092c7
+ jr .asm_108adf
+
+.asm_108adc
+ ld de, GFX_1091c7
+.asm_108adf
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles2 tile $4a
+ lb bc, BANK(GFX_1092c7), 16
+ call Get2bpp_2
+ call DelayFrame
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 108af4
+
+Function108af4: ; 108af4
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [wcf65]
+ and $1
+ jr z, .copy_palette_109147
+ ld hl, Palette_109187
+ ld de, UnknOBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ ld hl, Palette_109187
+ ld de, OBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ jr .done_copy
+
+.copy_palette_109147
+ ld hl, Palette_109147
+ ld de, UnknOBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ ld hl, Palette_109147
+ ld de, OBPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+.done_copy
+ pop af
+ ld [rSVBK], a
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbObjPal0
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call DelayFrame
+ ret
+; 108b45
+
+Function108b45: ; 108b45
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+ ld hl, UnknBGPals
+ ld a, e
+ ld [hli], a
+ ld d, a
+ ld [hli], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 108b5a
+
+Function108b5a: ; 108b5a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
+ ld hl, BGPals + 4 palettes
+ ld c, $10
+.loop
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 108b78
+
+Function108b78: ; 108b78
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, c
+ and $2
+ jr z, .Orange
+ ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+ jr .load_pal
+
+.Orange:
+ ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
+.load_pal
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hld], a
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 108b98
+
+Palette_108b98:
+; removed
+
+Function108b98: ; 108b98
+ ld d, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [wcf65]
+ and $1
+ xor d
+ jr z, .asm_108bad
+ ld hl, Palette_108b98 + 1 palettes
+ jr .asm_108bb0
+
+.asm_108bad
+ ld hl, Palette_108b98
+.asm_108bb0
+ ld de, UnknBGPals + 7 palettes
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 108bbd
+
+MobileTradeAnim_DeleteSprites: ; 108bbd
+ callba DeinitializeAllSprites
+ call ClearSprites
+ ret
+; 108bc7
+
+Function108bc7: ; 108bc7 (42:4bc7)
+ ld a, [wcf64]
+ and a
+ ret z
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp -1 * 8 - 6
+ jr z, .delete
+ sub 1 * 8
+ ld [hl], a
+ ret
+
+.delete
+ callba DeinitializeSprite
+ ret
+
+Function108be0: ; 108be0 (42:4be0)
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp 9 * 8 + 2
+ ret z
+ add 1 * 8
+ ld [hl], a
+ ret
+; 108bec (42:4bec)
+
+Function108bec: ; 108bec
+ ld a, $90
+ ld [hWY], a
+ ld hl, .PlayerWillTradeMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ld hl, .ForPartnersMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c07
+
+.PlayerWillTradeMon: ; 0x108c07
+ text_jump UnknownText_0x1bc787
+ db "@"
+; 0x108c0c
+
+.ForPartnersMon: ; 0x108c0c
+ text_jump UnknownText_0x1bc79d
+ db "@"
+; 0x108c11
+
+.UnusedTextPlayersMonTrade: ; 0x108c11
+ text_jump UnknownText_0x1bc7b0
+ db "@"
+; 0x108c16
+
+Function108c16: ; 108c16
+ ld a, $90
+ ld [hWY], a
+ ld hl, .TakeGoodCareOfMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c26
+
+.TakeGoodCareOfMon: ; 0x108c26
+ text_jump UnknownText_0x1bc7c3
+ db "@"
+; 0x108c2b
+
+Function108c2b: ; 108c2b
+ ld a, $90
+ ld [hWY], a
+ ld hl, .PlayersMonTrade
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c3b
+
+.PlayersMonTrade: ; 0x108c3b
+ text_jump UnknownText_0x1bc7dd
+ db "@"
+; 0x108c40
+
+Function108c40: ; 108c40
+ ld a, $90
+ ld [hWY], a
+ ld a, [wcf65]
+ and %10000000
+ jr z, .Getmon
+ ld hl, .CameBack
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+
+.Getmon:
+ ld hl, .TakeGoodCareOf
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c63
+
+.TakeGoodCareOf: ; 0x108c63
+ text_jump UnknownText_0x1bc7f0
+ db "@"
+; 0x108c68
+
+.CameBack: ; 0x108c68
+ text_jump UnknownText_0x1bc80a
+ db "@"
+; 0x108c6d
+
+Function108c6d: ; 108c6d
+ ld hl, LZ_108fe7
+ debgcoord 0, 0
+ call Decompress
+ ld hl, LZ_108fe7
+ debgcoord 0, 0, VBGMap1
+ call Decompress
+ ret
+; 108c80
+
+Function108c80: ; 108c80
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_1090a7
+ debgcoord 0, 0
+ call Decompress
+ ld hl, LZ_1090a7
+ debgcoord 0, 0, VBGMap1
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 108c9b
+
+DebugMobileTrade: ; 108c9b
+; localization error: NAME_LENGTH (11) should be NAME_LENGTH_JAPANESE (6) here
+
+ ld hl, .DebugTradeData
+ ld a, [hli]
+ ld [wPlayerTrademonSpecies], a
+
+ ld de, wPlayerTrademonSenderName
+ ld c, NAME_LENGTH
+.your_name_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .your_name_loop
+
+ ld de, wPlayerTrademonID
+ ld c, 2
+.your_id_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .your_id_loop
+
+ ld de, wPlayerTrademonOTName
+ ld c, NAME_LENGTH
+.your_ot_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .your_ot_loop
+
+ ld a, [hli]
+ ld [wOTTrademonSpecies], a
+
+ ld de, wOTTrademonSenderName
+ ld c, NAME_LENGTH
+.their_name_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .their_name_loop
+
+ ld de, wOTTrademonID
+ ld c, 2
+.their_id_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .their_id_loop
+
+ ld de, wOTTrademonOTName
+ ld c, NAME_LENGTH
+.their_ot_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .their_ot_loop
+
+ ret
+; 108ce9
+
+.DebugTradeData:
+ db VENUSAUR
+ db "ゲーフり@@"
+ dw $0123
+ db "かびーん@@"
+ db CHARIZARD
+ db "クりーチャ@"
+ dw $0456
+ db "マツミヤ@@"
+; 108d07
+
+Function108d07: ; 108d07
+ ld a, [wc74e]
+ and $7f
+ cp $8
+ jr c, .asm_108d12
+ ld a, $7
+
+.asm_108d12
+ ld bc, 1 palettes
+ ld hl, Palette_1093c7
+ call AddNTimes
+ ld a, $5
+ ld de, UnknBGPals + 4 palettes
+ ld bc, 1 palettes
+ call FarCopyWRAM
+ ret
+; 108d27
+
+LZ_108d27:
+INCBIN "gfx/unknown/108d27.2bpp.lz"
+
+LZ_108da7:
+INCBIN "gfx/unknown/108da7.2bpp.lz"
+
+LZ_108fe7:
+INCBIN "gfx/unknown/108fe7.tilemap.lz"
+
+LZ_1090a7:
+INCBIN "gfx/unknown/1090a7.tilemap.lz"
+
+Palette_1090f7:
+; unreferenced
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+
+ RGB 31, 0, 25
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+
+ RGB 9, 19, 31
+ RGB 0, 0, 0
+
+Palette_109107:
+ RGB 18, 31, 15
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 15, 1
+ RGB 14, 14, 31
+ RGB 12, 9, 31
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 14, 14, 31
+ RGB 12, 9, 31
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 31, 7, 9
+ RGB 18, 0, 1
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 15, 1
+ RGB 18, 0, 30
+ RGB 9, 0, 17
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 18, 0, 30
+ RGB 9, 0, 17
+ RGB 0, 0, 0
+
+Palette_109147:
+ RGB 31, 31, 31
+ RGB 31, 31, 12
+ RGB 31, 13, 12
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 23, 15
+ RGB 31, 18, 7
+ RGB 31, 15, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 0, 25
+ RGB 31, 0, 25
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 9, 19, 31
+ RGB 9, 19, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+Palette_109187:
+ RGB 31, 31, 31
+ RGB 31, 31, 12
+ RGB 31, 13, 12
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 23, 15
+ RGB 31, 18, 7
+ RGB 31, 15, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 9, 19, 31
+ RGB 9, 19, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 0, 25
+ RGB 31, 0, 25
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+GFX_1091c7:
+INCBIN "gfx/unknown/1091c7.2bpp"
+GFX_1092c7:
+INCBIN "gfx/unknown/1092c7.2bpp"
+
+Palette_1093c7:
+ RGB 18, 31, 15
+ RGB 4, 13, 31
+ RGB 0, 0, 31
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 31, 31, 0
+ RGB 31, 15, 0
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 9, 24, 0
+ RGB 2, 16, 0
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 31, 7, 9
+ RGB 18, 0, 1
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 28, 5, 31
+ RGB 17, 0, 17
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 9, 9, 9
+ RGB 4, 4, 4
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 31, 13, 21
+ RGB 27, 7, 12
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 21, 20, 20
+ RGB 14, 14, 31
+ RGB 0, 0, 0
--- /dev/null
+++ b/mobile/mobile_45.asm
@@ -1,0 +1,7690 @@
+
+SECTION "bank45", ROMX
+
+ charmap " ", $20 ; revert to ascii
+
+String_114000:
+ db "---", 0
+String_114004:
+ db "CGB-AAAA-00", 0, 0
+
+Unknown_114011: ; 114011
+ dw String_114033
+ dw String_11403a
+ dw String_114043
+ dw String_11404e
+ dw String_114053
+ dw String_114058
+ dw String_114062
+ dw String_114074
+ dw String_11408d
+ dw String_11409f
+ dw String_1140b8
+ dw String_1140e6
+ dw String_114110
+ dw String_11413f
+ dw String_114160
+ dw String_114160
+ dw String_114163
+
+String_114033: ; 114033
+ db "From: ", 0
+String_11403a: ; 11403a
+ db "Sender: ", 0
+String_114043: ; 114043
+ db "Reply-To: ", 0
+String_11404e: ; 11404e
+ db "To: ", 0
+String_114053: ; 114053
+ db "Cc: ", 0
+String_114058: ; 114058
+ db "Subject: ", 0
+String_114062: ; 114062
+ db "MIME-Version: 1.0", 0
+String_114074: ; 114074
+ db "X-Game-title: XXXXXXXXXX", 0
+String_11408d: ; 11408d
+ db "X-Game-code: CGB-", 0
+String_11409f: ; 11409f
+ db "X-GBmail-type: exclusive", 0
+String_1140b8: ; 1140b8
+ db "Content-Type: text/plain; charset=iso-2022-jp", 0
+String_1140e6: ; 1140e6
+ db "Content-Type: multipart/mixed; boundary=\"", 0
+String_114110: ; 114110
+ db "Content-Type: Application/Octet-Stream; name=\"", 0
+String_11413f: ; 11413f
+ db "Content-Transfer-Encoding:Base64", 0
+String_114160: ; 114160
+ db "--", 0
+String_114163: ; 114163
+ db ".", 0
+; 114165
+
+Jumptable_114165: ; 114165
+ dw Function114268
+ dw Function114269
+ dw Function11433c
+ dw Function1143b7
+ dw Function1144d1
+ dw Function114b55
+ dw Function114bbc
+ dw Function114cd9
+ dw Function114e62
+ dw Function1152b8
+ dw Function1154d4
+ dw Function1156cc
+ dw Function1159fb
+; 11417f
+
+Unknown_11417f: ; 11417f
+ dw .From
+ dw .Sender
+ dw .ReplyTo
+ dw .To
+ dw .CC
+ dw .Subject
+ dw .Date
+ dw .ContentType
+ dw .MimeVersion
+ dw .XMailer
+ dw .XGameTitle
+ dw .XGameCode
+ dw .XGBMailType
+
+.From: ; 114199
+ db "FROM:", 0
+.Sender: ; 11419f
+ db "SENDER:", 0
+.ReplyTo: ; 1141a7
+ db "REPLY-TO:", 0
+.To: ; 1141b1
+ db "TO:", 0
+.CC: ; 1141b5
+ db "CC:", 0
+.Subject: ; 1141b9
+ db "SUBJECT:", 0
+.Date: ; 1141c2
+ db "DATE:", 0
+.ContentType: ; 1141c8
+ db "CONTENT-TYPE:", 0
+.MimeVersion: ; 1141d6
+ db "MIME-VERSION:", 0
+.XMailer: ; 1141e4
+ db "X-MAILER:", 0
+.XGameTitle: ; 1141ee
+ db "X-GAME-TITLE:", 0
+.XGameCode: ; 1141fc
+ db "X-GAME-CODE:", 0
+.XGBMailType: ; 114209
+ db "X-GBMAIL-TYPE:", 0
+; 114218
+
+String_114218: ; 114218
+ db "NAME=", 0
+String_11421e: ; 11421e
+ db "MULTIPART", 0
+String_114228: ; 114228
+ db "BOUNDARY=", 0
+String_114232: ; 114232
+ db "=?ISO-2022-JP?B?", 0
+; 114243
+
+Function114243:: ; 114243
+ ld a, SRAM_ENABLE
+ ld [MBC3SRamEnable], a
+ ld a, [hFF8C]
+ push af ; if [$dc02] == 0, this is popped to pc.
+ push de
+ ld a, [$dc02]
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_114165
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ jp hl
+
+; 11425c
+
+Function11425c: ; 11425c
+ ld [$dc02], a
+ pop af
+ ld [hFF8C], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ret
+
+; 114268
+
+Function114268: mobile
+
+; 114269
+
+Function114269: ; 114269
+ ld h, d
+ ld l, e
+ xor a
+ ld [$dc02], a
+ ld [$dc03], a
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+.asm_114282
+ ld a, [de]
+ and a
+ jr z, .asm_1142a4
+ ld h, a
+ ld a, [$dc03]
+ and a
+ jr nz, .asm_114292
+ ld a, h
+ cp $80
+ jr nc, .asm_1142ae
+
+.asm_114292
+ ld a, h
+ cp $d
+ jr z, .asm_1142bb
+ xor a
+ ld [$dc02], a
+.asm_11429b
+ inc e
+ call z, Function114333
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_114282
+
+.asm_1142a4
+ ld a, [$dc03]
+ and a
+ jr nz, .asm_114303
+ ld b, $80
+ jr .asm_1142b0
+
+.asm_1142ae
+ ld b, $81
+
+.asm_1142b0
+ ld a, [$dc00]
+ ld c, a
+ ld a, $1
+ ld h, d
+ ld l, e
+ jp Function11425c
+
+.asm_1142bb
+ and a
+ jr z, .asm_1142a4
+ inc e
+ call z, Function114333
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1142a4
+ ld a, [de]
+ ld h, a
+ ld a, [$dc03]
+ and a
+ jr nz, .asm_1142d4
+ ld a, h
+ cp $80
+ jr nc, .asm_1142ae
+
+.asm_1142d4
+ ld a, h
+ cp $a
+ jr nz, .asm_1142ae
+ ld a, [$dc03]
+ and a
+ jr nz, .asm_11430d
+ ld a, [$dc02]
+ and a
+ jr nz, .asm_114309
+ ld a, $1
+ ld [$dc02], a
+ inc e
+ call z, Function114333
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1142a4
+ ld a, [de]
+ cp $20
+ jr z, .asm_11429b
+ cp $9
+ jr z, .asm_11429b
+ jr .asm_114282
+
+.asm_1142fe
+ xor a
+ ld b, a
+ jp Function11425c
+
+.asm_114303
+ xor a
+ ld b, $1
+ jp Function11425c
+
+.asm_114309
+ xor a
+ ld [$dc02], a
+
+.asm_11430d
+ ld a, [$dc02]
+ and a
+ jr nz, .asm_1142fe
+ ld a, $1
+ ld [$dc03], a
+ inc e
+ call z, Function114333
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1142a4
+ ld a, [de]
+ and a
+ jp z, .asm_1142a4
+ cp $2e
+ jp nz, .asm_114282
+ ld a, $1
+ ld [$dc02], a
+ jp .asm_11429b
+
+; 114333
+
+Function114333: ; 114333
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 11433c
+
+Function11433c: ; 11433c
+ push de
+ ld h, d
+ ld l, e
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $b
+ call Function1143f3
+ cp $2
+ jr z, .asm_114358
+ and a
+ jr z, .asm_114360
+ pop hl
+.asm_114351
+ xor a
+ ld b, $3
+ jp Function11425c
+
+.asm_114357
+ pop hl
+
+.asm_114358
+ pop hl
+ ld a, $1
+ ld b, $82
+ jp Function11425c
+
+.asm_114360
+ ld a, h
+ ld [$dc03], a
+ pop hl
+ push bc
+ push de
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld b, $c
+ call Function1143f3
+ cp $2
+ jr z, .asm_114357
+ and a
+ jr z, .asm_114381
+ xor a
+ ld b, $2
+ pop hl
+ pop hl
+ jp Function11425c
+
+.asm_114381
+ pop de
+ pop bc
+ ld a, [$dc03]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ call Function114c0b
+ ld hl, String_114004
+.asm_114394
+ ld de, $dc24
+.asm_114397
+ ld a, [hli]
+ and a
+ jr z, .asm_1143ad
+ ld b, a
+ ld a, [de]
+ inc de
+ cp b
+ jr z, .asm_114397
+.asm_1143a1
+ ld a, [hli]
+ and a
+ jr nz, .asm_1143a1
+ ld a, [hl]
+ and a
+ jr nz, .asm_114394
+ ld b, a
+ jp Function11425c
+
+.asm_1143ad
+ ld a, [de]
+ and a
+ jr nz, .asm_114351
+ xor a
+ ld b, $1
+ jp Function11425c
+
+; 1143b7
+
+Function1143b7: ; 1143b7
+ ld a, [de]
+ ld b, a
+ inc de
+ ld a, [de]
+ ld c, a
+ inc de
+ ld a, [de]
+ ld h, a
+ inc de
+ ld a, [de]
+ inc de
+ push de
+ ld d, a
+ ld e, h
+ call Function1143f3
+ cp $2
+ jr z, .asm_1143eb
+ and a
+ jr nz, .asm_1143ed
+ ld a, h
+ pop hl
+ push af
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ jp Function11425c
+
+.asm_1143eb
+ ld b, $82
+
+.asm_1143ed
+ ld a, $1
+ pop hl
+ jp Function11425c
+
+; 1143f3
+
+Function1143f3: ; 1143f3
+ call Function114412
+ and a
+ jr nz, .asm_11440d
+ ld a, $4
+ cp b
+ jr c, .asm_114407
+ jr z, .asm_114402
+.asm_114400
+ xor a
+ ret
+
+.asm_114402
+ ld a, $0
+ cp c
+ jr nc, .asm_114400
+
+.asm_114407
+ lb bc, $4, $0
+ ld a, $2
+ ret
+
+.asm_11440d
+ ld a, $1
+ ld b, $84
+ ret
+
+; 114412
+
+Function114412: ; 114412
+ ld a, c
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, Unknown_11417f
+ ld a, b
+ add a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld c, $0
+ jr .asm_11444a
+
+.asm_11442b
+ ld a, [de]
+ and a
+ jp z, .asm_1144c2
+ inc e
+ call z, Function1144c8
+ cp $d ; CR
+ jr nz, .asm_11442b
+ ld a, [de]
+ inc e
+ call z, Function1144c8
+ cp $a ; NL
+ jr nz, .asm_11442b
+ ld a, [de]
+ cp $2e ; .
+ jr z, .asm_1144ae
+ cp $d ; CR
+ jr z, .asm_1144b8
+
+.asm_11444a
+ ld a, [$dc00]
+ ld [$dc02], a
+ ld a, [de]
+ and a
+ jr z, .asm_1144c2
+ inc e
+ call z, Function1144c8
+ cp $61 ; "a"
+ jr c, .asm_114462
+ cp $7b ; "z" + 1
+ jr nc, .asm_114462
+ sub $20
+
+.asm_114462
+ ld b, a
+ ld a, [hl]
+ and a
+ jr z, .asm_114476
+ cp b
+ jr nz, .asm_11446e
+ inc c
+ inc hl
+ jr .asm_11444a
+
+.asm_11446e
+ ld a, c
+ and a
+ jr z, .asm_11442b
+ dec c
+ dec hl
+ jr .asm_11446e
+
+.asm_114476
+ ld a, $20 ; " "
+ cp b
+ jr z, .asm_114481
+ ld a, $a ; NL
+ cp b
+ jr z, .asm_114481
+ dec de
+
+.asm_114481
+ ld h, d
+ ld l, e
+ ld bc, NULL
+.asm_114486
+ ld a, [de]
+ and a
+ jr z, .asm_1144c2
+ inc bc
+ inc e
+ call z, Function1144c8
+ cp $d ; CR
+ jr nz, .asm_114486
+ ld a, [de]
+ inc bc
+ inc e
+ call z, Function1144c8
+ cp $a ; NL
+ jr nz, .asm_114486
+ ld a, [de]
+ cp $20 ; " "
+ jr z, .asm_114486
+ cp $9 ; TAB
+ jr z, .asm_114486
+ ld d, h
+ ld e, l
+ ld a, [$dc02]
+ ld h, a
+ xor a
+ ret
+
+.asm_1144ae
+ inc e
+ call z, Function1144c8
+ ld a, [de]
+ cp $d ; CR
+ jp nz, .asm_11442b
+
+.asm_1144b8
+ inc e
+ call z, Function1144c8
+ ld a, [de]
+ cp $a ; NL
+ jp nz, .asm_11442b
+
+.asm_1144c2
+ ld a, $0
+ ld [hl], a
+ ld a, $1
+ ret
+
+; 1144c8
+
+Function1144c8: ; 1144c8
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 1144d1
+
+Function1144d1: ; 1144d1
+ call Function114561
+ dec de
+ dec de
+ push de
+ inc de
+ inc de
+ inc de
+ inc hl
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc hl
+ ld a, [de]
+ ld [hld], a
+ dec de
+ ld a, [de]
+ ld [hl], a
+ xor a
+ ld [BigDoll], a
+ ld [$dc17], a
+ ld a, $2
+ ld [$dc0e], a
+ ld hl, $dc03
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function114576
+ cp $2
+ jr z, .asm_11455b
+ and a
+ jr z, .asm_114511
+ ld a, $1
+ ld [$dc0d], a
+ call Function1146fa
+ and a
+ jr nz, .asm_11455b
+ jr .asm_11451c
+
+.asm_114511
+ call Function1146a4
+ and a
+ jr nz, .asm_11455b
+ ld a, $2
+ ld [$dc0d], a
+
+.asm_11451c
+ pop hl
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [$dc0d]
+ ld [de], a
+ ld b, $0
+ ld a, [BigDoll]
+ and a
+ jr z, .asm_114537
+ ld b, $1
+
+.asm_114537
+ ld hl, $dc06
+ ld a, [hl]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, $dc09
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ dec de
+ ld a, d
+ or e
+ jr z, .asm_114559
+ ld hl, wCurrMapTriggerCount
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ xor a
+ ld [de], a
+ jp Function11425c
+
+.asm_114559
+ ld b, $83
+
+.asm_11455b
+ pop hl
+ ld a, $1
+ jp Function11425c
+
+; 114561
+
+Function114561: ; 114561
+ ld hl, $dc03
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ ret
+
+; 114576
+
+Function114576: ; 114576
+ xor a
+ ld [Bed], a
+ ld b, $7
+ call Function1143f3
+ cp $2
+ jr z, .asm_1145b6
+ and a
+ jr nz, .asm_1145b4
+ ld a, h
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ push hl
+ push de
+ push bc
+ ld hl, $dc24
+ call Function115d53
+ call Function1145c5
+ pop bc
+ pop de
+ pop hl
+ and a
+ jr z, .asm_1145bf
+ ld a, b
+ and a
+ jr nz, .asm_1145ba
+ ld a, h
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, String_114218
+ call Function114acf
+
+.asm_1145b4
+ xor a
+ ret
+
+.asm_1145b6
+ ld b, $82
+ jr .asm_1145bc
+
+.asm_1145ba
+ ld b, $81
+
+.asm_1145bc
+ ld a, $2
+ ret
+
+.asm_1145bf
+ ld a, $1
+ ld [Bed], a
+ ret
+
+; 1145c5
+
+Function1145c5: ; 1145c5
+ ld hl, $dc24
+ ld de, String_11421e
+ ld c, $0
+.asm_1145cd
+ ld a, [hli]
+ and a
+ jr z, .asm_1145ef
+ cp $20
+ jr z, .asm_1145cd
+ cp $d
+ jr z, .asm_1145f8
+ cp $61
+ jr c, .asm_1145e3
+ cp $7b
+ jr nc, .asm_1145e3
+ sub $20
+
+.asm_1145e3
+ ld b, a
+ ld a, [de]
+ and a
+ jr z, .asm_11460e
+ inc de
+ cp b
+ jr z, .asm_1145cd
+ dec de
+ jr .asm_1145cd
+
+.asm_1145ef
+ ld b, $0
+ jr .asm_1145f5
+
+.asm_1145f3
+ ld b, $81
+
+.asm_1145f5
+ ld a, $1
+ ret
+
+.asm_1145f8
+ ld a, [hli]
+ and a
+ jr z, .asm_1145f3
+ cp $a
+ jr nz, .asm_1145f3
+ ld a, [hli]
+ and a
+ jr z, .asm_1145f3
+ cp $20
+ jr z, .asm_1145cd
+ cp $9
+ jr z, .asm_1145cd
+ jr .asm_1145f3
+
+.asm_11460e
+ ld a, c
+ and a
+ jr nz, .asm_114619
+ ld c, $1
+ ld de, String_114228
+ jr .asm_1145cd
+
+.asm_114619
+ dec hl
+ ld a, [hl]
+ cp $22
+ jr nz, .asm_114620
+ inc hl
+
+.asm_114620
+ ld de, $ddc8
+ ld b, $0
+ ld c, $40
+.asm_114627
+ ld a, [hli]
+ cp $22
+ jr z, .asm_114636
+ cp $d
+ jr z, .asm_114636
+ ld [de], a
+ inc de
+ inc b
+ dec c
+ jr nz, .asm_114627
+
+.asm_114636
+ ld a, b
+ ld [PartyMon5Defense], a
+ xor a
+ ret
+
+; 11463c
+
+Function11463c: ; 11463c
+ ld a, [$dc00]
+ push af
+ push de
+ ld hl, $ddc8
+ ld a, [PartyMon5Defense]
+ ld b, a
+.asm_114648
+ ld a, [de]
+ ld c, a
+ ld a, [hli]
+ cp c
+ jr nz, .asm_11468a
+ inc e
+ call z, Function11469b
+ dec b
+ jr nz, .asm_114648
+ ld a, [de]
+ cp $2d
+ jr z, .asm_114673
+ cp $d
+ jr nz, .asm_11468a
+ xor a
+ ld [Carpet], a
+.asm_114662
+ inc e
+ call z, Function11469b
+ ld a, [de]
+ cp $a
+ jr nz, .asm_11468a
+ inc e
+ call z, Function11469b
+ xor a
+ pop hl
+ pop hl
+ ret
+
+.asm_114673
+ inc e
+ call z, Function11469b
+ ld a, [de]
+ cp $2d
+ jr nz, .asm_11468a
+ inc e
+ call z, Function11469b
+ ld a, $1
+ ld [Carpet], a
+ ld a, [de]
+ cp $d
+ jr z, .asm_114662
+
+.asm_11468a
+ pop de
+ pop af
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ xor a
+ ld [Carpet], a
+ ld a, $1
+ ret
+
+; 11469b
+
+Function11469b: ; 11469b
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 1146a4
+
+Function1146a4: ; 1146a4
+ call Function114867
+ and a
+ jr nz, .asm_1146e4
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function114a18
+ and a
+ jr nz, .asm_1146e8
+ call Function1148c2
+ and a
+ jr nz, .asm_1146e4
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function114a7a
+ and a
+ jr nz, .asm_1146e8
+.asm_1146da
+ dec bc
+ dec bc
+ call Function1149cc
+ and a
+ jr nz, .asm_1146e4
+ xor a
+ ret
+
+.asm_1146e4
+ ld b, $83
+ jr .asm_1146f7
+
+.asm_1146e8
+ ld a, [$dc17]
+ and a
+ jr z, .asm_1146f5
+ ld a, $1
+ ld [BigDoll], a
+ jr .asm_1146da
+
+.asm_1146f5
+ ld b, $81
+
+.asm_1146f7
+ ld a, $1
+ ret
+
+; 1146fa
+
+Function1146fa: ; 1146fa
+ call Function114867
+ and a
+ jp nz, .asm_11478a
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function114a18
+ and a
+ jp nz, .asm_11478e
+ call Function1149cc
+ and a
+ jp nz, .asm_11478a
+ ld a, $1
+ ld [$dc0e], a
+ ld a, [$dc00]
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, $1
+ ld [RightOrnament], a
+ call Function1147cd
+ and a
+ jp nz, .asm_1147b7
+.asm_114737
+ call Function114843
+ cp $1
+ jr nz, .asm_114749
+ ld a, [$dc17]
+ and a
+ jr z, .asm_114794
+ ld a, $1
+ ld [BigDoll], a
+
+.asm_114749
+ call Function11494d
+ and a
+ jr nz, .asm_11478a
+ ld a, [BigDoll]
+ and a
+ jr nz, .asm_114786
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function1147cd
+ and a
+ jr nz, .asm_1147b7
+ ld a, [$dc0e]
+ cp $3
+ jr nz, .asm_114773
+ dec bc
+ dec bc
+
+.asm_114773
+ call Function1149cc
+ and a
+ jr nz, .asm_11478a
+ ld a, [$dc0d]
+ inc a
+ ld [$dc0d], a
+ ld a, [BigDoll]
+ and a
+ jr z, .asm_114799
+
+.asm_114786
+ ld b, $1
+ jr .asm_1147cb
+
+.asm_11478a
+ ld b, $83
+ jr .asm_114796
+
+.asm_11478e
+ ld a, [$dc17]
+ and a
+ jr nz, .asm_114796
+
+.asm_114794
+ ld b, $81
+
+.asm_114796
+ ld a, $1
+ ret
+
+.asm_114799
+ ld a, [Carpet]
+ and a
+ jr z, .asm_114737
+ jr .asm_1147cb
+
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ call Function114a7a
+ and a
+ jr z, .asm_1147cb
+ xor a
+ ld [BigDoll], a
+
+.asm_1147b7
+ ld a, [$dc17]
+ and a
+ jr z, .asm_114794
+ ld a, $1
+ ld [BigDoll], a
+ ld a, [$dc0d]
+ cp $1
+ jr nz, .asm_114773
+ ld b, $1
+
+.asm_1147cb
+ xor a
+ ret
+
+; 1147cd
+
+Function1147cd: ; 1147cd
+ ld bc, NULL
+ ld a, [RightOrnament]
+ and a
+ jr nz, .asm_11480c
+.asm_1147d6
+ ld a, [de]
+ and a
+ jr z, .asm_11482f
+ inc e
+ call z, Function11483a
+ inc bc
+ cp $d
+ jr nz, .asm_1147d6
+ ld a, [de]
+ cp $a
+ jr nz, .asm_11482f
+.asm_1147e8
+ inc bc
+ inc e
+ call z, Function11483a
+ ld a, [de]
+ cp $20
+ jr z, .asm_114827
+ cp $9
+ jr z, .asm_114827
+ cp $d
+ jr nz, .asm_11482b
+ inc e
+ call z, Function11483a
+ ld a, [de]
+ cp $a
+ jr nz, .asm_11482f
+ inc e
+ call z, Function11483a
+ ld a, h
+ and a
+ jr z, .asm_11480c
+ dec bc
+
+.asm_11480c
+ ld a, [de]
+ cp $2d
+ jr nz, .asm_1147d6
+ inc e
+ call z, Function11483a
+ ld a, [de]
+ cp $2d
+ jr nz, .asm_1147d6
+ inc e
+ call z, Function11483a
+ push bc
+ call Function11463c
+ pop bc
+ and a
+ jr nz, .asm_1147d6
+ ret
+
+.asm_114827
+ ld h, $1
+ jr .asm_1147e8
+
+.asm_11482b
+ ld h, $0
+ jr .asm_11480c
+
+.asm_11482f
+ and a
+ jr nz, .asm_114837
+ ld a, $1
+ ld [$dc17], a
+
+.asm_114837
+ ld a, $1
+ ret
+
+; 11483a
+
+Function11483a: ; 11483a
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114843
+
+Function114843: ; 114843
+ ld a, [$dc00]
+ push af
+ push de
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ call Function114a18
+ and a
+ jr nz, .asm_11485f
+ pop de
+ pop af
+ ld [$dc00], a
+ ld hl, String_114218
+ call Function114acf
+ ret
+
+.asm_11485f
+ pop de
+ pop af
+ ld [$dc00], a
+ ld a, $1
+ ret
+
+; 114867
+
+Function114867: ; 114867
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, $2
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld a, $1
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld hl, $dc03
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld d, $5
+.asm_1148a9
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1148b6
+ dec d
+ jr nz, .asm_1148a9
+ ld [hl], b
+ dec hl
+ ld [hl], c
+ xor a
+ ret
+
+.asm_1148b6
+ ld a, $1
+ ret
+
+; 1148b9
+
+Function1148b9: ; 1148b9
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 1148c2
+
+Function1148c2: ; 1148c2
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, c
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, b
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [$dc0e]
+ ld [de], a
+ inc e
+ call z, Function114944
+ cp $3
+ jr nz, .asm_114904
+ ld hl, Plant
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+
+.asm_114904
+ ld hl, $dc03
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, [$dc0e]
+ cp $3
+ jr z, .asm_114932
+ ld d, $6
+ jr .asm_114934
+
+.asm_114932
+ ld d, $a
+
+.asm_114934
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114941
+ dec d
+ jr nz, .asm_114934
+ ld [hl], b
+ dec hl
+ ld [hl], c
+ xor a
+ ret
+
+.asm_114941
+ ld a, $1
+ ret
+
+; 114944
+
+Function114944: ; 114944
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 11494d
+
+Function11494d: ; 11494d
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [$dc0e]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ cp $3
+ jr nz, .asm_114983
+ ld hl, Plant
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+
+.asm_114983
+ ld hl, $dc03
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, [$dc0e]
+ cp $3
+ jr z, .asm_1149b1
+ ld d, $4
+ jr .asm_1149b3
+
+.asm_1149b1
+ ld d, $8
+
+.asm_1149b3
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1149c0
+ dec d
+ jr nz, .asm_1149b3
+ ld [hl], b
+ dec hl
+ ld [hl], c
+ xor a
+ ret
+
+.asm_1149c0
+ ld a, $1
+ ret
+
+; 1149c3
+
+Function1149c3: ; 1149c3
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 1149cc
+
+Function1149cc: ; 1149cc
+ ld hl, $dc06
+ ld a, [hl]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ push de
+ ld hl, $dc09
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ dec de
+ ld a, d
+ or e
+ jr z, .asm_114a0b
+ dec de
+ ld a, d
+ or e
+ jr z, .asm_114a0b
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ld hl, wCurrMapTriggerCount
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, c
+ ld [de], a
+ inc e
+ call z, Function114a0f
+ ld a, b
+ ld [de], a
+ inc e
+ call z, Function114a0f
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ pop de
+ xor a
+ ret
+
+.asm_114a0b
+ pop de
+ ld a, $1
+ ret
+
+; 114a0f
+
+Function114a0f: ; 114a0f
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 114a18
+
+Function114a18: ; 114a18
+ ld bc, NULL
+ ld h, b
+.asm_114a1c
+ inc bc
+ ld a, [de]
+ and a
+ jr z, .asm_114a66
+ inc e
+ call z, Function114a71
+ cp $d
+ jr nz, .asm_114a1c
+ ld a, [de]
+ cp $a
+ jr nz, .asm_114a66
+.asm_114a2e
+ inc bc
+ inc e
+ call z, Function114a71
+ ld a, [de]
+ cp $20
+ jr z, .asm_114a5e
+ cp $9
+ jr z, .asm_114a5e
+ cp $d
+ jr nz, .asm_114a62
+ inc e
+ call z, Function114a71
+ ld a, [de]
+ cp $a
+ jr nz, .asm_114a66
+ inc e
+ call z, Function114a71
+ ld a, h
+ and a
+ jr z, .asm_114a52
+ dec bc
+
+.asm_114a52
+ ld hl, $dc03
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ xor a
+ ret
+
+.asm_114a5e
+ ld h, $1
+ jr .asm_114a2e
+
+.asm_114a62
+ ld h, $0
+ jr .asm_114a1c
+
+.asm_114a66
+ and a
+ jr nz, .asm_114a6e
+ ld a, $1
+ ld [$dc17], a
+
+.asm_114a6e
+ ld a, $1
+ ret
+
+; 114a71
+
+Function114a71: ; 114a71
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114a7a
+
+Function114a7a: ; 114a7a
+ ld bc, NULL
+.asm_114a7d
+ inc bc
+ ld a, [de]
+ and a
+ jr z, .asm_114abb
+ inc e
+ call z, Function114ac6
+ cp $d
+ jr nz, .asm_114a7d
+ ld a, [de]
+ cp $a
+ jr nz, .asm_114abb
+ inc e
+ call z, Function114ac6
+ inc bc
+ ld a, [de]
+ cp $2e
+ jr nz, .asm_114a7d
+ inc e
+ call z, Function114ac6
+ ld a, [de]
+ cp $d
+ jr nz, .asm_114a7d
+ inc e
+ call z, Function114ac6
+ ld a, [de]
+ cp $a
+ jr nz, .asm_114abb
+ inc e
+ call z, Function114ac6
+ ld hl, $dc03
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ xor a
+ ret
+
+.asm_114abb
+ and a
+ jr nz, .asm_114ac3
+ ld a, $1
+ ld [$dc17], a
+
+.asm_114ac3
+ ld a, $1
+ ret
+
+; 114ac6
+
+Function114ac6: ; 114ac6
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114acf
+
+Function114acf: ; 114acf
+.asm_114acf
+ push hl
+ push bc
+.asm_114ad1
+ ld a, [hl]
+ ld b, a
+ ld a, [de]
+ inc e
+ call z, Function114b4c
+ cp $61
+ jr c, .asm_114ae2
+ cp $7b
+ jr nc, .asm_114ae2
+ sub $20
+
+.asm_114ae2
+ cp b
+ jr z, .asm_114af4
+ pop bc
+ dec bc
+ push bc
+ ld a, b
+ or c
+ jr nz, .asm_114ad1
+.asm_114aec
+ ld a, $2
+ ld [$dc0e], a
+ pop bc
+ pop hl
+ ret
+
+.asm_114af4
+ inc hl
+.asm_114af5
+ ld a, [hli]
+ and a
+ jr z, .asm_114b19
+ ld b, a
+ ld a, [de]
+ inc e
+ call z, Function114b4c
+ cp $61
+ jr c, .asm_114b09
+ cp $7b
+ jr nc, .asm_114b09
+ sub $20
+
+.asm_114b09
+ cp b
+ jr nz, .asm_114b15
+ pop bc
+ dec bc
+ push bc
+ ld a, b
+ or c
+ jr nz, .asm_114af5
+ jr .asm_114aec
+
+.asm_114b15
+ pop bc
+ pop hl
+ jr .asm_114acf
+
+.asm_114b19
+ ld b, $0
+ ld c, $40
+ ld a, [de]
+ cp $22
+ jr nz, .asm_114b26
+ inc e
+ call z, Function114b4c
+
+.asm_114b26
+ ld hl, Plant
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+.asm_114b31
+ ld a, [de]
+ cp $22
+ jr z, .asm_114b42
+ cp $d
+ jr z, .asm_114b42
+ inc e
+ call z, Function114b4c
+ inc b
+ dec c
+ jr nz, .asm_114b31
+
+.asm_114b42
+ ld [hl], b
+ pop bc
+ pop hl
+ ld a, $3
+ ld [$dc0e], a
+ xor a
+ ret
+
+; 114b4c
+
+Function114b4c: ; 114b4c
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114b55
+
+Function114b55: ; 114b55
+ call Function114561
+ ld b, $0
+ ld hl, $dc03
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+.asm_114b65
+ push de
+ push bc
+ push hl
+ call Function1143f3
+ cp $2
+ jr z, .asm_114bb2
+ and a
+ jr nz, .asm_114b8c
+ ld a, h
+ pop hl
+ inc hl
+ ld [hld], a
+ ld a, $1
+ ld [hli], a
+ inc hl
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld [hl], c
+ inc hl
+ ld [hl], b
+ inc hl
+.asm_114b82
+ pop bc
+ pop de
+ inc b
+ ld a, b
+ cp $d
+ jr z, .asm_114b96
+ jr .asm_114b65
+
+.asm_114b8c
+ pop hl
+ xor a
+rept NAME_LENGTH_JAPANESE
+ ld [hli], a
+endr
+ jr .asm_114b82
+
+.asm_114b96
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld bc, $004e
+ ld hl, $dc24
+ call Function115d6a
+ jp Function11425c
+
+.asm_114bb2
+ ld a, $1
+ pop bc
+ pop bc
+ pop bc
+ ld b, $82
+ jp Function11425c
+
+; 114bbc
+
+Function114bbc: ; 114bbc
+ ld h, d
+ ld l, e
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ inc hl
+ push hl
+ call Function1143f3
+ cp $2
+ jr z, .asm_114c03
+ and a
+ jr nz, .asm_114bff
+ ld a, h
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ call Function114c0b
+ ld hl, $dc24
+ call Function114c5e
+ ld a, b
+ or c
+ jr z, .asm_114bff
+ pop hl
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, $dc24
+ push bc
+ call Function115d6a
+ pop hl
+ jp Function11425c
+
+.asm_114bff
+ ld b, $84
+ jr .asm_114c05
+
+.asm_114c03
+ ld b, $82
+
+.asm_114c05
+ ld a, $1
+ pop hl
+ jp Function11425c
+
+; 114c0b
+
+Function114c0b: ; 114c0b
+ ld hl, $dc24
+ push bc
+ call Function115d53
+ pop bc
+ ld hl, $dc24
+ ld d, h
+ ld e, l
+.asm_114c18
+ ld a, [hli]
+ cp $d
+ jr z, .asm_114c34
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_114c18
+.asm_114c24
+ xor a
+ ld [de], a
+ ld hl, $dc24
+ ld bc, NULL
+.asm_114c2c
+ ld a, [hli]
+ inc bc
+ and a
+ jr nz, .asm_114c2c
+ dec bc
+ xor a
+ ret
+
+.asm_114c34
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114c24
+ ld a, [hli]
+ cp $a
+ jr nz, .asm_114c18
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114c24
+ ld a, [hli]
+ cp $20
+ jr z, .asm_114c4e
+ cp $9
+ jr z, .asm_114c4e
+ jr .asm_114c24
+
+.asm_114c4e
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114c24
+ jr .asm_114c18
+
+; 114c55
+
+Function114c55: ; 114c55
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114c5e
+
+Function114c5e: ; 114c5e
+ ld de, PartyMon5Defense
+ push hl
+.asm_114c62
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_114cc6
+ cp $3d
+ jr nz, .asm_114c62
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp $3f
+ jr nz, .asm_114c62
+ dec de
+ dec de
+.asm_114c75
+ ld a, [hli]
+ cp $3f
+ jr nz, .asm_114c75
+ ld a, [hli]
+ cp $42
+ jr nz, .asm_114cb8
+ inc hl
+ ld bc, NULL
+ push hl
+.asm_114c84
+ inc bc
+ ld a, [hli]
+ cp $3f
+ jr nz, .asm_114c84
+ inc bc
+ ld a, [hli]
+ cp $3d
+ jr nz, .asm_114c84
+ dec bc
+ dec bc
+ ld a, l
+ ld [$dc03], a
+ ld a, h
+ ld [$dc04], a
+ pop hl
+ push de
+ call Function115c49
+ pop de
+ ld h, d
+ ld l, e
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+.asm_114ca6
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_114ca6
+ ld a, [$dc03]
+ ld l, a
+ ld a, [$dc04]
+ ld h, a
+ jr .asm_114c62
+
+.asm_114cb8
+ ld a, $3d
+ ld [de], a
+ inc de
+ ld a, $3f
+ ld [de], a
+ inc de
+.asm_114cc0
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr nz, .asm_114cc0
+
+.asm_114cc6
+ ld [de], a
+ pop hl
+ ld de, PartyMon5Defense
+ ld bc, NULL
+.asm_114cce
+ inc bc
+ ld a, [de]
+ ld [hli], a
+ inc de
+ and a
+ jr z, .asm_114cd7
+ jr .asm_114cce
+
+.asm_114cd7
+ dec bc
+ ret
+
+; 114cd9
+
+Function114cd9: ; 114cd9
+ ld h, d
+ ld l, e
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ push hl
+ call Function1143f3
+ and a
+ jr nz, .asm_114d33
+ ld [$dc03], a
+ ld [$dc04], a
+ ld a, h
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, $dc24
+ call Function114d39
+ ld hl, $dc24
+ call Function114d99
+ pop hl
+ push hl
+rept 4
+ inc hl
+endr
+ ld a, [hld]
+ cp b
+ jr c, .asm_114d2d
+ jr z, .asm_114d29
+.asm_114d11
+ pop hl
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld hl, PartyMon5Defense
+ call Function115d6a
+ xor a
+ jp Function11425c
+
+.asm_114d29
+ ld a, [hli]
+ cp c
+ jr nc, .asm_114d11
+
+.asm_114d2d
+ ld b, $83
+ jr .asm_114d33
+
+ ld b, $82
+
+.asm_114d33
+ pop hl
+ ld a, $1
+ jp Function11425c
+
+; 114d39
+
+Function114d39: ; 114d39
+.asm_114d39
+ ld a, [$dc04]
+ and a
+ jr nz, .asm_114d4a
+ ld a, [de]
+ cp $28
+ jr z, .asm_114d55
+ cp $22
+ jr z, .asm_114d55
+ jr .asm_114d7f
+
+.asm_114d4a
+ ld a, [de]
+ cp $29
+ jr z, .asm_114d5f
+ cp $22
+ jr z, .asm_114d6f
+ jr .asm_114d84
+
+.asm_114d55
+ ld [$dc03], a
+ ld a, $1
+ ld [$dc04], a
+ jr .asm_114d84
+
+.asm_114d5f
+ ld a, [$dc03]
+ cp $28
+ jr nz, .asm_114d84
+ xor a
+ ld [$dc03], a
+ ld [$dc04], a
+ jr .asm_114d84
+
+.asm_114d6f
+ ld a, [$dc03]
+ cp $22
+ jr nz, .asm_114d84
+ xor a
+ ld [$dc03], a
+ ld [$dc04], a
+ jr .asm_114d84
+
+.asm_114d7f
+ cp $20
+ jr z, .asm_114d84
+ ld [hli], a
+
+.asm_114d84
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114d96
+ inc e
+ jr nz, .asm_114d39
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ jr .asm_114d39
+
+.asm_114d96
+ xor a
+ ld [hli], a
+ ret
+
+; 114d99
+
+Function114d99: ; 114d99
+ ld de, PartyMon5Defense
+ xor a
+ ld [de], a
+.asm_114d9e
+ ld a, [hli]
+ call Function114df1
+ and a
+ jr z, .asm_114dde
+ cp $40
+ jr nz, .asm_114d9e
+ dec hl
+.asm_114daa
+ dec hl
+ ld a, [hl]
+ call Function114e2d
+ and a
+ jr z, .asm_114daa
+ inc hl
+ push hl
+ ld b, $0
+.asm_114db6
+ ld a, [hli]
+ cp $40
+ jr z, .asm_114dc1
+ call Function114e2d
+ and a
+ jr nz, .asm_114dc4
+
+.asm_114dc1
+ inc b
+ jr .asm_114db6
+
+.asm_114dc4
+ pop hl
+ ld a, [PartyMon5Defense]
+ and a
+ jr z, .asm_114dd2
+ ld a, $2c
+ inc de
+ ld [de], a
+ ld a, [PartyMon5Defense]
+
+.asm_114dd2
+ inc a
+ ld [PartyMon5Defense], a
+.asm_114dd6
+ inc de
+ ld a, [hli]
+ ld [de], a
+ dec b
+ jr nz, .asm_114dd6
+ jr .asm_114d9e
+
+.asm_114dde
+ inc de
+ xor a
+ ld [de], a
+ ld a, $dd
+ cpl
+ ld h, a
+ ld a, $c8
+ cpl
+ ld l, a
+ inc hl
+ add hl, de
+ ld b, h
+ ld c, l
+ inc bc
+ inc bc
+ xor a
+ ret
+
+; 114df1
+
+Function114df1: ; 114df1
+ cp $1b
+ ret nz
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $24
+ jr nz, .asm_114e09
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $42
+ jr z, .asm_114e0b
+ cp $40
+ jr z, .asm_114e0b
+ dec hl
+
+.asm_114e09
+ dec hl
+ ret
+
+.asm_114e0b
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $1b
+ jr nz, .asm_114e0b
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $28
+ jr nz, .asm_114e0b
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $42
+ jr z, .asm_114e29
+ cp $4a
+ jr z, .asm_114e29
+ jr .asm_114e0b
+
+.asm_114e29
+ ld a, [hli]
+ ret
+
+.asm_114e2b
+ xor a
+ ret
+
+; 114e2d
+
+Function114e2d: ; 114e2d
+ cp $30
+ jr c, .asm_114e45
+ cp $40
+ jr c, .asm_114e58
+ cp $41
+ jr c, .asm_114e45
+ cp $5b
+ jr c, .asm_114e58
+ cp $61
+ jr c, .asm_114e45
+ cp $7b
+ jr c, .asm_114e58
+
+.asm_114e45
+ cp $20
+ jr z, .asm_114e58
+ cp $2d
+ jr z, .asm_114e58
+ cp $2e
+ jr z, .asm_114e58
+ cp $5f
+ jr z, .asm_114e58
+.asm_114e55
+ ld a, $1
+ ret
+
+.asm_114e58
+ cp $3c
+ jr z, .asm_114e55
+ cp $3e
+ jr z, .asm_114e55
+ xor a
+ ret
+
+; 114e62
+
+Function114e62: ; 114e62
+ ld a, c
+ and a
+ jr nz, .asm_114e6f
+ ld a, [wStartDay]
+ and a
+ jp z, Function11425c
+ jr .asm_114e76
+
+.asm_114e6f
+ xor a
+ ld [wStartDay], a
+ call Function114ee9
+
+.asm_114e76
+ call Function114f0a
+ cp $ff
+ jp z, Function11425c
+ and a
+ jr nz, .asm_114e99
+ call Function114ea0
+ and a
+ jr nz, .asm_114e99
+ ld hl, $dc09
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ jp Function11425c
+
+.asm_114e99
+ ld a, $1
+ ld b, $83
+ jp Function11425c
+
+; 114ea0
+
+Function114ea0: ; 114ea0
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, $d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114edb
+ inc e
+ call z, Function114ee0
+ ld a, $a
+ ld [de], a
+ dec bc
+ inc e
+ call z, Function114ee0
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ld [wStartDay], a
+ ret
+
+.asm_114edb
+ ld a, $1
+ ld b, $83
+ ret
+
+; 114ee0
+
+Function114ee0: ; 114ee0
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 114ee9
+
+Function114ee9: ; 114ee9
+ ld hl, $dc03
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld c, a
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld b, a
+ ld [hli], a
+ inc de
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ ret
+
+; 114f0a
+
+Function114f0a: ; 114f0a
+ call Function114f39
+ and a
+ jr nz, .asm_114f26
+ ld a, [$dc03]
+ cp $6
+ jr c, .asm_114f21
+ cp $c
+ jr z, .asm_114f23
+ call Function114f59
+ and a
+ jr nz, .asm_114f23
+
+.asm_114f21
+ xor a
+ ret
+
+.asm_114f23
+ ld a, $1
+ ret
+
+.asm_114f26
+ call Function114f59
+ and a
+ jr nz, .asm_114f23
+ ld hl, $dc0d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ and a
+ jr z, .asm_114f21
+ ld a, $ff
+ ret
+
+; 114f39
+
+Function114f39: ; 114f39
+ ld hl, $dc0d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld a, [de]
+ and a
+ jr z, .asm_114f58
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld hl, $dc0d
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, $1
+ ret
+
+.asm_114f58
+ ret
+
+; 114f59
+
+Function114f59: ; 114f59
+ ld a, [wStartDay]
+ and a
+ jr nz, .asm_114f7c
+ ld a, [$dc03]
+ cp $11
+ jr z, .asm_114fa7
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, Unknown_114011
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function115020
+ and a
+ jr nz, .asm_114fe7
+ ld a, $1
+ ld [wStartDay], a
+
+.asm_114f7c
+ ld a, [$dc03]
+ cp $5
+ jr c, .asm_114fc9
+ jr z, .asm_114fec
+ cp $8
+ jr c, .asm_114fa5
+ jr z, .asm_114ff4
+ cp $b
+ jr c, .asm_114fa5
+ jr z, .asm_114ffc
+ cp $c
+ jr z, .asm_115007
+ cp $d
+ jr z, .asm_114fa5
+ cp $10
+ jr c, .asm_115015
+ jr z, .asm_114fa5
+ cp $12
+ jr c, .asm_114fa5
+ jr .asm_114fe7
+
+.asm_114fa5
+ xor a
+ ret
+
+.asm_114fa7
+ ld hl, Bed
+ ld c, [hl]
+ inc hl
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+ call Function115d53
+ ld hl, $dc24
+ call Function115020
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_114fc9
+ call Function115062
+ and a
+ jr nz, .asm_114fe7
+ ld a, [$dc04]
+ dec a
+ ld [$dc04], a
+ and a
+ jr z, .asm_114fdf
+ call Function114f39
+ and a
+ jr nz, .asm_114fc9
+
+.asm_114fdf
+ ld a, [$dc05]
+ ld [$dc04], a
+ jr .asm_11501e
+
+.asm_114fe7
+ ld a, $1
+ ld b, $83
+ ret
+
+.asm_114fec
+ call Function115062
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_114ff4
+ call Function115179
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_114ffc
+ ld hl, String_114000
+ call Function115217
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_115007
+ call Function11528f
+ ld hl, $dc24
+ call Function115217
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_115015
+ ld hl, String_114000
+ call Function115217
+ and a
+ jr nz, .asm_114fe7
+
+.asm_11501e
+ xor a
+ ret
+
+; 115020
+
+Function115020: ; 115020
+ push hl
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ pop hl
+.asm_115036
+ ld a, [hli]
+ and a
+ jr z, .asm_115046
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115056
+ inc e
+ call z, Function115059
+ jr .asm_115036
+
+.asm_115046
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ret
+
+.asm_115056
+ ld a, $1
+ ret
+
+; 115059
+
+Function115059: ; 115059
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 115062
+
+Function115062: ; 115062
+ ld hl, Bed
+ ld a, [hli]
+ and a
+ jr z, .asm_1150ae
+ ld c, a
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $0
+ ld hl, $dc24
+ ld a, [wStartDay]
+ cp $1
+ jr z, .asm_11509b
+ cp $2
+ jr z, .asm_115098
+ cp $3
+ jr nz, .asm_1150b2
+ ld a, $2c
+ ld [hli], a
+ ld a, $d
+ ld [hli], a
+ ld a, $a
+ ld [hli], a
+ ld a, $9
+ ld [hli], a
+ jr .asm_11509b
+
+.asm_115098
+ ld a, $2c
+ ld [hli], a
+
+.asm_11509b
+ call Function115d53
+ call Function1150b3
+ call Function115136
+ ld a, [wStartDay]
+ inc a
+ cp $4
+ jr nz, .asm_1150ae
+ ld a, $2
+
+.asm_1150ae
+ ld [wStartDay], a
+ xor a
+
+.asm_1150b2
+ ret
+
+; 1150b3
+
+Function1150b3: ; 1150b3
+ ld hl, $dc24
+ ld de, PartyMon5Defense
+ ld b, $0
+.asm_1150bb
+ ld c, $0
+ ld a, [hli]
+ cp $1b
+ jr z, .asm_1150c9
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_115133
+ jr .asm_1150bb
+
+.asm_1150c9
+ inc c
+ ld a, [hl]
+ cp $24
+ jr nz, .asm_1150bb
+ inc hl
+ inc c
+ ld a, [hl]
+ cp $42
+ jr z, .asm_1150dc
+ cp $40
+ jr z, .asm_1150dc
+ jr .asm_1150bb
+
+.asm_1150dc
+ push hl
+.asm_1150dd
+ inc c
+ ld a, [hli]
+ and a
+ jr z, .asm_115133
+ cp $1b
+ jr nz, .asm_1150dd
+ inc c
+ ld a, [hli]
+ cp $28
+ jr nz, .asm_1150dd
+ inc c
+ ld a, [hli]
+ cp $42
+ jr z, .asm_1150f8
+ cp $4a
+ jr z, .asm_1150f8
+ jr .asm_1150dd
+
+.asm_1150f8
+ ld a, l
+ ld [Console], a
+ ld a, h
+ ld [LeftOrnament], a
+ ld hl, String_114232
+.asm_115103
+ ld a, [hli]
+ and a
+ jr z, .asm_11510b
+ ld [de], a
+ inc de
+ jr .asm_115103
+
+.asm_11510b
+ pop hl
+ dec hl
+ dec hl
+ push de
+ call Function1158c2
+ pop de
+ ld h, d
+ ld l, e
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+.asm_115119
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_115119
+ ld a, $3f
+ ld [de], a
+ inc de
+ ld a, $3d
+ ld [de], a
+ inc de
+ ld a, [Console]
+ ld l, a
+ ld a, [LeftOrnament]
+ ld h, a
+ jr .asm_1150bb
+
+.asm_115133
+ xor a
+ ld [de], a
+ ret
+
+; 115136
+
+Function115136: ; 115136
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld hl, PartyMon5Defense
+.asm_11514d
+ ld a, [hli]
+ and a
+ jr z, .asm_11515d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_11516d
+ inc e
+ call z, Function115170
+ jr .asm_11514d
+
+.asm_11515d
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ret
+
+.asm_11516d
+ ld a, $1
+ ret
+
+; 115170
+
+Function115170: ; 115170
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 115179
+
+Function115179: ; 115179
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld hl, $013f
+ ld a, [hli]
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, [hli]
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, [hli]
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, [hli]
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, $2d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, [$014c]
+ ld h, a
+ and $f0
+ swap a
+ cp $a
+ jr nc, .asm_1151d8
+ add $30
+ jr .asm_1151da
+
+.asm_1151d8
+ add $37
+
+.asm_1151da
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, h
+ and $f
+ cp $a
+ jr nc, .asm_1151f2
+ add $30
+ jr .asm_1151f4
+
+.asm_1151ef
+ ld a, $1
+ ret
+
+.asm_1151f2
+ add $37
+
+.asm_1151f4
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ret
+
+; 11520e
+
+Function11520e: ; 11520e
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 115217
+
+Function115217: ; 115217
+ push hl
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ pop hl
+.asm_11522d
+ ld a, [hli]
+ and a
+ jr z, .asm_11523d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115262
+ inc e
+ call z, Function115286
+ jr .asm_11522d
+
+.asm_11523d
+ ld a, [$dc03]
+ cp $b
+ jr z, .asm_115278
+ cp $c
+ jr z, .asm_115278
+ cp $e
+ jr z, .asm_115252
+ cp $f
+ jr z, .asm_115265
+ jr .asm_115262
+
+.asm_115252
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ret
+
+.asm_115262
+ ld a, $1
+ ret
+
+.asm_115265
+ ld h, $2
+.asm_115267
+ ld a, $2d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115262
+ inc e
+ call z, Function115286
+ dec h
+ jr nz, .asm_115267
+ jr .asm_115252
+
+.asm_115278
+ ld a, $22
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115262
+ inc e
+ call z, Function115286
+ jr .asm_115252
+
+; 115286
+
+Function115286: ; 115286
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 11528f
+
+Function11528f: ; 11528f
+ ld hl, Bed
+ ld c, [hl]
+ inc hl
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld hl, $dc24
+.asm_1152a4
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, Function1152af
+ dec c
+ jr nz, .asm_1152a4
+ ld [hl], c
+ ret
+
+; 1152af
+
+Function1152af: ; 1152af
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 1152b8
+
+Function1152b8: ; 1152b8
+ push bc
+ call Function11537d
+ push de
+ ld h, d
+ ld l, e
+ ld a, [hli]
+ ld b, a
+ ld c, $1
+ call Function1153d2
+ pop de
+ and a
+ jr nz, .asm_1152f9
+.asm_1152ca
+ ld hl, $dc0d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+.asm_1152d0
+ ld a, [$dc03]
+ cp $3
+ jr nz, .asm_1152d8
+ push de
+
+.asm_1152d8
+ cp $5
+ jr nz, .asm_1152e7
+ pop hl
+ ld a, [hli]
+ ld b, a
+ ld c, $3
+ call Function1153d2
+ and a
+ jr nz, .asm_1152f9
+
+.asm_1152e7
+ ld a, [de]
+ inc de
+ and a
+ jr nz, .asm_115301
+ ld a, [$dc03]
+ cp $6
+ jr z, .asm_115335
+ inc a
+ ld [$dc03], a
+ jr .asm_1152d0
+
+.asm_1152f9
+ pop hl
+ ld a, $1
+ ld b, $83
+ jp Function11425c
+
+.asm_115301
+ ld hl, $dc0d
+ ld [hl], e
+ inc hl
+ ld [hl], d
+.asm_115307
+ ld [$dc05], a
+ ld a, $1
+ ld [$dc04], a
+ call Function1153b5
+ call Function114f59
+ and a
+ jr nz, .asm_1152f9
+ ld a, [$dc05]
+ dec a
+ jr nz, .asm_115307
+ ld a, [$dc03]
+ inc a
+ ld [$dc03], a
+ call Function114ea0
+ and a
+ jr nz, .asm_1152f9
+ ld [wStartDay], a
+ ld a, [$dc03]
+ cp $6
+ jr nz, .asm_1152ca
+
+.asm_115335
+ call Function1153b5
+ xor a
+ ld [wStartDay], a
+ call Function114f59
+ and a
+ jr nz, .asm_1152f9
+ call Function114ea0
+ and a
+ jr nz, .asm_1152f9
+ ld a, [$dc03]
+ inc a
+ ld [$dc03], a
+ cp $9
+ jr nz, .asm_115335
+ pop bc
+ ld a, b
+ and a
+ jr z, .asm_11536b
+ call Function1153b5
+ xor a
+ ld [wStartDay], a
+ call Function114f59
+ and a
+ jr nz, .asm_1152f9
+ call Function114ea0
+ and a
+ jr nz, .asm_1152f9
+
+.asm_11536b
+ ld hl, $dc09
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ jp Function11425c
+
+; 11537d
+
+Function11537d: ; 11537d
+ ld hl, $dc06
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ ld b, a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc hl
+ ld a, [de]
+ ld [hld], a
+ ld a, b
+ ld [hli], a
+ inc de
+ ld hl, RightOrnament
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld hl, $dc0d
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ xor a
+ ld [$dc03], a
+ ld [wStartDay], a
+ ret
+
+; 1153b5
+
+Function1153b5: ; 1153b5
+ ld hl, $dc0d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ inc hl
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ inc de
+ ld a, [de]
+ ld [Bed], a
+ inc de
+ ld hl, $dc0d
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+; 1153d2
+
+Function1153d2: ; 1153d2
+ ld a, [$dc03]
+ ld d, a
+ ld a, [$dc04]
+ ld e, a
+ push de
+ xor a
+ ld [$dc03], a
+ ld [$dc04], a
+ ld a, $24
+ ld [Console], a
+ ld a, $dc
+ ld [LeftOrnament], a
+ push bc
+ jr .asm_1153f4
+
+.asm_1153ef
+ ld a, [hli]
+ and a
+ jr z, .asm_115426
+ ld b, a
+
+.asm_1153f4
+ push bc
+.asm_1153f5
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ push hl
+ ld a, [Console]
+ ld l, a
+ ld a, [LeftOrnament]
+ ld h, a
+ push bc
+ ld b, $0
+ call Function115d53
+ inc hl
+ ld [hl], a
+ pop bc
+ ld a, l
+ ld e, a
+ ld [Console], a
+ ld a, h
+ ld d, a
+ ld [LeftOrnament], a
+ dec b
+ jr z, .asm_11542b
+ pop hl
+ jr .asm_1153f5
+
+.asm_115426
+ dec c
+ jr nz, .asm_1153ef
+ jr .asm_115430
+
+.asm_11542b
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_1153ef
+
+.asm_115430
+ ld a, l
+ ld [Console], a
+ ld a, h
+ ld [LeftOrnament], a
+ xor a
+ ld [de], a
+ ld hl, $dc24
+.asm_11543d
+ ld a, [hli]
+ and a
+ jr nz, .asm_11543d
+ ld a, [hl]
+ and a
+ jr z, .asm_115457
+ dec hl
+ ld a, $2c
+ ld [hli], a
+ jr .asm_11543d
+
+.asm_11544b
+ pop hl
+ ld a, h
+ ld [$dc03], a
+ ld a, l
+ ld [$dc04], a
+ ld a, $1
+ ret
+
+.asm_115457
+ ld hl, $dc24
+ call Function114d99
+ ld hl, $ddc8
+.asm_115460
+ ld a, [hli]
+ and a
+ jr z, .asm_11546d
+ cp $2c
+ jr nz, .asm_115460
+ dec hl
+ xor a
+ ld [hli], a
+ jr .asm_115460
+
+.asm_11546d
+ pop de
+ ld a, e
+ cp $1
+ jr z, .asm_115477
+ xor a
+ ld [hli], a
+ jr .asm_115478
+
+.asm_115477
+ dec bc
+
+.asm_115478
+ ld hl, $dc18
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, b
+ cp h
+ jr c, .asm_11548c
+ jr nz, .asm_11544b
+ ld a, c
+ cp l
+ jr c, .asm_11548c
+ jr z, .asm_11548c
+ jr .asm_11544b
+
+.asm_11548c
+ ld hl, $dc18
+ ld a, c
+ cpl
+ ld e, a
+ ld a, b
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld de, $dc18
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ ld hl, RightOrnament
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $ddc8
+ call Function115d6a
+ ld hl, RightOrnament
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [Console]
+ ld e, a
+ ld a, [LeftOrnament]
+ ld d, a
+ pop hl
+ ld a, h
+ ld [$dc03], a
+ ld a, l
+ ld [$dc04], a
+ xor a
+ ret
+
+; 1154d4
+
+Function1154d4: ; 1154d4
+ xor a
+ ld [wStartDay], a
+ call Function1155af
+ call Function11560a
+ and a
+ jr nz, .asm_11552c
+ call Function1155d1
+ ld a, [RightOrnament]
+ dec a
+ ld [RightOrnament], a
+ and a
+ jp z, .asm_115577
+ cp $1
+ jr nz, .asm_115531
+ xor a
+ ld [wDailyResetTimer], a
+.asm_1154f7
+ ld a, [BigDoll]
+ cp $2
+ jr z, .asm_115502
+ cp $3
+ jr z, .asm_11550f
+
+.asm_115502
+ ld a, $a
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr z, .asm_11551a
+ jr .asm_11552c
+
+.asm_11550f
+ ld a, $c
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+
+.asm_11551a
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ call Function11560a
+ and a
+ jr z, .asm_1155a0
+
+.asm_11552c
+ ld a, $1
+ jp Function11425c
+
+.asm_115531
+ ld a, $1
+ ld [wDailyResetTimer], a
+ ld a, $b
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+.asm_115547
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ ld a, $e
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ jr .asm_1154f7
+
+.asm_115560
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ ld a, [wDailyResetTimer]
+ and a
+ jr z, .asm_11557d
+ ld a, $f
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+
+.asm_115577
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+
+.asm_11557d
+ ld a, $10
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ ld hl, $dc09
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ jp Function11425c
+
+.asm_1155a0
+ ld a, [RightOrnament]
+ dec a
+ ld [RightOrnament], a
+ and a
+ jr z, .asm_115560
+ call Function1155d1
+ jr .asm_115547
+
+; 1155af
+
+Function1155af: ; 1155af
+ ld hl, $dc06
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ ld b, a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ ld [hl], b
+ inc hl
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [RightOrnament], a
+ inc de
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ call Function1155d1
+ ret
+
+; 1155d1
+
+Function1155d1: ; 1155d1
+ ld a, [$dc0d]
+ ld l, a
+ ld a, [$dc0e]
+ ld h, a
+ ld a, [hli]
+ ld [BigDoll], a
+ cp $3
+ jr nz, .asm_1155f0
+ ld de, Carpet
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, [hli]
+ ld [Bed], a
+
+.asm_1155f0
+ ld de, $dc17
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, l
+ ld [$dc0d], a
+ ld a, h
+ ld [$dc0e], a
+ ret
+
+; 11560a
+
+Function11560a: ; 11560a
+ ld a, [$dc06]
+ ld [wCurrentMapSignpostCount], a
+ ld a, [$dc17]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, $dc1a
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, [wCurrMapCallbackCount]
+ cp b
+ jp c, .asm_1156b1
+ jr nz, .asm_115631
+ ld a, [$dc09]
+ cp c
+ jp c, .asm_1156b1
+
+.asm_115631
+ ld a, b
+ or c
+ jr z, .asm_1156a9
+ ld a, [$dc09]
+ ld l, a
+ ld a, [wCurrMapCallbackCount]
+ ld h, a
+ ld a, c
+ cpl
+ ld e, a
+ ld a, b
+ cpl
+ ld d, a
+ inc de
+ add hl, de
+ ld a, l
+ ld [$dc09], a
+ ld a, h
+ ld [wCurrMapCallbackCount], a
+.asm_11564d
+ ld a, $3
+ cp b
+ jr c, .asm_1156b6
+ jr nz, .asm_115659
+ ld a, $db
+ cp c
+ jr c, .asm_1156b6
+
+.asm_115659
+ ld a, [$dc1a]
+ ld e, a
+ ld a, [$dc1b]
+ ld d, a
+ ld a, c
+ cpl
+ ld l, a
+ ld a, b
+ cpl
+ ld h, a
+ inc hl
+ add hl, de
+ ld a, l
+ ld [$dc1a], a
+ ld a, h
+ ld [$dc1b], a
+ push bc
+ ld hl, $dc18
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+ call Function115d53
+ ld hl, $dc18
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ pop bc
+ ld a, [wCurrentMapSignpostCount]
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, wCurrMapTriggerCount
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+ call Function115d6a
+ ld hl, wCurrMapTriggerCount
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $dc1a
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, b
+ or c
+ jr nz, .asm_11564d
+
+.asm_1156a9
+ ld a, [wCurrentMapSignpostCount]
+ ld [$dc06], a
+ xor a
+ ret
+
+.asm_1156b1
+ ld a, $1
+ ld b, $83
+ ret
+
+.asm_1156b6
+ ld a, $3
+ cpl
+ ld h, a
+ ld a, $db
+ cpl
+ ld l, a
+ add hl, bc
+ ld de, $dc1a
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ ld bc, $03db
+ jr .asm_115659
+
+; 1156cc
+
+Function1156cc: ; 1156cc
+ ld a, [wStartDay]
+ and a
+ jp z, Function11425c
+ cp $2
+ jr z, .asm_1156fa
+ cp $3
+ jr z, .asm_1156fd
+ cp $4
+ jr z, .asm_1156fd
+ cp $5
+ jr z, .asm_115716
+ cp $ff
+ jr z, .asm_11572b
+ cp $1
+ jp nz, Function11425c
+ call Function115732
+ call Function11575c
+ ld a, h
+ ld [Poster], a
+ ld a, l
+ ld [Plant], a
+
+.asm_1156fa
+ call Function1157d0
+
+.asm_1156fd
+ call Function11581e
+ and a
+ jr nz, .asm_11572b
+ ld a, [wStartDay]
+ cp $5
+ jr z, .asm_115716
+ ld a, [Poster]
+ ld h, a
+ ld a, [Plant]
+ ld l, a
+ xor a
+ jp Function11425c
+
+.asm_115716
+ ld hl, wCurrMapCallbackCount
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ ld [wStartDay], a
+ jp Function11425c
+
+.asm_11572b
+ ld a, $1
+ ld b, $83
+ jp Function11425c
+
+; 115732
+
+Function115732: ; 115732
+ ld hl, $dc02
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ dec de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ ret
+
+; 11575c
+
+Function11575c: ; 11575c
+ ld hl, $dc05
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, $10
+ ld b, $0
+ ld c, b
+ ld d, b
+ ld a, $3
+.asm_11576a
+ rl l
+ rl h
+ rl d
+ cp d
+ jr c, .asm_11577c
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_11576a
+ jr .asm_11578a
+
+.asm_11577c
+ ld a, d
+ sub $3
+ ld d, a
+ ld a, $3
+ scf
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_11576a
+
+.asm_11578a
+ ld a, d
+ and a
+ jr z, .asm_11578f
+ inc bc
+
+.asm_11578f
+ sla c
+ rl b
+ sla c
+ rl b
+ ld h, b
+ ld l, c
+ push hl
+ ld e, $10
+ ld b, $0
+ ld c, b
+ ld d, b
+ ld a, $40
+.asm_1157a2
+ rl l
+ rl h
+ rl d
+ cp d
+ jr c, .asm_1157b4
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_1157a2
+ jr .asm_1157c3
+
+.asm_1157b4
+ ld a, d
+ sub $40
+ ld d, a
+ ld a, $40
+ scf
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_1157a2
+ inc bc
+
+.asm_1157c3
+ and a
+ sla c
+ rl b
+ pop hl
+ add hl, bc
+ ld a, $2
+ ld [wStartDay], a
+ ret
+
+; 1157d0
+
+Function1157d0: ; 1157d0
+ ld hl, $dc05
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$dc0e]
+ ld c, a
+ ld a, [Bed]
+ ld b, a
+ cp h
+ jr c, .asm_1157eb
+ jr nz, .asm_1157e9
+ ld a, c
+ cp l
+ jr c, .asm_1157eb
+ jr z, .asm_1157eb
+
+.asm_1157e9
+ ld b, h
+ ld c, l
+
+.asm_1157eb
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ ld a, l
+ ld [$dc05], a
+ ld a, h
+ ld [$dc06], a
+ ld a, h
+ or l
+ jr nz, .asm_11580f
+ pop bc
+ ld a, c
+ ld [$dc0e], a
+ ld a, b
+ ld [Bed], a
+ ld a, $4
+ ld [wStartDay], a
+ ret
+
+.asm_11580f
+ pop bc
+ ld a, c
+ ld [$dc0e], a
+ ld a, b
+ ld [Bed], a
+ ld a, $3
+ ld [wStartDay], a
+ ret
+
+; 11581e
+
+Function11581e: ; 11581e
+ ld a, [wStartDay]
+ and a
+ ret z
+ ld a, [$dc0e]
+ ld c, a
+ ld a, [Bed]
+ ld b, a
+ ld hl, $dc02
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+ push bc
+ call Function115d53
+ pop bc
+ ld hl, $dc02
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $dc24
+ ld de, PartyMon5Defense
+ call Function1158c2
+ ld hl, PartyMon5Defense
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ push hl
+ ld a, [wCurrMapCallbackCount]
+ ld l, a
+ ld a, [wCurrMapCallbackHeaderPointer]
+ ld h, a
+ cp b
+ jr c, .asm_1158bb
+ jr nz, .asm_11586e
+ ld a, l
+ cp c
+ jr c, .asm_1158bb
+
+.asm_11586e
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ ld a, l
+ ld [wCurrMapCallbackCount], a
+ ld a, h
+ ld [wCurrMapCallbackHeaderPointer], a
+ pop bc
+ pop hl
+ ld hl, wCurrMapTriggerCount
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, PartyMon5Speed
+ call Function115d6a
+ ld hl, wCurrMapTriggerCount
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ ld a, [wStartDay]
+ cp $3
+ jr z, .asm_1158b4
+ cp $4
+ jr z, .asm_1158ad
+ jr .asm_1158bc
+
+.asm_1158ad
+ ld a, $5
+ ld [wStartDay], a
+ jr .asm_1158b9
+
+.asm_1158b4
+ ld a, $2
+ ld [wStartDay], a
+
+.asm_1158b9
+ xor a
+ ret
+
+.asm_1158bb
+ pop hl
+
+.asm_1158bc
+ ld a, $ff
+ ld [wStartDay], a
+ ret
+
+; 1158c2
+
+Function1158c2: ; 1158c2
+ ld a, e
+ ld [SwarmFlags], a
+ ld a, d
+ ld [$dc21], a
+ xor a
+ ld [$dc22], a
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld a, c
+ ld [$dc19], a
+ ld a, b
+ ld [$dc1a], a
+ ld c, e
+ ld b, d
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ xor a
+ ld [WeeklyFlags], a
+
+.asm_1158e5
+ ld b, $3
+ push hl
+ ld hl, $dc1b
+.asm_1158eb
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_1158eb
+ ld a, [$dc19]
+ ld c, a
+ ld a, [$dc1a]
+ ld b, a
+ xor a
+ or b
+ jr nz, .asm_115914
+ ld a, $2
+ cp c
+ jr c, .asm_115914
+ push hl
+ dec hl
+ ld a, c
+ ld [WeeklyFlags], a
+.asm_115908
+ xor a
+ ld [hld], a
+ inc c
+ ld a, $3
+ cp c
+ jr nz, .asm_115908
+ pop hl
+ ld bc, $0003
+
+.asm_115914
+ dec bc
+ dec bc
+ dec bc
+ ld a, c
+ ld [$dc19], a
+ ld a, b
+ ld [$dc1a], a
+ push de
+ push hl
+ ld hl, SwarmFlags
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+rept 4
+ inc de
+endr
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ pop hl
+ dec hl
+ ld c, [hl]
+ dec hl
+ ld b, [hl]
+ dec hl
+ ld a, [hl]
+ ld d, a
+ srl a
+ srl a
+ ld [hli], a
+ ld a, $3
+ and d
+ ld d, a
+ ld a, $f0
+ and b
+ or d
+ swap a
+ ld [hli], a
+ ld a, $f
+ and b
+ ld d, a
+ ld a, c
+ and $c0
+ or d
+ rlca
+ rlca
+ ld [hli], a
+ ld a, $3f
+ and c
+ ld [hld], a
+ dec hl
+ dec hl
+ pop de
+ ld b, h
+ ld c, l
+ pop hl
+ ld a, [bc]
+ inc bc
+ call Function1159dc
+ ld [hli], a
+ ld a, [bc]
+ inc bc
+ call Function1159dc
+ ld [hli], a
+ ld a, [bc]
+ inc bc
+ call Function1159dc
+ ld [hli], a
+ ld a, [bc]
+ inc bc
+ call Function1159dc
+ ld [hli], a
+ ld a, [$dc22]
+ inc a
+ cp $10
+ jr nz, .asm_1159b1
+ push af
+ push bc
+ ld a, [$dc19]
+ ld b, a
+ ld a, [$dc1a]
+ or b
+ jr nz, .asm_115998
+ ld a, [$dc05]
+ ld b, a
+ ld a, [$dc06]
+ or b
+ jr nz, .asm_115998
+ pop bc
+ pop af
+ jr .asm_1159c4
+
+.asm_115998
+ pop bc
+ pop af
+ ld a, $d
+ ld [hli], a
+ ld a, $a
+ ld [hli], a
+ push hl
+ ld hl, SwarmFlags
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+ ld c, a
+ ld b, [hl]
+ inc bc
+ inc bc
+ ld a, b
+ ld [hld], a
+ ld [hl], c
+ pop hl
+ xor a
+
+.asm_1159b1
+ ld [$dc22], a
+ ld a, [$dc19]
+ cp $0
+ jp nz, .asm_1158e5
+ ld a, [$dc1a]
+ cp $0
+ jp nz, .asm_1158e5
+
+.asm_1159c4
+ ld a, [WeeklyFlags]
+ cp $0
+ jr z, .asm_1159d8
+ push hl
+ dec hl
+ ld b, a
+.asm_1159ce
+ ld a, $3d
+ ld [hld], a
+ inc b
+ ld a, $3
+ cp b
+ jr nz, .asm_1159ce
+ pop hl
+
+.asm_1159d8
+ ld a, $0
+ ld [hl], a
+ ret
+
+; 1159dc
+
+Function1159dc: ; 1159dc
+ cp $1a
+ jr c, .asm_1159ef
+ cp $34
+ jr c, .asm_1159f2
+ cp $3e
+ jr c, .asm_1159f5
+ cp $3e
+ jr z, .asm_1159f8
+ ld a, $2f
+ ret
+
+.asm_1159ef
+ add $41
+ ret
+
+.asm_1159f2
+ add $47
+ ret
+
+.asm_1159f5
+ sub $4
+ ret
+
+.asm_1159f8
+ ld a, $2b
+ ret
+
+; 1159fb
+
+Function1159fb: ; 1159fb
+ ld a, [wStartDay]
+ and a
+ jp z, Function11425c
+ cp $2
+ jr z, .asm_115a29
+ cp $3
+ jr z, .asm_115a2c
+ cp $4
+ jr z, .asm_115a2c
+ cp $5
+ jr z, .asm_115a45
+ cp $ff
+ jr z, .asm_115a5a
+ cp $1
+ jp nz, Function11425c
+ call Function115732
+ call Function115a5f
+ ld a, h
+ ld [Plant], a
+ ld a, l
+ ld [Poster], a
+
+.asm_115a29
+ call Function115ab0
+
+.asm_115a2c
+ call Function115b00
+ and a
+ jr nz, .asm_115a5a
+ ld a, [wStartDay]
+ cp $5
+ jr z, .asm_115a45
+ ld a, [Poster]
+ ld h, a
+ ld a, [Plant]
+ ld l, a
+ xor a
+ jp Function11425c
+
+.asm_115a45
+ ld hl, wCurrMapCallbackCount
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ ld [wStartDay], a
+ jp Function11425c
+
+.asm_115a5a
+ ld a, $1
+ jp Function11425c
+
+; 115a5f
+
+Function115a5f: ; 115a5f
+ ld hl, $dc05
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ ld e, $10
+ ld b, $0
+ ld c, b
+ ld d, b
+ ld a, $42
+.asm_115a6e
+ rl l
+ rl h
+ rl d
+ cp d
+ jr c, .asm_115a80
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_115a6e
+ jr .asm_115a8e
+
+.asm_115a80
+ ld a, d
+ sub $42
+ ld d, a
+ ld a, $42
+ scf
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_115a6e
+
+.asm_115a8e
+ sla c
+ rl b
+ pop hl
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ srl h
+ rr l
+ srl h
+ rr l
+ ld b, h
+ ld c, l
+ sla c
+ rl b
+ add hl, bc
+ ld a, $2
+ ld [wStartDay], a
+ ret
+
+; 115ab0
+
+Function115ab0: ; 115ab0
+ ld hl, $dc05
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$dc0e]
+ ld c, a
+ ld a, [Bed]
+ ld b, a
+ cp h
+ jr c, .asm_115acb
+ jr nz, .asm_115ac9
+ ld a, c
+ cp l
+ jr c, .asm_115acb
+ jr z, .asm_115acb
+
+.asm_115ac9
+ ld b, h
+ ld c, l
+
+.asm_115acb
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ ld a, l
+ ld [$dc05], a
+ ld a, h
+ ld [$dc06], a
+ ld a, h
+ or l
+ jr nz, .asm_115af0
+ pop bc
+ ld a, c
+ ld [$dc0e], a
+ ld a, b
+ ld [Bed], a
+ ld a, $4
+ ld [wStartDay], a
+ xor a
+ ret
+
+.asm_115af0
+ pop bc
+ ld a, c
+ ld [$dc0e], a
+ ld a, b
+ ld [Bed], a
+ ld a, $3
+ ld [wStartDay], a
+ xor a
+ ret
+
+; 115b00
+
+Function115b00: ; 115b00
+ ld a, [wStartDay]
+ and a
+ ret z
+ ld a, [$dc0e]
+ ld c, a
+ ld a, [Bed]
+ ld b, a
+ ld hl, $dc02
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, PartyMon5Defense
+ push bc
+ call Function115bc8
+ pop hl
+ and a
+ jr z, .asm_115b43
+ cp $2
+ jr z, .asm_115b3b
+ ld a, [wStartDay]
+ cp $4
+ jr z, .asm_115b43
+ inc hl
+ inc hl
+ jr .asm_115b43
+
+.asm_115b36
+ pop hl
+ ld b, $83
+ jr .asm_115b3d
+
+.asm_115b3b
+ ld b, $81
+
+.asm_115b3d
+ ld a, $ff
+ ld [wStartDay], a
+ ret
+
+.asm_115b43
+ ld a, [Carpet]
+ add a
+ cpl
+ ld c, a
+ ld b, $ff
+ inc bc
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld hl, $dc02
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, PartyMon5Defense
+ ld de, $dc24
+ call Function115c49
+ ld hl, $dc24
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ push hl
+ ld a, [wCurrMapCallbackCount]
+ ld l, a
+ ld a, [wCurrMapCallbackHeaderPointer]
+ ld h, a
+ cp b
+ jr c, .asm_115b36
+ jr nz, .asm_115b7b
+ ld a, l
+ cp c
+ jr c, .asm_115b36
+
+.asm_115b7b
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ ld a, l
+ ld [wCurrMapCallbackCount], a
+ ld a, h
+ ld [wCurrMapCallbackHeaderPointer], a
+ pop bc
+ pop hl
+ ld hl, wCurrMapTriggerCount
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc26
+ call Function115d6a
+ ld hl, wCurrMapTriggerCount
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ ld a, [wStartDay]
+ cp $3
+ jr z, .asm_115bc1
+ cp $4
+ jr z, .asm_115bba
+ jr .asm_115b3b
+
+.asm_115bba
+ ld a, $5
+ ld [wStartDay], a
+ jr .asm_115bc6
+
+.asm_115bc1
+ ld a, $2
+ ld [wStartDay], a
+
+.asm_115bc6
+ xor a
+ ret
+
+; 115bc8
+
+Function115bc8: ; 115bc8
+ xor a
+ ld [Carpet], a
+.asm_115bcc
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c46
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c1b
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c46
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c3a
+ ld a, [de]
+ cp $d
+ jr nz, .asm_115bcc
+ inc e
+ call z, .Function115c3d
+ ld a, [de]
+ cp $a
+ jr nz, .asm_115c46
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c46
+ ld a, [Carpet]
+ inc a
+ ld [Carpet], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_115bcc
+
+.asm_115c1b
+ ld a, [wStartDay]
+ cp $4
+ jr z, .asm_115c33
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ xor a
+ ld [hl], a
+ ld a, $1
+ ret
+
+.asm_115c33
+ dec hl
+ dec hl
+ xor a
+ ld [hl], a
+ ld a, $1
+ ret
+
+.asm_115c3a
+ xor a
+ ld [hl], a
+ ret
+
+.Function115c3d:
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+.asm_115c46
+ ld a, $2
+ ret
+
+; 115c49
+
+Function115c49: ; 115c49
+ ld a, e
+ ld [WeeklyFlags], a
+ ld a, d
+ ld [SwarmFlags], a
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+
+ ld a, c
+ ld [$dc19], a
+ ld a, b
+ ld [$dc1a], a
+ ld c, e
+ ld b, d
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+
+.asm_115c64
+ ld a, [$dc1a]
+ or a
+ jr nz, .asm_115c71
+ ld a, [$dc19]
+ cp $4
+ jr c, .asm_115c99
+
+.asm_115c71
+ ld b, $4
+ push hl
+ ld hl, $dc1b
+.asm_115c77
+ ld a, [de]
+ inc de
+ call Function115cfd
+ ld [hli], a
+ dec b
+ jr nz, .asm_115c77
+ ld a, [$dc19]
+ ld c, a
+ ld a, [$dc1a]
+ ld b, a
+rept 4
+ dec bc
+endr
+.asm_115c8c
+ ld a, [de]
+ cp $d
+ jr z, .asm_115c95
+ cp $a
+ jr nz, .asm_115c9f
+
+.asm_115c95
+ inc de
+ dec bc
+ jr .asm_115c8c
+
+.asm_115c99
+ ld a, $ff
+ ld [wStartDay], a
+ ret
+
+.asm_115c9f
+ ld a, c
+ ld [$dc19], a
+ ld a, b
+ ld [$dc1a], a
+ push de
+ push hl
+ ld hl, WeeklyFlags
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc de
+ inc de
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ pop hl
+ dec hl
+ ld d, [hl]
+ dec hl
+ ld c, [hl]
+ dec hl
+ ld b, [hl]
+ dec hl
+ ld a, [hl]
+ sla b
+ sla b
+ sla b
+ rla
+ sla b
+ rla
+ ld [hli], a
+ ld [hl], b
+ inc hl
+ rrc c
+ rrc c
+ ld [hl], c
+ dec hl
+ ld a, $f
+ and c
+ or [hl]
+ ld [hli], a
+ ld a, [hli]
+ and $c0
+ or [hl]
+ dec hl
+ ld [hld], a
+ dec hl
+ pop de
+ ld b, h
+ ld c, l
+ pop hl
+ ld a, [bc]
+ ld [hli], a
+ inc bc
+ ld a, [bc]
+ ld [hli], a
+ inc bc
+ ld a, [bc]
+ ld [hli], a
+ ld a, [$dc19]
+ cp $0
+ jp nz, .asm_115c64
+ ld a, [$dc1a]
+ cp $0
+ jp nz, .asm_115c64
+ ret
+
+; 115cfd
+
+Function115cfd: ; 115cfd
+ cp $2b
+ jr c, .asm_115d27
+ jr z, .asm_115d2f
+ cp $2f
+ jr c, .asm_115d27
+ jr z, .asm_115d32
+ cp $30
+ jr c, .asm_115d27
+ cp $3a
+ jr c, .asm_115d35
+ cp $3d
+ jr c, .asm_115d27
+ jr z, .asm_115d38
+ cp $41
+ jr c, .asm_115d27
+ cp $5b
+ jr c, .asm_115d4d
+ cp $61
+ jr c, .asm_115d27
+ cp $7b
+ jr c, .asm_115d50
+
+.asm_115d27
+ pop hl
+ pop hl
+ ld a, $ff
+ ld [wStartDay], a
+ ret
+
+.asm_115d2f
+ ld a, $3e
+ ret
+
+.asm_115d32
+ ld a, $3f
+ ret
+
+.asm_115d35
+ add $4
+ ret
+
+.asm_115d38
+ push de
+ push hl
+ ld a, [WeeklyFlags]
+ ld l, a
+ ld a, [SwarmFlags]
+ ld h, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ dec de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ pop hl
+ pop de
+ xor a
+ ret
+
+.asm_115d4d
+ sub $41
+ ret
+
+.asm_115d50
+ sub $47
+ ret
+
+; 115d53
+
+Function115d53: ; 115d53
+.asm_115d53
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, Function115d61
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_115d53
+ xor a
+ ld [hl], a
+ ret
+
+; 115d61
+
+Function115d61: ; 115d61
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 115d6a
+
+Function115d6a: ; 115d6a
+.asm_115d6a
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function115d77
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_115d6a
+ xor a
+ ret
+
+; 115d77
+
+Function115d77: ; 115d77
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 115d80
+
+Function115d80: ; 115d80
+ ld e, a
+ ld a, d
+ cp $bf
+ jr z, .asm_115d8b
+ inc d
+ ld a, e
+ ld e, $0
+ ret
+
+.asm_115d8b
+ ld a, [bc]
+ inc a
+ ld [bc], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, e
+ ld d, $a0
+ ld e, $0
+ ret
+
+; 115d99
+
+INCLUDE "mobile/mobile_45_sprite_engine.asm"
+
+; 116567
+
+Function116567: ; 116567
+ ld hl, wc3f7
+ dec [hl]
+ ret nz
+ ld hl, wc3f6
+ inc [hl]
+.asm_116570
+ ld a, $7
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_1167eb
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc3f6]
+ sla a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ cp $fe
+ jr nz, .asm_116595
+ xor a
+ ld [wc3f6], a
+ jr .asm_116570
+
+.asm_116595
+ ld [wc3f5], a
+ ld a, [hl]
+ ld [wc3f7], a
+ ret
+
+; 11659d
+
+Function11659d: ; 11659d
+ ld a, [wc314]
+ cp $12
+ ret nc
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1165af
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+; 1165af
+
+Jumptable_1165af: ; 1165af
+ dw Function11677e
+ dw Function1165d5
+ dw Function1165d8
+ dw Function1165e3
+ dw Function1165f5
+ dw Function116600
+ dw Function116615
+ dw Function116618
+ dw Function116623
+ dw Function116635
+ dw Function116640
+ dw Function116655
+ dw Function11665c
+ dw Function11668d
+ dw Function11669f
+ dw Function1166a2
+ dw Function1166c4
+ dw Function1166d6
+ dw Function1166d6
+; 1165d5
+
+Function1165d5: ; 1165d5
+ call Function11678e
+
+Function1165d8:
+ ld a, $0
+ ld c, a
+ ld a, $ff
+ ld b, a
+ ld a, $a8
+ call Function1166f4
+
+Function1165e3:
+ call Function116747
+ ld a, [wc30e]
+ cp $e8
+ ret nz
+ ld a, $1
+ call Function116780
+ ret c
+ jp Function116797
+
+; 1165f5
+
+Function1165f5: ; 1165f5
+ ld a, $1
+ ld c, a
+ ld a, $1
+ ld b, a
+ ld a, $e8
+ call Function1166f4
+
+Function116600:
+ call Function116747
+ ld a, [wc30e]
+ cp $a8
+ ret nz
+ ld a, $1
+ call Function116780
+ ret c
+ ld a, $2
+ ld [wc314], a
+ ret
+
+; 116615
+
+Function116615: ; 116615
+ call Function11678e
+
+Function116618:
+ ld a, $3
+ ld c, a
+ ld a, $1
+ ld b, a
+ ld a, $28
+ call Function11671f
+
+Function116623:
+ call Function116747
+ ld a, [wc30f]
+ cp $a0
+ ret nz
+ ld a, $6
+ call Function116780
+ ret c
+ jp Function116797
+
+; 116635
+
+Function116635: ; 116635
+ ld a, $2
+ ld c, a
+ ld a, $ff
+ ld b, a
+ ld a, $a0
+ call Function11671f
+
+Function116640:
+ call Function116747
+ ld a, [wc30f]
+ cp $28
+ ret nz
+ ld a, $6
+ call Function116780
+ ret c
+ ld a, $7
+ ld [wc314], a
+ ret
+
+; 116655
+
+Function116655: ; 116655
+ xor a
+ ld [wc314 + 3], a
+ call Function11678e
+
+Function11665c:
+ ld hl, wc314 + 3
+ ld a, $1
+ xor [hl]
+ ld [hl], a
+ add $4
+ ld c, a
+ call Function11679c
+ ld a, [wc314 + 3]
+ and a
+ jr nz, .asm_116673
+ ld a, $48
+ jr .asm_116675
+
+.asm_116673
+ ld a, $78
+
+.asm_116675
+ ld [wc30f], a
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ sla a
+ sla a
+ sla a
+ add $30
+ ld [wc30e], a
+ call Function116797
+
+Function11668d:
+ ld a, [wc311]
+ cp $ff
+ ret nz
+ ld a, $b
+ call Function116780
+ ret c
+ ld a, $c
+ ld [wc314], a
+ ret
+
+; 11669f
+
+Function11669f: ; 11669f
+ call Function11678e
+
+Function1166a2:
+ ld a, $a8
+ ld [wc30e], a
+ ld [wc3f1], a
+ ld a, $60
+ ld [wc30f], a
+ ld [wc3f3], a
+ ld a, $ff
+ ld [wc314 + 2], a
+ xor a
+ ld [wc314 + 3], a
+ ld a, $0
+ ld c, a
+ call Function11679c
+ call Function116797
+
+Function1166c4:
+ call Function116747
+ ld a, [wc30e]
+ cp $58
+ ret nz
+ ld a, $6
+ ld c, a
+ call Function11679c
+ call Function116797
+
+Function1166d6:
+ call Function116747
+ ld a, [wc30e]
+ cp $48
+ jr nz, .asm_1166e4
+ xor a
+ ld [wc314 + 2], a
+
+.asm_1166e4
+ ld a, [wc311]
+ cp $ff
+ ret nz
+ ld a, $4
+ ld [$c319], a
+ xor a
+ ld [wc314], a
+ ret
+
+; 1166f4
+
+Function1166f4: ; 1166f4
+ ld [wc30e], a
+ ld a, b
+ ld [wc314 + 2], a
+ xor a
+ ld [wc314 + 3], a
+ ld hl, wc30f
+.asm_116702
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ jr z, .asm_11670c
+ dec a
+
+.asm_11670c
+ sla a
+ sla a
+ sla a
+ add $48
+ cp [hl]
+ jr z, .asm_116702
+ ld [hl], a
+ call Function11679c
+ call Function116797
+ ret
+
+; 11671f
+
+Function11671f: ; 11671f
+ ld [wc30f], a
+ ld a, b
+ ld [wc314 + 3], a
+ xor a
+ ld [wc314 + 2], a
+ ld hl, wc30e
+.asm_11672d
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ sla a
+ sla a
+ sla a
+ add $30
+ cp [hl]
+ jr z, .asm_11672d
+ ld [hl], a
+ call Function11679c
+ call Function116797
+ ret
+
+; 116747
+
+Function116747: ; 116747
+ ld hl, wc30e
+ ld a, [wc314 + 2]
+ add [hl]
+ ld [hl], a
+ ld hl, wc30f
+ ld a, [wc314 + 3]
+ add [hl]
+ ld [hl], a
+ ret
+
+; 116758
+
+Function116758: ; 116758
+ ld a, [wc30f]
+ cp $30
+ jr c, .asm_116770
+ jr z, .asm_116770
+ cp $38
+ jr c, .asm_116774
+ jr z, .asm_116774
+ cp $40
+ jr c, .asm_116778
+ jr z, .asm_116778
+ xor a
+ jr .asm_11677a
+
+.asm_116770
+ ld a, $c
+ jr .asm_11677a
+
+.asm_116774
+ ld a, $8
+ jr .asm_11677a
+
+.asm_116778
+ ld a, $4
+
+.asm_11677a
+ ld [wc314 + 4], a
+ ret
+
+; 11677e
+
+Function11677e: ; 11677e
+ ld a, $0
+
+Function116780:
+ ld hl, wc314 + 1
+ cp [hl]
+ jr z, .asm_11678c
+ ld a, [hl]
+ ld [wc314], a
+ scf
+ ret
+
+.asm_11678c
+ and a
+ ret
+
+; 11678e
+
+Function11678e: ; 11678e
+ ld hl, wc314
+ ld a, [hl]
+ ld [wc314 + 1], a
+ inc [hl]
+ ret
+
+; 116797
+
+Function116797: ; 116797
+ ld hl, wc314
+ inc [hl]
+ ret
+
+; 11679c
+
+Function11679c:
+ ld a, c
+ ld [wc311], a
+ xor a
+ ld [wc312], a
+ jr asm_1167af
+
+Function1167a6: ; 1167a6
+ ld hl, wc313
+ dec [hl]
+ ret nz
+ ld hl, wc312
+ inc [hl]
+
+asm_1167af
+.asm_1167af
+ ld a, [wc311]
+ cp $ff
+ ret z
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_1167eb
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc312]
+ sla a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_1167dc
+ cp $fe
+ jr nz, .asm_1167e3
+ xor a
+ ld [wc312], a
+ jr .asm_1167af
+
+.asm_1167dc
+ ld a, $ff
+ ld [wc311], a
+ ld a, $fd
+
+.asm_1167e3
+ ld [wc310], a
+ ld a, [hl]
+ ld [wc313], a
+ ret
+
+; 1167eb
+
+Unknown_1167eb:
+ dw Unknown_1167fb
+ dw Unknown_116808
+ dw Unknown_116867
+ dw Unknown_116870
+ dw Unknown_116815
+ dw Unknown_11683e
+ dw Unknown_116881
+ dw Unknown_1168ae
+
+Unknown_1167fb: ; 1167fb
+ db $0, $6
+ db $1, $4
+ db $2, $4
+ db $3, $6
+ db $2, $4
+ db $1, $4
+ db $fe
+
+Unknown_116808: ; 116808
+ db $4, $6
+ db $5, $4
+ db $6, $4
+ db $7, $6
+ db $6, $4
+ db $5, $4
+ db $fe
+
+Unknown_116815: ; 116815
+ db $fd, $20
+ db $8, $c
+ db $9, $24
+ db $a, $4
+ db $b, $8
+ db $a, $4
+ db $9, $6
+ db $c, $4
+ db $d, $8
+ db $c, $5
+ db $9, $24
+ db $a, $4
+ db $b, $8
+ db $a, $4
+ db $9, $6
+ db $c, $4
+ db $d, $8
+ db $c, $5
+ db $9, $8
+ db $8, $4
+ db $ff
+
+Unknown_11683e: ; 11683e
+ db $fd, $20
+ db $e, $c
+ db $f, $24
+ db $10, $4
+ db $11, $8
+ db $10, $4
+ db $f, $6
+ db $12, $4
+ db $13, $8
+ db $12, $5
+ db $f, $24
+ db $10, $4
+ db $11, $8
+ db $10, $4
+ db $f, $6
+ db $12, $4
+ db $13, $8
+ db $12, $5
+ db $f, $8
+ db $e, $4
+ db $ff
+
+Unknown_116867: ; 116867
+ db $14, $8
+ db $15, $8
+ db $16, $8
+ db $15, $8
+ db $fe
+
+Unknown_116870: ; 116870
+ db $17, $5
+ db $18, $5
+ db $19, $5
+ db $1a, $5
+ db $1b, $5
+ db $1a, $5
+ db $19, $5
+ db $18, $5
+ db $fe
+
+Unknown_116881: ; 116881
+ db $1c, $7
+ db $1d, $7
+ db $1e, $a
+ db $1f, $a
+ db $20, $5
+ db $21, $5
+ db $20, $5
+ db $21, $5
+ db $20, $18
+ db $22, $4
+ db $23, $2
+ db $22, $2
+ db $23, $2
+ db $22, $1
+ db $23, $1
+ db $22, $1
+ db $23, $4
+ db $fd, $1
+ db $23, $1
+ db $fd, $2
+ db $23, $2
+ db $fd, $40
+ db $ff
+
+Unknown_1168ae: ; 1168ae
+ db $24, $4
+ db $25, $4
+ db $26, $4
+ db $27, $4
+ db $28, $4
+ db $29, $4
+ db $2a, $4
+ db $2b, $4
+ db $2c, $4
+ db $2d, $4
+ db $2e, $4
+ db $fe
+; 1168c5
+
+Unknown_1168c5:
+ dw Unknown_116923
+ dw Unknown_116960
+ dw Unknown_1169a1
+ dw Unknown_1169de
+ dw Unknown_116a1b
+ dw Unknown_116a58
+ dw Unknown_116a99
+ dw Unknown_116ad6
+ dw Unknown_116d1b
+ dw Unknown_116d4c
+ dw Unknown_116d85
+ dw Unknown_116dbe
+ dw Unknown_116df7
+ dw Unknown_116e30
+ dw Unknown_116e69
+ dw Unknown_116e9a
+ dw Unknown_116ed3
+ dw Unknown_116f0c
+ dw Unknown_116f45
+ dw Unknown_116f7e
+ dw Unknown_116b13
+ dw Unknown_116b54
+ dw Unknown_116b95
+ dw Unknown_116bd6
+ dw Unknown_116c17
+ dw Unknown_116c58
+ dw Unknown_116c99
+ dw Unknown_116cda
+ dw Unknown_116fb7
+ dw Unknown_116fec
+ dw Unknown_117025
+ dw Unknown_117056
+ dw Unknown_117083
+ dw Unknown_1170c0
+ dw Unknown_1170fd
+ dw Unknown_11713a
+ dw Unknown_117177
+ dw Unknown_11719c
+ dw Unknown_1171c1
+ dw Unknown_1171e6
+ dw Unknown_11720b
+ dw Unknown_117230
+ dw Unknown_117255
+ dw Unknown_11727a
+ dw Unknown_11729f
+ dw Unknown_1172c4
+ dw Unknown_1172e9
+
+Unknown_116923: ; 116923
+ db $f
+ db $0, $0, $1, $a
+ db $0, $8, $2, $d
+ db $0, $10, $3, $d
+ db $0, $18, $4, $d
+ db $8, $0, $11, $a
+ db $8, $8, $12, $a
+ db $8, $10, $13, $a
+ db $8, $18, $14, $d
+ db $10, $0, $21, $a
+ db $10, $8, $22, $a
+ db $10, $10, $23, $a
+ db $10, $18, $24, $a
+ db $18, $0, $31, $a
+ db $18, $8, $32, $a
+ db $18, $10, $33, $a
+
+Unknown_116960: ; 116960
+ db $10
+ db $1, $0, $1, $a
+ db $1, $8, $2, $d
+ db $1, $10, $3, $d
+ db $1, $18, $4, $d
+ db $9, $0, $11, $a
+ db $9, $8, $12, $a
+ db $9, $10, $13, $a
+ db $9, $18, $14, $d
+ db $11, $0, $5, $a
+ db $11, $8, $6, $a
+ db $11, $10, $7, $a
+ db $11, $18, $34, $a
+ db $19, $0, $15, $a
+ db $19, $8, $16, $a
+ db $19, $10, $17, $a
+ db $19, $18, $35, $a
+
+Unknown_1169a1: ; 1169a1
+ db $f
+ db $1, $0, $1, $a
+ db $1, $8, $2, $d
+ db $1, $10, $3, $d
+ db $1, $18, $4, $d
+ db $9, $0, $11, $a
+ db $9, $8, $12, $a
+ db $9, $10, $13, $a
+ db $9, $18, $14, $d
+ db $11, $0, $25, $a
+ db $11, $8, $26, $a
+ db $11, $10, $27, $a
+ db $11, $18, $34, $a
+ db $19, $8, $36, $a
+ db $19, $10, $37, $a
+ db $19, $18, $35, $a
+
+Unknown_1169de: ; 1169de
+ db $f
+ db $0, $0, $1, $a
+ db $0, $8, $2, $d
+ db $0, $10, $3, $d
+ db $0, $18, $4, $d
+ db $8, $0, $11, $a
+ db $8, $8, $12, $a
+ db $8, $10, $13, $a
+ db $8, $18, $14, $d
+ db $10, $0, $10, $a
+ db $10, $8, $20, $a
+ db $10, $10, $30, $a
+ db $10, $18, $24, $a
+ db $18, $0, $31, $a
+ db $18, $8, $32, $a
+ db $18, $10, $33, $a
+
+Unknown_116a1b: ; 116a1b
+ db $f
+ db $0, $0, $4, $2d
+ db $0, $8, $3, $2d
+ db $0, $10, $2, $2d
+ db $0, $18, $1, $2a
+ db $8, $0, $14, $2d
+ db $8, $8, $13, $2a
+ db $8, $10, $12, $2a
+ db $8, $18, $11, $2a
+ db $10, $0, $24, $2a
+ db $10, $8, $23, $2a
+ db $10, $10, $22, $2a
+ db $10, $18, $21, $2a
+ db $18, $8, $33, $2a
+ db $18, $10, $32, $2a
+ db $18, $18, $31, $2a
+
+Unknown_116a58: ; 116a58
+ db $10
+ db $1, $0, $4, $2d
+ db $1, $8, $3, $2d
+ db $1, $10, $2, $2d
+ db $1, $18, $1, $2a
+ db $9, $0, $14, $2d
+ db $9, $8, $13, $2a
+ db $9, $10, $12, $2a
+ db $9, $18, $11, $2a
+ db $11, $0, $34, $2a
+ db $11, $8, $7, $2a
+ db $11, $10, $6, $2a
+ db $11, $18, $5, $2a
+ db $19, $0, $35, $2a
+ db $19, $8, $17, $2a
+ db $19, $10, $16, $2a
+ db $19, $18, $15, $2a
+
+Unknown_116a99: ; 116a99
+ db $f
+ db $1, $0, $4, $2d
+ db $1, $8, $3, $2d
+ db $1, $10, $2, $2d
+ db $1, $18, $1, $2a
+ db $9, $0, $14, $2d
+ db $9, $8, $13, $2a
+ db $9, $10, $12, $2a
+ db $9, $18, $11, $2a
+ db $11, $0, $34, $2a
+ db $11, $8, $27, $2a
+ db $11, $10, $26, $2a
+ db $11, $18, $25, $2a
+ db $19, $0, $35, $2a
+ db $19, $8, $37, $2a
+ db $19, $10, $36, $2a
+
+Unknown_116ad6: ; 116ad6
+ db $f
+ db $0, $0, $4, $2d
+ db $0, $8, $3, $2d
+ db $0, $10, $2, $2d
+ db $0, $18, $1, $2a
+ db $8, $0, $14, $2d
+ db $8, $8, $13, $2a
+ db $8, $10, $12, $2a
+ db $8, $18, $11, $2a
+ db $10, $0, $24, $2a
+ db $10, $8, $30, $2a
+ db $10, $10, $20, $2a
+ db $10, $18, $10, $2a
+ db $18, $8, $33, $2a
+ db $18, $10, $32, $2a
+ db $18, $18, $31, $2a
+
+Unknown_116b13: ; 116b13
+ db $10
+ db $18, $0, $0, $b
+ db $18, $8, $8, $b
+ db $18, $10, $5c, $b
+ db $18, $18, $0, $b
+ db $10, $0, $0, $b
+ db $10, $8, $5d, $b
+ db $10, $10, $5e, $b
+ db $10, $18, $0, $b
+ db $8, $0, $50, $b
+ db $8, $8, $51, $b
+ db $8, $10, $52, $b
+ db $8, $18, $50, $2b
+ db $0, $0, $43, $b
+ db $0, $8, $44, $b
+ db $0, $10, $44, $2b
+ db $0, $18, $43, $2b
+
+Unknown_116b54: ; 116b54
+ db $10
+ db $19, $0, $0, $b
+ db $19, $8, $18, $b
+ db $19, $10, $c, $b
+ db $19, $18, $0, $b
+ db $11, $0, $42, $b
+ db $11, $8, $3a, $b
+ db $11, $10, $3a, $2b
+ db $11, $18, $42, $2b
+ db $9, $0, $58, $b
+ db $9, $8, $45, $b
+ db $9, $10, $45, $2b
+ db $9, $18, $58, $2b
+ db $1, $0, $d, $b
+ db $1, $8, $44, $b
+ db $1, $10, $44, $2b
+ db $1, $18, $d, $2b
+
+Unknown_116b95: ; 116b95
+ db $10
+ db $18, $0, $0, $b
+ db $18, $8, $5c, $2b
+ db $18, $10, $8, $2b
+ db $18, $18, $0, $b
+ db $10, $0, $0, $b
+ db $10, $8, $5e, $2b
+ db $10, $10, $5d, $2b
+ db $10, $18, $0, $b
+ db $8, $0, $50, $b
+ db $8, $8, $52, $2b
+ db $8, $10, $51, $2b
+ db $8, $18, $50, $2b
+ db $0, $0, $43, $b
+ db $0, $8, $44, $b
+ db $0, $10, $44, $2b
+ db $0, $18, $43, $2b
+
+Unknown_116bd6: ; 116bd6
+ db $10
+ db $18, $0, $0, $a
+ db $18, $8, $56, $a
+ db $18, $10, $57, $a
+ db $18, $18, $0, $a
+ db $10, $0, $64, $a
+ db $10, $8, $4a, $a
+ db $10, $10, $4b, $a
+ db $10, $18, $71, $a
+ db $8, $0, $54, $a
+ db $8, $8, $55, $a
+ db $8, $10, $55, $2a
+ db $8, $18, $54, $2a
+ db $0, $0, $48, $a
+ db $0, $8, $49, $a
+ db $0, $10, $49, $2a
+ db $0, $18, $48, $2a
+
+Unknown_116c17: ; 116c17
+ db $10
+ db $19, $0, $0, $a
+ db $19, $8, $76, $a
+ db $19, $10, $77, $a
+ db $19, $18, $0, $a
+ db $11, $0, $64, $a
+ db $11, $8, $69, $a
+ db $11, $10, $6a, $a
+ db $11, $18, $6b, $a
+ db $9, $0, $6f, $a
+ db $9, $8, $70, $a
+ db $9, $10, $70, $2a
+ db $9, $18, $6f, $2a
+ db $1, $0, $63, $a
+ db $1, $8, $19, $a
+ db $1, $10, $19, $2a
+ db $1, $18, $63, $2a
+
+Unknown_116c58: ; 116c58
+ db $10
+ db $1a, $0, $6c, $a
+ db $1a, $8, $6d, $a
+ db $1a, $10, $6e, $a
+ db $1a, $18, $0, $a
+ db $12, $0, $5f, $a
+ db $12, $8, $60, $a
+ db $12, $10, $61, $a
+ db $12, $18, $62, $a
+ db $a, $0, $53, $a
+ db $a, $8, $55, $a
+ db $a, $10, $55, $2a
+ db $a, $18, $53, $2a
+ db $2, $0, $46, $a
+ db $2, $8, $47, $a
+ db $2, $10, $47, $2a
+ db $2, $18, $46, $2a
+
+Unknown_116c99: ; 116c99
+ db $10
+ db $19, $0, $0, $2a
+ db $19, $8, $77, $2a
+ db $19, $10, $76, $2a
+ db $19, $18, $0, $2a
+ db $11, $0, $6b, $2a
+ db $11, $8, $6a, $2a
+ db $11, $10, $69, $2a
+ db $11, $18, $64, $2a
+ db $9, $0, $6f, $a
+ db $9, $8, $70, $a
+ db $9, $10, $70, $2a
+ db $9, $18, $6f, $2a
+ db $1, $0, $63, $a
+ db $1, $8, $19, $a
+ db $1, $10, $19, $2a
+ db $1, $18, $63, $2a
+
+Unknown_116cda: ; 116cda
+ db $10
+ db $18, $0, $0, $a
+ db $18, $8, $57, $2a
+ db $18, $10, $56, $2a
+ db $18, $18, $0, $a
+ db $10, $0, $71, $2a
+ db $10, $8, $4b, $2a
+ db $10, $10, $4a, $2a
+ db $10, $18, $64, $2a
+ db $8, $0, $54, $a
+ db $8, $8, $55, $a
+ db $8, $10, $55, $2a
+ db $8, $18, $54, $2a
+ db $0, $0, $48, $a
+ db $0, $8, $49, $a
+ db $0, $10, $49, $2a
+ db $0, $18, $48, $2a
+
+Unknown_116d1b: ; 116d1b
+ db $c
+ db $0, $0, $38, $4a
+ db $0, $8, $39, $4a
+ db $0, $10, $39, $6a
+ db $0, $18, $38, $6a
+ db $8, $0, $28, $4a
+ db $8, $8, $29, $4a
+ db $8, $10, $29, $6a
+ db $8, $18, $28, $6a
+ db $10, $0, $9, $4d
+ db $10, $8, $19, $4a
+ db $10, $10, $19, $6a
+ db $10, $18, $9, $6d
+
+Unknown_116d4c: ; 116d4c
+ db $e
+ db $0, $8, $3b, $4a
+ db $0, $10, $3b, $6a
+ db $8, $0, $2a, $4a
+ db $8, $8, $2b, $4a
+ db $8, $10, $2b, $6a
+ db $8, $18, $2a, $6a
+ db $10, $0, $1a, $4a
+ db $10, $8, $1b, $4a
+ db $10, $10, $1b, $6a
+ db $10, $18, $1a, $6a
+ db $18, $0, $a, $4a
+ db $18, $8, $b, $4a
+ db $18, $10, $b, $6a
+ db $18, $18, $a, $6a
+
+Unknown_116d85: ; 116d85
+ db $e
+ db $0, $0, $35, $2a
+ db $0, $8, $3c, $4a
+ db $0, $10, $3d, $4a
+ db $0, $18, $3e, $4a
+ db $8, $0, $2c, $4a
+ db $8, $8, $2d, $4a
+ db $8, $10, $2e, $4a
+ db $8, $18, $2f, $4a
+ db $10, $0, $1c, $4a
+ db $10, $8, $1d, $4a
+ db $10, $10, $1e, $4d
+ db $10, $18, $1f, $4d
+ db $18, $10, $e, $4d
+ db $18, $18, $f, $4a
+
+Unknown_116dbe: ; 116dbe
+ db $e
+ db $0, $0, $65, $4a
+ db $0, $8, $66, $4a
+ db $0, $10, $67, $4a
+ db $0, $18, $68, $4a
+ db $8, $8, $59, $4a
+ db $8, $10, $5a, $4a
+ db $8, $18, $5b, $4a
+ db $10, $0, $4c, $4a
+ db $10, $8, $4d, $4d
+ db $10, $10, $4e, $4d
+ db $10, $18, $4f, $4a
+ db $18, $0, $3f, $4d
+ db $18, $8, $40, $4d
+ db $18, $10, $41, $4d
+
+Unknown_116df7: ; 116df7
+ db $e
+ db $0, $0, $3e, $6a
+ db $0, $8, $3d, $6a
+ db $0, $10, $3c, $6a
+ db $0, $18, $35, $a
+ db $8, $0, $2f, $6a
+ db $8, $8, $2e, $6a
+ db $8, $10, $2d, $6a
+ db $8, $18, $2c, $6a
+ db $10, $0, $1f, $6d
+ db $10, $8, $1e, $6d
+ db $10, $10, $1d, $6a
+ db $10, $18, $1c, $6a
+ db $18, $0, $f, $6a
+ db $18, $8, $e, $6d
+
+Unknown_116e30: ; 116e30
+ db $e
+ db $0, $0, $68, $6a
+ db $0, $8, $67, $6a
+ db $0, $10, $66, $6a
+ db $0, $18, $65, $6a
+ db $8, $0, $5b, $6a
+ db $8, $8, $5a, $6a
+ db $8, $10, $59, $6a
+ db $10, $0, $4f, $6a
+ db $10, $8, $4e, $6d
+ db $10, $10, $4d, $6d
+ db $10, $18, $4c, $6a
+ db $18, $8, $41, $6d
+ db $18, $10, $40, $6d
+ db $18, $18, $3f, $6d
+
+Unknown_116e69: ; 116e69
+ db $c
+ db $8, $0, $9, $d
+ db $8, $8, $19, $a
+ db $8, $10, $19, $2a
+ db $8, $18, $9, $2d
+ db $10, $0, $28, $a
+ db $10, $8, $29, $a
+ db $10, $10, $29, $2a
+ db $10, $18, $28, $2a
+ db $18, $0, $38, $a
+ db $18, $8, $39, $a
+ db $18, $10, $39, $2a
+ db $18, $18, $38, $2a
+
+Unknown_116e9a: ; 116e9a
+ db $e
+ db $0, $0, $a, $a
+ db $0, $8, $b, $a
+ db $0, $10, $b, $2a
+ db $0, $18, $a, $2a
+ db $8, $0, $1a, $a
+ db $8, $8, $1b, $a
+ db $8, $10, $1b, $2a
+ db $8, $18, $1a, $2a
+ db $10, $0, $2a, $a
+ db $10, $8, $2b, $a
+ db $10, $10, $2b, $2a
+ db $10, $18, $2a, $2a
+ db $18, $8, $3b, $a
+ db $18, $10, $3b, $2a
+
+Unknown_116ed3: ; 116ed3
+ db $e
+ db $0, $10, $e, $d
+ db $0, $18, $f, $a
+ db $8, $0, $1c, $a
+ db $8, $8, $1d, $a
+ db $8, $10, $1e, $d
+ db $8, $18, $1f, $d
+ db $10, $0, $2c, $a
+ db $10, $8, $2d, $a
+ db $10, $10, $2e, $a
+ db $10, $18, $2f, $a
+ db $18, $0, $35, $6a
+ db $18, $8, $3c, $a
+ db $18, $10, $3d, $a
+ db $18, $18, $3e, $a
+
+Unknown_116f0c: ; 116f0c
+ db $e
+ db $0, $0, $3f, $d
+ db $0, $8, $40, $d
+ db $0, $10, $41, $d
+ db $8, $0, $4c, $a
+ db $8, $8, $4d, $d
+ db $8, $10, $4e, $d
+ db $8, $18, $4f, $a
+ db $10, $8, $59, $a
+ db $10, $10, $5a, $a
+ db $10, $18, $5b, $a
+ db $18, $0, $65, $a
+ db $18, $8, $66, $a
+ db $18, $10, $67, $a
+ db $18, $18, $68, $a
+
+Unknown_116f45: ; 116f45
+ db $e
+ db $0, $0, $f, $2a
+ db $0, $8, $e, $2d
+ db $8, $0, $1f, $2d
+ db $8, $8, $1e, $2d
+ db $8, $10, $1d, $2a
+ db $8, $18, $1c, $2a
+ db $10, $0, $2f, $2a
+ db $10, $8, $2e, $2a
+ db $10, $10, $2d, $2a
+ db $10, $18, $2c, $2a
+ db $18, $0, $3e, $2a
+ db $18, $8, $3d, $2a
+ db $18, $10, $3c, $2a
+ db $18, $18, $35, $4a
+
+Unknown_116f7e: ; 116f7e
+ db $e
+ db $0, $8, $41, $2d
+ db $0, $10, $40, $2d
+ db $0, $18, $3f, $2d
+ db $8, $0, $4f, $2a
+ db $8, $8, $4e, $2d
+ db $8, $10, $4d, $2d
+ db $8, $18, $4c, $2a
+ db $10, $0, $5b, $2a
+ db $10, $8, $5a, $2a
+ db $10, $10, $59, $2a
+ db $18, $0, $68, $2a
+ db $18, $8, $67, $2a
+ db $18, $10, $66, $2a
+ db $18, $18, $65, $2a
+
+Unknown_116fb7: ; 116fb7
+ db $d
+ db $fa, $0, $72, $a
+ db $fa, $8, $73, $d
+ db $fa, $10, $74, $d
+ db $fa, $18, $75, $d
+ db $2, $0, $81, $a
+ db $2, $8, $82, $a
+ db $2, $10, $83, $a
+ db $2, $18, $84, $a
+ db $a, $0, $91, $a
+ db $a, $8, $92, $a
+ db $a, $10, $93, $a
+ db $a, $18, $94, $a
+ db $12, $10, $a3, $a
+
+Unknown_116fec: ; 116fec
+ db $e
+ db $fd, $0, $85, $d
+ db $fd, $8, $86, $d
+ db $5, $0, $95, $d
+ db $5, $8, $96, $a
+ db $5, $10, $97, $a
+ db $5, $18, $98, $a
+ db $d, $0, $a5, $a
+ db $d, $8, $a6, $a
+ db $d, $10, $a7, $a
+ db $d, $18, $a8, $a
+ db $15, $0, $b3, $a
+ db $15, $8, $b4, $a
+ db $15, $10, $b5, $a
+ db $15, $18, $b6, $a
+
+Unknown_117025: ; 117025
+ db $c
+ db $8, $0, $79, $d
+ db $8, $8, $7a, $d
+ db $8, $10, $7b, $a
+ db $8, $18, $7c, $a
+ db $10, $0, $89, $d
+ db $10, $8, $8a, $a
+ db $10, $10, $8b, $a
+ db $10, $18, $8c, $a
+ db $18, $0, $99, $a
+ db $18, $8, $9a, $a
+ db $18, $10, $9b, $a
+ db $18, $18, $9c, $a
+
+Unknown_117056: ; 117056
+ db $b
+ db $8, $0, $7d, $a
+ db $8, $8, $7e, $d
+ db $8, $10, $7f, $d
+ db $8, $18, $80, $a
+ db $10, $0, $8d, $a
+ db $10, $8, $8e, $a
+ db $10, $10, $8f, $a
+ db $10, $18, $90, $a
+ db $18, $8, $9e, $a
+ db $18, $10, $9f, $a
+ db $18, $18, $a0, $a
+
+Unknown_117083: ; 117083
+ db $f
+ db $0, $0, $a1, $a
+ db $0, $8, $a2, $a
+ db $0, $10, $a2, $2a
+ db $0, $18, $a1, $2a
+ db $8, $0, $b1, $a
+ db $8, $8, $b2, $d
+ db $8, $10, $b2, $2d
+ db $8, $18, $b1, $2a
+ db $10, $0, $ab, $a
+ db $10, $8, $ac, $a
+ db $10, $10, $ac, $2a
+ db $10, $18, $ab, $2a
+ db $18, $8, $a4, $a
+ db $18, $10, $87, $a
+ db $18, $18, $88, $a
+
+Unknown_1170c0: ; 1170c0
+ db $f
+ db $0, $0, $a1, $a
+ db $0, $8, $a2, $d
+ db $0, $10, $a2, $2a
+ db $0, $18, $a1, $2a
+ db $8, $0, $b1, $a
+ db $8, $8, $78, $d
+ db $8, $10, $78, $2d
+ db $8, $18, $b1, $2a
+ db $10, $0, $ab, $a
+ db $10, $8, $ac, $a
+ db $10, $10, $ac, $2a
+ db $10, $18, $ab, $2a
+ db $18, $8, $a4, $a
+ db $18, $10, $87, $a
+ db $18, $18, $88, $a
+
+Unknown_1170fd: ; 1170fd
+ db $f
+ db $0, $0, $a9, $a
+ db $0, $8, $aa, $a
+ db $0, $10, $aa, $2a
+ db $0, $18, $a9, $2a
+ db $8, $0, $b7, $a
+ db $8, $8, $b8, $a
+ db $8, $10, $b8, $2a
+ db $8, $18, $b7, $2a
+ db $10, $0, $ab, $a
+ db $10, $8, $ac, $a
+ db $10, $10, $ac, $2a
+ db $10, $18, $ad, $a
+ db $18, $8, $a4, $a
+ db $18, $10, $ba, $a
+ db $18, $18, $bb, $a
+
+Unknown_11713a: ; 11713a
+ db $f
+ db $0, $0, $ae, $c
+ db $0, $8, $af, $c
+ db $0, $10, $af, $2c
+ db $0, $18, $ae, $2c
+ db $8, $0, $bc, $c
+ db $8, $8, $bd, $c
+ db $8, $10, $bd, $2c
+ db $8, $18, $bc, $2c
+ db $10, $0, $bf, $c
+ db $10, $8, $9d, $c
+ db $10, $10, $9d, $2c
+ db $10, $18, $b0, $c
+ db $18, $8, $b9, $c
+ db $18, $10, $c0, $c
+ db $18, $18, $be, $c
+
+Unknown_117177: ; 117177
+ db $9
+ db $14, $0, $1f, $6
+ db $14, $8, $20, $6
+ db $14, $10, $21, $6
+ db $c, $0, $10, $6
+ db $c, $8, $11, $6
+ db $c, $10, $12, $6
+ db $4, $0, $1, $6
+ db $4, $8, $2, $6
+ db $4, $10, $3, $6
+
+Unknown_11719c: ; 11719c
+ db $9
+ db $14, $0, $22, $6
+ db $14, $8, $23, $6
+ db $14, $10, $24, $6
+ db $c, $0, $13, $6
+ db $c, $8, $14, $6
+ db $c, $10, $15, $6
+ db $4, $0, $4, $6
+ db $4, $8, $5, $6
+ db $4, $10, $6, $6
+
+Unknown_1171c1: ; 1171c1
+ db $9
+ db $14, $0, $25, $6
+ db $14, $8, $26, $6
+ db $14, $10, $27, $6
+ db $c, $0, $16, $6
+ db $c, $8, $17, $6
+ db $c, $10, $18, $6
+ db $4, $0, $7, $6
+ db $4, $8, $8, $6
+ db $4, $10, $9, $6
+
+Unknown_1171e6: ; 1171e6
+ db $9
+ db $14, $0, $28, $6
+ db $14, $8, $29, $6
+ db $14, $10, $2a, $6
+ db $c, $0, $19, $6
+ db $c, $8, $1a, $6
+ db $c, $10, $1b, $6
+ db $4, $0, $a, $6
+ db $4, $8, $b, $6
+ db $4, $10, $c, $6
+
+Unknown_11720b: ; 11720b
+ db $9
+ db $14, $0, $2b, $6
+ db $14, $8, $2c, $6
+ db $14, $10, $2d, $6
+ db $c, $0, $1c, $6
+ db $c, $8, $1d, $6
+ db $c, $10, $1e, $6
+ db $4, $0, $d, $6
+ db $4, $8, $e, $6
+ db $4, $10, $f, $6
+
+Unknown_117230: ; 117230
+ db $9
+ db $14, $0, $47, $6
+ db $14, $8, $48, $6
+ db $14, $10, $49, $6
+ db $c, $0, $3b, $6
+ db $c, $8, $3c, $6
+ db $c, $10, $3b, $26
+ db $4, $0, $2e, $6
+ db $4, $8, $2f, $6
+ db $4, $10, $30, $6
+
+Unknown_117255: ; 117255
+ db $9
+ db $14, $0, $35, $6
+ db $14, $8, $4a, $6
+ db $14, $10, $35, $6
+ db $c, $0, $3d, $6
+ db $c, $8, $35, $6
+ db $c, $10, $3d, $26
+ db $4, $0, $31, $6
+ db $4, $8, $32, $6
+ db $4, $10, $31, $26
+
+Unknown_11727a: ; 11727a
+ db $9
+ db $14, $0, $4b, $6
+ db $14, $8, $4c, $6
+ db $14, $10, $4d, $6
+ db $c, $0, $3e, $6
+ db $c, $8, $3f, $6
+ db $c, $10, $40, $6
+ db $4, $0, $33, $6
+ db $4, $8, $34, $6
+ db $4, $10, $35, $6
+
+Unknown_11729f: ; 11729f
+ db $9
+ db $14, $0, $4e, $6
+ db $14, $8, $4f, $6
+ db $14, $10, $50, $6
+ db $c, $0, $41, $6
+ db $c, $8, $42, $6
+ db $c, $10, $43, $6
+ db $4, $0, $35, $6
+ db $4, $8, $36, $6
+ db $4, $10, $37, $6
+
+Unknown_1172c4: ; 1172c4
+ db $9
+ db $14, $0, $51, $6
+ db $14, $8, $52, $6
+ db $14, $10, $35, $6
+ db $c, $0, $44, $6
+ db $c, $8, $45, $6
+ db $c, $10, $46, $6
+ db $4, $0, $38, $6
+ db $4, $8, $39, $6
+ db $4, $10, $3a, $6
+
+Unknown_1172e9: ; 1172e9
+ db $9
+ db $10, $0, $0, $2
+ db $10, $8, $0, $2
+ db $10, $10, $0, $2
+ db $8, $0, $0, $2
+ db $8, $8, $0, $2
+ db $c, $10, $1f, $6
+ db $0, $0, $0, $2
+ db $0, $8, $0, $2
+ db $4, $10, $10, $6
+; 11730e
+
+Palette_11730e:
+ RGB 31, 31, 31
+ RGB 7, 5, 4
+ RGB 31, 28, 4
+ RGB 31, 5, 5
+ RGB 31, 31, 31
+ RGB 7, 5, 4
+ RGB 31, 23, 0
+ RGB 31, 28, 4
+ RGB 31, 31, 31
+ RGB 16, 19, 31
+ RGB 17, 31, 31
+ RGB 31, 31, 31
+ RGB 5, 5, 5
+ RGB 7, 5, 4
+ RGB 31, 28, 4
+ RGB 19, 11, 6
+ RGB 31, 31, 31
+ RGB 3, 15, 31
+ RGB 4, 25, 25
+ RGB 0, 7, 12
+ RGB 31, 31, 31
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 4, 11, 22
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 22, 11, 8
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+
+Palette_11734e:
+ RGB 31, 30, 30
+ RGB 2, 0, 0
+ RGB 10, 9, 9
+ RGB 15, 14, 14
+
+Unknown_117356: ; 117356
+ db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
+ db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c5, $c6, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c6, $c5, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $d8, $c2, $c2, $d8, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c7, $c8, $ca, $cb, $cc, $cd, $ce, $c2, $cf, $d0, $d1, $d2, $d3, $c2, $d4, $d5
+ db $d6, $d7, $c8, $c7, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
+ db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+
+ db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
+ db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $8f, $0f, $0f, $8f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f
+ db $8f, $8f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
+ db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+; 117656
+
+
+SECTION "Mobile Stadium", ROMX
+
+Special_GiveOddEgg: ; 117656
+ callba GiveOddEgg
+ ret
+
+; 11765d
+
+Function11765d: ; 11765d (45:765d)
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function11766b
+ pop af
+ ld [hInMenu], a
+ ret
+
+Function11766b: ; 11766b (45:766b)
+ call Function117699
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function1176ee
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b1f3
+ ld de, wcd49
+ ld bc, $8
+ call CopyBytes
+ ld de, $c708
+ ld bc, $11
+ call CopyBytes
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function117699: ; 117699 (45:7699)
+ ld a, $5
+ call GetSRAMBank
+ ld hl, wcd49
+ ld de, $b1f3
+ ld bc, $8
+ call CopyBytes
+ ld hl, $c708
+ ld bc, $11
+ call CopyBytes
+ call CloseSRAM
+ xor a
+ ld [wcd49], a
+ ld [wcd4a], a
+ ld [wcd4b], a
+ ld [wcd4c], a
+ ld [wcd4d], a
+ ld [wcd4e], a
+ ld [wcd4f], a
+ ld hl, $c708
+ ld bc, $11
+ call ByteFill
+ call ClearBGPalettes
+ call ClearSprites
+ callba Function171c87
+ callba ReloadMapPart
+ callba ClearSpriteAnims
+ ret
+
+Function1176ee: ; 1176ee (45:76ee)
+.loop
+ call JoyTextDelay
+ ld a, [wcd49]
+ bit 7, a
+ jr nz, .quit
+ call Function117719
+ callba PlaySpriteAnimations
+ callba ReloadMapPart
+ jr .loop
+
+.quit
+ callba ClearSpriteAnims
+ call ClearBGPalettes
+ call ClearScreen
+ call ClearSprites
+ ret
+
+Function117719: ; 117719 (45:7719)
+ ld a, [wcd49]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_117728
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+Jumptable_117728: ; 117728 (45:7728)
+ dw Function117738
+ dw Function117764
+ dw Function1178aa
+ dw Function1178e8
+ dw Function117942
+ dw Function117976
+ dw Function117984
+ dw Function1179a7
+
+
+Function117738: ; 117738 (45:7738)
+ callba Function171ccd
+ depixel 6, 3
+ ld a, $1d
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $6
+ ld [hl], a
+ depixel 9, 4
+ ld a, $1d
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $7
+ ld [hl], a
+ ld a, $3
+ ld [wcd23], a
+ jp MobilePassword_IncrementJumptable
+
+Function117764: ; 117764 (45:7764)
+ ld a, [wcd4a]
+ cp $10
+ jr nz, .asm_11776f
+ ld a, $1
+ jr .asm_117770
+
+.asm_11776f
+ xor a
+.asm_117770
+ ld [wcd24], a
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and SELECT
+ jr nz, Function117764_select
+ ld a, [hl]
+ and START
+ jr nz, Function117764_start
+ ld a, [hl]
+ and A_BUTTON
+ jp nz, Function117764_a_button
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, Function117764_b_button
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, Function117764_d_up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Function117764_d_down
+ ld a, [hl]
+ and D_LEFT
+ jp nz, Function117764_d_left
+ ld a, [hl]
+ and D_RIGHT
+ jp nz, Function117764_d_right
+ ret
+
+Function117764_select: ; 1177a5 (45:77a5)
+ callba Function171cf0
+ ret
+
+Function117764_start: ; 1177ac (45:77ac)
+ ld a, $2
+ ld [wcd4c], a
+ ld a, $4
+ ld [wcd4d], a
+ ret
+
+Function1177b7: ; 1177b7 (45:77b7)
+ ld a, $3
+ ld [wcd24], a
+ ld a, [wcd4a]
+ and a
+ jr z, .asm_1177c5
+ jp MobilePassword_IncrementJumptable
+
+.asm_1177c5
+ ld a, $6
+ ld [wcd49], a
+ ret
+
+Function1177cb: ; 1177cb (45:77cb)
+ ld a, $80
+ ld [wcd49], a
+ ld [ScriptVar], a
+ jp MobilePassword_IncrementJumptable
+
+Function117764_b_button: ; 1177d6 (45:77d6)
+ call PlayClickSFX
+ ld a, [wcd4a]
+ and a
+ ret z
+ dec a
+ ld [wcd4a], a
+ ld e, a
+ ld d, $0
+ ld hl, $c708
+ add hl, de
+ xor a
+ ld [hl], a
+ hlcoord 2, 4
+ add hl, de
+ ld [hl], a
+ ret
+
+Function117764_d_up: ; 1177f1 (45:77f1)
+ ld a, [wcd4d]
+ and a
+ ret z
+ dec a
+ ld [wcd4d], a
+ cp $3
+ ret nz
+ ld a, [wcd4c]
+ ld e, a
+ sla a
+ sla a
+ add e
+Function117764_d_vertical_load: ; 117806 (45:7806)
+ ld [wcd4c], a
+ ret
+
+Function117764_d_down: ; 11780a (45:780a)
+ ld a, [wcd4d]
+ cp $4
+ ret z
+ inc a
+ ld [wcd4d], a
+ cp $4
+ ret nz
+ ld a, [wcd4c]
+ cp $a
+ jr nc, .asm_117825
+ cp $5
+ jr nc, .asm_117829
+ xor a
+ jr Function117764_d_vertical_load
+
+.asm_117825
+ ld a, $2
+ jr Function117764_d_vertical_load
+
+.asm_117829
+ ld a, $1
+ jr Function117764_d_vertical_load
+
+Function117764_d_left: ; 11782d (45:782d)
+ ld a, [wcd4c]
+ and a
+ ret z
+ dec a
+ ld [wcd4c], a
+ ret
+
+Function117764_d_right: ; 117837 (45:7837)
+ ld e, $d
+ ld a, [wcd4d]
+ cp $4
+ jr nz, .wrap
+ ld e, $2
+.wrap
+ ld a, [wcd4c]
+ cp e
+ ret z
+ inc a
+ ld [wcd4c], a
+ ret
+
+Function117764_a_button: ; 11784c (45:784c)
+ call PlayClickSFX
+ ld a, [wcd4d]
+ cp $4
+ jr nz, .not_4
+ ld a, [wcd4c]
+ cp $2
+ jp z, Function1177b7
+ cp $1
+ jp z, Function1177cb
+ jp Function117764_select
+
+.not_4
+ ld a, [wcd4a]
+ ld e, a
+ cp $10
+ jp z, Function117764_start
+ inc a
+ ld [wcd4a], a
+ ld d, $0
+ ld a, [wcd4b]
+ and a
+ jr nz, .ascii_symbols
+ ld hl, Unknown_117a0f
+ jr .got_ascii
+
+.ascii_symbols
+ ld hl, Unknown_117a47
+.got_ascii
+ push de
+ ld a, [wcd4c]
+ ld b, a
+ ld a, [wcd4d]
+ ld c, $e
+ call SimpleMultiply
+ add b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld hl, $c708
+ add hl, de
+ ld [hl], a
+ pop de
+ hlcoord 2, 4
+ add hl, de
+ sub $20
+ ld [hl], a
+ ld a, e
+ cp $f
+ ret nz
+ jp Function117764_start
+
+Function1178aa: ; 1178aa (45:78aa)
+ ld hl, MenuDataHeader_1179b5
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ ld hl, MenuDataHeader_1179bd
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ callba ReloadMapPart
+ hlcoord 16, 8
+ ld de, YessNoString_1179c5
+ call PlaceString
+ hlcoord 15, 10
+ ld a, "▶"
+ ld [hl], a
+ hlcoord 1, 14
+ ld de, AskSavePasswordString
+ call PlaceString
+ ld a, $1
+ ld [wcd4e], a
+ jp MobilePassword_IncrementJumptable
+
+Function1178e8: ; 1178e8 (45:78e8)
+ ld a, [hJoyPressed]
+ cp B_BUTTON
+ jr z, .b_button
+ cp A_BUTTON
+ jr z, .a_button
+ cp D_DOWN
+ jr z, .d_down
+ cp D_UP
+ ret nz
+ ld a, [wcd4e]
+ and a
+ ret z
+ dec a
+ ld [wcd4e], a
+ hlcoord 15, 8
+ ld a, "▶"
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, " "
+ ld [hl], a
+ ret
+
+.d_down
+ ld a, [wcd4e]
+ and a
+ ret nz
+ inc a
+ ld [wcd4e], a
+ hlcoord 15, 8
+ ld a, " "
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, "▶"
+ ld [hl], a
+ ret
+
+.a_button
+ call PlayClickSFX
+ ld a, [wcd4e]
+ and a
+ jr nz, .b_button
+ call ExitMenu
+ ld a, $1
+ ld [wcd4f], a
+ jp MobilePassword_IncrementJumptable
+
+.b_button
+ call ExitMenu
+ call ExitMenu
+ jp MobilePassword_IncrementJumptable
+
+Function117942: ; 117942 (45:7942)
+ call SpeechTextBox
+ hlcoord 1, 14
+ ld de, SavedPasswordString
+ call PlaceString
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ ld a, [wcd4f]
+ ld [sMobileLoginPassword], a
+ ld hl, $c708
+ ld de, sMobileLoginPassword + 1
+ ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
+ call CopyBytes
+ call CloseSRAM
+ ld a, [wcd4f]
+ and a
+ jr z, asm_11797e
+ call MobilePassword_IncrementJumptable
+
+Function117976: ; 117976 (45:7976)
+ ld hl, wcd4e
+ dec [hl]
+ ret nz
+ call ExitMenu
+asm_11797e: ; 11797e (45:797e)
+ ld a, $80
+ ld [wcd49], a
+ ret
+
+Function117984: ; 117984 (45:7984)
+ ld hl, MenuDataHeader_1179b5
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ callba ReloadMapPart
+ hlcoord 1, 14
+ ld de, NotAPokemonPasswordString
+ call PlaceString
+ ld a, $1e
+ ld [wcd4e], a
+ call MobilePassword_IncrementJumptable
+
+Function1179a7: ; 1179a7 (45:79a7)
+ ld hl, wcd4e
+ dec [hl]
+ ret nz
+ call ExitMenu
+ ld a, $1
+ ld [wcd49], a
+ ret
+
+; 1179b5 (45:79b5)
+
+MenuDataHeader_1179b5: ; 1179b5
+ db $40 ; flags
+ db 12, 0 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 1179bd
+
+MenuDataHeader_1179bd: ; 1179bd
+ db $40 ; flags
+ db 7, 14 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 1179c5
+
+
+YessNoString_1179c5: ; 1179c5
+ db "はい"
+ next "いいえ@"
+; 1179cc
+
+AskSavePasswordString: ; 1179cc
+ db "こ%パスワード¯ほぞんして"
+ line "おきますか?@"
+; 1179e1
+
+NotAPokemonPasswordString: ; 1179e1
+ db "パスワード<PKMN>にゅうりょく"
+ line "されていません!@"
+; 1179f7
+
+SavedPasswordString: ; 1179f7
+ db "ログインパスワード¯ほぞん"
+ line "しました@"
+; 117a0a
+
+MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a)
+ ld hl, wcd49
+ inc [hl]
+ ret
+
+; 117a0f (45:7a0f)
+
+Unknown_117a0f:
+INCBIN "data/mobile/ascii-alpha.txt"
+
+Unknown_117a47:
+INCBIN "data/mobile/ascii-sym.txt"
+; 117a7f
+
+
+; everything from here to the end of the bank is related to the
+; Mobile Stadium option from the continue/newgame menu.
+; XXX better function names
+MobileStudium: ; 0x117a7f
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function117a8d
+ pop af
+ ld [hInMenu], a
+ ret
+
+; 0x117a8d
+
+Function117a8d: ; 0x117a8d
+ call Function117a94
+ call Function117acd
+ ret
+
+; 0x117a94
+
+Function117a94: ; 0x117a94
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ call ClearBGPalettes
+ call ClearSprites
+ callba Function172e78
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ ret
+
+; 0x117ab4
+
+Function117ab4: ; 0x117ab4
+ call ClearBGPalettes
+ call ClearSprites
+ callba Function172e78
+ callba Function172eb9
+ callba ReloadMapPart
+ ret
+
+; 0x117acd
+
+Function117acd: ; 0x117acd
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_117ae2
+ call Function117ae9
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ jr Function117acd
+
+.asm_117ae2
+ call ClearBGPalettes
+ call ClearSprites
+ ret
+
+Function117ae9: ; 0x117ae9
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, $0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.Jumptable: ; 0x117af8
+ dw Function117b06
+ dw Function117b14
+ dw Function117b28
+ dw Function117b31
+ dw Function117b4f
+ dw Function117bb6
+ dw Function117c4a
+
+Function117b06:
+ callba Function172eb9
+ ld a, $10
+ ld [wcf64], a
+ jp MobileStudium_JumptableIncrement
+
+Function117b14:
+ ld hl, wcf64
+ dec [hl]
+ ret nz
+ ld hl, MenuDataHeader_117cbc
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ jp MobileStudium_JumptableIncrement
+
+Function117b28:
+ ld hl, MobileStadiumEntryText
+ call PrintText
+ jp MobileStudium_JumptableIncrement
+
+Function117b31:
+ ld hl, MenuDataHeader_117cc4
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ hlcoord 16, 8
+ ld de, YesNo117ccc
+ call PlaceString
+ hlcoord 15, 8
+ ld a, "▶"
+ ld [hl], a
+ jp MobileStudium_JumptableIncrement
+
+Function117b4f:
+ ld a, [hJoyPressed]
+ cp B_BUTTON
+ jr z, .b_button
+ cp A_BUTTON
+ jr z, .a_button
+ cp D_DOWN
+ jr z, .d_down
+ cp D_UP
+ ret nz
+ ld a, [wcf64]
+ and a
+ ret z
+ dec a
+ ld [wcf64], a
+ hlcoord 15, 8
+ ld a, "▶"
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, " "
+ ld [hl], a
+ ret
+
+.d_down
+ ld a, [wcf64]
+ and a
+ ret nz
+ inc a
+ ld [wcf64], a
+ hlcoord 15, 8
+ ld a, " "
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, "▶"
+ ld [hl], a
+ ret
+
+.a_button
+ call PlayClickSFX
+ ld a, [wcf64]
+ and a
+ jr nz, .b_button
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ jp MobileStudium_JumptableIncrement
+
+.b_button
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+Function117bb6:
+ call Function117c89
+ ld a, $1
+ ld [hBGMapMode], a
+ callba Function118284
+ call ClearSprites
+ ld a, [wc300]
+ and a
+ jr z, .asm_117be7
+ cp $a
+ jr z, .asm_117be1
+.asm_117bd0
+ ld a, $2
+ ld [wc303], a
+ callba DisplayMobileError
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+.asm_117be1
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+.asm_117be7
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [wcd89]
+ and $1
+ jr nz, .asm_117c16
+ ld a, [w3_d000]
+ cp $fe
+ jr nz, .asm_117c16
+ ld a, [w3_d001]
+ cp $f
+ jr nz, .asm_117c16
+ ld hl, w3_dfec
+ ld de, wcd69
+ ld c, $10
+.asm_117c0b
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .asm_117c16
+ inc hl
+ dec c
+ jr nz, .asm_117c0b
+ jr .asm_117c20
+
+.asm_117c16
+ pop af
+ ld [rSVBK], a
+ ld a, $d3
+ ld [wc300], a
+ jr .asm_117bd0
+
+.asm_117c20
+ pop af
+ ld [rSVBK], a
+ callba Function172eb9
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, $7
+ call GetSRAMBank
+ ld hl, w3_d002
+ ld de, $b000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ jp MobileStudium_JumptableIncrement
+
+Function117c4a:
+ ld hl, MenuDataHeader_117cbc
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ callba ReloadMapPart
+ ld hl, MobileStadiumSuccessText
+ call PrintText
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, UnknBGPals
+ ld de, 1 palettes
+ ld c, 8
+.loop
+ push hl
+ ld a, $7fff % $100
+ ld [hli], a
+ ld a, $7fff / $100
+ ld [hl], a
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .loop
+ call RotateThreePalettesRight
+ pop af
+ ld [rSVBK], a
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+Function117c89:
+ ld a, $7
+ call GetSRAMBank
+ ld l, $0
+ ld h, l
+ ld de, $b000
+ ld bc, $0ffc
+.asm_117c97
+ push bc
+ ld a, [de]
+ inc de
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_117c97
+ ld a, l
+ ld [wcd83], a
+ ld a, h
+ ld [wcd84], a
+ ld hl, $bfea
+ ld de, wcd69
+ ld bc, $10
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+MenuDataHeader_117cbc: ; 0x117cbc
+ db $40 ; flags
+ db 12, 0 ; start coords
+ db 17, 19 ; end coords
+ dw NULL ; menu data 2
+ db 0 ; default option
+
+MenuDataHeader_117cc4: ; 0x117cc4
+ db $40 ; flags
+ db 7, 14 ; start coords
+ db 11, 19 ; end coords
+ dw NULL ; menu data 2
+ db 0 ; default item
+
+YesNo117ccc: ; 0x117ccc
+ db "はい"
+ next "いいえ@"
+
+MobileStadiumEntryText: ; 0x117cd3
+ text_jump _MobileStadiumEntryText
+ db "@"
+
+MobileStadiumSuccessText: ; 0x117cd8
+ text_jump _MobileStadiumSuccessText
+ db "@"
+
+MobileStudium_JumptableIncrement: ; 0x117cdd
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
--- /dev/null
+++ b/mobile/mobile_45_sprite_engine.asm
@@ -1,0 +1,922 @@
+Function115d99: ; 115d99
+ ld de, GFX_11601a
+ ld hl, VTiles0 tile $60
+ lb bc, BANK(GFX_11601a), $14
+ call Get2bpp
+ xor a
+ ld [wc305], a
+ ld [wc306], a
+ ld [wc309], a
+ ld [wc30a], a
+ ld [wc30b], a
+ ld [wc30c], a
+ ld a, $10
+ ld [wc307], a
+ ld a, $18
+ ld [wc308], a
+ ret
+
+; 115dc3
+
+Function115dc3: ; 115dc3
+ xor a
+ ld [wc305], a
+ ld a, $a0
+ ld hl, Sprites + 31 * 4
+ ld bc, 8 * 4
+ call ByteFill
+ ret
+
+; 115dd3
+
+Function115dd3: ; 115dd3
+ ld a, [wc305]
+ and a
+ ret z
+ ld a, $a0
+ ld hl, Sprites + 31 * 4
+ ld bc, 8 * 4
+ call ByteFill
+ call Function115e22
+ ld a, [wc309]
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_115e86
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld de, Sprites + 31 * 4
+ ld a, [wc307]
+ ld c, a
+ ld a, [wc308]
+ ld b, a
+ ld a, [hli]
+.asm_115e04
+ push af
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_115e04
+ ret
+
+; 115e18
+
+Function115e18: ; 115e18
+ ld a, c
+ ld [wc30a], a
+ xor a
+ ld [wc30b], a
+ jr Function115e2b
+
+; 115e22
+
+Function115e22: ; 115e22
+ ld hl, wc30c
+ dec [hl]
+ ret nz
+ ld hl, wc30b
+ inc [hl]
+
+Function115e2b: ; 115e2b
+ ld a, [wc30a]
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_115e59
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc30b]
+ sla a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ cp $ff
+ jr nz, .not_end
+ xor a
+ ld [wc30b], a
+ jr Function115e2b
+
+.not_end
+ ld [wc309], a
+ ld a, [hl]
+ ld [wc30c], a
+ ret
+
+; 115e59
+
+Unknown_115e59:
+ dw Unknown_115e61
+ dw Unknown_115e6c
+ dw Unknown_115e76
+ dw Unknown_115e79
+
+; OAM idx (see Unknown_115e86), flip flags/duration
+Unknown_115e61: ; 115e61
+ db $04, $08
+ db $05, $08
+ db $06, $08
+ db $07, $08
+ db $08, $08
+ db -1
+
+Unknown_115e6c: ; 115e6c
+ db $01, $08
+ db $02, $08
+ db $03, $08
+ db $09, $08
+ db $0a, $08
+Unknown_115e76: ; 115e76
+ db $00, $08
+ db -1
+
+Unknown_115e79: ; 115e79
+ db $0b, $08
+ db $0c, $08
+ db $0d, $08
+ db $0e, $08
+ db $0f, $08
+ db $00, $08
+ db -1
+; 115e86
+
+Unknown_115e86:
+ dw Unknown_115ea6
+ dw Unknown_115eb7
+ dw Unknown_115ecc
+ dw Unknown_115ee1
+ dw Unknown_115ef6
+ dw Unknown_115f13
+ dw Unknown_115f30
+ dw Unknown_115f4d
+ dw Unknown_115f6a
+ dw Unknown_115f87
+ dw Unknown_115f9c
+ dw Unknown_115fb1
+ dw Unknown_115fc6
+ dw Unknown_115fdb
+ dw Unknown_115ff0
+ dw Unknown_116005
+
+Unknown_115ea6: ; 115ea6
+ db 4
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115eb7: ; 115eb7
+ db 5
+ dsprite 0, 0, 1, 0, $64, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115ecc: ; 115ecc
+ db 5
+ dsprite 0, 0, 1, 0, $65, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115ee1: ; 115ee1
+ db 5
+ dsprite 0, 0, 1, 0, $66, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115ef6: ; 115ef6
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $6d, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f13: ; 115f13
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $6e, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f30: ; 115f30
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $6f, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f4d: ; 115f4d
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $70, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f6a: ; 115f6a
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $71, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f87: ; 115f87
+ db 5
+ dsprite 0, 0, 1, 0, $72, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115f9c: ; 115f9c
+ db 5
+ dsprite 0, 0, 1, 0, $73, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115fb1: ; 115fb1
+ db 5
+ dsprite 0, 1, 1, 0, $64, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115fc6: ; 115fc6
+ db 5
+ dsprite 0, 1, 1, 0, $65, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115fdb: ; 115fdb
+ db 5
+ dsprite 0, 1, 1, 0, $66, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115ff0: ; 115ff0
+ db 5
+ dsprite 0, 1, 1, 0, $72, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_116005: ; 116005
+ db 5
+ dsprite 0, 1, 1, 0, $73, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+; 11601a
+
+GFX_11601a:: ; 11601a
+INCBIN "gfx/unknown/11601a.2bpp"
+
+
+Function11615a: ; 11615a
+ xor a
+ ld [wc30d], a
+ ld [$c319], a
+ ld [wc310], a
+ ld [wc311], a
+ ld [wc312], a
+ ld [wc313], a
+ ld [wc314], a
+ ld [wc314 + 1], a
+ ld [wc314 + 4], a
+ ld [wc3f6], a
+ ld [wc3f8], a
+ ld [wc3f2], a
+ ld [wc3f4], a
+ ld a, $24
+ ld [wc3f5], a
+ ld a, $7
+ ld [wc3f7], a
+ ld a, $b0
+ ld [wc30e], a
+ ld [wc3f1], a
+ ld a, $48
+ ld [wc30f], a
+ ld [wc3f3], a
+ ret
+
+; 11619d
+
+Function11619d: ; 11619d
+ ld a, [wc30d]
+ and a
+ ret z
+ ld a, [$c319]
+ cp $2
+ jr c, .asm_1161b4
+ ld a, $a0
+ ld hl, Sprites
+ ld bc, $0064
+ call ByteFill
+
+.asm_1161b4
+ call Function1161b8
+ ret
+
+; 1161b8
+
+Function1161b8: ; 1161b8
+ ld a, [$c319]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+; 1161c7
+
+.Jumptable: ; 1161c7
+ dw Function1161d5
+ dw Function116294
+ dw Function1162cb
+ dw Function1162f2
+ dw Function1163c0
+ dw Function11636e
+ dw Function116441
+; 1161d5
+
+Function1161d5: ; 1161d5
+ ld a, [rSVBK]
+ push af
+
+ ld a, $6
+ ld [rSVBK], a
+
+ ld hl, Unknown_117356
+ ld de, wDecompressScratch
+ ld bc, $0300
+ call CopyBytes
+
+ di
+
+.wait_for_vblank
+; Wait until a vblank would occur had interrupts not just been disabled.
+ ld a, [rLY]
+ cp $91
+ jr nz, .wait_for_vblank
+
+ ld a, $d0
+ ld [rHDMA1], a
+ ld a, $0
+ ld [rHDMA2], a
+ ld a, $1c
+ ld [rHDMA3], a
+ xor a
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $d0
+ ld [rHDMA1], a
+ ld a, $80
+ ld [rHDMA2], a
+ ld a, $1c
+ ld [rHDMA3], a
+ ld a, $80
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $d1
+ ld [rHDMA1], a
+ ld a, $0
+ ld [rHDMA2], a
+ ld a, $1d
+ ld [rHDMA3], a
+ xor a
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $1
+ ld [rVBK], a
+
+ ld a, $d1
+ ld [rHDMA1], a
+ ld a, $80
+ ld [rHDMA2], a
+ ld a, $1c
+ ld [rHDMA3], a
+ xor a
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $d2
+ ld [rHDMA1], a
+ ld a, $0
+ ld [rHDMA2], a
+ ld a, $1c
+ ld [rHDMA3], a
+ ld a, $80
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $d2
+ ld [rHDMA1], a
+ ld a, $80
+ ld [rHDMA2], a
+ ld a, $1d
+ ld [rHDMA3], a
+ xor a
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ xor a
+ ld [rVBK], a
+
+ ei
+
+ pop af
+ ld [rSVBK], a
+
+ callba ReloadMapPart
+ ld a, $8
+ ld [MusicFade], a
+ ld de, MUSIC_MOBILE_ADAPTER
+ ld a, e
+ ld [MusicFadeID], a
+ ld a, d
+ ld [MusicFadeID + 1], a
+ ld a, [$c319]
+ inc a
+ ld [$c319], a
+ ret
+
+; 11628c
+
+MenuDataHeader_11628c: ; 11628c
+ db $40 ; flags
+ db 6, 0 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 116294
+
+Function116294: ; 116294
+ callba Function170d02
+ ld a, [$c319]
+ inc a
+ ld [$c319], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, UnknBGPals palette 6
+ ld de, $c320
+ ld bc, 2 palettes
+ call CopyBytes
+ ld hl, Palette_11734e
+ ld de, UnknBGPals palette 7
+ ld bc, 1 palettes
+ call CopyBytes
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ld a, $30
+ ld [hWY], a
+ ret
+
+; 1162cb
+
+Function1162cb: ; 1162cb
+ callba Function170cc6
+ ld a, [$c319]
+ inc a
+ ld [$c319], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_11730e
+ ld de, UnknOBPals + 2 palettes
+ ld bc, 6 palettes
+ call CopyBytes
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ret
+
+; 1162f2
+
+Function1162f2: ; 1162f2
+ call Function11659d
+ call Function116758
+ call Function1167a6
+ ld a, [wc310]
+ cp EGG
+ ret z
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_1168c5
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc30e]
+ ld c, a
+ ld a, [wc30f]
+ ld b, a
+ ld a, [wc314 + 4]
+ ld e, a
+ ld a, [hli]
+ sub e
+ ld de, Sprites + $24
+.asm_116321
+ push af
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_116321
+ call Function116468
+ ld a, [wc3f5]
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_1168c5
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc3f1]
+ ld c, a
+ ld a, [wc3f3]
+ ld b, a
+ ld a, [wc3f8]
+ ld e, a
+ ld a, [hli]
+ sub e
+ ld de, Sprites
+.asm_11635a
+ push af
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_11635a
+ ret
+
+; 11636e
+
+Function11636e: ; 11636e
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld de, UnknBGPals
+ ld bc, $0040
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call SetPalettes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $a0
+ ld hl, Sprites
+ ld bc, 16 * 4
+ call ByteFill
+ ld a, $90
+ ld [hWY], a
+ call UpdateSprites
+ pop af
+ ld [rSVBK], a
+ callba ReloadMapPart
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [wMapMusic]
+ ld [MusicFadeID], a
+ xor a
+ ld [MusicFadeID + 1], a
+ xor a
+ ld [$c319], a
+ ld [wc30d], a
+ ret
+
+; 1163c0
+
+Function1163c0: ; 1163c0
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $a0
+ ld hl, Sprites
+ ld bc, 16 * 4
+ call ByteFill
+ call DelayFrame
+ callba Function14146
+ ld b, SCGB_MAPPALS
+ call GetSGBLayout
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $c320
+ ld de, wd030
+ ld bc, $0010
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call SetPalettes
+ call DelayFrame
+ ld a, $90
+ ld [hWY], a
+ call UpdateSprites
+ callba Function14157
+ pop af
+ ld [rSVBK], a
+ callba ReloadMapPart
+ ld a, [wLinkMode]
+ cp $4
+ jr z, .asm_11642a
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [wMapMusic]
+ ld [MusicFadeID], a
+ xor a
+ ld [MusicFadeID + 1], a
+ jr .asm_116439
+
+.asm_11642a
+ ld a, $8
+ ld [MusicFade], a
+ ld a, $0
+ ld [MusicFadeID], a
+ ld a, $0
+ ld [MusicFadeID + 1], a
+
+.asm_116439
+ xor a
+ ld [$c319], a
+ ld [wc30d], a
+ ret
+
+; 116441
+
+Function116441: ; 116441
+ callba Function17d405
+ ld a, $90
+ ld [hWY], a
+ callba ReloadMapPart
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [wMapMusic]
+ ld [MusicFadeID], a
+ xor a
+ ld [MusicFadeID + 1], a
+ xor a
+ ld [$c319], a
+ ld [wc30d], a
+ ret
+
+; 116468
+
+Function116468: ; 116468
+ call Function116567
+ ld a, [wc314]
+ cp $d
+ jr nz, .asm_1164a8
+ ld hl, wc30e
+ ld a, [hl]
+ cp $50
+ jr nc, .asm_116484
+ ld a, $50
+ sub [hl]
+ add $50
+ ld [wc3f1], a
+ jr .asm_11648d
+
+.asm_116484
+ sub $50
+ ld c, a
+ ld a, $50
+ sub c
+ ld [wc3f1], a
+
+.asm_11648d
+ ld hl, wc30f
+ ld a, [hl]
+ cp $60
+ jr nc, .asm_11649e
+ ld a, $60
+ sub [hl]
+ add $60
+ ld [wc3f3], a
+ ret
+
+.asm_11649e
+ sub $60
+ ld c, a
+ ld a, $60
+ sub c
+ ld [wc3f3], a
+ ret
+
+.asm_1164a8
+ ld hl, wc30e
+ ld a, $b0
+ cp [hl]
+ jr nc, .asm_1164b8
+ ld a, [wc3f1]
+ and a
+ jr z, .asm_11650b
+ jr .asm_1164f2
+
+.asm_1164b8
+ ld a, [wc3f1]
+ sub [hl]
+ jr nc, .asm_1164c1
+ xor $ff
+ inc a
+
+.asm_1164c1
+ ld b, a
+ ld c, $0
+ ld a, $5
+.asm_1164c6
+ srl b
+ rr c
+ dec a
+ jr nz, .asm_1164c6
+ ld a, c
+ ld [wc3fa], a
+ ld a, b
+ ld [wc3f9], a
+ ld a, [wc3f1]
+ sub [hl]
+ jr c, .asm_1164f2
+ ld c, $0
+ ld a, [wc3fa]
+ xor $ff
+ add $1
+ rl c
+ ld [wc3fa], a
+ ld a, [wc3f9]
+ xor $ff
+ add c
+ ld [wc3f9], a
+
+.asm_1164f2
+ ld a, [wc3f2]
+ ld l, a
+ ld a, [wc3f1]
+ ld h, a
+ ld a, [wc3fa]
+ ld e, a
+ ld a, [wc3f9]
+ ld d, a
+ add hl, de
+ ld a, l
+ ld [wc3f2], a
+ ld a, h
+ ld [wc3f1], a
+
+.asm_11650b
+ ld hl, wc30f
+ ld a, $b0
+ cp [hl]
+ jr c, .asm_11654d
+ ld a, [wc3f3]
+ sub [hl]
+ jr nc, .asm_11651c
+ xor $ff
+ inc a
+
+.asm_11651c
+ ld b, a
+ ld c, $0
+ ld a, $5
+.asm_116521
+ srl b
+ rr c
+ dec a
+ jr nz, .asm_116521
+ ld a, c
+ ld [wc3fc], a
+ ld a, b
+ ld [wc3fb], a
+ ld a, [wc3f3]
+ sub [hl]
+ jr c, .asm_11654d
+ ld c, $0
+ ld a, [wc3fc]
+ xor $ff
+ add $1
+ rl c
+ ld [wc3fc], a
+ ld a, [wc3fb]
+ xor $ff
+ add c
+ ld [wc3fb], a
+
+.asm_11654d
+ ld a, [wc3f4]
+ ld l, a
+ ld a, [wc3f3]
+ ld h, a
+ ld a, [wc3fc]
+ ld e, a
+ ld a, [wc3fb]
+ ld d, a
+ add hl, de
+ ld a, l
+ ld [wc3f4], a
+ ld a, h
+ ld [wc3f3], a
+ ret
--- /dev/null
+++ b/mobile/mobile_46.asm
@@ -1,0 +1,7987 @@
+SECTION "bank46", ROMX
+
+Function118000: ; 118000
+ ld a, $1
+ ld [wcd38], a
+ jr asm_11800b
+
+Function118007: ; 118007
+ xor a
+ ld [wcd38], a
+
+asm_11800b
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $18
+ ld [wcd33], a
+ ld a, $19
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.loop
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1b
+ jr c, .skip
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.skip
+ call Function1184a5
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .loop
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+BattleTowerRoomMenu_DoNothing: ; 11805e (46:405e)
+ ret
+; 11805f
+
+Function11805f: ; 11805f
+ ld a, $1
+ ld [wcd38], a
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $18
+ ld [wcd33], a
+ ld a, $19
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11807d
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1b
+ jr c, .asm_118090
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_118090
+ call Function11857c
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11807d
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+ ret
+; 1180b8
+
+Function1180b8: ; 1180b8
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $22
+ ld [wcd33], a
+ ld a, $23
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_1180d1
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $28
+ jr c, .asm_1180e4
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_1180e4
+ ld a, [wcf66]
+ cp $10
+ jr c, .asm_1180f2
+ cp $16
+ jr nc, .asm_1180f2
+ call Function11884c
+
+.asm_1180f2
+ call Function1184ec
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1180d1
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+ ret
+; 11811a
+
+Function11811a: ; 11811a
+ ld a, 1
+ ld [wcd38], a
+ jr Function118125
+
+_BattleTowerRoomMenu: ; 118121
+ xor a
+ ld [wcd38], a
+Function118125: ; 118125
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $3
+ ld [wcd33], a
+ ld a, $d
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.loop
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $f
+ jr c, .skip
+ ld a, [wcd34]
+ ld [wcf66], a
+.skip
+ call BattleTowerRoomMenu_Jumptable
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .loop
+ xor a
+ ld [w3_d000], a
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call Function118180
+ call ReturnToMapFromSubmenu
+ ret
+; 118180
+
+Function118180: ; 118180
+ ld a, [ScriptVar]
+ and a
+ ret nz
+ ld a, [wcd38]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld hl, wcd69
+ ld de, $a89c
+ ld bc, $0016
+ call CopyBytes
+
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+
+ ld de, w3_d202
+ ld c, $96
+ callba CheckStringForErrors_IgnoreTerminator
+ jr c, .return_d3
+
+ ld de, w3_d202
+ lb bc, 1, $96
+ callba CheckStringContainsLessThanBNextCharacters
+ jr c, .return_d3
+
+ ld hl, w3_d202
+ ld de, $a8b2
+ ld bc, $0096
+ call CopyBytes
+.reset_banks
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+.return_d3
+ ld a, $d3
+ ld [wc300], a
+ ld [ScriptVar], a
+ jr .reset_banks
+; 1181da
+
+Function1181da: ; 1181da
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $2
+ ld [wcd38], a
+ ld a, $21
+ ld [wcd33], a
+ ld a, $22
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_1181f8
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $28
+ jr c, .asm_11820b
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_11820b
+ call Function1185c3
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1181f8
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+ ret
+; 118233
+
+Function118233: ; 118233
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $1b
+ ld [wcd33], a
+ ld a, $1c
+ ld [wcd34], a
+ ld a, $6
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11824c
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1e
+ jr c, .asm_11825f
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_11825f
+ call Function118624
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11824c
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ ret
+; 118284
+
+Function118284: ; 118284
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $19
+ ld [wcd33], a
+ ld a, $1e
+ ld [wcd34], a
+ ld a, $5
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11829d
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $20
+ jr c, .asm_1182b0
+ ld a, [wcd34]
+ ld [wcf66], a
+.asm_1182b0
+ call Function1186f5
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11829d
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ ret
+; 1182d5 (46:42d5)
+
+
+Function1182d5: ; 1182d5
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $18
+ ld [wcd33], a
+ ld a, $19
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_1182ee
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1b
+ jr c, .asm_118301
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_118301
+ call Function118746
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1182ee
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+ ret
+; 118329
+
+Function118329: ; 118329
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $15
+ ld [wcd33], a
+ ld a, $16
+ ld [wcd34], a
+ ld a, $6
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_118342
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $18
+ jr c, .asm_118355
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_118355
+ call Function118671
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_118342
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ ret
+; 11837a
+
+Function11837a: ; 11837a
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $16
+ ld [wcd33], a
+ ld a, $17
+ ld [wcd34], a
+ ld a, $6
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_118393
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $19
+ jr c, .asm_1183a6
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_1183a6
+ call Function1186b2
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_118393
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ ret
+; 1183cb
+
+BattleTowerRoomMenu_InitRAM: ; 1183cb
+ di
+ ld a, [rIE]
+ ld [wcd32], a
+ call DoubleSpeed
+ xor a
+ ld [rIF], a
+ ld [wc300], a
+ ld [wc301], a
+ ld [wc302], a
+ ld [wcd80], a
+ ld [wcd65], a
+ ld [wcd66], a
+ ld [wcd67], a
+ ld [wcd68], a
+ ld [$c31a], a
+ ld [wcd89], a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld [wc3ec], a
+ ld [wc3ed], a
+ ld [wc3ee], a
+ ld [wc3ef], a
+ ld hl, VramState
+ ld a, [hl]
+ ld [wcd7f], a
+ set 1, [hl]
+ ld a, $f
+ ld [rIE], a
+ ld a, $1
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ ei
+ callba MobileFunc_106462
+ callba Function106464
+ callba Function115d99
+ callba Function11615a
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$bfff], a
+ call CloseSRAM
+ ret
+; 118440
+
+Function118440: ; 118440
+ push af
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$bfff]
+ inc a
+ ld [$bfff], a
+ call CloseSRAM
+ pop af
+ ret
+; 118452
+
+BattleTowerRoomMenu_Cleanup: ; 118452
+ di
+ xor a
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ ld [hVBlank], a
+ call NormalSpeed
+ xor a
+ ld [rIF], a
+ ld a, [wcd32]
+ ld [rIE], a
+ ei
+ ld a, [wcd7f]
+ ld [VramState], a
+ ld a, [wc300]
+ ld [ScriptVar], a
+ ret
+; 118473
+
+Function118473: ; 118473
+ ld a, [wcd65]
+ and a
+ ret z
+ ld a, [wcd66]
+ inc a
+ ld [wcd66], a
+ cp 60
+ ret nz
+ xor a
+ ld [wcd66], a
+ ld a, [wcd67]
+ inc a
+ ld [wcd67], a
+ cp 60
+ ret nz
+ ld a, [wcd68]
+ inc a
+ ld [wcd68], a
+ cp 99
+ jr z, .ninety_nine
+ xor a
+ ld [wcd67], a
+ ret
+
+.ninety_nine
+ xor a
+ ld [wcd65], a
+ ret
+; 1184a5
+
+Function1184a5: ; 1184a5
+ jumptable .Jumptable, wcf66
+; 1184b4
+
+.Jumptable: ; 1184b4
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118a8f
+ dw Function11878d
+ dw Function118d80
+ dw Function118d9b
+ dw Function11878d
+ dw Function118ded
+ dw Function118e6d
+ dw Function11878d
+ dw Function11984e
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 1184ec
+
+Function1184ec: ; 1184ec
+ jumptable .Jumptable, wcf66
+; 1184fb
+
+.Jumptable: ; 1184fb
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function119954
+ dw Function11878d
+ dw Function119973
+ dw Function11878d
+ dw Function119987
+ dw Function11878d
+ dw Function1199b4
+ dw Function1199ca
+ dw Function11878d
+ dw Function1199e2
+ dw Function119b0d
+ dw Function11878d
+ dw Function119b6b
+ dw Function119b3b
+ dw Function11878d
+ dw Function119b52
+ dw Function11878d
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function119b45
+ dw Function11878d
+ dw Function119ac9
+ dw Function118e76
+; 11854d
+
+BattleTowerRoomMenu_Jumptable: ; 11854d
+ jumptable .Jumptable, wcf66
+; 11855c
+
+.Jumptable: ; 11855c
+ dw BattleTowerRoomMenu_PickLevelMessage
+ dw BattleTowerRoomMenu_PlacePickLevelMenu
+ dw BattleTowerRoomMenu_UpdatePickLevelMenu
+ dw BattleTowerRoomMenu_DoNothing
+ dw BattleTowerRoomMenu_PartyMonTopsThisLevelMessage
+ dw BattleTowerRoomMenu_WaitForMessage
+ dw BattleTowerRoomMenu_DelayRestartMenu
+ dw BattleTowerRoomMenu_QuitMessage
+ dw BattleTowerRoomMenu_PlaceYesNoMenu
+ dw BattleTowerRoomMenu_UpdateYesNoMenu
+ dw BattleTowerRoomMenu_UberRestrictionMessage
+ dw BattleTowerRoomMenu_WaitForMessage
+ dw BattleTowerRoomMenu_DelayRestartMenu
+ dw Function118e76 ; mobile
+ dw BattleTowerRoomMenu_CallRoomMenu2 ; mobile
+ dw Function118e76 ; mobile
+; 11857c
+
+Function11857c: ; 11857c
+ jumptable .Jumptable, wcf66
+; 11858b
+
+.Jumptable: ; 11858b
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118a7a
+ dw Function11878d
+ dw Function11891c
+ dw Function1198ee
+ dw Function1198f7
+ dw Function11878d
+ dw Function119937
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 1185c3
+
+Function1185c3: ; 1185c3
+ jumptable .Jumptable, wcf66
+; 1185d2
+
+.Jumptable: ; 1185d2
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118aa4
+ dw Function11878d
+ dw Function118e92
+ dw Function11878d
+ dw Function118eb0
+ dw Function118ec6
+ dw Function118f0d
+ dw Function118f14
+ dw Function118f5e
+ dw Function11878d
+ dw Function118fc0
+ dw Function11878d
+ dw Function119054
+ dw Function1190d0
+ dw Function11878d
+ dw Function1190ec
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw BattleTowerRoomMenu_QuitMessage
+ dw BattleTowerRoomMenu_PlaceYesNoMenu
+ dw BattleTowerRoomMenu_UpdateYesNoMenu
+ dw Function11914e
+ dw Function118e76
+; 118624
+
+Function118624: ; 118624
+ jumptable .Jumptable, wcf66
+; 118633
+
+.Jumptable: ; 118633
+ dw Function118866
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118aa4
+ dw Function11878d
+ dw Function118e92
+ dw Function11878d
+ dw Function11915d
+ dw Function118f68
+ dw Function11878d
+ dw Function119009
+ dw Function11878d
+ dw Function119054
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 118671
+
+Function118671: ; 118671
+ jumptable .Jumptable, wcf66
+; 118680
+
+.Jumptable: ; 118680
+ dw Function118866
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function119380
+ dw Function119388
+ dw Function1193a0
+ dw Function11878d
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 1186b2
+
+Function1186b2: ; 1186b2
+ jumptable .Jumptable, wcf66
+; 1186c1
+
+.Jumptable: ; 1186c1
+ dw Function118866
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function119380
+ dw Function1193e3
+ dw Function1193fb
+ dw Function11878d
+ dw Function119413
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 1186f5
+
+Function1186f5: ; 1186f5 (46:46f5)
+ jumptable .Jumptable, wcf66
+; 118704 (46:4704)
+
+.Jumptable: ; 118704 (46:4704)
+ dw Function11886a
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118abc
+ dw Function11878d
+ dw Function119451
+ dw Function1195f8
+ dw Function119612
+ dw Function119629
+ dw Function119648
+ dw Function11878d
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function11967d
+ dw Function119685
+ dw Function119665
+ dw Function11966d
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 118746 (46:4746)
+
+Function118746: ; 118746
+ jumptable .Jumptable, wcf66
+; 118755
+
+.Jumptable: ; 118755
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118ad0
+ dw Function11878d
+ dw Function1196f2
+ dw Function1197c9
+ dw Function1197dc
+ dw Function11878d
+ dw Function118e6d
+ dw Function11878d
+ dw Function119800
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 11878d
+
+Function11878d: ; 11878d (46:478d)
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_1187af
+ bit 2, a
+ jr nz, .asm_1187d1
+ bit 0, a
+ jr nz, .asm_1187aa
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_1187a7
+ ld a, $3
+ ld [rSVBK], a
+.asm_1187a7
+ jp BattleTowerRoomMenu_IncrementJumptable
+.asm_1187aa
+ call Function118821
+ ret c
+ ret
+.asm_1187af
+ ld a, $0
+ call Function3e32
+ ld [wc300], a
+ ld a, l
+ ld [wc301], a
+ ld a, h
+ ld [wc302], a
+ ld a, $a
+ call Function3e32
+ ld a, [wc3f0]
+ ld [$c319], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ ret
+.asm_1187d1
+ ld hl, wcd89
+ bit 0, [hl]
+ jr nz, .asm_118803
+ set 0, [hl]
+ ld a, $6
+ ld [rSVBK], a
+ ld de, w3_d000
+ ld bc, $1000
+ ld a, [hl]
+ sla a
+ jr c, .asm_1187f9
+ sla a
+ jr c, .asm_1187fd
+ sla a
+ jr c, .asm_1187f5
+ ld a, $24
+ jr .asm_1187ff
+.asm_1187f5
+ ld a, $28
+ jr .asm_1187ff
+.asm_1187f9
+ ld a, $2a
+ jr .asm_1187ff
+.asm_1187fd
+ ld a, $2c
+.asm_1187ff
+ call Function3e32
+ ret
+.asm_118803
+ ld a, $d3
+
+Function118805: ; 118805 (46:4805)
+ ld [wc300], a
+ xor a
+ ld [wc301], a
+ ld [wc302], a
+ ld a, $a
+ call Function3e32
+ ld a, [wc3f0]
+ ld [$c319], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ ret
+
+Function118821: ; 118821 (46:4821)
+ ld a, [$c319]
+ cp $3
+ jr c, .asm_11884a
+ cp $4
+ jr z, .asm_11884a
+ ld a, [hJoyDown]
+ cp $5
+ jr nz, .asm_11884a
+ ld a, $a
+ call Function3e32
+ ld a, $a
+ ld [wc300], a
+ ld a, [wc3f0]
+ ld [$c319], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ scf
+ ret
+.asm_11884a
+ and a
+ ret
+; 11884c (46:484c)
+
+Function11884c: ; 11884c
+ ld a, [hJoyDown]
+ cp $5
+ jr nz, .asm_118864
+ ld a, $a
+ call Function3e32
+ ld a, $a
+ ld [wc300], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ scf
+ ret
+
+.asm_118864
+ and a
+ ret
+; 118866
+
+Function118866:
+ ld a, 2
+ jr asm_11886f
+
+Function11886a: ; 11886a (46:486a)
+ ld a, 1
+ jr asm_11886f
+; 11886e (46:486e)
+
+Function11886e:
+ xor a
+
+asm_11886f
+ ld [BGMapPalBuffer], a
+ ld a, $0
+ ld [wcd3c], a
+ call BattleTowerRoomMenu_IncrementJumptable
+ ld a, [wcd33]
+ ld [wMobileInactivityTimerSeconds], a
+
+Function118880: ; 118880 (46:4880)
+ call BattleTowerRoomMenu2
+ ret c
+ xor a
+ ld [wcf64], a
+ ld [wc807], a
+ ld de, wcd81
+ ld hl, $46
+ ld a, $2
+ jp Function119e2b
+; 118896 (46:4896)
+
+Function118896: ; 118896
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_1188a5
+ bit 2, a
+ jr nz, .asm_1188a5
+ bit 0, a
+ jr z, .asm_1188aa
+
+.asm_1188a5
+ ld a, $34
+ jp Function119e2b
+
+.asm_1188aa
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 1188b0
+
+Function1188b0: ; 1188b0 (46:48b0)
+ ld de, $c346
+ ld a, $c
+ jp Function119e2b
+
+Function1188b8: ; 1188b8 (46:48b8)
+ ld de, wc3ac
+ ld a, $e
+ jp Function119e2b
+
+Function1188c0: ; 1188c0 (46:48c0)
+ ld de, wc3cd
+ ld a, $10
+ jp Function119e2b
+
+Function1188c8: ; 1188c8 (46:48c8)
+ ld a, $1
+ ld [wcd65], a
+ call Function1188e7
+ ld hl, $c708
+.asm_1188d3
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .asm_1188d3
+ call Function119eb4
+ call Function119ec2
+ ld hl, $c708
+ ld a, $6
+ jp Function119e2b
+
+Function1188e7: ; 1188e7 (46:48e7)
+ ld de, $c346
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa4a]
+ call CloseSRAM
+ and a
+ ret z
+ sla a
+ ld c, a
+.asm_1188fa
+ ld a, [de]
+ inc de
+ and a
+ jr nz, .asm_1188fa
+ dec c
+ jr nz, .asm_1188fa
+ ret
+
+Function118903: ; 118903 (46:4903)
+ ld a, [wc3f0]
+ ld [$c319], a
+ ld c, $1
+ callba Function115e18
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+
+Function11891c: ; 11891c
+ call Function118b42
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+
+BattleTowerRoomMenu_PickLevelMessage: ; 118922
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_11892d
+ ld hl, Text_WhatLevelDoYouWantToChallenge
+ jr .asm_118930
+
+.asm_11892d
+ ld hl, Text_CheckBattleRoomListByMaxLevel
+
+.asm_118930
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_PlacePickLevelMenu:
+ ld a, [$c31a]
+ and a
+ ret nz
+ ld hl, MenuDataHeader_119cf7
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ call ApplyTilemap
+ hlcoord 16, 8, AttrMap
+ ld a, $40
+ or [hl]
+ ld [hl], a
+ call WaitBGMap2
+ ld a, $1
+ ld [wcd4f], a
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [StatusFlags]
+ bit 6, a ; Hall Of Fame
+ jr nz, .asm_11896b
+ ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels
+ ld a, 5 ; 4 levels to choose from, including 'Cancel'-option
+ jr .asm_118970
+
+.asm_11896b
+ ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels
+ ld a, 11 ; 10 levels to choose from, including 'Cancel'-option
+
+.asm_118970
+ ld [wcd4a], a
+ ld a, l
+ ld [wcd4b], a
+ ld a, h
+ ld [wcd4c], a
+ ld a, $3
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_UpdatePickLevelMenu:
+ hlcoord 13, 8
+ ld de, String_119d07
+ call PlaceString
+ hlcoord 13, 10
+ ld de, String_119d07
+ call PlaceString
+ ld a, [wcd4b]
+ ld l, a
+ ld a, [wcd4c]
+ ld h, a
+ ld d, $0
+ ld a, [wcd4f]
+ dec a
+ rlca
+ rlca
+ rlca
+ ld e, a
+ add hl, de
+ ld a, l
+ ld e, a
+ ld a, h
+ ld d, a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld bc, StringBuffer3
+.asm_1189b5
+ ld a, [hli]
+ cp $50
+ jr z, .asm_1189c4
+ cp $7f
+ jr z, .asm_1189c2
+ ld [bc], a
+ inc bc
+ jr .asm_1189b5
+
+.asm_1189c2
+ ld a, $50
+
+.asm_1189c4
+ ld [bc], a
+ pop af
+ ld [rSVBK], a
+ hlcoord 13, 9
+ call PlaceString
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b_button
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a_button
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .d_down
+ ld a, [hl]
+ and D_UP
+ jr nz, .d_up
+.asm_1189e5
+ ret
+
+.d_down
+ ld hl, wcd4f
+ dec [hl]
+ jr nz, .asm_1189e5
+ ld a, [wcd4a]
+ ld [hl], a
+ jr .asm_1189e5
+
+.d_up
+ ld a, [wcd4a]
+ ld hl, wcd4f
+ inc [hl]
+ cp [hl]
+ jr nc, .asm_1189e5
+ ld a, $1
+ ld [hl], a
+ jr .asm_1189e5
+
+.a_button
+ call PlayClickSFX
+ ld a, [wcd4f]
+ ld hl, wcd4a
+ cp [hl]
+ jr z, .asm_118a3c
+ dec a
+ and $fe
+ srl a
+ ld [wcf65], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call CloseWindow
+ pop af
+ ld [rSVBK], a
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_118a30
+ call BattleTower_LevelCheck
+ ret c
+ call BattleTower_UbersCheck
+ ret c
+
+.asm_118a30
+ ld a, [wcd4f]
+ ld [w3_d800], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.b_button
+ call PlayClickSFX
+
+.asm_118a3c
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call CloseWindow
+ pop af
+ ld [rSVBK], a
+ ld a, $7
+ ld [wcf66], a
+ ld a, $0
+ ld [wMobileInactivityTimerFrames], a
+ ret
+
+
+
+Function118a54: ; 118a54
+ ld a, [wcd55]
+ ld l, a
+ ld a, [wcd56]
+ ld h, a
+ ld de, wc3ec
+ ld bc, $0004
+ jp Function118ae4
+; 118a65
+
+Function118a65: ; 118a65
+ ld hl, BattleDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 118a7a
+
+Function118a7a: ; 118a7a
+ ld hl, BattleDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 118a8f
+
+Function118a8f: ; 118a8f
+ ld hl, ExchangeDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 118aa4
+
+Function118aa4: ; 118aa4
+ ld hl, NewsDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld a, $5
+ ld [rSVBK], a
+ ld de, w3_d100
+ ld bc, $e00
+ jr Function118b10
+; 118abc
+
+Function118abc: ; 118abc (46:4abc)
+ ld hl, MenuDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jr Function118b10
+; 118ad0 (46:4ad0)
+
+Function118ad0:
+ ld hl, IndexDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jr Function118b10
+
+Function118ae4:
+ push bc
+ push de
+ push hl
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ pop hl
+ ld c, $0
+ ld de, wcc60
+.asm_118af5
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_118b06
+ inc c
+ ld a, c
+ cp $a6
+ jr c, .asm_118af5
+ ld a, $da
+ jp Function118805
+
+.asm_118b06
+ call Function118b24
+ pop de
+ pop bc
+ ld a, $2a
+ jp Function119e2b
+; 118b10
+
+Function118b10:
+ push de
+ push bc
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ call Function118b24
+ pop bc
+ pop de
+ ld a, $2a
+ jp Function119e2b
+
+Function118b24: ; 118b24 (46:4b24)
+ ld hl, $c346
+ ld a, $8
+ ld [hli], a
+ ld a, $c7
+ ld [hli], a
+ ld a, $60
+ ld [hli], a
+ ld a, $cc
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $80
+ ld [wcd89], a
+ ld hl, $c346
+ ret
+; 118b42 (46:4b42)
+
+Function118b42: ; 118b42
+ ld hl, wd002
+ ld a, l
+ ld [wcd51], a
+ ld a, h
+ ld [wcd52], a
+ call Function118b8c
+ ld a, l
+ ld [wcd55], a
+ ld [wcd59], a
+ ld a, h
+ ld [wcd56], a
+ ld [wcd5a], a
+ call Function118b8c
+ ld a, l
+ ld [wcd53], a
+ ld [wcd5d], a
+ ld a, h
+ ld [wcd54], a
+ ld [wcd5e], a
+ call Function118b8c
+ ld a, l
+ ld [wcd57], a
+ ld [wcd5b], a
+ ld a, h
+ ld [wcd58], a
+ ld [wcd5c], a
+ call Function118b8c
+ ld a, l
+ ld [wcd5f], a
+ ld a, h
+ ld [wcd60], a
+ ret
+; 118b8c
+
+Function118b8c: ; 118b8c
+.asm_118b8c
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_118b8c
+ dec hl
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ret
+; 118b9a
+
+Function118b9a: ; 118b9a
+ ld a, h
+ cp $e0
+ ret c
+ ld a, $d3
+ call Function118805
+ and a
+ ret
+; 118ba5
+
+
+ charmap " ", $20 ; revert to ascii
+
+ExchangeDownloadURL: ; 0x118ba5
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0
+
+BattleDownloadURL: ; 0x118bf7
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0
+
+NewsDownloadURL: ; 0x118c47
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0
+
+MenuDownloadURL: ; 0x118c95
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0
+
+IndexDownloadURL: ; 0x118ce5
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0
+
+
+Function118d35: ; 118d35
+; unreferenced
+ ld hl, $d200
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_118d6e
+ ld a, [hli]
+ cp $94
+ jr nz, .asm_118d7b
+ ld a, [hl]
+ cp $5
+ jr nz, .asm_118d7b
+ ld a, [wcd4f]
+ sla a
+ ld b, a
+ sla a
+ sla a
+ add b
+ ld b, a
+ ld a, $5
+ call GetSRAMBank
+ ld a, b
+ ld [$b2fb], a
+ call CloseSRAM
+ callba Function170be4
+ callba Function1700c4
+ jr .asm_118d78
+
+.asm_118d6e
+ ld a, [hli]
+ cp $96
+ jr nz, .asm_118d7b
+ ld a, [hl]
+ cp $0
+ jr nz, .asm_118d7b
+
+.asm_118d78
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_118d7b
+ ld a, $d3
+ jp Function118805
+; 118d80
+
+Function118d80: ; 118d80
+ call Function118e06
+ ld a, [wcd38]
+ and a
+ jr z, .asm_118d8e
+ call BattleTowerRoomMenu_IncrementJumptable
+ jr asm_118d9f
+
+.asm_118d8e
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $12
+ ld [wMobileInactivityTimerSeconds], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function118d9b:
+ call BattleTowerRoomMenu2
+ ret c
+
+asm_118d9f
+ ld hl, $c608
+ call Function119940
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_118db2
+ ld a, $8f
+ ld [wcd3b], a
+ jr .asm_118db7
+
+.asm_118db2
+ ld a, $26
+ ld [wcd3b], a
+
+.asm_118db7
+ ld hl, w3_d800
+ ld a, $8
+ ld [hli], a
+ ld a, $c6
+ ld [hli], a
+ ld a, [wcd3b]
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld a, $8
+ ld [hli], a
+ ld a, $c7
+ ld [hli], a
+ ld a, [wcd39]
+ ld [hli], a
+ ld a, [wcd3a]
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, w3_d800
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+; 118ded
+
+Function118ded: ; 118ded
+ ld a, [wcd38]
+ and a
+ jr z, .asm_118e03
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba Function11b93b
+ pop af
+ ld [rSVBK], a
+
+.asm_118e03
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118e06
+
+Function118e06: ; 118e06
+ ld hl, wd002
+ ld a, [wcd38]
+ and a
+ jr z, .asm_118e1d
+.asm_118e0f
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_118e0f
+ ld a, [hli]
+ cp $a
+ jr nz, .asm_118e0f
+
+.asm_118e1d
+ ld a, l
+ ld [wcd39], a
+ ld a, h
+ ld [wcd3a], a
+.asm_118e25
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_118e25
+ ld a, [hli]
+ cp $a
+ jr nz, .asm_118e25
+ dec hl
+ xor a
+ ld [hld], a
+ ld [hl], a
+ jr asm_118e3e
+
+Function118e39: ; 118e39 (46:4e39)
+.asm_118e39
+ ld a, [hli]
+ and a
+ jr nz, .asm_118e39
+ dec hl
+asm_118e3e
+.asm_118e3e
+ ld a, [hld]
+ cp $2f
+ jr nz, .asm_118e3e
+ inc hl
+ inc hl
+ ld de, wcd85
+ ld c, $4
+.asm_118e4a
+ ld a, [hli]
+ cp $2e
+ jr z, .asm_118e63
+ cp $30
+ jr c, .asm_118e67
+ cp $3a
+ jr nc, .asm_118e67
+ sub $30
+ add $f6
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_118e4a
+ ld de, wcd85
+.asm_118e63
+ ld a, $50
+ ld [de], a
+ ret
+.asm_118e67
+ ld a, $f3
+ ld [de], a
+ inc de
+ jr .asm_118e63
+
+Function118e6d: ; 118e6d (46:4e6d)
+ xor a
+ ld [wcd65], a
+ ld a, $a
+ jp Function119e2b
+
+Function118e76: ; 118e76 (46:4e76)
+ ; Call $c in BattleTowerRoomMenu2
+ ld a, $c
+ ld [wcd3c], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+Function118e7e: ; 118e7e (46:4e7e)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, $36
+ jp Function119e2b
+
+BattleTowerRoomMenu_CallRoomMenu2: ; 118e87 (46:4e87)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, [wcd33]
+ ld [wcf66], a
+ ret
+; 118e92 (46:4e92)
+
+Function118e92: ; 118e92
+ call Function118440
+ call Function1191d3
+ ld a, [wcd53]
+ ld l, a
+ ld a, [wcd54]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld de, w3_d800
+ ld bc, $0800
+ jp Function118b10
+; 118eb0
+
+Function118eb0: ; 118eb0
+ call Function118440
+ ld hl, $d802
+ ld de, BGMapBuffer
+ ld bc, $000c
+ call CopyBytes
+ call Function1192cc
+ ret c
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118ec6
+
+Function118ec6: ; 118ec6
+ call Function118440
+ call SpeechTextBox
+ ld hl, $d80e
+ ld de, $c320
+ ld bc, $0026
+ call CopyBytes
+ xor a
+ ld [$c31f], a
+ ld a, $20
+ ld [$c31b], a
+ ld a, $c3
+ ld [$c31c], a
+ hlcoord 1, 14
+ ld a, l
+ ld [$c31d], a
+ ld a, h
+ ld [$c31e], a
+ ld a, $2
+ ld [$c31a], a
+ ld a, $1d
+ ld [wcd3c], a
+ ld a, $24
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $11
+ ld [wMobileInactivityTimerFrames], a
+ ld a, $1c
+ ld [wcd47], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118f0d
+
+Function118f0d: ; 118f0d
+ call BattleTowerRoomMenu2
+ ret c
+ call Function118440
+
+Function118f14:
+ call Function118440
+ ld a, [wcd51]
+ ld l, a
+ ld a, [wcd52]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld a, [wcc60]
+ and a
+ jr z, .DontSendSaveFile
+ ld hl, Text_SaveFileWillBeSent
+ call BattleTowerRoomMenu_SetMessage
+
+.DontSendSaveFile:
+ ld a, [wcd57]
+ ld l, a
+ ld a, [wcd58]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld hl, wcc60
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $24
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $13
+ ld [wMobileInactivityTimerFrames], a
+ ld a, $1c
+ ld [wcd47], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118f5e
+
+Function118f5e: ; 118f5e
+ call BattleTowerRoomMenu2
+ ret c
+ call Function118440
+ call DelayFrame
+
+Function118f68:
+ call Function119223
+ ret c
+ call Function118440
+ ld a, [wcd51]
+ ld l, a
+ ld a, [wcd52]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld a, [wcc60]
+ and a
+ jr z, .asm_118fba
+ ld hl, $c346
+ ld a, $c608 % $100
+ ld [hli], a
+ ld a, $c608 / $100
+ ld [hli], a
+ ld a, [wcd4b]
+ ld [hli], a
+ ld a, [wcd4c]
+ ld [hli], a
+ ld a, $c708 % $100
+ ld [hli], a
+ ld a, $c708 / $100
+ ld [hli], a
+ ld a, $60
+ ld [hli], a
+ ld a, $cc
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, $c346
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+
+.asm_118fba
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118fc0
+
+Function118fc0: ; 118fc0
+ call Function118440
+ ld a, [wcd55]
+ ld l, a
+ ld a, [wcd56]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld a, [wcc60]
+ and a
+ jr z, .asm_118ffa
+ ld a, [wcd51]
+ ld l, a
+ ld a, [wcd52]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld a, [wcc60]
+ and a
+ jr z, .asm_118ff2
+ ld hl, Text_SentSaveFileReadingNews
+ jr .asm_118ff5
+
+.asm_118ff2
+ ld hl, Text_ReadingNews
+
+.asm_118ff5
+ call BattleTowerRoomMenu_SetMessage
+ jr Function119009
+
+.asm_118ffa
+ ld hl, Text_ReadingNews
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119009:
+ call Function118440
+ call Function119300
+ ld a, [wcd55]
+ ld l, a
+ ld a, [wcd56]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld hl, $c346
+ ld a, $8
+ ld [hli], a
+ ld a, $c6
+ ld [hli], a
+ ld a, [wcd4b]
+ ld [hli], a
+ ld a, [wcd4c]
+ ld [hli], a
+ ld a, $8
+ ld [hli], a
+ ld a, $c7
+ ld [hli], a
+ ld a, $60
+ ld [hli], a
+ ld a, $cc
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, $c346
+ ld de, w3_d000
+ ld bc, $1000
+ ld a, $2c
+ jp Function119e2b
+; 119054
+
+Function119054: ; 119054
+ ld a, $6
+ call GetSRAMBank
+ ld hl, wd002
+ ld a, [wcd4f]
+ ld e, a
+ ld a, [wcd50]
+ ld d, a
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ call Function119192
+ ret c
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_11908a
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, wd002
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ call Function119192
+ ret c
+
+.asm_11908a
+ call CloseSRAM
+ ld a, $3
+ ld [rSVBK], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcd4f]
+ ld [$b1b3], a
+ ld a, [wcd50]
+ ld [$b1b4], a
+ ld hl, BGMapBuffer
+ ld de, $aa7f
+ ld bc, $000c
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [wd474]
+ ld [$b2f3], a
+ ld hl, wd475
+ ld de, $b2f4
+ ld bc, $0004
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 1190d0
+
+Function1190d0: ; 1190d0
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [wcd57]
+ ld l, a
+ ld a, [wcd58]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 1190ec
+
+Function1190ec: ; 1190ec
+ ld a, $5
+ call GetSRAMBank
+ ld hl, BGMapBuffer
+ ld de, $aa73
+ ld bc, $000c
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$aa72], a
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ ld hl, wd002
+ ld de, $a000
+ call Function119192
+ ret c
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_11913e
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ ld hl, wd002
+ call Function119192
+ ret c
+
+.asm_11913e
+ ld a, $3
+ ld [rSVBK], a
+ call CloseSRAM
+ ld hl, Text_ReceivedNews
+ call BattleTowerRoomMenu_SetMessage
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 11914e
+
+Function11914e: ; 11914e
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, $1c
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ ret
+; 11915d
+
+Function11915d: ; 11915d
+ ld hl, $d802
+ ld de, BGMapBuffer
+ ld bc, $000c
+ call CopyBytes
+ ld a, $5
+ call GetSRAMBank
+ ld hl, BGMapBuffer
+ ld de, $aa7f
+ ld c, $c
+.asm_119176
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .asm_119184
+ inc hl
+ dec c
+ jr nz, .asm_119176
+ call BattleTowerRoomMenu_IncrementJumptable
+ jr .asm_11918e
+
+.asm_119184
+ ld a, $16
+ ld [wcf66], a
+ ld a, $b
+ ld [wc300], a
+
+.asm_11918e
+ call CloseSRAM
+ ret
+; 119192
+
+Function119192: ; 119192
+ inc b
+ inc c
+ jr .asm_11919e
+
+.asm_119196
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, $bf
+ cp d
+ jr c, .asm_1191a6
+
+.asm_11919e
+ dec c
+ jr nz, .asm_119196
+ dec b
+ jr nz, .asm_119196
+ and a
+ ret
+
+.asm_1191a6
+ ld a, $d3
+ call Function118805
+ scf
+ ret
+; 1191ad
+
+Function1191ad: ; 1191ad
+ push bc
+ ld c, $0
+ ld a, $5
+ ld [rSVBK], a
+.asm_1191b4
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_1191cc
+ inc c
+ ld a, c
+ cp $a6
+ jr c, .asm_1191b4
+ ld a, $da
+ call Function118805
+ ld a, $3
+ ld [rSVBK], a
+ pop bc
+ scf
+ ret
+
+.asm_1191cc
+ ld a, $3
+ ld [rSVBK], a
+ pop bc
+ and a
+ ret
+; 1191d3
+
+Function1191d3: ; 1191d3
+ ld hl, w3_d100 + 2
+ ld a, l
+ ld [wcd53], a
+ ld a, h
+ ld [wcd54], a
+ call Function11920f
+ ld a, l
+ ld [wcd51], a
+ ld a, [wcd4a]
+ ld a, h
+ ld [wcd52], a
+ call Function11920f
+ ld a, l
+ ld [wcd55], a
+ ld a, [wcd4a]
+ ld a, h
+ ld [wcd56], a
+ call Function11920f
+ ld a, [wcd49]
+ ld a, l
+ ld [wcd57], a
+ ld a, [wcd4a]
+ ld a, h
+ ld [wcd58], a
+ call Function11920f
+ ret
+; 11920f
+
+Function11920f: ; 11920f
+.asm_11920f
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_11920f
+ ld a, [hli]
+ cp $a
+ jr nz, .asm_11920f
+ dec hl
+ xor a
+ ld [hld], a
+ ld [hli], a
+ inc hl
+ ret
+; 119223
+
+Function119223: ; 119223
+ xor a
+ ld [wcd4b], a
+ ld [wcd4c], a
+ ld a, $5
+ call GetSRAMBank
+ ld hl, wc3cd
+ ld de, $b092
+ ld bc, $001f
+ call CopyBytes
+ dec de
+ xor a
+ ld [de], a
+ ld hl, $d810
+.asm_119241
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_119241
+ ld a, [hli]
+ ld [wcd4f], a
+ ld a, [hli]
+ ld [wcd50], a
+ ld a, [hli]
+ ld [$b1b1], a
+ ld c, a
+ ld a, [hli]
+ ld [$b1b2], a
+ ld b, a
+ ld de, $b1d3
+ call CopyBytes
+ call CloseSRAM
+ ld e, l
+ ld d, h
+ ld hl, $c608
+.asm_119266
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_1192c2
+ cp $fe
+ jr z, .asm_1192a5
+ call GetSRAMBank
+ ld a, [de]
+ inc de
+ ld c, a
+ ld a, [de]
+ inc de
+ ld b, a
+ ld a, [de]
+ inc de
+ push de
+ push af
+ ld a, [wcd4b]
+ ld e, a
+ ld a, [wcd4c]
+ ld d, a
+ pop af
+.asm_119286
+ push af
+ ld a, [bc]
+ inc bc
+ ld [hli], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_119286
+ call CloseSRAM
+ ld a, e
+ ld [wcd4b], a
+ ld a, d
+ ld [wcd4c], a
+ pop de
+.asm_11929b
+ and a
+ jr z, .asm_119266
+ ld a, $d3
+ call Function118805
+ scf
+ ret
+
+.asm_1192a5
+ ld a, [wcd4b]
+ ld c, a
+ ld a, [wcd4c]
+ ld b, a
+ ld a, [de]
+ inc de
+.asm_1192af
+ push af
+ ld a, [de]
+ inc de
+ ld [hli], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_1192af
+ ld a, c
+ ld [wcd4b], a
+ ld a, b
+ ld [wcd4c], a
+ jr .asm_11929b
+
+.asm_1192c2
+ ld a, e
+ ld [wcd4d], a
+ ld a, d
+ ld [wcd4e], a
+ and a
+ ret
+; 1192cc
+
+Function1192cc: ; 1192cc
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $aa73
+ ld de, $c608
+ ld bc, $000c
+ call CopyBytes
+ call CloseSRAM
+ ld hl, $c608
+ ld de, BGMapBuffer
+ ld c, $c
+.asm_1192e8
+ ld a, [de]
+ inc de
+ ld b, a
+ ld a, [hli]
+ cp b
+ jr nz, .asm_1192fe
+ dec c
+ jr nz, .asm_1192e8
+ ld a, $1f
+ ld [wcd3c], a
+ ld a, $27
+ ld [wcf66], a
+ scf
+ ret
+
+.asm_1192fe
+ and a
+ ret
+; 119300
+
+Function119300: ; 119300
+ xor a
+ ld [wcd4b], a
+ ld [wcd4c], a
+ ld a, [wcd4d]
+ ld e, a
+ ld a, [wcd4e]
+ ld d, a
+ ld hl, $c608
+ ld a, [wcd4b]
+ ld c, a
+ ld a, [wcd4c]
+ ld b, a
+.asm_11931a
+ ld a, [de]
+ inc de
+ cp $50
+ jr z, .asm_119324
+ ld [hli], a
+ inc bc
+ jr .asm_11931a
+
+.asm_119324
+ ld a, $3d
+ ld [hli], a
+ inc bc
+ ld a, c
+ ld [wcd4b], a
+ ld a, b
+ ld [wcd4c], a
+ ld a, [de]
+ inc de
+ call GetSRAMBank
+ ld a, [de]
+ inc de
+ ld c, a
+ ld a, [de]
+ inc de
+ ld b, a
+ ld a, [de]
+ inc de
+ push de
+ push af
+ ld a, [wcd4b]
+ ld e, a
+ ld a, [wcd4c]
+ ld d, a
+ pop af
+.asm_119348
+ push af
+ ld a, [bc]
+ and $f0
+ swap a
+ call Function1197bf
+ ld [hli], a
+ inc de
+ ld a, [bc]
+ inc bc
+ and $f
+ call Function1197bf
+ ld [hli], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_119348
+ call CloseSRAM
+ ld a, e
+ ld [wcd4b], a
+ ld a, d
+ ld [wcd4c], a
+ pop de
+ ld a, [de]
+ cp $50
+ jr z, .asm_11937f
+ ld a, [wcd4b]
+ ld c, a
+ ld a, [wcd4c]
+ ld b, a
+ ld a, $26
+ ld [hli], a
+ inc bc
+ jr .asm_11931a
+
+.asm_11937f
+ ret
+; 119380
+
+Function119380: ; 119380
+ ld a, $80
+ ld [wcd49], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119388
+
+Function119388: ; 119388
+ ld hl, wcd49
+ dec [hl]
+ ret nz
+ ld hl, wcc60
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $10
+ ld [wMobileInactivityTimerSeconds], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function1193a0:
+ call BattleTowerRoomMenu2
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ ld hl, $c346
+ ld a, wd000 % $100
+ ld [hli], a
+ ld a, wd000 / $100
+ ld [hli], a
+ ld a, [wcd3b]
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld a, $c708 % $100
+ ld [hli], a
+ ld a, $c708 / $100
+ ld [hli], a
+ ld a, $60
+ ld [hli], a
+ ld a, $cc
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, $c346
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+; 1193e3
+
+Function1193e3: ; 1193e3
+ ld hl, wcd49
+ dec [hl]
+ ret nz
+ ld hl, wcc60
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $11
+ ld [wMobileInactivityTimerSeconds], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function1193fb:
+ call BattleTowerRoomMenu2
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 119413
+
+Function119413: ; 119413
+ ld a, $6
+ call GetSRAMBank
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ dec bc
+ dec bc
+ ld hl, wd002
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ call Function119192
+ ret c
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_119447
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [wd000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ ld hl, wd002
+ call Function119192
+ ret c
+
+.asm_119447
+ ld a, $3
+ ld [rSVBK], a
+ call CloseSRAM
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119451
+
+Function119451: ; 119451 (46:5451)
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_11945d
+ ld a, $d3
+ jp Function118805
+.asm_11945d
+ xor a
+ ld [wcd50], a
+ call Function119694
+ ld a, b
+ ld [wcd49], a
+ call Function1196cd
+ ld a, [wd002]
+ ld hl, wd003
+
+Function119471: ; 119471 (46:5471)
+ push af
+ ld a, [hli]
+ ld [$c608], a
+ ld a, [hli]
+ ld [$c608 + 3], a
+ ld a, [hli]
+ ld [$c608 + 1], a
+ ld a, [hli]
+ ld [$c608 + 2], a
+ ld a, [hli]
+ ld [$c608 + 4], a
+ ld a, [hli]
+ ld [$c608 + 5], a ; $c608 + 5
+ push hl
+ ld a, [$c608]
+ cp $ff
+ jr z, .asm_1194a7
+ ld a, [$c608 + 2]
+ cp $ff
+ jr z, .asm_1194a7
+ ld a, [$c608 + 1]
+ cp $ff
+ jr nz, .asm_1194a7
+ call Function119584
+ jr c, .asm_11950c
+ jr .asm_1194f0
+.asm_1194a7
+ ld hl, $c608
+ ld de, $c608 + 3
+ ld c, $3
+.asm_1194af
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr c, .asm_1194f3
+ jr z, .asm_1194b9
+ jr nc, .asm_1194bc
+.asm_1194b9
+ dec c
+ jr nz, .asm_1194af
+.asm_1194bc
+ ld c, $3
+ ld hl, wcd49
+ ld de, $c608
+.asm_1194c4
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_1194d1
+ cp [hl]
+ jr z, .asm_1194d1
+ jr c, .asm_1194d5
+ jr nc, .asm_1194f0
+.asm_1194d1
+ inc hl
+ dec c
+ jr nz, .asm_1194c4
+.asm_1194d5
+ ld c, $3
+ ld hl, wcd49
+ ld de, $c608 + 3
+.asm_1194dd
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_1194ea
+ cp [hl]
+ jr c, .asm_1194f0
+ jr z, .asm_1194ea
+ jr nc, .asm_11950c
+.asm_1194ea
+ inc hl
+ dec c
+ jr nz, .asm_1194dd
+ jr .asm_11950c
+.asm_1194f0
+ pop hl
+ jr .asm_119557
+.asm_1194f3
+ ld c, $3
+ ld hl, wcd49
+ ld de, $c608
+.asm_1194fb
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_119508
+ cp [hl]
+ jr c, .asm_11950c
+ jr z, .asm_119508
+ jr nc, .asm_1194d5
+.asm_119508
+ inc hl
+ dec c
+ jr nz, .asm_1194fb
+.asm_11950c
+ pop hl
+ ld a, $1
+ ld [wcd50], a
+ ld a, l
+ ld [$c608], a
+ ld a, h
+ ld [$c608 + 1], a
+ ld de, wcd69
+ ld c, $10
+ ld b, $0
+.asm_119521
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_119528
+ inc b
+.asm_119528
+ dec c
+ jr nz, .asm_119521
+ ld a, $10
+ cp b
+ jr z, .asm_119536
+rept 4
+ inc hl
+endr
+ jr .asm_11957a
+.asm_119536
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_119552
+ ld a, [hli]
+ cp $33
+ jr nz, .asm_119553
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [wcd83]
+ cp c
+ jr nz, .asm_119576
+ ld a, [wcd84]
+ cp b
+ jr nz, .asm_119576
+ jr .asm_11955b
+.asm_119552
+ inc hl
+.asm_119553
+ inc hl
+ inc hl
+ jr .asm_11955b
+.asm_119557
+ ld de, $14
+ add hl, de
+.asm_11955b
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ add hl, de
+ pop af
+ dec a
+ jp nz, Function119471
+ ld a, [wcd50]
+ and a
+ jr z, .asm_119571
+ ld a, $1a
+ ld [wcf66], a
+ ret
+.asm_119571
+ ld a, $d8
+ jp Function118805
+.asm_119576
+ ld a, $10
+ jr .asm_11957c
+.asm_11957a
+ ld a, $f
+.asm_11957c
+ ld [wcf66], a
+ pop af
+ call Function1195c4
+ ret
+
+Function119584: ; 119584 (46:5584)
+ ld a, [$c608]
+ ld b, a
+ ld a, [$c608 + 3]
+ ld c, a
+ cp b
+ jr c, .asm_11959c
+ ld a, [wcd49]
+ cp b
+ jr c, .asm_1195c2
+.asm_119595
+ cp c
+ jr c, .asm_1195a2
+ jr z, .asm_1195a2
+ jr .asm_1195c2
+.asm_11959c
+ ld a, [wcd49]
+ cp b
+ jr c, .asm_119595
+.asm_1195a2
+ ld a, [$c608 + 2]
+ ld b, a
+ ld a, [$c608 + 5] ; $c608 + 5
+ ld c, a
+ cp b
+ jr c, .asm_1195ba
+ ld a, [wcd4b]
+ cp b
+ jr c, .asm_1195c2
+.asm_1195b3
+ cp c
+ jr c, .asm_1195c0
+ jr z, .asm_1195c0
+ jr .asm_1195c2
+.asm_1195ba
+ ld a, [wcd4b]
+ cp b
+ jr c, .asm_1195b3
+.asm_1195c0
+ scf
+ ret
+.asm_1195c2
+ and a
+ ret
+
+Function1195c4: ; 1195c4 (46:55c4)
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld de, $a5
+ ld a, b
+ cp d
+ jr c, .asm_1195d9
+ jr z, .asm_1195d3
+ jr nc, .asm_1195f3
+.asm_1195d3
+ ld a, c
+ cp e
+ jr z, .asm_1195d9
+ jr nc, .asm_1195f3
+.asm_1195d9
+ ld de, wcc60
+ call CopyBytes
+ xor a
+ ld [de], a
+ ld a, [$c608]
+ ld l, a
+ ld a, [$c608 + 1]
+ ld h, a
+ ld de, wcd69
+ ld bc, $10
+ call CopyBytes
+ ret
+.asm_1195f3
+ ld a, $d8
+ jp Function118805
+
+Function1195f8: ; 1195f8 (46:55f8)
+ ld a, $11
+ ld [wcd3c], a
+ ld a, $1c
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $f
+ ld [wMobileInactivityTimerFrames], a
+ ld a, $14
+ ld [wcd47], a
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119612: ; 119612 (46:5612)
+ ld a, $14
+ ld [wcd3c], a
+ ld a, $1c
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $10
+ ld [wMobileInactivityTimerFrames], a
+ ld a, $14
+ ld [wcd47], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119629: ; 119629 (46:5629)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, $60
+ ld l, a
+ ld a, $cc
+ ld h, a
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $1c
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $14
+ ld [wcd47], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function119648: ; 119648 (46:5648)
+ call BattleTowerRoomMenu2
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ call Function118b24
+ ld de, w3_d000
+ ld bc, $1000
+ ld a, $2a
+ jp Function119e2b
+
+Function119665: ; 119665 (46:5665)
+ ld a, $1a
+ ld [wcd3c], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function11966d: ; 11966d (46:566d)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, [wcd47]
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ ret
+
+Function11967d: ; 11967d (46:567d)
+ ld a, $18
+ ld [wcd3c], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function119685: ; 119685 (46:5685)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, $14
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ ret
+
+Function119694: ; 119694 (46:5694)
+ ld b, 0
+ ld hl, Unknown_1196b8
+.asm_119699
+ ld de, $c708
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_1196af
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_1196b0
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_1196b1
+ ret
+.asm_1196af
+ inc hl
+.asm_1196b0
+ inc hl
+.asm_1196b1
+ inc b
+ ld a, b
+ cp $7
+ jr nz, .asm_119699
+ ret
+; 1196b8 (46:56b8)
+
+Unknown_1196b8: ; 1196b8
+ db "Mon"
+ db "Tue"
+ db "Wed"
+ db "Thu"
+ db "Fri"
+ db "Sat"
+ db "Sun"
+; 1196cd
+
+
+SECTION "bank46_2", ROMX
+; A hack to use ascii above.
+
+Function1196cd: ; 1196cd (46:56cd)
+ ld de, $c719
+ call Function1196de
+ ld [wcd4a], a
+ inc de
+ call Function1196de
+ ld [wcd4b], a
+ ret
+
+Function1196de: ; 1196de (46:56de)
+ ld a, [de]
+ inc de
+ ; b = ([de] - 48) * 2
+ ; c = ([de] - 48) * 10
+ sub $30
+ sla a
+ ld b, a
+ sla a
+ sla a
+ add b
+ ld c, a
+ add hl, bc
+ ld a, [de]
+ inc de
+ sub $30
+ add c
+ ret
+; 1196f2 (46:56f2)
+
+Function1196f2: ; 1196f2
+ ld hl, wd002
+.asm_1196f5
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_1196f5
+ ld a, [hl]
+ cp $a
+ jr nz, .asm_1196f5
+ xor a
+ ld [hld], a
+ ld [hli], a
+ ld a, l
+ ld [wcd5b], a
+ ld a, h
+ ld [wcd5c], a
+ inc hl
+ ld e, l
+ ld d, h
+ ld a, [de]
+ inc de
+ cp $d
+ jr nz, .asm_119722
+ ld a, [de]
+ inc de
+ cp $a
+ jr nz, .asm_119722
+ ld a, $b
+ jp Function118805
+
+.asm_119722
+ call Random
+ ld c, $0
+ ld b, c
+.asm_119728
+ call Function119798
+ ld a, d
+ cp $ff
+ jr nz, .asm_119735
+ ld a, e
+ cp $ff
+ jr z, .asm_11974c
+
+.asm_119735
+ ld a, [hRandomSub]
+ cp d
+ jr c, .asm_11974c
+ jr z, .asm_11973e
+ jr .asm_119745
+
+.asm_11973e
+ ld a, [hRandomAdd]
+ cp e
+ jr c, .asm_11974c
+ jr z, .asm_11974c
+
+.asm_119745
+ inc bc
+ ld a, c
+ or b
+ jr z, .asm_119770
+ jr .asm_119728
+
+.asm_11974c
+ ld a, [wcd5b]
+ ld l, a
+ ld a, [wcd5c]
+ ld h, a
+.asm_119754
+ ld a, [hld]
+ cp $58
+ jr nz, .asm_119754
+ ld d, $0
+.asm_11975b
+ inc d
+ ld a, [hld]
+ cp $58
+ jr z, .asm_11975b
+ inc hl
+ inc hl
+ ld a, d
+ dec a
+ jr z, .asm_11978e
+ dec a
+ jr z, .asm_119785
+ dec a
+ jr z, .asm_11977e
+ dec a
+ jr z, .asm_119775
+
+.asm_119770
+ ld a, $d3
+ jp Function118805
+
+.asm_119775
+ ld a, b
+ and $f0
+ swap a
+ call Function1197bf
+ ld [hli], a
+
+.asm_11977e
+ ld a, b
+ and $f
+ call Function1197bf
+ ld [hli], a
+
+.asm_119785
+ ld a, c
+ and $f0
+ swap a
+ call Function1197bf
+ ld [hli], a
+
+.asm_11978e
+ ld a, c
+ and $f
+ call Function1197bf
+ ld [hli], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119798
+
+Function119798: ; 119798
+ ld d, $0
+ ld e, d
+ call Function1197b4
+ swap a
+ or d
+ ld d, a
+ call Function1197b4
+ or d
+ ld d, a
+ call Function1197b4
+ swap a
+ or e
+ ld e, a
+ call Function1197b4
+ or e
+ ld e, a
+ ret
+; 1197b4
+
+Function1197b4: ; 1197b4
+ ld a, [hli]
+ cp $61
+ jr nc, .asm_1197bc
+ sub $30
+ ret
+
+.asm_1197bc
+ sub $57
+ ret
+; 1197bf
+
+Function1197bf: ; 1197bf
+ cp $a
+ jr nc, .asm_1197c6
+ add $30
+ ret
+
+.asm_1197c6
+ add $57
+ ret
+; 1197c9
+
+Function1197c9: ; 1197c9
+ ld hl, wd002
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $12
+ ld [wMobileInactivityTimerSeconds], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function1197dc:
+ call BattleTowerRoomMenu2
+ ret c
+ call DelayFrame
+ ld hl, wd002
+ ld de, wcc60
+ ld bc, $0080
+ call CopyBytes
+ dec de
+ xor a
+ ld [de], a
+ call Function118b24
+ ld de, w3_d000
+ ld bc, $1000
+ ld a, $2a
+ jp Function119e2b
+; 119800
+
+Function119800: ; 119800
+ ld a, $fd
+ ld [$c6d0], a
+ ld [wOTTrademonSpecies], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ ld a, [wcf65]
+ push af
+ ld a, [wcf66]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call FadeToMenu
+ callba Function10803d
+ call Function11a9ce
+ call RestartMapMusic
+ ld a, $3
+ ld [rSVBK], a
+ pop af
+ ld [wcf66], a
+ pop af
+ ld [wcf65], a
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ callba Function115dc3
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 11984e
+
+Function11984e: ; 11984e
+ ld a, [wcd80]
+ and a
+ jr nz, .asm_1198a0
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_1198a8
+ callba Function170000
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ ld a, [wcf65]
+ push af
+ ld a, [wcf66]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call FadeToMenu
+ callba MobileTradeAnimation_SendGivemonToGTS
+ call Function11a9ce
+ call RestartMapMusic
+ ld a, $3
+ ld [rSVBK], a
+ pop af
+ ld [wcf66], a
+ pop af
+ ld [wcf65], a
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ callba Function115dc3
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_1198a0
+ ld a, $a
+ ld [wc300], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_1198a8
+ callba Function17005a
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ ld a, [wcf65]
+ push af
+ ld a, [wcf66]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call FadeToMenu
+ callba MobileTradeAnimation_RetrieveGivemonFromGTS
+ call Function11a9ce
+ call RestartMapMusic
+ ld a, $3
+ ld [rSVBK], a
+ pop af
+ ld [wcf66], a
+ pop af
+ ld [wcf65], a
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ callba Function115dc3
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 1198ee
+
+Function1198ee: ; 1198ee
+ ld hl, Text_RegisteringRecord
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function1198f7:
+ ld a, [$c31a]
+ and a
+ ret nz
+ ld hl, $c608 + 2
+ call Function119940
+ ld hl, w3_d800
+ ld a, $c608 % $100
+ ld [hli], a
+ ld a, $c608 / $100
+ ld [hli], a
+ ld a, $f6
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld a, $c708 % $100
+ ld [hli], a
+ ld a, $c708 / $100
+ ld [hli], a
+ ld a, [wcd51]
+ ld [hli], a
+ ld a, [wcd52]
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, w3_d800
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+; 119937
+
+Function119937: ; 119937
+ callba Function1707f4
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119940
+
+Function119940: ; 119940
+ ld de, wc3cd
+ ld c, $1e
+.asm_119945
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr z, .asm_119953
+ and a
+ jr nz, .asm_119945
+ xor a
+.asm_11994f
+ ld [hli], a
+ dec c
+ jr nz, .asm_11994f
+
+.asm_119953
+ ret
+; 119954
+
+Function119954: ; 119954
+ ld a, $1c
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ ld hl, $c608
+ ld de, wc3cd
+.asm_119962
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .asm_119962
+ call Function119ec2
+ ld hl, $c608
+ ld a, $1e
+ jp Function119e2b
+; 119973
+
+Function119973: ; 119973
+ ld a, $1
+ ld [wcf64], a
+ xor a
+ ld [wcf65], a
+ ld [w3_d090], a
+ ld de, w3_d000
+ ld a, $20
+ jp Function119e2b
+; 119987
+
+Function119987: ; 119987
+ ld hl, w3_d000 + 1
+ ld a, [w3_d000]
+ or [hl]
+ jr z, .asm_1199a0
+ ld a, [wcf64]
+ ld l, a
+ ld a, [wcf65]
+ ld h, a
+ ld de, BGPals
+ ld a, $22
+ jp Function119e2b
+
+.asm_1199a0
+ ld a, [w3_d090]
+ and a
+ jr z, .asm_1199ae
+ ld a, $16
+ ld [wcf66], a
+ jp Function119b0d
+
+.asm_1199ae
+ ld a, $1b
+ ld [wcf66], a
+ ret
+; 1199b4
+
+Function1199b4: ; 1199b4
+ ld a, [wd000 + 130]
+ and a
+ jr nz, .asm_1199c7
+ ld a, [wd000 + 129]
+ cp $7
+ jr nc, .asm_1199c7
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp Function1199ca
+
+.asm_1199c7
+ jp Function119ac9
+; 1199ca
+
+Function1199ca: ; 1199ca
+ ld a, $20
+ ld [wcd89], a
+ ld a, [wcf64]
+ ld l, a
+ ld a, [wcf65]
+ ld h, a
+ ld de, w3_d100
+ ld bc, $0700
+ ld a, $28
+ jp Function119e2b
+; 1199e2
+
+Function1199e2: ; 1199e2
+ ld c, $c
+ ld de, XGameCodePrefix
+ call Function119e4f
+ jp c, Function119ac9
+ ld a, c
+ cp $1
+ jp nz, Function119ac9
+ ld hl, w3_d880
+ ld bc, XGameCode
+.loop
+ ld a, [bc]
+ and a
+ jr z, .game_result_prefix
+ cp [hl]
+ jp nz, Function119ac9
+ inc bc
+ inc hl
+ jr .loop
+
+.game_result_prefix
+ ld c, $17
+ ld de, XGameResultPrefix
+ call Function119e4f
+ jp c, .asm_119aa7
+ ld a, c
+ cp $1
+ jp nz, .asm_119aa7
+ ld a, [w3_d880]
+ cp $31
+ jp nz, .asm_119aa7
+ ld a, [w3_d881]
+ cp $20
+ jp nz, .asm_119aa7
+ ld a, [w3_d88a]
+ cp $20
+ jp nz, .asm_119aa7
+ ld a, [w3_d894]
+ cp $20
+ jp nz, .asm_119aa7
+ xor a
+ ld [w3_d8a0], a
+ ld [w3_d8a1], a
+ ld [w3_d8a2], a
+ ld [w3_d8a3], a
+ ld hl, $d8a0
+ ld bc, $d889
+ call Function119e98
+ call Function119e98
+ ld hl, $d8a0
+ ld a, [wcd2d]
+ cp [hl]
+ jr nz, Function119ac9
+ inc hl
+ ld a, [wcd2c]
+ cp [hl]
+ jr nz, Function119ac9
+ inc hl
+ ld a, [wcd2b]
+ cp [hl]
+ jr nz, Function119ac9
+ inc hl
+ ld a, [wcd2a]
+ cp [hl]
+ jr nz, Function119ac9
+ xor a
+ ld [w3_d8a0], a
+ ld [w3_d8a1], a
+ ld [w3_d8a2], a
+ ld [w3_d8a3], a
+ ld hl, $d8a0
+ ld bc, $d88e
+ call Function119e98
+ ld bc, $d893
+ call Function119e98
+ ld hl, $d8a0
+ ld a, [wcd2f]
+ cp [hl]
+ jr nz, .asm_119aa7
+ inc hl
+ ld a, [wcd2e]
+ cp [hl]
+ jr nz, .asm_119aa7
+ inc hl
+ ld a, [wcd31]
+ cp [hl]
+ jr nz, .asm_119aa7
+ inc hl
+ ld a, [wcd30]
+ cp [hl]
+ jr z, .asm_119aaf
+
+.asm_119aa7
+ ld a, $25
+ ld [wcf66], a
+ jp Function119b45
+
+.asm_119aaf
+ ld a, [w3_d090]
+ and a
+ jr nz, .asm_119aa7
+ ld a, [w3_d895]
+ sub $30
+ ld [w3_d090], a
+ ld a, [wcf64]
+ ld [w3_d090 + 1], a
+ ld a, [wcf65]
+ ld [w3_d090 + 2], a
+
+Function119ac9:
+ ld a, [w3_d000]
+ ld l, a
+ ld a, [w3_d000 + 1]
+ ld h, a
+ dec hl
+ ld a, l
+ ld [w3_d000], a
+ ld a, h
+ ld [w3_d000 + 1], a
+ ld a, [wcf64]
+ ld l, a
+ ld a, [wcf65]
+ ld h, a
+ inc hl
+ ld a, l
+ ld [wcf64], a
+ ld a, h
+ ld [wcf65], a
+ ld a, $10
+ ld [wcf66], a
+ ret
+; 119af1
+
+XGameCode:
+INCBIN "data/mobile/x-game-code.txt"
+XGameResult:
+INCBIN "data/mobile/x-game-result.txt"
+; 119b0d
+
+Function119b0d: ; 119b0d
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ ld a, [w3_d090]
+ cp $1
+ jr z, .asm_119b23
+ ld a, $19
+ ld [wcf66], a
+ jr Function119b3b
+
+.asm_119b23
+ ld a, $10
+ ld [wcd89], a
+ ld a, [w3_d090 + 1]
+ ld l, a
+ ld a, [w3_d090 + 2]
+ ld h, a
+ ld de, w3_d100
+ ld bc, $0700
+ ld a, $24
+ jp Function119e2b
+
+Function119b3b:
+ ld a, [w3_d090 + 1]
+ ld l, a
+ ld a, [w3_d090 + 2]
+ ld h, a
+ jr asm_119b4d
+
+Function119b45:
+ ld a, [wcf64]
+ ld l, a
+ ld a, [wcf65]
+ ld h, a
+
+asm_119b4d
+ ld a, $26
+ jp Function119e2b
+; 119b52
+
+Function119b52: ; 119b52
+ ld a, [w3_d090]
+ cp $1
+ jr nz, .asm_119b66
+ ld a, $5
+ call GetSRAMBank
+ ld a, $4
+ ld [$a800], a
+ call CloseSRAM
+
+.asm_119b66
+ ld a, $1c
+ jp Function119e2b
+; 119b6b
+
+Function119b6b: ; 119b6b
+ ld a, [w3_d090]
+ cp $1
+ jr z, .asm_119b75
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_119b75
+ ld a, [w3_d100]
+ ld b, a
+ ld a, [w3_d100 + 1]
+ or b
+ jr z, .asm_119be3
+ ld hl, w3_d800
+ ld de, w3_d100 + 2
+.asm_119b85
+ ld a, [de]
+ inc de
+ cp $d
+ jr nz, .asm_119b85
+ inc de
+ ld a, [de]
+ cp $d
+ jr nz, .asm_119b85
+ inc de
+ inc de
+.asm_119b93
+ ld a, [de]
+ inc de
+ cp $d
+ jr z, .asm_119bfa
+ call Function119c3e
+ ret c
+ ld [hli], a
+ ld a, [de]
+ inc de
+ call Function119c3e
+ ret c
+ ld [hli], a
+ ld a, [de]
+ inc de
+ call Function119c3e
+ ret c
+ ld [hli], a
+ ld a, [de]
+ inc de
+ call Function119c3e
+ ret c
+ ld [hl], a
+ push de
+ ld d, [hl]
+ dec hl
+ ld c, [hl]
+ dec hl
+ ld b, [hl]
+ dec hl
+ ld a, [hl]
+ sla b
+ sla b
+ sla b
+ rla
+ sla b
+ rla
+ ld [hli], a
+ ld [hl], b
+ inc hl
+ rrc c
+ rrc c
+ ld [hl], c
+ dec hl
+ ld a, $f
+ and c
+ or [hl]
+ ld [hli], a
+ ld a, [hli]
+ and $c0
+ or [hl]
+ dec hl
+ ld [hld], a
+ dec hl
+ pop de
+ inc hl
+ inc hl
+ inc hl
+ ld a, h
+ cp $e0
+ jr c, .asm_119b93
+
+.asm_119be3
+ ld a, $19
+ ld [wcf66], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$a800], a
+ call CloseSRAM
+ xor a
+ ld [w3_d090], a
+ ret
+
+.asm_119bfa
+ inc de
+ ld a, [de]
+ cp $d
+ jr nz, .asm_119b93
+ ld a, l
+ cp (w3_d869) % $100
+ jr nz, .asm_119be3
+ ld a, h
+ cp (w3_d869) / $100
+ jr nz, .asm_119be3
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcf64]
+ ld [$b090], a
+ ld a, [wcf65]
+ ld [$b091], a
+ ld hl, w3_d800
+ ld de, $b023
+ ld bc, $0069
+ call CopyBytes
+ ld a, $3
+ ld [$a800], a
+ call CloseSRAM
+ ld hl, w3_d800
+ ld de, $c608
+ ld bc, $0069
+ call CopyBytes
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119c3e
+
+Function119c3e: ; 119c3e
+ cp $2b
+ jr c, .asm_119c68
+ jr z, .asm_119c80
+ cp $2f
+ jr c, .asm_119c68
+ jr z, .asm_119c84
+ cp $30
+ jr c, .asm_119c68
+ cp $3a
+ jr c, .asm_119c88
+ cp $3d
+ jr c, .asm_119c68
+ jr z, .asm_119c8c
+ cp $41
+ jr c, .asm_119c68
+ cp $5b
+ jr c, .asm_119c8f
+ cp $61
+ jr c, .asm_119c68
+ cp $7b
+ jr c, .asm_119c93
+
+.asm_119c68
+ ld a, $19
+ ld [wcf66], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$a800], a
+ call CloseSRAM
+ xor a
+ ld [w3_d090], a
+ scf
+ ret
+
+.asm_119c80
+ ld a, $3e
+ and a
+ ret
+
+.asm_119c84
+ ld a, $3f
+ and a
+ ret
+
+.asm_119c88
+ add $4
+ and a
+ ret
+
+.asm_119c8c
+ xor a
+ and a
+ ret
+
+.asm_119c8f
+ sub $41
+ and a
+ ret
+
+.asm_119c93
+ sub $47
+ and a
+ ret
+; 119c97
+
+BattleTowerRoomMenu_UberRestrictionMessage: ; 119c97
+ ld hl, Text_UberRestriction
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+ jr BattleTowerRoomMenu_WaitForMessage
+
+BattleTowerRoomMenu_PartyMonTopsThisLevelMessage:
+ ld hl, Text_PartyMonTopsThisLevel
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_WaitForMessage:
+ ld a, [$c31a]
+ and a
+ ret nz
+ ld a, $80
+ ld [wcd50], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_DelayRestartMenu:
+ ; Loops while (--[wcd50] != 0),
+ ; to create some sort of "delay" after the message is written on the screen,
+ ; before starting the menu again.
+ ld hl, wcd50
+ dec [hl]
+ ret nz
+ ld a, $0
+ ld [wcf66], a
+ ret
+; 119cc3
+
+BattleTowerRoomMenu_QuitMessage: ; 119cc3
+ ld a, [wcd38]
+ and a
+ jr z, .asm_119cd1
+ dec a
+ jr z, .asm_119cd6
+ ld hl, Text_QuitReadingNews
+ jr .asm_119cd9
+
+.asm_119cd1
+ ld hl, Text_CancelBattleRoomChallenge
+ jr .asm_119cd9
+
+.asm_119cd6
+ ld hl, Text_ExitGymLeaderHonorRoll
+
+.asm_119cd9
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_PlaceYesNoMenu:
+ ld a, [$c31a]
+ and a
+ ret nz
+ ld a, $f
+ ld [wcd3c], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_UpdateYesNoMenu:
+ ; Only ever called when [wcd3c] is $10
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, [wMobileInactivityTimerFrames]
+ ld [wcf66], a
+ ret
+; 119cf7
+
+MenuDataHeader_119cf7: ; 119cf7
+ db $40 ; flags
+ db 7, 12 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 119cff
+
+MenuData_119cff: ; 119cff
+ db $40 ; flags
+ db 7, 15 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 119d07
+
+String_119d07:
+ db " ▼@"
+
+Strings_L10ToL100: ; 119d0c
+ db " L:10 @@"
+ db " L:20 @@"
+ db " L:30 @@"
+ db " L:40 @@"
+ db " L:50 @@"
+ db " L:60 @@"
+ db " L:70 @@"
+ db " L:80 @@"
+ db " L:90 @@"
+ db " L:100@@"
+ db "CANCEL@@"
+
+Strings_Ll0ToL40: ; 119d64
+ db " L:10 @@"
+ db " L:20 @@"
+ db " L:30 @@"
+ db " L:40 @@"
+ db "CANCEL@@"
+
+String_119d8c:
+ db "CANCEL@"
+; 119d93
+
+BattleTower_LevelCheck: ; 119d93 (46:5d93)
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [wcd4f]
+ ld c, 10
+ call SimpleMultiply
+ ld hl, wcd50
+ ld [hl], a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld de, PartyMon1Level
+ ld a, [PartyCount]
+.party_loop
+ push af
+ ld a, [de]
+ push hl
+ push de
+ pop hl
+ add hl, bc
+ push hl
+ pop de
+ pop hl
+ cp [hl]
+ jr z, .equal
+ jr nc, .exceeds
+.equal
+ pop af
+ dec a
+ jr nz, .party_loop
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+
+.exceeds
+ pop af
+ ld a, $4
+ ld [wcf66], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+
+BattleTower_UbersCheck: ; 119dd1 (46:5dd1)
+ ld a, [rSVBK]
+ push af
+ ld a, [wcd4f]
+ cp 70 / 10
+ jr nc, .level_70_or_more
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, PartyMon1Level
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld de, PartySpecies
+ ld a, [PartyCount]
+.loop
+ push af
+ ld a, [de]
+ cp MEWTWO
+ jr z, .uber
+ cp MEW
+ jr z, .uber
+ cp LUGIA
+ jr c, .next
+ cp NUM_POKEMON + 1
+ jr nc, .next
+.uber
+ ld a, [hl]
+ cp 70
+ jr c, .uber_under_70
+.next
+ add hl, bc
+ inc de
+ pop af
+ dec a
+ jr nz, .loop
+.level_70_or_more
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+
+.uber_under_70
+ pop af
+ ld a, [de]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, wcd49
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ld a, $a
+ ld [wcf66], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+; 119e2b (46:5e2b)
+
+Function119e2b: ; 119e2b (46:5e2b)
+ call Function3e32
+
+BattleTowerRoomMenu_IncrementJumptable: ; 119e2e (46:5e2e)
+ ld hl, wcf66
+ inc [hl]
+ ret
+; 119e33 (46:5e33)
+
+XGameCodePrefix: ; 119e33
+INCBIN "data/mobile/x-game-code-prefix.txt"
+XGameCodePrefixEnd:
+;119e40
+
+XGameResultPrefix: ; 119e40
+INCBIN "data/mobile/x-game-result-prefix.txt"
+XGameResultPrefixEnd:
+; 119e4f
+
+Function119e4f: ; 119e4f
+ push bc
+ ld hl, w3_d100
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+.loop
+ ld a, [de]
+ cp [hl]
+ jr z, .found_equality
+.next
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+.return_carry
+ pop bc
+ scf
+ ret
+
+.found_equality
+ push de
+.loop2
+ ld a, [de]
+ inc de
+ cp "\n"
+ jr z, .newline
+ cp [hl]
+ jr nz, .unequal
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop2
+ pop de
+ jr .return_carry
+
+.unequal
+ pop de
+ jr .next
+
+.newline
+ pop de
+ pop bc
+ inc hl
+ ld de, w3_d880
+.loop3
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp $d
+ jr z, .finish
+ dec c
+ jr nz, .loop3
+ scf
+ ret
+
+.finish
+ and a
+ ret
+; 119e8e
+
+Function119e8e: ; 119e8e
+ cp $60
+ jr c, .less_than_0x60
+ sub $57
+ ret
+
+.less_than_0x60
+ sub $30
+ ret
+; 119e98
+
+Function119e98: ; 119e98
+ ld a, $2
+.loop
+ push af
+ ld a, [bc]
+ dec bc
+ call Function119e8e
+ or [hl]
+ ld [hl], a
+ ld a, [bc]
+ dec bc
+ call Function119e8e
+ rlca
+ rlca
+ rlca
+ rlca
+ or [hl]
+ ld [hl], a
+ inc hl
+ pop af
+ dec a
+ and a
+ jr nz, .loop
+ ret
+; 119eb4
+
+Function119eb4: ; 119eb4 (46:5eb4)
+ xor a
+ ld [wc3cc], a
+ ld de, wc3ac
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .loop
+ ret
+
+Function119ec2: ; 119ec2 (46:5ec2)
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ xor a
+ ld [sMobileLoginPassword + MOBILE_LOGIN_PASSWORD_LENGTH], a
+ ld de, sMobileLoginPassword + 1
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .loop
+ call CloseSRAM
+ ret
+
+BattleTowerRoomMenu2: ; 119ed8 (46:5ed8)
+ ld a, [rSVBK]
+ ld [wcd8c], a
+ ld a, $1
+ ld [rSVBK], a
+
+ call .RunJumptable
+
+ ld a, [wcd8c]
+ ld [rSVBK], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+.RunJumptable:
+ jumptable .Jumptable, wcd3c
+
+.Jumptable:
+ dw Function119f3f
+ dw Function119f45
+ dw Function119f56
+ dw Function119f76
+ dw Function119f98
+ dw Function11a113
+ dw Function11a129
+ dw Function11a131
+ dw Function11a13d
+ dw Function11a14b
+ dw Function11a16d
+ dw Function11a192
+ dw Function11a2e6
+ dw Function11a302
+ dw Function11a33a
+ dw BattleTowerRoomMenu2_PlaceYesNoMenu
+ dw BattleTowerRoomMenu2_UpdateYesNoMenu
+ dw Function11a357
+ dw Function11a36b
+ dw Function11a38d
+ dw Function11a3c5
+ dw Function11a3d9
+ dw Function11a3f9
+ dw Function11a41b
+ dw Function11a452
+ dw Function11a47a
+ dw Function11a488
+ dw Function11a49e
+ dw Function11a4db
+ dw Function11a4e8
+ dw Function11a4fe
+ dw Function11a466
+ dw Function11a47a
+; 119f3f
+
+Function119f3f: ; 119f3f
+ call Function11a5b9
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f45
+
+Function119f45: ; 119f45
+ hlcoord 4, 2
+ ld de, String_11a661
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f56
+
+Function119f56: ; 119f56
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_119f62
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_119f62
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6aa
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f76
+
+Function119f76: ; 119f76
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_119f82
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_119f82
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a679
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f98
+
+Function119f98: ; 119f98
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_119fef
+ call ExitMenu
+ call Function11a63c
+ xor a
+ ld [ScriptVar], a
+ call Function11a00e
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_119fd4
+ call ExitMenu
+ callba ReloadMapPart
+ callba Function115dc3
+ ld a, [wcd33]
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ scf
+ ret
+
+.asm_119fd4
+ hlcoord 4, 2
+ ld de, String_11a692
+ call PlaceString
+ ld a, $1
+ ld [wc30d], a
+ ld a, $1
+ ld [wc314], a
+ callba ReloadMapPart
+ and a
+ ret
+
+.asm_119fef
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerSeconds]
+ ld [wcf66], a
+ callba Function115dc3
+ ld a, $a
+ ld [wc300], a
+ scf
+ ret
+; 11a00e
+
+Function11a00e: ; 11a00e
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ ld a, [sMobileLoginPassword]
+ and a
+ jr z, .asm_11a02a
+ ld a, [sMobileLoginPassword + 1]
+ call CloseSRAM
+ and a
+ ret nz
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ xor a
+ ld [sMobileLoginPassword], a
+
+.asm_11a02a
+ call CloseSRAM
+ ld a, [BGMapPalBuffer]
+ and a
+ jr z, .asm_11a039
+ dec a
+ jr z, .asm_11a081
+ jp Function11a0ca
+
+.asm_11a039
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $c608
+ ld de, w3_d800
+ ld bc, $00f6
+ call CopyBytes
+ ld a, $1
+ ld [rSVBK], a
+ call FadeToMenu
+ callba Function11765d
+ call Function11a9ce
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, w3_d800
+ ld de, $c608
+ ld bc, $00f6
+ call CopyBytes
+ ld a, $1
+ ld [rSVBK], a
+ callba Function115d99
+ ld c, $0
+ callba Function115e18
+ ld a, $1
+ ld [wc305], a
+ ret
+
+.asm_11a081
+ xor a
+ ld [wMenuBorderLeftCoord], a
+ ld [wMenuBorderTopCoord], a
+ ld a, $13
+ ld [wMenuBorderRightCoord], a
+ ld a, $5
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ callba Function11765d
+ callba Function117ab4
+ callba MobileFunc_106462
+ callba Function106464
+ call ExitMenu
+ callba ReloadMapPart
+ callba Function115d99
+ ld c, $0
+ callba Function115e18
+ ld a, $1
+ ld [wc305], a
+ ret
+; 11a0ca
+
+Function11a0ca: ; 11a0ca
+ xor a
+ ld [wMenuBorderLeftCoord], a
+ ld [wMenuBorderTopCoord], a
+ ld a, $13
+ ld [wMenuBorderRightCoord], a
+ ld a, $11
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ callba Function11765d
+ callba Function17d3f6
+ callba MobileFunc_106462
+ callba Function106464
+ call ExitMenu
+ callba ReloadMapPart
+ callba Function115d99
+ ld c, $0
+ callba Function115e18
+ ld a, $1
+ ld [wc305], a
+ ret
+; 11a113
+
+Function11a113: ; 11a113
+ call Function11a63c
+ ld c, $1
+ callba Function115e18
+ hlcoord 4, 2
+ ld de, String_11a6c8
+ call PlaceString
+ and a
+ ret
+; 11a129
+
+Function11a129: ; 11a129
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a131
+
+Function11a131: ; 11a131
+ ld hl, wMobileInactivityTimerMinutes
+ dec [hl]
+ ret nz
+ ld a, [wcd3c]
+ inc a
+ ld [wcd3c], a
+
+Function11a13d:
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+; 11a14b
+
+Function11a14b: ; 11a14b
+ ld hl, wcd85
+ ld a, [hl]
+ cp $f3
+ jr nz, .asm_11a155
+ and a
+ ret
+
+.asm_11a155
+ call Function11a1d6
+ ret c
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6f1
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a16d
+
+Function11a16d: ; 11a16d
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a179
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a179
+ call Function11a63c
+ call Function11a1e6
+ hlcoord 4, 2
+ ld de, $c346
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a192
+
+Function11a192: ; 11a192
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a1b6
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a1b6
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerSeconds]
+ ld [wcf66], a
+ ld [wcd80], a
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ scf
+ ret
+; 11a1d6
+
+Function11a1d6: ; 11a1d6
+ ld a, [wcd85]
+ cp $50
+ jr nz, .asm_11a1e4
+ ld a, $d3
+ call Function118805
+ scf
+ ret
+
+.asm_11a1e4
+ and a
+ ret
+; 11a1e6
+
+Function11a1e6: ; 11a1e6
+ ld hl, String_11a706
+ ld de, $c346
+ call Function11a1ff
+ ld hl, wcd85
+ call Function11a1ff
+ ld hl, String_11a70b
+ call Function11a1ff
+ ld a, $50
+ ld [de], a
+ ret
+; 11a1ff
+
+Function11a1ff: ; 11a1ff
+.asm_11a1ff
+ ld a, [hli]
+ cp $50
+ ret z
+ ld [de], a
+ inc de
+ jr .asm_11a1ff
+; 11a207
+
+BattleTowerRoomMenu2_PlaceYesNoMenu: ; 11a207
+ ld hl, MenuDataHeader_11a2de
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ call ApplyTilemap
+ hlcoord 16, 8
+ ld de, String_11a2cf
+ call PlaceString
+ hlcoord 16, 10
+ ld de, String_11a2d3
+ call PlaceString
+ hlcoord 15, 8
+ ld a, $ed
+ ld [hl], a
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a235
+
+BattleTowerRoomMenu2_UpdateYesNoMenu: ; 11a235
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a_button
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b_button
+ ld a, [hl]
+ and D_UP
+ jr nz, .d_up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .d_down
+.asm_11a24c
+ call Function11a9f0
+ scf
+ ret
+
+.d_up
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a24c
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ hlcoord 15, 8
+ ld a, $ed
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, $7f
+ ld [hl], a
+ jr .asm_11a24c
+
+.d_down
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a24c
+ inc a
+ ld [wMobileInactivityTimerMinutes], a
+ hlcoord 15, 8
+ ld a, $7f
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, $ed
+ ld [hl], a
+ jr .asm_11a24c
+
+.a_button
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .exit_no_carry
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerFrames]
+ cp $0
+ jr z, .asm_11a2b4
+ ld a, [wcd47]
+ jr .exit_carry
+
+.asm_11a2b4
+ ld a, [wcd33]
+
+.exit_carry
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ scf
+ ret
+
+.b_button
+ call PlayClickSFX
+
+.exit_no_carry
+ call ExitMenu
+ callba ReloadMapPart
+ and a
+ ret
+; 11a2cf
+
+String_11a2cf: ; 11a2cf
+ db "YES@"
+; 11a2d3
+
+String_11a2d3: ; 11a2d3
+ db "NO@"
+; 11a2d6
+
+MenuDataHeader_11a2d6: ; 11a2d6
+ db $40 ; flags
+ db 6, 14 ; start coords
+ db 10, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11a2de
+
+MenuDataHeader_11a2de: ; 11a2de
+ db $40 ; flags
+ db 7, 14 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11a2e6
+
+Function11a2e6: ; 11a2e6
+ call Function11a63c
+ ld c, $2
+ callba Function115e18
+ hlcoord 4, 2
+ ld de, String_11a71e
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a302
+
+Function11a302: ; 11a302
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a30e
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a30e
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a72a
+ call PlaceString
+ hlcoord 9, 4
+ ld de, wcd68
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ hlcoord 14, 4
+ ld de, wcd67
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a33a
+
+Function11a33a: ; 11a33a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a346
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a346
+ call ExitMenu
+ callba ReloadMapPart
+ callba Function115dc3
+ and a
+ ret
+; 11a357
+
+Function11a357: ; 11a357
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a743
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a36b
+
+Function11a36b: ; 11a36b
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a377
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a377
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a755
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a38d
+
+Function11a38d: ; 11a38d
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a3b1
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a3b1
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerSeconds]
+ ld [wcf66], a
+ ld [wcd80], a
+ scf
+ ret
+; 11a3c5
+
+Function11a3c5: ; 11a3c5
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a762
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a3d9
+
+Function11a3d9: ; 11a3d9
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a3e5
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a3e5
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a779
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a3f9
+
+Function11a3f9: ; 11a3f9
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a405
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a405
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a755
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a41b
+
+Function11a41b: ; 11a41b
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a43f
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a43f
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, $1c
+ ld [wcf66], a
+ ld [wcd80], a
+ scf
+ ret
+; 11a452
+
+Function11a452: ; 11a452
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a791
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a466
+
+Function11a466: ; 11a466
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a7c1
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a47a
+
+Function11a47a: ; 11a47a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a486
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a486
+ and a
+ ret
+; 11a488
+
+Function11a488: ; 11a488
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a7ac
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a49e
+
+Function11a49e: ; 11a49e
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a4c7
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ ld a, $14
+ ld [wcf66], a
+ and a
+ ret
+
+.asm_11a4c7
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerFrames]
+ ld [wcf66], a
+ ld [wcd80], a
+ scf
+ ret
+; 11a4db
+
+Function11a4db: ; 11a4db
+ call Function11a63c
+ ld de, String_11a6db
+ hlcoord 4, 2
+ call PlaceString
+ ret
+; 11a4e8
+
+Function11a4e8: ; 11a4e8
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a7d7
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a4fe
+
+Function11a4fe: ; 11a4fe
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a522
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a522
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerSeconds]
+ ld [wcf66], a
+ ld [wcd80], a
+ scf
+ ret
+; 11a536
+
+Function11a536: ; 11a536
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $1
+ jr nz, .asm_11a5a7
+ ld a, [hl]
+ and $2
+ jr nz, .asm_11a5a2
+ ld a, [hl]
+ and $40
+ jr nz, .asm_11a564
+ ld a, [hl]
+ and $80
+ jr nz, .asm_11a583
+.asm_11a54d
+ ld a, [wcd3c]
+ cp $4
+ jr z, .asm_11a562
+ call Function11a9f0
+ jr nz, .asm_11a562
+ call ExitMenu
+ callba ReloadMapPart
+
+.asm_11a562
+ scf
+ ret
+
+.asm_11a564
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a54d
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ hlcoord 15, 7
+ ld a, $ed
+ ld [hl], a
+ hlcoord 15, 9
+ ld a, $7f
+ ld [hl], a
+ jr .asm_11a54d
+
+.asm_11a583
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a54d
+ inc a
+ ld [wMobileInactivityTimerMinutes], a
+ hlcoord 15, 7
+ ld a, $7f
+ ld [hl], a
+ hlcoord 15, 9
+ ld a, $ed
+ ld [hl], a
+ jr .asm_11a54d
+
+.asm_11a5a2
+ ld a, $1
+ ld [wMobileInactivityTimerMinutes], a
+
+.asm_11a5a7
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ and a
+ ret
+; 11a5b0
+
+BattleTowerRoomMenu2_IncrementJumptable: ; 11a5b0
+ ld a, [wcd3c]
+ inc a
+ ld [wcd3c], a
+ scf
+ ret
+; 11a5b9
+
+Function11a5b9: ; 11a5b9
+ xor a
+ ld [wMenuBorderLeftCoord], a
+ ld [wMenuBorderTopCoord], a
+ ld a, $13
+ ld [wMenuBorderRightCoord], a
+ ld a, $5
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ hlcoord 0, 0, AttrMap
+ ld b, $6
+ ld c, $14
+ hlcoord 0, 0
+ ld b, $4
+ ld c, $12
+ call Function3eea
+ callba ReloadMapPart
+ call UpdateSprites
+ ld c, $0
+ callba Function115e18
+ ld a, $1
+ ld [wc305], a
+ ret
+; 11a5f5
+
+Function11a5f5: ; 11a5f5
+ ld a, $e
+ ld [wMenuBorderLeftCoord], a
+ ld a, $13
+ ld [wMenuBorderRightCoord], a
+ ld a, $6
+ ld [wMenuBorderTopCoord], a
+ ld a, $a
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ hlcoord 14, 6, AttrMap
+ ld b, $5
+ ld c, $6
+ hlcoord 14, 6
+ ld b, $3
+ ld c, $4
+ call Function3eea
+ hlcoord 16, 7
+ ld de, String_11a2cf
+ call PlaceString
+ hlcoord 16, 9
+ ld de, String_11a2d3
+ call PlaceString
+ hlcoord 15, 7
+ ld a, $ed
+ ld [hl], a
+ callba ReloadMapPart
+ ret
+; 11a63c
+
+Function11a63c: ; 11a63c
+ hlcoord 4, 1
+ ld de, String_11a7f4
+ call PlaceString
+ hlcoord 4, 2
+ ld de, String_11a7f4
+ call PlaceString
+ hlcoord 4, 3
+ ld de, String_11a7f4
+ call PlaceString
+ hlcoord 4, 4
+ ld de, String_11a7f4
+ call PlaceString
+ ret
+; 11a661
+
+String_11a661: ; 11a661
+ db "これから モバイルセンターに"
+ next "でんわ", $1f, "かけます@"
+; 11a679
+
+String_11a679: ; 11a679
+ db "モバイルアダプタ", $25, "じゅんびは"
+ next "できて いますか?@"
+; 11a692
+
+String_11a692: ; 11a692
+ db "でんわ", $1f, "かけています"
+ next "しばらく おまちください@"
+; 11a6aa
+
+String_11a6aa: ; 11a6aa
+ db "でんわをかけると つうわりょう"
+ next "せつぞくりょう", $4a, "かかります@"
+; 11a6c8
+
+String_11a6c8: ; 11a6c8
+ db "せつぞく しました@"
+; 11a6d2
+
+String_11a6d2: ; 11a6d2
+ db "つうしん ちゅう@"
+; 11a6db
+
+String_11a6db: ; 11a6db
+ db "つうしん ちゅう"
+ next "セレクト エーでちゅうし@"
+; 11a6f1
+
+String_11a6f1: ; 11a6f1
+ db "この サービスには"
+ next "つうわりょう", $25, "ほかに@"
+; 11a706
+
+String_11a706: ; 11a706
+ db "おかね", $4a, "@"
+; 11a70b
+
+String_11a70b: ; 11a70b
+ db "えん"
+ next "かかります よろしい ですか?@"
+; 11a71e
+
+String_11a71e: ; 11a71e
+ db "つうしん しゅうりょう@"
+; 11a72a
+
+String_11a72a: ; 11a72a
+ db "つないだ じかん"
+ next " やく ふん びょう@"
+; 11a743
+
+String_11a743: ; 11a743
+ db "もっていない データが"
+ next "あります!@"
+; 11a755
+
+String_11a755: ; 11a755
+ db "データ", $1f, "よみこみますか?@"
+; 11a762
+
+String_11a762: ; 11a762
+ db "おなじ データ", $1f, "よみこんだ"
+ next "こと", $4a, "ありますが@"
+; 11a779
+
+String_11a779: ; 11a779
+ db "そのデータ", $24, "なくなっているか"
+ next "こわれて います@"
+; 11a791
+
+String_11a791: ; 11a791
+ db "もっている データと"
+ next "おなじデータしか ありません!@"
+; 11a7ac
+
+String_11a7ac: ; 11a7ac
+ db "データ", $25, "よみこみを"
+ next "ちゅうし しますか?@"
+; 11a7c1
+
+String_11a7c1: ; 11a7c1 ; new news?
+ db "あたらしい ニュースは"
+ next "ありません でした@"
+; 11a7d7
+
+String_11a7d7: ; 11a7d7
+ db "あたらしいニュース", $4a, "あります"
+ next "ニュース", $1f, "よみこみますか?@"
+; 11a7f4
+
+String_11a7f4: ; 11a7f4
+ db " @"
+; 11a804
+
+MenuDataHeader_11a804: ; 11a804
+ db $40 ; flags
+ db 0, 0 ; start coords
+ db 5, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11a80c
+
+Function11a80c: ; 11a80c
+ ld de, hDivisor
+ ld bc, hDividend
+ ld hl, Unknown_11a89a
+ call Function11a88c
+ ld bc, hQuotient
+ ld hl, Unknown_11a8ba
+ call Function11a88c
+ ld bc, hPrintNum3
+ ld hl, Unknown_11a8da
+ call Function11a88c
+ xor a
+ ld b, a
+ ld a, [hDivisor]
+ and $f
+ ld e, a
+ ld a, [hPrintNum7]
+ and $f
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum9]
+ and $f
+ call Function11a884
+ ld [wcd62], a
+ ld e, b
+ xor a
+ ld b, a
+ ld a, [hDivisor]
+ and $f0
+ swap a
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum7]
+ and $f0
+ swap a
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum9]
+ and $f0
+ swap a
+ call Function11a884
+ ld [wcd63], a
+ ld e, b
+ xor a
+ ld b, a
+ ld a, [hMathBuffer]
+ and $f
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum8]
+ and $f
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum10]
+ and $f
+ call Function11a884
+ ld [wcd64], a
+ ret
+; 11a884
+
+Function11a884: ; 11a884
+ add e
+ cp $a
+ ret c
+ sub $a
+ inc b
+ ret
+; 11a88c
+
+Function11a88c: ; 11a88c
+ ld a, [bc]
+ sla a
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ret
+; 11a89a
+
+Unknown_11a89a: ; 11a89a
+x = 0
+rept 16
+ bcd x % 100, x / 100
+x = x + 1
+endr
+
+Unknown_11a8ba: ; 11a8ba
+x = 0
+rept 16
+ bcd x % 100, x / 100
+x = x + 16
+endr
+
+Unknown_11a8da: ; 11a8da
+x = 0
+rept 16
+ bcd x % 100, x / 100
+x = x + 256
+endr
+; 11a8fa
+
+BattleTowerRoomMenu_WriteMessage: ; 11a8fa
+ jumptable .Jumptable, $c31a
+; 11a909
+
+.Jumptable: ; 11a909
+ dw BattleTowerRoomMenu_WriteMessage_DoNothing
+ dw Function11a90f
+ dw Function11a971
+; 11a90f
+
+Function11a90f: ; 11a90f
+ ld a, $1
+ ld [rSVBK], a
+ call SpeechTextBox
+ ld a, $50
+ ld hl, $c320
+ ld bc, $008c
+ call ByteFill
+ ld a, [$c31b]
+ ld l, a
+ ld a, [$c31c]
+ ld h, a
+ ld de, $c320
+.asm_11a92c
+ ld a, [hli]
+ cp $57
+ jr z, .asm_11a94f
+ cp $0
+ jr z, .asm_11a92c
+ cp $50
+ jr z, .asm_11a92c
+ cp $1
+ jr z, .asm_11a941
+ ld [de], a
+ inc de
+ jr .asm_11a92c
+
+.asm_11a941
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+.asm_11a945
+ ld a, [bc]
+ inc bc
+ cp $50
+ jr z, .asm_11a92c
+ ld [de], a
+ inc de
+ jr .asm_11a945
+
+.asm_11a94f
+ xor a
+ ld [$c31f], a
+ ld a, $c320 % $100
+ ld [$c31b], a
+ ld a, $c320 / $100
+ ld [$c31c], a
+ hlcoord 1, 14
+ ld a, l
+ ld [$c31d], a
+ ld a, h
+ ld [$c31e], a
+ ld hl, $c31a
+ inc [hl]
+ ld a, $3
+ ld [rSVBK], a
+
+BattleTowerRoomMenu_WriteMessage_DoNothing:
+ ret
+; 11a971
+
+Function11a971: ; 11a971
+ ld hl, $c31f
+ ld a, [hJoyDown]
+ and a
+ jr nz, .asm_11a97f
+ ld a, [hl]
+ and a
+ jr z, .asm_11a97f
+ dec [hl]
+ ret
+
+.asm_11a97f
+ ld a, [Options]
+ and $7
+ ld [hl], a
+ ld hl, wcd8d
+ ld a, [$c31b]
+ ld e, a
+ ld a, [$c31c]
+ ld d, a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, e
+ ld [$c31b], a
+ ld a, d
+ ld [$c31c], a
+ ld a, $50
+ ld [hl], a
+ ld a, [$c31d]
+ ld l, a
+ ld a, [$c31e]
+ ld h, a
+ ld de, wcd8d
+ call PlaceString
+ ld a, c
+ ld [$c31d], a
+ ld a, b
+ ld [$c31e], a
+ ld a, [wcd8d]
+ cp $50
+ jr nz, .asm_11a9bf
+ xor a
+ ld [$c31a], a
+
+.asm_11a9bf
+ ret
+; 11a9c0
+
+BattleTowerRoomMenu_SetMessage: ; 11a9c0
+ ld a, l
+ ld [$c31b], a
+ ld a, h
+ ld [$c31c], a
+ ld a, $1
+ ld [$c31a], a
+ ret
+; 11a9ce
+
+Function11a9ce: ; 11a9ce
+ call ClearBGPalettes
+ call ReloadTilesetAndPalettes
+ call Call_ExitMenu
+ callba MobileFunc_106462
+ callba Function106464
+ call ret_d90
+ callba FinishExitMenu
+ call UpdateSprites
+ ret
+; 11a9f0
+
+Function11a9f0: ; 11a9f0
+ ld a, $1
+ and a
+ ret
+; 11a9f4
+
+Function11a9f4: ; 11a9f4
+ ld a, [wcd8a]
+ ld l, a
+ ld a, [wcd8b]
+ ld h, a
+ inc hl
+ ld a, l
+ ld [wcd8a], a
+ ld a, h
+ ld [wcd8b], a
+ ld de, $d5d0
+ add hl, de
+ bit 7, h
+ ret nz
+ ld a, $d6
+ call Function118805
+ and a
+ ret
+; 11aa13
+
+Text_SaveFileWillBeSent: ; 0x11aa13
+ text "SAVE FILE will be"
+ line "sent."
+ done
+; 0x11aa2c
+
+Text_SentSaveFileReadingNews: ; 0x11aa2c
+ text "Sent SAVE FILE."
+ line "Reading NEWS…"
+ done
+; 0x11aa4b
+
+Text_ReadingNews: ; 0x11aa4b
+ text "Reading NEWS…"
+ done
+; 0x11aa5a
+
+Text_ReceivedNews: ; 0x11aa5a
+ text "Received NEWS!"
+ done
+; 0x11aa6a
+
+Text_QuitReadingNews: ; 0x11aa6a
+ text "Quit reading NEWS?"
+ done
+; 0x11aa7e
+
+Text_CanceledSendingSaveFile: ; 0x11aa7e
+ text "Canceled sending"
+ line "SAVE FILE."
+ done
+; 0x11aa9b
+
+Text_ReceivedOddEgg: ; 0x11aa9b
+ text "ODD EGG"
+ line "was received!"
+ done
+; 0x11aab2
+
+Text_RegisteringRecord: ; 0x11aab2
+ text "Registering your"
+ line "record…"
+ done
+; 0x11aacc
+
+Text_BattleRoomVisitLimit: ; 0x11aacc
+ text "One visit per day"
+ line "per BATTLE ROOM!"
+ done
+; 0x11aaf0
+
+Text_PartyMonTopsThisLevel: ; 0x11aaf0
+ text "A party #MON"
+ line "tops this level."
+ done
+; 0x11ab0f
+
+Text_UberRestriction: ; 0x11ab0f
+ text_from_ram wcd49
+ text " may go"
+ line "only to BATTLE"
+
+ para "ROOMS that are"
+ line "Lv.70 or higher."
+ done
+; 0x11ab4a
+
+Text_CancelBattleRoomChallenge: ; 0x11ab4a
+ text "Cancel your BATTLE"
+ line "ROOM challenge?"
+ done
+; 0x11ab6e
+
+Text_ExitGymLeaderHonorRoll: ; 0x11ab6e
+ text "Exit GYM LEADER"
+ line "HONOR ROLL?"
+ done
+; 0x11ab8b
+
+Text_LinkingWithCenter: ; 0x11ab8b
+ text "Linking with the"
+ line "CENTER…"
+ done
+; 0x11aba5
+
+Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5
+ text "What level do you"
+ line "want to challenge?"
+ done
+; 0x11abcb
+
+Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb
+ text "Check BATTLE ROOM"
+ line "list by max level?"
+ done
+; 0x11abf1
+
+Text_EnterWhichBattleRoom: ; 0x11abf1
+ text "Enter which"
+ line "BATTLE ROOM?"
+ done
+; 0x11ac0b
+
+Text_WhichBattleRoom: ; 0x11ac0b
+ text "Which BATTLE ROOM?"
+ done
+; 0x11ac1f
+
+Text_ThisBattleRoomPleaseWait: ; 0x11ac1f
+ text_from_ram StringBuffer3
+ text "'s ROOM"
+ line "@"
+ text_from_ram StringBuffer4
+ text "?"
+ cont "Please wait…"
+ done
+; 0x11ac3e
+
+Function11ac3e: ; 11ac3e
+ call SpeechTextBox
+ call FadeToMenu
+ callab ClearSpriteAnims2
+ call Function11ac51
+ call CloseSubmenu
+ ret
+; 11ac51
+
+Function11ac51: ; 11ac51
+ xor a
+ ld [hBGMapMode], a
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ xor a
+ ld [hMapAnims], a
+ ld [wcd49], a
+ ld [wcd4a], a
+ ld [wcd4c], a
+ ld [wcd4d], a
+ ld [wcd4e], a
+ call Function11ad1b
+ call DelayFrame
+.loop
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_11aca8
+ call Function11b314
+ call Function11acb7
+ call Function11ad6e
+ ld a, 30 * 4
+ ld [wCurrSpriteOAMAddr], a
+ callba DoNextFrameForAllSprites
+ callba ReloadMapPart
+ jr .loop
+
+.asm_11aca8
+ call ClearSprites
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [Options], a
+ ret
+; 11acb7
+
+Function11acb7: ; 11acb7
+ ld hl, TilemapPack_11ba44
+ ld a, [wcd49]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ decoord 6, 6
+ ld a, [hli]
+ ld [de], a
+ decoord 0, 7
+ ld bc, 7
+ call CopyBytes
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, [hl]
+ cp $ff
+ jr nz, .get_the_other
+ xor a
+ ld [wcd49], a
+.get_the_other
+ ld hl, TilemapPack_11bb7d
+ ld a, [wcd4a]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ decoord 3, 9
+ ld bc, 7
+ call CopyBytes
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ inc hl
+ ld a, [hl]
+ cp $ff
+ ret nz
+ xor a
+ ld [wcd4a], a
+ ret
+; 11ad1b
+
+Function11ad1b: ; 11ad1b
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ callba Function17c000
+ ld a, [wMenuCursorY]
+ ld [wcd82], a
+ dec a
+ ld [hObjectStructIndexBuffer], a
+ ld a, $10
+ ld [wCurIconTile], a
+ ld hl, LoadMenuMonIcon
+ ld a, BANK(LoadMenuMonIcon)
+ ld e, $4
+ rst FarCall
+ ld hl, LoadMenuMonIcon
+ ld a, BANK(LoadMenuMonIcon)
+ ld e, $5
+ rst FarCall
+ ld hl, $c6d0
+ ld bc, $0115
+ xor a
+ call ByteFill
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [wcd30], a
+ ld a, $2
+ ld [wc7d4], a
+ callba Pokedex_OrderMonsByMode
+ ret
+; 11ad6e
+
+Function11ad6e: ; 11ad6e
+ ld a, [wJumptableIndex]
+ ld hl, Jumptable_11ad78
+ call Function11b239
+ jp hl
+; 11ad78
+
+Jumptable_11ad78: ; 11ad78
+ dw Function11b082
+ dw Function11b0ff
+ dw Function11ad95
+ dw Function11adc4
+ dw Function11ae4e
+ dw Function11ae98
+ dw Function11ad8f
+ dw Function11af04
+ dw Function11af4e
+; 11ad8a
+
+Function11ad8a: ; 11ad8a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 11ad8f
+
+Function11ad8f: ; 11ad8f
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 11ad95
+
+Function11ad95: ; 11ad95
+ ld hl, MenuDataHeader_11ae38
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 12, 12
+ ld de, String_11ae40
+ call PlaceString
+ hlcoord 10, 10, AttrMap
+ lb bc, 8, 8
+ call Function11afd6
+ callba ReloadMapPart
+ call Function11ad8a
+ ld a, $1
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afcc
+ call Function11afb7
+
+Function11adc4:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and a
+ ret z
+ ld a, [hl]
+ and $40
+ jr nz, .asm_11ade6
+ ld a, [hl]
+ and $80
+ jr nz, .asm_11aded
+ ld a, [hl]
+ and $1
+ jr nz, .asm_11ae06
+ ld a, [hl]
+ and $2
+ ret z
+ call PlayClickSFX
+ xor a
+ ld [wJumptableIndex], a
+ jr .asm_11ae2e
+
+.asm_11ade6
+ ld a, [wMenuCursorY]
+ dec a
+ ret z
+ jr .asm_11adf4
+
+.asm_11aded
+ ld a, [wMenuCursorY]
+ inc a
+ cp $4
+ ret z
+
+.asm_11adf4
+ push af
+ ld hl, Unknown_11afcc
+ call Function11afbb
+ pop af
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afcc
+ call Function11afb7
+ ret
+
+.asm_11ae06
+ call PlayClickSFX
+ ld a, [wMenuCursorY]
+ dec a
+ ld hl, wcd30
+ ld [hl], a
+ and a
+ jr z, .asm_11ae28
+ hlcoord 2, 14
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .asm_11ae23
+ call Function11b272
+ jr .asm_11ae2b
+
+.asm_11ae23
+ call Function11b267
+ jr .asm_11ae2b
+
+.asm_11ae28
+ ld a, $3
+ ld [hl], a
+
+.asm_11ae2b
+ call Function11ad8a
+
+.asm_11ae2e
+ call ExitMenu
+ callba ReloadMapPart
+ ret
+; 11ae38
+
+MenuDataHeader_11ae38: ; 11ae38
+ db $40 ; flags
+ db 10, 10 ; start coords
+ db 17, 17 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11ae40
+
+String_11ae40: ; 11ae40
+ db "どちらでも"
+ next "♂ォス"
+ next "♀メス"
+ db "@"
+; 11ae4e
+
+Function11ae4e: ; 11ae4e
+ ld hl, MenuDataHeader_11afe8
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 10, 14
+ ld de, String_11aff0
+ call PlaceString
+ ld hl, MenuDataHeader_11b013
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 16, 8
+ ld de, String_11b01b
+ call PlaceString
+ hlcoord 14, 7, AttrMap
+ lb bc, 5, 6
+ call Function11afd6
+ hlcoord 9, 12, AttrMap
+ lb bc, 6, 11
+ call Function11afd6
+ callba ReloadMapPart
+ call Function11ad8a
+ ld a, $1
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+
+Function11ae98:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and a
+ ret z
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_11aec1
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_11aec8
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_11aee1
+ ld a, [hl]
+ and B_BUTTON
+ ret z
+ call PlayClickSFX
+.asm_11aeb4
+ hlcoord 2, 14
+ ld a, $7f
+ ld [hl], a
+ ld a, $1
+ ld [wJumptableIndex], a
+ jr .asm_11aef7
+
+.asm_11aec1
+ ld a, [wMenuCursorY]
+ dec a
+ ret z
+ jr .asm_11aecf
+
+.asm_11aec8
+ ld a, [wMenuCursorY]
+ inc a
+ cp $3
+ ret z
+
+.asm_11aecf
+ push af
+ ld hl, Unknown_11afd2
+ call Function11afbb
+ pop af
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+ ret
+
+.asm_11aee1
+ call PlayClickSFX
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .asm_11aeb4
+ ld a, [wcd4b]
+ ld [ScriptVar], a
+ call Function11b022
+ call Function11ad8a
+
+.asm_11aef7
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ ret
+; 11af04
+
+Function11af04: ; 11af04
+ ld hl, MenuDataHeader_11afe8
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 10, 14
+ ld de, String_11b003
+ call PlaceString
+ ld hl, MenuDataHeader_11b013
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 16, 8
+ ld de, String_11b01b
+ call PlaceString
+ hlcoord 14, 7, AttrMap
+ lb bc, 5, 6
+ call Function11afd6
+ hlcoord 9, 12, AttrMap
+ lb bc, 6, 11
+ call Function11afd6
+ callba ReloadMapPart
+ call Function11ad8a
+ ld a, $2
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+
+Function11af4e:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and a
+ ret z
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_11af77
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_11af7e
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_11af97
+ ld a, [hl]
+ and B_BUTTON
+ ret z
+ call PlayClickSFX
+.asm_11af6a
+ hlcoord 2, 14
+ ld a, $7f
+ ld [hl], a
+ ld a, $1
+ ld [wJumptableIndex], a
+ jr .asm_11afaa
+
+.asm_11af77
+ ld a, [wMenuCursorY]
+ dec a
+ ret z
+ jr .asm_11af85
+
+.asm_11af7e
+ ld a, [wMenuCursorY]
+ inc a
+ cp $3
+ ret z
+
+.asm_11af85
+ push af
+ ld hl, Unknown_11afd2
+ call Function11afbb
+ pop af
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+ ret
+
+.asm_11af97
+ call PlayClickSFX
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .asm_11af6a
+ ld a, $6
+ ld [wJumptableIndex], a
+ xor a
+ ld [ScriptVar], a
+
+.asm_11afaa
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ ret
+; 11afb7
+
+Function11afb7: ; 11afb7
+ ld e, $ed
+ jr asm_11afbd
+
+Function11afbb:
+ ld e, $7f
+
+asm_11afbd:
+ ld a, [wMenuCursorY]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, e
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld [de], a
+ ret
+; 11afcc
+
+Unknown_11afcc:
+ dwcoord 11, 12
+ dwcoord 11, 14
+ dwcoord 11, 16
+
+Unknown_11afd2:
+ dwcoord 15, 8
+ dwcoord 15, 10
+; 11afd6
+
+Function11afd6: ; 11afd6
+ ld de, SCREEN_WIDTH
+ ld a, $3
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+; 11afe8
+
+MenuDataHeader_11afe8: ; 11afe8
+ db $40 ; flags
+ db 12, 9 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11aff0
+
+String_11aff0: ; 11aff0
+ db "この じょうけんで"
+ next "よろしいですか?@"
+; 11b003
+
+String_11b003: ; 11b003
+ db "こうかんを"
+ next "ちゅうししますか?@"
+; 11b013
+
+MenuDataHeader_11b013: ; 11b013
+ db $40 ; flags
+ db 7, 14 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 1 ; default option
+; 11b01b
+
+String_11b01b:
+ db "はい"
+ next "いいえ@"
+; 11b022
+
+Function11b022: ; 11b022
+ ld a, [wcd2e]
+ and a
+ jr z, .asm_11b02e
+ ld hl, StringBuffer3
+ call Function11b03d
+
+.asm_11b02e
+ ld a, [wcd30]
+ and a
+ ret z
+ cp $3
+ ret z
+ ld hl, StringBuffer4
+ call Function11b03d
+ ret
+; 11b03d
+
+Function11b03d: ; 11b03d
+ push hl
+ push af
+ ld c, $1
+.loop
+ ld a, [hli]
+ cp "♂"
+ jr z, .gender
+ cp "♀"
+ jr z, .gender
+ cp "@"
+ jr z, .done
+ inc c
+ jr .loop
+
+.gender
+ dec hl
+ ld a, "@"
+ ld [hli], a
+
+.done
+ dec hl
+ push hl
+ ld e, 4
+ ld d, 0
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+.loop2
+ ld a, [hld]
+ ld [de], a
+ dec de
+ dec c
+ jr nz, .loop2
+ pop af
+ pop de
+ cp $1
+ jr nz, .female
+ ld hl, .MaleString
+ jr .got_string
+
+.female
+ ld hl, .FemaleString
+
+.got_string
+ ld bc, 4 ; string length
+ call CopyBytes
+ ret
+; 11b07a
+
+.MaleString: db "ォスの "
+.FemaleString: db "メスの "
+
+Function11b082: ; 11b082
+ call Function11b242
+ ld a, $7
+ ld [wc7d3], a
+ call Function11b099
+ call Function11b295
+ call Function11b275
+ call SetPalettes
+ jp Function11ad8a
+; 11b099
+
+Function11b099: ; 11b099
+ ld c, $6
+ hlcoord 11, 1
+ ld a, [wc7d3]
+ add a
+ ld b, a
+ xor a
+ call Function11b236
+ ld a, [wc7d0]
+ ld e, a
+ ld d, $0
+ ld hl, wc6d0
+ add hl, de
+ ld e, l
+ ld d, h
+ hlcoord 11, 2
+ ld a, [wc7d3]
+.loop
+ push af
+ ld a, [de]
+ ld [wd265], a
+ push de
+ push hl
+ call .PlaceMonNameOrPlaceholderString
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ pop de
+ inc de
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+; 11b0cf
+
+.PlaceMonNameOrPlaceholderString: ; 11b0cf
+ and a
+ ret z
+
+ call .CheckSeenFlag
+ ret c
+
+ call .SetCaughtFlag
+ push hl
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ ret
+; 11b0e1
+
+.SetCaughtFlag: ; 11b0e1
+ call CheckCaughtMemMon
+ jr nz, .okay
+ inc hl
+ ret
+
+.okay
+ ld a, $1
+ ld [hli], a
+ ret
+; 11b0ec
+
+.CheckSeenFlag: ; 11b0ec
+ call CheckSeenMemMon
+ ret nz
+
+ inc hl
+ ld de, .EmptySlot
+ call PlaceString
+ scf
+ ret
+; 11b0f9
+
+.EmptySlot: ; 11b0f9
+ db "ーーーーー@"
+; 11b0ff
+
+Function11b0ff: ; 11b0ff
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $2
+ jr nz, .asm_11b141
+ ld a, [hl]
+ and $1
+ jr nz, .asm_11b131
+ call Function11b175
+ jr nc, .asm_11b125
+ ld a, [wcd4c]
+ inc a
+ and $3
+ ld [wcd4c], a
+ xor a
+ ld [hBGMapMode], a
+ call Function11b099
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+.asm_11b125
+ ld a, [wcd4c]
+ and a
+ ret z
+ inc a
+ and $3
+ ld [wcd4c], a
+ ret
+
+.asm_11b131
+ call Function11b20b
+ call CheckSeenMemMon
+ jr z, .asm_11b13d
+ ld a, $1
+ jr .asm_11b148
+
+.asm_11b13d
+ ld a, $2
+ jr .asm_11b148
+
+.asm_11b141
+ ld hl, wJumptableIndex
+ ld a, $7
+ ld [hl], a
+ ret
+
+.asm_11b148
+ call PlayClickSFX
+ ld [wcd4b], a
+ and a
+ jr z, .asm_11b16c
+ ld a, [wcf65]
+ cp $0
+ jr z, .asm_11b163
+ cp $fe
+ jr z, .asm_11b167
+ cp $ff
+ jr z, .asm_11b16b
+ jp Function11ad8a
+
+.asm_11b163
+ ld a, $1
+ jr .asm_11b16c
+
+.asm_11b167
+ ld a, $2
+ jr .asm_11b16c
+
+.asm_11b16b
+ xor a
+
+.asm_11b16c
+ ld [wcd30], a
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; 11b175
+
+Function11b175: ; 11b175
+ ld a, [wc7d3]
+ ld d, a
+ ld a, [wc7d2]
+ ld e, a
+ ld hl, hJoyLast
+ ld a, [hl]
+ and $40
+ jr nz, .asm_11b19a
+ ld a, [hl]
+ and $80
+ jr nz, .asm_11b1ae
+ ld a, d
+ cp e
+ jr nc, .asm_11b1ed
+ ld a, [hl]
+ and $20
+ jr nz, .asm_11b1c6
+ ld a, [hl]
+ and $10
+ jr nz, .asm_11b1d8
+ jr .asm_11b1ed
+
+.asm_11b19a
+ ld hl, wc7d1
+ ld a, [hl]
+ and a
+ jr z, .asm_11b1a4
+ dec [hl]
+ jr .asm_11b1ef
+
+.asm_11b1a4
+ ld hl, wc7d0
+ ld a, [hl]
+ and a
+ jr z, .asm_11b1ed
+ dec [hl]
+ jr .asm_11b1ef
+
+.asm_11b1ae
+ ld hl, wc7d1
+ ld a, [hl]
+ inc a
+ cp e
+ jr nc, .asm_11b1ed
+ cp d
+ jr nc, .asm_11b1bc
+ inc [hl]
+ jr .asm_11b1ef
+
+.asm_11b1bc
+ ld hl, wc7d0
+ add [hl]
+ cp e
+ jr nc, .asm_11b1ed
+ inc [hl]
+ jr .asm_11b1ef
+
+.asm_11b1c6
+ ld hl, wc7d0
+ ld a, [hl]
+ and a
+ jr z, .asm_11b1ed
+ cp d
+ jr nc, .asm_11b1d4
+ xor a
+ ld [hl], a
+ jr .asm_11b1ef
+
+.asm_11b1d4
+ sub d
+ ld [hl], a
+ jr .asm_11b1ef
+
+.asm_11b1d8
+ ld hl, wc7d0
+ ld a, d
+ add a
+ add [hl]
+ jr c, .asm_11b1e3
+ cp e
+ jr c, .asm_11b1e8
+
+.asm_11b1e3
+ ld a, e
+ sub d
+ ld [hl], a
+ jr .asm_11b1ef
+
+.asm_11b1e8
+ ld a, [hl]
+ add d
+ ld [hl], a
+ jr .asm_11b1ef
+
+.asm_11b1ed
+ and a
+ ret
+
+.asm_11b1ef
+ call Function11b295
+ call Function11b275
+ scf
+ ret
+; 11b1f7
+
+Function11b1f7: ; 11b1f7
+ hlcoord 0, 0
+ ld a, $32
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ret
+; 11b203
+
+Function11b203: ; 11b203
+.asm_11b203
+ ld a, [de]
+ cp $ff
+ ret z
+ inc de
+ ld [hli], a
+ jr .asm_11b203
+; 11b20b
+
+Function11b20b: ; 11b20b
+ ld a, [wc7d1]
+ ld hl, wc7d0
+ add [hl]
+ ld e, a
+ ld d, $0
+ ld hl, $c6d0
+ add hl, de
+ ld a, [hl]
+ ld [wd265], a
+ ret
+; 11b21e
+
+CheckCaughtMemMon: ; 11b21e
+ push de
+ push hl
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ pop hl
+ pop de
+ ret
+; 11b22a
+
+CheckSeenMemMon: ; 11b22a
+ push de
+ push hl
+ ld a, [wd265]
+ dec a
+ call CheckSeenMon
+ pop hl
+ pop de
+ ret
+; 11b236
+
+Function11b236: ; 11b236
+ jp FillBoxWithByte
+; 11b239
+
+Function11b239: ; 11b239
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 11b242
+
+Function11b242: ; 11b242
+ hlcoord 3, 4
+ ld de, StringBuffer3
+ call PlaceString
+ xor a
+ ld [MonType], a
+ callba GetGender
+ hlcoord 1, 4
+ ld a, [CurPartySpecies]
+ ld bc, wcd2f
+ ld [bc], a
+ dec bc
+ jr c, asm_11b26a
+ jr z, asm_11b26f
+ ld a, $1
+ ld [bc], a
+
+Function11b267:
+ ld [hl], $ef
+ ret
+
+asm_11b26a
+ xor a
+ ld [bc], a
+ ld [hl], $7f
+ ret
+
+asm_11b26f
+ ld a, $2
+ ld [bc], a
+
+Function11b272:
+ ld [hl], $f5
+ ret
+; 11b275
+
+Function11b275: ; 11b275
+ call Function11b279
+ ret
+; 11b279
+
+Function11b279: ; 11b279
+ ld a, [wd265]
+ ld [CurSpecies], a
+ call CheckSeenMemMon
+ jr z, .asm_11b28f
+ call GetBaseData
+ ld a, [BaseGender]
+ ld [wcf65], a
+ jr .asm_11b294
+
+.asm_11b28f
+ ld a, $ff
+ ld [wcf65], a
+
+.asm_11b294
+ ret
+; 11b295
+
+Function11b295: ; 11b295
+ hlcoord 4, 13
+ ld de, String_11b308
+ call PlaceString
+ hlcoord 4, 14
+ ld de, String_11b308
+ call PlaceString
+ call Function11b20b
+ call CheckSeenMemMon
+ jr z, .asm_11b2d1
+ ld a, [$c608]
+ ld c, a
+ ld a, [$c608 + 1]
+ ld b, a
+ ld hl, $0007
+ add hl, bc
+ xor a
+ ld [hl], a
+ ld hl, $0003
+ add hl, bc
+ ld e, [hl]
+ callba FlyFunction_GetMonIcon
+ hlcoord 4, 14
+ push hl
+ call GetPokemonName
+ jr .asm_11b2e7
+
+.asm_11b2d1
+ ld a, [$c608]
+ ld c, a
+ ld a, [$c608 + 1]
+ ld b, a
+ ld hl, $0007
+ add hl, bc
+ ld a, $50
+ ld [hl], a
+ hlcoord 4, 13
+ push hl
+ ld de, String_11b30e
+
+.asm_11b2e7
+ ld a, $6
+ ld bc, StringBuffer4
+.asm_11b2ec
+ push af
+ ld a, [de]
+ ld [bc], a
+ inc de
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .asm_11b2ec
+ pop hl
+ ld de, StringBuffer4
+ call PlaceString
+ ret
+; 11b2fe
+
+String_11b2fe: ; 11b2fe
+ db "あげる#@"
+; 11b303
+
+String_11b303: ; 11b303
+ db "ほしい#@"
+; 11b308
+
+String_11b308: ; 11b308
+ db " @"
+; 11b30e
+
+String_11b30e: ; 11b30e
+ db "みはっけん@"
+; 11b314
+
+Function11b314: ; 11b314
+ call Function11b31b
+ call Function11b3d9
+ ret
+; 11b31b
+
+Function11b31b: ; 11b31b
+ ld hl, .Coords
+ ld a, [wJumptableIndex]
+ cp 2
+ jr c, .tilemap_1
+ ld a, [wc7d1]
+ cp 4
+ jr nc, .tilemap_3
+ cp 3
+ jr c, .tilemap_1
+ ld a, [wJumptableIndex]
+ cp 2
+ jr z, .tilemap_1
+ cp 3
+ jr z, .tilemap_1
+ cp 6
+ jr z, .tilemap_1
+
+ ld bc, .Tilemap2
+ jr .load_sprites
+
+.tilemap_3
+ ld bc, .Tilemap3
+ jr .load_sprites
+
+.tilemap_1
+ ld bc, .Tilemap1
+
+.load_sprites
+ call Function11b397
+ ret
+; 11b350
+
+.Coords:
+ dbpixel 3, 11, 2, 6 ; 0
+ dbpixel 3, 12, 2, 6 ; 1
+ dbpixel 3, 13, 2, 6 ; 2
+ dbpixel 3, 14, 2, 6 ; 3
+ dbpixel 3, 15, 2, 6 ; 4
+ dbpixel 3, 16, 2, 6 ; 5
+ dbpixel 3, 17, 2, 6 ; 6
+ dbpixel 4, 11, 2, 6 ; 7
+ dbpixel 4, 12, 2, 6 ; 8
+ dbpixel 4, 13, 2, 6 ; 9
+ dbpixel 4, 14, 2, 6 ; 10
+ dbpixel 4, 15, 2, 6 ; 11
+ dbpixel 4, 16, 2, 6 ; 12
+ dbpixel 4, 17, 2, 6 ; 13
+ db -1
+
+.Tilemap1: ; vtiles
+ db $30 ; 0
+ db $31 ; 1
+ db $31 ; 2
+ db $31 ; 3
+ db $31 ; 4
+ db $31 ; 5
+ db $32 ; 6
+ db $40 ; 7
+ db $41 ; 8
+ db $41 ; 9
+ db $41 ; 10
+ db $41 ; 11
+ db $41 ; 12
+ db $42 ; 13
+
+.Tilemap2: ; vtiles
+ db $30 ; 0
+ db $31 ; 1
+ db $31 ; 2
+ db $39 ; 3
+ db $39 ; 4
+ db $39 ; 5
+ db $39 ; 6
+ db $40 ; 7
+ db $41 ; 8
+ db $41 ; 9
+ db $39 ; 10
+ db $39 ; 11
+ db $39 ; 12
+ db $39 ; 13
+
+.Tilemap3: ; vtiles
+ db $39 ; 0
+ db $39 ; 1
+ db $39 ; 2
+ db $39 ; 3
+ db $39 ; 4
+ db $39 ; 5
+ db $39 ; 6
+ db $39 ; 7
+ db $39 ; 8
+ db $39 ; 9
+ db $39 ; 10
+ db $39 ; 11
+ db $39 ; 12
+ db $39 ; 13
+
+Function11b397: ; 11b397
+ ld de, Sprites
+.loop
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld a, [wc7d1]
+ and $7
+ swap a
+ add [hl]
+ inc hl ; 1
+ ld [de], a
+ inc de
+
+ ld a, [hli] ; 2
+ ld [de], a
+ inc de
+
+ ld a, [bc]
+ inc bc
+ ld [de], a
+ inc de
+ ld a, $5 ; OBPal 5
+ ld [de], a
+ inc de
+ jr .loop
+; 11b3b6
+
+Function11b3b6: ; 11b3b6
+; unreferenced
+.loop
+ ld a, [hl]
+ cp -1
+ ret z
+ ld a, [wcd4d]
+ and $7
+ swap a
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ push hl
+ ld l, c
+ ld h, b
+ ld a, [wcd4e]
+ add [hl]
+ inc bc
+ ld [de], a
+ inc de
+ pop hl
+ ld a, $5
+ ld [de], a
+ inc de
+ jr .loop
+; 11b3d9
+
+Function11b3d9: ; 11b3d9
+ ld de, Sprites + 28 * 4
+ push de
+ ld a, [wc7d2]
+ dec a
+ ld e, a
+ ld a, [wc7d1]
+ ld hl, wc7d0
+ add [hl]
+ cp e
+ jr z, .skip
+ ld hl, 0
+ ld bc, $70
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld b, 0
+ ld a, d
+ or e
+ jr z, .load_sprites
+ ld a, [wc7d2]
+ ld c, a
+.loop1
+ ld a, e
+ sub c
+ ld e, a
+ ld a, d
+ sbc $0
+ ld d, a
+ jr c, .load_sprites
+ inc b
+ jr .loop1
+
+.skip
+ ld b, 14 * 8
+
+.load_sprites
+ ld a, 2 * 8 + 5
+ add b
+ pop hl
+ ld [hli], a
+ cp $41
+ jr c, .version1
+ ld a, [wJumptableIndex]
+ cp 4
+ jr z, .version2
+ cp 5
+ jr z, .version2
+ cp 7
+ jr z, .version2
+ cp 8
+ jr z, .version2
+
+.version1
+ ld a, 19 * 8 + 3
+ ld [hli], a
+ ld a, [wcd4c]
+ add $3c
+ ld [hli], a
+ ld a, [wcd4c]
+ add $1
+ ld [hl], a
+ ret
+
+.version2
+ ld a, 19 * 8 + 3
+ ld [hli], a
+ ld a, $39
+ ld [hli], a
+ xor a
+ ld [hl], a
+ ret
+; 11b444
+
+Function11b444: ; 11b444
+; special
+ call Mobile46_InitJumptable
+ call Mobile46_RunJumptable
+ ret
+; 11b44b
+
+Mobile46_InitJumptable: ; 11b44b
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ call UpdateTime
+ ret
+; 11b45c
+
+Mobile46_RunJumptable: ; 11b45c
+.loop
+ call .IterateJumptable
+ call DelayFrame
+ ld a, [wJumptableIndex]
+ cp 4
+ jr nz, .loop
+ ret
+; 11b46a
+
+.IterateJumptable: ; 11b46a
+ jumptable .Jumptable, wJumptableIndex
+
+.Jumptable:
+ dw Function11b483
+ dw Function11b570
+ dw Function11b5c0
+ dw Function11b5e0
+ dw Function11b5e7 ; unused
+; 11b483
+
+Function11b483: ; 11b483
+ call .InitRAM
+ ld hl, PlayerName
+ ld a, NAME_LENGTH_JAPANESE - 1
+.loop1
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop1
+
+ ld de, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1Species
+ ld a, [wcd82]
+ dec a
+ push af
+.loop2
+ and a
+ jr z, .okay
+ add hl, de
+ dec a
+ jr .loop2
+
+.okay
+ push bc
+ ld a, PARTYMON_STRUCT_LENGTH
+.loop3
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop3
+
+ pop de
+ push bc
+ ld a, [de]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, MON_LEVEL
+ add hl, de
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld hl, MON_MAXHP
+ add hl, de
+ push hl
+ ld hl, MON_STAT_EXP - 1
+ add hl, de
+ pop de
+ push de
+ ld b, OTPARTYMON
+ predef CalcPkmnStats
+ pop de
+ ld h, d
+ ld l, e
+ dec hl
+ dec hl
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ pop bc
+ ld de, NAME_LENGTH
+ ld hl, PartyMonOT
+ pop af
+ push af
+.loop4
+ and a
+ jr z, .okay2
+ add hl, de
+ dec a
+ jr .loop4
+
+.okay2
+ ld a, NAME_LENGTH - 1
+.loop5
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop5
+ ld de, NAME_LENGTH
+ ld hl, PartyMonNicknames
+ pop af
+ push af
+.loop6
+ and a
+ jr z, .okay3
+ add hl, de
+ dec a
+ jr .loop6
+
+.okay3
+ ld a, NAME_LENGTH - 1
+.loop7
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop7
+ ld de, MAIL_STRUCT_LENGTH
+ ld hl, sPartyMail
+ pop af
+.loop8
+ and a
+ jr z, .okay4
+ add hl, de
+ dec a
+ jr .loop8
+
+.okay4
+ ld a, $0 ; BANK(sPartyMail)
+ call GetSRAMBank
+ ld a, MAIL_STRUCT_LENGTH
+.loop9
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop9
+ call CloseSRAM
+ jp Function11ad8a
+
+.InitRAM:
+ ld bc, $c626
+ ld a, [PlayerID]
+ ld [wcd2a], a
+ ld [bc], a
+ inc bc
+
+ ld a, [PlayerID + 1]
+ ld [wcd2b], a
+ ld [bc], a
+ inc bc
+
+ ld a, [wSecretID]
+ ld [wcd2c], a
+ ld [bc], a
+ inc bc
+
+ ld a, [wSecretID + 1]
+ ld [wcd2d], a
+ ld [bc], a
+ inc bc
+
+ ld a, [wcd2e]
+ ld [bc], a
+ inc bc
+
+ ld a, [wcd2f]
+ ld [bc], a
+ inc bc
+
+ ld a, [wcd30]
+ ld [bc], a
+ inc bc
+
+ ld a, [wd265]
+ ld [bc], a
+ inc bc
+ ret
+; 11b570
+
+Function11b570: ; 11b570
+ call Function118007
+ ld a, [ScriptVar]
+ and a
+ jr nz, .exit
+ call .SaveData
+ jp Function11ad8a
+
+.exit
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+
+.SaveData:
+ ld a, $3
+ ld [rSVBK], a
+
+ ld hl, w3_d800
+ ld de, $c608
+ ld bc, w3_d88f - w3_d800
+ call CopyBytes
+
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $5
+ call GetSRAMBank
+
+ ld de, $a800
+ ld a, $1
+ ld [de], a
+ inc de
+ ld hl, $c608
+ ld bc, w3_d88f - w3_d800
+ call CopyBytes
+
+ push de
+ pop hl
+
+ ld a, [hRTCMinutes]
+ ld [hli], a
+ ld a, [hRTCHours]
+ ld [hli], a
+ ld a, [hRTCDayLo]
+ ld [hli], a
+ ld a, [hRTCDayHi]
+ ld [hl], a
+
+ call CloseSRAM
+ ret
+; 11b5c0
+
+Function11b5c0: ; 11b5c0
+ ld a, [wcd82]
+ dec a
+ ld [CurPartyMon], a
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callba RemoveMonFromPartyOrBox
+ callba Function170807
+ callba SaveAfterLinkTrade
+ jp Function11ad8a
+; 11b5e0
+
+Function11b5e0: ; 11b5e0
+ xor a
+ ld [ScriptVar], a
+ jp Function11ad8a
+; 11b5e7
+
+Function11b5e7: ; 11b5e7
+ ret
+; 11b5e8
+
+Function11b5e8: ; 11b5e8
+ ld a, $0
+ call GetSRAMBank
+ ld hl, wRTC
+ ld de, $c608
+ ld bc, 4
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $c608
+ ld de, $b08c
+ ld bc, 4
+ call CopyBytes
+ ld a, $2
+ ld [$a800], a
+ ld a, [$a81f]
+ ld [wcd2a], a
+ ld a, [$a820]
+ ld [wcd2b], a
+ ld a, [$a821]
+ ld [wcd2c], a
+ ld a, [$a822]
+ ld [wcd2d], a
+ ld a, [$a823]
+ ld [wcd2e], a
+ ld a, [$a824]
+ ld [wcd2f], a
+ ld a, [$a825]
+ ld [wcd30], a
+ ld a, [$a826]
+ ld [wcd31], a
+ call CloseSRAM
+ call Mobile46_InitJumptable
+ call .loop
+ ret
+
+.loop
+ call .RunJumptable
+ call DelayFrame
+ ld a, [wJumptableIndex]
+ cp $1
+ jr nz, .loop
+ ret
+
+.RunJumptable:
+ jumptable .Jumptable, wJumptableIndex
+.Jumptable:
+ dw Function11b66d
+ dw Function11b6b3
+; 11b66d
+
+Function11b66d: ; 11b66d
+ call Function1180b8
+ ld a, [ScriptVar]
+ and a
+ jr nz, .asm_11b6b0
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [w3_d090]
+ ld b, a
+ pop af
+ ld [rSVBK], a
+ ld a, b
+ and a
+ jr z, .asm_11b691
+ cp $1
+ jr nz, .asm_11b6b0
+ call Function11b6b4
+ jr .asm_11b6b0
+
+.asm_11b691
+ callba Function17081d
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_11b6b0
+ xor a
+ ld [ScriptVar], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, $2
+ ld [w3_d090], a
+ pop af
+ ld [rSVBK], a
+
+.asm_11b6b0
+ jp Function11ad8a
+; 11b6b3
+
+Function11b6b3: ; 11b6b3
+ ret
+; 11b6b4
+
+Function11b6b4: ; 11b6b4
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcd30]
+ ld [$c708], a
+ ld a, [wcd31]
+ ld [$c709], a
+
+ ld a, $c708 % $100
+ ld [wMobileMonSpeciesPointerBuffer], a
+ ld a, $c708 / $100
+ ld [wMobileMonSpeciesPointerBuffer + 1], a
+
+ ld a, $c60d % $100 ; Partymon Struct
+ ld [wMobileMonStructurePointerBuffer], a
+ ld a, $c60d / $100
+ ld [wMobileMonStructurePointerBuffer + 1], a
+
+ ld a, $c63d % $100 ; OT
+ ld [wMobileMonOTNamePointerBuffer], a
+ ld a, $c63d / $100
+ ld [wMobileMonOTNamePointerBuffer + 1], a
+
+ ld a, $c642 % $100 ; Nickname
+ ld [wMobileMonNicknamePointerBuffer], a
+ ld a, $c642 / $100
+ ld [wMobileMonNicknamePointerBuffer + 1], a
+
+ ld a, $c647 % $100 ; ???
+ ld [wMobileMonMailPointerBuffer], a
+ ld a, $c647 / $100
+ ld [wMobileMonMailPointerBuffer + 1], a
+
+ ld a, $46
+ ld [$c628], a
+
+ ld de, $c63d
+ ld c, 5
+ callba CheckStringForErrors
+ jr nc, .length_check_OT
+ callba Mobile_CopyDefaultOTName
+
+.length_check_OT
+ ld de, $c63d
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
+ jr nc, .error_check_nick
+ callba Mobile_CopyDefaultOTName
+
+.error_check_nick
+ ld de, $c642
+ ld c, 5
+ callba CheckStringForErrors
+ jr nc, .length_check_nick
+ callba Mobile_CopyDefaultNickname
+
+.length_check_nick
+ ld de, $c642
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
+ jr nc, .error_check_mail
+ callba Mobile_CopyDefaultNickname
+
+.error_check_mail
+ ld de, $c647
+ ld c, MAIL_MSG_LENGTH + 1
+ callba CheckStringForErrors
+ jr nc, .length_check_mail
+ callba Mobile_CopyDefaultMail
+
+.length_check_mail
+ ld de, $c647
+ lb bc, 2, MAIL_MSG_LENGTH + 1
+ callba CheckStringContainsLessThanBNextCharacters
+ jr c, .fix_mail
+ ld a, b
+ cp $2
+ jr nz, .mail_ok
+
+.fix_mail
+ callba Mobile_CopyDefaultMail
+
+.mail_ok
+ ld de, $c668
+ ld c, $5
+ callba CheckStringForErrors
+ jr nc, .length_check_author
+ callba Mobile_CopyDefaultMailAuthor
+
+.length_check_author
+ ld de, $c668
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
+ jr nc, .author_okay
+ callba Mobile_CopyDefaultMailAuthor
+
+.author_okay
+ ld a, [$c60e]
+ cp -1
+ jr nz, .item_okay
+ xor a
+ ld [$c60e], a
+
+.item_okay
+ ld a, [wcd31]
+ ld [$c60d], a
+ ld [CurSpecies], a
+ call GetBaseData
+
+ ld hl, $c60d + MON_LEVEL
+ ld a, [hl]
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .replace_level
+ ld a, [hl]
+ cp MAX_LEVEL
+ jr c, .done_level
+ ld a, MAX_LEVEL
+.replace_level
+ ld [hl], a
+.done_level
+ ld [CurPartyLevel], a
+
+ ld hl, $c60d + MON_STAT_EXP - 1
+ ld de, $c60d + MON_MAXHP
+ ld b, $1
+ predef CalcPkmnStats
+ ld de, $c60d + MON_MAXHP
+ ld hl, $c60d + MON_HP
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ call AddMobileMonToParty
+ ret
+; 11b7e5
+
+Function11b7e5: ; 11b7e5
+ ld a, [$c60d] ; species
+ ld [wOTTrademonSpecies], a
+ ld [CurPartySpecies], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ ld hl, $c63d ; OT
+ ld de, wOTTrademonOTName
+ ld bc, 5
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld a, [$c60d + MON_ID] ; id
+ ld [wOTTrademonID], a
+ ld a, [$c60d + MON_ID + 1]
+ ld [wOTTrademonID + 1], a
+ ld hl, $c60d + MON_DVS ; dvs
+ ld a, [hli]
+ ld [wOTTrademonDVs], a
+ ld a, [hl]
+ ld [wOTTrademonDVs + 1], a
+ ld bc, $c60d ; pokemon_data_start
+ callba GetCaughtGender
+ ld a, c
+ ld [wOTTrademonCaughtData], a
+ call SpeechTextBox
+ call FadeToMenu
+ callba MobileTradeAnimation_ReceiveGetmonFromGTS
+ callba Function17d1f1
+ ld a, $1
+ ld [wForceEvolution], a
+ ld a, $2
+ ld [wLinkMode], a
+ callba EvolvePokemon
+ xor a
+ ld [wLinkMode], a
+ callba SaveAfterLinkTrade
+ ld a, $5
+ call GetSRAMBank
+ ld a, $5
+ ld [$a800], a
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .asm_11b872
+ ld a, $1
+ ld [de], a
+
+.asm_11b872
+ call CloseSubmenu
+ call RestartMapMusic
+ ret
+; 11b879
+
+Function11b879: ; 11b879
+ callba BattleTower_CheckSaveFileExistsAndIsYours
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a800]
+ ld [ScriptVar], a
+ ld a, [$a890]
+ ld [wcd49], a
+ ld a, [$a891]
+ ld [wcd4a], a
+ ld a, [$a892]
+ ld [wcd4b], a
+ ld a, [$a893]
+ ld [wcd4c], a
+ call CloseSRAM
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld hl, wcd4c
+ ld a, [hRTCDayHi]
+ cp [hl]
+ ret nz
+ dec hl
+ ld a, [hRTCDayLo]
+ cp [hl]
+ ret nz
+ ld hl, wcd4a
+ ld a, [hRTCHours]
+ cp [hl]
+ jr nc, .asm_11b8d8
+ ld a, $18
+ sub [hl]
+ ld hl, hRTCHours
+ add [hl]
+ ld [wcd4c], a
+ ld a, [hRTCMinutes]
+ ld [wcd4b], a
+ xor a
+ ld [wcd4a], a
+ jr .asm_11b8e2
+
+.asm_11b8d8
+ ld a, [hRTCMinutes]
+ ld [wcd4b], a
+ ld a, [hRTCHours]
+ ld [wcd4c], a
+
+.asm_11b8e2
+ xor a
+ ld l, a
+ ld h, a
+ ld b, a
+ ld d, a
+ ld a, [wcd4b]
+ ld e, a
+ ld a, [wcd4c]
+ ld c, $3c
+ call AddNTimes
+ add hl, de
+ push hl
+ xor a
+ ld l, a
+ ld h, a
+ ld b, a
+ ld d, a
+ ld a, [wcd49]
+ ld e, a
+ ld a, [wcd4a]
+ ld c, $3c
+ call AddNTimes
+ add hl, de
+ ld a, l
+ cpl
+ add $1
+ ld e, a
+ ld a, h
+ cpl
+ adc $0
+ ld d, a
+ pop hl
+ add hl, de
+ ld de, $ff88
+ add hl, de
+ bit 7, h
+ ret z
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+; 11b920
+
+Function11b920: ; 11b920
+ call Mobile46_InitJumptable
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a81f
+ ld de, $c626
+ ld bc, 8
+ call CopyBytes
+ call CloseSRAM
+ call Function118000
+ ret
+; 11b93b
+
+Function11b93b: ; 11b93b
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ ld hl, $a823
+ ld de, $c608
+ ld bc, $008f
+ call CopyBytes
+ call CloseSRAM
+
+ ld a, $c608 % $100
+ ld [wMobileMonSpeciesPointerBuffer], a
+ ld a, $c608 / $100
+ ld [wMobileMonSpeciesPointerBuffer + 1], a
+
+ ld a, $c611 % $100
+ ld [wMobileMonStructurePointerBuffer], a
+ ld a, $c611 / $100
+ ld [wMobileMonStructurePointerBuffer + 1], a
+
+ ld a, $c641 % $100
+ ld [wMobileMonOTNamePointerBuffer], a
+ ld a, $c641 / $100
+ ld [wMobileMonOTNamePointerBuffer + 1], a
+
+ ld a, $c646 % $100
+ ld [wMobileMonNicknamePointerBuffer], a
+ ld a, $c646 / $100
+ ld [wMobileMonNicknamePointerBuffer + 1], a
+
+ ld a, $c64b % $100
+ ld [wMobileMonMailPointerBuffer], a
+ ld a, $c64b / $100
+ ld [wMobileMonMailPointerBuffer + 1], a
+ call AddMobileMonToParty
+ callba SaveAfterLinkTrade
+ ret
+; 11b98f
+
+AddMobileMonToParty: ; 11b98f
+ ld hl, PartyCount
+ ld a, [hl]
+ ld e, a
+ inc [hl]
+
+ ld a, [wMobileMonSpeciesPointerBuffer]
+ ld l, a
+ ld a, [wMobileMonSpeciesPointerBuffer + 1]
+ ld h, a
+ inc hl
+ ld bc, PartySpecies
+ ld d, e
+.loop1
+ inc bc
+ dec d
+ jr nz, .loop1
+ ld a, e
+ ld [CurPartyMon], a
+ ld a, [hl]
+ ld [bc], a
+ inc bc
+ ld a, -1
+ ld [bc], a
+
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, e
+ ld [wMobileMonSpeciesBuffer], a
+.loop2
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop2
+ ld e, l
+ ld d, h
+ ld a, [wMobileMonStructurePointerBuffer]
+ ld l, a
+ ld a, [wMobileMonStructurePointerBuffer + 1]
+ ld h, a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+
+ ld hl, PartyMonOT
+ ld bc, NAME_LENGTH
+ ld a, [wMobileMonSpeciesBuffer]
+.loop3
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop3
+ ld e, l
+ ld d, h
+ ld a, [wMobileMonOTNamePointerBuffer]
+ ld l, a
+ ld a, [wMobileMonOTNamePointerBuffer + 1]
+ ld h, a
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ ld a, [wMobileMonSpeciesBuffer]
+.loop4
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop4
+ ld e, l
+ ld d, h
+ ld a, [wMobileMonNicknamePointerBuffer]
+ ld l, a
+ ld a, [wMobileMonNicknamePointerBuffer + 1]
+ ld h, a
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+
+ ld hl, sPartyMail
+ ld bc, MAIL_STRUCT_LENGTH
+ ld a, [wMobileMonSpeciesBuffer]
+.loop5
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop5
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ ld e, l
+ ld d, h
+ ld a, [wMobileMonMailPointerBuffer]
+ ld l, a
+ ld a, [wMobileMonMailPointerBuffer + 1]
+ ld h, a
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+
+ call CloseSRAM
+ ret
+; 11ba38
+
+Function11ba38: ; 11ba38
+ callba CheckCurPartyMonFainted
+ ret c
+ xor a
+ ld [ScriptVar], a
+ ret
+; 11ba44
+
+TilemapPack_11ba44:
+ db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 ; 00
+ db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 ; 01
+ db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 ; 02
+ db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 ; 03
+ db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 ; 04
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 ; 05
+ db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 ; 06
+ db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f ; 07
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e ; 08
+ db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 ; 09
+ db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 ; 0a
+ db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 ; 0b
+ db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 ; 0c
+ db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 ; 0d
+ db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 ; 0e
+ db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 ; 0f
+ db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 ; 10
+ db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 ; 11
+ db $4a, $30, $0a, $0a, $61, $62, $0a, $58 ; 12
+ db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 ; 13
+ db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 ; 14
+ db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 ; 15
+ db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 ; 16
+ db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 ; 17
+ db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 ; 18
+ db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 ; 19
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 ; 1a
+ db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 ; 1b
+ db $4a, $2f, $68, $87, $88, $89, $0a, $58 ; 1c
+ db $4a, $3d, $6e, $6f, $70, $75, $76, $58 ; 1d
+ db $4a, $30, $75, $76, $5c, $5d, $5e, $58 ; 1e
+ db $4a, $2f, $71, $72, $73, $74, $6d, $58 ; 1f
+ db $4a, $3d, $75, $76, $77, $8a, $8b, $58 ; 20
+ db $4a, $30, $66, $67, $65, $0a, $6a, $58 ; 21
+ db $4a, $2f, $83, $84, $0a, $83, $84, $58 ; 22
+ db $4a, $3d, $0a, $85, $82, $84, $0a, $58 ; 23
+ db $4a, $30, $41, $80, $40, $0a, $0a, $58 ; 24
+ db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 ; 25
+ db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 ; 26
+ db -1
+
+TilemapPack_11bb7d:
+ db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 ; 00
+ db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 01
+ db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 02
+ db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 03
+ db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 04
+ db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 05
+ db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 06
+ db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 ; 07
+ db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 ; 08
+ db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 ; 09
+ db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 ; 0a
+ db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 ; 0b
+ db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 ; 0c
+ db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 ; 0d
+ db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 ; 0e
+ db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 ; 0f
+ db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 ; 10
+ db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 ; 11
+ db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 ; 12
+ db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 ; 13
+ db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 ; 14
+ db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 15
+ db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 ; 16
+ db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 ; 17
+ db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 ; 18
+ db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 ; 19
+ db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1a
+ db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 ; 1b
+ db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 ; 1c
+ db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1d
+ db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 ; 1e
+ db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 ; 1f
+ db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 20
+ db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 ; 21
+ db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 ; 22
+ db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 ; 23
+ db -1
+
+
--- /dev/null
+++ b/mobile/mobile_5b.asm
@@ -1,0 +1,833 @@
+Function16c000: ; 16c000
+; unreferenced
+ ; Only for CGB
+ ld a, [hCGB]
+ and a
+ ret z
+ ; Only do this once per boot cycle
+ ld a, [hFFEA]
+ and a
+ ret z
+ ; Set some flag, preserving the old state
+ ld a, [wcfbe]
+ push af
+ set 7, a
+ ld [wcfbe], a
+ ; Do stuff
+ call MobileSystemSplashScreen_InitGFX ; Load GFX
+ callba SetRAMStateForMobile
+ callba EnableMobile
+ call .RunJumptable
+ callba DisableMobile
+ ; Prevent this routine from running again
+ ; until the next time the syatem is turned on
+ xor a
+ ld [hFFEA], a
+ ; Restore the flag state
+ pop af
+ ld [wcfbe], a
+ ret
+; 16c031
+
+.RunJumptable: ; 16c031
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wd002], a
+ ld [wd003], a
+.loop
+ call DelayFrame
+ callba Function10635c
+ ld a, [wd002]
+ ld hl, .Jumptable
+ rst JumpTable
+ call Function16cb2e
+ call Function16cbae
+ ld a, [wd002]
+ cp $ff
+ jr nz, .loop
+ ret
+; 16c05c
+
+.Jumptable: ; 16c05c
+ dw .init
+ dw Function16c0ba
+ dw Function16c089
+ dw Function16c09e
+ dw Function16c0a8
+ dw Function16c0dc
+ dw Function16c0ec
+ dw Function16c0ba
+ dw Function16c0ca
+ dw Function16c0dc
+ dw Function16c0ec
+ dw .quit
+; 16c074
+
+.init ; 16c074
+ ld a, [wcf64]
+ and a
+ ret z
+ ld [wd002], a
+ xor a
+ ld [wd003], a
+ ret
+; 16c081
+
+.quit ; 16c081
+ push af
+ ld a, $ff
+ ld [wd002], a
+ pop af
+ ret
+; 16c089
+
+Function16c089: ; 16c089
+ ld a, $1
+ ld [Buffer2], a
+ ld [wd1f1], a
+ xor a
+ ld [hWY], a
+ call Function16c0fa
+ ld a, [wd002]
+ ld [wcf64], a
+ ret
+; 16c09e
+
+Function16c09e: ; 16c09e
+ ld a, [wcf64]
+ cp $4
+ ret nz
+ call Function16c0fa
+ ret
+; 16c0a8
+
+Function16c0a8: ; 16c0a8
+ xor a
+ ld [Buffer2], a
+ ld [wd1f1], a
+ call ClearSprites
+ ld a, $90
+ ld [hWY], a
+ call Function16c0fa
+ ret
+; 16c0ba
+
+Function16c0ba: ; 16c0ba
+ call Function16c943
+ push af
+ ld a, [wd003]
+ inc a
+ ld [wd003], a
+ pop af
+ call c, Function16c0fa
+ ret
+; 16c0ca
+
+Function16c0ca: ; 16c0ca
+ ld a, [wd003]
+ cp $28
+ push af
+ ld a, [wd003]
+ inc a
+ ld [wd003], a
+ pop af
+ call z, Function16c0fa
+ ret
+; 16c0dc
+
+Function16c0dc: ; 16c0dc
+ call Function16ca11
+ push af
+ ld a, [wd003]
+ inc a
+ ld [wd003], a
+ pop af
+ call c, Function16c0fa
+ ret
+; 16c0ec
+
+Function16c0ec: ; 16c0ec
+ call ClearBGPalettes
+ call ClearScreen
+ push af
+ ld a, $ff
+ ld [wd002], a
+ pop af
+ ret
+; 16c0fa
+
+Function16c0fa: ; 16c0fa
+ push af
+ ld a, [wd002]
+ inc a
+ ld [wd002], a
+ xor a
+ ld [wd003], a
+ pop af
+ ret
+; 16c108
+
+MobileSystemSplashScreen_InitGFX: ; 16c108
+ call DisableLCD
+ ld hl, VTiles2
+ ld de, .Tiles
+ lb bc, BANK(.Tiles), $68
+ call Get2bpp
+ call .LoadPals
+ call .LoadTileMap
+ call .LoadAttrMap
+ hlbgcoord 0, 0
+ call Function16cc73
+ call Function16cc02
+ xor a
+ ld [hBGMapMode], a
+ call EnableLCD
+ ret
+; 16c130
+
+.LoadPals: ; 16c130
+ ld de, UnknBGPals
+ ld hl, UnknownMobilePalettes_16c903
+ ld bc, 8
+ ld a, $5
+ call FarCopyWRAM
+ callba ApplyPals
+ ret
+; 16c145
+
+.LoadTileMap: ; 16c145
+ hlcoord 0, 0
+ ld bc, 20
+ xor a
+ call ByteFill
+ ld hl, .TileMap
+ decoord 0, 1
+ ld bc, $0154
+ call CopyBytes
+ ret
+; 16c15c
+
+.LoadAttrMap: ; 16c15c
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH
+ xor a
+ call ByteFill
+ ld hl, .AttrMap
+ decoord 0, 1, AttrMap
+ ld bc, 17 * SCREEN_WIDTH
+ call CopyBytes
+ ret
+; 16c173
+
+.Tiles:
+INCBIN "gfx/mobile/mobile_splash.2bpp"
+
+.TileMap:
+INCBIN "gfx/mobile/mobile_splash.tilemap"
+
+.AttrMap:
+INCBIN "gfx/mobile/mobile_splash.attrmap"
+
+UnknownMobilePalettes_16c903: ; 16c903
+INCLUDE "gfx/unknown/16c903.pal"
+
+; 16c943
+
+Function16c943: ; 16c943
+ ld a, [wd003]
+ and a
+ jr nz, .asm_16c95e
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, $ff
+ ld bc, $0008
+ ld hl, UnknBGPals
+ call ByteFill
+ pop af
+ ld [rSVBK], a
+
+.asm_16c95e
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld e, $0
+ ld a, $0
+.asm_16c969
+ ld hl, UnknownMobilePalettes_16c903
+ call Function16cab6
+ call Function16cabb
+ ld d, a
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cabb
+ cp d
+ jr z, .asm_16c991
+ ld b, $1
+.asm_16c981
+ dec a
+ cp d
+ jr z, .asm_16c988
+ dec b
+ jr nz, .asm_16c981
+
+.asm_16c988
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cadc
+
+.asm_16c991
+ ld hl, UnknownMobilePalettes_16c903
+ call Function16cab6
+ call Function16cad8
+ ld d, a
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cad8
+ cp d
+ jr z, .asm_16c9b9
+ ld b, $1
+.asm_16c9a9
+ dec a
+ cp d
+ jr z, .asm_16c9b0
+ dec b
+ jr nz, .asm_16c9a9
+
+.asm_16c9b0
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cb08
+
+.asm_16c9b9
+ ld hl, UnknownMobilePalettes_16c903
+ call Function16cab6
+ call Function16cac4
+ ld d, a
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cac4
+ cp d
+ jr z, .asm_16c9e1
+ ld b, $1
+.asm_16c9d1
+ dec a
+ cp d
+ jr z, .asm_16c9d8
+ dec b
+ jr nz, .asm_16c9d1
+
+.asm_16c9d8
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cae8
+
+.asm_16c9e1
+ inc e
+ inc e
+ ld a, e
+ cp $8
+ jr nz, .asm_16c969
+ callba ApplyPals
+ call SetPalettes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [wd003]
+ cp $1f
+ jr z, .asm_16ca09
+ pop af
+ ld [rSVBK], a
+ ld e, $0
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+
+.asm_16ca09
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+; 16ca11
+
+Function16ca11: ; 16ca11
+ ld a, [wd003]
+ and a
+ jr nz, .asm_16ca1d
+ callba ApplyPals
+
+.asm_16ca1d
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld e, $0
+ ld a, $0
+.asm_16ca28
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cabb
+ cp $1f
+ jr z, .asm_16ca48
+ ld b, $1
+.asm_16ca37
+ inc a
+ cp $1f
+ jr z, .asm_16ca3f
+ dec b
+ jr nz, .asm_16ca37
+
+.asm_16ca3f
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cadc
+
+.asm_16ca48
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cad8
+ cp $1f
+ jr z, .asm_16ca68
+ ld b, $1
+.asm_16ca57
+ inc a
+ cp $1f
+ jr z, .asm_16ca5f
+ dec b
+ jr nz, .asm_16ca57
+
+.asm_16ca5f
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cb08
+
+.asm_16ca68
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cac4
+ cp $1f
+ jr z, .asm_16ca88
+ ld b, $1
+.asm_16ca77
+ inc a
+ cp $1f
+ jr z, .asm_16ca7f
+ dec b
+ jr nz, .asm_16ca77
+
+.asm_16ca7f
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cae8
+
+.asm_16ca88
+ inc e
+ inc e
+ ld a, e
+ cp $8
+ jr nz, .asm_16ca28
+ callba ApplyPals
+ call SetPalettes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [wd003]
+ cp $1f
+ jr z, .asm_16caae
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+
+.asm_16caae
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+; 16cab6
+
+Function16cab6: ; 16cab6
+ ld b, $0
+ ld c, e
+ add hl, bc
+ ret
+; 16cabb
+
+Function16cabb: ; 16cabb
+ inc hl
+ ld a, [hl]
+ srl a
+ srl a
+ and $1f
+ ret
+; 16cac4
+
+Function16cac4: ; 16cac4
+ inc hl
+ ld a, [hld]
+ and $3
+ ld b, a
+ ld a, [hl]
+ sla a
+ rl b
+ sla a
+ rl b
+ sla a
+ rl b
+ ld a, b
+ ret
+; 16cad8
+
+Function16cad8: ; 16cad8
+ ld a, [hl]
+ and $1f
+ ret
+; 16cadc
+
+Function16cadc: ; 16cadc
+ sla a
+ sla a
+ ld b, a
+ inc hl
+ ld a, [hl]
+ and $83
+ or b
+ ld [hl], a
+ ret
+; 16cae8
+
+Function16cae8: ; 16cae8
+ ld c, a
+ srl a
+ srl a
+ srl a
+ ld b, a
+ inc hl
+ ld a, [hl]
+ and $fc
+ or b
+ ld [hld], a
+ ld a, c
+ sla a
+ sla a
+ sla a
+ sla a
+ sla a
+ ld b, a
+ ld a, [hl]
+ and $1f
+ or b
+ ld [hl], a
+ ret
+; 16cb08
+
+Function16cb08: ; 16cb08
+ ld b, a
+ ld a, [hl]
+ and $e0
+ or b
+ ld [hl], a
+ ret
+; 16cb0f
+
+Function16cb0f: ; 16cb0f
+ xor a
+ ld [Buffer1], a
+ ld [Buffer2], a
+ xor a
+ ld [wd1ec], a
+ ld a, $70
+ ld [wd1ee], a
+ ld a, $4
+ ld [wd1ed], a
+ ld a, $a0
+ ld [wd1ef], a
+ xor a
+ ld [wd1f0], a
+ ret
+; 16cb2e
+
+Function16cb2e: ; 16cb2e
+ ld a, [Buffer2]
+ and a
+ ret z
+ call Function16cb40
+ ld hl, Unknown_16cb86
+ ld de, Sprites
+ call Function16cb5d
+ ret
+; 16cb40
+
+Function16cb40: ; 16cb40
+ ld hl, wd1ec
+ inc [hl]
+ ld a, [hl]
+ cp $18
+ ret c
+ xor a
+ ld [hl], a
+ ld a, [wd1ef]
+ cp $a0
+ jr nz, .asm_16cb57
+ ld a, $a7
+ ld [wd1ef], a
+ ret
+
+.asm_16cb57
+ ld a, $a0
+ ld [wd1ef], a
+ ret
+; 16cb5d
+
+Function16cb5d: ; 16cb5d
+ ld a, [hli]
+ and a
+ ret z
+.asm_16cb60
+ push af
+ ld a, [wd1ee]
+ add [hl]
+ add $10
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wd1ed]
+ add [hl]
+ add $8
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wd1ef]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wd1f0]
+ or [hl]
+ ld [de], a
+ inc hl
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_16cb60
+ ret
+; 16cb86
+
+Unknown_16cb86:
+ db 7
+ db 0, 0, 0, 1
+ db 8, 0, 1, 1
+ db 8, 8, 2, 0
+ db 8, 16, 3, 0
+ db 16, 0, 4, 1
+ db 16, 8, 5, 0
+ db 16, 16, 6, 0
+; 16cba3
+
+Function16cba3: ; 16cba3
+ xor a
+ ld [wd1f1], a
+ ld [wd1f2], a
+ ld [wd1f3], a
+ ret
+; 16cbae
+
+Function16cbae: ; 16cbae
+ ld a, [wd1f1]
+ and a
+ ret z
+ call Function16cbba
+ call Function16cbd1
+ ret
+; 16cbba
+
+Function16cbba: ; 16cbba
+ ld hl, wd1f2
+ inc [hl]
+ ld a, [hl]
+ cp $c
+ ret c
+ xor a
+ ld [hl], a
+ ld a, [wd1f3]
+ inc a
+ cp $4
+ jr c, .asm_16cbcd
+ xor a
+
+.asm_16cbcd
+ ld [wd1f3], a
+ ret
+; 16cbd1
+
+Function16cbd1: ; 16cbd1
+ ld a, [wd1f3]
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_16cbfb
+ add hl, bc
+ ld a, [hl]
+ ld bc, 2
+ ld hl, Unknown_16cfa3
+ call AddNTimes
+ ld de, UnknBGPals + 1 palettes + 4
+ ld bc, 2
+ ld a, $5
+ call FarCopyWRAM
+ callba ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 16cbfb
+
+Unknown_16cbfb:
+ db 0, 1, 2, 1, 0, 1, 2
+; 16cc02
+
+Function16cc02: ; 16cc02
+ call Function16cc18
+ call Function16cc49
+ call Function16cc62
+ call Function16cc25
+ call Function16cc6e
+ call Function16cb0f
+ call Function16cba3
+ ret
+; 16cc18
+
+Function16cc18: ; 16cc18
+ ld hl, VTiles1
+ ld de, GFX_16cca3
+ lb bc, BANK(GFX_16cca3), $2e
+ call Get2bpp
+ ret
+; 16cc25
+
+Function16cc25: ; 16cc25
+ ld hl, Unknown_16cfa9
+ ld de, UnknBGPals + 1 palettes
+ call .CopyPal
+ ld hl, Unknown_16cfb1
+ ld de, UnknOBPals
+ call .CopyPal
+ ld hl, Unknown_16cfb9
+ ld de, UnknOBPals + 1 palettes
+ call .CopyPal
+ ret
+; 16cc41
+
+.CopyPal: ; 16cc41
+ ld bc, 1 palettes
+ ld a, $5
+ jp FarCopyWRAM
+; 16cc49
+
+Function16cc49: ; 16cc49
+ hlcoord 4, 15
+ ld a, $80
+ call Function16cc5a
+ hlcoord 4, 16
+ ld a, $90
+ call Function16cc5a
+ ret
+; 16cc5a
+
+Function16cc5a: ; 16cc5a
+ ld c, $10
+.asm_16cc5c
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_16cc5c
+ ret
+; 16cc62
+
+Function16cc62: ; 16cc62
+ hlcoord 0, 15, AttrMap
+ ld bc, $0028
+ ld a, $1
+ call ByteFill
+ ret
+; 16cc6e
+
+Function16cc6e: ; 16cc6e
+ hlbgcoord 0, 0, VBGMap1
+ jr Function16cc73
+
+Function16cc73:
+ ld a, [rVBK]
+ push af
+ ld a, $0
+ ld [rVBK], a
+ push hl
+ decoord 0, 0
+ call Function16cc90
+ pop hl
+ ld a, $1
+ ld [rVBK], a
+ decoord 0, 0, AttrMap
+ call Function16cc90
+ pop af
+ ld [rVBK], a
+ ret
+; 16cc90
+
+Function16cc90: ; 16cc90
+ ld bc, $1214
+.asm_16cc93
+ push bc
+.asm_16cc94
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_16cc94
+ ld bc, $000c
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_16cc93
+ ret
+; 16cca3
+
+GFX_16cca3:
+INCBIN "gfx/unknown/16cca3.2bpp"
+
+Unknown_16cfa3:
+ RGB 31, 31, 31
+ RGB 25, 27, 29
+ RGB 16, 19, 25
+
+Unknown_16cfa9:
+ RGB 31, 31, 31
+ RGB 25, 27, 29
+ RGB 31, 31, 31
+ RGB 07, 07, 07
+
+
+Unknown_16cfb1:
+ RGB 31, 31, 31
+ RGB 13, 09, 18
+ RGB 26, 21, 16
+ RGB 07, 07, 07
+
+
+Unknown_16cfb9:
+ RGB 31, 31, 31
+ RGB 18, 05, 02
+ RGB 27, 11, 12
+ RGB 07, 07, 07
+
+; 16cfc1
--- /dev/null
+++ b/mobile/mobile_5c.asm
@@ -1,0 +1,946 @@
+Function170000: ; 170000
+ ld a, [$c62b]
+ ld [wPlayerTrademonSpecies], a
+ ld hl, $c62e
+ ld de, wPlayerTrademonSenderName
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld hl, $c663
+ ld de, wPlayerTrademonOTName
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld hl, $c648
+ ld a, [hli]
+ ld [wPlayerTrademonDVs], a
+ ld a, [hl]
+ ld [wPlayerTrademonDVs + 1], a
+ ld hl, $c639
+ ld a, [hli]
+ ld [wPlayerTrademonID], a
+ ld a, [hl]
+ ld [wPlayerTrademonID + 1], a
+ ld bc, $c633
+ callba GetCaughtGender
+ ld a, c
+ ld [wPlayerTrademonCaughtData], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ ld hl, $c608
+ ld de, $d800
+ ld bc, $008f
+ call CopyBytes
+ ret
+
+; 17005a
+
+Function17005a: ; 17005a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a824]
+ ld [wOTTrademonSpecies], a
+ ld hl, $a827
+ ld de, wOTTrademonSenderName
+ ld bc, NAME_LENGTH_JAPANESE - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld hl, $a85c
+ ld de, wOTTrademonOTName
+ ld bc, NAME_LENGTH_JAPANESE - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld hl, $a841
+ ld a, [hli]
+ ld [wOTTrademonDVs], a
+ ld a, [hl]
+ ld [wOTTrademonDVs + 1], a
+ ld hl, $a832
+ ld a, [hli]
+ ld [wOTTrademonID], a
+ ld a, [hl]
+ ld [wOTTrademonID + 1], a
+ ld bc, $a82c
+ callba GetCaughtGender
+ ld a, c
+ ld [wOTTrademonCaughtData], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ call CloseSRAM
+ ret
+
+; 1700b0
+
+INCLUDE "mobile/battle_tower_5c.asm"
+
+Function170be4: ; 170be4
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld hl, $a894
+ ld bc, $0008
+ call ByteFill
+ call CloseSRAM
+ ret
+
+; 170bf7
+
+Clears5_a89a: ; 170bf7
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a89a
+ xor a
+ ld [hli], a
+ ld [hl], a
+ call CloseSRAM
+ ret
+
+; 170c06
+
+Function170c06: ; 170c06
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a894
+ ld a, [wBattleResult]
+ and a
+ jr nz, .asm_170c15
+ inc [hl]
+
+.asm_170c15
+ inc hl
+ inc hl
+ ld a, [$a89b]
+ add [hl]
+ ld [hld], a
+ ld a, [$a89a]
+ adc [hl]
+ ld [hli], a
+ jr nc, .asm_170c27
+ ld a, $ff
+ ld [hld], a
+ ld [hli], a
+
+.asm_170c27
+ inc hl
+ push hl
+ ld de, 0
+ xor a
+ ld [wd265], a
+.asm_170c30
+ ld hl, PartyMon1HP
+ ld a, [wd265]
+ call GetPartyLocation
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ inc hl
+ inc hl
+ ld a, [hld]
+ sub c
+ ld c, a
+ ld a, [hl]
+ sbc b
+ ld b, a
+ push de
+ pop hl
+ add hl, bc
+ push hl
+ pop de
+ jr c, .asm_170c58
+ ld a, [wd265]
+ inc a
+ ld [wd265], a
+ cp $3
+ jr c, .asm_170c30
+ jr .asm_170c5b
+
+.asm_170c58
+ ld de, -1
+
+.asm_170c5b
+ pop hl
+ inc hl
+ ld a, e
+ add [hl]
+ ld [hld], a
+ ld a, d
+ adc [hl]
+ ld [hli], a
+ jr nc, .asm_170c69
+ ld a, $ff
+ ld [hld], a
+ ld [hli], a
+
+.asm_170c69
+ inc hl
+ push hl
+ ld b, $0
+ ld c, $0
+.asm_170c6f
+ ld hl, PartyMon1HP
+ ld a, b
+ push bc
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_170c7d
+ inc c
+
+.asm_170c7d
+ inc b
+ ld a, b
+ cp $3
+ jr c, .asm_170c6f
+ pop hl
+ ld a, [hl]
+ add c
+ ld [hl], a
+ call CloseSRAM
+ ret
+
+; 170c8b
+
+Function170c8b: ; 170c8b
+ ld hl, LastEnemyCounterMove
+ ld b, $5
+.asm_170c90
+ ld a, [hl]
+ xor $ff
+ ld [hli], a
+ dec b
+ jr nz, .asm_170c90
+ ret
+
+; 170c98
+
+CheckBTMonMovesForErrors: ; 170c98
+ ld c, BATTLETOWER_NROFPKMNS
+ ld hl, wBT_OTTempPkmn1Moves
+.loop
+ push hl
+ ld a, [hl]
+ cp NUM_ATTACKS + 1
+ jr c, .okay
+ ld a, POUND
+ ld [hl], a
+
+.okay
+ inc hl
+ ld b, NUM_MOVES - 1
+.loop2
+ ld a, [hl]
+ and a
+ jr z, .loop3
+ cp NUM_ATTACKS + 1
+ jr c, .next
+
+.loop3
+ xor a
+ ld [hl], a
+ inc hl
+ dec b
+ jr nz, .loop3
+ jr .done
+
+.next
+ inc hl
+ dec b
+ jr nz, .loop2
+
+.done
+ pop hl
+ ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
+
+; 170cc6
+
+Function170cc6: ; 170cc6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, LZ_170d16
+ ld de, wDecompressScratch
+ call Decompress
+ ld a, $1
+ ld [rVBK], a
+ ld de, wd000
+ ld hl, VTiles0
+ lb bc, $6, $c1
+ call Get2bpp
+ xor a
+ ld [rVBK], a
+ ld hl, LZ_1715a4
+ ld de, wd000
+ call Decompress
+ ld de, UnknBGPals
+ ld hl, VTiles0
+ lb bc, $6, $53
+ call Get2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+
+; 170d02
+
+Function170d02: ; 170d02
+ ld a, $1
+ ld [rVBK], a
+ ld de, GFX_171848
+ ld hl, VTiles1 tile $41
+ lb bc, BANK(GFX_171848), $18
+ call Get2bpp
+ xor a
+ ld [rVBK], a
+ ret
+
+; 170d16
+
+LZ_170d16:
+INCBIN "gfx/mobile/pichu_animated.2bpp.lz"
+
+LZ_1715a4:
+INCBIN "gfx/mobile/electro_ball.2bpp.lz"
+
+GFX_171848:
+INCBIN "gfx/unknown/171848.2bpp"
+
+Function1719c8: ; 1719c8 (5c:59c8)
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function1719d6
+ pop af
+ ld [hInMenu], a
+ ret
+
+Function1719d6: ; 1719d6 (5c:59d6)
+ callba BattleTowerRoomMenu_InitRAM
+ call Function1719ed
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function171a11
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function1719ed: ; 1719ed (5c:59ed)
+ xor a
+ ld [wcd49], a
+ ld [wcd4a], a
+ dec a
+ ld [wcd4b], a
+ call ClearBGPalettes
+ call ClearSprites
+ callba Function171d2b
+ callba ReloadMapPart
+ callba ClearSpriteAnims
+ ret
+
+Function171a11: ; 171a11 (5c:5a11)
+.loop
+ call JoyTextDelay
+ ld a, [wcd49]
+ bit 7, a
+ jr nz, .done
+ call Function171a36
+ callba PlaySpriteAnimations
+ callba ReloadMapPart
+ jr .loop
+.done
+ callba ClearSpriteAnims
+ call ClearSprites
+ ret
+
+Function171a36: ; 171a36 (5c:5a36)
+ ld a, [wcd49]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_171a45
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+Jumptable_171a45: ; 171a45 (5c:5a45)
+ dw Function171a95
+ dw Function171ac9
+ dw Function171a5d
+ dw Function171ad7
+ dw Function171a5d
+ dw Function171aec
+ dw Function171b4b
+ dw Function171b85
+ dw Function171bcc
+ dw Function171c2c
+ dw Function171c39
+ dw Function171c41
+
+
+Function171a5d: ; 171a5d (5c:5a5d)
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_171a6a
+ bit 0, a
+ ret nz
+ jp Function171c66
+
+.asm_171a6a
+ ld a, $0
+ call Function3e32
+ ld [wc300], a
+ ld a, l
+ ld [wc301], a
+ ld a, h
+ ld [wc302], a
+ ld a, $a
+ call Function3e32
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba BattleTowerRoomMenu_Cleanup
+ pop af
+ ld [rSVBK], a
+ ld a, $a
+ ld [wcd49], a
+ ret
+
+Function171a95: ; 171a95 (5c:5a95)
+ callba Function171ccd
+ hlcoord 2, 8
+ ld de, String_171aa7
+ call PlaceString
+ jp Function171c66
+
+; 171aa7 (5c:5aa7)
+
+String_171aa7: ; 171aa7
+ db "モバイルアダプタに"
+ next "せつぞく しています"
+ next "しばらく おまちください"
+ db "@"
+; 171ac9
+
+Function171ac9: ; 171ac9 (5c:5ac9)
+ ld de, wcd81
+ ld hl, $5c
+ ld a, $2
+ call Function3e32
+ jp Function171c66
+
+Function171ad7: ; 171ad7 (5c:5ad7)
+ xor a
+ ld hl, $c608
+ ld bc, $66
+ call ByteFill
+ ld de, $c608
+ ld a, $c
+ call Function3e32
+ jp Function171c66
+
+Function171aec: ; 171aec (5c:5aec)
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba BattleTowerRoomMenu_Cleanup
+ pop af
+ ld [rSVBK], a
+ hlcoord 2, 6
+ ld a, $8
+.asm_171b01
+ push af
+ push hl
+ xor a
+ ld bc, $10
+ call ByteFill
+ pop hl
+ ld de, $14
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_171b01
+ hlcoord 2, 7
+ ld a, $3
+ ld de, $c608
+.asm_171b1b
+ push af
+ push hl
+ ld a, [de]
+ and a
+ jr z, .asm_171b34
+ ld a, [wcd4b]
+ inc a
+ ld [wcd4b], a
+ push hl
+ call Function171b42
+ pop hl
+ ld bc, $ffec
+ add hl, bc
+ call Function171b42
+.asm_171b34
+ pop hl
+ ld bc, $14
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_171b1b
+ jp Function171c66
+
+Function171b42: ; 171b42 (5c:5b42)
+ ld a, [de]
+ inc de
+ and a
+ ret z
+ sub $20
+ ld [hli], a
+ jr Function171b42
+
+Function171b4b: ; 171b4b (5c:5b4b)
+ depixel 8, 2
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $8
+ ld [hl], a
+
+ depixel 8, 19
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $9
+ ld [hl], a
+
+ depixel 17, 14, 2, 0
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $a
+ ld [hl], a
+
+ ld a, $4
+ ld [wcd23], a
+ ld a, $8
+ ld [wcd24], a
+ jp Function171c66
+
+Function171b85: ; 171b85 (5c:5b85)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and $2
+ jp nz, Function171b9f
+ ld a, [hl]
+ and $1
+ jp nz, Function171bbd
+ ld a, [hl]
+ and $40
+ jr nz, asm_171ba5
+ ld a, [hl]
+ and $80
+ jr nz, asm_171baf
+ ret
+
+Function171b9f: ; 171b9f (5c:5b9f)
+ ld a, $80
+ ld [wcd49], a
+ ret
+
+asm_171ba5: ; 171ba5 (5c:5ba5)
+ ld a, [wcd4a]
+ and a
+ ret z
+ dec a
+ ld [wcd4a], a
+ ret
+
+asm_171baf: ; 171baf (5c:5baf)
+ ld a, [wcd4b]
+ ld c, a
+ ld a, [wcd4a]
+ cp c
+ ret z
+ inc a
+ ld [wcd4a], a
+ ret
+
+Function171bbd: ; 171bbd (5c:5bbd)
+ call PlayClickSFX
+ ld a, $8
+ ld [wcd23], a
+ xor a
+ ld [wcd24], a
+ jp Function171c66
+
+Function171bcc: ; 171bcc (5c:5bcc)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and $2
+ jp nz, Function171bdc
+ ld a, [hl]
+ and $1
+ jp nz, Function171beb
+ ret
+
+Function171bdc: ; 171bdc (5c:5bdc)
+ ld a, $4
+ ld [wcd23], a
+ ld a, $8
+ ld [wcd24], a
+ ld hl, wcd49
+ dec [hl]
+ ret
+
+Function171beb: ; 171beb (5c:5beb)
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcd4a]
+ ld [$aa4a], a
+ call CloseSRAM
+ ld hl, MenuDataHeader_171c6b
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ callba ReloadMapPart
+ hlcoord 1, 14
+ ld de, String_171c73
+ call PlaceString
+ ld a, [wcd4a]
+ cp $2
+ jr z, .asm_171c1f
+ ld a, $8
+ jr .asm_171c21
+.asm_171c1f
+ ld a, $c
+.asm_171c21
+ ld [wcd24], a
+ ld a, $1e
+ ld [wcd4c], a
+ call Function171c66
+
+Function171c2c: ; 171c2c (5c:5c2c)
+ ld hl, wcd4c
+ dec [hl]
+ ret nz
+ call ExitMenu
+ call ClearBGPalettes
+ jr asm_171c60
+
+Function171c39: ; 171c39 (5c:5c39)
+ ld a, $28
+ ld [wcd4c], a
+ call Function171c66
+
+Function171c41: ; 171c41 (5c:5c41)
+ ld hl, wcd4c
+ dec [hl]
+ ret nz
+ call ClearBGPalettes
+ callba MobileFunc_106462
+ callba Function106464
+ ld a, $2
+ ld [wc303], a
+ callba DisplayMobileError
+asm_171c60: ; 171c60 (5c:5c60)
+ ld a, $80
+ ld [wcd49], a
+ ret
+
+Function171c66: ; 171c66 (5c:5c66)
+ ld hl, wcd49
+ inc [hl]
+ ret
+
+; 171c6b (5c:5c6b)
+
+MenuDataHeader_171c6b: ; 171c6b
+ db $40 ; flags
+ db 12, 0 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 171c73
+
+String_171c73: ; 171c73
+ db "モバイルセンターを けってい"
+ next "しました@"
+; 171c87
+
+Function171c87: ; 171c87 (5c:5c87)
+ call DisableLCD
+ ld hl, GFX_171db1
+ ld de, VTiles2 tile $00
+ ld bc, $6e0
+ call CopyBytes
+ ld hl, LZ_172abd
+ ld de, VTiles0 tile $00
+ call Decompress
+ call EnableLCD
+ ld hl, Tilemap_172491
+ decoord 0, 0
+ ld bc, $168
+ call CopyBytes
+ ld hl, Attrmap_1727ed
+ decoord 0, 0, AttrMap
+ ld bc, $168
+ call CopyBytes
+ hlcoord 3, 2
+ ld de, String_172e31
+ call PlaceString
+ hlcoord 3, 16
+ ld de, String_172e3f
+ call PlaceString
+ ret
+
+Function171ccd: ; 171ccd (5c:5ccd)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_171d71
+ ld de, UnknBGPals
+ ld bc, $40
+ call CopyBytes
+ ld hl, EngineBuffer5
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hl], a
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function171cf0: ; 171cf0 (5c:5cf0)
+ xor a
+ hlcoord 4, 15
+ ld [hli], a
+ ld [hli], a
+ ld a, [wcd4b]
+ xor $1
+ ld [wcd4b], a
+ and a
+ jr nz, .asm_171d16
+ ld hl, Tilemap_17251d
+ decoord 0, 7
+ ld bc, $8c
+ call CopyBytes
+ hlcoord 3, 16
+ ld de, String_172e3f
+ jp PlaceString
+
+.asm_171d16
+ ld hl, Tilemap_1725f9
+ decoord 0, 7
+ ld bc, $8c
+ call CopyBytes
+ hlcoord 3, 16
+ ld de, String_172e4e
+ jp PlaceString
+
+Function171d2b: ; 171d2b (5c:5d2b)
+ call DisableLCD
+ ld hl, GFX_171db1
+ ld de, VTiles2 tile $00
+ ld bc, $6e0
+ call CopyBytes
+ ld hl, LZ_172abd
+ ld de, VTiles0 tile $00
+ call Decompress
+ call EnableLCD
+ ld hl, Tilemap_172685
+ decoord 0, 0
+ ld bc, $168
+ call CopyBytes
+ ld hl, Attrmap_172955
+ decoord 0, 0, AttrMap
+ ld bc, $168
+ call CopyBytes
+ hlcoord 2, 2
+ ld de, String_172e5d
+ call PlaceString
+ hlcoord 14, 16
+ ld de, String_172e58
+ call PlaceString
+ ret
+
+; 171d71 (5c:5d71)
+
+Palette_171d71:
+ RGB 0, 0, 0
+ RGB 3, 0, 0
+ RGB 5, 0, 0
+ RGB 31, 31, 29
+ RGB 0, 2, 10
+ RGB 2, 10, 21
+ RGB 0, 0, 0
+ RGB 10, 26, 31
+ RGB 0, 0, 0
+ RGB 0, 7, 8
+ RGB 31, 8, 0
+ RGB 1, 17, 15
+ RGB 31, 16, 0
+ RGB 31, 22, 0
+ RGB 31, 27, 0
+ RGB 31, 31, 0
+ RGB 31, 18, 6
+ RGB 0, 3, 0
+ RGB 0, 9, 0
+ RGB 0, 12, 0
+ RGB 0, 16, 0
+ RGB 0, 22, 0
+ RGB 0, 25, 0
+ RGB 0, 27, 0
+ RGB 5, 5, 16
+ RGB 8, 19, 28
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 29
+ RGB 21, 21, 20
+ RGB 11, 11, 10
+ RGB 0, 0, 0
+
+GFX_171db1:
+INCBIN "gfx/mobile/ascii_font.2bpp"
+
+Tilemap_172491:
+INCBIN "gfx/unknown/172491.tilemap"
+Tilemap_17251d:
+INCBIN "gfx/unknown/17251d.tilemap"
+Tilemap_1725f9:
+INCBIN "gfx/unknown/1725f9.tilemap"
+Tilemap_172685:
+INCBIN "gfx/unknown/172685.tilemap"
+Attrmap_1727ed:
+INCBIN "gfx/unknown/1727ed.attrmap"
+Attrmap_172955:
+INCBIN "gfx/unknown/172955.attrmap"
+
+LZ_172abd:
+INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
+
+String_172e31: ; 172e31
+ db "パスワード", $1f, "いれてください@"
+String_172e3f: ; 172e3f
+ db "きりかえ やめる けってい@"
+String_172e4e: ; 172e4e
+ db "きりかえ やめる "
+String_172e58:
+ db "けってい@"
+String_172e5d: ; 172e5d
+ db "せつぞくする モバイルセンターを"
+ next "えらんで ください@"
+; 172e78
+
+
+Function172e78: ; 172e78 (5c:6e78)
+ ld a, $7f
+ hlcoord 0, 0
+ ld bc, $168
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 0, AttrMap
+ ld bc, $168
+ call ByteFill
+ call DisableLCD
+ ld hl, GameBoyN64GFX
+ ld de, VTiles2 tile $00
+ ld bc, $610
+ call CopyBytes
+ call EnableLCD
+ ld hl, Tilemap_1733af
+ decoord 0, 0
+ ld bc, $168
+ call CopyBytes
+ ld hl, Attrmap_173517
+ decoord 0, 0, AttrMap
+ ld bc, $168
+ call CopyBytes
+ ret
+
+; 172eb9 (5c:6eb9)
+
+Function172eb9:
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_172edf
+ ld de, UnknBGPals
+ ld bc, $40
+ call CopyBytes
+ ld hl, Palette_172edf
+ ld de, BGPals
+ ld bc, $40
+ call CopyBytes
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ret
+
+; 172edf (5c:6edf)
+
+Palette_172edf:
+ RGB 5, 12, 17
+ RGB 31, 31, 31
+ RGB 18, 25, 28
+ RGB 10, 17, 21
+ RGB 6, 13, 18
+ RGB 31, 31, 31
+ RGB 20, 26, 28
+ RGB 12, 19, 23
+ RGB 3, 10, 16
+ RGB 31, 31, 31
+ RGB 6, 13, 18
+ RGB 20, 26, 28
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 5, 5, 16
+ RGB 8, 19, 28
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+GameBoyN64GFX:
+INCBIN "gfx/trade/game_boy_n64.2bpp"
+
+Tilemap_1733af:
+IF DEF(CRYSTAL11)
+INCBIN "gfx/unknown/1733af_corrupt.tilemap"
+ELSE
+INCBIN "gfx/unknown/1733af.tilemap"
+ENDC
+
+Attrmap_173517:
+INCBIN "gfx/unknown/173517.attrmap"
--- /dev/null
+++ b/mobile/mobile_5e.asm
@@ -1,0 +1,925 @@
+MobileAdapterGFX::
+INCBIN "gfx/mobile/mobile_adapter.2bpp"
+
+Function17a68f:: ; 17a68f (5e:668f)
+ call Function17a6a8
+ call Function17a751
+ ld hl, $d088
+ bit 5, [hl]
+ jr z, .asm_17a6a6
+ ld de, StringBuffer1 ; $d073
+ push de
+ call Function17a721
+ pop de
+ xor a
+ ret
+
+.asm_17a6a6
+ scf
+ ret
+
+Function17a6a8: ; 17a6a8 (5e:66a8)
+ push de
+ push bc
+ ld hl, StringBuffer2 ; $d086
+ ld bc, $a
+ xor a
+ call ByteFill
+ ld hl, Buffer1
+ ld bc, $10
+ ld a, $ff
+ call ByteFill
+ pop bc
+ ld a, c
+ and a
+ jr z, .asm_17a6c9
+ ld hl, $d088
+ set 4, [hl]
+.asm_17a6c9
+ pop de
+ call Function17a6f5
+ call Function17aba0
+ callba Function106464
+ call Function17ac0c
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ call Function17abcf
+ callba LoadOW_BGPal7
+ callba Function49420
+ call SetPalettes
+ call DelayFrame
+ ret
+
+Function17a6f5: ; 17a6f5 (5e:66f5)
+ ld hl, Buffer1
+ ld c, $0
+ ld b, $8
+.asm_17a6fc
+ ld a, [de]
+ call Function17a713
+ jr c, .asm_17a70e
+ ld a, [de]
+ swap a
+ call Function17a713
+ jr c, .asm_17a70e
+ inc de
+ dec b
+ jr nz, .asm_17a6fc
+.asm_17a70e
+ ld a, c
+ ld [$d08c], a
+ ret
+
+Function17a713: ; 17a713 (5e:6713)
+ and $f
+ cp $a
+ jr nc, .asm_17a71d
+ ld [hli], a
+ inc c
+ and a
+ ret
+
+.asm_17a71d
+ ld [hl], $ff
+ scf
+ ret
+
+Function17a721: ; 17a721 (5e:6721)
+ push de
+ ld h, d
+ ld l, e
+ ld bc, $8
+ ld a, $ff
+ call ByteFill
+ pop de
+ ld hl, Buffer1
+ ld b, $8
+.asm_17a732
+ ld c, $0
+ ld a, [hli]
+ cp $a
+ jr nc, .asm_17a748
+ ld c, a
+ ld a, [hli]
+ cp $a
+ jr nc, .asm_17a74c
+ swap a
+ or c
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_17a732
+ ret
+
+.asm_17a748
+ ld a, $ff
+ ld [de], a
+ ret
+
+.asm_17a74c
+ ld a, $f0
+ or c
+ ld [de], a
+ ret
+
+Function17a751: ; 17a751 (5e:6751)
+ xor a
+ ld [$d087], a
+.asm_17a755
+ call Function17a781
+ call Function17a7ae
+ call Function17a97b
+ call Function17a770
+ call Function17a78f
+ ld hl, $d08f
+ inc [hl]
+ ld a, [$d087]
+ bit 7, a
+ jr z, .asm_17a755
+ ret
+
+Function17a770: ; 17a770 (5e:6770)
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call HideSprites
+ call Function17a9cb
+ pop af
+ ld [hOAMUpdate], a
+ ret
+
+Function17a781: ; 17a781 (5e:6781)
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call JoyTextDelay
+ pop af
+ ld [hInMenu], a
+ ret
+
+Function17a78f: ; 17a78f (5e:678f)
+ ld hl, $d088
+ bit 7, [hl]
+ res 7, [hl]
+ jr nz, .asm_17a79f
+ callba HDMATransferTileMapToWRAMBank3
+ ret
+
+.asm_17a79f
+ callba ReloadMapPart
+ ret
+; 17a7a6 (5e:67a6)
+
+Function17a7a6: ; 17a7a6
+ ld a, [$d087]
+ inc a
+ ld [$d087], a
+ ret
+
+Function17a7ae: ; 17a7ae (5e:67ae)
+ ld a, [$d087]
+ ld hl, Jumptable_17a7b6
+ rst JumpTable
+ ret
+
+Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
+ dw Function17a7c2
+ dw Function17a7cd
+ dw Function17a7d8
+ dw Function17a7ff
+ dw Function17a81a
+ dw Function17a7f4
+
+
+Function17a7c2: ; 17a7c2 (5e:67c2)
+ ld a, $4
+ call Function17aad3
+ ld a, $1
+ ld [$d087], a
+ ret
+
+Function17a7cd: ; 17a7cd (5e:67cd)
+ call Function17a83c
+ call Function17a8ae
+ ret c
+ call Function17a848
+ ret
+
+Function17a7d8: ; 17a7d8 (5e:67d8)
+ call Function17a83c
+ call Function17a848
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld a, $1
+ ld [$d087], a
+ ret
+
+Function17a7f4: ; 17a7f4 (5e:67f4)
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ ld hl, $d087
+ set 7, [hl]
+ ret
+
+Function17a7ff: ; 17a7ff (5e:67ff)
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ set 5, [hl]
+ ld hl, $d087
+ set 7, [hl]
+ ret
+
+Function17a81a: ; 17a81a (5e:681a)
+ call IsSFXPlaying
+ ret nc
+ ld a, [hJoyPressed]
+ and $3
+ ret z
+ call ExitMenu
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ res 6, [hl]
+ ld a, $1
+ ld [$d087], a
+ ret
+
+Function17a83c: ; 17a83c (5e:683c)
+ ld a, [hJoyLast]
+ and $f0
+ ld c, a
+ ld a, [hJoyPressed]
+ and $b
+ or c
+ ld c, a
+ ret
+
+Function17a848: ; 17a848 (5e:6848)
+ ld a, c
+ and $60
+ cp $60
+ jr z, .asm_17a876
+ ld a, c
+ and $50
+ cp $50
+ jr z, .asm_17a87d
+ ld a, c
+ and $a0
+ cp $a0
+ jr z, .asm_17a884
+ ld a, c
+ and $90
+ cp $90
+ jr z, .asm_17a88b
+ bit 6, c
+ jr nz, .asm_17a892
+ bit 7, c
+ jr nz, .asm_17a899
+ bit 5, c
+ jr nz, .asm_17a8a0
+ bit 4, c
+ jr nz, .asm_17a8a7
+ xor a
+ ret
+
+.asm_17a876
+ ld a, $9
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a87d
+ ld a, $a
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a884
+ ld a, $b
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a88b
+ ld a, $c
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a892
+ ld a, $5
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a899
+ ld a, $6
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a8a0
+ ld a, $7
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a8a7
+ ld a, $8
+ call Function17aad0
+ scf
+ ret
+
+Function17a8ae: ; 17a8ae (5e:68ae)
+ bit 1, c
+ jr nz, .asm_17a8bc
+ bit 0, c
+ jr nz, .asm_17a8cc
+ bit 3, c
+ jr nz, .asm_17a8d7
+ xor a
+ ret
+
+.asm_17a8bc
+ ld a, $b
+ ld [$d08a], a
+ call Function17aa98
+ call Function17a943
+ call Function17aa88
+ scf
+ ret
+
+.asm_17a8cc
+ call Function17aad7
+ call Function17aa98
+ call Function17a8de
+ scf
+ ret
+
+.asm_17a8d7
+ ld a, $c
+ call Function17aad3
+ scf
+ ret
+
+Function17a8de: ; 17a8de (5e:68de)
+ ld a, $2
+ call Function17aae0
+ ld a, [hl]
+ cp $f1
+ jr z, .asm_17a8fd
+ cp $f0
+ jr z, .asm_17a904
+ cp $f2
+ jr z, .asm_17a911
+ ld e, a
+ call Function17a964
+ ld a, $2
+ ld [$d087], a
+ call Function17aa88
+ ret
+
+.asm_17a8fd
+ call Function17a943
+ call Function17aa88
+ ret
+
+.asm_17a904
+ call Function17aad7
+ call Function17aa98
+ call Function17a91e
+ call Function17aa88
+ ret
+
+.asm_17a911
+ call Function17aa98
+ ld a, $5
+ ld [$d087], a
+ xor a
+ call Function17aa88
+ ret
+
+Function17a91e: ; 17a91e (5e:691e)
+ ld a, [$d08c]
+ cp $7
+ jr c, .asm_17a92c
+ ld a, $3
+ ld [$d087], a
+ xor a
+ ret
+
+.asm_17a92c
+ call LoadStandardMenuDataHeader
+ call Function17a99e
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ set 6, [hl]
+ ld a, $4
+ ld [$d087], a
+ scf
+ ret
+
+Function17a943: ; 17a943 (5e:6943)
+ ld a, [$d08c]
+ and a
+ jr z, .asm_17a95d
+ dec a
+ ld [$d08c], a
+ ld c, a
+ ld b, $0
+ ld hl, Buffer1
+ add hl, bc
+ ld [hl], $ff
+ ld a, $2
+ ld [$d087], a
+ and a
+ ret
+
+.asm_17a95d
+ ld a, $5
+ ld [$d087], a
+ xor a
+ ret
+
+Function17a964: ; 17a964 (5e:6964)
+ ld a, [$d08c]
+ cp $10
+ jr nc, .asm_17a979
+ ld c, a
+ ld b, $0
+ inc a
+ ld [$d08c], a
+ ld hl, Buffer1
+ add hl, bc
+ ld [hl], e
+ and a
+ ret
+
+.asm_17a979
+ scf
+ ret
+
+Function17a97b: ; 17a97b (5e:697b)
+ hlcoord 1, 1
+ lb bc, 2, 18
+ call ClearBox
+ hlcoord 3, 2
+ ld de, Buffer1
+ ld a, [$d08c]
+ and a
+ ret z
+ ld c, a
+.asm_17a990
+ ld a, [de]
+ inc de
+ cp $a
+ jr nc, .asm_17a99d
+ add $f6
+ ld [hli], a
+ dec c
+ jr nz, .asm_17a990
+ ret
+
+.asm_17a99d
+ ret
+
+Function17a99e: ; 17a99e (5e:699e)
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call Function17ac46
+ hlcoord 2, 14
+ ld de, String_17a9b2
+ call PlaceString
+ ret
+; 17a9b2 (5e:69b2)
+
+String_17a9b2: ; 17a9b2
+ db "でんわばんごうが ただしく"
+ next "はいって いません!"
+ db "@"
+; 17a9cb
+
+Function17a9cb: ; 17a9cb (5e:69cb)
+ ld de, Sprites ; $c400
+ ld hl, $d088
+ bit 6, [hl]
+ jr nz, .bit_6_set
+ call Function17a9e3
+ call Function17aa22
+ call Function17a9f5
+ ret
+
+.bit_6_set
+ call Function17a9e3
+ ret
+
+Function17a9e3: ; 17a9e3 (5e:69e3)
+ ld a, $3
+ ld [$d08e], a
+ ld hl, Unknown_17aa77
+ ld b, $8
+ ld c, $8
+ ld a, $5
+ call Function17aa4a
+ ret
+
+Function17a9f5: ; 17a9f5 (5e:69f5)
+ ld a, [$d08c]
+ cp $10
+ ret nc
+ ld a, [$d08f]
+ swap a
+ and $1
+ add $1
+ ld [$d08e], a
+ ld a, [$d08c]
+ cp $10
+ jr c, .okay
+ dec a
+.okay
+ ld c, $8
+ call SimpleMultiply
+ add $18
+ ld b, a
+ ld c, $11
+ ld hl, Unknown_17aa72
+ ld a, $4
+ call Function17aa4a
+ ret
+
+Function17aa22: ; 17aa22 (5e:6a22)
+ ld a, $0
+ ld [$d08e], a
+ push de
+ ld a, $3
+ call Function17aae0
+ add a
+ add a
+ add a
+ add $0
+ push af
+ ld a, $4
+ call Function17aae0
+ add a
+ add a
+ add a
+ add $8
+ ld c, a
+ pop af
+ ld b, a
+ pop de
+ ld a, $0
+ ld hl, Unknown_17aa77
+ call Function17aa4a
+ ret
+
+Function17aa4a: ; 17aa4a (5e:6a4a)
+ ld [$d08d], a
+ ld a, b
+ add $8
+ ld b, a
+ ld a, c
+ add $10
+ ld c, a
+ ld a, [hli]
+.loop
+ push af
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [$d08d]
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [$d08e]
+ or [hl]
+ inc hl
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+; 17aa72 (5e:6a72)
+
+Unknown_17aa72: ; 17aa72
+ db 1
+ db 0, 0, 0, 0
+; 17aa77
+
+Unknown_17aa77: ; 17aa77
+ db 4
+ db 0, 0, 0, 0
+ db 0, 8, 1, 0
+ db 8, 0, 2, 0
+ db 8, 8, 3, 0
+; 17aa88
+
+Function17aa88: ; 17aa88 (5e:6a88)
+ jr c, asm_17aa91
+ ld de, SFX_SWITCH_POKEMON
+ call PlaySFX
+ ret
+
+asm_17aa91: ; 17aa91 (5e:6a91)
+ ld de, SFX_WRONG
+ call PlaySFX
+ ret
+
+Function17aa98: ; 17aa98 (5e:6a98)
+ ld a, $5
+ ld [$d08b], a
+ call Function17aaa9
+ call Function17aac3
+ ld hl, $d088
+ set 7, [hl]
+ ret
+
+Function17aaa9: ; 17aaa9 (5e:6aa9)
+ ld a, $3
+ call Function17aae3
+ ld c, a
+ ld b, $0
+ hlcoord 0, 0, AttrMap
+ add hl, bc
+ push hl
+ ld a, $4
+ call Function17aae3
+ ld bc, $14
+ pop hl
+ call AddNTimes
+ ret
+
+Function17aac3: ; 17aac3 (5e:6ac3)
+ ld a, $b
+ push hl
+ ld [hli], a
+ ld [hli], a
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld [hli], a
+ ld [hli], a
+ ret
+
+Function17aad0: ; 17aad0 (5e:6ad0)
+ call Function17aae0
+
+Function17aad3: ; 17aad3 (5e:6ad3)
+ ld [$d089], a
+ ret
+
+Function17aad7: ; 17aad7 (5e:6ad7)
+ push af
+ ld a, [$d089]
+ ld [$d08a], a
+ pop af
+ ret
+
+Function17aae0: ; 17aae0 (5e:6ae0)
+ call Function17aad7
+
+Function17aae3: ; 17aae3 (5e:6ae3)
+ push af
+ ld a, [$d08a]
+ ld bc, $d
+ ld hl, Unknown_17aaf7
+ call AddNTimes
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ret
+; 17aaf7 (5e:6af7)
+
+Unknown_17aaf7: ; 17aaf7
+ db $0, $0, $1, $6, $5, $9, $3, $2, $1, $2, $1, $2, $4
+ db $0, $0, $2, $9, $5, $a, $4, $0, $2, $a, $a, $3, $5
+ db $0, $0, $3, $c, $5, $b, $5, $1, $0, $1, $0, $4, $0
+ db $0, $0, $4, $6, $8, $0, $6, $5, $4, $5, $1, $5, $7
+ db $0, $0, $5, $9, $8, $1, $7, $3, $5, $0, $2, $6, $8
+ db $0, $0, $6, $c, $8, $2, $8, $4, $3, $1, $3, $7, $3
+ db $0, $0, $7, $6, $b, $3, $9, $8, $7, $8, $4, $8, $a
+ db $0, $0, $8, $9, $b, $4, $a, $6, $8, $3, $5, $9, $b
+ db $0, $0, $9, $c, $b, $5, $b, $7, $6, $4, $6, $a, $6
+ db $0, $0,$f2, $6, $e, $6, $0, $c, $a, $c, $7, $c, $0
+ db $0, $0, $0, $9, $e, $7, $1, $9, $b, $6, $8, $1, $1
+ db $0, $0,$f1, $c, $e, $8, $2, $a, $c, $7, $c, $2, $c
+ db $0, $0,$f0,$10, $e, $c, $c, $b, $9, $b, $9, $b, $9
+; 17aba0
+
+Function17aba0: ; 17aba0 (5e:6ba0)
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+
+ ld hl, VTiles5 tile $00
+ ld de, GFX_17afa5
+ lb bc, BANK(GFX_17afa5), $80
+ call Get2bpp
+
+ pop af
+ ld [rVBK], a
+
+ ld hl, VTiles0 tile $00
+ ld de, GFX_17afa5 + $4c0
+ lb bc, BANK(GFX_17afa5), 5
+ call Get2bpp
+
+ ld hl, VTiles0 tile $05
+ ld de, GFX_11601a
+ lb bc, BANK(GFX_11601a), 4
+ call Get2bpp
+ ret
+
+Function17abcf: ; 17abcf (5e:6bcf)
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(UnknBGPals)
+ ld [rSVBK], a
+
+ ld hl, Palette_17ac55
+ ld de, UnknBGPals ; $d000
+ ld bc, $30
+ call CopyBytes
+
+ ld hl, Palette_17ac95
+ ld de, UnknOBPals
+ ld bc, $40
+ call CopyBytes
+
+ ld hl, GFX_17afa5 + $510
+ ld de, UnknOBPals + 2 * 4
+ ld bc, $10
+ call CopyBytes
+
+ ld hl, MapObjectPals + 8
+ ld de, UnknOBPals + 6 * 4
+ ld bc, $8
+ ld a, BANK(MapObjectPals)
+ call FarCopyBytes
+
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function17ac0c: ; 17ac0c (5e:6c0c)
+ call Function17ac1d
+ call Function17ac2a
+ hlcoord 0, 0
+ ld b, 2
+ ld c, SCREEN_WIDTH - 2
+ call Function17ac46
+ ret
+
+Function17ac1d: ; 17ac1d (5e:6c1d)
+ ld hl, Tilemap_17acd5
+ decoord 0, 4
+ ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
+ call CopyBytes
+ ret
+
+Function17ac2a: ; 17ac2a (5e:6c2a)
+ ld hl, Tilemap_17ae3d
+ decoord 0, 4, AttrMap
+ ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
+ call CopyBytes
+ hlcoord 0, 4, AttrMap
+ ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
+.loop
+ ld a, [hl]
+ or $8
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+
+Function17ac46: ; 17ac46 (5e:6c46)
+ ld a, [$d088]
+ bit 4, a
+ jr nz, .bit_4_set
+ call TextBox
+ ret
+
+.bit_4_set
+ call Function3eea
+ ret
+; 17ac55 (5e:6c55)
+
+Palette_17ac55: ; 17ac55
+ RGB 0, 0, 0
+ RGB 9, 10, 25
+ RGB 16, 19, 31
+ RGB 31, 31, 31
+
+ RGB 5, 11, 9
+ RGB 7, 14, 12
+ RGB 17, 24, 22
+ RGB 28, 31, 31
+
+ RGB 0, 0, 0
+ RGB 3, 0, 10
+ RGB 3, 3, 16
+ RGB 6, 8, 25
+
+ RGB 5, 11, 9
+ RGB 28, 31, 31
+ RGB 7, 14, 12
+ RGB 17, 24, 22
+
+ RGB 0, 0, 0
+ RGB 5, 2, 16
+ RGB 8, 8, 26
+ RGB 13, 9, 17
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+Palette_17ac95: ; 17ac95
+ RGB 31, 31, 31
+ RGB 4, 3, 3
+ RGB 31, 13, 0
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 0, 0
+ RGB 16, 3, 0
+ RGB 28, 19, 11
+ RGB 31, 31, 31
+
+ RGB 31, 16, 0
+ RGB 9, 6, 4
+ RGB 31, 16, 0
+ RGB 31, 24, 0
+
+ RGB 31, 18, 6
+ RGB 0, 3, 0
+ RGB 0, 9, 0
+ RGB 0, 12, 0
+
+ RGB 0, 16, 0
+ RGB 0, 22, 0
+ RGB 0, 25, 0
+ RGB 0, 27, 0
+
+ RGB 0, 31, 0
+ RGB 3, 31, 0
+ RGB 8, 31, 0
+ RGB 14, 31, 0
+
+ RGB 16, 31, 0
+ RGB 22, 31, 0
+ RGB 27, 31, 0
+ RGB 31, 31, 0
+
+Tilemap_17acd5: ; 17acd5
+INCBIN "gfx/unknown/17acd5.tilemap"
+
+Tilemap_17ae3d: ; 17ae3d
+INCBIN "gfx/unknown/17ae3d.tilemap"
+
+GFX_17afa5:: ; 17afa5
+INCBIN "gfx/unknown/17afa5.2bpp"
--- /dev/null
+++ b/mobile/mobile_5f.asm
@@ -1,0 +1,5306 @@
+Function17c000: ; 17c000
+ call DisableLCD
+
+ ld hl, VTiles2
+ ld bc, $31 tiles
+ xor a
+ call ByteFill
+
+ call LoadStandardFont
+ call LoadFontsExtra
+
+ ld hl, HaveWantMap
+ decoord 0, 0
+ bccoord 0, 0, AttrMap
+
+ ld a, SCREEN_HEIGHT
+.y
+ push af
+ ld a, SCREEN_WIDTH
+
+ push hl
+.x
+ push af
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .x
+ pop hl
+
+ push bc
+ ld bc, BG_MAP_WIDTH * 2
+ add hl, bc
+ pop bc
+
+ pop af
+ dec a
+ jr nz, .y
+
+ ld a, [rSVBK]
+ push af
+
+ ld a, 5 ; BANK(UnknBGPals)
+ ld [rSVBK], a
+
+ ld hl, HaveWantPals
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ ld hl, MobileSelectGFX
+ ld de, VTiles0 tile $30
+ ld bc, $20 tiles
+ call CopyBytes
+
+ ld a, 1
+ ld [rVBK], a
+
+ ld hl, HaveWantGFX
+ ld de, VTiles2
+ ld bc, $80 tiles
+ call CopyBytes
+
+ ld hl, HaveWantGFX + $800
+ ld de, VTiles1
+ ld bc, $10 tiles
+ call CopyBytes
+
+ xor a
+ ld [rVBK], a
+
+ call EnableLCD
+ callba ReloadMapPart
+ ret
+; 17c083
+
+HaveWantGFX: ; 17c083
+INCBIN "gfx/mobile/havewant.2bpp"
+
+MobileSelectGFX: ; 17c983
+INCBIN "gfx/mobile/select.2bpp"
+
+HaveWantMap: ; 17cb83
+; Interleaved tile/palette map.
+INCBIN "gfx/mobile/havewant_map.bin"
+
+HaveWantPals: ; 17cff3
+; BG and OBJ palettes.
+ RGB 0, 0, 0
+ RGB 21, 21, 21
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 4, 17, 29
+ RGB 6, 19, 31
+ RGB 31, 31, 31
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 2, 13, 18
+ RGB 6, 19, 31
+ RGB 31, 31, 31
+
+ RGB 0, 0, 0
+ RGB 31, 5, 5
+ RGB 29, 21, 21
+ RGB 31, 31, 31
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 4, 17, 29
+ RGB 6, 19, 31
+ RGB 2, 15, 27
+
+ RGB 0, 0, 0
+ RGB 28, 19, 18
+ RGB 25, 9, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 31, 27, 27
+ RGB 31, 10, 4
+ RGB 29, 0, 0
+
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 26, 8, 23
+ RGB 22, 0, 16
+
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 8, 31
+ RGB 15, 1, 26
+
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 17, 12, 31
+ RGB 12, 6, 31
+
+ RGB 0, 16, 0
+ RGB 11, 11, 14
+ RGB 5, 5, 7
+ RGB 31, 31, 31
+
+ RGB 0, 31, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 16, 31, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+
+CheckStringForErrors: ; 17d073
+; Valid character ranges:
+; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
+.loop
+ ld a, [de]
+ inc de
+ and a
+ jr z, .NextChar
+ cp $60
+ jr nc, .NextChar
+ cp $4e
+ jr z, .NextChar
+ cp "@"
+ jr z, .Done
+ cp $5
+ jr c, .Fail
+ cp "<PLAY_G>"
+ jr c, .NextChar
+ cp $19
+ jr c, .Fail
+ cp $1d
+ jr c, .NextChar
+ cp $26
+ jr c, .Fail
+ cp $35
+ jr c, .NextChar
+ cp $3a
+ jr c, .Fail
+ cp $3f
+ jr c, .NextChar
+ cp $40
+ jr c, .Fail
+ cp $49
+ jr c, .NextChar
+
+.Fail:
+ scf
+ ret
+
+.NextChar:
+ dec c
+ jr nz, .loop
+
+.Done:
+ and a
+ ret
+; 17d0b3
+
+CheckStringForErrors_IgnoreTerminator: ; 17d0b3
+; Find control chars
+.loop
+ ld a, [de]
+ inc de
+ and a
+ jr z, .next
+ cp "<DEXEND>" + 1
+ jr nc, .next
+ cp "<NEXT>"
+ jr z, .next
+ cp "@"
+ jr z, .next
+
+ cp $5
+ jr c, .end
+ cp "<PLAY_G>"
+ jr c, .next
+ cp $19
+ jr c, .end
+ cp $1d
+ jr c, .next
+ cp "%" + 1
+ jr c, .end
+ cp $35
+ jr c, .next
+ cp "<GREEN>" + 1
+ jr c, .end
+ cp "<ENEMY>"
+ jr c, .next
+ cp "<ENEMY>" + 1
+ jr c, .end
+ cp "<MOM>"
+ jr c, .next
+
+.end
+ scf
+ ret
+
+.next
+ dec c
+ jr nz, .loop
+ and a
+ ret
+; 17d0f3
+
+Function17d0f3: ; 17d0f3
+ ld a, [$c608 + 5]
+ ld [wOTTrademonSpecies], a
+ ld [CurPartySpecies], a
+ ld a, [wcd81]
+ ld [$c74e], a
+ ld hl, $c63d
+ ld de, wOTTrademonOTName
+ ld bc, 5
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld a, [$c608 + 11]
+ ld [wOTTrademonID], a
+ ld a, [$c608 + 12]
+ ld [wOTTrademonID + 1], a
+ ld hl, $c608 + 26
+ ld a, [hli]
+ ld [wOTTrademonDVs], a
+ ld a, [hl]
+ ld [wOTTrademonDVs + 1], a
+ ld bc, $c608 + 5
+ callba GetCaughtGender
+ ld a, c
+ ld [wOTTrademonCaughtData], a
+ call SpeechTextBox
+ call FadeToMenu
+ callba Function10804d
+ callba Function17d1f1
+ ld a, $1
+ ld [wForceEvolution], a
+ ld a, $2
+ ld [wLinkMode], a
+ callba EvolvePokemon
+ xor a
+ ld [wLinkMode], a
+ callba SaveAfterLinkTrade
+ ld a, $5
+ call GetSRAMBank
+ ld a, $5
+ ld [$a800], a
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .asm_17d180
+ ld a, $1
+ ld [de], a
+
+.asm_17d180
+ call CloseSubmenu
+ call RestartMapMusic
+ ret
+; 17d187
+
+Mobile_CopyDefaultOTName: ; 17d187
+ ld hl, Mobile5F_KrissName
+ ld de, $c63d
+ ld bc, 5
+ call CopyBytes
+ ret
+; 17d194
+
+Mobile5F_KrissName:
+ db "クりス@@"
+; 17d198
+
+Mobile_CopyDefaultNickname: ; 17d199
+ ld hl, .DefaultNickname
+ ld de, $c642
+ ld bc, 5
+ call CopyBytes
+ ret
+; 17d1a6
+
+.DefaultNickname:
+ db "?????"
+
+Mobile_CopyDefaultMail: ; 17d1ab
+ ld a, "@"
+ ld hl, $c647
+ ld bc, MAIL_MSG_LENGTH + 1
+ call ByteFill
+ ld hl, .DefaultMessage
+ ld de, $c647
+ ld bc, 6
+ call CopyBytes
+ ret
+; 17d1c3
+
+.DefaultMessage:
+ db "こんにちは@"
+; 17d1c9
+
+Mobile_CopyDefaultMailAuthor: ; 17d1c9
+ ld a, "@"
+ ld de, $c668
+ ld bc, 5
+ call ByteFill
+ ld hl, Mobile5F_KrissName
+ ld de, $c668
+ ld bc, 5
+ call CopyBytes
+ ret
+; 17d1e1
+
+CheckStringContainsLessThanBNextCharacters: ; 17d1e1
+.loop
+ ld a, [de]
+ inc de
+ cp "<NEXT>"
+ jr nz, .next_char
+ dec b
+ jr z, .done
+
+.next_char
+ dec c
+ jr nz, .loop
+ and a
+ ret
+
+.done
+ scf
+ ret
+; 17d1f1
+
+Function17d1f1: ; 17d1f1
+ ld a, [CurPartySpecies]
+ dec a
+ call SetSeenAndCaughtMon
+
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr nz, .asm_17d223
+
+ ld hl, PartyMon1DVs
+ ld a, [PartyCount]
+ dec a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ predef GetUnownLetter
+ callab UpdateUnownDex
+ ld a, [wFirstUnownSeen]
+ and a
+ jr nz, .asm_17d223
+
+ ld a, [UnownLetter]
+ ld [wFirstUnownSeen], a
+
+.asm_17d223
+ ret
+; 17d224
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Parameter: [ScriptVar] = 0..1
+;
+; if [ScriptVar] == 0
+; Show japanese menu options
+; - News - News - ??? - Cancel
+; if [ScriptVar] == 1
+; Show BattleTower-Menu with 3 options in english language
+; - Challenge - Explanation - Cancel
+Special_Menu_ChallengeExplanationCancel: ; 17d224
+ ld a, [ScriptVar]
+ and a
+ jr nz, .English
+ ld a, $4
+ ld [ScriptVar], a
+ ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option
+ jr .Load_Interpret
+
+.English:
+ ld a, $4
+ ld [ScriptVar], a
+ ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu
+
+.Load_Interpret:
+ call LoadMenuDataHeader
+ call Function17d246
+ call CloseWindow
+ ret
+; 17d246
+
+Function17d246: ; 17d246
+ call VerticalMenu
+ jr c, .Exit
+ ld a, [ScriptVar]
+ cp $5
+ jr nz, .UsewMenuCursorY
+ ld a, [wMenuCursorY]
+ cp $3
+ ret z
+ jr c, .UsewMenuCursorY
+ dec a
+ jr .LoadToScriptVar
+
+.UsewMenuCursorY:
+ ld a, [wMenuCursorY]
+
+.LoadToScriptVar:
+ ld [ScriptVar], a
+ ret
+
+.Exit:
+ ld a, $4
+ ld [ScriptVar], a
+ ret
+; 17d26a
+
+MenuDataHeader_17d26a: ; 17d26a
+ db $40 ; flags
+ db 0, 0 ; start coords
+ db 9, 14 ; end coords
+ dw MenuData2_17d272
+ db 1 ; default option
+
+MenuData2_17d272: ; 17d272
+ db $a0 ; flags
+ db 4
+ db "ニュース¯よみこむ@"
+ db "ニュース¯みる@"
+ db "せつめい@"
+ db "やめる@"
+; 17d28f
+
+MenuDataHeader_ChallengeExplanationCancel: ; 17d28f
+ db $40 ; flags
+ db 0, 0 ; start coords
+ db 7, 14 ; end coords
+ dw MenuData2_ChallengeExplanationCancel
+ db 1 ; default option
+
+MenuData2_ChallengeExplanationCancel: ; 17d297
+ db $a0 ; flags
+ db 3
+ db "Challenge@"
+ db "Explanation@"
+ db "Cancel@"
+; 17d2b6
+
+Function17d2b6: ; 17d2b6
+ call Function17d2c0
+ callba Function1181da
+ ret
+; 17d2c0
+
+Function17d2c0: ; 17d2c0
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ret
+; 17d2ce
+
+Function17d2ce: ; 17d2ce
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa72]
+ call CloseSRAM
+ and a
+ jr nz, .asm_17d2e2
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_17d2e2
+ call Function17d314
+ ret c
+ call SpeechTextBox
+ call FadeToMenu
+ ld a, [rSVBK]
+ push af
+ ld a, $4
+ ld [rSVBK], a
+ call Function17d370
+ call Function17d45a
+ pop af
+ ld [rSVBK], a
+ ld de, MUSIC_MOBILE_CENTER
+ ld a, e
+ ld [wMapMusic], a
+ ld [MusicFadeID], a
+ ld a, d
+ ld [MusicFadeID + 1], a
+ call PlayMusic
+ call ReturnToMapFromSubmenu
+ call CloseSubmenu
+ ret
+; 17d314
+
+Function17d314: ; 17d314
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b1b1]
+ call CloseSRAM
+ cp $21
+ jr nc, .asm_17d354
+ ld a, $6
+ call GetSRAMBank
+ ld l, $0
+ ld h, l
+ ld de, $a006
+ ld a, [$a004]
+ ld c, a
+ ld a, [$a005]
+ ld b, a
+.asm_17d336
+ push bc
+ ld a, [de]
+ inc de
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_17d336
+ ld a, [$a002]
+ cp l
+ jr nz, .asm_17d354
+ ld a, [$a003]
+ cp h
+ jr nz, .asm_17d354
+ call CloseSRAM
+ and a
+ ret
+
+.asm_17d354
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld hl, $aa73
+ ld bc, $c
+ call ByteFill
+ call CloseSRAM
+ ld a, $2
+ ld [ScriptVar], a
+ scf
+ ret
+; 17d370
+
+Function17d370: ; 17d370
+ xor a
+ ld [wcd77], a
+ ld [wcd78], a
+ ld [wcd79], a
+ dec a
+ ld [wcd6c], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+ callba ReloadMapPart
+ call DisableLCD
+ ld hl, VTiles1 tile $6e
+ ld de, $c608
+ ld bc, 1 tiles
+ call CopyBytes
+ ld a, $1
+ ld [rVBK], a
+ ld hl, PokemonNewsGFX
+ ld de, VTiles1
+ ld bc, $48 tiles
+ call CopyBytes
+ xor a
+ ld hl, VTiles2 tile $7f
+ ld bc, 1 tiles
+ call ByteFill
+ ld hl, $c608
+ ld de, VTiles1 tile $6e
+ ld bc, 1 tiles
+ call CopyBytes
+ xor a
+ ld [rVBK], a
+ ld hl, GFX_17eb7e
+ ld de, VTiles2 tile $60
+ ld bc, 1 tiles
+ call CopyBytes
+ call EnableLCD
+ call Function17d60b
+ ld a, $0
+ ld [BGMapBuffer], a
+ ld a, $d0
+ ld [wcd21], a
+ ld a, $6
+ call GetSRAMBank
+ ld hl, $a006
+ ld de, UnknBGPals
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17d3f6
+
+Function17d3f6: ; 17d3f6
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+ callba ReloadMapPart
+
+Function17d405:
+ call DisableLCD
+ ld hl, VTiles1 tile $6e
+ ld de, $c608
+ ld bc, 1 tiles
+ call CopyBytes
+ ld a, $1
+ ld [rVBK], a
+ ld hl, PokemonNewsGFX
+ ld de, VTiles1
+ ld bc, $48 tiles
+ call CopyBytes
+ xor a
+ ld hl, VTiles2 tile $7f
+ ld bc, 1 tiles
+ call ByteFill
+ ld hl, $c608
+ ld de, VTiles1 tile $6e
+ ld bc, 1 tiles
+ call CopyBytes
+ xor a
+ ld [rVBK], a
+ call EnableLCD
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_17eff6
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ret
+; 17d45a
+
+Function17d45a: ; 17d45a
+.asm_17d45a
+ call JoyTextDelay
+ ld a, [wcd77]
+ bit 7, a
+ jr nz, .asm_17d46f
+ call Function17d474
+ callba ReloadMapPart
+ jr .asm_17d45a
+
+.asm_17d46f
+ xor a
+ ld [ScriptVar], a
+ ret
+; 17d474
+
+Function17d474: ; 17d474
+ jumptable Jumptable_17d483, wcd77
+; 17d483
+
+Jumptable_17d483: ; 17d483
+ dw Function17d48d
+ dw Function17d5be
+ dw Function17d5c4
+ dw Function17d6fd
+ dw Function17e427
+; 17d48d
+
+Function17d48d: ; 17d48d
+ ld hl, Palette_17eff6
+ ld de, $c608
+ ld bc, $40
+ call CopyBytes
+ ld hl, TileAttrmap_17eb8e
+ decoord 0, 0
+ bccoord 0, 0, AttrMap
+ ld a, $12
+.asm_17d4a4
+ push af
+ ld a, $14
+ push hl
+.asm_17d4a8
+ push af
+ ld a, [hli]
+ cp $7f
+ jr z, .asm_17d4b0
+ add $80
+
+.asm_17d4b0
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_17d4a8
+ pop hl
+ push bc
+ ld bc, $40
+ add hl, bc
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_17d4a4
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ ld a, [hli]
+ ld e, a
+ ld a, [wcd6c]
+ cp e
+ jr z, .asm_17d4e0
+ ld a, e
+ ld [wcd6c], a
+ ld [wMapMusic], a
+ ld d, $0
+ call PlayMusic2
+
+.asm_17d4e0
+ ld a, [hli]
+ ld de, $c608
+ ld c, $8
+.asm_17d4e6
+ srl a
+ jr nc, .asm_17d4f6
+ ld b, $8
+ push af
+.asm_17d4ed
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_17d4ed
+ pop af
+ jr .asm_17d4fc
+
+.asm_17d4f6
+ push af
+ ld a, e
+ add $8
+ ld e, a
+ pop af
+
+.asm_17d4fc
+ dec c
+ jr nz, .asm_17d4e6
+ push hl
+ call Function17d5f6
+ pop hl
+ ld a, [hli]
+ and a
+ jr z, .asm_17d539
+.asm_17d508
+ push af
+ ld a, [hli]
+ ld [wcd4f], a
+ ld a, [hli]
+ ld [wcd50], a
+ ld a, [hli]
+ ld [wcd51], a
+ ld a, [hli]
+ ld [wcd52], a
+ ld a, [hli]
+ sla a
+ sla a
+ sla a
+ add $98
+ ld [wcd53], a
+ ld de, wcd4f
+ call Function17e613
+ ld a, [hli]
+ ld [wcd53], a
+ ld de, wcd4f
+ call Function17e691
+ pop af
+ dec a
+ jr nz, .asm_17d508
+
+.asm_17d539
+ ld a, [hli]
+.asm_17d53a
+ push af
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ pop de
+ hlcoord 0, 0
+ add hl, bc
+ call PlaceString
+ push de
+ pop hl
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_17d53a
+ ld de, CreditsTimer
+ ld bc, $c
+ call CopyBytes
+ xor a
+ ld [wcd2e], a
+ ld [wcd2f], a
+ inc a
+ ld [wcd30], a
+ ld [wcd31], a
+ ld de, wcd32
+ ld bc, $10
+ call CopyBytes
+ ld a, [hli]
+ ld [wcd42], a
+ ld a, [hli]
+ ld [wcd43], a
+ ld a, [hli]
+ ld [wMobileInactivityTimerMinutes], a
+ ld a, [hli]
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, [hli]
+ ld [wMobileInactivityTimerFrames], a
+ ld a, [hli]
+ and a
+ jr z, .asm_17d58a
+ call Function17d6a1
+
+.asm_17d58a
+ ld a, l
+ ld [wcd49], a
+ ld a, h
+ ld [wcd4a], a
+ ld a, [wcd42]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, l
+ ld [wcd4b], a
+ ld a, h
+ ld [wcd4c], a
+ add hl, bc
+ add hl, bc
+ ld a, l
+ ld [wcd4d], a
+ ld a, h
+ ld [wcd4e], a
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+ callba ReloadMapPart
+ jp Function17e438
+; 17d5be
+
+Function17d5be: ; 17d5be
+ call SetPalettes
+ call Function17e438
+
+Function17d5c4:
+ ld a, [hJoyPressed]
+ and a
+ ret z
+ ld c, 0
+ ld b, c
+ ld hl, wcd32
+.loop
+ srl a
+ jr c, .got_button
+ inc c
+ inc c
+ jr .loop
+
+.got_button
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ and c
+ cp $ff
+ ret z
+ ld a, [wcd20]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, bc
+ ld a, l
+ ld [wcd78], a
+ ld a, h
+ ld [wcd79], a
+ ld a, $3
+ ld [wcd77], a
+ ret
+; 17d5f6
+
+Function17d5f6: ; 17d5f6
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $c608
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ ld a, $4
+ ld [rSVBK], a
+ ret
+; 17d60b
+
+Function17d60b: ; 17d60b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b1d3
+ ld de, $c608
+ ld bc, $20
+ call CopyBytes
+ ld a, [$b1b1]
+ ld c, a
+ ld a, [$b1b2]
+ ld b, a
+ ld a, [$b1b3]
+ ld l, a
+ ld a, [$b1b4]
+ ld h, a
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+ ld de, $c708
+ ld a, c
+ and a
+ jr z, .asm_17d684
+.asm_17d63b
+ push bc
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ inc de
+ ld bc, $a
+ add hl, bc
+ pop bc
+ ld a, [hli]
+ ld [wcd4a], a
+ ld a, [hli]
+ ld [wcd49], a
+ push hl
+ push de
+ ld hl, $c608
+ ld e, b
+ ld d, $0
+ add hl, de
+ ld a, [hli]
+ ld [wcd4b], a
+ ld a, [hl]
+ ld [wcd4c], a
+ pop de
+ pop hl
+ inc b
+ inc b
+ dec c
+ dec c
+ jr z, .asm_17d684
+ push bc
+ push de
+ ld a, [wcd49]
+ ld c, a
+ ld a, [wcd4a]
+ ld b, a
+ ld a, [wcd4b]
+ ld e, a
+ ld a, [wcd4c]
+ ld d, a
+.asm_17d67a
+ add hl, de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_17d67a
+ pop de
+ pop bc
+ jr .asm_17d63b
+
+.asm_17d684
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $c708
+ ld de, $b1b3
+ ld a, [$b1b1]
+ ld c, a
+ ld a, [$b1b2]
+ ld b, a
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17d6a1
+
+
+Function17d6a1: ; 17d6a1
+ push hl
+ ld a, [wcd6e]
+ ld c, a
+ ld b, $0
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b1d3
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld [wcd47], a
+ ld a, [hl]
+ ld [BGMapPalBuffer], a
+ ld hl, $b1b3
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld h, a
+ ld l, c
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+ ld a, l
+ ld [wcd5e], a
+ ld a, h
+ ld [wcd5f], a
+ ld de, wcd60
+ ld bc, $4
+ call CopyBytes
+ inc hl
+ inc hl
+ ld de, wcd64
+ ld bc, $4
+ call CopyBytes
+ ld a, [hli]
+ ld [wcd69], a
+ ld a, [hli]
+ ld [wcd68], a
+ ld a, l
+ ld [wcd6a], a
+ ld a, h
+ ld [wcd6b], a
+ call CloseSRAM
+ pop hl
+ ret
+; 17d6fd
+
+Function17d6fd: ; 17d6fd
+ ld a, [wcd77]
+ bit 7, a
+ jr nz, asm_17d721
+ ld a, [wcd78]
+ ld l, a
+ ld a, [wcd79]
+ ld h, a
+ ld a, [hl]
+ cp $ff
+ jr z, asm_17d721
+
+Function17d711:
+.crash_loop
+ cp $31
+ jr nc, .crash_loop
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable17d72a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+asm_17d721
+ call Function17e5af
+ ld a, $2
+ ld [wcd77], a
+ ret
+; 17d72a
+
+Jumptable17d72a: ; 17d72a
+ dw Function17d78c
+ dw Function17d78d
+ dw Function17d7b4
+ dw Function17d7c2
+ dw Function17d7d3
+ dw Function17d7e5
+ dw Function17d818
+ dw Function17d833
+ dw Function17d85d
+ dw Function17d902
+ dw Function17d93a
+ dw Function17d98b
+ dw Function17d9e3
+ dw Function17da31
+ dw Function17da9c
+ dw Function17dadc
+ dw Function17db2d
+ dw Function17db56
+ dw Function17db77
+ dw Function17dbe9
+ dw Function17dc1f
+ dw Function17dc9f
+ dw Function17dca9
+ dw Function17dccf
+ dw Function17dd13
+ dw Function17dd30
+ dw Function17dd49
+ dw Function17ddcd
+ dw Function17de32
+ dw Function17de91
+ dw Function17ded9
+ dw Function17e0fd
+ dw Function17e133
+ dw Function17e165
+ dw Function17e1a1
+ dw Function17e254
+ dw Function17e261
+ dw Function17e270
+ dw Function17e27f
+ dw Function17e293
+ dw Function17e2a7
+ dw Function17e367
+ dw Function17e37e
+ dw Function17e395
+ dw Function17e3ac
+ dw Function17e3c3
+ dw Function17e3e0
+ dw Function17e3f0
+ dw Function17e409
+; 17d78c
+
+Function17d78c: ; 17d78c
+ ret
+; 17d78d
+
+Function17d78d: ; 17d78d
+ call Function17e415
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ call Function17e41e
+ ld a, $6
+ call GetSRAMBank
+ ld hl, $a006
+ add hl, bc
+ ld de, UnknBGPals
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ xor a
+ ld [wcd77], a
+ call ClearBGPalettes
+ ret
+; 17d7b4
+
+Function17d7b4: ; 17d7b4
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld d, $0
+ call PlayMusic2
+ call Function17e41e
+ ret
+; 17d7c2
+
+Function17d7c2: ; 17d7c2
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld d, $0
+ call PlaySFX
+ call WaitSFX
+ call Function17e41e
+ ret
+; 17d7d3
+
+Function17d7d3: ; 17d7d3
+ call Function17e415
+ ld a, [hli]
+ dec a
+ ld e, a
+ ld d, $0
+ call PlayCryHeader
+ call WaitSFX
+ call Function17e41e
+ ret
+; 17d7e5
+
+Function17d7e5: ; 17d7e5
+ call Function17e415
+ ld a, [hli]
+ ld [wcd4f], a
+ ld a, [hli]
+ ld [wcd50], a
+ ld a, [hli]
+ ld [wcd51], a
+ ld a, [hli]
+ ld [wcd52], a
+ ld a, [hli]
+ sla a
+ sla a
+ sla a
+ add $98
+ ld [wcd53], a
+ ld de, wcd4f
+ call Function17e613
+ ld a, [hli]
+ ld [wcd53], a
+ ld de, wcd4f
+ call Function17e691
+ call Function17e41e
+ ret
+; 17d818
+
+Function17d818: ; 17d818
+ call Function17e415
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ call Function17e41e
+ call Function17e447
+ ld e, l
+ ld d, h
+ hlcoord 0, 0
+ add hl, bc
+ call PlaceString
+ ret
+; 17d833
+
+Function17d833: ; 17d833
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ call Function17e41e
+ push de
+ push bc
+ call Function17e32b
+ pop bc
+ pop de
+ call Function17e43d
+ ld c, l
+ ld b, h
+ hlcoord 0, 0
+ add hl, de
+ ld e, l
+ ld d, h
+ callba Function11c08f
+ call Function17e349
+ ret
+; 17d85d
+
+Function17d85d: ; 17d85d
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld hl, UnknBGPals
+ add hl, de
+ ld de, wcc60
+.asm_17d86c
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr nz, .asm_17d86c
+ pop hl
+ ld de, $c608
+ ld c, $0
+.asm_17d878
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_17d8c7
+ ld [wcd4f], a
+ ld a, [hli]
+ ld [wcd50], a
+ ld a, [hli]
+ ld [wcd51], a
+ ld a, [hli]
+ ld [wcd52], a
+ ld a, [wcd51]
+ push af
+ cp $c0
+ jr c, .asm_17d89b
+ ld a, [wcd4f]
+ ld [rSVBK], a
+ jr .asm_17d8a1
+
+.asm_17d89b
+ ld a, [wcd4f]
+ call GetSRAMBank
+
+.asm_17d8a1
+ push hl
+ ld a, [wcd50]
+ ld l, a
+ ld a, [wcd51]
+ ld h, a
+ ld a, [wcd52]
+.asm_17d8ad
+ push af
+ ld a, [hli]
+ ld [de], a
+ inc de
+ inc c
+ pop af
+ dec a
+ jr nz, .asm_17d8ad
+ pop hl
+ pop af
+ cp $c0
+ jr c, .asm_17d8c2
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17d878
+
+.asm_17d8c2
+ call CloseSRAM
+ jr .asm_17d878
+
+.asm_17d8c7
+ call Function17e41e
+ push bc
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $c608
+ ld de, UnknBGPals
+ ld b, $0
+ call CopyBytes
+ ld a, $4
+ ld [rSVBK], a
+ call Function17e32b
+ pop bc
+ ld a, c
+ ld [wcd3b], a
+ xor a
+ ld [wcf66], a
+ callba Function118329
+ ld a, [wc300]
+ and a
+ jr z, .asm_17d8fe
+ cp $a
+ jr z, .asm_17d8fe
+ call Function17e309
+ ret
+
+.asm_17d8fe
+ call Function17e349
+ ret
+; 17d902
+
+Function17d902: ; 17d902
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ call Function17e41e
+ call Function17e32b
+ pop de
+ ld hl, UnknBGPals
+ add hl, de
+ ld de, wcc60
+.asm_17d918
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr nz, .asm_17d918
+ xor a
+ ld [wcf66], a
+ callba Function11837a
+ ld a, [wc300]
+ and a
+ jr z, .asm_17d936
+ cp $a
+ jr z, .asm_17d936
+ call Function17e309
+ ret
+
+.asm_17d936
+ call Function17e349
+ ret
+; 17d93a
+
+Function17d93a: ; 17d93a
+ call Function17e415
+ ld de, $c708
+ ld bc, $5
+ call CopyBytes
+ call Function17e41e
+ call Function17e32b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [$c70c]
+ call Function17e6de
+ ld a, [$c70a]
+ ld [CurPartySpecies], a
+ ld a, [$c70c]
+ ld e, a
+ callba LoadMonPaletteAsNthBGPal
+ call SetPalettes
+ ld a, [$c708]
+ ld l, a
+ ld a, [$c709]
+ ld h, a
+ ld a, [$c70b]
+ ld c, a
+ decoord 0, 0
+ add hl, de
+ ld e, l
+ ld d, h
+ callba HOF_AnimateFrontpic
+ pop af
+ ld [rSVBK], a
+ call Function17e349
+ ret
+; 17d98b
+
+Function17d98b: ; 17d98b
+ call Function17e415
+ ld de, $c708
+ ld bc, $4
+ call CopyBytes
+ call Function17e41e
+ call Function17e32b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [$c70b]
+ call Function17e6de
+ ld a, [$c70a]
+ ld [TrainerClass], a
+ ld a, [$c70b]
+ ld e, a
+ callba LoadTrainerClassPaletteAsNthBGPal
+ call SetPalettes
+ ld a, [$c708]
+ ld e, a
+ ld a, [$c709]
+ ld d, a
+ push de
+ ld de, VTiles2
+ callba GetTrainerPic
+ pop hl
+ decoord 0, 0
+ add hl, de
+ ld bc, $707
+ predef PlaceGraphic
+ pop af
+ ld [rSVBK], a
+ call Function17e349
+ ret
+; 17d9e3
+
+Function17d9e3: ; 17d9e3
+ call Function17e415
+ ld de, $c708
+ ld bc, $7
+ call CopyBytes
+ call Function17e41e
+ ld a, [$c70b]
+ push af
+ cp $c0
+ jr c, .asm_17da01
+ ld a, [$c70c]
+ ld [rSVBK], a
+ jr .asm_17da07
+
+.asm_17da01
+ ld a, [$c70c]
+ call GetSRAMBank
+
+.asm_17da07
+ ld a, [$c708]
+ ld l, a
+ ld a, [$c709]
+ ld h, a
+ ld a, [$c70a]
+ ld e, a
+ ld a, [$c70b]
+ ld d, a
+ ld a, [$c70d]
+ ld c, a
+ ld a, [$c70e]
+ ld b, a
+ call CopyBytes
+ pop af
+ cp $c0
+ jr c, .asm_17da2d
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17da30
+
+.asm_17da2d
+ call CloseSRAM
+
+.asm_17da30
+ ret
+; 17da31
+
+Function17da31: ; 17da31
+ call Function17e415
+ ld de, $c708
+ ld bc, $4
+ call CopyBytes
+ call Function17e41e
+ ld a, [$c709]
+ push af
+ cp $c0
+ jr c, .asm_17da4f
+ ld a, [$c70a]
+ ld [rSVBK], a
+ jr .asm_17da55
+
+.asm_17da4f
+ ld a, [$c70a]
+ call GetSRAMBank
+
+.asm_17da55
+ ld a, [$c708]
+ ld e, a
+ ld a, [$c709]
+ ld d, a
+ ld a, [$c70b]
+ ld c, a
+ bit 7, c
+ jr nz, .asm_17da70
+ ld hl, Unknown_17da8c
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ or [hl]
+ ld [de], a
+ jr .asm_17da7d
+
+.asm_17da70
+ ld hl, Unknown_17da94
+ ld a, c
+ and $7f
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ and [hl]
+ ld [de], a
+
+.asm_17da7d
+ pop af
+ cp $c0
+ jr c, .asm_17da88
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17da8b
+
+.asm_17da88
+ call CloseSRAM
+
+.asm_17da8b
+ ret
+; 17da8c
+
+Unknown_17da8c:
+x = 0
+ rept 8
+ db 1 << x
+x = x + 1
+ endr
+
+Unknown_17da94:
+x = 0
+ rept 8
+ db (1 << x) ^ $ff
+x = x + 1
+ endr
+; 17da9c
+
+Function17da9c: ; 17da9c
+ ld a, [wcd31]
+ dec a
+ jr z, .asm_17dabd
+ push af
+ call Function17e566
+ pop af
+ ld [wcd31], a
+ ld hl, wcd24
+ ld a, [wcd2e]
+ sub [hl]
+ ld [wcd2e], a
+ call Function17e55b
+ call Function17e5af
+.asm_17daba
+ jp Function17e415
+
+.asm_17dabd
+ ld a, [wcd2f]
+ and a
+ jr z, .asm_17daba
+ ld hl, wcd24
+ sub [hl]
+ ld [wcd2f], a
+ ld a, [wcd2e]
+ sub [hl]
+ ld [wcd2e], a
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+ jr .asm_17daba
+; 17dadc
+
+Function17dadc: ; 17dadc
+ ld a, [wcd2e]
+ ld hl, wcd24
+ add [hl]
+ ld hl, wcd42
+ cp [hl]
+ jr z, .asm_17db0e
+ jr nc, .asm_17db0e
+ ld hl, wcd31
+ ld a, [wcd2b]
+ cp [hl]
+ jr z, .asm_17db11
+ call Function17e566
+ ld a, [wcd31]
+ inc a
+ ld [wcd31], a
+ ld hl, wcd24
+ ld a, [wcd2e]
+ add [hl]
+ ld [wcd2e], a
+ call Function17e55b
+ call Function17e5af
+
+.asm_17db0e
+ jp Function17e415
+
+.asm_17db11
+ ld hl, wcd24
+ ld a, [wcd2f]
+ add [hl]
+ ld [wcd2f], a
+ ld a, [wcd2e]
+ add [hl]
+ ld [wcd2e], a
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+ jr .asm_17db0e
+; 17db2d
+
+Function17db2d: ; 17db2d
+ ld a, [wcd30]
+ ld hl, wcd24
+ cp [hl]
+ jr z, .asm_17db53
+ ld hl, wcd42
+ ld a, [wcd2e]
+ inc a
+ cp [hl]
+ jr z, .asm_17db53
+ ld [wcd2e], a
+ call Function17e566
+ ld a, [wcd30]
+ inc a
+ ld [wcd30], a
+ call Function17e55b
+ call Function17e5af
+
+.asm_17db53
+ jp Function17e415
+; 17db56
+
+Function17db56: ; 17db56
+ ld a, [wcd30]
+ cp $1
+ jr z, .asm_17db74
+ call Function17e566
+ ld a, [wcd30]
+ dec a
+ ld [wcd30], a
+ ld a, [wcd2e]
+ dec a
+ ld [wcd2e], a
+ call Function17e55b
+ call Function17e5af
+
+.asm_17db74
+ jp Function17e415
+; 17db77
+
+Function17db77: ; 17db77
+ ld hl, wcd2d
+ ld a, [wcd2f]
+ add [hl]
+ ld hl, wcd42
+ cp [hl]
+ jr z, .asm_17dbae
+ jr nc, .asm_17dbae
+ call Function17e566
+ ld hl, wcd2d
+ ld a, [wcd2f]
+ add [hl]
+ ld [wcd2f], a
+ ld a, [wcd2e]
+ add [hl]
+ ld hl, wcd42
+ cp [hl]
+ jr c, .asm_17db9f
+ ld a, [hl]
+ dec a
+
+.asm_17db9f
+ ld [wcd2e], a
+ call Function17dbb1
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+
+.asm_17dbae
+ jp Function17e415
+; 17dbb1
+
+Function17dbb1: ; 17dbb1
+ ld hl, wcd2f
+ ld a, [wcd42]
+ sub [hl]
+ ld hl, wcd2d
+ cp [hl]
+ ret nc
+ ld a, $1
+ ld [wcd30], a
+ ld [wcd31], a
+ ld a, [wcd24]
+ ld c, a
+ ld a, [wcd24]
+ ld b, a
+ ld a, [wcd2e]
+ ld hl, wcd2f
+ sub [hl]
+.asm_17dbd4
+ and a
+ ret z
+ push af
+ ld hl, wcd30
+ ld a, b
+ cp [hl]
+ jr nz, .asm_17dbe4
+ ld a, $1
+ ld [hl], a
+ ld hl, wcd31
+
+.asm_17dbe4
+ inc [hl]
+ pop af
+ dec a
+ jr .asm_17dbd4
+; 17dbe9
+
+Function17dbe9: ; 17dbe9
+ ld hl, wcd2d
+ ld a, [wcd2f]
+ sub [hl]
+ bit 7, a
+ jr z, .asm_17dbf5
+ xor a
+
+.asm_17dbf5
+ ld [wcd2f], a
+ ld a, [wcd30]
+ dec a
+ ld c, a
+ ld a, [wcd31]
+ ld b, a
+ xor a
+ ld hl, wcd24
+.asm_17dc05
+ dec b
+ jr z, .asm_17dc0b
+ add [hl]
+ jr .asm_17dc05
+
+.asm_17dc0b
+ add c
+ ld hl, wcd2f
+ add [hl]
+ ld [wcd2e], a
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+ jp Function17e415
+; 17dc1f
+
+Function17dc1f: ; 17dc1f
+ call Function17e415
+ ld de, $c688
+ ld bc, $6
+ call CopyBytes
+ call Function17e32b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c688
+ ld a, $40
+ ld [$c708], a
+ ld a, [hli]
+ ld [$c70a], a
+ add $5
+ ld [$c70c], a
+ ld a, [hli]
+ ld [$c709], a
+ add $4
+ ld [$c70b], a
+ ld a, $96
+ ld [$c70d], a
+ ld a, $5c
+ ld [$c70e], a
+ ld a, $1
+ ld [$c70f], a
+ ld hl, $c708
+ call LoadMenuDataHeader
+ call VerticalMenu
+ jr nc, .asm_17dc6e
+ ld a, $2
+ ld [wMenuCursorY], a
+
+.asm_17dc6e
+ call CloseWindow
+ pop af
+ ld [rSVBK], a
+ ld a, [wMenuCursorY]
+ cp $1
+ jr nz, .asm_17dc85
+ ld a, [$c68a]
+ ld l, a
+ ld a, [$c68a + 1]
+ ld h, a
+ jr .asm_17dc8d
+
+.asm_17dc85
+ ld a, [$c68a + 2]
+ ld l, a
+ ld a, [$c68a + 3]
+ ld h, a
+
+.asm_17dc8d
+ push hl
+ call Function17e349
+ pop hl
+ call Function17e40f
+ ret
+; 17dc96
+
+MenuData2_17dc96:
+ db $e0 ; flags
+ db 2
+ db "はい@"
+ db "いいえ@"
+; 17dc9f
+
+Function17dc9f: ; 17dc9f
+ call Function17e415
+ call Function17e41e
+ call RotateFourPalettesLeft
+ ret
+; 17dca9
+
+Function17dca9: ; 17dca9
+ call Function17e415
+ call Function17e41e
+
+Function17dcaf:
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, UnknBGPals
+ ld de, $8
+ ld c, $8
+.asm_17dcbb
+ push hl
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hl], a
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .asm_17dcbb
+ call RotateThreePalettesRight
+ ld a, $4
+ ld [rSVBK], a
+ ret
+; 17dccf
+
+Function17dccf: ; 17dccf
+ call Function17e415
+ push hl
+ ld a, [wcd4b]
+ ld l, a
+ ld a, [wcd4c]
+ ld h, a
+ ld a, [wcd2e]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ call Function17e43d
+ call Function17e41e
+.asm_17dced
+ ld a, [wcd78]
+ ld l, a
+ ld a, [wcd79]
+ ld h, a
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_17dd0d
+.crash_loop
+ cp $31
+ jr nc, .crash_loop
+ call Function17d711
+ ld a, [wcd77]
+ bit 7, a
+ jr nz, .asm_17dd0d
+ and a
+ jr z, .asm_17dd11
+ jr .asm_17dced
+
+.asm_17dd0d
+ pop hl
+ jp Function17e41e
+
+.asm_17dd11
+ pop hl
+ ret
+; 17dd13
+
+Function17dd13: ; 17dd13
+ call Function17e415
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ call Function17e41e
+ call Function17e447
+ push hl
+ hlcoord 0, 0
+ add hl, bc
+ push hl
+ pop bc
+ pop hl
+ call PlaceHLTextAtBC
+ ret
+; 17dd30
+
+Function17dd30: ; 17dd30
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld b, $0
+ ld a, [hli]
+ push af
+ call Function17e41e
+ pop af
+ hlcoord 0, 0
+ add hl, de
+ call Function17e600
+ ret
+; 17dd49
+
+Function17dd49: ; 17dd49
+ call Function17e415
+ ld de, $c708
+ ld bc, $a
+ call CopyBytes
+ ld a, [$c711]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .sram
+ ld a, [$c708]
+ ld [rSVBK], a
+ jr .got_bank
+
+.sram
+ ld a, [$c708]
+ call GetSRAMBank
+
+.got_bank
+ ld a, [$c709]
+ ld l, a
+ ld a, [$c70a]
+ ld h, a
+ ld de, $c688
+ ld a, [$c711]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .close_sram
+ ld a, $4
+ ld [rSVBK], a
+ jr .exited_bank
+
+.close_sram
+ call CloseSRAM
+
+.exited_bank
+ ld a, [$c711]
+ ld c, a
+ ld hl, $c712
+ ld de, $c688
+.loop
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr z, .next
+ jr c, .load
+ jr .load2
+
+.next
+ dec c
+ jr nz, .loop
+ ld a, [$c70d]
+ ld l, a
+ ld a, [$c70e]
+ ld h, a
+ jr .done
+
+.load2
+ ld a, [$c70f]
+ ld l, a
+ ld a, [$c710]
+ ld h, a
+ jr .done
+
+.load
+ ld a, [$c70b]
+ ld l, a
+ ld a, [$c70c]
+ ld h, a
+
+.done
+ call Function17e40f
+ ret
+; 17ddcd
+
+Function17ddcd: ; 17ddcd
+ call Function17e415
+ ld de, $c708
+ ld bc, $8
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .asm_17dde7
+ ld a, [$c708]
+ ld [rSVBK], a
+ jr .asm_17dded
+
+.asm_17dde7
+ ld a, [$c708]
+ call GetSRAMBank
+
+.asm_17dded
+ ld a, [$c709]
+ ld e, a
+ ld a, [$c70a]
+ ld d, a
+ ld a, [de]
+ ld [$c710], a
+ ld a, [$c70b]
+ ld c, a
+ ld b, $0
+ ld a, [$c70a]
+ cp $c0
+ jr c, .asm_17de0c
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17de0f
+
+.asm_17de0c
+ call CloseSRAM
+
+.asm_17de0f
+ push hl
+ ld hl, Unknown_17da8c
+ add hl, bc
+ ld a, [hl]
+ ld hl, $c710
+ and [hl]
+ pop hl
+ jr nz, .asm_17de26
+ ld a, [$c70e]
+ ld l, a
+ ld a, [$c70f]
+ ld h, a
+ jr .asm_17de2e
+
+.asm_17de26
+ ld a, [$c70c]
+ ld l, a
+ ld a, [$c70d]
+ ld h, a
+
+.asm_17de2e
+ call Function17e40f
+ ret
+; 17de32
+
+Function17de32: ; 17de32
+ call Function17e415
+ ld de, $c708
+ ld bc, $9
+ call CopyBytes
+ ld a, [$c710]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, $6
+ call GetSRAMBank
+ call Function17f4f6
+ ld a, [$c708]
+ ld e, a
+ ld a, [$c709]
+ ld d, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [$c710]
+ ld c, a
+ ld hl, $c711
+.asm_17de61
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr z, .asm_17de6b
+ jr c, .asm_17de82
+ jr .asm_17de78
+
+.asm_17de6b
+ dec c
+ jr nz, .asm_17de61
+ ld a, [$c70c]
+ ld l, a
+ ld a, [$c70d]
+ ld h, a
+ jr .asm_17de8a
+
+.asm_17de78
+ ld a, [$c70e]
+ ld l, a
+ ld a, [$c70f]
+ ld h, a
+ jr .asm_17de8a
+
+.asm_17de82
+ ld a, [$c70a]
+ ld l, a
+ ld a, [$c70b]
+ ld h, a
+
+.asm_17de8a
+ call CloseSRAM
+ call Function17e40f
+ ret
+; 17de91
+
+Function17de91: ; 17de91
+ call Function17e415
+ ld de, $c708
+ ld bc, $7
+ call CopyBytes
+ ld a, $6
+ call GetSRAMBank
+ call Function17f4f6
+ ld a, [$c708]
+ ld e, a
+ ld a, [$c709]
+ ld d, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [$c70a]
+ ld c, a
+ ld b, $0
+ ld hl, Unknown_17da8c
+ add hl, bc
+ ld a, [hl]
+ ld l, e
+ ld h, d
+ and [hl]
+ jr nz, .asm_17deca
+ ld a, [$c70d]
+ ld l, a
+ ld a, [$c70e]
+ ld h, a
+ jr .asm_17ded2
+
+.asm_17deca
+ ld a, [$c70b]
+ ld l, a
+ ld a, [$c70c]
+ ld h, a
+
+.asm_17ded2
+ call CloseSRAM
+ call Function17e40f
+ ret
+; 17ded9
+
+Function17ded9: ; 17ded9
+ call Function17e415
+ ld de, $c708
+ ld bc, $1f
+ call CopyBytes
+ call Function17e32b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c708
+ ld a, [hli]
+ ld [CurPartySpecies], a
+ ld [TempEnemyMonSpecies], a
+ ld a, [hli]
+ ld [CurPartyLevel], a
+ ld a, [hli]
+ ld b, a
+ ld a, [PartyCount]
+ cp $6
+ jp nc, Function17e026
+ xor a
+ ld [MonType], a
+ push hl
+ push bc
+ predef TryAddMonToParty
+ callba SetCaughtData
+ pop bc
+ pop hl
+ bit 1, b
+ jr z, .asm_17df33
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMonNicknames
+ call SkipNames
+ ld d, h
+ ld e, l
+ pop hl
+ call CopyBytes
+ pop bc
+ jr .asm_17df37
+
+.asm_17df33
+ ld de, $6
+ add hl, de
+
+.asm_17df37
+ bit 2, b
+ jr z, .asm_17df5a
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMonOT
+ call SkipNames
+ ld d, h
+ ld e, l
+ pop hl
+ call CopyBytes
+ ld a, [hli]
+ ld b, a
+ push hl
+ callba SetGiftPartyMonCaughtData
+ pop hl
+ pop bc
+ jr .asm_17df5e
+
+.asm_17df5a
+ ld de, $7
+ add hl, de
+
+.asm_17df5e
+ bit 3, b
+ jr z, .asm_17df79
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1ID
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ pop bc
+ jr .asm_17df7b
+
+.asm_17df79
+ inc hl
+ inc hl
+
+.asm_17df7b
+ bit 4, b
+ jr z, .asm_17dfd0
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1DVs
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1MaxHP
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ push hl
+ ld b, $0
+ callba CalcPkmnStats
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1HP
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ pop hl
+ pop bc
+ jr .asm_17dfd2
+
+.asm_17dfd0
+ inc hl
+ inc hl
+
+.asm_17dfd2
+ bit 5, b
+ jr z, .asm_17dfea
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Item
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ pop bc
+ jr .asm_17dfeb
+
+.asm_17dfea
+ inc hl
+
+.asm_17dfeb
+ bit 6, b
+ jr z, .asm_17e01f
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Moves
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ push de
+ ld bc, $4
+ call CopyBytes
+ pop de
+ push hl
+ push de
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1PP
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ predef FillPP
+ pop hl
+ pop bc
+ jp asm_17e0ee
+
+.asm_17e01f
+ ld de, $4
+ add hl, de
+ jp asm_17e0ee
+; 17e026
+
+Function17e026: ; 17e026
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld a, [sBoxCount]
+ call CloseSRAM
+ cp $14
+ jp nc, .asm_17e0ea
+ bit 0, b
+ jp z, .asm_17e0ea
+ push bc
+ push hl
+ callba LoadEnemyMon
+ callba SentPkmnIntoBox
+ callba SetBoxMonCaughtData
+ pop hl
+ pop bc
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+ bit 1, b
+ jr z, .asm_17e067
+ push bc
+ ld bc, $b
+ ld de, sBoxMonNicknames
+ call CopyBytes
+ pop bc
+ jr .asm_17e06b
+
+.asm_17e067
+ ld de, $6
+ add hl, de
+
+.asm_17e06b
+ bit 2, b
+ jr z, .asm_17e08e
+ push bc
+ ld bc, $6
+ ld de, sBoxMonOT
+ call CopyBytes
+ ld a, [hli]
+ ld b, a
+ push hl
+ call CloseSRAM
+ callba SetGiftBoxMonCaughtData
+ ld a, $1
+ call GetSRAMBank
+ pop hl
+ pop bc
+ jr .asm_17e092
+
+.asm_17e08e
+ ld de, $7
+ add hl, de
+
+.asm_17e092
+ bit 3, b
+ jr z, .asm_17e0a2
+ push bc
+ ld de, sBoxMon1ID
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ pop bc
+ jr .asm_17e0a4
+
+.asm_17e0a2
+ inc hl
+ inc hl
+
+.asm_17e0a4
+ bit 4, b
+ jr z, .asm_17e0b4
+ push bc
+ ld de, sBoxMon1DVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ pop bc
+ jr .asm_17e0b6
+
+.asm_17e0b4
+ inc hl
+ inc hl
+
+.asm_17e0b6
+ bit 5, b
+ ld a, [hli]
+ jr z, .asm_17e0be
+ ld [sBoxMon1Item], a
+
+.asm_17e0be
+ bit 6, b
+ jr z, .asm_17e0e1
+ push bc
+ ld de, sBoxMon1Moves
+ ld bc, $4
+ call CopyBytes
+ push hl
+ ld hl, sBoxMon1Moves
+ ld de, sBoxMon1PP
+ predef FillPP
+ call CloseSRAM
+ pop hl
+ pop bc
+ inc hl
+ inc hl
+ jr asm_17e0ee
+
+.asm_17e0e1
+ call CloseSRAM
+ ld de, $6
+ add hl, de
+ jr asm_17e0ee
+
+.asm_17e0ea
+ ld bc, $1a
+ add hl, bc
+
+asm_17e0ee
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ld [rSVBK], a
+ push hl
+ call Function17e349
+ pop hl
+ call Function17e40f
+ ret
+; 17e0fd
+
+Function17e0fd: ; 17e0fd
+ call Function17e415
+ ld de, $c708
+ ld bc, $6
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c708
+ ld a, [hli]
+ ld [CurItem], a
+ ld a, [hli]
+ ld [wItemQuantityChangeBuffer], a
+ push hl
+ ld hl, NumItems
+ call ReceiveItem
+ pop hl
+ jr c, .asm_17e127
+ inc hl
+ inc hl
+
+.asm_17e127
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld h, a
+ ld l, b
+ pop af
+ ld [rSVBK], a
+ call Function17e40f
+ ret
+; 17e133
+
+Function17e133: ; 17e133
+ call Function17e415
+ ld de, $c708
+ ld bc, $5
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c708
+ ld a, [hli]
+ ld [ScriptVar], a
+ push hl
+ callba MobileCheckOwnMonAnywhere
+ pop hl
+ jr c, .asm_17e159
+ inc hl
+ inc hl
+
+.asm_17e159
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld h, a
+ ld l, b
+ pop af
+ ld [rSVBK], a
+ call Function17e40f
+ ret
+; 17e165
+
+Function17e165: ; 17e165
+ call Function17e415
+ ld de, $c708
+ ld bc, $5
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c708
+ ld a, [hli]
+ ld [CurItem], a
+ push hl
+ ld hl, NumItems
+ call CheckItem
+ pop hl
+ jr c, .asm_17e195
+ push hl
+ ld hl, PCItems
+ call CheckItem
+ pop hl
+ jr c, .asm_17e195
+ inc hl
+ inc hl
+
+.asm_17e195
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld h, a
+ ld l, b
+ pop af
+ ld [rSVBK], a
+ call Function17e40f
+ ret
+; 17e1a1
+
+Function17e1a1: ; 17e1a1
+ call Function17e415
+ ld de, $c708
+ ld bc, $d
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .asm_17e1bb
+ ld a, [$c708]
+ ld [rSVBK], a
+ jr .asm_17e1c1
+
+.asm_17e1bb
+ ld a, [$c708]
+ call GetSRAMBank
+
+.asm_17e1c1
+ ld a, [$c709]
+ ld l, a
+ ld a, [$c70a]
+ ld h, a
+ ld de, $c608
+ ld a, [$c70b]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .asm_17e1e2
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17e1e5
+
+.asm_17e1e2
+ call CloseSRAM
+
+.asm_17e1e5
+ ld a, [$c70e]
+ cp $c0
+ jr c, .asm_17e1f3
+ ld a, [$c70c]
+ ld [rSVBK], a
+ jr .asm_17e1f9
+
+.asm_17e1f3
+ ld a, [$c70c]
+ call GetSRAMBank
+
+.asm_17e1f9
+ ld a, [$c70d]
+ ld l, a
+ ld a, [$c70e]
+ ld h, a
+ ld de, $c688
+ ld a, [$c70b]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$c70e]
+ cp $c0
+ jr c, .asm_17e21a
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17e21d
+
+.asm_17e21a
+ call CloseSRAM
+
+.asm_17e21d
+ ld a, [$c70b]
+ ld c, a
+ ld hl, $c688
+ ld de, $c608
+.asm_17e227
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr z, .asm_17e231
+ jr c, .asm_17e23e
+ jr .asm_17e248
+
+.asm_17e231
+ dec c
+ jr nz, .asm_17e227
+ ld a, [$c711]
+ ld l, a
+ ld a, [$c712]
+ ld h, a
+ jr .asm_17e250
+
+.asm_17e23e
+ ld a, [$c70f]
+ ld l, a
+ ld a, [$c710]
+ ld h, a
+ jr .asm_17e250
+
+.asm_17e248
+ ld a, [$c712 + 1]
+ ld l, a
+ ld a, [$c712 + 2]
+ ld h, a
+
+.asm_17e250
+ call Function17e40f
+ ret
+; 17e254
+
+Function17e254: ; 17e254
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [de], a
+ call Function17e41e
+ ret
+; 17e261
+
+Function17e261: ; 17e261
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [de]
+ add [hl]
+ ld [de], a
+ inc hl
+ call Function17e41e
+ ret
+; 17e270
+
+Function17e270: ; 17e270
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [de]
+ sub [hl]
+ ld [de], a
+ inc hl
+ call Function17e41e
+ ret
+; 17e27f
+
+Function17e27f: ; 17e27f
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ call Function17e41e
+ ld l, c
+ ld h, b
+ ld a, [de]
+ add [hl]
+ ld [de], a
+ ret
+; 17e293
+
+Function17e293: ; 17e293
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ call Function17e41e
+ ld l, c
+ ld h, b
+ ld a, [de]
+ sub [hl]
+ ld [de], a
+ ret
+; 17e2a7
+
+Function17e2a7: ; 17e2a7
+ call Function17e415
+ call Function17e41e
+ call Function17e32b
+ xor a
+ ld [wcf66], a
+ callba Function118233
+ ld de, GFX_17eb7e
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(GFX_17eb7e), 1
+ call Get2bpp
+ ld a, [wc300]
+ and a
+ jr z, .asm_17e2d8
+ cp $a
+ jr z, .asm_17e2f7
+ cp $b
+ jr z, .asm_17e300
+ call Function17e309
+ ret
+
+.asm_17e2d8
+ call Function17d60b
+ call Function17e349
+ xor a
+ ld [wcd7a], a
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $aa73
+ ld de, $aa7f
+ ld bc, $c
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+.asm_17e2f7
+ call Function17e349
+ ld a, $1
+ ld [wcd7a], a
+ ret
+
+.asm_17e300
+ call Function17e349
+ ld a, $2
+ ld [wcd7a], a
+ ret
+; 17e309
+
+Function17e309: ; 17e309
+ ld a, $2
+ ld [wc303], a
+ call Function17dcaf
+ call ClearScreen
+ call Function17e349
+ call Function17d5f6
+ callba DisplayMobileError
+ call Function17e349
+ call Function17dcaf
+ xor a
+ ld [wcd77], a
+ ret
+; 17e32b
+
+Function17e32b: ; 17e32b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $c608
+ ld de, $b0b1
+ ld bc, $40
+ call CopyBytes
+ ld hl, BGMapBuffer
+ ld bc, $5b
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17e349
+
+Function17e349: ; 17e349
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b0b1
+ ld de, $c608
+ ld bc, $40
+ call CopyBytes
+ ld de, BGMapBuffer
+ ld bc, $5b
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17e367
+
+Function17e367: ; 17e367
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba SaveGameData_
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e37e
+
+Function17e37e: ; 17e37e
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba SaveAfterLinkTrade
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e395
+
+Function17e395: ; 17e395
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba SaveBox
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e3ac
+
+Function17e3ac: ; 17e3ac
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba SaveChecksum
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e3c3
+
+Function17e3c3: ; 17e3c3
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba UpdateTrainerRankingsChecksum2
+ callba BackupMobileEventIndex
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e3e0
+
+Function17e3e0: ; 17e3e0
+ call Function17e415
+ ld a, [hli]
+ ld c, a
+ call Function17e41e
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrames
+ ret
+; 17e3f0
+
+Function17e3f0: ; 17e3f0
+ call Function17e415
+ call Function17e41e
+.asm_17e3f6
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $1
+ ret nz
+ ld a, [hl]
+ and $2
+ ret nz
+ call WaitBGMap
+ jr .asm_17e3f6
+; 17e409
+
+Function17e409: ; 17e409
+ ld hl, wcd77
+ set 7, [hl]
+ ret
+; 17e40f
+
+Function17e40f: ; 17e40f
+ ld de, UnknBGPals
+ add hl, de
+ jr Function17e41e
+
+Function17e415:
+ ld a, [wcd78]
+ ld l, a
+ ld a, [wcd79]
+ ld h, a
+ inc hl
+
+Function17e41e:
+ ld a, l
+ ld [wcd78], a
+ ld a, h
+ ld [wcd79], a
+ ret
+; 17e427
+
+Function17e427: ; 17e427
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $1
+ jr nz, .asm_17e432
+ and $2
+ ret z
+
+.asm_17e432
+ ld a, $3
+ ld [wcd77], a
+ ret
+; 17e438
+
+Function17e438: ; 17e438
+ ld hl, wcd77
+ inc [hl]
+ ret
+; 17e43d
+
+Function17e43d: ; 17e43d
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, bc
+ ret
+; 17e447
+
+Function17e447: ; 17e447
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, de
+ ret
+; 17e451
+
+Function17e451: ; 17e451
+ ld a, [wcd42]
+ and a
+ ret z
+ call Function17e51b
+ call Function17e4dd
+ ld a, [wcd2e]
+ push af
+ ld a, [wcd49]
+ ld l, a
+ ld a, [wcd4a]
+ ld h, a
+ ld a, [wcd2f]
+ ld [wcd2e], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ push hl
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [wcd23]
+ call AddNTimes
+ ld a, [CreditsTimer]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ ld a, [wMobileCommsJumptableIndex]
+.asm_17e48b
+ push af
+ push hl
+ ld a, [wcd24]
+.asm_17e490
+ push af
+ push hl
+ ld a, [bc]
+ inc bc
+ ld e, a
+ ld a, [bc]
+ inc bc
+ ld d, a
+ push bc
+ push hl
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, de
+ push hl
+ pop de
+ pop hl
+ call PlaceString
+ pop bc
+ pop hl
+ ld a, [wcd26]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [wcd2e]
+ inc a
+ ld [wcd2e], a
+ ld e, a
+ ld a, [wcd42]
+ cp e
+ jr z, .asm_17e4d5
+ pop af
+ dec a
+ jr nz, .asm_17e490
+ pop hl
+ ld a, [wcd27]
+ ld de, $14
+.asm_17e4cb
+ add hl, de
+ dec a
+ jr nz, .asm_17e4cb
+ pop af
+ dec a
+ jr nz, .asm_17e48b
+ jr .asm_17e4d8
+
+.asm_17e4d5
+ pop af
+ pop hl
+ pop af
+
+.asm_17e4d8
+ pop af
+ ld [wcd2e], a
+ ret
+; 17e4dd
+
+Function17e4dd: ; 17e4dd
+ ld a, [wcd2c]
+ and $1
+ ret z
+ ld a, [wcd29]
+ hlcoord 0, 0
+ ld bc, $14
+ call AddNTimes
+ ld a, [wcd28]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [wcd2f]
+ and a
+ jr z, .asm_17e4ff
+ ld a, $61
+ ld [hl], a
+
+.asm_17e4ff
+ ld a, [wcd2a]
+ ld bc, $14
+ call AddNTimes
+ ld a, [wcd42]
+ ld c, a
+ ld a, [wcd2e]
+ ld b, a
+ ld a, [wcd24]
+ add b
+ cp c
+ ret z
+ ret nc
+ ld a, $ee
+ ld [hl], a
+ ret
+; 17e51b
+
+Function17e51b: ; 17e51b
+ ld a, [wcd28]
+ ld hl, CreditsTimer
+ sub [hl]
+ inc a
+ ld [wcd4f], a
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [wcd23]
+ dec a
+ call AddNTimes
+ ld a, [CreditsTimer]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [wMobileCommsJumptableIndex]
+ ld c, a
+ ld a, [wcd27]
+ call SimpleMultiply
+.asm_17e544
+ push af
+ push hl
+ ld a, [wcd4f]
+ ld c, a
+ ld b, $0
+ ld a, $7f
+ call ByteFill
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_17e544
+ ret
+; 17e55b
+
+Function17e55b: ; 17e55b
+ ld a, [wcd42]
+ and a
+ ret z
+ ld a, $ed
+ call Function17e571
+ ret
+; 17e566
+
+Function17e566: ; 17e566
+ ld a, [wcd42]
+ and a
+ ret z
+ ld a, $7f
+ call Function17e571
+ ret
+; 17e571
+
+Function17e571: ; 17e571
+ push af
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [wcd23]
+ call AddNTimes
+ ld a, [CreditsTimer]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ dec hl
+ push hl
+ ld a, [wcd31]
+ dec a
+ ld c, a
+ ld a, [wcd27]
+ call SimpleMultiply
+ ld l, $0
+ ld h, l
+ ld bc, $14
+ call AddNTimes
+ ld a, [wcd30]
+ dec a
+ ld c, a
+ ld a, [wcd26]
+ call SimpleMultiply
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ add hl, bc
+ pop af
+ ld [hl], a
+ ret
+; 17e5af
+
+Function17e5af: ; 17e5af
+ ld a, [wcd2c]
+ and $2
+ ret z
+ ld a, [wcd43]
+ ld l, a
+ ld a, [wMobileInactivityTimerMinutes]
+ ld h, a
+ bccoord 0, 0
+ add hl, bc
+ ld bc, $ffec
+ add hl, bc
+ ld a, [wMobileInactivityTimerSeconds]
+ ld c, a
+ ld b, $0
+ ld a, [wMobileInactivityTimerFrames]
+ call Function17e600
+ ld a, [wcd2e]
+ ld c, a
+ ld b, $0
+ ld a, [wcd4d]
+ ld l, a
+ ld a, [wcd4e]
+ ld h, a
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, de
+ push hl
+ pop de
+ ld a, [wcd43]
+ ld l, a
+ ld a, [wMobileInactivityTimerMinutes]
+ ld h, a
+ bccoord 0, 0
+ add hl, bc
+ call PlaceString
+ ret
+; 17e600
+
+Function17e600: ; 17e600
+.asm_17e600
+ push af
+ push hl
+ push bc
+ ld a, $7f
+ call ByteFill
+ pop bc
+ pop hl
+ ld de, $14
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_17e600
+ ret
+; 17e613
+
+Function17e613: ; 17e613
+ push hl
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.asm_17e620
+ jr z, .asm_17e626
+ add hl, bc
+ dec a
+ jr .asm_17e620
+
+.asm_17e626
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ push hl
+ ld a, [wcd53]
+ ld [hli], a
+ ld a, [de]
+ inc de
+ dec a
+ dec a
+ jr z, .asm_17e63f
+ ld c, a
+ ld a, [wcd53]
+ inc a
+.asm_17e63b
+ ld [hli], a
+ dec c
+ jr nz, .asm_17e63b
+
+.asm_17e63f
+ ld a, [wcd53]
+ add $2
+ ld [hl], a
+ pop hl
+ ld bc, $14
+ add hl, bc
+ ld a, [de]
+ dec de
+ dec a
+ dec a
+ jr z, .asm_17e674
+ ld b, a
+.asm_17e651
+ push hl
+ ld a, [wcd53]
+ add $3
+ ld [hli], a
+ ld a, [de]
+ dec a
+ dec a
+ jr z, .asm_17e664
+ ld c, a
+ ld a, $7f
+.asm_17e660
+ ld [hli], a
+ dec c
+ jr nz, .asm_17e660
+
+.asm_17e664
+ ld a, [wcd53]
+ add $4
+ ld [hl], a
+ pop hl
+ push bc
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_17e651
+
+.asm_17e674
+ ld a, [wcd53]
+ add $5
+ ld [hli], a
+ ld a, [de]
+ dec a
+ dec a
+ jr z, .asm_17e689
+ ld c, a
+ ld a, [wcd53]
+ add $6
+.asm_17e685
+ ld [hli], a
+ dec c
+ jr nz, .asm_17e685
+
+.asm_17e689
+ ld a, [wcd53]
+ add $7
+ ld [hl], a
+ pop hl
+ ret
+; 17e691
+
+Function17e691: ; 17e691
+ push hl
+ ld hl, NULL
+ ld bc, $14
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ inc de
+ and a
+.asm_17e69f
+ jr z, .asm_17e6a5
+ add hl, bc
+ dec a
+ jr .asm_17e69f
+
+.asm_17e6a5
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ dec de
+.asm_17e6ac
+ push af
+ push hl
+ ld a, [de]
+.asm_17e6af
+ push af
+ push hl
+ push hl
+ bccoord 0, 0
+ add hl, bc
+ ld a, [hl]
+ cp $7f
+ jr z, .asm_17e6c2
+ ld a, [wcd53]
+ add $8
+ jr .asm_17e6c7
+
+.asm_17e6c2
+ ld a, [wcd53]
+ jr .asm_17e6c7
+
+.asm_17e6c7
+ pop hl
+ bccoord 0, 0, AttrMap
+ add hl, bc
+ ld [hl], a
+ pop hl
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_17e6af
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_17e6ac
+ pop hl
+ ret
+; 17e6de
+
+Function17e6de: ; 17e6de
+ push af
+ ld a, [$c708]
+ ld l, a
+ ld a, [$c709]
+ ld h, a
+ decoord 0, 0, AttrMap
+ add hl, de
+ pop af
+ ld b, $7
+.asm_17e6ee
+ push hl
+ ld c, $7
+.asm_17e6f1
+ ld [hli], a
+ dec c
+ jr nz, .asm_17e6f1
+ pop hl
+ ld de, $14
+ add hl, de
+ dec b
+ jr nz, .asm_17e6ee
+ ret
+; 17e6fe
+
+
+PokemonNewsGFX: ; 17e6fe
+INCBIN "gfx/mobile/pokemon_news.2bpp"
+
+GFX_17eb7e:
+INCBIN "gfx/unknown/17eb7e.2bpp"
+
+TileAttrmap_17eb8e:
+INCBIN "gfx/unknown/17eb8e.attrmap"
+
+Palette_17eff6:
+ RGB 24, 9, 8
+ RGB 4, 9, 18
+ RGB 18, 18, 12
+ RGB 0, 0, 0
+ RGB 24, 24, 18
+ RGB 18, 18, 12
+ RGB 4, 9, 18
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 23, 11, 10
+ RGB 13, 6, 5
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 15, 25, 5
+ RGB 10, 20, 0
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 28, 20
+ RGB 10, 18, 15
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 22, 22, 12
+ RGB 17, 12, 5
+ RGB 0, 0, 0
+ RGB 5, 5, 16
+ RGB 8, 19, 28
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 27, 24, 0
+ RGB 24, 16, 3
+ RGB 0, 0, 0
+
+
+Function17f036:: ; 17f036
+ ld a, $6
+ call GetSRAMBank
+ inc de
+.asm_17f03c
+ call Function17f047
+ jr c, .asm_17f043
+ jr .asm_17f03c
+
+.asm_17f043
+ call CloseSRAM
+ ret
+; 17f047
+
+Function17f047: ; 17f047
+ ld a, [de]
+ inc de
+ cp $50
+ jr z, .finished
+ cp $10
+ jr nc, .finished
+ dec a
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.finished
+ scf
+ ret
+; 17f061
+
+.Jumptable: ; 17f061
+ dw Function17f081 ; 0
+ dw Function17f0f8 ; 1
+ dw Function17f154 ; 2
+ dw Function17f181 ; 3
+ dw Function17f1d0 ; 4
+ dw Function17f220 ; 5
+ dw Function17f27b ; 6
+ dw Function17f2cb ; 7
+ dw Function17f2ff ; 8
+ dw Function17f334 ; 9
+ dw Function17f382 ; a
+ dw Function17f3c9 ; b
+ dw Function17f3f0 ; c
+ dw Function17f41d ; d
+ dw Function17f44f ; e
+ dw Function17f44f ; f
+; 17f081
+
+Function17f081: ; 17f081
+ pop hl
+ call Function17f524
+ jr c, .asm_17f09f
+ ld de, 4
+ add hl, de
+ ld a, [hli]
+ inc hl
+ inc hl
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f09d
+ and a
+ ret
+
+.asm_17f09d
+ scf
+ ret
+
+.asm_17f09f
+ push bc
+ ld de, wcd54
+ ld bc, 7
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ pop bc
+ ld a, [wcd54]
+ ld e, a
+ ld a, [wcd55]
+ ld d, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ push hl
+ ld a, [wcd56]
+ ld b, a
+ ld a, [wcd57]
+ ld c, a
+ call MobilePrintNum
+ ld a, l
+ ld [wcd52], a
+ ld a, h
+ ld [wcd53], a
+ ld a, [wcd59]
+ and a
+ jr z, .asm_17f0ee
+ ld c, a
+ ld a, [wcd57]
+ inc a
+ ld b, a
+ ld e, l
+ ld d, h
+ dec de
+.asm_17f0e0
+ ld a, c
+ cp b
+ jr z, .asm_17f0ea
+ ld a, [de]
+ dec de
+ ld [hld], a
+ dec b
+ jr .asm_17f0e0
+
+.asm_17f0ea
+ ld a, [wcd5a]
+ ld [hl], a
+
+.asm_17f0ee
+ pop hl
+ ld a, [wcd58]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f0f8
+
+Function17f0f8: ; 17f0f8
+ pop hl
+ call Function17f524
+ jr c, .asm_17f114
+ ld de, $3
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f112
+ and a
+ ret
+
+.asm_17f112
+ scf
+ ret
+
+.asm_17f114
+ push bc
+ ld de, wcd54
+ ld bc, $4
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ ld a, [wcd54]
+ ld e, a
+ ld a, [wcd55]
+ ld d, a
+ add hl, de
+ ld de, $c608
+ ld a, [wcd56]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ pop hl
+ ld de, $c608
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd57]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f154
+
+Function17f154: ; 17f154
+ pop hl
+ call Function17f524
+ jr c, .asm_17f167
+ inc hl
+ inc hl
+ ld e, l
+ ld d, h
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f165
+ and a
+ ret
+
+.asm_17f165
+ scf
+ ret
+
+.asm_17f167
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld c, l
+ ld b, h
+ pop de
+ callba Function11c08f
+ ld c, l
+ ld b, h
+ pop de
+ and a
+ ret
+; 17f181
+
+Function17f181: ; 17f181
+ pop hl
+ call Function17f524
+ jr c, .asm_17f19d
+ ld de, $2
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f19b
+ and a
+ ret
+
+.asm_17f19b
+ scf
+ ret
+
+.asm_17f19d
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld c, a
+ ld de, $c608
+ callba Function48c63
+ pop hl
+ ld de, $c608
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f1d0
+
+Function17f1d0: ; 17f1d0
+ pop hl
+ call Function17f524
+ jr c, .asm_17f1ec
+ ld de, $2
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f1ea
+ and a
+ ret
+
+.asm_17f1ea
+ scf
+ ret
+
+.asm_17f1ec
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld a, $1
+ ld [rSVBK], a
+ ld [wd265], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, $4
+ ld [rSVBK], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f220
+
+Function17f220: ; 17f220
+ pop hl
+ call Function17f524
+ jr c, .asm_17f23c
+ ld de, $2
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f23a
+ and a
+ ret
+
+.asm_17f23a
+ scf
+ ret
+
+.asm_17f23c
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld e, a
+ ld d, 0
+ ld hl, .Genders
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ pop hl
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f26e
+
+.Genders: dw .Boy, .Girl
+.Boy: db "Boy@"
+.Girl: db "Girl@"
+
+Function17f27b: ; 17f27b
+ pop hl
+ call Function17f524
+ jr c, .asm_17f297
+ ld de, $2
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f295
+ and a
+ ret
+
+.asm_17f295
+ scf
+ ret
+
+.asm_17f297
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld a, $1
+ ld [rSVBK], a
+ ld [wd265], a
+ call GetItemName
+ pop hl
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, $4
+ ld [rSVBK], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f2cb
+
+Function17f2cb: ; 17f2cb
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [wcd54], a
+ ld a, [hli]
+ ld [wcd55], a
+ ld a, [wcd2e]
+ inc a
+ ld [wcd56], a
+ pop bc
+ push hl
+ ld l, c
+ ld h, b
+ push hl
+ ld de, wcd56
+ ld b, $1
+ ld a, [wcd54]
+ ld c, a
+ call MobilePrintNum
+ ld a, l
+ ld [wcd52], a
+ ld a, h
+ ld [wcd53], a
+ pop hl
+ ld a, [wcd55]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f2ff
+
+Function17f2ff: ; 17f2ff
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, PlayerName
+ ld de, $c608
+ ld bc, $6
+ call CopyBytes
+ ld a, $4
+ ld [rSVBK], a
+ pop hl
+ ld de, $c608
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f334
+
+Function17f334: ; 17f334
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [wcd55], a
+ and $f
+ ld [wcd54], a
+ pop bc
+ push hl
+ ld l, c
+ ld h, b
+ push hl
+ ld a, [wcd55]
+ bit 7, a
+ jr nz, .asm_17f355
+ ld a, BANK(sCrystalData)
+ call GetSRAMBank
+ ld a, [sCrystalData + 2]
+ jr .asm_17f35d
+
+.asm_17f355
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2f3]
+
+.asm_17f35d
+ ld c, a
+ call CloseSRAM
+ ld de, $c608
+ callba Function48c63
+ pop hl
+ ld de, $c608
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f382
+
+Function17f382: ; 17f382
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [wcd55], a
+ and $f
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ ld l, c
+ ld h, b
+ ld a, [wcd55]
+ bit 7, a
+ jr nz, .asm_17f3a3
+ ld a, BANK(sCrystalData)
+ call GetSRAMBank
+ ld de, sCrystalData + 3
+ jr .asm_17f3ab
+
+.asm_17f3a3
+ ld a, $5
+ call GetSRAMBank
+ ld de, $b2f4
+
+.asm_17f3ab
+ ld a, PRINTNUM_LEADINGZEROS | 2
+ ld b, a
+ ld a, 3
+ ld c, a
+ call PrintNum
+ call CloseSRAM
+ ld a, l
+ ld [wcd52], a
+ ld a, h
+ ld [wcd53], a
+ pop hl
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f3c9
+
+Function17f3c9: ; 17f3c9
+ push bc
+ ld hl, wcd36
+ ld de, $c708
+ ld bc, 12
+ call CopyBytes
+ pop de
+ ld c, $0
+ callba Function11c075
+ push hl
+ ld hl, $c708
+ ld de, wcd36
+ ld bc, $c
+ call CopyBytes
+ pop bc
+ pop de
+ and a
+ ret
+; 17f3f0
+
+Function17f3f0: ; 17f3f0
+ pop hl
+ push hl
+ ld a, [hli]
+ push af
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [de]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld hl, UnknBGPals
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ call PlaceString
+ pop af
+ ld e, a
+ ld d, $0
+ pop hl
+ add hl, de
+ add hl, de
+ inc hl
+ inc hl
+ inc hl
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ scf
+ ret
+; 17f41d
+
+Function17f41d: ; 17f41d
+ pop hl
+ ld a, [hli]
+ push hl
+ push af
+ ld l, c
+ ld h, b
+ ld bc, -TileMap + $10000
+ add hl, bc
+ ld de, -SCREEN_WIDTH
+ ld c, $1
+.asm_17f42c
+ ld a, h
+ and a
+ jr nz, .asm_17f435
+ ld a, l
+ cp SCREEN_WIDTH
+ jr c, .asm_17f439
+
+.asm_17f435
+ add hl, de
+ inc c
+ jr .asm_17f42c
+
+.asm_17f439
+ hlcoord 0, 0
+ ld de, SCREEN_WIDTH
+ ld a, c
+.asm_17f440
+ and a
+ jr z, .asm_17f447
+ add hl, de
+ dec a
+ jr .asm_17f440
+
+.asm_17f447
+ pop af
+ ld e, a
+ ld d, 0
+ add hl, de
+ pop de
+ and a
+ ret
+; 17f44f
+
+Function17f44f: ; 17f44f
+ pop hl
+ call Function17f524
+ jr c, .asm_17f46d
+ ld de, $5
+ add hl, de
+ ld a, [hli]
+ inc hl
+ inc hl
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f46b
+ and a
+ ret
+
+.asm_17f46b
+ scf
+ ret
+
+.asm_17f46d
+ push bc
+ ld de, wcd54
+ ld bc, $8
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ ld a, [wcd56]
+ cp $c0
+ jr c, .asm_17f488
+ ld a, [wcd54]
+ ld [rSVBK], a
+ jr .asm_17f48e
+
+.asm_17f488
+ ld a, [wcd54]
+ call GetSRAMBank
+
+.asm_17f48e
+ ld a, [wcd55]
+ ld l, a
+ ld a, [wcd56]
+ ld h, a
+ ld de, $c608
+ ld a, [wcd57]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [wcd56]
+ cp $c0
+ jr c, .asm_17f4af
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17f4b7
+
+.asm_17f4af
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+
+.asm_17f4b7
+ ld de, $c608
+ pop hl
+ push hl
+ ld a, [wcd57]
+ ld b, a
+ ld a, [wcd58]
+ ld c, a
+ call MobilePrintNum
+ ld a, l
+ ld [wcd52], a
+ ld a, h
+ ld [wcd53], a
+ ld a, [wcd5a]
+ and a
+ jr z, .asm_17f4ec
+ ld c, a
+ ld a, [wcd58]
+ inc a
+ ld b, a
+ ld e, l
+ ld d, h
+ dec de
+.asm_17f4de
+ ld a, c
+ cp b
+ jr z, .asm_17f4e8
+ ld a, [de]
+ dec de
+ ld [hld], a
+ dec b
+ jr .asm_17f4de
+
+.asm_17f4e8
+ ld a, [wcd5b]
+ ld [hl], a
+
+.asm_17f4ec
+ pop hl
+ ld a, [wcd59]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f4f6
+
+Function17f4f6: ; 17f4f6
+ ld a, [wcd6a]
+ ld l, a
+ ld a, [wcd6b]
+ ld h, a
+ ld a, [wcd47]
+ ld c, a
+ ld a, [BGMapPalBuffer]
+ ld b, a
+ ld a, [wcd2e]
+.asm_17f509
+ and a
+ ret z
+ dec a
+ add hl, bc
+ jr .asm_17f509
+; 17f50f
+
+Function17f50f: ; 17f50f
+ and a
+ jr z, .asm_17f519
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld c, l
+ ld b, h
+ ret
+
+.asm_17f519
+ ld a, [wcd52]
+ ld c, a
+ ld l, a
+ ld a, [wcd53]
+ ld b, a
+ ld h, a
+ ret
+; 17f524
+
+Function17f524: ; 17f524
+ push hl
+ push bc
+ push de
+ ld a, [wcd42]
+ dec a
+ ld b, a
+ ld a, [wcd2e]
+ cp b
+ jr z, .asm_17f53a
+ ld hl, wcd68
+ cp [hl]
+.asm_17f536
+ pop de
+ pop bc
+ pop hl
+ ret
+
+.asm_17f53a
+ scf
+ jr .asm_17f536
+; 17f53d
+
+BattleTowerMobileError: ; 17f53d
+ call FadeToMenu
+ xor a
+ ld [wc303], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+
+ call DisplayMobileError
+
+ pop af
+ ld [rSVBK], a
+ call ExitAllMenus
+ ret
+; 17f555
+
+DisplayMobileError: ; 17f555
+.loop
+ call JoyTextDelay
+ call .RunJumptable
+ ld a, [wc303]
+ bit 7, a
+ jr nz, .quit
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ jr .loop
+
+.quit
+ call .deinit
+ ret
+
+.deinit
+ ld a, [wc300]
+ cp $22
+ jr z, .asm_17f597
+ cp $31
+ jr z, .asm_17f58a
+ cp $33
+ ret nz
+ ld a, [wc301]
+ cp $1
+ ret nz
+ ld a, [wc302]
+ cp $2
+ ret nz
+ jr .asm_17f5a1
+
+.asm_17f58a
+ ld a, [wc301]
+ cp $3
+ ret nz
+ ld a, [wc302]
+ and a
+ ret nz
+ jr .asm_17f5a1
+
+.asm_17f597
+ ld a, [wc301]
+ and a
+ ret nz
+ ld a, [wc302]
+ and a
+ ret nz
+
+.asm_17f5a1
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ xor a
+ ld [sMobileLoginPassword], a
+ call CloseSRAM
+ ret
+; 17f5ae
+
+.RunJumptable: ; 17f5ae
+ jumptable .Jumptable, wc303
+; 17f5bd
+
+.Jumptable: ; 17f5bd
+ dw Function17f5c3
+ dw Function17ff23
+ dw Function17f5d2
+; 17f5c3
+
+Function17f5c3: ; 17f5c3
+ call Function17f5e4
+ callba FinishExitMenu
+ ld a, $1
+ ld [wc303], a
+ ret
+; 17f5d2
+
+Function17f5d2: ; 17f5d2
+ call Function17f5e4
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ call SetPalettes
+ ld a, $1
+ ld [wc303], a
+ ret
+; 17f5e4
+
+Function17f5e4: ; 17f5e4
+ ld a, $8
+ ld [MusicFade], a
+ ld de, MUSIC_NONE
+ ld a, e
+ ld [MusicFadeID], a
+ ld a, d
+ ld [MusicFadeID + 1], a
+ ld a, " "
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ld a, $6
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ hlcoord 2, 1
+ ld b, $1
+ ld c, $e
+ call Function3eea
+ hlcoord 1, 4
+ ld b, $c
+ ld c, $10
+ call Function3eea
+ hlcoord 3, 2
+ ld de, String_17f6dc
+ call PlaceString
+ call Function17ff3c
+ jr nc, .asm_17f632
+ hlcoord 11, 2
+ call Function17f6b7
+
+.asm_17f632
+ ld a, [wc300]
+ cp $d0
+ jr nc, .asm_17f684
+ cp $10
+ jr c, .asm_17f679
+ sub $10
+ cp $24
+ jr nc, .asm_17f679
+ ld e, a
+ ld d, $0
+ ld hl, Table_17f706
+ add hl, de
+ add hl, de
+ ld a, [wc301]
+ ld e, a
+ ld a, [wc302]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld h, a
+ ld l, c
+ ld a, [hli]
+ and a
+ jr z, .asm_17f679
+ ld c, a
+.asm_17f65d
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_17f667
+ cp b
+ jr z, .asm_17f66e
+
+.asm_17f667
+ xor d
+ jr nz, .asm_17f674
+ ld a, b
+ xor e
+ jr nz, .asm_17f674
+
+.asm_17f66e
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ jr .asm_17f67d
+
+.asm_17f674
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_17f65d
+
+.asm_17f679
+ ld a, $d9
+ jr .asm_17f684
+
+.asm_17f67d
+ hlcoord 2, 6
+ call PlaceString
+ ret
+
+.asm_17f684
+ sub $d0
+ ld e, a
+ ld d, 0
+ ld hl, Table_17f699
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ hlcoord 2, 6
+ call PlaceString
+ ret
+; 17f699
+
+Table_17f699: ; 17f699
+ dw String_17fedf
+ dw String_17fdd9
+ dw String_17fdd9
+ dw String_17fe03
+ dw String_17fd84
+ dw String_17fe63
+ dw String_17fdb2
+ dw String_17fe4b
+ dw String_17fe03
+ dw String_17fe03
+ dw String_17fe03
+; 17f6af
+
+Palette_17f6af: ; 17f6af
+ RGB 5, 5, 16
+ RGB 8, 19, 28
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+; 17f6b7
+
+Function17f6b7: ; 17f6b7
+ ld a, [wc300]
+ call .bcd_two_digits
+ inc hl
+ ld a, [wc302]
+ and $f
+ call .bcd_digit
+ ld a, [wc301]
+ call .bcd_two_digits
+ ret
+; 17f6cd
+
+.bcd_two_digits ; 17f6cd
+ ld c, a
+ and $f0
+ swap a
+ call .bcd_digit
+ ld a, c
+ and $f
+
+.bcd_digit ; 17f6d8
+ add "0"
+ ld [hli], a
+ ret
+; 17f6dc
+
+String_17f6dc: ; 17f6dc
+ db "つうしんエラー ー@"
+; 17f6e8
+
+String_17f6e8: ; 17f6e8
+ db "みていぎ", $25, "エラーです"
+ next "プログラム", $1f
+ next "かくにん してください"
+ db "@"
+; 17f706
+
+Table_17f706:
+ dw Unknown_17f74e
+ dw Unknown_17f753
+ dw Unknown_17f758
+ dw Unknown_17f75d
+ dw Unknown_17f762
+ dw Unknown_17f767
+ dw Unknown_17f778
+ dw Unknown_17f77d
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f787
+ dw Unknown_17f78c
+ dw Unknown_17f791
+ dw Unknown_17f796
+ dw Unknown_17f79b
+ dw Unknown_17f7a0
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7ea
+ dw Unknown_17f7ff
+ dw Unknown_17f844
+
+Unknown_17f74e: db 1
+ dbbw $0, $0, String_17f891
+
+Unknown_17f753: db 1
+ dbbw $0, $0, String_17f8d1
+
+Unknown_17f758: db 1
+ dbbw $0, $0, String_17f913
+
+Unknown_17f75d: db 1
+ dbbw $0, $0, String_17f8d1
+
+Unknown_17f762: db 1
+ dbbw $0, $0, String_17fa71
+
+Unknown_17f767: db 4
+ dbbw $0, $0, String_17f946
+ dbbw $1, $0, String_17f946
+ dbbw $2, $0, String_17f946
+ dbbw $3, $0, String_17f946
+
+Unknown_17f778: db 1
+ dbbw $0, $0, String_17f98e
+
+Unknown_17f77d: db 1
+ dbbw $0, $0, String_17f98e
+
+Unknown_17f782: db 1
+ dbbw $0, $0, String_17f98e
+
+Unknown_17f787: db 1
+ dbbw $0, $0, String_17f98e
+
+Unknown_17f78c: db 1
+ dbbw $0, $0, String_17f9d0
+
+Unknown_17f791: db 1
+ dbbw $0, $0, String_17fa14
+
+Unknown_17f796: db 1
+ dbbw $0, $0, String_17fcbf
+
+Unknown_17f79b: db 1
+ dbbw $0, $0, String_17fa71
+
+Unknown_17f7a0: db 1
+ dbbw $0, $0, String_17fbfe
+
+Unknown_17f7a5: db 17
+ dbbw $0, $0, String_17f98e
+ dbbw $21, $2, String_17fcbf
+ dbbw $21, $4, String_17fcbf
+ dbbw $50, $4, String_17faf9
+ dbbw $51, $4, String_17fcbf
+ dbbw $52, $4, String_17fcbf
+ dbbw $0, $5, String_17f98e
+ dbbw $1, $5, String_17f98e
+ dbbw $2, $5, String_17f98e
+ dbbw $3, $5, String_17f98e
+ dbbw $4, $5, String_17f98e
+ dbbw $50, $5, String_17faf9
+ dbbw $51, $5, String_17faf9
+ dbbw $52, $5, String_17fcbf
+ dbbw $53, $5, String_17faf9
+ dbbw $54, $5, String_17fcbf
+ dbbw $ff, $ff, String_17fcbf
+
+Unknown_17f7ea: db 5
+ dbbw $0, $0, String_17f98e
+ dbbw $2, $0, String_17fb2a
+ dbbw $3, $0, String_17fb6e
+ dbbw $4, $0, String_17f98e
+ dbbw $ff, $ff, String_17fcbf
+
+Unknown_17f7ff: db 17
+ dbbw $0, $0, String_17f98e
+ dbbw $1, $3, String_17f98e
+ dbbw $2, $3, String_17f98e
+ dbbw $0, $4, String_17f98e
+ dbbw $1, $4, String_17f98e
+ dbbw $3, $4, String_17fbb6
+ dbbw $4, $4, String_17fbb6
+ dbbw $5, $4, String_17f98e
+ dbbw $6, $4, String_17f98e
+ dbbw $7, $4, String_17f98e
+ dbbw $8, $4, String_17fbfe
+ dbbw $0, $5, String_17fa49
+ dbbw $1, $5, String_17f98e
+ dbbw $2, $5, String_17fa49
+ dbbw $3, $5, String_17fab0
+ dbbw $4, $5, String_17fa49
+ dbbw $ff, $ff, String_17fa49
+
+Unknown_17f844: db 19
+ dbbw $1, $1, String_17fc3e
+ dbbw $2, $1, String_17fc88
+ dbbw $3, $1, String_17fcff
+ dbbw $4, $1, String_17fd84
+ dbbw $5, $1, String_17fd84
+ dbbw $6, $1, String_17fd47
+ dbbw $1, $2, String_17fb6e
+ dbbw $2, $2, String_17f98e
+ dbbw $3, $2, String_17fd84
+ dbbw $4, $2, String_17f98e
+ dbbw $5, $2, String_17fa49
+ dbbw $6, $2, String_17fd84
+ dbbw $99, $2, String_17fc88
+ dbbw $1, $3, String_17fa49
+ dbbw $1, $4, String_17fa49
+ dbbw $2, $4, String_17fa49
+ dbbw $3, $4, String_17fa49
+ dbbw $4, $4, String_17fa49
+ dbbw $ff, $ff, String_17fa49
+
+String_17f891: ; 17f891
+ db "モバイルアダプタが ただしく"
+ next "さしこまれていません"
+ next "とりあつかいせつめいしょを"
+ next "ごらんのうえ しっかりと"
+ next "さしこんで ください"
+ db "@"
+
+String_17f8d1: ; 17f8d1
+ db "でんわが うまく かけられないか"
+ next "でんわかいせんが こんでいるので"
+ next "つうしん できません"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17f913: ; 17f913
+ db "でんわかいせんが こんでいるため"
+ next "でんわが かけられません"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17f946: ; 17f946
+ db "モバイルアダプタの エラーです"
+ next "しばらく まって"
+ next "かけなおして ください"
+ next "なおらない ときは"
+ next "モバイルサポートセンターへ"
+ next "おといあわせください"
+ db "@"
+
+String_17f98e: ; 17f98e
+ db "つうしんエラーです"
+ next "しばらく まって"
+ next "かけなおして ください"
+ next "なおらない ときは"
+ next "モバイルサポートセンターへ"
+ next "おといあわせください"
+ db "@"
+
+String_17f9d0: ; 17f9d0
+ db "ログインパスワードか"
+ next "ログイン アイディーに"
+ next "まちがいがあります"
+ next "パスワードを かくにんして"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fa14: ; 17fa14
+ db "でんわが きれました"
+ next "とりあつかいせつめいしょを"
+ next "ごらんのうえ"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fa49: ; 17fa49
+ db "モバイルセンターの"
+ next "つうしんエラーです"
+ next "しばらくまって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fa71: ; 17fa71
+ db "モバイルアダプタに"
+ next "とうろくされた じょうほうが"
+ next "ただしく ありません"
+ next "モバイルトレーナーで"
+ next "しょきとうろくを してください"
+ db "@"
+
+String_17fab0: ; 17fab0
+ db "モバイルセンターが"
+ next "こんでいて つながりません"
+ next "しばらくまって"
+ next "かけなおして ください"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17faf9: ; 17faf9
+ db "あてさき メールアドレスに"
+ next "まちがいがあります"
+ next "ただしい メールアドレスを"
+ next "いれなおしてください"
+ db "@"
+
+String_17fb2a: ; 17fb2a
+ db "メールアドレスに"
+ next "まちがいが あります"
+ next "とりあつかいせつめいしょを"
+ next "ごらんのうえ"
+ next "モバイルトレーナーで"
+ next "しょきとうろくを してください"
+ db "@"
+
+String_17fb6e: ; 17fb6e
+ db "ログインパスワードに"
+ next "まちがいが あるか"
+ next "モバイルセンターの エラーです"
+ next "パスワードを かくにんして"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fbb6: ; 17fbb6
+ db "データの よみこみが できません"
+ next "しばらくまって"
+ next "かけなおして ください"
+ next "なおらない ときは"
+ next "モバイルサポートセンターへ"
+ next "おといあわせください"
+ db "@"
+
+String_17fbfe: ; 17fbfe
+ db "じかんぎれです"
+ next "でんわが きれました"
+ next "でんわを かけなおしてください"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fc3e: ; 17fc3e
+ db "ごりよう りょうきんの "
+ next "おしはらいが おくれたばあいには"
+ next "ごりようが できなくなります"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fc88: ; 17fc88
+ db "おきゃくさまの ごつごうにより"
+ next "ごりようできません"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fcbf: ; 17fcbf
+ db "でんわかいせんが こんでいるか"
+ next "モバイルセンターの エラーで"
+ next "つうしんが できません"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fcff: ; 17fcff
+ db "ごりよう りょうきんが"
+ next "じょうげんを こえているため"
+ next "こんげつは ごりようできません"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fd47: ; 17fd47
+ db "げんざい モバイルセンターの"
+ next "てんけんを しているので"
+ next "つうしんが できません"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fd84: ; 17fd84
+ db "データの よみこみが できません"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+
+String_17fdb2: ; 17fdb2
+ db "3ぷん いじょう なにも"
+ next "にゅうりょく しなかったので"
+ next "でんわが きれました"
+ db "@"
+
+String_17fdd9: ; 17fdd9
+ db "つうしんが うまく"
+ next "できませんでした"
+ next "もういちど はじめから"
+ next "やりなおしてください"
+ db "@"
+
+String_17fe03: ; 17fe03
+ db "データの よみこみが できません"
+ next "しばらくまって"
+ next "かけなおして ください"
+ next "なおらない ときは"
+ next "モバイルサポートセンターへ"
+ next "おといあわせください"
+ db "@"
+
+String_17fe4b: ; 17fe4b
+ db "まちじかんが ながいので"
+ next "でんわが きれました"
+ db "@"
+
+String_17fe63: ; 17fe63
+ db "あいての モバイルアダプタと"
+ next "タイプが ちがいます"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fe9a: ; 17fe9a ; unreferenced
+ db "ポケモンニュースが"
+ next "あたらしくなっているので"
+ next "レポートを おくれません"
+ next "あたらしい ポケモンニュースの"
+ next "よみこみを さきに してください"
+ db "@"
+
+String_17fedf: ; 17fedf
+ db "つうしんの じょうきょうが"
+ next "よくないか かけるあいてが"
+ next "まちがっています"
+ next "もういちど かくにんをして"
+ next "でんわを かけなおして ください"
+ db "@"
+; 17ff23
+
+Function17ff23: ; 17ff23
+ ld a, [hJoyPressed]
+ and a
+ ret z
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [wMapMusic]
+ ld [MusicFadeID], a
+ xor a
+ ld [MusicFadeID + 1], a
+ ld hl, wc303
+ set 7, [hl]
+ ret
+; 17ff3c
+
+Function17ff3c: ; 17ff3c
+ nop
+ ld a, [wc300]
+ cp $d0
+ ret c
+ hlcoord 10, 2
+ ld de, String_17ff68
+ call PlaceString
+ ld a, [wc300]
+ push af
+ sub $d0
+ inc a
+ ld [wc300], a
+ hlcoord 14, 2
+ ld de, wc300
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ pop af
+ ld [wc300], a
+ and a
+ ret
+; 17ff68
+
+String_17ff68: ; 17ff68
+ db "101@"
+; 17ff6c
--- /dev/null
+++ b/mobile/mobile_menu.asm
@@ -1,0 +1,879 @@
+MainMenu_Mobile: ; 49efc
+ call ClearBGPalettes
+ ld a, MUSIC_MOBILE_ADAPTER_MENU
+ ld [wMapMusic], a
+ ld de, MUSIC_MOBILE_ADAPTER_MENU
+ call Function4a6c5
+Function49f0a: ; 49f0a
+ call ClearBGPalettes
+ call Function4a3a7
+ call Function4a492
+ call ClearBGPalettes
+Function49f16: ; 49f16
+ call MobileMenu_InitMenuBuffers
+ ld c, 12
+ call DelayFrames
+ hlcoord 4, 0
+ ld b, 10
+ ld c, 10
+ call Function48cdc
+ hlcoord 6, 2
+ ld de, MobileString1
+ call PlaceString
+ hlcoord 0, 12
+ ld b, 4
+ ld c, SCREEN_HEIGHT
+ call TextBox
+ xor a
+ ld de, String_0x49fe9
+ hlcoord 1, 14
+ call PlaceString
+ call WaitBGMap2
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr .check_buttons
+
+.joy_loop
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+.check_buttons
+ bit A_BUTTON_F, a
+ jr nz, .a_button
+ bit B_BUTTON_F, a
+ jr nz, .b_button
+ jr .next
+
+.a_button
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp 1
+ jp z, Function4a098
+ cp 2
+ jp z, Function4a0b9
+ cp 3
+ jp z, Function4a0c2
+ cp 4
+ jp z, Function4a100
+ ld a, 1
+ call MenuClickSound
+.b_button
+ pop bc
+ call ClearBGPalettes
+ call ClearTileMap
+ ld a, MUSIC_MAIN_MENU
+ ld [wMapMusic], a
+ ld de, MUSIC_MAIN_MENU
+ call Function4a6c5
+ ret
+
+.next
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ ld hl, MobileStrings2
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, 4
+ ld c, SCREEN_HEIGHT
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ jp .useless_jump
+
+.useless_jump
+ call MobileMenu_InitMenuBuffers
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ hlcoord 5, 1
+ call ClearBox
+ jp .joy_loop
+; 49fcc
+
+
+MobileString1: ; 49fcc
+ db "めいしフ,ルダー"
+ next "あいさつ"
+ next "プロフィール"
+ next "せ", $1e, "い"
+ next "もどる"
+ db "@"
+; 49fe9
+
+
+MobileStrings2:
+
+String_0x49fe9: ; 49fe9
+ db "めいし¯つくったり"
+ next "ほぞんしておける フ,ルダーです@"
+; 4a004
+
+String_0x4a004: ; 4a004
+ db "モバイルたいせんや じぶんのめいしで"
+ next "つかう あいさつ¯つくります@"
+; 4a026
+
+String_0x4a026: ; 4a026
+ db "あなた%じゅうしょや ねんれいの"
+ next "せ", $1e, "い¯かえられます@"
+; 4a042
+
+String_0x4a042: ; 4a042
+ db "モバイルセンター", $1d, "せつぞくするとき"
+ next "ひつような こと¯きめます@"
+; 4a062
+
+String_0x4a062: ; 4a062
+ db "まえ%がめん ", $1d, "もどります"
+ next "@"
+; 4a071
+
+MobileMenu_InitMenuBuffers: ; 4a071 (12:6071)
+ ld hl, w2DMenuCursorInitY
+ ld a, 2
+ ld [hli], a
+ ld a, 5 ; w2DMenuCursorInitX
+ ld [hli], a
+ ld a, 5 ; w2DMenuNumRows
+ ld [hli], a
+ ld a, 1 ; w2DMenuNumCols
+ ld [hli], a
+ ld [hl], $0 ; w2DMenuFlags1
+ set 5, [hl]
+ inc hl
+ xor a ; w2DMenuFlags2
+ ld [hli], a
+ ld a, $20 ; w2DMenuCursorOffsets
+ ld [hli], a
+ ; this is a stupid way to load $c3
+ ld a, A_BUTTON
+ add D_UP
+ add D_DOWN
+ add B_BUTTON
+ ld [hli], a ; wMenuJoypadFilter
+ ld a, 1
+ ld [hli], a ; wMenuCursorY, wMenuCursorX
+ ld [hli], a ; wMenuCursorY, wMenuCursorX
+ ret
+
+Function4a098: ; 4a098 (12:6098)
+ ld a, 2
+ call MenuClickSound
+ call PlaceHollowCursor
+ call WaitBGMap
+ call LoadStandardMenuDataHeader
+ callba Function89de0
+ call Call_ExitMenu
+ call MG_Mobile_Layout_LoadPals
+ call Function4a485
+ pop bc
+ jp Function49f16
+
+Function4a0b9: ; 4a0b9 (12:60b9)
+ ld a, 2
+ call MenuClickSound
+ pop bc
+ jp Function4a4c4
+
+Function4a0c2: ; 4a0c2 (12:60c2)
+ ld a, 2
+ call MenuClickSound
+ ld a, BANK(sPlayerData)
+ call GetSRAMBank
+ ld hl, sPlayerData + PlayerName - wPlayerData
+ ld de, PlayerName
+ ld bc, NAME_LENGTH_JAPANESE
+ call CopyBytes
+ call CloseSRAM
+ callba _LoadData
+ ld c, 2
+ call DelayFrames
+ ld c, $1
+ call InitMobileProfile
+ push af
+ call ClearBGPalettes
+ pop af
+ and a
+ jr nz, .skip_save
+ callba _SaveData
+.skip_save
+ ld c, 5
+ call DelayFrames
+ jr asm_4a111
+
+Function4a100: ; 4a100 (12:6100)
+ ld a, 2
+ call MenuClickSound
+ call ClearBGPalettes
+ call Function4a13b
+ call ClearBGPalettes
+ call ClearTileMap
+
+asm_4a111: ; 4a111 (12:6111)
+ pop bc
+ call LoadFontsExtra
+ jp Function49f0a
+
+Function4a118: ; 4a118 (12:6118)
+ ld hl, w2DMenuCursorInitY
+ ld a, $1
+ ld [hli], a
+ ld a, $d
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $2
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hli], a
+ ret
+
+Function4a13b: ; 4a13b (12:613b)
+ call Function4a3a7
+ call Function4a492
+ call Function4a373
+ ld c, 10
+ call DelayFrames
+
+Function4a149: ; 4a149 (12:6149)
+ hlcoord 1, 2
+ ld b, $6
+ ld c, $10
+ call Function48cdc
+ hlcoord 3, 4
+ ld de, String_4a1ef
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld a, [wMenuCursorY]
+ dec a
+ ld hl, Strings_4a23d
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr asm_4a19d
+
+Function4a195: ; 4a195 (12:6195)
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+asm_4a19d: ; 4a19d (12:619d)
+ bit 0, a
+ jr nz, .asm_4a1a7
+ bit 1, a
+ jr nz, .asm_4a1ba
+ jr .asm_4a1bc
+.asm_4a1a7
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp $1
+ jp z, Function4a20e
+ cp $2
+ jp z, Function4a221
+ ld a, $1
+ call MenuClickSound
+.asm_4a1ba
+ pop bc
+ ret
+.asm_4a1bc
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ ld hl, Strings_4a23d
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ jr .asm_4a1db
+.asm_4a1db
+ call Function4a373
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ lb bc, 6, 1
+ hlcoord 2, 3
+ call ClearBox
+ jp Function4a195
+; 4a1ef (12:61ef)
+
+String_4a1ef: ; 4a1ef
+ db "モバイルセンター¯えらぶ"
+ next "ログインパスワード¯いれる"
+ next "もどる@"
+; 4a20e
+
+Function4a20e: ; 4a20e (12:620e)
+ ld a, $1
+ call MenuClickSound
+ callba Function1719c8
+ call ClearBGPalettes
+ call DelayFrame
+ jr Function4a239
+
+Function4a221: ; 4a221 (12:6221)
+ ld a, $1
+ call MenuClickSound
+ call Function4a28a
+ jr c, Function4a239
+ call Function4a373
+ ld a, $2
+ ld [wMenuCursorY], a
+ jr .asm_4a235
+.asm_4a235
+ pop bc
+ jp Function4a149
+
+Function4a239: ; 4a239 (12:6239)
+ pop bc
+ jp Function4a13b
+; 4a23d (12:623d)
+
+Strings_4a23d: ; 4a23d
+ db "いつも せつぞく¯する"
+ next "モバイルセンター¯えらびます@"
+
+ db "モバイルセンター", $1d, "せつぞくするとき"
+ next "つかうパスワード¯ほぞんできます@"
+
+ db "まえ%がめん ", $1d, "もどります@"
+
+ db "@"
+; 4a28a
+
+Function4a28a: ; 4a28a (12:628a)
+ hlcoord 2, 3
+ lb bc, 6, 1
+ ld a, " "
+ call Function4a6d8
+ call PlaceHollowCursor
+ call WaitBGMap
+ call LoadStandardMenuDataHeader
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa4b]
+ call CloseSRAM
+ and a
+ jr z, .asm_4a2df
+ hlcoord 12, 0
+ ld b, $5
+ ld c, $6
+ call Function48cdc
+ hlcoord 14, 1
+ ld de, String_4a34b
+ call PlaceString
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ call Function4a118
+ call ScrollingMenuJoypad
+ push af
+ call PlayClickSFX
+ pop af
+ bit B_BUTTON_F, a
+ jr nz, .quit
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .DeleteLoginPassword
+ cp $3
+ jr z, .quit
+.asm_4a2df
+ callba Function11765d
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call LoadFontsExtra
+ scf
+ ret
+
+.DeleteLoginPassword:
+ call PlaceHollowCursor
+ ld hl, UnknownText_0x4a358
+ call PrintText
+ hlcoord 14, 7
+ ld b, 3
+ ld c, 4
+ call TextBox
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ ld hl, DeletePassword_YesNo_MenuDataHeader
+ call LoadMenuDataHeader
+ call VerticalMenu
+ bit B_BUTTON_F, a
+ jr nz, .dont_delete_password
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .dont_delete_password
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ ld hl, sMobileLoginPassword
+ xor a
+ ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
+ call ByteFill
+ call CloseSRAM
+ ld hl, UnknownText_0x4a35d
+ call PrintText
+ call JoyWaitAorB
+.dont_delete_password
+ call ExitMenu
+.quit
+ call Call_ExitMenu
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ xor a
+ ret
+; 4a346 (12:6346)
+
+MenuDataHeader_0x4a346: ; 0x4a346
+ db $40 ; flags
+ db 00, 12 ; start coords
+ db 06, 19 ; end coords
+
+String_4a34b: ; 4a34b
+ db "いれなおす"
+ next "けす"
+ next "もどる@"
+; 4a358
+
+UnknownText_0x4a358: ; 0x4a358
+ ; Delete the saved LOG-IN PASSWORD?
+ text_jump UnknownText_0x1c5196
+ db "@"
+; 0x4a35d
+
+UnknownText_0x4a35d: ; 0x4a35d
+ ; Deleted the LOG-IN PASSWORD.
+ text_jump UnknownText_0x1c51b9
+ db "@"
+; 0x4a362
+
+DeletePassword_YesNo_MenuDataHeader: ; 0x4a362
+ db $40 ; flags
+ db 07, 14 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_0x4a36a
+ db 2 ; default option
+; 0x4a36a
+
+MenuData2_0x4a36a: ; 0x4a36a
+ db $e0 ; flags
+ db 2 ; items
+ db "はい@"
+ db "いいえ@"
+; 0x4a373
+
+Function4a373: ; 4a373 (12:6373)
+ ld hl, w2DMenuCursorInitY
+ ld a, $4
+ ld [hli], a
+ ld a, $2
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hli], a
+ ret
+; 4a39a (12:639a)
+
+Function4a39a: ; 4a39a
+ call Function4a485
+ call Function4a492
+ call Function4a3aa
+ call SetPalettes
+ ret
+; 4a3a7
+
+Function4a3a7: ; 4a3a7 (12:63a7)
+ call Function4a485
+Function4a3aa: ; 4a3aa
+ hlcoord 0, 0
+ lb bc, 3, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 4, 1
+ ld a, $2
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $3
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, " "
+ call Function4a6d8
+ hlcoord 1, 0
+ ld a, $1
+ lb bc, 3, 18
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $0
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $2
+ call Function4a6d8
+ lb bc, 11, 18
+ ld a, " "
+ call Function4a6d8
+ hlcoord 19, 0
+ lb bc, 3, 1
+ ld a, $0
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 4, 1
+ ld a, $2
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $3
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, " "
+ call Function4a6d8
+ ret
+; 4a449 (12:6449)
+
+Function4a449: ; 4a449
+ ld bc, 3 * SCREEN_WIDTH
+ ld a, $0
+ hlcoord 0, 0
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $1
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $0
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $1
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, $2
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, $3
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ret
+; 4a485
+
+Function4a485: ; 4a485 (12:6485)
+ ld de, GFX_49c0c
+ ld hl, VTiles2 tile $00
+ lb bc, BANK(GFX_49c0c), 13
+ call Get2bpp
+ ret
+
+Function4a492: ; 4a492 (12:6492)
+ call MG_Mobile_Layout00
+ ret
+
+
+MainMenu_MobileStudium: ; 4a496
+ ld a, [StartDay]
+ ld b, a
+ ld a, [StartHour]
+ ld c, a
+ ld a, [StartMinute]
+ ld d, a
+ ld a, [StartSecond]
+ ld e, a
+ push bc
+ push de
+ callba MobileStudium
+ call ClearBGPalettes
+ pop de
+ pop bc
+ ld a, b
+ ld [StartDay], a
+ ld a, c
+ ld [StartHour], a
+ ld a, d
+ ld [StartMinute], a
+ ld a, e
+ ld [StartSecond], a
+ ret
+; 4a4c4
+
+
+Function4a4c4: ; 4a4c4 (12:64c4)
+ call ClearBGPalettes
+ call Function4a3a7
+ call Function4a492
+ call Function4a680
+ call ClearBGPalettes
+ ld c, 20
+ call DelayFrames
+ hlcoord 2, 0
+ ld b, $a
+ ld c, $e
+ call Function48cdc
+ hlcoord 4, 2
+ ld de, String_4a5c5
+ call PlaceString
+ hlcoord 4, 4
+ ld de, String_4a5cd
+ call PlaceString
+ hlcoord 4, 6
+ ld de, String_4a5da
+ call PlaceString
+ hlcoord 4, 8
+ ld de, String_4a5e6
+ call PlaceString
+ hlcoord 4, 10
+ ld de, String_4a5f2
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ xor a
+ ld hl, Strings_4a5f6
+ ld d, h
+ ld e, l
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $1
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ call WaitBGMap2
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr asm_4a54d
+
+Function4a545: ; 4a545 (12:6545)
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+asm_4a54d: ; 4a54d (12:654d)
+ bit 0, a
+ jr nz, .asm_4a557
+ bit 1, a
+ jr nz, .asm_4a574
+ jr .asm_4a57e
+.asm_4a557
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp $1
+ jp z, Function4a6ab
+ cp $2
+ jp z, Function4a6ab
+ cp $3
+ jp z, Function4a6ab
+ cp $4
+ jp z, Function4a6ab
+ ld a, $1
+ call MenuClickSound
+.asm_4a574
+ pop bc
+ call ClearBGPalettes
+ call ClearTileMap
+ jp Function49f0a
+.asm_4a57e
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ add a
+ push af
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ pop af
+ inc a
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ jp Function4a5b0
+
+Function4a5b0: ; 4a5b0 (12:65b0)
+ call Function4a680
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ hlcoord 3, 1
+ call ClearBox
+ jp Function4a545
+; 4a5c5 (12:65c5)
+
+String_4a5c5: ; 4a5c5
+ db "じこしょうかい@"
+String_4a5cd: ; 4a5cd
+ db "たいせん ", $4a, "はじまるとき@"
+String_4a5da: ; 4a5da
+ db "たいせん ", $1d, "かったとき@"
+String_4a5e6: ; 4a5e6
+ db "たいせん ", $1d, "まけたとき@"
+String_4a5f2: ; 4a5f2
+ db "もどる@"
+; 4a5f6
+
+Strings_4a5f6: ; 4a5f6
+ db "めいし や ニュース ", $1d, "のせる@"
+ db "あなた%あいさつです@"
+ db "モバイル たいせん", $4a, "はじまるとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "モバイル たいせんで かったとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "モバイル たいせんで まけたとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "まえ%がめん ", $1d, "もどります@"
+ db "@"
+; 4a680
+
+Function4a680: ; 4a680 (12:6680)
+ ld hl, w2DMenuCursorInitY
+ ld a, $2
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $5
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ret
+
+Function4a6ab: ; 4a6ab (12:66ab)
+ ld a, $2
+ call MenuClickSound
+ call ClearBGPalettes
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ callba Function11c1ab
+ pop bc
+ call LoadFontsExtra
+ jp Function4a4c4
+
+Function4a6c5: ; 4a6c5 (12:66c5)
+ ld a, $5
+ ld [MusicFade], a
+ ld a, e
+ ld [MusicFadeID], a
+ ld a, d
+ ld [MusicFadeID + 1], a
+ ld c, 22
+ call DelayFrames
+ ret
+
+Function4a6d8: ; 4a6d8 (12:66d8)
+ push bc
+ push hl
+.asm_4a6da
+ ld [hli], a
+ dec c
+ jr nz, .asm_4a6da
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, Function4a6d8
+ ret
--- /dev/null
+++ b/mobile/news/news.asm
@@ -1,0 +1,44 @@
+; http://forums.glitchcity.info/index.php?topic=7509.msg206449#msg206449
+
+ db $cc, $6b, $1e ; XXX
+
+Function1f4003: ; 1f4003
+; XXX
+ ld a, $6
+ call GetSRAMBank
+ ld hl, .news_data
+ ld de, $a000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+.news_data
+INCBIN "mobile/news/news_1.bin"
+
+Function1f4dbe: ; 1f4dbe
+; XXX
+ ld a, $6
+ call GetSRAMBank
+ ld hl, .news_data
+ ld de, $a000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+.news_data
+INCBIN "mobile/news/news_2.bin"
+
+Function1f5d9f: ; 1f5d9f
+ ld a, $6
+ call GetSRAMBank
+ ld hl, .news_data
+ ld de, $a000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+.news_data
+INCBIN "mobile/news/news_3.bin"
binary files /dev/null b/mobile/news/news_1.bin differ
binary files /dev/null b/mobile/news/news_2.bin differ
binary files /dev/null b/mobile/news/news_3.bin differ
--- /dev/null
+++ b/mobile/print_opp_message.asm
@@ -1,0 +1,30 @@
+Mobile_PrintOpponentBattleMessage: ; 4ea0a
+ ld a, c
+ push af
+ call SpeechTextBox
+ call MobileTextBorder
+ pop af
+ dec a
+ ld bc, $c
+ ld hl, w5_MobileOpponentBattleMessages
+ call AddNTimes
+ ld de, wMobileOpponentBattleMessage
+ ld bc, $c
+ ld a, $5 ; BANK(w5_MobileOpponentBattleMessages)
+ call FarCopyWRAM
+
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+
+ ld bc, wMobileOpponentBattleMessage
+ decoord 1, 14
+ callba PrintEZChatBattleMessage
+
+ pop af
+ ld [rSVBK], a
+
+ ld c, 180
+ call DelayFrames
+ ret
binary files /dev/null b/mobile/stadium/stadium2_1.bin differ
binary files /dev/null b/mobile/stadium/stadium2_2.bin differ
--- a/pokecrystal.link
+++ b/pokecrystal.link
@@ -173,7 +173,6 @@
"bank40_3"
ROMX $41
"bank41"
- "bank41_2"
ROMX $42
"mobile_42"
"Intro Logo"
@@ -243,7 +242,7 @@
"bank5E"
"Songs 5"
"Crystal Sound Effects"
- "Misc Crystal"
+ "mobile_5e"
ROMX $5f
"bank5F"
ROMX $60
@@ -301,13 +300,13 @@
ROMX $7c
"Battle Tower Trainer Data"
ROMX $7d
- "bank7D"
+ "Mobile News Data"
ROMX $7e
"bank7E"
ROMX $7f
"bank7F"
org $7de0
- "stadium2"
+ "Mobile Stadium 2"
WRAM0
"Stack"
"Audio RAM"
--- a/predef/cgb.asm
+++ /dev/null
@@ -1,1127 +1,0 @@
-; Replaces the functionality of sgb.asm to work with CGB hardware.
-
-CheckCGB: ; 8d55
- ld a, [hCGB]
- and a
- ret
-; 8d59
-
-Predef_LoadSGBLayoutCGB: ; 8d59
- ld a, b
- cp SCGB_RAM
- jr nz, .not_ram
- ld a, [SGBPredef]
-.not_ram
- cp SCGB_PARTY_MENU_HP_PALS
- jp z, CGB_ApplyPartyMenuHPPals
- call ResetBGPals
- ld l, a
- ld h, 0
- add hl, hl
- ld de, .dw
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .ReturnFromJumpTable
- push de
- jp hl
-; 8d79
-
-.ReturnFromJumpTable: ; 8d79
- ret
-; 8d7a
-
-.dw ; 8d7a
- dw _CGB_BattleGrayscale
- dw _CGB_BattleColors
- dw _CGB_PokegearPals
- dw _CGB_StatsScreenHPPals
- dw _CGB_Pokedex
- dw _CGB_SlotMachine
- dw _CGB06
- dw _CGB07
- dw _CGB_Diploma
- dw _CGB_MapPals
- dw _CGB_PartyMenu
- dw _CGB_Evolution
- dw _CGB0c
- dw _CGB0d
- dw _CGB_MoveList
- dw _CGB0f
- dw _CGB_PokedexSearchOption
- dw _CGB11
- dw _CGB_Pokepic
- dw _CGB13
- dw _CGB_PackPals
- dw _CGB_TrainerCard
- dw _CGB_PokedexUnownMode
- dw _CGB_BillsPC
- dw _CGB_UnownPuzzle
- dw _CGB_GamefreakLogo ; called before copyright
- dw _CGB_PlayerOrMonFrontpicPals
- dw _CGB_TradeTube
- dw _CGB_TrainerOrMonFrontpicPals
- dw _CGB_MysteryGift
- dw _CGB1e
-; 8db8
-
-_CGB_BattleGrayscale: ; 8db8
- ld hl, PalPacket_9c66 + 1
- ld de, UnknBGPals
- ld c, 4
- call CopyPalettes
- ld hl, PalPacket_9c66 + 1
- ld de, UnknBGPals palette PAL_BATTLE_BG_EXP
- ld c, 4
- call CopyPalettes
- ld hl, PalPacket_9c66 + 1
- ld de, UnknOBPals
- ld c, 2
- call CopyPalettes
- jr _CGB_FinishBattleScreenLayout
-
-_CGB_BattleColors: ; 8ddb
- ld de, UnknBGPals
- call GetBattlemonBackpicPalettePointer
- push hl
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER
- call GetEnemyFrontpicPalettePointer
- push hl
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY
- ld a, [EnemyHPPal]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, Palettes_a8be
- add hl, bc
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY_HP
- ld a, [PlayerHPPal]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, Palettes_a8be
- add hl, bc
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER_HP
- ld hl, Palettes_a8ca
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_EXP
- ld de, UnknOBPals
- pop hl
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_ENEMY
- pop hl
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_PLAYER
- ld a, SCGB_BATTLE_COLORS
- ld [SGBPredef], a
- call ApplyPals
-_CGB_FinishBattleScreenLayout: ; 8e23
- call InitPartyMenuBGPal7
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, PAL_BATTLE_BG_ENEMY_HP
- call ByteFill
- hlcoord 0, 4, AttrMap
- lb bc, 8, 10
- ld a, PAL_BATTLE_BG_PLAYER
- call FillBoxCGB
- hlcoord 10, 0, AttrMap
- lb bc, 7, 10
- ld a, PAL_BATTLE_BG_ENEMY
- call FillBoxCGB
- hlcoord 0, 0, AttrMap
- lb bc, 4, 10
- ld a, PAL_BATTLE_BG_ENEMY_HP
- call FillBoxCGB
- hlcoord 10, 7, AttrMap
- lb bc, 5, 10
- ld a, PAL_BATTLE_BG_PLAYER_HP
- call FillBoxCGB
- hlcoord 10, 11, AttrMap
- lb bc, 1, 9
- ld a, PAL_BATTLE_BG_EXP
- call FillBoxCGB
- hlcoord 0, 12, AttrMap
- ld bc, 6 * SCREEN_WIDTH
- ld a, PAL_BATTLE_BG_TEXT
- call ByteFill
- ld hl, Palettes_979c
- ld de, UnknOBPals palette PAL_BATTLE_OB_GRAY
- ld bc, 6 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyAttrMap
- ret
-; 8e85
-
-
-InitPartyMenuBGPal7: ; 8e85
- callba Function100dc0
-Mobile_InitPartyMenuBGPal7: ; 8e8b
- ld hl, Palette_b311
- jr nc, .not_mobile
- ld hl, Palette_b309
-.not_mobile
- ld de, UnknBGPals palette 7
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ret
-; 8e9f
-
-InitPartyMenuBGPal0: ; 8e9f
- callba Function100dc0
- ld hl, Palette_b311
- jr nc, .not_mobile
- ld hl, Palette_b309
-.not_mobile
- ld de, UnknBGPals palette 0
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ret
-; 8eb9
-
-_CGB_PokegearPals: ; 8eb9
- ld a, [PlayerGender]
- bit 0, a
- jr z, .male
- ld hl, FemalePokegearPals
- jr .got_pals
-
-.male
- ld hl, MalePokegearPals
-.got_pals
- ld de, UnknBGPals
- ld bc, 6 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8edb
-
-_CGB_StatsScreenHPPals: ; 8edb
- ld de, UnknBGPals
- ld a, [wCurHPPal]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, Palettes_a8be
- add hl, bc
- call LoadPalette_White_Col1_Col2_Black ; hp palette
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black ; mon palette
- ld hl, Palettes_a8ca
- call LoadPalette_White_Col1_Col2_Black ; exp palette
- ld hl, StatsScreenPagePals
- ld de, UnknBGPals palette 3
- ld bc, 3 palettes ; pink, green, and blue page palettes
- ld a, $5
- call FarCopyWRAM
- call WipeAttrMap
-
- hlcoord 0, 0, AttrMap
- lb bc, 8, SCREEN_WIDTH
- ld a, $1 ; mon palette
- call FillBoxCGB
-
- hlcoord 10, 16, AttrMap
- ld bc, 10
- ld a, $2 ; exp palette
- call ByteFill
-
- hlcoord 13, 5, AttrMap
- lb bc, 2, 2
- ld a, $3 ; pink page palette
- call FillBoxCGB
-
- hlcoord 15, 5, AttrMap
- lb bc, 2, 2
- ld a, $4 ; green page palette
- call FillBoxCGB
-
- hlcoord 17, 5, AttrMap
- lb bc, 2, 2
- ld a, $5 ; blue page palette
- call FillBoxCGB
-
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8f52
-
-StatsScreenPagePals: ; 8f52
-; pink
- RGB 31, 31, 31
- RGB 31, 19, 31
- RGB 31, 15, 31
- RGB 00, 00, 00
-; green
- RGB 31, 31, 31
- RGB 21, 31, 14
- RGB 17, 31, 00
- RGB 00, 00, 00
-; blue
- RGB 31, 31, 31
- RGB 17, 31, 31
- RGB 17, 31, 31
- RGB 00, 00, 00
-; 8f6a
-
-StatsScreenPals: ; 8f6a
-; pink
- RGB 31, 19, 31
-; green
- RGB 21, 31, 14
-; blue
- RGB 17, 31, 31
-; 8f70
-
-_CGB_Pokedex: ; 8f70
- ld de, UnknBGPals
- ld a, $1d
- call GetPredefPal
- call LoadHLPaletteIntoDE ; dex interface palette
- ld a, [CurPartySpecies]
- cp $ff
- jr nz, .is_pokemon
- ld hl, .PokedexQuestionMarkPalette
- call LoadHLPaletteIntoDE ; green question mark palette
- jr .got_palette
-
-.is_pokemon
- call GetMonPalettePointer_
- call LoadPalette_White_Col1_Col2_Black ; mon palette
-.got_palette
- call WipeAttrMap
- hlcoord 1, 1, AttrMap
- lb bc, 7, 7
- ld a, $1 ; green question mark palette
- call FillBoxCGB
- call InitPartyMenuOBPals
- ld hl, .PokedexCursorPalette
- ld de, UnknOBPals palette 7 ; green cursor palette
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8fba
-
-.PokedexQuestionMarkPalette: ; 8fba
- RGB 11, 23, 00
- RGB 07, 17, 00
- RGB 06, 16, 03
- RGB 05, 12, 01
-
-.PokedexCursorPalette: ; 8fc2
- RGB 00, 00, 00
- RGB 11, 23, 00
- RGB 07, 17, 00
- RGB 00, 00, 00
-; 8fca
-
-_CGB_BillsPC: ; 8fca
- ld de, UnknBGPals
- ld a, $1d
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld a, [CurPartySpecies]
- cp $ff
- jr nz, .GetMonPalette
- ld hl, .BillsPCOrangePalette
- call LoadHLPaletteIntoDE
- jr .Resume
-
-.GetMonPalette:
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black
-.Resume:
- call WipeAttrMap
- hlcoord 1, 4, AttrMap
- lb bc, 7, 7
- ld a, $1
- call FillBoxCGB
- call InitPartyMenuOBPals
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9009
-
-.Function9009: ; 9009
- ld hl, .BillsPCOrangePalette
- call LoadHLPaletteIntoDE
- jr .asm_901a
-
-.unused
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black
-.asm_901a
- call WipeAttrMap
- hlcoord 1, 1, AttrMap
- lb bc, 7, 7
- ld a, $1
- call FillBoxCGB
- call InitPartyMenuOBPals
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9036
-
-.BillsPCOrangePalette: ; 9036
- RGB 31, 15, 00
- RGB 23, 12, 00
- RGB 15, 07, 00
- RGB 00, 00, 00
-; 903e
-
-_CGB_PokedexUnownMode: ; 903e
- ld de, UnknBGPals
- ld a, $1d
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld a, [CurPartySpecies]
- call GetMonPalettePointer_
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- hlcoord 7, 5, AttrMap
- lb bc, 7, 7
- ld a, $1
- call FillBoxCGB
- call InitPartyMenuOBPals
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 906e
-
-_CGB_SlotMachine: ; 906e
- ld hl, SlotMachinePals
- ld de, UnknBGPals
- ld bc, 16 palettes
- ld a, $5
- call FarCopyWRAM
- call WipeAttrMap
- hlcoord 0, 2, AttrMap
- lb bc, 10, 3
- ld a, $2
- call FillBoxCGB
- hlcoord 17, 2, AttrMap
- lb bc, 10, 3
- ld a, $2
- call FillBoxCGB
- hlcoord 0, 4, AttrMap
- lb bc, 6, 3
- ld a, $3
- call FillBoxCGB
- hlcoord 17, 4, AttrMap
- lb bc, 6, 3
- ld a, $3
- call FillBoxCGB
- hlcoord 0, 6, AttrMap
- lb bc, 2, 3
- ld a, $4
- call FillBoxCGB
- hlcoord 17, 6, AttrMap
- lb bc, 2, 3
- ld a, $4
- call FillBoxCGB
- hlcoord 4, 2, AttrMap
- lb bc, 2, 12
- ld a, $1
- call FillBoxCGB
- hlcoord 3, 2, AttrMap
- lb bc, 10, 1
- ld a, $1
- call FillBoxCGB
- hlcoord 16, 2, AttrMap
- lb bc, 10, 1
- ld a, $1
- call FillBoxCGB
- hlcoord 0, 12, AttrMap
- ld bc, $78
- ld a, $7
- call ByteFill
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 90f8
-
-_CGB06: ; 90f8
- ld hl, PalPacket_9ca6 + 1
- call CopyFourPalettes
- call WipeAttrMap
- ld de, UnknOBPals
- ld a, $3c
- call GetPredefPal
- call LoadHLPaletteIntoDE
- hlcoord 0, 6, AttrMap
- lb bc, 12, SCREEN_WIDTH
- ld a, $1
- call FillBoxCGB
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9122
-
-_CGB07: ; 9122
- ld b, 0
- ld hl, .Jumptable
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 912d
-
-.Jumptable: ; 912d
- dw .Function9133
- dw .Function9166
- dw .Function9180
-; 9133
-
-.Function9133: ; 9133
- ld hl, .Palette_914e
- ld de, UnknBGPals
- call LoadHLPaletteIntoDE
- ld hl, .Palette_9156
- ld de, UnknOBPals
- ld bc, 2 palettes
- ld a, $5
- call FarCopyWRAM
- call WipeAttrMap
- ret
-; 914e
-
-.Palette_914e: ; 914e
- RGB 19, 31, 19
- RGB 18, 23, 31
- RGB 11, 21, 28
- RGB 04, 16, 24
-
-.Palette_9156: ; 9156
- RGB 29, 29, 29
- RGB 20, 19, 20
- RGB 19, 06, 04
- RGB 03, 04, 06
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 03, 04, 06
-; 9166
-
-.Function9166: ; 9166
- ld de, UnknBGPals
- ld a, $38
- call GetPredefPal
- call LoadHLPaletteIntoDE
-
- ld de, UnknOBPals
- ld a, $39
- call GetPredefPal
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- ret
-; 9180
-
-.Function9180: ; 9180
- ld hl, PalPacket_9c36 + 1
- call CopyFourPalettes
- ld de, UnknOBPals
- ld a, $3a
- call GetPredefPal
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- ret
-; 9195
-
-_CGB11: ; 9195
- ld hl, Palettes_b789
- ld de, UnknBGPals
- ld bc, 5 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyPals
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 91ad
-
-_CGB_Diploma: ; 91ad
- ld hl, DiplomaPalettes
- ld de, UnknBGPals
- ld bc, 16 palettes
- ld a, $5
- call FarCopyWRAM
-
- ld hl, PalPacket_9cb6 + 1
- call CopyFourPalettes
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 91c8
-
-_CGB_MapPals: ; 91c8
- call LoadMapPals
- ld a, SCGB_MAPPALS
- ld [SGBPredef], a
- ret
-; 91d1
-
-_CGB_PartyMenu: ; 91d1
- ld hl, PalPacket_9c56 + 1
- call CopyFourPalettes
- call InitPartyMenuBGPal0
- call InitPartyMenuBGPal7
- call InitPartyMenuOBPals
- call ApplyAttrMap
- ret
-; 91e4
-
-_CGB_Evolution: ; 91e4
- ld de, UnknBGPals
- ld a, c
- and a
- jr z, .pokemon
- ld a, $1a
- call GetPredefPal
- call LoadHLPaletteIntoDE
- jr .got_palette
-
-.pokemon
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld c, l
- ld b, h
- ld a, [PlayerHPPal]
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld hl, Palettes_979c
- ld de, UnknOBPals palette 2
- ld bc, 6 palettes
- ld a, $5
- call FarCopyWRAM
-
-.got_palette
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9228
-
-_CGB0c: ; 9228
- ld hl, Palettes_b6f1
- ld de, UnknBGPals
- ld bc, 5 palettes
- ld a, $5
- call FarCopyWRAM
- ld hl, Palettes_b719
- ld de, UnknOBPals
- ld bc, 2 palettes
- ld a, $5
- call FarCopyWRAM
- ld a, SCGB_DIPLOMA
- ld [SGBPredef], a
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9251
-
-_CGB0d: ; 9251
- ld hl, PalPacket_9cb6 + 1
- call CopyFourPalettes
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 925e
-
-_CGB_UnownPuzzle: ; 925e
- ld hl, PalPacket_9bc6 + 1
- call CopyFourPalettes
- ld de, UnknOBPals
- ld a, $4c
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, UnknOBPals
- ld a, $1f
- ld [hli], a
- ld a, $0
- ld [hl], a
- pop af
- ld [rSVBK], a
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 9289
-
-_CGB_TrainerCard: ; 9289
- ld de, UnknBGPals
- xor a ; CHRIS
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, FALKNER ; KRIS
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, BUGSY
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, WHITNEY
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, MORTY
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, CHUCK
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, JASMINE
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, PRYCE
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, $24
- call GetPredefPal
- call LoadHLPaletteIntoDE
-
- ; fill screen with opposite-gender palette for the card border
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, [PlayerGender]
- and a
- ld a, $1 ; kris
- jr z, .got_gender
- ld a, $0 ; chris
-.got_gender
- call ByteFill
- ; fill trainer sprite area with same-gender palette
- hlcoord 14, 1, AttrMap
- lb bc, 7, 5
- ld a, [PlayerGender]
- and a
- ld a, $0 ; chris
- jr z, .got_gender2
- ld a, $1 ; kris
-.got_gender2
- call FillBoxCGB
- ; top-right corner still uses the border's palette
- hlcoord 18, 1, AttrMap
- ld [hl], $1
- hlcoord 2, 11, AttrMap
- lb bc, 2, 4
- ld a, $1 ; falkner
- call FillBoxCGB
- hlcoord 6, 11, AttrMap
- lb bc, 2, 4
- ld a, $2 ; bugsy
- call FillBoxCGB
- hlcoord 10, 11, AttrMap
- lb bc, 2, 4
- ld a, $3 ; whitney
- call FillBoxCGB
- hlcoord 14, 11, AttrMap
- lb bc, 2, 4
- ld a, $4 ; morty
- call FillBoxCGB
- hlcoord 2, 14, AttrMap
- lb bc, 2, 4
- ld a, $5 ; chuck
- call FillBoxCGB
- hlcoord 6, 14, AttrMap
- lb bc, 2, 4
- ld a, $6 ; jasmine
- call FillBoxCGB
- hlcoord 10, 14, AttrMap
- lb bc, 2, 4
- ld a, $7 ; pryce
- call FillBoxCGB
- ; clair uses kris's palette
- ld a, [PlayerGender]
- and a
- push af
- jr z, .got_gender3
- hlcoord 14, 14, AttrMap
- lb bc, 2, 4
- ld a, $1
- call FillBoxCGB
-.got_gender3
- pop af
- ld c, $0
- jr nz, .got_gender4
- inc c
-.got_gender4
- ld a, c
- hlcoord 18, 1, AttrMap
- ld [hl], a
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9373
-
-_CGB_MoveList: ; 9373
- ld de, UnknBGPals
- ld a, $10
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld a, [PlayerHPPal]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- ld bc, Palettes_a8be
- add hl, bc
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- hlcoord 11, 1, AttrMap
- lb bc, 2, 9
- ld a, $1
- call FillBoxCGB
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 93a6
-
-_CGB0f: ; 93a6
- ld hl, PalPacket_9c46 + 1
- call CopyFourPalettes
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 93ba
-
-_CGB_PokedexSearchOption: ; 93ba
- ld de, UnknBGPals
- ld a, $1d
- call GetPredefPal
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 93d3
-
-_CGB_PackPals: ; 93d3
-; pack pals
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jr z, .tutorial_male
-
- ld a, [PlayerGender]
- bit 0, a
- jr z, .tutorial_male
-
- ld hl, .KrisPackPals
- jr .got_gender
-
-.tutorial_male
- ld hl, .ChrisPackPals
-
-.got_gender
- ld de, UnknBGPals
- ld bc, 8 palettes ; 6 palettes?
- ld a, $5
- call FarCopyWRAM
- call WipeAttrMap
- hlcoord 0, 0, AttrMap
- lb bc, 1, 10
- ld a, $1
- call FillBoxCGB
- hlcoord 10, 0, AttrMap
- lb bc, 1, 10
- ld a, $2
- call FillBoxCGB
- hlcoord 7, 2, AttrMap
- lb bc, 9, 1
- ld a, $3
- call FillBoxCGB
- hlcoord 0, 7, AttrMap
- lb bc, 3, 5
- ld a, $4
- call FillBoxCGB
- hlcoord 0, 3, AttrMap
- lb bc, 3, 5
- ld a, $5
- call FillBoxCGB
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9439
-
-.ChrisPackPals: ; 9439
- RGB 31, 31, 31
- RGB 15, 15, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 15, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 11, 31
- RGB 15, 15, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 15, 31
- RGB 00, 00, 31
- RGB 31, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 15, 31
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 07, 19, 07
- RGB 07, 19, 07
- RGB 00, 00, 00
-; 9469
-
-.KrisPackPals: ; 9469
- RGB 31, 31, 31
- RGB 31, 14, 31
- RGB 31, 07, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 14, 31
- RGB 31, 07, 31
- RGB 00, 00, 00
-
- RGB 15, 15, 31
- RGB 31, 14, 31
- RGB 31, 07, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 14, 31
- RGB 31, 07, 31
- RGB 31, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 14, 31
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 07, 19, 07
- RGB 07, 19, 07
- RGB 00, 00, 00
-; 9499
-
-_CGB_Pokepic: ; 9499
- call _CGB_MapPals
- ld de, SCREEN_WIDTH
- hlcoord 0, 0, AttrMap
- ld a, [wMenuBorderTopCoord]
-.loop
- and a
- jr z, .found_top
- dec a
- add hl, de
- jr .loop
-
-.found_top
- ld a, [wMenuBorderLeftCoord]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [wMenuBorderTopCoord]
- ld b, a
- ld a, [wMenuBorderBottomCoord]
- inc a
- sub b
- ld b, a
- ld a, [wMenuBorderLeftCoord]
- ld c, a
- ld a, [wMenuBorderRightCoord]
- sub c
- inc a
- ld c, a
- ld a, $0
- call FillBoxCGB
- call ApplyAttrMap
- ret
-; 94d0
-
-_CGB13: ; 94d0
- ld hl, PalPacket_9ba6 + 1
- call CopyFourPalettes
- call WipeAttrMap
- hlcoord 0, 4, AttrMap
- lb bc, 10, SCREEN_WIDTH
- ld a, $2
- call FillBoxCGB
- hlcoord 0, 6, AttrMap
- lb bc, 6, SCREEN_WIDTH
- ld a, $1
- call FillBoxCGB
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 94fa
-
-_CGB_GamefreakLogo: ; 94fa
- ld de, UnknBGPals
- ld a, $4e
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld hl, .Palette
- ld de, UnknOBPals
- call LoadHLPaletteIntoDE
- ld hl, .Palette
- ld de, UnknOBPals palette 1
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ret
-; 9521
-
-.Palette: ; 9521
- RGB 31, 31, 31
- RGB 13, 11, 00
- RGB 23, 12, 28
- RGB 00, 00, 00
-; 9529
-
-_CGB_PlayerOrMonFrontpicPals: ; 9529
- ld de, UnknBGPals
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ret
-; 9542
-
-_CGB1e: ; 9542
- ld de, UnknBGPals
- ld a, [CurPartySpecies]
- call GetMonPalettePointer_
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 9555
-
-_CGB_TradeTube: ; 9555
- ld hl, PalPacket_9cc6 + 1
- call CopyFourPalettes
- ld hl, Palettes_b681
- ld de, UnknOBPals
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ld de, UnknOBPals palette 7
- ld a, $1c
- call GetPredefPal
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- ret
-; 9578
-
-_CGB_TrainerOrMonFrontpicPals: ; 9578
- ld de, UnknBGPals
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetFrontpicPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ret
-; 9591
-
-_CGB_MysteryGift: ; 9591
- ld hl, .Palettes
- ld de, UnknBGPals
- ld bc, 2 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyPals
- call WipeAttrMap
- hlcoord 3, 7, AttrMap
- lb bc, 8, 14
- ld a, $1
- call FillBoxCGB
- hlcoord 1, 5, AttrMap
- lb bc, 1, 18
- ld a, $1
- call FillBoxCGB
- hlcoord 1, 16, AttrMap
- lb bc, 1, 18
- ld a, $1
- call FillBoxCGB
- hlcoord 0, 0, AttrMap
- lb bc, 17, 2
- ld a, $1
- call FillBoxCGB
- hlcoord 18, 5, AttrMap
- lb bc, 12, 1
- ld a, $1
- call FillBoxCGB
- call ApplyAttrMap
- ret
-; 95e0
-
-.Palettes: ; 95e0
- RGB 31, 31, 31
- RGB 16, 31, 14
- RGB 05, 14, 21
- RGB 05, 13, 10
-
- RGB 31, 31, 31
- RGB 11, 21, 25
- RGB 05, 14, 21
- RGB 00, 03, 19
-; 95f0
--- a/predef/crystal.asm
+++ /dev/null
@@ -1,614 +1,0 @@
-GetMysteryGift_MobileAdapterLayout: ; 4930f (mobile)
- ld a, b
- cp SCGB_RAM
- jr nz, .not_ram
- ld a, [SGBPredef]
-.not_ram
- push af
- callba ResetBGPals
- pop af
- ld l, a
- ld h, 0
- add hl, hl
- ld de, .dw
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .done
- push de
- jp hl
-.done
- ret
-; 49330 (12:5330)
-
-.dw ; 49330
-
- dw MG_Mobile_Layout00
- dw MG_Mobile_Layout01
- dw MG_Mobile_Layout02
-; 49336
-
-MG_Mobile_Layout_FillBox: ; 49336
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- ret
-; 49346
-
-MG_Mobile_Layout_WipeAttrMap: ; 49346 (12:5346)
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- xor a
- call ByteFill
- ret
-
-MG_Mobile_Layout_LoadPals: ; 49351 (12:5351)
- ld de, UnknBGPals
- ld hl, Palette_493e1
- ld bc, 5 palettes
- ld a, $5 ; BANK(UnknBGPals)
- call FarCopyWRAM
- ld de, UnknBGPals + 7 palettes
- ld hl, Palette_TextBG7
- ld bc, 1 palettes
- ld a, $5 ; BANK(UnknBGPals)
- call FarCopyWRAM
- ret
-
-MG_Mobile_Layout00: ; 4936e (12:536e)
- call MG_Mobile_Layout_LoadPals
- call MG_Mobile_Layout_WipeAttrMap
- call MG_Mobile_Layout_CreatePalBoxes
- callba ApplyAttrMap
- callba ApplyPals
- ret
-
-MG_Mobile_Layout_CreatePalBoxes: ; 49384 (12:5384)
- hlcoord 0, 0, AttrMap
- lb bc, 4, 1
- ld a, $1
- call MG_Mobile_Layout_FillBox
- lb bc, 2, 1
- ld a, $2
- call MG_Mobile_Layout_FillBox
- lb bc, 6, 1
- ld a, $3
- call MG_Mobile_Layout_FillBox
- hlcoord 1, 0, AttrMap
- ld a, $1
- lb bc, 3, 18
- call MG_Mobile_Layout_FillBox
- lb bc, 2, 18
- ld a, $2
- call MG_Mobile_Layout_FillBox
- lb bc, 12, 18
- ld a, $3
- call MG_Mobile_Layout_FillBox
- hlcoord 19, 0, AttrMap
- lb bc, 4, 1
- ld a, $1
- call MG_Mobile_Layout_FillBox
- lb bc, 2, 1
- ld a, $2
- call MG_Mobile_Layout_FillBox
- lb bc, 6, 1
- ld a, $3
- call MG_Mobile_Layout_FillBox
- hlcoord 0, 12, AttrMap
- ld bc, 6 * SCREEN_WIDTH
- ld a, $7
- call ByteFill
- ret
-; 493e1 (12:53e1)
-
-Palette_493e1: ; 493e1
- RGB 03, 07, 09
- RGB 26, 31, 00
- RGB 20, 16, 03
- RGB 31, 31, 31
-
- RGB 13, 24, 29
- RGB 11, 16, 30
- RGB 07, 11, 22
- RGB 05, 06, 18
-
- RGB 31, 31, 31
- RGB 20, 26, 31
- RGB 13, 24, 29
- RGB 11, 16, 30
-
- RGB 31, 31, 31
- RGB 20, 26, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 20, 16, 08
- RGB 31, 00, 00
- RGB 00, 00, 00
-; 49409
-
-LoadOW_BGPal7:: ; 49409
- ld hl, Palette_TextBG7
- ld de, UnknBGPals + 8 * 7
- ld bc, 8
- ld a, $5
- call FarCopyWRAM
- ret
-; 49418
-
-Palette_TextBG7: ; 49418
- RGB 31, 31, 31
- RGB 08, 19, 28
- RGB 05, 05, 16
- RGB 00, 00, 00
-; 49420
-
-Function49420:: ; 49420 (12:5420)
- ld hl, MansionPalette4
- ld de, UnknBGPals + $30
- ld bc, $8
- ld a, $5 ; BANK(UnknBGPals)
- call FarCopyWRAM
- ret
-; 4942f (12:542f)
-
-MG_Mobile_Layout01: ; 4942f
- call MG_Mobile_Layout_LoadPals
- ld de, UnknBGPals + $38
- ld hl, Palette_49478
- ld bc, $8
- ld a, $5 ; BANK(UnknBGPals)
- call FarCopyWRAM
- call MG_Mobile_Layout_WipeAttrMap
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- hlcoord 0, 14, AttrMap
- ld bc, 4 * SCREEN_WIDTH
- ld a, $7
- call ByteFill
- ld a, [wd002]
- bit 6, a
- jr z, .asm_49464
- call Function49480
- jr .asm_49467
-
-.asm_49464
- call Function49496
-
-.asm_49467
- callba ApplyAttrMap
- callba ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 49478
-
-Palette_49478: ; 49478
- RGB 31, 31, 31
- RGB 26, 31, 00
- RGB 20, 16, 03
- RGB 00, 00, 00
-; 49480
-
-Function49480: ; 49480
- hlcoord 0, 0, AttrMap
- lb bc, 4, SCREEN_WIDTH
- ld a, $7
- call MG_Mobile_Layout_FillBox
- hlcoord 0, 2, AttrMap
- ld a, $4
- ld [hl], a
- hlcoord 19, 2, AttrMap
- ld [hl], a
- ret
-; 49496
-
-Function49496: ; 49496
- hlcoord 0, 0, AttrMap
- lb bc, 2, SCREEN_WIDTH
- ld a, $7
- call MG_Mobile_Layout_FillBox
- hlcoord 0, 1, AttrMap
- ld a, $4
- ld [hl], a
- hlcoord 19, 1, AttrMap
- ld [hl], a
- ret
-; 494ac
-
-LoadSpecialMapPalette: ; 494ac
- ld a, [wTileset]
- cp TILESET_POKECOM_CENTER
- jr z, .pokecom_2f
- cp TILESET_BATTLE_TOWER
- jr z, .battle_tower
- cp TILESET_ICE_PATH
- jr z, .ice_path
- cp TILESET_HOUSE_1
- jr z, .house
- cp TILESET_RADIO_TOWER
- jr z, .radio_tower
- cp TILESET_CELADON_MANSION
- jr z, .mansion_mobile
- jr .do_nothing
-
-.pokecom_2f
- call LoadPokeComPalette
- scf
- ret
-
-.battle_tower
- call LoadBattleTowerPalette
- scf
- ret
-
-.ice_path
- ld a, [wPermission] ; permission
- and 7
- cp 3 ; Hall of Fame
- jr z, .do_nothing
- call LoadIcePathPalette
- scf
- ret
-
-.house
- call LoadHousePalette
- scf
- ret
-
-.radio_tower
- call LoadRadioTowerPalette
- scf
- ret
-
-.mansion_mobile
- call LoadMansionPalette
- scf
- ret
-
-.do_nothing
- and a
- ret
-; 494f2
-
-LoadPokeComPalette: ; 494f2
- ld a, $5
- ld de, UnknBGPals
- ld hl, PokeComPalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 49501
-
-PokeComPalette: ; 49501
-INCLUDE "tilesets/pokecom.pal"
-; 49541
-
-LoadBattleTowerPalette: ; 49541
- ld a, $5
- ld de, UnknBGPals
- ld hl, BattleTowerPalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 49550
-
-BattleTowerPalette: ; 49550
-INCLUDE "tilesets/battle_tower.pal"
-; 49590
-
-LoadIcePathPalette: ; 49590
- ld a, $5
- ld de, UnknBGPals
- ld hl, IcePathPalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 4959f
-
-IcePathPalette: ; 4959f
-INCLUDE "tilesets/ice_path.pal"
-; 495df
-
-LoadHousePalette: ; 495df
- ld a, $5
- ld de, UnknBGPals
- ld hl, HousePalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 495ee
-
-HousePalette: ; 495ee
-INCLUDE "tilesets/house.pal"
-; 4962e
-
-LoadRadioTowerPalette: ; 4962e
- ld a, $5
- ld de, UnknBGPals
- ld hl, RadioTowerPalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 4963d
-
-RadioTowerPalette: ; 4963d
-INCLUDE "tilesets/radio_tower.pal"
-; 4967d
-
-MansionPalette1: ; 4967d
- RGB 30, 28, 26
- RGB 19, 19, 19
- RGB 13, 13, 13
- RGB 07, 07, 07
-
- RGB 30, 28, 26
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-
- RGB 18, 24, 09
- RGB 15, 20, 01
- RGB 09, 13, 00
- RGB 07, 07, 07
-
- RGB 30, 28, 26
- RGB 15, 16, 31
- RGB 09, 09, 31
- RGB 07, 07, 07
-
- RGB 30, 28, 26
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 07, 07, 07
-
- RGB 26, 24, 17
- RGB 21, 17, 07
- RGB 16, 13, 03
- RGB 07, 07, 07
-
-MansionPalette3: ; 496ad
- RGB 30, 28, 26
- RGB 17, 19, 31
- RGB 14, 16, 31
- RGB 07, 07, 07
-
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
-; 496bd
-
-MansionPalette4: ; 496bd
- RGB 05, 05, 16
- RGB 08, 19, 28
- RGB 00, 00, 00
- RGB 31, 31, 31
-; 496c5
-
-LoadMansionPalette: ; 496c5
- ld a, $5
- ld de, UnknBGPals
- ld hl, MansionPalette1
- ld bc, 8 palettes
- call FarCopyWRAM
- ld a, $5
- ld de, UnknBGPals + 4 palettes
- ld hl, MansionPalette2
- ld bc, 1 palettes
- call FarCopyWRAM
- ld a, $5
- ld de, UnknBGPals + 3 palettes
- ld hl, MansionPalette3
- ld bc, 1 palettes
- call FarCopyWRAM
- ld a, $5
- ld de, UnknBGPals + 6 palettes
- ld hl, MansionPalette4
- ld bc, 1 palettes
- call FarCopyWRAM
- ret
-; 496fe
-
-MansionPalette2: ; 496fe
- RGB 25, 24, 23
- RGB 20, 19, 19
- RGB 14, 16, 31
- RGB 07, 07, 07
-; 49706
-
-MG_Mobile_Layout02: ; 49706
- ld hl, Palette_49732
- ld de, UnknBGPals
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- call MG_Mobile_Layout_WipeAttrMap
- callba ApplyAttrMap
- ld hl, Palette_4973a
- ld de, UnknOBPals
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ret
-; 49732
-
-Palette_49732: ; 49732
- RGB 31, 31, 31
- RGB 23, 16, 07
- RGB 23, 07, 07
- RGB 03, 07, 20
-; 4973a
-
-Palette_4973a: ; 4973a
- RGB 00, 00, 00
- RGB 07, 05, 31
- RGB 14, 18, 31
- RGB 31, 31, 31
-; 49742
-
-Function49742: ; 49742
- ld hl, Palette_49757
- ld de, UnknBGPals
- ld bc, $40
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- ret
-; 49757
-
-Palette_49757: ; 49757
- RGB 31, 31, 63
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 63
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 31, 00, 00
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 30, 16, 26
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 16, 16, 16
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 31, 12, 12
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 07, 08, 31
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 29, 28, 09
- RGB 31, 31, 31
-; 49797
-
-_InitMG_Mobile_LinkTradePalMap: ; 49797
- hlcoord 0, 0, AttrMap
- lb bc, 16, 2
- ld a, $4
- call MG_Mobile_Layout_FillBox
- ld a, $3
- ldcoord_a 0, 1, AttrMap
- ldcoord_a 0, 14, AttrMap
- hlcoord 2, 0, AttrMap
- lb bc, 8, 18
- ld a, $5
- call MG_Mobile_Layout_FillBox
- hlcoord 2, 8, AttrMap
- lb bc, 8, 18
- ld a, $6
- call MG_Mobile_Layout_FillBox
- hlcoord 0, 16, AttrMap
- lb bc, 2, SCREEN_WIDTH
- ld a, $4
- call MG_Mobile_Layout_FillBox
- ld a, $3
- lb bc, 6, 1
- hlcoord 6, 1, AttrMap
- call MG_Mobile_Layout_FillBox
- ld a, $3
- lb bc, 6, 1
- hlcoord 17, 1, AttrMap
- call MG_Mobile_Layout_FillBox
- ld a, $3
- lb bc, 6, 1
- hlcoord 6, 9, AttrMap
- call MG_Mobile_Layout_FillBox
- ld a, $3
- lb bc, 6, 1
- hlcoord 17, 9, AttrMap
- call MG_Mobile_Layout_FillBox
- ld a, $2
- hlcoord 2, 16, AttrMap
- ld [hli], a
- ld a, $7
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld a, $2
- ld [hl], a
- hlcoord 2, 17, AttrMap
- ld a, $3
- ld bc, 6
- call ByteFill
- ret
-; 49811
-
-LoadTradeRoomBGPals: ; 49811
- ld hl, Palette_49826
- ld de, UnknBGPals + $10
- ld bc, $30
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- ret
-; 49826
-
-Palette_49826: ; 49826
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 31, 00, 00
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 15, 23, 30
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 16, 16, 16
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 25, 07, 04
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 03, 22, 08
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 29, 28, 09
- RGB 31, 31, 31
-; 49856
-
-InitMG_Mobile_LinkTradePalMap: ; 49856
- call _InitMG_Mobile_LinkTradePalMap
- ret
-; 4985a
--- a/predef/sgb.asm
+++ /dev/null
@@ -1,636 +1,0 @@
-Predef_LoadSGBLayout: ; 864c
-; LoadSGBLayout
- call CheckCGB
- jp nz, Predef_LoadSGBLayoutCGB
-
- ld a, b
- cp SCGB_RAM
- jr nz, .not_ram
- ld a, [SGBPredef]
-.not_ram
- cp SCGB_PARTY_MENU_HP_PALS
- jp z, SGB_ApplyPartyMenuHPPals
- ld l, a
- ld h, 0
- add hl, hl
- ld de, .Jumptable
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .Finish
- push de
- jp hl
-; 866f
-
-.Jumptable: ; 866f
- dw .SGB_BattleGrayscale
- dw .SGB_BattleColors
- dw .SGB_PokegearPals
- dw .SGB_StatsScreenHPPals
- dw .SGB_Pokedex
- dw .SGB_SlotMachine
- dw .SGB06
- dw .SGB07
- dw .SGB_Diploma
- dw .SGB_MapPals
- dw .SGB_PartyMenu
- dw .SGB_Evolution
- dw .SGB0c
- dw .SGB0d
- dw .SGB_MoveList
- dw .SGB0f
- dw .SGB_PokedexSearchOption
- dw .SGB11
- dw .SGB12
- dw .SGB13
- dw .SGB_PackPals
- dw .SGB_TrainerCard
- dw .SGB_PokedexUnownMode
- dw .SGB_BillsPC
- dw .SGB_UnownPuzzle
- dw .SGB19
- dw .SGB_PlayerOrMonFrontpicPals
- dw .SGB_TradeTube
- dw .SGB_TrainerOrMonFrontpicPals
- dw .SGB_MysteryGift
- dw .SGB1e
-; 86ad
-
-.SGB_BattleGrayscale: ; 86ad
- ld hl, PalPacket_9c66
- ld de, BlkPacket_9aa6
- ret
-; 86b4
-
-.SGB_BattleColors: ; 86b4
- ld hl, BlkPacket_9aa6
- call PushSGBPals_
-
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
-
- ld a, [PlayerHPPal]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- ld de, Palettes_a8be
- add hl, de
-
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
-
- ld a, [EnemyHPPal]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
-
- ld de, Palettes_a8be
- add hl, de
- ld a, [hli]
- ld [wSGBPals + 9], a
- ld a, [hli]
- ld [wSGBPals + 10], a
- ld a, [hli]
- ld [wSGBPals + 11], a
- ld a, [hl]
- ld [wSGBPals + 12], a
-
- ld hl, PalPacket_9cf6
- ld de, wSGBPals + $10
- ld bc, $10
- call CopyBytes
-
- call GetBattlemonBackpicPalettePointer
-
- ld a, [hli]
- ld [wSGBPals + $13], a
- ld a, [hli]
- ld [wSGBPals + $14], a
- ld a, [hli]
- ld [wSGBPals + $15], a
- ld a, [hl]
- ld [wSGBPals + $16], a
- call GetEnemyFrontpicPalettePointer
- ld a, [hli]
- ld [wSGBPals + $19], a
- ld a, [hli]
- ld [wSGBPals + $1a], a
- ld a, [hli]
- ld [wSGBPals + $1b], a
- ld a, [hl]
- ld [wSGBPals + $1c], a
-
- ld hl, wSGBPals
- ld de, wSGBPals + $10
- ld a, SCGB_BATTLE_COLORS
- ld [SGBPredef], a
- ret
-; 873c
-
-.SGB_MoveList: ; 873c
- ld hl, PalPacket_9bd6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
-
- ld hl, wSGBPals + 1
- ld [hl], $10
- inc hl
- inc hl
-
- ld a, [PlayerHPPal]
- add $2f
- ld [hl], a
- ld hl, wSGBPals
- ld de, BlkPacket_9ad6
- ret
-; 875c
-
-.SGB_PokegearPals: ; 875c
- ld hl, PalPacket_9c76
- ld de, BlkPacket_9a86
- ret
-; 8763
-
-.SGB_StatsScreenHPPals: ; 8763
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld a, [wCurHPPal]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- ld de, Palettes_a8be
- add hl, de
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- ld a, [hli]
- ld [wSGBPals + 9], a
- ld a, [hli]
- ld [wSGBPals + 10], a
- ld a, [hli]
- ld [wSGBPals + 11], a
- ld a, [hl]
- ld [wSGBPals + 12], a
- ld hl, wSGBPals
- ld de, BlkPacket_9ac6
- ret
-; 87ab
-
-.SGB_PartyMenu: ; 87ab
- ld hl, PalPacket_9c56
- ld de, wSGBPals + 1
- ret
-; 87b2
-
-.SGB_Pokedex: ; 87b2
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld hl, wSGBPals + 3
- ld [hl], $9f
- inc hl
- ld [hl], $2a
- inc hl
- ld [hl], $5a
- inc hl
- ld [hl], $19
- ld a, [CurPartySpecies]
- call GetMonPalettePointer_
- ld a, [hli]
- ld [wSGBPals + 9], a
- ld a, [hli]
- ld [wSGBPals + 10], a
- ld a, [hli]
- ld [wSGBPals + 11], a
- ld a, [hl]
- ld [wSGBPals + 12], a
- ld hl, wSGBPals
- ld de, BlkPacket_9ae6
- ret
-; 87e9
-
-.SGB_BillsPC: ; 87e9
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld hl, wSGBPals + 3
- ld [hl], $9f
- inc hl
- ld [hl], $2a
- inc hl
- ld [hl], $5a
- inc hl
- ld [hl], $19
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- ld a, [hli]
- ld [wSGBPals + 9], a
- ld a, [hli]
- ld [wSGBPals + 10], a
- ld a, [hli]
- ld [wSGBPals + 11], a
- ld a, [hl]
- ld [wSGBPals + 12], a
- ld hl, wSGBPals
- ld de, BlkPacket_9ae6
- ret
-; 8823
-
-.SGB_PokedexUnownMode: ; 8823
- call .SGB_Pokedex
- ld de, BlkPacket_9af6
- ret
-; 882a
-
-.SGB_PokedexSearchOption: ; 882a
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld hl, wSGBPals + 3
- ld [hl], $9f
- inc hl
- ld [hl], $2a
- inc hl
- ld [hl], $5a
- inc hl
- ld [hl], $19
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 884b
-
-.SGB_PackPals: ; 884b
- ld hl, PalPacket_9c36
- ld de, BlkPacket_9a86
- ret
-; 8852
-
-.SGB_SlotMachine: ; 8852
- ld hl, PalPacket_9c96
- ld de, BlkPacket_9b06
- ret
-; 8859
-
-.SGB06: ; 8859
- ld hl, PalPacket_9ca6
- ld de, BlkPacket_9b76
- ret
-; 8860
-
-.SGB_Diploma:
-.SGB_MysteryGift: ; 8860
- ld hl, PalPacket_9cb6
- ld de, BlkPacket_9a86
- ret
-; 8867
-
-.SGB07: ; 8867
- ld b, 0
- ld hl, .BlkPacketTable_SGB07
-rept 4
- add hl, bc
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 8878
-
-.BlkPacketTable_SGB07: ; 8878
- dw BlkPacket_9a86, PalPacket_9be6
- dw BlkPacket_9a96, PalPacket_9c06
- dw BlkPacket_9a86, PalPacket_9c16
-; 8884
-
-.SGB0c: ; 8884
- ld hl, PalPacket_9b96
- ld de, BlkPacket_9b56
- ld a, SCGB_DIPLOMA
- ld [SGBPredef], a
- ret
-; 8890
-
-.SGB13: ; 8890
- ld hl, PalPacket_9ba6
- ld de, BlkPacket_9b86
- ret
-; 8897
-
-.SGB0f: ; 8897
- ld hl, PalPacket_9c46
- ld de, BlkPacket_9a86
- ret
-; 889e
-
-.SGB11: ; 889e
- ld hl, BlkPacket_9a86
- ld de, PlayerLightScreenCount
- ld bc, $10
- call CopyBytes
- ld hl, PalPacket_9bb6
- ld de, BlkPacket_9a86
- ret
-; 88b1
-
-.SGB_MapPals: ; 88b1
- ld hl, PalPacket_9bd6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- call .GetMapPalsIndex
- ld hl, wSGBPals + 1
- ld [hld], a
- ld de, BlkPacket_9a86
- ld a, SCGB_MAPPALS
- ld [SGBPredef], a
- ret
-; 88cd
-
-.SGB_Evolution: ; 88cd
- push bc
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- pop bc
- ld a, c
- and a
- jr z, .partymon
- ; Egg
- ld hl, wSGBPals + 3
- ; RGB 7, 7, 7
- ld [hl], $e7
- inc hl
- ld [hl], $1c
- inc hl
- ; RGB 2, 3, 3
- ld [hl], $62
- inc hl
- ld [hl], $c
- jr .done
-
-.partymon
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld c, l
- ld b, h
- ld a, [PlayerHPPal]
- call GetPlayerOrMonPalettePointer
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
-
-.done
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 891a
-
-.SGB0d:
-.SGB_TrainerCard: ; 891a
- ld hl, PalPacket_9cb6
- ld de, BlkPacket_9a86
- ret
-; 8921
-
-.SGB_UnownPuzzle: ; 8921
- ld hl, PalPacket_9bc6
- ld de, BlkPacket_9a86
- ret
-; 8928
-
-.SGB12: ; 8928
- ld hl, PalPacket_9bd6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld hl, BlkPacket_9a86
- ld de, wSGBPals + $10
- ld bc, $10
- call CopyBytes
- call .GetMapPalsIndex
- ld hl, wSGBPals + 1
- ld [hl], a
- ld hl, wSGBPals + 3
- ld [hl], $2e
- ld hl, wSGBPals + $13
- ld a, 5
- ld [hli], a
- ld a, [wMenuBorderLeftCoord]
- ld [hli], a
- ld a, [wMenuBorderTopCoord]
- ld [hli], a
- ld a, [wMenuBorderRightCoord]
- ld [hli], a
- ld a, [wMenuBorderBottomCoord]
- ld [hl], a
- ld hl, wSGBPals
- ld de, wSGBPals + $10
- ret
-; 8969
-
-.SGB1e: ; 8969
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld a, [CurPartySpecies]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- add hl, hl
- ld de, PokemonPalettes
- add hl, de
- ld a, [wcf65]
- and 3
- sla a
- sla a
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 89a6
-
-.SGB19: ; 89a6
- ld hl, PalPacket_9cd6
- ld de, BlkPacket_9a86
- ret
-; 89ad
-
-.SGB_PlayerOrMonFrontpicPals: ; 89ad
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 89d9
-
-.SGB_TradeTube: ; 89d9
- ld hl, PalPacket_9cc6
- ld de, BlkPacket_9a86
- ret
-; 89e0
-
-.SGB_TrainerOrMonFrontpicPals: ; 89e0
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetFrontpicPalettePointer
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 8a0c
-
-.GetMapPalsIndex: ; 8a0c
- ld a, [TimeOfDayPal]
- cp NITE_F
- jr c, .morn_day
- ld a, $19
- ret
-
-.morn_day
- ld a, [wPermission]
- cp ROUTE
- jr z, .route
- cp CAVE
- jr z, .cave
- cp DUNGEON
- jr z, .cave
- cp PERM_5
- jr z, .perm5
- cp GATE
- jr z, .gate
- ld a, [MapGroup]
- ld e, a
- ld d, 0
- ld hl, .SGBRoofPalInds
- add hl, de
- ld a, [hl]
- ret
-
-.route
- ld a, $00
- ret
-
-.cave
- ld a, $18
- ret
-
-.perm5
- ld a, $06
- ret
-
-.gate
- ld a, $03
- ret
-; 8a45
-
-.SGBRoofPalInds: ; 8a45
- db $00 ; Unused
- db $12 ; Olivine
- db $14 ; Mahogany
- db $18 ; Various Dungeons
- db $11 ; Ecruteak
- db $15 ; Blackthorn
- db $09 ; Cinnabar
- db $04 ; Cerulean
- db $0f ; Azalea
- db $16 ; Lake Of Rage
- db $0e ; Violet
- db $10 ; Goldenrod
- db $06 ; Vermilion
- db $01 ; Palette
- db $03 ; Pewter
- db $06 ; Fast Ship
- db $0b ; Indigo Plateau
- db $08 ; Fuchsia
- db $05 ; Lavender
- db $17 ; Silver Cave Outside
- db $08 ; Pokemon Center 2F
- db $07 ; Celadon
- db $13 ; Cianwood
- db $02 ; Viridian
- db $0c ; New Bark
- db $0a ; Saffron
- db $0d ; Cherrygrove
-; 8a60
-
-.Finish: ; 8a60
- push de
- call PushSGBPals_
- pop hl
- jp PushSGBPals_
-; 8a68
--- a/sram.asm
+++ b/sram.asm
@@ -1,9 +1,11 @@
SRAM_Begin EQU $a000
SRAM_End EQU $c000
+
GLOBAL SRAM_Begin, SRAM_End
SECTION "Scratch", SRAM
+
sScratch::
@@ -11,12 +13,12 @@
; a600
sPartyMail::
-sPartyMon1Mail:: mailmsg sPartyMon1Mail
-sPartyMon2Mail:: mailmsg sPartyMon2Mail
-sPartyMon3Mail:: mailmsg sPartyMon3Mail
-sPartyMon4Mail:: mailmsg sPartyMon4Mail
-sPartyMon5Mail:: mailmsg sPartyMon5Mail
-sPartyMon6Mail:: mailmsg sPartyMon6Mail
+sPartyMon1Mail:: mailmsg sPartyMon1Mail
+sPartyMon2Mail:: mailmsg sPartyMon2Mail
+sPartyMon3Mail:: mailmsg sPartyMon3Mail
+sPartyMon4Mail:: mailmsg sPartyMon4Mail
+sPartyMon5Mail:: mailmsg sPartyMon5Mail
+sPartyMon6Mail:: mailmsg sPartyMon6Mail
; a71a
sPartyMailBackup::
@@ -28,45 +30,45 @@
sPartyMon6MailBackup:: mailmsg sPartyMon6MailBackup
; a834
-sMailboxCount:: ds 1
+sMailboxCount:: db
sMailbox::
-sMailbox1:: mailmsg sMailbox1
-sMailbox2:: mailmsg sMailbox2
-sMailbox3:: mailmsg sMailbox3
-sMailbox4:: mailmsg sMailbox4
-sMailbox5:: mailmsg sMailbox5
-sMailbox6:: mailmsg sMailbox6
-sMailbox7:: mailmsg sMailbox7
-sMailbox8:: mailmsg sMailbox8
-sMailbox9:: mailmsg sMailbox9
-sMailbox10:: mailmsg sMailbox10
+sMailbox1:: mailmsg sMailbox1
+sMailbox2:: mailmsg sMailbox2
+sMailbox3:: mailmsg sMailbox3
+sMailbox4:: mailmsg sMailbox4
+sMailbox5:: mailmsg sMailbox5
+sMailbox6:: mailmsg sMailbox6
+sMailbox7:: mailmsg sMailbox7
+sMailbox8:: mailmsg sMailbox8
+sMailbox9:: mailmsg sMailbox9
+sMailbox10:: mailmsg sMailbox10
; aa0b
-sMailboxCountBackup:: ds 1
+sMailboxCountBackup:: db
sMailboxBackup::
-sMailbox1Backup:: mailmsg sMailbox1Backup
-sMailbox2Backup:: mailmsg sMailbox2Backup
-sMailbox3Backup:: mailmsg sMailbox3Backup
-sMailbox4Backup:: mailmsg sMailbox4Backup
-sMailbox5Backup:: mailmsg sMailbox5Backup
-sMailbox6Backup:: mailmsg sMailbox6Backup
-sMailbox7Backup:: mailmsg sMailbox7Backup
-sMailbox8Backup:: mailmsg sMailbox8Backup
-sMailbox9Backup:: mailmsg sMailbox9Backup
-sMailbox10Backup:: mailmsg sMailbox10Backup
+sMailbox1Backup:: mailmsg sMailbox1Backup
+sMailbox2Backup:: mailmsg sMailbox2Backup
+sMailbox3Backup:: mailmsg sMailbox3Backup
+sMailbox4Backup:: mailmsg sMailbox4Backup
+sMailbox5Backup:: mailmsg sMailbox5Backup
+sMailbox6Backup:: mailmsg sMailbox6Backup
+sMailbox7Backup:: mailmsg sMailbox7Backup
+sMailbox8Backup:: mailmsg sMailbox8Backup
+sMailbox9Backup:: mailmsg sMailbox9Backup
+sMailbox10Backup:: mailmsg sMailbox10Backup
; abe2
-sMysteryGiftItem:: ds 1
-sMysteryGiftUnlocked:: ds 1
-sBackupMysteryGiftItem:: ds 1
-sNumDailyMysteryGiftPartnerIDs:: ds 1
+sMysteryGiftItem:: db
+sMysteryGiftUnlocked:: db
+sBackupMysteryGiftItem:: db
+sNumDailyMysteryGiftPartnerIDs:: db
sDailyMysteryGiftPartnerIDs:: ds 5 * 2 ; maximum 5 per day, 2 bytes per ID
sMysteryGiftDecorationsReceived:: flag_array NUM_NON_TROPHY_DECOS
ds 4
-sMysteryGiftTimer:: ds 1
-sMysteryGiftTimerStartDay:: ds 1
+sMysteryGiftTimer:: db
+sMysteryGiftTimerStartDay:: db
ds 1
-sMysteryGiftTrainerHouseFlag:: ds 1
+sMysteryGiftTrainerHouseFlag:: db
sMysteryGiftPartnerName:: ds NAME_LENGTH
s0_ac09:: ds 1
sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2 ; ac0a
@@ -75,13 +77,15 @@
ds $30
sRTCStatusFlags:: ds 8
-sLuckyNumberDay:: ds 1
-sLuckyIDNumber:: ds 2
+sLuckyNumberDay:: db
+sLuckyIDNumber:: dw
+
SECTION "Backup Save", SRAM
+
sBackupOptions:: ds OptionsEnd - Options
-s0_b208:: ds 1 ; loaded with 99, used to check save corruption
+sBackupCheckValue1:: db ; loaded with SAVE_CHECK_VALUE_1, used to check save corruption
sBackupGameData:: ; b209
sBackupPlayerData:: ds wPlayerDataEnd - wPlayerData
@@ -93,16 +97,18 @@
ds $18a
; bf0d
-sBackupChecksum:: ds 2
-s0_bf0f:: ds 1 ; loaded with 0x7f, used to check save corruption
-sStackTop:: ds 2
+sBackupChecksum:: dw
+sBackupCheckValue2:: db ; loaded with SAVE_CHECK_VALUE_2, used to check save corruption
+sStackTop:: dw
+
+
SECTION "Save", SRAM
sOptions:: ds OptionsEnd - Options
-s1_a008:: ds 1 ; loaded with 99, used to check save corruption
+sCheckValue1:: db ; loaded with SAVE_CHECK_VALUE_1, used to check save corruption
sGameData:: ; a009
sPlayerData:: ds wPlayerDataEnd - wPlayerData
@@ -114,29 +120,29 @@
ds $18a
; ad0d
-sChecksum:: ds 2
-s1_ad0f:: ds 1 ; loaded with 0x7f, used to check save corruption
+sChecksum:: dw
+sCheckValue2:: db ; loaded with SAVE_CHECK_VALUE_2, used to check save corruption
+
+
SECTION "Active Box", SRAM
+
; ad10
box sBox
; b160
ds $f4
+
+
SECTION "Link Battle Data", SRAM
+
sLinkBattleResults:: ds $c
-sLinkBattleStats:: ; b260
-sLinkBattleWins:: ds 2
-sLinkBattleLosses:: ds 2 ; b262
-sLinkBattleDraws:: ds 2 ; b264
-link_battle_record: MACRO
-\1Name:: ds NAME_LENGTH +- 1
-\1ID:: ds 2
-\1Wins:: ds 2
-\1Losses:: ds 2
-\1Draws:: ds 2
-endm
+sLinkBattleStats::
+sLinkBattleWins:: dw ; b260
+sLinkBattleLosses:: dw ; b262
+sLinkBattleDraws:: dw ; b264
+
sLinkBattleRecord::
sLinkBattleRecord1:: link_battle_record sLinkBattleRecord1
sLinkBattleRecord2:: link_battle_record sLinkBattleRecord2
@@ -145,88 +151,80 @@
sLinkBattleRecord5:: link_battle_record sLinkBattleRecord5
sLinkBattleStatsEnd::
+
SECTION "SRAM Hall of Fame", SRAM
-sHallOfFame:: ; b2c0
-; temporary until I can find a way to macrofy it
- hall_of_fame sHallOfFame01
- hall_of_fame sHallOfFame02
- hall_of_fame sHallOfFame03
- hall_of_fame sHallOfFame04
- hall_of_fame sHallOfFame05
- hall_of_fame sHallOfFame06
- hall_of_fame sHallOfFame07
- hall_of_fame sHallOfFame08
- hall_of_fame sHallOfFame09
- hall_of_fame sHallOfFame10
- hall_of_fame sHallOfFame11
- hall_of_fame sHallOfFame12
- hall_of_fame sHallOfFame13
- hall_of_fame sHallOfFame14
- hall_of_fame sHallOfFame15
- hall_of_fame sHallOfFame16
- hall_of_fame sHallOfFame17
- hall_of_fame sHallOfFame18
- hall_of_fame sHallOfFame19
- hall_of_fame sHallOfFame20
- hall_of_fame sHallOfFame21
- hall_of_fame sHallOfFame22
- hall_of_fame sHallOfFame23
- hall_of_fame sHallOfFame24
- hall_of_fame sHallOfFame25
- hall_of_fame sHallOfFame26
- hall_of_fame sHallOfFame27
- hall_of_fame sHallOfFame28
- hall_of_fame sHallOfFame29
- hall_of_fame sHallOfFame30
-; x = 1
-; rept NUM_HOF_TEAMS
-; ; PRINTT("{x}\n")
-; if STRLEN({x}) == 2
- ; PRINTT(STRSUB({x},2,1))
- ; hall_of_fame STRCAT("sHallOfFame0", STRSUB({x},2,1))
-; else
- ; PRINTT(STRSUB({x},2,2))
- ; hall_of_fame STRCAT("sHallOfFame", STRSUB({x},2,2))
-; endc
-; x = x + 1
-; endr
+sHallOfFame:: ; b2c0
+sHallOfFame01:: hall_of_fame sHallOfFame01
+sHallOfFame02:: hall_of_fame sHallOfFame02
+sHallOfFame03:: hall_of_fame sHallOfFame03
+sHallOfFame04:: hall_of_fame sHallOfFame04
+sHallOfFame05:: hall_of_fame sHallOfFame05
+sHallOfFame06:: hall_of_fame sHallOfFame06
+sHallOfFame07:: hall_of_fame sHallOfFame07
+sHallOfFame08:: hall_of_fame sHallOfFame08
+sHallOfFame09:: hall_of_fame sHallOfFame09
+sHallOfFame10:: hall_of_fame sHallOfFame10
+sHallOfFame11:: hall_of_fame sHallOfFame11
+sHallOfFame12:: hall_of_fame sHallOfFame12
+sHallOfFame13:: hall_of_fame sHallOfFame13
+sHallOfFame14:: hall_of_fame sHallOfFame14
+sHallOfFame15:: hall_of_fame sHallOfFame15
+sHallOfFame16:: hall_of_fame sHallOfFame16
+sHallOfFame17:: hall_of_fame sHallOfFame17
+sHallOfFame18:: hall_of_fame sHallOfFame18
+sHallOfFame19:: hall_of_fame sHallOfFame19
+sHallOfFame20:: hall_of_fame sHallOfFame20
+sHallOfFame21:: hall_of_fame sHallOfFame21
+sHallOfFame22:: hall_of_fame sHallOfFame22
+sHallOfFame23:: hall_of_fame sHallOfFame23
+sHallOfFame24:: hall_of_fame sHallOfFame24
+sHallOfFame25:: hall_of_fame sHallOfFame25
+sHallOfFame26:: hall_of_fame sHallOfFame26
+sHallOfFame27:: hall_of_fame sHallOfFame27
+sHallOfFame28:: hall_of_fame sHallOfFame28
+sHallOfFame29:: hall_of_fame sHallOfFame29
+sHallOfFame30:: hall_of_fame sHallOfFame30
sHallOfFameEnd::
+
SECTION "SRAM Crystal Data", SRAM
-sMobileEventIndex:: ds 1 ; be3c
-sCrystalData::
- ds wCrystalDataEnd - wCrystalData
-sMobileEventIndexBackup:: ds 1
+sMobileEventIndex:: db ; be3c
+sCrystalData:: ds wCrystalDataEnd - wCrystalData
+sMobileEventIndexBackup:: db
+
+
SECTION "SRAM Battle Tower", SRAM
-; data of the BattleTower must be in SRAM because you can save and leave between battles
-sBattleTowerChallengeState:: ds 1
+
+; Battle Tower data must be in SRAM because you can save and leave between battles
+sBattleTowerChallengeState::
; 0: normal
; 2: battle tower
+ db
sBattleTower:: ; be46
-sNrOfBeatenBattleTowerTrainers:: ds 1
-sBTChoiceOfLevelGroup:: ds 1
-; The 7 trainers of the BattleTower are saved here, so nobody appears more than once
-sBTTrainers:: ; sbe48
- ds 7
-s1_be4f:: ds 1
-sBattleTowerReward:: ds 1
-; Pkmn of previous trainer
+sNrOfBeatenBattleTowerTrainers:: db
+sBTChoiceOfLevelGroup:: db
+; Battle Tower trainers are saved here, so nobody appears more than once
+sBTTrainers:: ds BATTLETOWER_NROFTRAINERS ; sbe48
+sBattleTowerSaveFileFlags:: db
+sBattleTowerReward:: db
+
+; team of previous trainer
sBTPkmnOfTrainers:: ; 0xbe51
-sBTPkmnPrevTrainer1::
- ds 1
-sBTPkmnPrevTrainer2:: ds 1
-sBTPkmnPrevTrainer3:: ds 1
-; Pkmn of preprevious trainer
-sBTPkmnPrevPrevTrainer1:: ds 1
-sBTPkmnPrevPrevTrainer2:: ds 1
-sBTPkmnPrevPrevTrainer3:: ds 1
+sBTPkmnPrevTrainer1:: db
+sBTPkmnPrevTrainer2:: db
+sBTPkmnPrevTrainer3:: db
+; team of preprevious trainer
+sBTPkmnPrevPrevTrainer1:: db
+sBTPkmnPrevPrevTrainer2:: db
+sBTPkmnPrevPrevTrainer3:: db
SECTION "Boxes 1-7", SRAM, BANK [2]
+
box sBox1
box sBox2
box sBox3
@@ -235,7 +233,9 @@
box sBox6
box sBox7
+
SECTION "Boxes 8-14", SRAM
+
box sBox8
box sBox9
box sBox10
@@ -245,7 +245,8 @@
box sBox14
SECTION "SRAM Mobile", SRAM, BANK [5]
-ds 1 ; Former location for sMobileEventIndex, moved to 1:BE3C in English
+
+ ds 1 ; former location for sMobileEventIndex, moved to 1:BE3C in English
sTrainerRankings:: ; a001
sTrainerRankingGameTimeHOF:: ds 4
sTrainerRankingStepCountHOF:: ds 4
@@ -291,9 +292,11 @@
sTrainerRankingBugContestScore:: ds 2
sTrainerRankingsChecksum:: ds 2
sTrainerRankingsEnd:: ; a083
+
ds 1 ; Former location for sMobileEventIndexBackup, moved to 1:BE44 in English
sTrainerRankingsBackup:: ds sTrainerRankingsEnd - sTrainerRankings
ds $945
; aa4b
+
sMobileLoginPassword:: ds MOBILE_LOGIN_PASSWORD_LENGTH
--- a/text/common_text.asm
+++ b/text/common_text.asm
@@ -1,12 +1,18 @@
INCLUDE "includes.asm"
+
SECTION "Text 1", ROMX
+
INCLUDE "text/common_1.asm"
+
SECTION "Text 2", ROMX
+
INCLUDE "text/common_2.asm"
INCLUDE "text/common_3.asm"
+
SECTION "Text 3", ROMX
+
INCLUDE "text/common_4.asm"
INCLUDE "text/common_5.asm"
--- a/text/sweethoney.asm
+++ /dev/null
@@ -1,68 +1,0 @@
-; Sweet Honey is a feature that was scrapped before development.
-; It was later implemented in Pokémon Diamond and Pearl.
-;
-; Sweet Honey was probably reworked into Sweet Scent.
-; A map in the final game has a Butterfree and a woman who gives
-; the Sweet Scent TM.
-
-; Most of these texts seem to be associated with a single NPC.
-; The last text is associated with a second NPC, probably a Butterfree.
-
-UnusedSweetHoneyText: ; 0x5578a
- text "My #MON is an"
- line "expert at collect-"
- cont "ing SWEET HONEY."
-
- para "I'll share some"
- line "with you."
- done
-
-UnusedSweetHoneyBagFullText: ; 0x557d6
- text "I want to give you"
- line "some SWEET HONEY,"
-
- para "but you have no"
- line "room for it."
- done
-
-UnusedSweetHoneyGiveText: ; 0x55819
- text "Here you go! Have"
- line "some SWEET HONEY!"
- done
-
-UnusedGotSweetHoneyText: ; 0x5583e
- text "<PLAYER> received"
- line "SWEET HONEY."
- done
-
-UnusedSweetHoneyAfterText1: ; 0x55856
- text "My little brother"
- line "takes SWEET HONEY"
-
- para "and goes somewhere"
- line "with it."
-
- para "I wonder what he's"
- line "up to?"
- done
-
-UnusedSweetHoneyAfterText2: ; 0x558b1
- text "Did you put SWEET"
- line "HONEY on a tree?"
-
- para "What happened to"
- line "it?"
- done
-
-UnusedSweetHoneyAfterText3: ; 0x558ea
- text "Did you put SWEET"
- line "HONEY on a tree?"
-
- para "It takes about a"
- line "day for #MON to"
- cont "be drawn to it."
- done
-
-UnusedSweetHoneyButterfreeText: ; 0x5593f
- text "BUTTERFREE: Freeh!"
- done
--- a/text/trainer_class_names.asm
+++ /dev/null
@@ -1,67 +1,0 @@
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "RIVAL@"
- db "#MON PROF.@"
- db "ELITE FOUR@"
- db "<PKMN> TRAINER@"
- db "ELITE FOUR@"
- db "ELITE FOUR@"
- db "ELITE FOUR@"
- db "CHAMPION@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "SCIENTIST@"
- db "LEADER@"
- db "YOUNGSTER@"
- db "SCHOOLBOY@"
- db "BIRD KEEPER@"
- db "LASS@"
- db "LEADER@"
- db "COOLTRAINER@"
- db "COOLTRAINER@"
- db "BEAUTY@"
- db "#MANIAC@"
- db "ROCKET@"
- db "GENTLEMAN@"
- db "SKIER@"
- db "TEACHER@"
- db "LEADER@"
- db "BUG CATCHER@"
- db "FISHER@"
- db "SWIMMER♂@"
- db "SWIMMER♀@"
- db "SAILOR@"
- db "SUPER NERD@"
- db "RIVAL@"
- db "GUITARIST@"
- db "HIKER@"
- db "BIKER@"
- db "LEADER@"
- db "BURGLAR@"
- db "FIREBREATHER@"
- db "JUGGLER@"
- db "BLACKBELT@"
- db "ROCKET@"
- db "PSYCHIC@"
- db "PICNICKER@"
- db "CAMPER@"
- db "ROCKET@"
- db "SAGE@"
- db "MEDIUM@"
- db "BOARDER@"
- db "#FAN@"
- db "KIMONO GIRL@"
- db "TWINS@"
- db "#FAN@"
- db "<PKMN> TRAINER@"
- db "LEADER@"
- db "OFFICER@"
- db "ROCKET@"
- db "MYSTICALMAN@"
--- /dev/null
+++ b/text/unused_gen_1_trainers.asm
@@ -1,0 +1,92 @@
+GetGen1TrainerClassName: ; 50a28
+; XXX
+ ld hl, .Strings
+ ld a, [TrainerClass]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, StringBuffer1
+.copy
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp "@"
+ jr nz, .copy
+ ret
+
+.Strings: ; 50a42
+; Untranslated trainer class names from Red.
+ dw .Youngster
+ dw .BugCatcher
+ dw .Lass
+ dw OTClassName
+ dw .JrTrainerM
+ dw .JrTrainerF
+ dw .Pokemaniac
+ dw .SuperNerd
+ dw OTClassName
+ dw OTClassName
+ dw .Burglar
+ dw .Engineer
+ dw .Jack
+ dw OTClassName
+ dw .Swimmer
+ dw OTClassName
+ dw OTClassName
+ dw .Beauty
+ dw OTClassName
+ dw .Rocker
+ dw .Juggler
+ dw OTClassName
+ dw OTClassName
+ dw .Blackbelt
+ dw OTClassName
+ dw .ProfOak
+ dw .Chief
+ dw .Scientist
+ dw OTClassName
+ dw .Rocket
+ dw .CooltrainerM
+ dw .CooltrainerF
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+
+.Youngster: db "たんパン@"
+.BugCatcher: db "むしとり@"
+.Lass: db "ミニスカ@"
+.JrTrainerM: db "ボーイ@"
+.JrTrainerF: db "ガール@"
+.Pokemaniac: db "マニア@"
+.SuperNerd: db "りかけい@"
+.Burglar: db "どろぼう@"
+.Engineer: db "ォヤジ@"
+.Jack: db "ジャック@"
+.Swimmer: db "かいパン@"
+.Beauty: db "おねえさん@"
+.Rocker: db "グループ@"
+.Juggler: db "ジャグラー@"
+.Blackbelt: db "からて@"
+.ProfOak: db "ォーキド@"
+.Chief: db "チーフ@"
+.Scientist: db "けんきゅういん@"
+.Rocket: db "だんいん@"
+.CooltrainerM: db "エりート♂@"
+.CooltrainerF: db "エりート♀@"
--- /dev/null
+++ b/text/unused_sweet_honey.asm
@@ -1,0 +1,68 @@
+; Sweet Honey is a feature that was scrapped before development.
+; It was later implemented in Pokémon Diamond and Pearl.
+;
+; Sweet Honey was probably reworked into Sweet Scent.
+; A map in the final game has a Butterfree and a woman who gives
+; the Sweet Scent TM.
+
+; Most of these texts seem to be associated with a single NPC.
+; The last text is associated with a second NPC, probably a Butterfree.
+
+UnusedSweetHoneyText: ; 0x5578a
+ text "My #MON is an"
+ line "expert at collect-"
+ cont "ing SWEET HONEY."
+
+ para "I'll share some"
+ line "with you."
+ done
+
+UnusedSweetHoneyBagFullText: ; 0x557d6
+ text "I want to give you"
+ line "some SWEET HONEY,"
+
+ para "but you have no"
+ line "room for it."
+ done
+
+UnusedSweetHoneyGiveText: ; 0x55819
+ text "Here you go! Have"
+ line "some SWEET HONEY!"
+ done
+
+UnusedGotSweetHoneyText: ; 0x5583e
+ text "<PLAYER> received"
+ line "SWEET HONEY."
+ done
+
+UnusedSweetHoneyAfterText1: ; 0x55856
+ text "My little brother"
+ line "takes SWEET HONEY"
+
+ para "and goes somewhere"
+ line "with it."
+
+ para "I wonder what he's"
+ line "up to?"
+ done
+
+UnusedSweetHoneyAfterText2: ; 0x558b1
+ text "Did you put SWEET"
+ line "HONEY on a tree?"
+
+ para "What happened to"
+ line "it?"
+ done
+
+UnusedSweetHoneyAfterText3: ; 0x558ea
+ text "Did you put SWEET"
+ line "HONEY on a tree?"
+
+ para "It takes about a"
+ line "day for #MON to"
+ cont "be drawn to it."
+ done
+
+UnusedSweetHoneyButterfreeText: ; 0x5593f
+ text "BUTTERFREE: Freeh!"
+ done
--- a/tilesets/bg.pal
+++ /dev/null
@@ -1,227 +1,0 @@
-; morn
-
-; gray
- RGB 28, 31, 16
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 07, 07, 07
-; red
- RGB 28, 31, 16
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-; green
- RGB 22, 31, 10
- RGB 12, 25, 01
- RGB 05, 14, 00
- RGB 07, 07, 07
-; water
- RGB 31, 31, 31
- RGB 08, 12, 31
- RGB 01, 04, 31
- RGB 07, 07, 07
-; yellow
- RGB 28, 31, 16
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 07, 07, 07
-; brown
- RGB 28, 31, 16
- RGB 24, 18, 07
- RGB 20, 15, 03
- RGB 07, 07, 07
-; roof
- RGB 28, 31, 16
- RGB 15, 31, 31
- RGB 05, 17, 31
- RGB 07, 07, 07
-; text
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
-
-; day
-
-; gray
- RGB 27, 31, 27
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 07, 07, 07
-; red
- RGB 27, 31, 27
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-; green
- RGB 22, 31, 10
- RGB 12, 25, 01
- RGB 05, 14, 00
- RGB 07, 07, 07
-; water
- RGB 31, 31, 31
- RGB 08, 12, 31
- RGB 01, 04, 31
- RGB 07, 07, 07
-; yellow
- RGB 27, 31, 27
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 07, 07, 07
-; brown
- RGB 27, 31, 27
- RGB 24, 18, 07
- RGB 20, 15, 03
- RGB 07, 07, 07
-; roof
- RGB 27, 31, 27
- RGB 15, 31, 31
- RGB 05, 17, 31
- RGB 07, 07, 07
-; text
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
-
-; nite
-
-; gray
- RGB 15, 14, 24
- RGB 11, 11, 19
- RGB 07, 07, 12
- RGB 00, 00, 00
-; red
- RGB 15, 14, 24
- RGB 14, 07, 17
- RGB 13, 00, 08
- RGB 00, 00, 00
-; green
- RGB 15, 14, 24
- RGB 08, 13, 19
- RGB 00, 11, 13
- RGB 00, 00, 00
-; water
- RGB 15, 14, 24
- RGB 05, 05, 17
- RGB 03, 03, 10
- RGB 00, 00, 00
-; yellow
- RGB 30, 30, 11
- RGB 16, 14, 18
- RGB 16, 14, 10
- RGB 00, 00, 00
-; brown
- RGB 15, 14, 24
- RGB 12, 09, 15
- RGB 08, 04, 05
- RGB 00, 00, 00
-; roof
- RGB 15, 14, 24
- RGB 13, 12, 23
- RGB 11, 09, 20
- RGB 00, 00, 00
-; text
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
-
-; dark
-
-; gray
- RGB 01, 01, 02
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; red
- RGB 01, 01, 02
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; green
- RGB 01, 01, 02
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; water
- RGB 01, 01, 02
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; yellow
- RGB 30, 30, 11
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; brown
- RGB 01, 01, 02
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; roof
- RGB 01, 01, 02
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; text
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
-
-; indoor
-
-; gray
- RGB 30, 28, 26
- RGB 19, 19, 19
- RGB 13, 13, 13
- RGB 07, 07, 07
-; red
- RGB 30, 28, 26
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-; green
- RGB 18, 24, 09
- RGB 15, 20, 01
- RGB 09, 13, 00
- RGB 07, 07, 07
-; water
- RGB 30, 28, 26
- RGB 15, 16, 31
- RGB 09, 09, 31
- RGB 07, 07, 07
-; yellow
- RGB 30, 28, 26
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 07, 07, 07
-; brown
- RGB 26, 24, 17
- RGB 21, 17, 07
- RGB 16, 13, 03
- RGB 07, 07, 07
-; roof
- RGB 30, 28, 26
- RGB 17, 19, 31
- RGB 14, 16, 31
- RGB 07, 07, 07
-; text
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
-
-; overworld water
-
-; morn/day
- RGB 23, 23, 31
- RGB 18, 19, 31
- RGB 13, 12, 31
- RGB 07, 07, 07
-; nite
- RGB 15, 13, 27
- RGB 10, 09, 20
- RGB 04, 03, 18
- RGB 00, 00, 00
--- a/tilesets/house.pal
+++ /dev/null
@@ -1,40 +1,0 @@
-; gray
- RGB 30, 28, 26
- RGB 19, 19, 19
- RGB 13, 13, 13
- RGB 07, 07, 07
-; red
- RGB 30, 28, 26
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-; green
- RGB 30, 28, 26
- RGB 15, 20, 01
- RGB 09, 13, 00
- RGB 07, 07, 07
-; water (blue)
- RGB 30, 28, 26
- RGB 15, 16, 31
- RGB 09, 09, 31
- RGB 07, 07, 07
-; yellow
- RGB 30, 28, 26
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 07, 07, 07
-; brown
- RGB 26, 24, 17
- RGB 21, 17, 07
- RGB 16, 13, 03
- RGB 07, 07, 07
-; roof (glass)
- RGB 30, 28, 26
- RGB 31, 19, 24
- RGB 16, 13, 03
- RGB 07, 07, 07
-; text
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
--- /dev/null
+++ b/tilesets/house_1.pal
@@ -1,0 +1,40 @@
+; gray
+ RGB 30, 28, 26
+ RGB 19, 19, 19
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+; red
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+; green
+ RGB 30, 28, 26
+ RGB 15, 20, 01
+ RGB 09, 13, 00
+ RGB 07, 07, 07
+; water (blue)
+ RGB 30, 28, 26
+ RGB 15, 16, 31
+ RGB 09, 09, 31
+ RGB 07, 07, 07
+; yellow
+ RGB 30, 28, 26
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+; brown
+ RGB 26, 24, 17
+ RGB 21, 17, 07
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+; roof (glass)
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
--- a/tilesets/ob.pal
+++ /dev/null
@@ -1,39 +1,0 @@
- ; morn
- RGB 28,31,16, 31,19,10, 31,07,01, 00,00,00 ; red
- RGB 28,31,16, 31,19,10, 10,09,31, 00,00,00 ; blue
- RGB 28,31,16, 31,19,10, 07,23,03, 00,00,00 ; green
- RGB 28,31,16, 31,19,10, 15,10,03, 00,00,00 ; brown
- RGB 28,31,16, 31,19,10, 30,10,06, 00,00,00 ; pink
- RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
- RGB 22,31,10, 12,25,01, 05,14,00, 07,07,07 ; tree
- RGB 28,31,16, 24,18,07, 20,15,03, 07,07,07 ; rock
-
- ; day
- RGB 27,31,27, 31,19,10, 31,07,01, 00,00,00 ; red
- RGB 27,31,27, 31,19,10, 10,09,31, 00,00,00 ; blue
- RGB 27,31,27, 31,19,10, 07,23,03, 00,00,00 ; green
- RGB 27,31,27, 31,19,10, 15,10,03, 00,00,00 ; brown
- RGB 27,31,27, 31,19,10, 30,10,06, 00,00,00 ; pink
- RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
- RGB 22,31,10, 12,25,01, 05,14,00, 07,07,07 ; tree
- RGB 27,31,27, 24,18,07, 20,15,03, 07,07,07 ; rock
-
- ; nite
- RGB 15,14,24, 31,19,10, 31,07,01, 00,00,00 ; red
- RGB 15,14,24, 31,19,10, 10,09,31, 00,00,00 ; blue
- RGB 15,14,24, 31,19,10, 07,23,03, 00,00,00 ; green
- RGB 15,14,24, 31,19,10, 15,10,03, 00,00,00 ; brown
- RGB 15,14,24, 31,19,10, 30,10,06, 00,00,00 ; pink
- RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
- RGB 15,14,24, 08,13,19, 00,11,13, 00,00,00 ; tree
- RGB 15,14,24, 12,09,15, 08,04,05, 00,00,00 ; rock
-
- ; dark
- RGB 01,01,02, 31,19,10, 31,07,01, 00,00,00 ; red
- RGB 01,01,02, 31,19,10, 10,09,31, 00,00,00 ; blue
- RGB 01,01,02, 31,19,10, 07,23,03, 00,00,00 ; green
- RGB 01,01,02, 31,19,10, 15,10,03, 00,00,00 ; brown
- RGB 01,01,02, 31,19,10, 30,10,06, 00,00,00 ; pink
- RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
- RGB 01,01,02, 00,00,00, 00,00,00, 00,00,00 ; tree
- RGB 01,01,02, 00,00,00, 00,00,00, 00,00,00 ; rock
--- a/tilesets/palette_maps.asm
+++ b/tilesets/palette_maps.asm
@@ -105,8 +105,8 @@
INCLUDE "tilesets/players_house_2f_palette_map.asm"
; 0x4cb65
-UnusedPalMap1:
-INCBIN "tilesets/unused_palette_map_1.bin"
+UnusedMuseumPalMap: ; 0x4cb65
+INCLUDE "tilesets/unused_museum_palette_map.asm"
; 4cbd5
TilesetIcePathPalMap: ; 0x4cbd5
@@ -128,7 +128,3 @@
TilesetBattleTowerOutsidePalMap: ; 0x4cd95
INCLUDE "tilesets/battle_tower_outside_palette_map.asm"
; 0x4ce05
-
-UnusedPalMap2:
-INCBIN "tilesets/unused_palette_map_2.bin"
-; 4ce1f
--- a/tilesets/pokecom.pal
+++ /dev/null
@@ -1,40 +1,0 @@
-; gray
- RGB 30, 28, 26
- RGB 19, 19, 19
- RGB 13, 13, 13
- RGB 07, 07, 07
-; red
- RGB 30, 28, 26
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-; green
- RGB 18, 24, 09
- RGB 15, 20, 01
- RGB 09, 13, 00
- RGB 07, 07, 07
-; water (blue)
- RGB 30, 28, 26
- RGB 17, 19, 31
- RGB 14, 16, 31
- RGB 07, 07, 07
-; yellow
- RGB 31, 26, 21
- RGB 31, 20, 01
- RGB 14, 16, 31
- RGB 07, 07, 07
-; brown
- RGB 21, 17, 07
- RGB 17, 19, 31
- RGB 16, 13, 03
- RGB 07, 07, 07
-; roof
- RGB 05, 05, 16
- RGB 08, 19, 28
- RGB 00, 00, 00
- RGB 31, 31, 31
-; text
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
--- /dev/null
+++ b/tilesets/pokecom_center.pal
@@ -1,0 +1,40 @@
+; gray
+ RGB 30, 28, 26
+ RGB 19, 19, 19
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+; red
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+; green
+ RGB 18, 24, 09
+ RGB 15, 20, 01
+ RGB 09, 13, 00
+ RGB 07, 07, 07
+; water (blue)
+ RGB 30, 28, 26
+ RGB 17, 19, 31
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+; yellow
+ RGB 31, 26, 21
+ RGB 31, 20, 01
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+; brown
+ RGB 21, 17, 07
+ RGB 17, 19, 31
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+; roof
+ RGB 05, 05, 16
+ RGB 08, 19, 28
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
--- a/tilesets/roof.pal
+++ /dev/null
@@ -1,161 +1,0 @@
-; group 0 (unused)
- RGB 21, 21, 21
- RGB 11, 11, 11
- RGB 21, 21, 21
- RGB 11, 11, 11
-
-; group 1 (Olivine)
- RGB 14, 17, 31
- RGB 07, 11, 15
- RGB 09, 09, 17
- RGB 05, 07, 13
-
-; group 2 (Mahogany)
- RGB 12, 19, 00
- RGB 06, 10, 00
- RGB 06, 09, 07
- RGB 04, 05, 06
-
-; group 3
- RGB 21, 21, 21
- RGB 11, 11, 11
- RGB 21, 21, 21
- RGB 17, 08, 07
-
-; group 4 (Ecruteak)
- RGB 31, 19, 00
- RGB 27, 10, 05
- RGB 15, 07, 02
- RGB 11, 04, 02
-
-; group 5 (Blackthorn)
- RGB 11, 10, 16
- RGB 05, 06, 07
- RGB 03, 04, 08
- RGB 00, 00, 00
-
-; group 6 (Cinnabar)
- RGB 31, 10, 00
- RGB 18, 06, 00
- RGB 18, 05, 09
- RGB 17, 08, 07
-
-; group 7 (Cerulean)
- RGB 17, 27, 31
- RGB 05, 15, 31
- RGB 07, 08, 22
- RGB 07, 07, 16
-
-; group 8 (Azalea)
- RGB 22, 20, 10
- RGB 17, 14, 03
- RGB 11, 11, 05
- RGB 10, 09, 07
-
-; group 9 (Lake of Rage)
- RGB 31, 08, 04
- RGB 09, 09, 08
- RGB 18, 05, 09
- RGB 09, 09, 08
-
-; group 10 (Violet)
- RGB 24, 14, 31
- RGB 13, 07, 21
- RGB 12, 03, 18
- RGB 09, 03, 15
-
-; group 11 (Goldenrod)
- RGB 25, 25, 00
- RGB 20, 17, 08
- RGB 12, 12, 00
- RGB 10, 09, 05
-
-; group 12 (Vermilion)
- RGB 27, 23, 01
- RGB 23, 11, 00
- RGB 15, 11, 01
- RGB 11, 10, 01
-
-; group 13 (Pallet)
- RGB 27, 28, 31
- RGB 17, 19, 22
- RGB 14, 14, 18
- RGB 10, 09, 13
-
-; group 14 (Pewter)
- RGB 19, 19, 16
- RGB 10, 12, 15
- RGB 09, 09, 11
- RGB 04, 05, 07
-
-; group 15 (Mount Moon Square)
- RGB 14, 17, 31
- RGB 07, 11, 15
- RGB 09, 13, 19
- RGB 07, 07, 16
-
-; group 16 (Route 23)
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 11, 11, 19
- RGB 07, 07, 12
-
-; group 17 (Fuchsia)
- RGB 31, 18, 29
- RGB 17, 13, 20
- RGB 14, 06, 12
- RGB 11, 03, 10
-
-; group 18 (Lavender)
- RGB 23, 15, 31
- RGB 16, 05, 31
- RGB 12, 07, 17
- RGB 08, 06, 10
-
-; group 19 (Route 28)
- RGB 21, 21, 25
- RGB 16, 16, 16
- RGB 13, 13, 13
- RGB 07, 07, 07
-
-; group 20
- RGB 21, 21, 21
- RGB 11, 11, 11
- RGB 21, 21, 21
- RGB 11, 11, 11
-
-; group 21 (Celadon)
- RGB 19, 31, 15
- RGB 31, 22, 02
- RGB 12, 13, 09
- RGB 09, 12, 03
-
-; group 22 (Cianwood)
- RGB 15, 10, 31
- RGB 07, 05, 15
- RGB 06, 05, 17
- RGB 02, 02, 08
-
-; group 23 (Viridian)
- RGB 21, 31, 07
- RGB 13, 25, 04
- RGB 09, 14, 08
- RGB 06, 10, 04
-
-; group 24 (New Bark)
- RGB 20, 31, 14
- RGB 11, 23, 05
- RGB 09, 13, 08
- RGB 06, 09, 04
-
-; group 25 (Saffron)
- RGB 31, 26, 00
- RGB 31, 15, 00
- RGB 13, 13, 01
- RGB 08, 08, 01
-
-; group 26 (Cherrygrove)
- RGB 31, 14, 28
- RGB 31, 05, 21
- RGB 14, 07, 17
- RGB 13, 00, 08
--- a/tilesets/roofs.asm
+++ b/tilesets/roofs.asm
@@ -17,7 +17,7 @@
; 1c021
-INCLUDE "data/mapgroup_roofs.asm"
+INCLUDE "data/maps/mapgroup_roofs.asm"
Roofs: ; 1c03c
--- /dev/null
+++ b/tilesets/special_palettes.asm
@@ -1,0 +1,200 @@
+LoadSpecialMapPalette: ; 494ac
+ ld a, [wTileset]
+ cp TILESET_POKECOM_CENTER
+ jr z, .pokecom_2f
+ cp TILESET_BATTLE_TOWER
+ jr z, .battle_tower
+ cp TILESET_ICE_PATH
+ jr z, .ice_path
+ cp TILESET_HOUSE_1
+ jr z, .house
+ cp TILESET_RADIO_TOWER
+ jr z, .radio_tower
+ cp TILESET_CELADON_MANSION
+ jr z, .mansion_mobile
+ jr .do_nothing
+
+.pokecom_2f
+ call LoadPokeComPalette
+ scf
+ ret
+
+.battle_tower
+ call LoadBattleTowerPalette
+ scf
+ ret
+
+.ice_path
+ ld a, [wPermission] ; permission
+ and $7
+ cp INDOOR ; Hall of Fame
+ jr z, .do_nothing
+ call LoadIcePathPalette
+ scf
+ ret
+
+.house
+ call LoadHousePalette
+ scf
+ ret
+
+.radio_tower
+ call LoadRadioTowerPalette
+ scf
+ ret
+
+.mansion_mobile
+ call LoadMansionPalette
+ scf
+ ret
+
+.do_nothing
+ and a
+ ret
+; 494f2
+
+LoadPokeComPalette: ; 494f2
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, PokeComPalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 49501
+
+PokeComPalette: ; 49501
+INCLUDE "tilesets/pokecom_center.pal"
+; 49541
+
+LoadBattleTowerPalette: ; 49541
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, BattleTowerPalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 49550
+
+BattleTowerPalette: ; 49550
+INCLUDE "tilesets/battle_tower.pal"
+; 49590
+
+LoadIcePathPalette: ; 49590
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, IcePathPalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 4959f
+
+IcePathPalette: ; 4959f
+INCLUDE "tilesets/ice_path.pal"
+; 495df
+
+LoadHousePalette: ; 495df
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, HousePalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 495ee
+
+HousePalette: ; 495ee
+INCLUDE "tilesets/house_1.pal"
+; 4962e
+
+LoadRadioTowerPalette: ; 4962e
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, RadioTowerPalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 4963d
+
+RadioTowerPalette: ; 4963d
+INCLUDE "tilesets/radio_tower.pal"
+; 4967d
+
+MansionPalette1: ; 4967d
+ RGB 30, 28, 26
+ RGB 19, 19, 19
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+
+ RGB 18, 24, 09
+ RGB 15, 20, 01
+ RGB 09, 13, 00
+ RGB 07, 07, 07
+
+ RGB 30, 28, 26
+ RGB 15, 16, 31
+ RGB 09, 09, 31
+ RGB 07, 07, 07
+
+ RGB 30, 28, 26
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+
+ RGB 26, 24, 17
+ RGB 21, 17, 07
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+
+MansionPalette3: ; 496ad
+ RGB 30, 28, 26
+ RGB 17, 19, 31
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
+; 496bd
+
+MansionPalette4: ; 496bd
+ RGB 05, 05, 16
+ RGB 08, 19, 28
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+; 496c5
+
+LoadMansionPalette: ; 496c5
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, MansionPalette1
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals palette PAL_BG_YELLOW
+ ld hl, MansionPalette2
+ ld bc, 1 palettes
+ call FarCopyWRAM
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals palette PAL_BG_WATER
+ ld hl, MansionPalette3
+ ld bc, 1 palettes
+ call FarCopyWRAM
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals palette PAL_BG_ROOF
+ ld hl, MansionPalette4
+ ld bc, 1 palettes
+ call FarCopyWRAM
+ ret
+; 496fe
+
+MansionPalette2: ; 496fe
+ RGB 25, 24, 23
+ RGB 20, 19, 19
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+; 49706
--- /dev/null
+++ b/tilesets/unused_museum_palette_map.asm
@@ -1,0 +1,32 @@
+; Matches pokered's "gate" tileset (notable for its Pewter Museum tiles)
+; https://tcrf.net/Pok%C3%A9mon_Gold_and_Silver#Unused_Tile_Palette_Assignment_Data
+
+ tilepal 0, WATER, RED, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal 0, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 0, GRAY, GRAY, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal 0, BROWN, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 0, GRAY, GRAY, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal 0, ROOF, BROWN, BROWN, BROWN, ROOF, ROOF, ROOF, ROOF
+ tilepal 0, ROOF, ROOF, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal 0, ROOF, GRAY, ROOF, BROWN, ROOF, ROOF, GRAY, GRAY
+ tilepal 0, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, ROOF
+ tilepal 0, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
+ tilepal 0, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 0, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+
+rept 16
+ db $ff
+endr
+
+ tilepal 1, WATER, RED, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal 1, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 1, GRAY, GRAY, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal 1, BROWN, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 1, GRAY, GRAY, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal 1, ROOF, BROWN, BROWN, BROWN, ROOF, ROOF, ROOF, ROOF
+ tilepal 1, ROOF, ROOF, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal 1, ROOF, GRAY, ROOF, BROWN, ROOF, ROOF, GRAY, GRAY
+ tilepal 1, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, ROOF
+ tilepal 1, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
+ tilepal 1, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 1, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
binary files a/tilesets/unused_palette_map_1.bin /dev/null differ
--- a/tilesets/unused_palette_map_2.bin
+++ /dev/null
@@ -1,1 +1,0 @@
-
\ No newline at end of file
--- /dev/null
+++ b/tools/compare.sh
@@ -1,0 +1,11 @@
+#!/bin/sh
+# Compares baserom.gbc and pokecrystal.gbc
+
+# create baserom.txt if necessary
+if [ ! -f baserom.txt ]; then
+ hexdump -C baserom.gbc > baserom.txt
+fi
+
+hexdump -C pokecrystal.gbc > pokecrystal.txt
+
+diff -u baserom.txt pokecrystal.txt | less
--- /dev/null
+++ b/tools/compare2.sh
@@ -1,0 +1,51 @@
+#!/bin/sh
+# Compares baserom.gbc and pokecrystal.gbc
+
+# create baserom.txt if necessary
+crystal_md5=9f2922b235a5eeb78d65594e82ef5dde
+if [ ! -f baserom.gbc ]; then
+ echo "FATAL: Baserom not found"
+ exit 1
+fi
+
+if [ $1 ]; then
+ if [ $1 == "-v" ]; then
+ verbose=1
+ else
+ verbose = 0
+ fi
+else
+ verbose=0
+fi
+
+base_md5=`md5sum baserom.gbc | cut -d' ' -f1`
+if [ $verbose == 1 ]; then
+ echo "baserom.gbc: $base_md5"
+fi
+if [ $base_md5 != $crystal_md5 ]; then
+ echo "FATAL: Baserom is incorrect"
+ exit 1
+fi
+
+built_md5=`md5sum pokecrystal.gbc | cut -d' ' -f1`
+if [ $verbose == 1 ]; then
+ echo "pokecrystal.gbc: $built_md5"
+fi
+if [ $built_md5 != $crystal_md5 ]
+then
+ if [ $verbose == 1 ]; then
+ echo "Checksums do not match, here's where the ROMs differ..."
+ fi
+ if [ ! -f baserom.txt ]; then
+ hexdump -C baserom.gbc > baserom.txt
+ fi
+
+ hexdump -C pokecrystal.gbc > pokecrystal.txt
+
+ diff -u baserom.txt pokecrystal.txt | less
+else
+ if [ $verbose == 1 ]; then
+ echo "Checksums match! :D"
+ fi
+fi
+
--- /dev/null
+++ b/tools/toc.py
@@ -1,0 +1,89 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+"""
+Usage: python3 toc.py [-n] files.md...
+Replace a "## TOC" heading in a Markdown file with a table of contents,
+generated from the other headings in the file. Supports multiple files.
+Headings must start with "##" signs to be detected.
+"""
+
+import sys
+import re
+from collections import namedtuple
+
+toc_name = 'Contents'
+valid_toc_headings = {'## TOC', '##TOC'}
+
+TocItem = namedtuple('TocItem', ['name', 'anchor', 'level'])
+punctuation_regexp = re.compile(r'[^\w\- ]+')
+
+def name_to_anchor(name):
+ # GitHub's algorithm for generating anchors from headings
+ # https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/toc_filter.rb
+ anchor = name.strip().lower() # lowercase
+ anchor = re.sub(punctuation_regexp, '', anchor) # remove punctuation
+ anchor = anchor.replace(' ', '-') # replace spaces with dash
+ return anchor
+
+def get_toc_index(lines):
+ toc_index = None
+ for i, line in enumerate(lines):
+ if line.rstrip() in valid_toc_headings:
+ toc_index = i
+ break
+ return toc_index
+
+def get_toc_items(lines, toc_index):
+ for i, line in enumerate(lines):
+ if i <= toc_index:
+ continue
+ if line.startswith('##'):
+ name = line.lstrip('#')
+ level = len(line) - len(name) - len('##')
+ name = name.strip()
+ anchor = name_to_anchor(name)
+ yield TocItem(name, anchor, level)
+
+def toc_string(toc_items):
+ lines = ['## %s' % toc_name, '']
+ for name, anchor, level in toc_items:
+ padding = ' ' * level
+ line = '%s- [%s](#%s)' % (padding, name, anchor)
+ lines.append(line)
+ return '\n'.join(lines) + '\n'
+
+def add_toc(filename):
+ with open(filename, 'r', encoding='utf-8') as f:
+ lines = f.readlines()
+ toc_index = get_toc_index(lines)
+ if toc_index is None:
+ return None # no TOC heading
+ toc_items = list(get_toc_items(lines, toc_index))
+ if not toc_items:
+ return False # no content headings
+ with open(filename, 'w', encoding='utf-8') as f:
+ for i, line in enumerate(lines):
+ if i == toc_index:
+ f.write(toc_string(toc_items))
+ else:
+ f.write(line)
+ return True # OK
+
+def main():
+ if len(sys.argv) < 2:
+ print('*** ERROR: No filenames specified')
+ print(__doc__)
+ exit(1)
+ for filename in sys.argv[1:]:
+ print(filename)
+ result = add_toc(filename)
+ if result is None:
+ print('*** WARNING: No "## TOC" heading found')
+ elif result is False:
+ print('*** WARNING: No content headings found')
+ else:
+ print('OK')
+
+if __name__ == '__main__':
+ main()
--- a/trainers/attributes.asm
+++ /dev/null
@@ -1,406 +1,0 @@
-TrainerClassAttributes: ; 3959c
-; entries correspond to trainer classes (see constants/trainer_constants.asm)
-
-; Falkner
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Whitney
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Bugsy
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Morty
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Pryce
- db HYPER_POTION, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Jasmine
- db HYPER_POTION, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Chuck
- db FULL_HEAL, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Clair
- db FULL_HEAL, HYPER_POTION ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Rival1
- db 0, 0 ; items
- db 15 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Pokemon Prof
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_AGGRESSIVE + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Will
- db MAX_POTION, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Cal
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Bruno
- db MAX_POTION, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Karen
- db FULL_HEAL, MAX_POTION ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Koga
- db FULL_HEAL, FULL_RESTORE ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Champion
- db FULL_HEAL, FULL_RESTORE ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Brock
- db HYPER_POTION, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Misty
- db FULL_HEAL, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Lt Surge
- db HYPER_POTION, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Scientist
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Erika
- db HYPER_POTION, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Youngster
- db 0, 0 ; items
- db 4 ; base reward
- dw AI_BASIC + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Schoolboy
- db 0, 0 ; items
- db 8 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_OFTEN
-
-; Bird Keeper
- db 0, 0 ; items
- db 6 ; base reward
- dw AI_BASIC + AI_TYPES + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Lass
- db 0, 0 ; items
- db 6 ; base reward
- dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_OFTEN
-
-; Janine
- db DIRE_HIT, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Cooltrainerm
- db 0, 0 ; items
- db 12 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Cooltrainerf
- db 0, 0 ; items
- db 12 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Beauty
- db 0, 0 ; items
- db 22 ; base reward
- dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Pokemaniac
- db 0, 0 ; items
- db 15 ; base reward
- dw AI_BASIC + AI_SETUP + AI_OFFENSIVE + AI_AGGRESSIVE + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Gruntm
- db 0, 0 ; items
- db 10 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Gentleman
- db 0, 0 ; items
- db 18 ; base reward
- dw AI_BASIC + AI_SETUP + AI_AGGRESSIVE + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Skier
- db 0, 0 ; items
- db 18 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Teacher
- db 0, 0 ; items
- db 18 ; base reward
- dw AI_BASIC + AI_OPPORTUNIST + AI_AGGRESSIVE + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Sabrina
- db HYPER_POTION, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Bug Catcher
- db 0, 0 ; items
- db 4 ; base reward
- dw AI_BASIC + AI_SETUP + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Fisher
- db 0, 0 ; items
- db 10 ; base reward
- dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_OFTEN
-
-; Swimmerm
- db 0, 0 ; items
- db 2 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OFFENSIVE + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Swimmerf
- db 0, 0 ; items
- db 5 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Sailor
- db 0, 0 ; items
- db 10 ; base reward
- dw AI_BASIC + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Super Nerd
- db 0, 0 ; items
- db 8 ; base reward
- dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Rival2
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Guitarist
- db 0, 0 ; items
- db 8 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Hiker
- db 0, 0 ; items
- db 8 ; base reward
- dw AI_BASIC + AI_OFFENSIVE + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Biker
- db 0, 0 ; items
- db 8 ; base reward
- dw AI_BASIC + AI_TYPES + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Blaine
- db MAX_POTION, FULL_HEAL ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Burglar
- db 0, 0 ; items
- db 22 ; base reward
- dw AI_BASIC + AI_OFFENSIVE + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Firebreather
- db 0, 0 ; items
- db 12 ; base reward
- dw AI_BASIC + AI_SETUP + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Juggler
- db 0, 0 ; items
- db 10 ; base reward
- dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Blackbelt T
- db 0, 0 ; items
- db 6 ; base reward
- dw AI_BASIC + AI_OFFENSIVE + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Executivem
- db 0, 0 ; items
- db 18 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Psychic T
- db 0, 0 ; items
- db 8 ; base reward
- dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Picnicker
- db 0, 0 ; items
- db 5 ; base reward
- dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Camper
- db 0, 0 ; items
- db 5 ; base reward
- dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Executivef
- db 0, 0 ; items
- db 18 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Sage
- db 0, 0 ; items
- db 8 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Medium
- db 0, 0 ; items
- db 10 ; base reward
- dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Boarder
- db 0, 0 ; items
- db 18 ; base reward
- dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Pokefanm
- db 0, 0 ; items
- db 20 ; base reward
- dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Kimono Girl
- db 0, 0 ; items
- db 18 ; base reward
- dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Twins
- db 0, 0 ; items
- db 5 ; base reward
- dw NO_AI
- dw CONTEXT_USE + SWITCH_OFTEN
-
-; Pokefanf
- db 0, 0 ; items
- db 20 ; base reward
- dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Red
- db FULL_RESTORE, FULL_RESTORE ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Blue
- db FULL_RESTORE, FULL_RESTORE ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Officer
- db 0, 0 ; items
- db 10 ; base reward
- dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_STATUS
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Gruntf
- db 0, 0 ; items
- db 10 ; base reward
- dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Mysticalman
- db 0, 0 ; items
- db 25 ; base reward
- dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
- dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; 39771
--- a/trainers/dvs.asm
+++ /dev/null
@@ -1,93 +1,0 @@
-GetTrainerDVs: ; 270c4
-; Return the DVs of OtherTrainerClass in bc
-
- push hl
- ld a, [OtherTrainerClass]
- dec a
- ld c, a
- ld b, 0
-
- ld hl, TrainerClassDVs
- add hl, bc
- add hl, bc
-
- ld a, [hli]
- ld b, a
- ld c, [hl]
-
- pop hl
- ret
-; 270d6
-
-TrainerClassDVs: ; 270d6
-; entries correspond to trainer classes (see constants/trainer_constants.asm)
- ; Atk Spd
- ; Def Spc
- db $9A, $77 ; falkner
- db $88, $88 ; bugsy
- db $98, $88 ; whitney
- db $98, $88 ; morty
- db $98, $88 ; pryce
- db $98, $88 ; jasmine
- db $98, $88 ; chuck
- db $7C, $DD ; clair
- db $DD, $DD ; rival1
- db $98, $88 ; pokemon prof
- db $DC, $DD ; will
- db $DC, $DD ; cal
- db $DC, $DD ; bruno
- db $7F, $DF ; karen
- db $DC, $DD ; koga
- db $DC, $DD ; champion
- db $98, $88 ; brock
- db $78, $88 ; misty
- db $98, $88 ; lt surge
- db $98, $88 ; scientist
- db $78, $88 ; erika
- db $98, $88 ; youngster
- db $98, $88 ; schoolboy
- db $98, $88 ; bird keeper
- db $58, $88 ; lass
- db $98, $88 ; janine
- db $D8, $C8 ; cooltrainerm
- db $7C, $C8 ; cooltrainerf
- db $69, $C8 ; beauty
- db $98, $88 ; pokemaniac
- db $D8, $A8 ; gruntm
- db $98, $88 ; gentleman
- db $98, $88 ; skier
- db $68, $88 ; teacher
- db $7D, $87 ; sabrina
- db $98, $88 ; bug catcher
- db $98, $88 ; fisher
- db $98, $88 ; swimmerm
- db $78, $88 ; swimmerf
- db $98, $88 ; sailor
- db $98, $88 ; super nerd
- db $98, $88 ; rival2
- db $98, $88 ; guitarist
- db $A8, $88 ; hiker
- db $98, $88 ; biker
- db $98, $88 ; blaine
- db $98, $88 ; burglar
- db $98, $88 ; firebreather
- db $98, $88 ; juggler
- db $98, $88 ; blackbelt
- db $D8, $A8 ; executivem
- db $98, $88 ; psychic
- db $6A, $A8 ; picnicker
- db $98, $88 ; camper
- db $7E, $A8 ; executivef
- db $98, $88 ; sage
- db $78, $88 ; medium
- db $98, $88 ; boarder
- db $98, $88 ; pokefanm
- db $68, $8A ; kimono girl
- db $68, $A8 ; twins
- db $6D, $88 ; pokefanf
- db $FD, $DE ; red
- db $9D, $DD ; blue
- db $98, $88 ; officer
- db $7E, $A8 ; gruntf
- db $98, $88 ; mysticalman
-; 2715c
--- a/trainers/encounter_music.asm
+++ /dev/null
@@ -1,75 +1,0 @@
-; What music plays when a trainer notices you
-
-TrainerEncounterMusic::
-; entries correspond to trainer classes (see constants/trainer_constants.asm)
- db MUSIC_HIKER_ENCOUNTER ; none
- db MUSIC_YOUNGSTER_ENCOUNTER ; falkner
- db MUSIC_LASS_ENCOUNTER ; whitney
- db MUSIC_YOUNGSTER_ENCOUNTER ; bugsy
- db MUSIC_OFFICER_ENCOUNTER ; morty
- db MUSIC_OFFICER_ENCOUNTER ; pryce
- db MUSIC_LASS_ENCOUNTER ; jasmine
- db MUSIC_OFFICER_ENCOUNTER ; chuck
- db MUSIC_BEAUTY_ENCOUNTER ; clair
- db MUSIC_RIVAL_ENCOUNTER ; rival1
- db MUSIC_HIKER_ENCOUNTER ; pokemon_prof
- db MUSIC_HIKER_ENCOUNTER ; will
- db MUSIC_HIKER_ENCOUNTER ; cal
- db MUSIC_OFFICER_ENCOUNTER ; bruno
- db MUSIC_HIKER_ENCOUNTER ; karen
- db MUSIC_HIKER_ENCOUNTER ; koga
- db MUSIC_OFFICER_ENCOUNTER ; champion
- db MUSIC_YOUNGSTER_ENCOUNTER ; brock
- db MUSIC_LASS_ENCOUNTER ; misty
- db MUSIC_OFFICER_ENCOUNTER ; lt_surge
- db MUSIC_ROCKET_ENCOUNTER ; scientist
- db MUSIC_OFFICER_ENCOUNTER ; erika
- db MUSIC_YOUNGSTER_ENCOUNTER ; youngster
- db MUSIC_YOUNGSTER_ENCOUNTER ; schoolboy
- db MUSIC_YOUNGSTER_ENCOUNTER ; bird_keeper
- db MUSIC_LASS_ENCOUNTER ; lass
- db MUSIC_LASS_ENCOUNTER ; janine
- db MUSIC_HIKER_ENCOUNTER ; cooltrainerm
- db MUSIC_BEAUTY_ENCOUNTER ; cooltrainerf
- db MUSIC_BEAUTY_ENCOUNTER ; beauty
- db MUSIC_POKEMANIAC_ENCOUNTER ; pokemaniac
- db MUSIC_ROCKET_ENCOUNTER ; gruntm
- db MUSIC_HIKER_ENCOUNTER ; gentleman
- db MUSIC_BEAUTY_ENCOUNTER ; skier
- db MUSIC_BEAUTY_ENCOUNTER ; teacher
- db MUSIC_BEAUTY_ENCOUNTER ; sabrina
- db MUSIC_YOUNGSTER_ENCOUNTER ; bug_catcher
- db MUSIC_HIKER_ENCOUNTER ; fisher
- db MUSIC_HIKER_ENCOUNTER ; swimmerm
- db MUSIC_BEAUTY_ENCOUNTER ; swimmerf
- db MUSIC_HIKER_ENCOUNTER ; sailor
- db MUSIC_POKEMANIAC_ENCOUNTER ; super_nerd
- db MUSIC_RIVAL_ENCOUNTER ; rival2
- db MUSIC_HIKER_ENCOUNTER ; guitarist
- db MUSIC_HIKER_ENCOUNTER ; hiker
- db MUSIC_HIKER_ENCOUNTER ; biker
- db MUSIC_OFFICER_ENCOUNTER ; blaine
- db MUSIC_POKEMANIAC_ENCOUNTER ; burglar
- db MUSIC_HIKER_ENCOUNTER ; firebreather
- db MUSIC_POKEMANIAC_ENCOUNTER ; juggler
- db MUSIC_HIKER_ENCOUNTER ; blackbelt_t
- db MUSIC_ROCKET_ENCOUNTER ; executivem
- db MUSIC_YOUNGSTER_ENCOUNTER ; psychic_t
- db MUSIC_LASS_ENCOUNTER ; picnicker
- db MUSIC_YOUNGSTER_ENCOUNTER ; camper
- db MUSIC_ROCKET_ENCOUNTER ; executivef
- db MUSIC_SAGE_ENCOUNTER ; sage
- db MUSIC_SAGE_ENCOUNTER ; medium
- db MUSIC_HIKER_ENCOUNTER ; boarder
- db MUSIC_HIKER_ENCOUNTER ; pokefanm
- db MUSIC_KIMONO_ENCOUNTER ; kimono_girl
- db MUSIC_LASS_ENCOUNTER ; twins
- db MUSIC_BEAUTY_ENCOUNTER ; pokefanf
- db MUSIC_HIKER_ENCOUNTER ; red
- db MUSIC_RIVAL_ENCOUNTER ; blue
- db MUSIC_HIKER_ENCOUNTER ; officer
- db MUSIC_ROCKET_ENCOUNTER ; gruntf
- db MUSIC_HIKER_ENCOUNTER ; mysticalman
- db MUSIC_HIKER_ENCOUNTER
- db MUSIC_HIKER_ENCOUNTER
- db MUSIC_HIKER_ENCOUNTER
--- a/trainers/gendered_trainers.asm
+++ /dev/null
@@ -1,40 +1,0 @@
-MaleTrainers: ; 4e95d
- db BURGLAR
- db YOUNGSTER
- db SCHOOLBOY
- db BIRD_KEEPER
- db POKEMANIAC
- db GENTLEMAN
- db BUG_CATCHER
- db FISHER
- db SWIMMERM
- db SAILOR
- db SUPER_NERD
- db GUITARIST
- db HIKER
- db FIREBREATHER
- db BLACKBELT_T
- db PSYCHIC_T
- db CAMPER
- db COOLTRAINERM
- db BOARDER
- db JUGGLER
- db POKEFANM
- db OFFICER
- db SAGE
- db BIKER
- db SCIENTIST
-MaleTrainersEnd
-
-FemaleTrainers: ; 4e976
- db MEDIUM
- db LASS
- db BEAUTY
- db SKIER
- db TEACHER
- db SWIMMERF
- db PICNICKER
- db KIMONO_GIRL
- db POKEFANF
- db COOLTRAINERF
-FemaleTrainersEnd
--- a/trainers/read_attributes.asm
+++ /dev/null
@@ -1,64 +1,0 @@
-GetTrainerClassName: ; 3952d
- ld hl, RivalName
- ld a, c
- cp RIVAL1
- jr z, .rival
-
- ld [CurSpecies], a
- ld a, TRAINER_NAME
- ld [wNamedObjectTypeBuffer], a
- call GetName
- ld de, StringBuffer1
- ret
-
-.rival
- ld de, StringBuffer1
- push de
- ld bc, NAME_LENGTH
- call CopyBytes
- pop de
- ret
-
-GetOTName: ; 39550
- ld hl, OTPlayerName
- ld a, [wLinkMode]
- and a
- jr nz, .ok
-
- ld hl, RivalName
- ld a, c
- cp RIVAL1
- jr z, .ok
-
- ld [CurSpecies], a
- ld a, TRAINER_NAME
- ld [wNamedObjectTypeBuffer], a
- call GetName
- ld hl, StringBuffer1
-
-.ok
- ld bc, TRAINER_CLASS_NAME_LENGTH
- ld de, OTClassName
- push de
- call CopyBytes
- pop de
- ret
-
-GetTrainerAttributes: ; 3957b
- ld a, [TrainerClass]
- ld c, a
- call GetOTName
- ld a, [TrainerClass]
- dec a
- ld hl, TrainerClassAttributes + TRNATTR_ITEM1
- ld bc, NUM_TRAINER_ATTRIBUTES
- call AddNTimes
- ld de, wEnemyTrainerItem1
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld a, [hl]
- ld [wEnemyTrainerBaseReward], a
- ret
--- a/trainers/read_party.asm
+++ /dev/null
@@ -1,398 +1,0 @@
-
-ReadTrainerParty: ; 39771
- ld a, [InBattleTowerBattle]
- bit 0, a
- ret nz
-
- ld a, [wLinkMode]
- and a
- ret nz
-
- ld hl, OTPartyCount
- xor a
- ld [hli], a
- dec a
- ld [hl], a
-
- ld hl, OTPartyMons
- ld bc, OTPartyMonsEnd - OTPartyMons
- xor a
- call ByteFill
-
- ld a, [OtherTrainerClass]
- cp CAL
- jr nz, .not_cal2
- ld a, [OtherTrainerID]
- cp CAL2
- jr z, .cal2
- ld a, [OtherTrainerClass]
-.not_cal2
-
- dec a
- ld c, a
- ld b, 0
- ld hl, TrainerGroups
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [OtherTrainerID]
- ld b, a
-.skip_trainer
- dec b
- jr z, .got_trainer
-.loop
- ld a, [hli]
- cp $ff
- jr nz, .loop
- jr .skip_trainer
-.got_trainer
-
-.skip_name
- ld a, [hli]
- cp "@"
- jr nz, .skip_name
-
- ld a, [hli]
- ld c, a
- ld b, 0
- ld d, h
- ld e, l
- ld hl, TrainerTypes
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, .done
- push bc
- jp hl
-
-.done
- jp ComputeTrainerReward
-
-.cal2
- ld a, BANK(sMysteryGiftTrainer)
- call GetSRAMBank
- ld de, sMysteryGiftTrainer
- call TrainerType2
- call CloseSRAM
- jr .done
-; 397e3
-
-TrainerTypes: ; 397e3
- dw TrainerType1 ; level, species
- dw TrainerType2 ; level, species, moves
- dw TrainerType3 ; level, species, item
- dw TrainerType4 ; level, species, item, moves
-; 397eb
-
-TrainerType1: ; 397eb
-; normal (level, species)
- ld h, d
- ld l, e
-.loop
- ld a, [hli]
- cp $ff
- ret z
-
- ld [CurPartyLevel], a
- ld a, [hli]
- ld [CurPartySpecies], a
- ld a, OTPARTYMON
- ld [MonType], a
- push hl
- predef TryAddMonToParty
- pop hl
- jr .loop
-; 39806
-
-TrainerType2: ; 39806
-; moves
- ld h, d
- ld l, e
-.loop
- ld a, [hli]
- cp $ff
- ret z
-
- ld [CurPartyLevel], a
- ld a, [hli]
- ld [CurPartySpecies], a
- ld a, OTPARTYMON
- ld [MonType], a
-
- push hl
- predef TryAddMonToParty
- ld a, [OTPartyCount]
- dec a
- ld hl, OTPartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- pop hl
-
- ld b, NUM_MOVES
-.copy_moves
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .copy_moves
-
- push hl
-
- ld a, [OTPartyCount]
- dec a
- ld hl, OTPartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, MON_PP
- add hl, de
- push hl
- ld hl, MON_MOVES
- add hl, de
- pop de
-
- ld b, NUM_MOVES
-.copy_pp
- ld a, [hli]
- and a
- jr z, .copied_pp
-
- push hl
- push bc
- dec a
- ld hl, Moves + MOVE_PP
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
- pop bc
- pop hl
-
- ld [de], a
- inc de
- dec b
- jr nz, .copy_pp
-.copied_pp
-
- pop hl
- jr .loop
-; 39871
-
-TrainerType3: ; 39871
-; item
- ld h, d
- ld l, e
-.loop
- ld a, [hli]
- cp $ff
- ret z
-
- ld [CurPartyLevel], a
- ld a, [hli]
- ld [CurPartySpecies], a
- ld a, OTPARTYMON
- ld [MonType], a
- push hl
- predef TryAddMonToParty
- ld a, [OTPartyCount]
- dec a
- ld hl, OTPartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- jr .loop
-; 3989d (e:589d)
-
-TrainerType4: ; 3989d
-; item + moves
- ld h, d
- ld l, e
-.loop
- ld a, [hli]
- cp $ff
- ret z
-
- ld [CurPartyLevel], a
- ld a, [hli]
- ld [CurPartySpecies], a
-
- ld a, OTPARTYMON
- ld [MonType], a
-
- push hl
- predef TryAddMonToParty
- ld a, [OTPartyCount]
- dec a
- ld hl, OTPartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- pop hl
-
- ld a, [hli]
- ld [de], a
-
- push hl
- ld a, [OTPartyCount]
- dec a
- ld hl, OTPartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- pop hl
-
- ld b, NUM_MOVES
-.copy_moves
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .copy_moves
-
- push hl
-
- ld a, [OTPartyCount]
- dec a
- ld hl, OTPartyMon1
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, MON_PP
- add hl, de
-
- push hl
- ld hl, MON_MOVES
- add hl, de
- pop de
-
- ld b, NUM_MOVES
-.copy_pp
- ld a, [hli]
- and a
- jr z, .copied_pp
-
- push hl
- push bc
- dec a
- ld hl, Moves + MOVE_PP
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
- pop bc
- pop hl
-
- ld [de], a
- inc de
- dec b
- jr nz, .copy_pp
-.copied_pp
-
- pop hl
- jr .loop
-; 3991b
-
-ComputeTrainerReward: ; 3991b (e:591b)
- ld hl, hProduct
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld a, [wEnemyTrainerBaseReward]
- ld [hli], a
- ld a, [CurPartyLevel]
- ld [hl], a
- call Multiply
- ld hl, wBattleReward
- xor a
- ld [hli], a
- ld a, [hProduct + 2]
- ld [hli], a
- ld a, [hProduct + 3]
- ld [hl], a
- ret
-
-
-Battle_GetTrainerName:: ; 39939
- ld a, [InBattleTowerBattle]
- bit 0, a
- ld hl, OTPlayerName
- jp nz, CopyTrainerName
-
- ld a, [OtherTrainerID]
- ld b, a
- ld a, [OtherTrainerClass]
- ld c, a
-
-GetTrainerName:: ; 3994c
- ld a, c
- cp CAL
- jr nz, .not_cal2
-
- ld a, BANK(sMysteryGiftTrainerHouseFlag)
- call GetSRAMBank
- ld a, [sMysteryGiftTrainerHouseFlag]
- and a
- call CloseSRAM
- jr z, .not_cal2
-
- ld a, BANK(sMysteryGiftPartnerName)
- call GetSRAMBank
- ld hl, sMysteryGiftPartnerName
- call CopyTrainerName
- jp CloseSRAM
-
-.not_cal2
- dec c
- push bc
- ld b, 0
- ld hl, TrainerGroups
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop bc
-
-.loop
- dec b
- jr z, CopyTrainerName
-
-.skip
- ld a, [hli]
- cp $ff
- jr nz, .skip
- jr .loop
-
-CopyTrainerName: ; 39984
- ld de, StringBuffer1
- push de
- ld bc, NAME_LENGTH
- call CopyBytes
- pop de
- ret
-; 39990
-
-Function39990: ; 39990
-; This function is useless.
- ld de, StringBuffer1
- push de
- ld bc, NAME_LENGTH
- pop de
- ret
-; 39999
--- a/trainers/trainer_pointers.asm
+++ /dev/null
@@ -1,70 +1,0 @@
-; Each trainer class has its own group. See trainers.asm.
-
-TrainerGroups: ; 0x39999
- dw FalknerGroup
- dw WhitneyGroup
- dw BugsyGroup
- dw MortyGroup
- dw PryceGroup
- dw JasmineGroup
- dw ChuckGroup
- dw ClairGroup
- dw Rival1Group
- dw PokemonProfGroup
- dw WillGroup
- dw PKMNTrainerGroup
- dw BrunoGroup
- dw KarenGroup
- dw KogaGroup
- dw ChampionGroup
- dw BrockGroup
- dw MistyGroup
- dw LtSurgeGroup
- dw ScientistGroup
- dw ErikaGroup
- dw YoungsterGroup
- dw SchoolboyGroup
- dw BirdKeeperGroup
- dw LassGroup
- dw JanineGroup
- dw CooltrainerMGroup
- dw CooltrainerFGroup
- dw BeautyGroup
- dw PokemaniacGroup
- dw GruntMGroup
- dw GentlemanGroup
- dw SkierGroup
- dw TeacherGroup
- dw SabrinaGroup
- dw BugCatcherGroup
- dw FisherGroup
- dw SwimmerMGroup
- dw SwimmerFGroup
- dw SailorGroup
- dw SuperNerdGroup
- dw Rival2Group
- dw GuitaristGroup
- dw HikerGroup
- dw BikerGroup
- dw BlaineGroup
- dw BurglarGroup
- dw FirebreatherGroup
- dw JugglerGroup
- dw BlackbeltGroup
- dw ExecutiveMGroup
- dw PsychicGroup
- dw PicnickerGroup
- dw CamperGroup
- dw ExecutiveFGroup
- dw SageGroup
- dw MediumGroup
- dw BoarderGroup
- dw PokefanMGroup
- dw KimonoGirlGroup
- dw TwinsGroup
- dw PokefanFGroup
- dw RedGroup
- dw BlueGroup
- dw OfficerGroup
- dw GruntFGroup
- dw MysticalmanGroup
--- a/trainers/trainers.asm
+++ /dev/null
@@ -1,8829 +1,0 @@
-Trainers:
-
-; All trainers follow a basic structure:
- ; Name
- ; String in format "TEXT@"
- ; Type
- ; TRAINERTYPE_NORMAL: level, species
- ; TRAINERTYPE_MOVES: level, species, moves
- ; TRAINERTYPE_ITEM: level, species, item
- ; TRAINERTYPE_ITEM_MOVES: level, species, item, moves
- ; Party
- ; Up to six monsters following the data type
- ; $ff
-
-
-FalknerGroup:
-; ================================
-; ================
-
- ; FALKNER (1)
- db "FALKNER@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 7, PIDGEY
- db TACKLE
- db MUD_SLAP
- db 0
- db 0
-
- db 9, PIDGEOTTO
- db TACKLE
- db MUD_SLAP
- db GUST
- db 0
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-WhitneyGroup:
-; ================================
-; ================
-
- ; WHITNEY (1)
- db "WHITNEY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 18, CLEFAIRY
- db DOUBLESLAP
- db MIMIC
- db ENCORE
- db METRONOME
-
- db 20, MILTANK
- db ROLLOUT
- db ATTRACT
- db STOMP
- db MILK_DRINK
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BugsyGroup:
-; ================================
-; ================
-
- ; BUGSY (1)
- db "BUGSY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 14, METAPOD
- db TACKLE
- db STRING_SHOT
- db HARDEN
- db 0
-
- db 14, KAKUNA
- db POISON_STING
- db STRING_SHOT
- db HARDEN
- db 0
-
- db 16, SCYTHER
- db QUICK_ATTACK
- db LEER
- db FURY_CUTTER
- db 0
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-MortyGroup:
-; ================================
-; ================
-
- ; MORTY (1)
- db "MORTY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 21, GASTLY
- db LICK
- db SPITE
- db MEAN_LOOK
- db CURSE
-
- db 21, HAUNTER
- db HYPNOSIS
- db MIMIC
- db CURSE
- db NIGHT_SHADE
-
- db 25, GENGAR
- db HYPNOSIS
- db SHADOW_BALL
- db MEAN_LOOK
- db DREAM_EATER
-
- db 23, HAUNTER
- db SPITE
- db MEAN_LOOK
- db MIMIC
- db NIGHT_SHADE
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-PryceGroup:
-; ================================
-; ================
-
- ; PRYCE (1)
- db "PRYCE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 27, SEEL
- db HEADBUTT
- db ICY_WIND
- db AURORA_BEAM
- db REST
-
- db 29, DEWGONG
- db HEADBUTT
- db ICY_WIND
- db AURORA_BEAM
- db REST
-
- db 31, PILOSWINE
- db ICY_WIND
- db FURY_ATTACK
- db MIST
- db BLIZZARD
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-JasmineGroup:
-; ================================
-; ================
-
- ; JASMINE (1)
- db "JASMINE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, MAGNEMITE
- db THUNDERBOLT
- db SUPERSONIC
- db SONICBOOM
- db THUNDER_WAVE
-
- db 30, MAGNEMITE
- db THUNDERBOLT
- db SUPERSONIC
- db SONICBOOM
- db THUNDER_WAVE
-
- db 35, STEELIX
- db SCREECH
- db SUNNY_DAY
- db ROCK_THROW
- db IRON_TAIL
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-ChuckGroup:
-; ================================
-; ================
-
- ; CHUCK (1)
- db "CHUCK@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 27, PRIMEAPE
- db LEER
- db RAGE
- db KARATE_CHOP
- db FURY_SWIPES
-
- db 30, POLIWRATH
- db HYPNOSIS
- db MIND_READER
- db SURF
- db DYNAMICPUNCH
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-ClairGroup:
-; ================================
-; ================
-
- ; CLAIR (1)
- db "CLAIR@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 37, DRAGONAIR
- db THUNDER_WAVE
- db SURF
- db SLAM
- db DRAGONBREATH
-
- db 37, DRAGONAIR
- db THUNDER_WAVE
- db THUNDERBOLT
- db SLAM
- db DRAGONBREATH
-
- db 37, DRAGONAIR
- db THUNDER_WAVE
- db ICE_BEAM
- db SLAM
- db DRAGONBREATH
-
- db 40, KINGDRA
- db SMOKESCREEN
- db SURF
- db HYPER_BEAM
- db DRAGONBREATH
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-Rival1Group:
-; ================================
-; ================
-
- ; RIVAL1 (1)
- db "?@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 5, CHIKORITA
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (2)
- db "?@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 5, CYNDAQUIL
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (3)
- db "?@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 5, TOTODILE
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (4)
- db "?@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 12, GASTLY
- db 14, ZUBAT
- db 16, BAYLEEF
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (5)
- db "?@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 12, GASTLY
- db 14, ZUBAT
- db 16, QUILAVA
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (6)
- db "?@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 12, GASTLY
- db 14, ZUBAT
- db 16, CROCONAW
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (7)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 20, HAUNTER
- db LICK
- db SPITE
- db MEAN_LOOK
- db CURSE
-
- db 18, MAGNEMITE
- db TACKLE
- db THUNDERSHOCK
- db SUPERSONIC
- db SONICBOOM
-
- db 20, ZUBAT
- db LEECH_LIFE
- db SUPERSONIC
- db BITE
- db CONFUSE_RAY
-
- db 22, BAYLEEF
- db GROWL
- db REFLECT
- db RAZOR_LEAF
- db POISONPOWDER
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (8)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 20, HAUNTER
- db LICK
- db SPITE
- db MEAN_LOOK
- db CURSE
-
- db 18, MAGNEMITE
- db TACKLE
- db THUNDERSHOCK
- db SUPERSONIC
- db SONICBOOM
-
- db 20, ZUBAT
- db LEECH_LIFE
- db SUPERSONIC
- db BITE
- db CONFUSE_RAY
-
- db 22, QUILAVA
- db LEER
- db SMOKESCREEN
- db EMBER
- db QUICK_ATTACK
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (9)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 20, HAUNTER
- db LICK
- db SPITE
- db MEAN_LOOK
- db CURSE
-
- db 18, MAGNEMITE
- db TACKLE
- db THUNDERSHOCK
- db SUPERSONIC
- db SONICBOOM
-
- db 20, ZUBAT
- db LEECH_LIFE
- db SUPERSONIC
- db BITE
- db CONFUSE_RAY
-
- db 22, CROCONAW
- db LEER
- db RAGE
- db WATER_GUN
- db BITE
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (10)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 28, MAGNEMITE
- db TACKLE
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
-
- db 30, HAUNTER
- db LICK
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
-
- db 32, SNEASEL
- db LEER
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
-
- db 32, MEGANIUM
- db REFLECT
- db RAZOR_LEAF
- db POISONPOWDER
- db BODY_SLAM
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (11)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 28, MAGNEMITE
- db TACKLE
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
-
- db 30, HAUNTER
- db LICK
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
-
- db 32, SNEASEL
- db LEER
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
-
- db 32, QUILAVA
- db SMOKESCREEN
- db EMBER
- db QUICK_ATTACK
- db FLAME_WHEEL
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (12)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 28, MAGNEMITE
- db TACKLE
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
-
- db 30, HAUNTER
- db LICK
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
-
- db 32, SNEASEL
- db LEER
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
-
- db 32, FERALIGATR
- db RAGE
- db WATER_GUN
- db BITE
- db SCARY_FACE
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (13)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 34, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 36, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 35, MAGNETON
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 35, HAUNTER
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 35, KADABRA
- db DISABLE
- db PSYBEAM
- db RECOVER
- db FUTURE_SIGHT
-
- db 38, MEGANIUM
- db REFLECT
- db RAZOR_LEAF
- db POISONPOWDER
- db BODY_SLAM
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (14)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 34, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 36, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 35, MAGNETON
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 35, HAUNTER
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 35, KADABRA
- db DISABLE
- db PSYBEAM
- db RECOVER
- db FUTURE_SIGHT
-
- db 38, TYPHLOSION
- db SMOKESCREEN
- db EMBER
- db QUICK_ATTACK
- db FLAME_WHEEL
-
- db $ff ; end
-
-; ================
-
- ; RIVAL1 (15)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 34, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 36, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 34, MAGNETON
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 35, HAUNTER
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 35, KADABRA
- db DISABLE
- db PSYBEAM
- db RECOVER
- db FUTURE_SIGHT
-
- db 38, FERALIGATR
- db RAGE
- db WATER_GUN
- db SCARY_FACE
- db SLASH
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-PokemonProfGroup:
-; ================================
-; ================
-; ================================
-
-
-WillGroup:
-; ================================
-; ================
-
- ; WILL (1)
- db "WILL@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 40, XATU
- db QUICK_ATTACK
- db FUTURE_SIGHT
- db CONFUSE_RAY
- db PSYCHIC_M
-
- db 41, JYNX
- db DOUBLESLAP
- db LOVELY_KISS
- db ICE_PUNCH
- db PSYCHIC_M
-
- db 41, EXEGGUTOR
- db REFLECT
- db LEECH_SEED
- db EGG_BOMB
- db PSYCHIC_M
-
- db 41, SLOWBRO
- db CURSE
- db AMNESIA
- db BODY_SLAM
- db PSYCHIC_M
-
- db 42, XATU
- db QUICK_ATTACK
- db FUTURE_SIGHT
- db CONFUSE_RAY
- db PSYCHIC_M
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-PKMNTrainerGroup:
-; ================================
-; ================
-
- ; CAL (1)
- db "CAL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, CHIKORITA
- db 10, CYNDAQUIL
- db 10, TOTODILE
-
- db $ff ; end
-
-; ================
-
- ; CAL (2)
- db "CAL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, BAYLEEF
- db 30, QUILAVA
- db 30, CROCONAW
-
- db $ff ; end
-
-; ================
-
- ; CAL (3)
- db "CAL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 50, MEGANIUM
- db 50, TYPHLOSION
- db 50, FERALIGATR
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BrunoGroup:
-; ================================
-; ================
-
- ; BRUNO (1)
- db "BRUNO@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 42, HITMONTOP
- db PURSUIT
- db QUICK_ATTACK
- db DIG
- db DETECT
-
- db 42, HITMONLEE
- db SWAGGER
- db DOUBLE_KICK
- db HI_JUMP_KICK
- db FORESIGHT
-
- db 42, HITMONCHAN
- db THUNDERPUNCH
- db ICE_PUNCH
- db FIRE_PUNCH
- db MACH_PUNCH
-
- db 43, ONIX
- db BIND
- db EARTHQUAKE
- db SANDSTORM
- db ROCK_SLIDE
-
- db 46, MACHAMP
- db ROCK_SLIDE
- db FORESIGHT
- db VITAL_THROW
- db CROSS_CHOP
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-KarenGroup:
-; ================================
-; ================
-
- ; KAREN (1)
- db "KAREN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 42, UMBREON
- db SAND_ATTACK
- db CONFUSE_RAY
- db FAINT_ATTACK
- db MEAN_LOOK
-
- db 42, VILEPLUME
- db STUN_SPORE
- db ACID
- db MOONLIGHT
- db PETAL_DANCE
-
- db 45, GENGAR
- db LICK
- db SPITE
- db CURSE
- db DESTINY_BOND
-
- db 44, MURKROW
- db QUICK_ATTACK
- db WHIRLWIND
- db PURSUIT
- db FAINT_ATTACK
-
- db 47, HOUNDOOM
- db ROAR
- db PURSUIT
- db FLAMETHROWER
- db CRUNCH
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-KogaGroup:
-; ================================
-; ================
-
- ; KOGA (1)
- db "KOGA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 40, ARIADOS
- db DOUBLE_TEAM
- db SPIDER_WEB
- db BATON_PASS
- db GIGA_DRAIN
-
- db 41, VENOMOTH
- db SUPERSONIC
- db GUST
- db PSYCHIC_M
- db TOXIC
-
- db 43, FORRETRESS
- db PROTECT
- db SWIFT
- db EXPLOSION
- db SPIKES
-
- db 42, MUK
- db MINIMIZE
- db ACID_ARMOR
- db SLUDGE_BOMB
- db TOXIC
-
- db 44, CROBAT
- db DOUBLE_TEAM
- db QUICK_ATTACK
- db WING_ATTACK
- db TOXIC
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-ChampionGroup:
-; ================================
-; ================
-
- ; CHAMPION (1)
- db "LANCE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 44, GYARADOS
- db FLAIL
- db RAIN_DANCE
- db SURF
- db HYPER_BEAM
-
- db 47, DRAGONITE
- db THUNDER_WAVE
- db TWISTER
- db THUNDER
- db HYPER_BEAM
-
- db 47, DRAGONITE
- db THUNDER_WAVE
- db TWISTER
- db BLIZZARD
- db HYPER_BEAM
-
- db 46, AERODACTYL
- db WING_ATTACK
- db ANCIENTPOWER
- db ROCK_SLIDE
- db HYPER_BEAM
-
- db 46, CHARIZARD
- db FLAMETHROWER
- db WING_ATTACK
- db SLASH
- db HYPER_BEAM
-
- db 50, DRAGONITE
- db FIRE_BLAST
- db SAFEGUARD
- db OUTRAGE
- db HYPER_BEAM
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BrockGroup:
-; ================================
-; ================
-
- ; BROCK (1)
- db "BROCK@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 41, GRAVELER
- db DEFENSE_CURL
- db ROCK_SLIDE
- db ROLLOUT
- db EARTHQUAKE
-
- db 41, RHYHORN
- db FURY_ATTACK
- db SCARY_FACE
- db EARTHQUAKE
- db HORN_DRILL
-
- db 42, OMASTAR
- db BITE
- db SURF
- db PROTECT
- db SPIKE_CANNON
-
- db 44, ONIX
- db BIND
- db ROCK_SLIDE
- db BIDE
- db SANDSTORM
-
- db 42, KABUTOPS
- db SLASH
- db SURF
- db ENDURE
- db GIGA_DRAIN
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-MistyGroup:
-; ================================
-; ================
-
- ; MISTY (1)
- db "MISTY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 42, GOLDUCK
- db SURF
- db DISABLE
- db PSYCH_UP
- db PSYCHIC_M
-
- db 42, QUAGSIRE
- db SURF
- db AMNESIA
- db EARTHQUAKE
- db RAIN_DANCE
-
- db 44, LAPRAS
- db SURF
- db PERISH_SONG
- db BLIZZARD
- db RAIN_DANCE
-
- db 47, STARMIE
- db SURF
- db CONFUSE_RAY
- db RECOVER
- db ICE_BEAM
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-LtSurgeGroup:
-; ================================
-; ================
-
- ; LT_SURGE (1)
- db "LT.SURGE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 44, RAICHU
- db THUNDER_WAVE
- db QUICK_ATTACK
- db THUNDERBOLT
- db THUNDER
-
- db 40, ELECTRODE
- db SCREECH
- db DOUBLE_TEAM
- db SWIFT
- db EXPLOSION
-
- db 40, MAGNETON
- db LOCK_ON
- db DOUBLE_TEAM
- db SWIFT
- db ZAP_CANNON
-
- db 40, ELECTRODE
- db SCREECH
- db DOUBLE_TEAM
- db SWIFT
- db EXPLOSION
-
- db 46, ELECTABUZZ
- db QUICK_ATTACK
- db THUNDERPUNCH
- db LIGHT_SCREEN
- db THUNDER
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-ScientistGroup:
-; ================================
-; ================
-
- ; SCIENTIST (1)
- db "ROSS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, KOFFING
- db 22, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; SCIENTIST (2)
- db "MITCH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, DITTO
-
- db $ff ; end
-
-; ================
-
- ; SCIENTIST (3)
- db "JED@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, MAGNEMITE
- db 20, MAGNEMITE
- db 20, MAGNEMITE
-
- db $ff ; end
-
-; ================
-
- ; SCIENTIST (4)
- db "MARC@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, MAGNEMITE
- db 27, MAGNEMITE
- db 27, MAGNEMITE
-
- db $ff ; end
-
-; ================
-
- ; SCIENTIST (5)
- db "RICH@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, PORYGON
- db CONVERSION
- db CONVERSION2
- db RECOVER
- db TRI_ATTACK
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-ErikaGroup:
-; ================================
-; ================
-
- ; ERIKA (1)
- db "ERIKA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 42, TANGELA
- db VINE_WHIP
- db BIND
- db GIGA_DRAIN
- db SLEEP_POWDER
-
- db 41, JUMPLUFF
- db MEGA_DRAIN
- db LEECH_SEED
- db COTTON_SPORE
- db GIGA_DRAIN
-
- db 46, VICTREEBEL
- db SUNNY_DAY
- db SYNTHESIS
- db ACID
- db RAZOR_LEAF
-
- db 46, BELLOSSOM
- db SUNNY_DAY
- db SYNTHESIS
- db PETAL_DANCE
- db SOLARBEAM
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-YoungsterGroup:
-; ================================
-; ================
-
- ; YOUNGSTER (1)
- db "JOEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 4, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (2)
- db "MIKEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 2, PIDGEY
- db 4, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (3)
- db "ALBERT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 6, RATTATA
- db 8, ZUBAT
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (4)
- db "GORDON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, WOOPER
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (5)
- db "SAMUEL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 7, RATTATA
- db 10, SANDSHREW
- db 8, SPEAROW
- db 8, SPEAROW
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (6)
- db "IAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, MANKEY
- db 12, DIGLETT
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (7)
- db "JOEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (8)
- db "JOEY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 21, RATICATE
- db TAIL_WHIP
- db QUICK_ATTACK
- db HYPER_FANG
- db SCARY_FACE
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (9)
- db "WARREN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, FEAROW
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (10)
- db "JIMMY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, RATICATE
- db 33, ARBOK
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (11)
- db "OWEN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, GROWLITHE
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (12)
- db "JASON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, SANDSLASH
- db 33, CROBAT
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (13)
- db "JOEY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, RATICATE
- db TAIL_WHIP
- db QUICK_ATTACK
- db HYPER_FANG
- db PURSUIT
-
- db $ff ; end
-
-; ================
-
- ; YOUNGSTER (14)
- db "JOEY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 37, RATICATE
- db HYPER_BEAM
- db QUICK_ATTACK
- db HYPER_FANG
- db PURSUIT
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-SchoolboyGroup:
-; ================================
-; ================
-
- ; SCHOOLBOY (1)
- db "JACK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 12, ODDISH
- db 15, VOLTORB
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (2)
- db "KIPP@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, VOLTORB
- db 27, MAGNEMITE
- db 31, VOLTORB
- db 31, MAGNETON
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (3)
- db "ALAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, TANGELA
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (4)
- db "JOHNNY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, BELLSPROUT
- db 31, WEEPINBELL
- db 33, VICTREEBEL
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (5)
- db "DANNY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, JYNX
- db 31, ELECTABUZZ
- db 31, MAGMAR
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (6)
- db "TOMMY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, XATU
- db 34, ALAKAZAM
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (7)
- db "DUDLEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, ODDISH
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (8)
- db "JOE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, TANGELA
- db 33, VAPOREON
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (9)
- db "BILLY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, PARAS
- db 27, PARAS
- db 27, POLIWHIRL
- db 35, DITTO
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (10)
- db "CHAD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, MR__MIME
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (11)
- db "NATE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, LEDIAN
- db 32, EXEGGUTOR
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (12)
- db "RICKY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, AIPOM
- db 32, DITTO
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (13)
- db "JACK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 14, ODDISH
- db 17, VOLTORB
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (14)
- db "JACK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, GLOOM
- db 31, ELECTRODE
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (15)
- db "ALAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, TANGELA
- db 17, YANMA
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (16)
- db "ALAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, NATU
- db 22, TANGELA
- db 20, QUAGSIRE
- db 25, YANMA
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (17)
- db "CHAD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, MR__MIME
- db 19, MAGNEMITE
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (18)
- db "CHAD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, MR__MIME
- db 31, MAGNETON
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (19)
- db "JACK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, GLOOM
- db 33, GROWLITHE
- db 33, ELECTRODE
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (20)
- db "JACK@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 35, ELECTRODE
- db SCREECH
- db SONICBOOM
- db ROLLOUT
- db LIGHT_SCREEN
-
- db 35, GROWLITHE
- db SUNNY_DAY
- db LEER
- db TAKE_DOWN
- db FLAME_WHEEL
-
- db 37, VILEPLUME
- db SOLARBEAM
- db SLEEP_POWDER
- db ACID
- db MOONLIGHT
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (21)
- db "ALAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, NATU
- db 27, TANGELA
- db 30, QUAGSIRE
- db 30, YANMA
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (22)
- db "ALAN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 35, XATU
- db PECK
- db NIGHT_SHADE
- db SWIFT
- db FUTURE_SIGHT
-
- db 32, TANGELA
- db POISONPOWDER
- db VINE_WHIP
- db BIND
- db MEGA_DRAIN
-
- db 32, YANMA
- db QUICK_ATTACK
- db DOUBLE_TEAM
- db SONICBOOM
- db SUPERSONIC
-
- db 35, QUAGSIRE
- db TAIL_WHIP
- db SLAM
- db AMNESIA
- db EARTHQUAKE
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (23)
- db "CHAD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, MR__MIME
- db 34, MAGNETON
-
- db $ff ; end
-
-; ================
-
- ; SCHOOLBOY (24)
- db "CHAD@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 34, MR__MIME
- db PSYCHIC_M
- db LIGHT_SCREEN
- db REFLECT
- db ENCORE
-
- db 38, MAGNETON
- db ZAP_CANNON
- db THUNDER_WAVE
- db LOCK_ON
- db SWIFT
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BirdKeeperGroup:
-; ================================
-; ================
-
- ; BIRD_KEEPER (1)
- db "ROD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 7, PIDGEY
- db 7, PIDGEY
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (2)
- db "ABE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, SPEAROW
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (3)
- db "BRYAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 12, PIDGEY
- db 14, PIDGEOTTO
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (4)
- db "THEO@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, PIDGEY
- db 15, PIDGEY
- db 19, PIDGEY
- db 15, PIDGEY
- db 15, PIDGEY
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (5)
- db "TOBY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, DODUO
- db 16, DODUO
- db 17, DODUO
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (6)
- db "DENIS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, SPEAROW
- db 20, FEAROW
- db 18, SPEAROW
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (7)
- db "VANCE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, PIDGEOTTO
- db 25, PIDGEOTTO
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (8)
- db "HANK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 12, PIDGEY
- db 34, PIDGEOT
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (9)
- db "ROY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, FEAROW
- db 35, FEAROW
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (10)
- db "BORIS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, DODUO
- db 28, DODUO
- db 32, DODRIO
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (11)
- db "BOB@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, NOCTOWL
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (12)
- db "JOSE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 36, FARFETCH_D
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (13)
- db "PETER@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 6, PIDGEY
- db 6, PIDGEY
- db 8, SPEAROW
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (14)
- db "JOSE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, FARFETCH_D
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (15)
- db "PERRY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, FARFETCH_D
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (16)
- db "BRET@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, PIDGEOTTO
- db 32, FEAROW
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (17)
- db "JOSE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 40, FARFETCH_D
- db FURY_ATTACK
- db DETECT
- db FLY
- db SLASH
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (18)
- db "VANCE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, PIDGEOTTO
- db 32, PIDGEOTTO
-
- db $ff ; end
-
-; ================
-
- ; BIRD_KEEPER (19)
- db "VANCE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 38, PIDGEOT
- db TOXIC
- db QUICK_ATTACK
- db WHIRLWIND
- db FLY
-
- db 38, PIDGEOT
- db SWIFT
- db DETECT
- db STEEL_WING
- db FLY
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-LassGroup:
-; ================================
-; ================
-
- ; LASS (1)
- db "CARRIE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 18, SNUBBULL
- db SCARY_FACE
- db CHARM
- db BITE
- db LICK
-
- db $ff ; end
-
-; ================
-
- ; LASS (2)
- db "BRIDGET@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, JIGGLYPUFF
- db 15, JIGGLYPUFF
- db 15, JIGGLYPUFF
-
- db $ff ; end
-
-; ================
-
- ; LASS (3)
- db "ALICE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, GLOOM
- db 34, ARBOK
- db 30, GLOOM
-
- db $ff ; end
-
-; ================
-
- ; LASS (4)
- db "KRISE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 12, ODDISH
- db 15, CUBONE
-
- db $ff ; end
-
-; ================
-
- ; LASS (5)
- db "CONNIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 21, MARILL
-
- db $ff ; end
-
-; ================
-
- ; LASS (6)
- db "LINDA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, BULBASAUR
- db 32, IVYSAUR
- db 34, VENUSAUR
-
- db $ff ; end
-
-; ================
-
- ; LASS (7)
- db "LAURA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, GLOOM
- db 31, PIDGEOTTO
- db 31, BELLOSSOM
-
- db $ff ; end
-
-; ================
-
- ; LASS (8)
- db "SHANNON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, PARAS
- db 29, PARAS
- db 32, PARASECT
-
- db $ff ; end
-
-; ================
-
- ; LASS (9)
- db "MICHELLE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, SKIPLOOM
- db 33, HOPPIP
- db 34, JUMPLUFF
-
- db $ff ; end
-
-; ================
-
- ; LASS (10)
- db "DANA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 18, FLAAFFY
- db TACKLE
- db GROWL
- db THUNDERSHOCK
- db THUNDER_WAVE
-
- db 18, PSYDUCK
- db SCRATCH
- db TAIL_WHIP
- db DISABLE
- db CONFUSION
-
- db $ff ; end
-
-; ================
-
- ; LASS (11)
- db "ELLEN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, WIGGLYTUFF
- db 34, GRANBULL
-
- db $ff ; end
-
-; ================
-
- ; LASS (12)
- db "CONNIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 21, MARILL
-
- db $ff ; end
-
-; ================
-
- ; LASS (13)
- db "CONNIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 21, MARILL
-
- db $ff ; end
-
-; ================
-
- ; LASS (14)
- db "DANA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 21, FLAAFFY
- db TACKLE
- db GROWL
- db THUNDERSHOCK
- db THUNDER_WAVE
-
- db 21, PSYDUCK
- db SCRATCH
- db TAIL_WHIP
- db DISABLE
- db CONFUSION
-
- db $ff ; end
-
-; ================
-
- ; LASS (15)
- db "DANA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 29, PSYDUCK
- db SCRATCH
- db DISABLE
- db CONFUSION
- db SCREECH
-
- db 29, AMPHAROS
- db TACKLE
- db THUNDERSHOCK
- db THUNDER_WAVE
- db COTTON_SPORE
-
- db $ff ; end
-
-; ================
-
- ; LASS (16)
- db "DANA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 32, PSYDUCK
- db SCRATCH
- db DISABLE
- db CONFUSION
- db SCREECH
-
- db 32, AMPHAROS
- db TACKLE
- db THUNDERPUNCH
- db THUNDER_WAVE
- db COTTON_SPORE
-
- db $ff ; end
-
-; ================
-
- ; LASS (17)
- db "DANA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 36, AMPHAROS
- db SWIFT
- db THUNDERPUNCH
- db THUNDER_WAVE
- db COTTON_SPORE
-
- db 36, GOLDUCK
- db DISABLE
- db SURF
- db PSYCHIC_M
- db SCREECH
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-JanineGroup:
-; ================================
-; ================
-
- ; JANINE (1)
- db "JANINE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 36, CROBAT
- db SCREECH
- db SUPERSONIC
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 36, WEEZING
- db SMOG
- db SLUDGE_BOMB
- db TOXIC
- db EXPLOSION
-
- db 36, WEEZING
- db SMOG
- db SLUDGE_BOMB
- db TOXIC
- db EXPLOSION
-
- db 33, ARIADOS
- db SCARY_FACE
- db GIGA_DRAIN
- db STRING_SHOT
- db NIGHT_SHADE
-
- db 39, VENOMOTH
- db FORESIGHT
- db DOUBLE_TEAM
- db GUST
- db PSYCHIC_M
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-CooltrainerMGroup:
-; ================================
-; ================
-
- ; COOLTRAINERM (1)
- db "NICK@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 26, CHARMANDER
- db EMBER
- db SMOKESCREEN
- db RAGE
- db SCARY_FACE
-
- db 26, SQUIRTLE
- db WITHDRAW
- db WATER_GUN
- db BITE
- db CURSE
-
- db 26, BULBASAUR
- db LEECH_SEED
- db POISONPOWDER
- db SLEEP_POWDER
- db RAZOR_LEAF
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (2)
- db "AARON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, IVYSAUR
- db 24, CHARMELEON
- db 24, WARTORTLE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (3)
- db "PAUL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, DRATINI
- db 34, DRATINI
- db 34, DRATINI
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (4)
- db "CODY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, HORSEA
- db 36, SEADRA
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (5)
- db "MIKE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 37, DRAGONAIR
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (6)
- db "GAVEN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 35, VICTREEBEL
- db WRAP
- db TOXIC
- db ACID
- db RAZOR_LEAF
-
- db 35, KINGLER
- db BUBBLEBEAM
- db STOMP
- db GUILLOTINE
- db PROTECT
-
- db 35, FLAREON
- db SAND_ATTACK
- db QUICK_ATTACK
- db BITE
- db FIRE_SPIN
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (7)
- db "GAVEN@"
- db TRAINERTYPE_ITEM_MOVES
-
- ; party
-
- db 39, VICTREEBEL, NO_ITEM
- db GIGA_DRAIN
- db TOXIC
- db SLUDGE_BOMB
- db RAZOR_LEAF
-
- db 39, KINGLER, KINGS_ROCK
- db SURF
- db STOMP
- db GUILLOTINE
- db BLIZZARD
-
- db 39, FLAREON, NO_ITEM
- db FLAMETHROWER
- db QUICK_ATTACK
- db BITE
- db FIRE_SPIN
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (8)
- db "RYAN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 25, PIDGEOT
- db SAND_ATTACK
- db QUICK_ATTACK
- db WHIRLWIND
- db WING_ATTACK
-
- db 27, ELECTABUZZ
- db THUNDERPUNCH
- db LIGHT_SCREEN
- db SWIFT
- db SCREECH
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (9)
- db "JAKE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 33, PARASECT
- db LEECH_LIFE
- db SPORE
- db SLASH
- db SWORDS_DANCE
-
- db 35, GOLDUCK
- db CONFUSION
- db SCREECH
- db PSYCH_UP
- db FURY_SWIPES
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (10)
- db "GAVEN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 32, VICTREEBEL
- db WRAP
- db TOXIC
- db ACID
- db RAZOR_LEAF
-
- db 32, KINGLER
- db BUBBLEBEAM
- db STOMP
- db GUILLOTINE
- db PROTECT
-
- db 32, FLAREON
- db SAND_ATTACK
- db QUICK_ATTACK
- db BITE
- db FIRE_SPIN
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (11)
- db "BLAKE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 33, MAGNETON
- db THUNDERBOLT
- db SUPERSONIC
- db SWIFT
- db SCREECH
-
- db 31, QUAGSIRE
- db WATER_GUN
- db SLAM
- db AMNESIA
- db EARTHQUAKE
-
- db 31, EXEGGCUTE
- db LEECH_SEED
- db CONFUSION
- db SLEEP_POWDER
- db SOLARBEAM
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (12)
- db "BRIAN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 35, SANDSLASH
- db SAND_ATTACK
- db POISON_STING
- db SLASH
- db SWIFT
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (13)
- db "ERICK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, BULBASAUR
- db 10, CHARMANDER
- db 10, SQUIRTLE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (14)
- db "ANDY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, BULBASAUR
- db 10, CHARMANDER
- db 10, SQUIRTLE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (15)
- db "TYLER@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, BULBASAUR
- db 10, CHARMANDER
- db 10, SQUIRTLE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (16)
- db "SEAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, FLAREON
- db 35, TANGELA
- db 35, TAUROS
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (17)
- db "KEVIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 38, RHYHORN
- db 35, CHARMELEON
- db 35, WARTORTLE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (18)
- db "STEVE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 14, BULBASAUR
- db 14, CHARMANDER
- db 14, SQUIRTLE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (19)
- db "ALLEN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 27, CHARMELEON
- db EMBER
- db SMOKESCREEN
- db RAGE
- db SCARY_FACE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERM (20)
- db "DARIN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 37, DRAGONAIR
- db WRAP
- db SURF
- db DRAGON_RAGE
- db SLAM
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-CooltrainerFGroup:
-; ================================
-; ================
-
- ; COOLTRAINERF (1)
- db "GWEN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, EEVEE
- db 22, FLAREON
- db 22, VAPOREON
- db 22, JOLTEON
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (2)
- db "LOIS@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 25, SKIPLOOM
- db SYNTHESIS
- db POISONPOWDER
- db MEGA_DRAIN
- db LEECH_SEED
-
- db 25, NINETALES
- db EMBER
- db QUICK_ATTACK
- db CONFUSE_RAY
- db SAFEGUARD
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (3)
- db "FRAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 37, SEADRA
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (4)
- db "LOLA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, DRATINI
- db 36, DRAGONAIR
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (5)
- db "KATE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, SHELLDER
- db 28, CLOYSTER
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (6)
- db "IRENE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, GOLDEEN
- db 24, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (7)
- db "KELLY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, MARILL
- db 24, WARTORTLE
- db 24, WARTORTLE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (8)
- db "JOYCE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 36, PIKACHU
- db QUICK_ATTACK
- db DOUBLE_TEAM
- db THUNDERBOLT
- db THUNDER
-
- db 32, BLASTOISE
- db BITE
- db CURSE
- db SURF
- db RAIN_DANCE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (9)
- db "BETH@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 36, RAPIDASH
- db STOMP
- db FIRE_SPIN
- db FURY_ATTACK
- db AGILITY
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (10)
- db "REENA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, STARMIE
- db 33, NIDOQUEEN
- db 31, STARMIE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (11)
- db "MEGAN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 32, BULBASAUR
- db GROWL
- db LEECH_SEED
- db POISONPOWDER
- db RAZOR_LEAF
-
- db 32, IVYSAUR
- db GROWL
- db LEECH_SEED
- db POISONPOWDER
- db RAZOR_LEAF
-
- db 32, VENUSAUR
- db BODY_SLAM
- db SLEEP_POWDER
- db RAZOR_LEAF
- db SWEET_SCENT
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (12)
- db "BETH@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 39, RAPIDASH
- db STOMP
- db FIRE_SPIN
- db FURY_ATTACK
- db AGILITY
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (13)
- db "CAROL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, ELECTRODE
- db 35, STARMIE
- db 35, NINETALES
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (14)
- db "QUINN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 38, IVYSAUR
- db 38, STARMIE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (15)
- db "EMMA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, POLIWHIRL
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (16)
- db "CYBIL@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 25, BUTTERFREE
- db CONFUSION
- db SLEEP_POWDER
- db WHIRLWIND
- db GUST
-
- db 25, BELLOSSOM
- db ABSORB
- db STUN_SPORE
- db ACID
- db SOLARBEAM
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (17)
- db "JENN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, STARYU
- db 26, STARMIE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (18)
- db "BETH@"
- db TRAINERTYPE_ITEM_MOVES
-
- ; party
-
- db 43, RAPIDASH, FOCUS_BAND
- db STOMP
- db FIRE_SPIN
- db FURY_ATTACK
- db FIRE_BLAST
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (19)
- db "REENA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, STARMIE
- db 36, NIDOQUEEN
- db 34, STARMIE
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (20)
- db "REENA@"
- db TRAINERTYPE_ITEM_MOVES
-
- ; party
-
- db 38, STARMIE, NO_ITEM
- db DOUBLE_TEAM
- db PSYCHIC_M
- db WATERFALL
- db CONFUSE_RAY
-
- db 40, NIDOQUEEN, PINK_BOW
- db EARTHQUAKE
- db DOUBLE_KICK
- db TOXIC
- db BODY_SLAM
-
- db 38, STARMIE, NO_ITEM
- db BLIZZARD
- db PSYCHIC_M
- db WATERFALL
- db RECOVER
-
- db $ff ; end
-
-; ================
-
- ; COOLTRAINERF (21)
- db "CARA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 33, HORSEA
- db SMOKESCREEN
- db LEER
- db WHIRLPOOL
- db TWISTER
-
- db 33, HORSEA
- db SMOKESCREEN
- db LEER
- db WHIRLPOOL
- db TWISTER
-
- db 35, SEADRA
- db SWIFT
- db LEER
- db WATERFALL
- db TWISTER
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BeautyGroup:
-; ================================
-; ================
-
- ; BEAUTY (1)
- db "VICTORIA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, SENTRET
- db 13, SENTRET
- db 17, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (2)
- db "SAMANTHA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 16, MEOWTH
- db SCRATCH
- db GROWL
- db BITE
- db PAY_DAY
-
- db 16, MEOWTH
- db SCRATCH
- db GROWL
- db BITE
- db SLASH
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (3)
- db "JULIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (4)
- db "JACLYN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (5)
- db "BRENDA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, FURRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (6)
- db "CASSIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, VILEPLUME
- db 34, BUTTERFREE
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (7)
- db "CAROLINE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, MARILL
- db 32, SEEL
- db 30, MARILL
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (8)
- db "CARLENE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (9)
- db "JESSICA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (10)
- db "RACHAEL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (11)
- db "ANGELICA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (12)
- db "KENDRA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (13)
- db "VERONICA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (14)
- db "JULIA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, PARAS
- db 32, EXEGGCUTE
- db 35, PARASECT
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (15)
- db "THERESA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, SENTRET
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (16)
- db "VALERIE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 17, HOPPIP
- db SYNTHESIS
- db TAIL_WHIP
- db TACKLE
- db POISONPOWDER
-
- db 17, SKIPLOOM
- db SYNTHESIS
- db TAIL_WHIP
- db TACKLE
- db STUN_SPORE
-
- db $ff ; end
-
-; ================
-
- ; BEAUTY (17)
- db "OLIVIA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, CORSOLA
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-PokemaniacGroup:
-; ================================
-; ================
-
- ; POKEMANIAC (1)
- db "LARRY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, SLOWPOKE
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (2)
- db "ANDREW@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, MAROWAK
- db 24, MAROWAK
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (3)
- db "CALVIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, KANGASKHAN
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (4)
- db "SHANE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, NIDORINA
- db 16, NIDORINO
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (5)
- db "BEN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, SLOWBRO
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (6)
- db "BRENT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, LICKITUNG
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (7)
- db "RON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, NIDOKING
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (8)
- db "ETHAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, RHYHORN
- db 31, RHYDON
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (9)
- db "BRENT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, KANGASKHAN
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (10)
- db "BRENT@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 36, PORYGON
- db RECOVER
- db PSYCHIC_M
- db CONVERSION2
- db TRI_ATTACK
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (11)
- db "ISSAC@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 12, LICKITUNG
- db LICK
- db SUPERSONIC
- db CUT
- db 0
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (12)
- db "DONALD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, SLOWPOKE
- db 10, SLOWPOKE
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (13)
- db "ZACH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, RHYHORN
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (14)
- db "BRENT@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 41, CHANSEY
- db ROLLOUT
- db ATTRACT
- db EGG_BOMB
- db SOFTBOILED
-
- db $ff ; end
-
-; ================
-
- ; POKEMANIAC (15)
- db "MILLER@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, NIDOKING
- db 17, NIDOQUEEN
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-GruntMGroup:
-; ================================
-; ================
-
- ; GRUNTM (1)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 14, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (2)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 7, RATTATA
- db 9, ZUBAT
- db 9, ZUBAT
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (3)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, RATICATE
- db 24, RATICATE
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (4)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, GRIMER
- db 23, GRIMER
- db 25, MUK
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (5)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 21, RATTATA
- db 21, RATTATA
- db 23, RATTATA
- db 23, RATTATA
- db 23, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (6)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, ZUBAT
- db 26, ZUBAT
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (7)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, KOFFING
- db 23, GRIMER
- db 23, ZUBAT
- db 23, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (8)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, WEEZING
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (9)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, RATICATE
- db 26, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (10)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, ZUBAT
- db 24, GOLBAT
- db 22, GRIMER
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (11)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, MUK
- db 23, KOFFING
- db 25, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (12)
- db "EXECUTIVE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, HOUNDOUR
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (13)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (14)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, RATICATE
- db 24, GOLBAT
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (15)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, GRIMER
- db 23, WEEZING
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (16)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, RATTATA
- db 16, RATTATA
- db 16, RATTATA
- db 16, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (17)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, GOLBAT
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (18)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, RATTATA
- db 17, ZUBAT
- db 17, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (19)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, VENONAT
- db 18, VENONAT
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (20)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, DROWZEE
- db 19, ZUBAT
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (21)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, ZUBAT
- db 17, GRIMER
- db 18, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (22)
- db "EXECUTIVE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 36, GOLBAT
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (23)
- db "EXECUTIVE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (24)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, KOFFING
- db 25, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (25)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, KOFFING
- db 24, MUK
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (26)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, RATTATA
- db 15, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (27)
- db "EXECUTIVE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, ZUBAT
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (28)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, RATICATE
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (29)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, RATTATA
- db 9, RATTATA
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (30)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, GOLBAT
- db 25, GOLBAT
- db 30, ARBOK
-
- db $ff ; end
-
-; ================
-
- ; GRUNTM (31)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, GOLBAT
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-GentlemanGroup:
-; ================================
-; ================
-
- ; GENTLEMAN (1)
- db "PRESTON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, GROWLITHE
- db 18, GROWLITHE
-
- db $ff ; end
-
-; ================
-
- ; GENTLEMAN (2)
- db "EDWARD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, PERSIAN
-
- db $ff ; end
-
-; ================
-
- ; GENTLEMAN (3)
- db "GREGORY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 37, PIKACHU
- db 33, FLAAFFY
-
- db $ff ; end
-
-; ================
-
- ; GENTLEMAN (4)
- db "VIRGIL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, PONYTA
-
- db $ff ; end
-
-; ================
-
- ; GENTLEMAN (5)
- db "ALFRED@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, NOCTOWL
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-SkierGroup:
-; ================================
-; ================
-
- ; SKIER (1)
- db "ROXANNE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, JYNX
-
- db $ff ; end
-
-; ================
-
- ; SKIER (2)
- db "CLARISSA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, DEWGONG
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-TeacherGroup:
-; ================================
-; ================
-
- ; TEACHER (1)
- db "COLETTE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 36, CLEFAIRY
-
- db $ff ; end
-
-; ================
-
- ; TEACHER (2)
- db "HILLARY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, AIPOM
- db 36, CUBONE
-
- db $ff ; end
-
-; ================
-
- ; TEACHER (3)
- db "SHIRLEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, JIGGLYPUFF
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-SabrinaGroup:
-; ================================
-; ================
-
- ; SABRINA (1)
- db "SABRINA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 46, ESPEON
- db SAND_ATTACK
- db QUICK_ATTACK
- db SWIFT
- db PSYCHIC_M
-
- db 46, MR__MIME
- db BARRIER
- db REFLECT
- db BATON_PASS
- db PSYCHIC_M
-
- db 48, ALAKAZAM
- db RECOVER
- db FUTURE_SIGHT
- db PSYCHIC_M
- db REFLECT
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BugCatcherGroup:
-; ================================
-; ================
-
- ; BUG_CATCHER (1)
- db "DON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 3, CATERPIE
- db 3, CATERPIE
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (2)
- db "ROB@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, BEEDRILL
- db 32, BUTTERFREE
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (3)
- db "ED@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, BEEDRILL
- db 30, BEEDRILL
- db 30, BEEDRILL
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (4)
- db "WADE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 2, CATERPIE
- db 2, CATERPIE
- db 3, WEEDLE
- db 2, CATERPIE
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (5)
- db "BENNY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 7, WEEDLE
- db 9, KAKUNA
- db 12, BEEDRILL
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (6)
- db "AL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 12, CATERPIE
- db 12, WEEDLE
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (7)
- db "JOSH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 13, PARAS
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (8)
- db "ARNIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, VENONAT
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (9)
- db "KEN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, ARIADOS
- db 32, PINSIR
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (10)
- db "WADE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, METAPOD
- db 9, METAPOD
- db 10, KAKUNA
- db 9, METAPOD
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (11)
- db "WADE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 14, BUTTERFREE
- db 14, BUTTERFREE
- db 15, BEEDRILL
- db 14, BUTTERFREE
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (12)
- db "DOUG@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, ARIADOS
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (13)
- db "ARNIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, VENONAT
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (14)
- db "ARNIE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 28, VENOMOTH
- db DISABLE
- db SUPERSONIC
- db CONFUSION
- db LEECH_LIFE
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (15)
- db "WADE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 24, BUTTERFREE
- db CONFUSION
- db POISONPOWDER
- db SUPERSONIC
- db WHIRLWIND
-
- db 24, BUTTERFREE
- db CONFUSION
- db STUN_SPORE
- db SUPERSONIC
- db WHIRLWIND
-
- db 25, BEEDRILL
- db FURY_ATTACK
- db FOCUS_ENERGY
- db TWINEEDLE
- db RAGE
-
- db 24, BUTTERFREE
- db CONFUSION
- db SLEEP_POWDER
- db SUPERSONIC
- db WHIRLWIND
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (16)
- db "WADE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, BUTTERFREE
- db CONFUSION
- db POISONPOWDER
- db SUPERSONIC
- db GUST
-
- db 30, BUTTERFREE
- db CONFUSION
- db STUN_SPORE
- db SUPERSONIC
- db GUST
-
- db 32, BEEDRILL
- db FURY_ATTACK
- db PURSUIT
- db TWINEEDLE
- db DOUBLE_TEAM
-
- db 34, BUTTERFREE
- db PSYBEAM
- db SLEEP_POWDER
- db GUST
- db WHIRLWIND
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (17)
- db "ARNIE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 36, VENOMOTH
- db GUST
- db SUPERSONIC
- db PSYBEAM
- db LEECH_LIFE
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (18)
- db "ARNIE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 40, VENOMOTH
- db GUST
- db SUPERSONIC
- db PSYCHIC_M
- db TOXIC
-
- db $ff ; end
-
-; ================
-
- ; BUG_CATCHER (19)
- db "WAYNE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 8, LEDYBA
- db 10, PARAS
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-FisherGroup:
-; ================================
-; ================
-
- ; FISHER (1)
- db "JUSTIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 5, MAGIKARP
- db 5, MAGIKARP
- db 15, MAGIKARP
- db 5, MAGIKARP
-
- db $ff ; end
-
-; ================
-
- ; FISHER (2)
- db "RALPH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, GOLDEEN
-
- db $ff ; end
-
-; ================
-
- ; FISHER (3)
- db "ARNOLD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, TENTACRUEL
-
- db $ff ; end
-
-; ================
-
- ; FISHER (4)
- db "KYLE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, SEAKING
- db 31, POLIWHIRL
- db 31, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; FISHER (5)
- db "HENRY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 8, POLIWAG
- db 8, POLIWAG
-
- db $ff ; end
-
-; ================
-
- ; FISHER (6)
- db "MARVIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, MAGIKARP
- db 10, GYARADOS
- db 15, MAGIKARP
- db 15, GYARADOS
-
- db $ff ; end
-
-; ================
-
- ; FISHER (7)
- db "TULLY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, QWILFISH
-
- db $ff ; end
-
-; ================
-
- ; FISHER (8)
- db "ANDRE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, GYARADOS
-
- db $ff ; end
-
-; ================
-
- ; FISHER (9)
- db "RAYMOND@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, MAGIKARP
- db 22, MAGIKARP
- db 22, MAGIKARP
- db 22, MAGIKARP
-
- db $ff ; end
-
-; ================
-
- ; FISHER (10)
- db "WILTON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, GOLDEEN
- db 23, GOLDEEN
- db 25, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; FISHER (11)
- db "EDGAR@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 25, REMORAID
- db LOCK_ON
- db PSYBEAM
- db AURORA_BEAM
- db BUBBLEBEAM
-
- db 25, REMORAID
- db LOCK_ON
- db PSYBEAM
- db AURORA_BEAM
- db BUBBLEBEAM
-
- db $ff ; end
-
-; ================
-
- ; FISHER (12)
- db "JONAH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, SHELLDER
- db 29, OCTILLERY
- db 25, REMORAID
- db 29, CLOYSTER
-
- db $ff ; end
-
-; ================
-
- ; FISHER (13)
- db "MARTIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, REMORAID
- db 32, REMORAID
-
- db $ff ; end
-
-; ================
-
- ; FISHER (14)
- db "STEPHEN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, MAGIKARP
- db 25, MAGIKARP
- db 31, QWILFISH
- db 31, TENTACRUEL
-
- db $ff ; end
-
-; ================
-
- ; FISHER (15)
- db "BARNEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, GYARADOS
- db 30, GYARADOS
- db 30, GYARADOS
-
- db $ff ; end
-
-; ================
-
- ; FISHER (16)
- db "RALPH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, GOLDEEN
-
- db $ff ; end
-
-; ================
-
- ; FISHER (17)
- db "RALPH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, QWILFISH
- db 19, GOLDEEN
-
- db $ff ; end
-
-; ================
-
- ; FISHER (18)
- db "TULLY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, QWILFISH
-
- db $ff ; end
-
-; ================
-
- ; FISHER (19)
- db "TULLY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, GOLDEEN
- db 32, GOLDEEN
- db 32, QWILFISH
-
- db $ff ; end
-
-; ================
-
- ; FISHER (20)
- db "WILTON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, GOLDEEN
- db 29, GOLDEEN
- db 32, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; FISHER (21)
- db "SCOTT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, QWILFISH
- db 30, QWILFISH
- db 34, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; FISHER (22)
- db "WILTON@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 34, SEAKING
- db SUPERSONIC
- db WATERFALL
- db FLAIL
- db FURY_ATTACK
-
- db 34, SEAKING
- db SUPERSONIC
- db WATERFALL
- db FLAIL
- db FURY_ATTACK
-
- db 38, REMORAID
- db PSYBEAM
- db AURORA_BEAM
- db BUBBLEBEAM
- db HYPER_BEAM
-
- db $ff ; end
-
-; ================
-
- ; FISHER (23)
- db "RALPH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, QWILFISH
- db 32, GOLDEEN
-
- db $ff ; end
-
-; ================
-
- ; FISHER (24)
- db "RALPH@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 35, QWILFISH
- db TOXIC
- db MINIMIZE
- db SURF
- db PIN_MISSILE
-
- db 39, SEAKING
- db ENDURE
- db FLAIL
- db FURY_ATTACK
- db WATERFALL
-
- db $ff ; end
-
-; ================
-
- ; FISHER (25)
- db "TULLY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 34, SEAKING
- db SUPERSONIC
- db RAIN_DANCE
- db WATERFALL
- db FURY_ATTACK
-
- db 34, SEAKING
- db SUPERSONIC
- db RAIN_DANCE
- db WATERFALL
- db FURY_ATTACK
-
- db 37, QWILFISH
- db ROLLOUT
- db SURF
- db PIN_MISSILE
- db TAKE_DOWN
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-SwimmerMGroup:
-; ================================
-; ================
-
- ; SWIMMERM (1)
- db "HAROLD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, REMORAID
- db 30, SEADRA
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (2)
- db "SIMON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, TENTACOOL
- db 20, TENTACOOL
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (3)
- db "RANDALL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, SHELLDER
- db 20, WARTORTLE
- db 18, SHELLDER
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (4)
- db "CHARLIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 21, SHELLDER
- db 19, TENTACOOL
- db 19, TENTACRUEL
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (5)
- db "GEORGE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, TENTACOOL
- db 17, TENTACOOL
- db 16, TENTACOOL
- db 19, STARYU
- db 17, TENTACOOL
- db 19, REMORAID
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (6)
- db "BERKE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, QWILFISH
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (7)
- db "KIRK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, GYARADOS
- db 20, GYARADOS
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (8)
- db "MATHEW@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, KRABBY
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (9)
- db "HAL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, SEEL
- db 25, DEWGONG
- db 24, SEEL
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (10)
- db "PATON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, PILOSWINE
- db 26, PILOSWINE
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (11)
- db "DARYL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, SHELLDER
- db 25, CLOYSTER
- db 24, SHELLDER
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (12)
- db "WALTER@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, HORSEA
- db 15, HORSEA
- db 20, SEADRA
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (13)
- db "TONY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 13, STARYU
- db 18, STARMIE
- db 16, HORSEA
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (14)
- db "JEROME@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, SEADRA
- db 28, TENTACOOL
- db 30, TENTACRUEL
- db 28, GOLDEEN
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (15)
- db "TUCKER@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, SHELLDER
- db 34, CLOYSTER
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (16)
- db "RICK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 13, STARYU
- db 18, STARMIE
- db 16, HORSEA
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (17)
- db "CAMERON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, MARILL
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (18)
- db "SETH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, QUAGSIRE
- db 29, OCTILLERY
- db 32, QUAGSIRE
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (19)
- db "JAMES@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 13, STARYU
- db 18, STARMIE
- db 16, HORSEA
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (20)
- db "LEWIS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 13, STARYU
- db 18, STARMIE
- db 16, HORSEA
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERM (21)
- db "PARKER@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, HORSEA
- db 32, HORSEA
- db 35, SEADRA
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-SwimmerFGroup:
-; ================================
-; ================
-
- ; SWIMMERF (1)
- db "ELAINE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 21, STARYU
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (2)
- db "PAULA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, STARYU
- db 19, SHELLDER
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (3)
- db "KAYLEE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, GOLDEEN
- db 20, GOLDEEN
- db 20, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (4)
- db "SUSIE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 20, PSYDUCK
- db SCRATCH
- db TAIL_WHIP
- db DISABLE
- db CONFUSION
-
- db 22, GOLDEEN
- db PECK
- db TAIL_WHIP
- db SUPERSONIC
- db HORN_ATTACK
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (5)
- db "DENISE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, SEEL
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (6)
- db "KARA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, STARYU
- db 20, STARMIE
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (7)
- db "WENDY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 21, HORSEA
- db BUBBLE
- db SMOKESCREEN
- db LEER
- db WATER_GUN
-
- db 21, HORSEA
- db DRAGON_RAGE
- db SMOKESCREEN
- db LEER
- db WATER_GUN
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (8)
- db "LISA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, JYNX
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (9)
- db "JILL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, DEWGONG
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (10)
- db "MARY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (11)
- db "KATIE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, DEWGONG
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (12)
- db "DAWN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (13)
- db "TARA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (14)
- db "NICOLE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, MARILL
- db 29, MARILL
- db 32, LAPRAS
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (15)
- db "LORI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, STARMIE
- db 32, STARMIE
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (16)
- db "JODY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (17)
- db "NIKKI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, SEEL
- db 28, SEEL
- db 28, SEEL
- db 28, DEWGONG
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (18)
- db "DIANA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 37, GOLDUCK
-
- db $ff ; end
-
-; ================
-
- ; SWIMMERF (19)
- db "BRIANA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, SEAKING
- db 35, SEAKING
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-SailorGroup:
-; ================================
-; ================
-
- ; SAILOR (1)
- db "EUGENE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, POLIWHIRL
- db 17, RATICATE
- db 19, KRABBY
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (2)
- db "HUEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, POLIWAG
- db 18, POLIWHIRL
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (3)
- db "TERRELL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, POLIWHIRL
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (4)
- db "KENT@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 18, KRABBY
- db BUBBLE
- db LEER
- db VICEGRIP
- db HARDEN
-
- db 20, KRABBY
- db BUBBLEBEAM
- db LEER
- db VICEGRIP
- db HARDEN
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (5)
- db "ERNEST@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, MACHOP
- db 18, MACHOP
- db 18, POLIWHIRL
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (6)
- db "JEFF@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, RATICATE
- db 32, RATICATE
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (7)
- db "GARRETT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, KINGLER
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (8)
- db "KENNETH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, MACHOP
- db 28, MACHOP
- db 28, POLIWRATH
- db 28, MACHOP
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (9)
- db "STANLY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, MACHOP
- db 33, MACHOKE
- db 26, PSYDUCK
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (10)
- db "HARRY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, WOOPER
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (11)
- db "HUEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, POLIWHIRL
- db 28, POLIWHIRL
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (12)
- db "HUEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, POLIWHIRL
- db 34, POLIWRATH
-
- db $ff ; end
-
-; ================
-
- ; SAILOR (13)
- db "HUEY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 38, POLITOED
- db WHIRLPOOL
- db RAIN_DANCE
- db BODY_SLAM
- db PERISH_SONG
-
- db 38, POLIWRATH
- db SURF
- db STRENGTH
- db ICE_PUNCH
- db SUBMISSION
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-SuperNerdGroup:
-; ================================
-; ================
-
- ; SUPER_NERD (1)
- db "STAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, GRIMER
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (2)
- db "ERIC@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 11, GRIMER
- db 11, GRIMER
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (3)
- db "GREGG@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, MAGNEMITE
- db 20, MAGNEMITE
- db 20, MAGNEMITE
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (4)
- db "JAY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, KOFFING
- db 22, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (5)
- db "DAVE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, DITTO
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (6)
- db "SAM@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, GRIMER
- db 34, MUK
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (7)
- db "TOM@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, MAGNEMITE
- db 32, MAGNEMITE
- db 32, MAGNEMITE
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (8)
- db "PAT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 36, PORYGON
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (9)
- db "SHAWN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, MAGNEMITE
- db 33, MUK
- db 31, MAGNEMITE
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (10)
- db "TERU@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 7, MAGNEMITE
- db 11, VOLTORB
- db 7, MAGNEMITE
- db 9, MAGNEMITE
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (11)
- db "RUSS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, MAGNEMITE
- db 27, MAGNEMITE
- db 27, MAGNEMITE
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (12)
- db "NORTON@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, PORYGON
- db CONVERSION
- db CONVERSION2
- db RECOVER
- db TRI_ATTACK
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (13)
- db "HUGH@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 39, SEADRA
- db SMOKESCREEN
- db TWISTER
- db SURF
- db WATERFALL
-
- db $ff ; end
-
-; ================
-
- ; SUPER_NERD (14)
- db "MARKUS@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 19, SLOWPOKE
- db CURSE
- db WATER_GUN
- db GROWL
- db STRENGTH
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-Rival2Group:
-; ================================
-; ================
-
- ; RIVAL2 (1)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 41, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 42, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 41, MAGNETON
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 43, GENGAR
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 43, ALAKAZAM
- db DISABLE
- db RECOVER
- db FUTURE_SIGHT
- db PSYCHIC_M
-
- db 45, MEGANIUM
- db RAZOR_LEAF
- db POISONPOWDER
- db BODY_SLAM
- db LIGHT_SCREEN
-
- db $ff ; end
-
-; ================
-
- ; RIVAL2 (2)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 41, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 42, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 41, MAGNETON
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 43, GENGAR
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 43, ALAKAZAM
- db DISABLE
- db RECOVER
- db FUTURE_SIGHT
- db PSYCHIC_M
-
- db 45, TYPHLOSION
- db SMOKESCREEN
- db QUICK_ATTACK
- db FLAME_WHEEL
- db SWIFT
-
- db $ff ; end
-
-; ================
-
- ; RIVAL2 (3)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 41, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 42, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 41, MAGNETON
- db THUNDERSHOCK
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 43, GENGAR
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 43, ALAKAZAM
- db DISABLE
- db RECOVER
- db FUTURE_SIGHT
- db PSYCHIC_M
-
- db 45, FERALIGATR
- db RAGE
- db WATER_GUN
- db SCARY_FACE
- db SLASH
-
- db $ff ; end
-
-; ================
-
- ; RIVAL2 (4)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 45, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 48, CROBAT
- db TOXIC
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 45, MAGNETON
- db THUNDER
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 46, GENGAR
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 46, ALAKAZAM
- db RECOVER
- db FUTURE_SIGHT
- db PSYCHIC_M
- db REFLECT
-
- db 50, MEGANIUM
- db GIGA_DRAIN
- db BODY_SLAM
- db LIGHT_SCREEN
- db SAFEGUARD
-
- db $ff ; end
-
-; ================
-
- ; RIVAL2 (5)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 45, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 48, CROBAT
- db TOXIC
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 45, MAGNETON
- db THUNDER
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 46, GENGAR
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 46, ALAKAZAM
- db RECOVER
- db FUTURE_SIGHT
- db PSYCHIC_M
- db REFLECT
-
- db 50, TYPHLOSION
- db SMOKESCREEN
- db QUICK_ATTACK
- db FIRE_BLAST
- db SWIFT
-
- db $ff ; end
-
-; ================
-
- ; RIVAL2 (6)
- db "?@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 45, SNEASEL
- db QUICK_ATTACK
- db SCREECH
- db FAINT_ATTACK
- db FURY_CUTTER
-
- db 48, CROBAT
- db TOXIC
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db 45, MAGNETON
- db THUNDER
- db SONICBOOM
- db THUNDER_WAVE
- db SWIFT
-
- db 46, GENGAR
- db MEAN_LOOK
- db CURSE
- db SHADOW_BALL
- db CONFUSE_RAY
-
- db 46, ALAKAZAM
- db RECOVER
- db FUTURE_SIGHT
- db PSYCHIC_M
- db REFLECT
-
- db 50, FERALIGATR
- db SURF
- db RAIN_DANCE
- db SLASH
- db SCREECH
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-GuitaristGroup:
-; ================================
-; ================
-
- ; GUITARIST (1)
- db "CLYDE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, ELECTABUZZ
-
- db $ff ; end
-
-; ================
-
- ; GUITARIST (2)
- db "VINCENT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, MAGNEMITE
- db 33, VOLTORB
- db 32, MAGNEMITE
- db 32, MAGNEMITE
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-HikerGroup:
-; ================================
-; ================
-
- ; HIKER (1)
- db "ANTHONY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, GEODUDE
- db 18, MACHAMP
-
- db $ff ; end
-
-; ================
-
- ; HIKER (2)
- db "RUSSELL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 4, GEODUDE
- db 6, GEODUDE
- db 8, GEODUDE
-
- db $ff ; end
-
-; ================
-
- ; HIKER (3)
- db "PHILLIP@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, GEODUDE
- db 23, GEODUDE
- db 23, GRAVELER
-
- db $ff ; end
-
-; ================
-
- ; HIKER (4)
- db "LEONARD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, GEODUDE
- db 25, MACHOP
-
- db $ff ; end
-
-; ================
-
- ; HIKER (5)
- db "ANTHONY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 11, GEODUDE
- db 11, MACHOP
-
- db $ff ; end
-
-; ================
-
- ; HIKER (6)
- db "BENJAMIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 14, DIGLETT
- db 14, GEODUDE
- db 16, DUGTRIO
-
- db $ff ; end
-
-; ================
-
- ; HIKER (7)
- db "ERIK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, MACHOP
- db 27, GRAVELER
- db 27, MACHOP
-
- db $ff ; end
-
-; ================
-
- ; HIKER (8)
- db "MICHAEL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, GEODUDE
- db 25, GRAVELER
- db 25, GOLEM
-
- db $ff ; end
-
-; ================
-
- ; HIKER (9)
- db "PARRY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, ONIX
- db 33, SWINUB
-
- db $ff ; end
-
-; ================
-
- ; HIKER (10)
- db "TIMOTHY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 27, DIGLETT
- db MAGNITUDE
- db DIG
- db SAND_ATTACK
- db SLASH
-
- db 27, DUGTRIO
- db MAGNITUDE
- db DIG
- db SAND_ATTACK
- db SLASH
-
- db $ff ; end
-
-; ================
-
- ; HIKER (11)
- db "BAILEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 13, GEODUDE
- db 13, GEODUDE
- db 13, GEODUDE
- db 13, GEODUDE
- db 13, GEODUDE
-
- db $ff ; end
-
-; ================
-
- ; HIKER (12)
- db "ANTHONY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, GRAVELER
- db 27, GRAVELER
- db 29, MACHOKE
-
- db $ff ; end
-
-; ================
-
- ; HIKER (13)
- db "TIM@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, GRAVELER
- db 31, GRAVELER
- db 31, GRAVELER
-
- db $ff ; end
-
-; ================
-
- ; HIKER (14)
- db "NOLAND@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, SANDSLASH
- db 33, GOLEM
-
- db $ff ; end
-
-; ================
-
- ; HIKER (15)
- db "SIDNEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, DUGTRIO
- db 32, ONIX
-
- db $ff ; end
-
-; ================
-
- ; HIKER (16)
- db "KENNY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, SANDSLASH
- db 29, GRAVELER
- db 31, GOLEM
- db 29, GRAVELER
-
- db $ff ; end
-
-; ================
-
- ; HIKER (17)
- db "JIM@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, MACHAMP
-
- db $ff ; end
-
-; ================
-
- ; HIKER (18)
- db "DANIEL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 11, ONIX
-
- db $ff ; end
-
-; ================
-
- ; HIKER (19)
- db "PARRY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 35, PILOSWINE
- db EARTHQUAKE
- db BLIZZARD
- db REST
- db TAKE_DOWN
-
- db 35, DUGTRIO
- db MAGNITUDE
- db DIG
- db MUD_SLAP
- db SLASH
-
- db 38, STEELIX
- db DIG
- db IRON_TAIL
- db SANDSTORM
- db SLAM
-
- db $ff ; end
-
-; ================
-
- ; HIKER (20)
- db "PARRY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, ONIX
-
- db $ff ; end
-
-; ================
-
- ; HIKER (21)
- db "ANTHONY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, GRAVELER
- db 30, GRAVELER
- db 32, MACHOKE
-
- db $ff ; end
-
-; ================
-
- ; HIKER (22)
- db "ANTHONY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 34, GRAVELER
- db MAGNITUDE
- db SELFDESTRUCT
- db DEFENSE_CURL
- db ROLLOUT
-
- db 36, GOLEM
- db MAGNITUDE
- db SELFDESTRUCT
- db DEFENSE_CURL
- db ROLLOUT
-
- db 34, MACHOKE
- db KARATE_CHOP
- db VITAL_THROW
- db HEADBUTT
- db DIG
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BikerGroup:
-; ================================
-; ================
-
- ; BIKER (1)
- db "BENNY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, KOFFING
- db 20, KOFFING
- db 20, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; BIKER (2)
- db "KAZU@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, KOFFING
- db 20, KOFFING
- db 20, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; BIKER (3)
- db "DWAYNE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, KOFFING
- db 28, KOFFING
- db 29, KOFFING
- db 30, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; BIKER (4)
- db "HARRIS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, FLAREON
-
- db $ff ; end
-
-; ================
-
- ; BIKER (5)
- db "ZEKE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, KOFFING
- db 32, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; BIKER (6)
- db "CHARLES@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, KOFFING
- db 30, CHARMELEON
- db 30, WEEZING
-
- db $ff ; end
-
-; ================
-
- ; BIKER (7)
- db "RILEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, WEEZING
-
- db $ff ; end
-
-; ================
-
- ; BIKER (8)
- db "JOEL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, MAGMAR
- db 32, MAGMAR
-
- db $ff ; end
-
-; ================
-
- ; BIKER (9)
- db "GLENN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, KOFFING
- db 30, MAGMAR
- db 32, WEEZING
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BlaineGroup:
-; ================================
-; ================
-
- ; BLAINE (1)
- db "BLAINE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 45, MAGCARGO
- db CURSE
- db SMOG
- db FLAMETHROWER
- db ROCK_SLIDE
-
- db 45, MAGMAR
- db THUNDERPUNCH
- db FIRE_PUNCH
- db SUNNY_DAY
- db CONFUSE_RAY
-
- db 50, RAPIDASH
- db QUICK_ATTACK
- db FIRE_SPIN
- db FURY_ATTACK
- db FIRE_BLAST
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BurglarGroup:
-; ================================
-; ================
-
- ; BURGLAR (1)
- db "DUNCAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, KOFFING
- db 25, MAGMAR
- db 23, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; BURGLAR (2)
- db "EDDIE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 26, GROWLITHE
- db ROAR
- db EMBER
- db LEER
- db TAKE_DOWN
-
- db 24, KOFFING
- db TACKLE
- db SMOG
- db SLUDGE
- db SMOKESCREEN
-
- db $ff ; end
-
-; ================
-
- ; BURGLAR (3)
- db "COREY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, KOFFING
- db 28, MAGMAR
- db 25, KOFFING
- db 30, KOFFING
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-FirebreatherGroup:
-; ================================
-; ================
-
- ; FIREBREATHER (1)
- db "OTIS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, MAGMAR
- db 32, WEEZING
- db 29, MAGMAR
-
- db $ff ; end
-
-; ================
-
- ; FIREBREATHER (2)
- db "DICK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, CHARMELEON
-
- db $ff ; end
-
-; ================
-
- ; FIREBREATHER (3)
- db "NED@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, KOFFING
- db 16, GROWLITHE
- db 15, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; FIREBREATHER (4)
- db "BURT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, KOFFING
- db 32, SLUGMA
-
- db $ff ; end
-
-; ================
-
- ; FIREBREATHER (5)
- db "BILL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 6, KOFFING
- db 6, KOFFING
-
- db $ff ; end
-
-; ================
-
- ; FIREBREATHER (6)
- db "WALT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 11, MAGMAR
- db 13, MAGMAR
-
- db $ff ; end
-
-; ================
-
- ; FIREBREATHER (7)
- db "RAY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, VULPIX
-
- db $ff ; end
-
-; ================
-
- ; FIREBREATHER (8)
- db "LYLE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, KOFFING
- db 31, FLAREON
- db 28, KOFFING
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-JugglerGroup:
-; ================================
-; ================
-
- ; JUGGLER (1)
- db "IRWIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 2, VOLTORB
- db 6, VOLTORB
- db 10, VOLTORB
- db 14, VOLTORB
-
- db $ff ; end
-
-; ================
-
- ; JUGGLER (2)
- db "FRITZ@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, MR__MIME
- db 29, MAGMAR
- db 29, MACHOKE
-
- db $ff ; end
-
-; ================
-
- ; JUGGLER (3)
- db "HORTON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, ELECTRODE
- db 33, ELECTRODE
- db 33, ELECTRODE
- db 33, ELECTRODE
-
- db $ff ; end
-
-; ================
-
- ; JUGGLER (4)
- db "IRWIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 6, VOLTORB
- db 10, VOLTORB
- db 14, VOLTORB
- db 18, VOLTORB
-
- db $ff ; end
-
-; ================
-
- ; JUGGLER (5)
- db "IRWIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, VOLTORB
- db 22, VOLTORB
- db 26, VOLTORB
- db 30, ELECTRODE
-
- db $ff ; end
-
-; ================
-
- ; JUGGLER (6)
- db "IRWIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, VOLTORB
- db 22, VOLTORB
- db 26, VOLTORB
- db 30, ELECTRODE
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BlackbeltGroup:
-; ================================
-; ================
-
- ; BLACKBELT_T (1)
- db "KENJI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 27, ONIX
- db 30, HITMONLEE
- db 27, ONIX
- db 32, MACHOKE
-
- db $ff ; end
-
-; ================
-
- ; BLACKBELT_T (2)
- db "YOSHI@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 27, HITMONLEE
- db DOUBLE_KICK
- db MEDITATE
- db JUMP_KICK
- db FOCUS_ENERGY
-
- db $ff ; end
-
-; ================
-
- ; BLACKBELT_T (3)
- db "KENJI@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 33, ONIX
- db BIND
- db ROCK_THROW
- db TOXIC
- db DIG
-
- db 38, MACHAMP
- db HEADBUTT
- db SWAGGER
- db THUNDERPUNCH
- db VITAL_THROW
-
- db 33, STEELIX
- db EARTHQUAKE
- db ROCK_THROW
- db IRON_TAIL
- db SANDSTORM
-
- db 36, HITMONLEE
- db DOUBLE_TEAM
- db HI_JUMP_KICK
- db MUD_SLAP
- db SWIFT
-
- db $ff ; end
-
-; ================
-
- ; BLACKBELT_T (4)
- db "LAO@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 27, HITMONCHAN
- db COMET_PUNCH
- db THUNDERPUNCH
- db ICE_PUNCH
- db FIRE_PUNCH
-
- db $ff ; end
-
-; ================
-
- ; BLACKBELT_T (5)
- db "NOB@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 25, MACHOP
- db LEER
- db FOCUS_ENERGY
- db KARATE_CHOP
- db SEISMIC_TOSS
-
- db 25, MACHOKE
- db LEER
- db KARATE_CHOP
- db SEISMIC_TOSS
- db ROCK_SLIDE
-
- db $ff ; end
-
-; ================
-
- ; BLACKBELT_T (6)
- db "KIYO@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, HITMONLEE
- db 34, HITMONCHAN
-
- db $ff ; end
-
-; ================
-
- ; BLACKBELT_T (7)
- db "LUNG@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, MANKEY
- db 23, MANKEY
- db 25, PRIMEAPE
-
- db $ff ; end
-
-; ================
-
- ; BLACKBELT_T (8)
- db "KENJI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 28, MACHOKE
-
- db $ff ; end
-
-; ================
-
- ; BLACKBELT_T (9)
- db "WAI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, MACHOKE
- db 32, MACHOKE
- db 34, MACHOKE
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-ExecutiveMGroup:
-; ================================
-; ================
-
- ; EXECUTIVEM (1)
- db "EXECUTIVE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 33, HOUNDOUR
- db EMBER
- db ROAR
- db BITE
- db FAINT_ATTACK
-
- db 33, KOFFING
- db TACKLE
- db SLUDGE
- db SMOKESCREEN
- db HAZE
-
- db 35, HOUNDOOM
- db EMBER
- db SMOG
- db BITE
- db FAINT_ATTACK
-
- db $ff ; end
-
-; ================
-
- ; EXECUTIVEM (2)
- db "EXECUTIVE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 36, GOLBAT
- db LEECH_LIFE
- db BITE
- db CONFUSE_RAY
- db WING_ATTACK
-
- db $ff ; end
-
-; ================
-
- ; EXECUTIVEM (3)
- db "EXECUTIVE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, KOFFING
- db TACKLE
- db SELFDESTRUCT
- db SLUDGE
- db SMOKESCREEN
-
- db 30, KOFFING
- db TACKLE
- db SELFDESTRUCT
- db SLUDGE
- db SMOKESCREEN
-
- db 30, KOFFING
- db TACKLE
- db SELFDESTRUCT
- db SLUDGE
- db SMOKESCREEN
-
- db 32, WEEZING
- db TACKLE
- db EXPLOSION
- db SLUDGE
- db SMOKESCREEN
-
- db 30, KOFFING
- db TACKLE
- db SELFDESTRUCT
- db SLUDGE
- db SMOKESCREEN
-
- db 30, KOFFING
- db TACKLE
- db SMOG
- db SLUDGE
- db SMOKESCREEN
-
- db $ff ; end
-
-; ================
-
- ; EXECUTIVEM (4)
- db "EXECUTIVE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, ZUBAT
- db 24, RATICATE
- db 22, KOFFING
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-PsychicGroup:
-; ================================
-; ================
-
- ; PSYCHIC_T (1)
- db "NATHAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, GIRAFARIG
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (2)
- db "FRANKLIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 37, KADABRA
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (3)
- db "HERMAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, EXEGGCUTE
- db 30, EXEGGCUTE
- db 30, EXEGGUTOR
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (4)
- db "FIDEL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, XATU
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (5)
- db "GREG@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 17, DROWZEE
- db HYPNOSIS
- db DISABLE
- db DREAM_EATER
- db 0
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (6)
- db "NORMAN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 17, SLOWPOKE
- db TACKLE
- db GROWL
- db WATER_GUN
- db 0
-
- db 20, SLOWPOKE
- db CURSE
- db BODY_SLAM
- db WATER_GUN
- db CONFUSION
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (7)
- db "MARK@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 13, ABRA
- db TELEPORT
- db FLASH
- db 0
- db 0
-
- db 13, ABRA
- db TELEPORT
- db FLASH
- db 0
- db 0
-
- db 15, KADABRA
- db TELEPORT
- db KINESIS
- db CONFUSION
- db 0
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (8)
- db "PHIL@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 24, NATU
- db LEER
- db NIGHT_SHADE
- db FUTURE_SIGHT
- db CONFUSE_RAY
-
- db 26, KADABRA
- db DISABLE
- db PSYBEAM
- db RECOVER
- db FUTURE_SIGHT
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (9)
- db "RICHARD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 36, ESPEON
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (10)
- db "GILBERT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, STARMIE
- db 30, EXEGGCUTE
- db 34, GIRAFARIG
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (11)
- db "JARED@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, MR__MIME
- db 32, EXEGGCUTE
- db 35, EXEGGCUTE
-
- db $ff ; end
-
-; ================
-
- ; PSYCHIC_T (12)
- db "RODNEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 29, DROWZEE
- db 33, HYPNO
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-PicnickerGroup:
-; ================================
-; ================
-
- ; PICNICKER (1)
- db "LIZ@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, NIDORAN_F
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (2)
- db "GINA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, HOPPIP
- db 9, HOPPIP
- db 12, BULBASAUR
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (3)
- db "BROOKE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 16, PIKACHU
- db THUNDERSHOCK
- db GROWL
- db QUICK_ATTACK
- db DOUBLE_TEAM
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (4)
- db "KIM@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, VULPIX
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (5)
- db "CINDY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 36, NIDOQUEEN
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (6)
- db "HOPE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, FLAAFFY
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (7)
- db "SHARON@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, FURRET
- db 33, RAPIDASH
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (8)
- db "DEBRA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, SEAKING
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (9)
- db "GINA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 14, HOPPIP
- db 14, HOPPIP
- db 17, IVYSAUR
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (10)
- db "ERIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, PONYTA
- db 16, PONYTA
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (11)
- db "LIZ@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, WEEPINBELL
- db 15, NIDORINA
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (12)
- db "LIZ@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 19, WEEPINBELL
- db 19, NIDORINO
- db 21, NIDOQUEEN
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (13)
- db "HEIDI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, SKIPLOOM
- db 32, SKIPLOOM
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (14)
- db "EDNA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, NIDORINA
- db 34, RAICHU
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (15)
- db "GINA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, SKIPLOOM
- db 26, SKIPLOOM
- db 29, IVYSAUR
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (16)
- db "TIFFANY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 31, CLEFAIRY
- db ENCORE
- db SING
- db DOUBLESLAP
- db MINIMIZE
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (17)
- db "TIFFANY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 37, CLEFAIRY
- db ENCORE
- db DOUBLESLAP
- db MINIMIZE
- db METRONOME
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (18)
- db "ERIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, PONYTA
- db 32, PONYTA
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (19)
- db "TANYA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 37, EXEGGUTOR
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (20)
- db "TIFFANY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 20, CLEFAIRY
- db ENCORE
- db SING
- db DOUBLESLAP
- db MINIMIZE
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (21)
- db "ERIN@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 36, PONYTA
- db DOUBLE_TEAM
- db STOMP
- db FIRE_SPIN
- db SUNNY_DAY
-
- db 34, RAICHU
- db SWIFT
- db MUD_SLAP
- db QUICK_ATTACK
- db THUNDERBOLT
-
- db 36, PONYTA
- db DOUBLE_TEAM
- db STOMP
- db FIRE_SPIN
- db SUNNY_DAY
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (22)
- db "LIZ@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, WEEPINBELL
- db 26, NIDORINO
- db 26, NIDOQUEEN
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (23)
- db "LIZ@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 30, WEEPINBELL
- db SLEEP_POWDER
- db POISONPOWDER
- db STUN_SPORE
- db SLUDGE_BOMB
-
- db 32, NIDOKING
- db EARTHQUAKE
- db DOUBLE_KICK
- db POISON_STING
- db IRON_TAIL
-
- db 32, NIDOQUEEN
- db EARTHQUAKE
- db DOUBLE_KICK
- db TAIL_WHIP
- db BODY_SLAM
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (24)
- db "GINA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, SKIPLOOM
- db 30, SKIPLOOM
- db 32, IVYSAUR
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (25)
- db "GINA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 33, JUMPLUFF
- db STUN_SPORE
- db SUNNY_DAY
- db LEECH_SEED
- db COTTON_SPORE
-
- db 33, JUMPLUFF
- db SUNNY_DAY
- db SLEEP_POWDER
- db LEECH_SEED
- db COTTON_SPORE
-
- db 38, VENUSAUR
- db SOLARBEAM
- db RAZOR_LEAF
- db HEADBUTT
- db MUD_SLAP
-
- db $ff ; end
-
-; ================
-
- ; PICNICKER (26)
- db "TIFFANY@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 43, CLEFAIRY
- db METRONOME
- db ENCORE
- db MOONLIGHT
- db MINIMIZE
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-CamperGroup:
-; ================================
-; ================
-
- ; CAMPER (1)
- db "ROLAND@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, NIDORAN_M
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (2)
- db "TODD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 14, PSYDUCK
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (3)
- db "IVAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, DIGLETT
- db 10, ZUBAT
- db 14, DIGLETT
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (4)
- db "ELLIOT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 13, SANDSHREW
- db 15, MARILL
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (5)
- db "BARRY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 36, NIDOKING
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (6)
- db "LLOYD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, NIDOKING
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (7)
- db "DEAN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, GOLDUCK
- db 31, SANDSLASH
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (8)
- db "SID@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, DUGTRIO
- db 29, PRIMEAPE
- db 29, POLIWRATH
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (9)
- db "HARVEY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, NIDORINO
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (10)
- db "DALE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 15, NIDORINO
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (11)
- db "TED@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, MANKEY
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (12)
- db "TODD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, GEODUDE
- db 17, GEODUDE
- db 23, PSYDUCK
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (13)
- db "TODD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 23, GEODUDE
- db 23, GEODUDE
- db 26, PSYDUCK
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (14)
- db "THOMAS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, GRAVELER
- db 36, GRAVELER
- db 40, GOLBAT
- db 42, GOLDUCK
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (15)
- db "LEROY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, GRAVELER
- db 36, GRAVELER
- db 40, GOLBAT
- db 42, GOLDUCK
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (16)
- db "DAVID@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, GRAVELER
- db 36, GRAVELER
- db 40, GOLBAT
- db 42, GOLDUCK
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (17)
- db "JOHN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 33, GRAVELER
- db 36, GRAVELER
- db 40, GOLBAT
- db 42, GOLDUCK
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (18)
- db "JERRY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 37, SANDSLASH
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (19)
- db "SPENCER@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, SANDSHREW
- db 17, SANDSLASH
- db 19, ZUBAT
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (20)
- db "TODD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, GRAVELER
- db 30, GRAVELER
- db 30, SLUGMA
- db 32, PSYDUCK
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (21)
- db "TODD@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 33, GRAVELER
- db SELFDESTRUCT
- db ROCK_THROW
- db HARDEN
- db MAGNITUDE
-
- db 33, GRAVELER
- db SELFDESTRUCT
- db ROCK_THROW
- db HARDEN
- db MAGNITUDE
-
- db 36, MAGCARGO
- db ROCK_THROW
- db HARDEN
- db AMNESIA
- db FLAMETHROWER
-
- db 34, GOLDUCK
- db DISABLE
- db PSYCHIC_M
- db SURF
- db PSYCH_UP
-
- db $ff ; end
-
-; ================
-
- ; CAMPER (22)
- db "QUENTIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 30, FEAROW
- db 30, PRIMEAPE
- db 30, TAUROS
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-ExecutiveFGroup:
-; ================================
-; ================
-
- ; EXECUTIVEF (1)
- db "EXECUTIVE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 32, ARBOK
- db WRAP
- db POISON_STING
- db BITE
- db GLARE
-
- db 32, VILEPLUME
- db ABSORB
- db SWEET_SCENT
- db SLEEP_POWDER
- db ACID
-
- db 32, MURKROW
- db PECK
- db PURSUIT
- db HAZE
- db NIGHT_SHADE
-
- db $ff ; end
-
-; ================
-
- ; EXECUTIVEF (2)
- db "EXECUTIVE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 23, ARBOK
- db WRAP
- db LEER
- db POISON_STING
- db BITE
-
- db 23, GLOOM
- db ABSORB
- db SWEET_SCENT
- db SLEEP_POWDER
- db ACID
-
- db 25, MURKROW
- db PECK
- db PURSUIT
- db HAZE
- db 0
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-SageGroup:
-; ================================
-; ================
-
- ; SAGE (1)
- db "CHOW@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 3, BELLSPROUT
- db 3, BELLSPROUT
- db 3, BELLSPROUT
-
- db $ff ; end
-
-; ================
-
- ; SAGE (2)
- db "NICO@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 3, BELLSPROUT
- db 3, BELLSPROUT
- db 3, BELLSPROUT
-
- db $ff ; end
-
-; ================
-
- ; SAGE (3)
- db "JIN@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 6, BELLSPROUT
-
- db $ff ; end
-
-; ================
-
- ; SAGE (4)
- db "TROY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 7, BELLSPROUT
- db 7, HOOTHOOT
-
- db $ff ; end
-
-; ================
-
- ; SAGE (5)
- db "JEFFREY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 22, HAUNTER
-
- db $ff ; end
-
-; ================
-
- ; SAGE (6)
- db "PING@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 16, GASTLY
- db 16, GASTLY
- db 16, GASTLY
- db 16, GASTLY
- db 16, GASTLY
-
- db $ff ; end
-
-; ================
-
- ; SAGE (7)
- db "EDMOND@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 3, BELLSPROUT
- db 3, BELLSPROUT
- db 3, BELLSPROUT
-
- db $ff ; end
-
-; ================
-
- ; SAGE (8)
- db "NEAL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 6, BELLSPROUT
-
- db $ff ; end
-
-; ================
-
- ; SAGE (9)
- db "LI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 7, BELLSPROUT
- db 7, BELLSPROUT
- db 10, HOOTHOOT
-
- db $ff ; end
-
-; ================
-
- ; SAGE (10)
- db "GAKU@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, NOCTOWL
- db 32, FLAREON
-
- db $ff ; end
-
-; ================
-
- ; SAGE (11)
- db "MASA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, NOCTOWL
- db 32, JOLTEON
-
- db $ff ; end
-
-; ================
-
- ; SAGE (12)
- db "KOJI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 32, NOCTOWL
- db 32, VAPOREON
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-MediumGroup:
-; ================================
-; ================
-
- ; MEDIUM (1)
- db "MARTHA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 18, GASTLY
- db 20, HAUNTER
- db 20, GASTLY
-
- db $ff ; end
-
-; ================
-
- ; MEDIUM (2)
- db "GRACE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, HAUNTER
- db 20, HAUNTER
-
- db $ff ; end
-
-; ================
-
- ; MEDIUM (3)
- db "BETHANY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, HAUNTER
-
- db $ff ; end
-
-; ================
-
- ; MEDIUM (4)
- db "MARGRET@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, HAUNTER
-
- db $ff ; end
-
-; ================
-
- ; MEDIUM (5)
- db "ETHEL@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, HAUNTER
-
- db $ff ; end
-
-; ================
-
- ; MEDIUM (6)
- db "REBECCA@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, DROWZEE
- db 35, HYPNO
-
- db $ff ; end
-
-; ================
-
- ; MEDIUM (7)
- db "DORIS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 34, SLOWPOKE
- db 36, SLOWBRO
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BoarderGroup:
-; ================================
-; ================
-
- ; BOARDER (1)
- db "RONALD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, SEEL
- db 25, DEWGONG
- db 24, SEEL
-
- db $ff ; end
-
-; ================
-
- ; BOARDER (2)
- db "BRAD@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, SWINUB
- db 26, SWINUB
-
- db $ff ; end
-
-; ================
-
- ; BOARDER (3)
- db "DOUGLAS@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 24, SHELLDER
- db 25, CLOYSTER
- db 24, SHELLDER
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-PokefanMGroup:
-; ================================
-; ================
-
- ; POKEFANM (1)
- db "WILLIAM@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 14, RAICHU, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (2)
- db "DEREK@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 17, PIKACHU, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (3)
- db "ROBERT@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 33, QUAGSIRE, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (4)
- db "JOSHUA@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 23, PIKACHU, BERRY
- db 23, PIKACHU, BERRY
- db 23, PIKACHU, BERRY
- db 23, PIKACHU, BERRY
- db 23, PIKACHU, BERRY
- db 23, PIKACHU, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (5)
- db "CARTER@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 29, BULBASAUR, BERRY
- db 29, CHARMANDER, BERRY
- db 29, SQUIRTLE, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (6)
- db "TREVOR@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 33, PSYDUCK, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (7)
- db "BRANDON@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 13, SNUBBULL, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (8)
- db "JEREMY@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 28, MEOWTH, BERRY
- db 28, MEOWTH, BERRY
- db 28, MEOWTH, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (9)
- db "COLIN@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 32, DELIBIRD, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (10)
- db "DEREK@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 19, PIKACHU, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (11)
- db "DEREK@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 36, PIKACHU, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (12)
- db "ALEX@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 29, NIDOKING, BERRY
- db 29, SLOWKING, BERRY
- db 29, SEAKING, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (13)
- db "REX@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 35, PHANPY, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANM (14)
- db "ALLAN@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 35, TEDDIURSA, BERRY
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-KimonoGirlGroup:
-; ================================
-; ================
-
- ; KIMONO_GIRL (1)
- db "NAOKO@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 20, SKIPLOOM
- db 20, VULPIX
- db 18, SKIPLOOM
-
- db $ff ; end
-
-; ================
-
- ; KIMONO_GIRL (2)
- db "NAOKO@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, FLAREON
-
- db $ff ; end
-
-; ================
-
- ; KIMONO_GIRL (3)
- db "SAYO@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, ESPEON
-
- db $ff ; end
-
-; ================
-
- ; KIMONO_GIRL (4)
- db "ZUKI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, UMBREON
-
- db $ff ; end
-
-; ================
-
- ; KIMONO_GIRL (5)
- db "KUNI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, VAPOREON
-
- db $ff ; end
-
-; ================
-
- ; KIMONO_GIRL (6)
- db "MIKI@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, JOLTEON
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-TwinsGroup:
-; ================================
-; ================
-
- ; TWINS (1)
- db "AMY & MAY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, SPINARAK
- db 10, LEDYBA
-
- db $ff ; end
-
-; ================
-
- ; TWINS (2)
- db "ANN & ANNE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 16, CLEFAIRY
- db GROWL
- db ENCORE
- db DOUBLESLAP
- db METRONOME
-
- db 16, JIGGLYPUFF
- db SING
- db DEFENSE_CURL
- db POUND
- db DISABLE
-
- db $ff ; end
-
-; ================
-
- ; TWINS (3)
- db "ANN & ANNE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 16, JIGGLYPUFF
- db SING
- db DEFENSE_CURL
- db POUND
- db DISABLE
-
- db 16, CLEFAIRY
- db GROWL
- db ENCORE
- db DOUBLESLAP
- db METRONOME
-
- db $ff ; end
-
-; ================
-
- ; TWINS (4)
- db "AMY & MAY@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 10, LEDYBA
- db 10, SPINARAK
-
- db $ff ; end
-
-; ================
-
- ; TWINS (5)
- db "JO & ZOE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, VICTREEBEL
- db 35, VILEPLUME
-
- db $ff ; end
-
-; ================
-
- ; TWINS (6)
- db "JO & ZOE@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 35, VILEPLUME
- db 35, VICTREEBEL
-
- db $ff ; end
-
-; ================
-
- ; TWINS (7)
- db "MEG & PEG@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, TEDDIURSA
- db 31, PHANPY
-
- db $ff ; end
-
-; ================
-
- ; TWINS (8)
- db "MEG & PEG@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 31, PHANPY
- db 31, TEDDIURSA
-
- db $ff ; end
-
-; ================
-
- ; TWINS (9)
- db "LEA & PIA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 35, DRATINI
- db THUNDER_WAVE
- db TWISTER
- db FLAMETHROWER
- db HEADBUTT
-
- db 35, DRATINI
- db THUNDER_WAVE
- db TWISTER
- db ICE_BEAM
- db HEADBUTT
-
- db $ff ; end
-
-; ================
-
- ; TWINS (10)
- db "LEA & PIA@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 38, DRATINI
- db THUNDER_WAVE
- db TWISTER
- db ICE_BEAM
- db HEADBUTT
-
- db 38, DRATINI
- db THUNDER_WAVE
- db TWISTER
- db FLAMETHROWER
- db HEADBUTT
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-PokefanFGroup:
-; ================================
-; ================
-
- ; POKEFANF (1)
- db "BEVERLY@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 14, SNUBBULL, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANF (2)
- db "RUTH@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 17, PIKACHU, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANF (3)
- db "BEVERLY@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 18, SNUBBULL, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANF (4)
- db "BEVERLY@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 30, GRANBULL, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANF (5)
- db "GEORGIA@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 23, SENTRET, BERRY
- db 23, SENTRET, BERRY
- db 23, SENTRET, BERRY
- db 28, FURRET, BERRY
- db 23, SENTRET, BERRY
-
- db $ff ; end
-
-; ================
-
- ; POKEFANF (6)
- db "JAIME@"
- db TRAINERTYPE_ITEM
-
- ; party
- db 16, MEOWTH, BERRY
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-RedGroup:
-; ================================
-; ================
-
- ; RED (1)
- db "RED@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 81, PIKACHU
- db CHARM
- db QUICK_ATTACK
- db THUNDERBOLT
- db THUNDER
-
- db 73, ESPEON
- db MUD_SLAP
- db REFLECT
- db SWIFT
- db PSYCHIC_M
-
- db 75, SNORLAX
- db AMNESIA
- db SNORE
- db REST
- db BODY_SLAM
-
- db 77, VENUSAUR
- db SUNNY_DAY
- db GIGA_DRAIN
- db SYNTHESIS
- db SOLARBEAM
-
- db 77, CHARIZARD
- db FLAMETHROWER
- db WING_ATTACK
- db SLASH
- db FIRE_SPIN
-
- db 77, BLASTOISE
- db RAIN_DANCE
- db SURF
- db BLIZZARD
- db WHIRLPOOL
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-BlueGroup:
-; ================================
-; ================
-
- ; BLUE (1)
- db "BLUE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 56, PIDGEOT
- db QUICK_ATTACK
- db WHIRLWIND
- db WING_ATTACK
- db MIRROR_MOVE
-
- db 54, ALAKAZAM
- db DISABLE
- db RECOVER
- db PSYCHIC_M
- db REFLECT
-
- db 56, RHYDON
- db FURY_ATTACK
- db SANDSTORM
- db ROCK_SLIDE
- db EARTHQUAKE
-
- db 58, GYARADOS
- db TWISTER
- db HYDRO_PUMP
- db RAIN_DANCE
- db HYPER_BEAM
-
- db 58, EXEGGUTOR
- db SUNNY_DAY
- db LEECH_SEED
- db EGG_BOMB
- db SOLARBEAM
-
- db 58, ARCANINE
- db ROAR
- db SWIFT
- db FLAMETHROWER
- db EXTREMESPEED
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-OfficerGroup:
-; ================================
-; ================
-
- ; OFFICER (1)
- db "KEITH@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 17, GROWLITHE
-
- db $ff ; end
-
-; ================
-
- ; OFFICER (2)
- db "DIRK@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 14, GROWLITHE
- db 14, GROWLITHE
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-GruntFGroup:
-; ================================
-; ================
-
- ; GRUNTF (1)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 9, ZUBAT
- db 11, EKANS
-
- db $ff ; end
-
-; ================
-
- ; GRUNTF (2)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 26, ARBOK
-
- db $ff ; end
-
-; ================
-
- ; GRUNTF (3)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 25, GLOOM
- db 25, GLOOM
-
- db $ff ; end
-
-; ================
-
- ; GRUNTF (4)
- db "GRUNT@"
- db TRAINERTYPE_NORMAL
-
- ; party
- db 21, EKANS
- db 23, ODDISH
- db 21, EKANS
- db 24, GLOOM
-
- db $ff ; end
-
-; ================
-
- ; GRUNTF (5)
- db "GRUNT@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 18, EKANS
- db WRAP
- db LEER
- db POISON_STING
- db BITE
-
- db 18, GLOOM
- db ABSORB
- db SWEET_SCENT
- db STUN_SPORE
- db SLEEP_POWDER
-
- db $ff ; end
-
-; ================
-; ================================
-
-
-MysticalmanGroup:
-; ================================
-; ================
-
- ; MYSTICALMAN (1)
- db "EUSINE@"
- db TRAINERTYPE_MOVES
-
- ; party
-
- db 23, DROWZEE
- db DREAM_EATER
- db HYPNOSIS
- db DISABLE
- db CONFUSION
-
- db 23, HAUNTER
- db LICK
- db HYPNOSIS
- db MEAN_LOOK
- db CURSE
-
- db 25, ELECTRODE
- db SCREECH
- db SONICBOOM
- db THUNDER
- db ROLLOUT
-
- db $ff ; end
-
-; ================
-; ================================
--- a/unknown/013a47.asm
+++ /dev/null
@@ -1,229 +1,0 @@
-CorrectErrorsInPlayerParty: ; unreferenced
- ld hl, PartyCount
- ld a, [hl]
- and a
- ret z
-
- cp PARTY_LENGTH + 1
- jr c, .party_length_okay
- ld a, PARTY_LENGTH
- ld [hl], a
-.party_length_okay
- inc hl
-
- ld b, a
- ld c, 0
-.loop1
- ld a, [hl]
- and a
- jr z, .invalid_species
- cp NUM_POKEMON + 1
- jr z, .invalid_species
- cp EGG + 1
- jr c, .next_species
-
-.invalid_species
- ld [hl], SMEARGLE
- push hl
- push bc
- ld a, c
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld [hl], SMEARGLE
- pop bc
- pop hl
-
-.next_species
- inc hl
- inc c
- dec b
- jr nz, .loop1
- ld [hl], $ff
-
- ld hl, PartyMon1
- ld a, [PartyCount]
- ld d, a
- ld e, 0
-.loop2
- push de
- push hl
- ld b, h
- ld c, l
- ld a, [hl]
- and a
- jr z, .invalid_species_2
- cp NUM_POKEMON + 1
- jr c, .check_level
-
-.invalid_species_2
- ld [hl], SMEARGLE
- push de
- ld d, 0
- ld hl, PartySpecies
- add hl, de
- pop de
- ld a, SMEARGLE
- ld [hl], a
-
-.check_level
- ld [CurSpecies], a
- call GetBaseData
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .invalid_level
- ld a, [hl]
- cp MAX_LEVEL
- jr c, .load_level
- ld a, MAX_LEVEL
-.invalid_level
- ld [hl], a
-.load_level
- ld [CurPartyLevel], a
-
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- ld hl, MON_STAT_EXP - 1
- add hl, bc
- ld b, $1
- predef CalcPkmnStats
- pop hl
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop de
- inc e
- dec d
- jr nz, .loop2
-
- ld de, PartyMonNicknames
- ld a, [PartyCount]
- ld b, a
- ld c, 0
-.loop3
- push bc
- call .GetLengthOfStringWith6CharCap
- push de
- callba CheckStringForErrors
- pop hl
- pop bc
- jr nc, .valid_nickname
-
- push bc
- push hl
- ld hl, PartySpecies
- push bc
- ld b, 0
- add hl, bc
- pop bc
- ld a, [hl]
- cp EGG
- ld hl, .TAMAGO
- jr z, .got_nickname
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
-.got_nickname
- pop de
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- pop bc
-
-.valid_nickname
- inc c
- dec b
- jr nz, .loop3
-
- ld de, PartyMonOT
- ld a, [PartyCount]
- ld b, a
- ld c, 0
-.loop4
- push bc
- call .GetLengthOfStringWith6CharCap
- push de
- callba CheckStringForErrors
- pop hl
- jr nc, .valid_ot_name
- ld d, h
- ld e, l
- ld hl, PlayerName
- ld bc, NAME_LENGTH
- call CopyBytes
-.valid_ot_name
- pop bc
- inc c
- dec b
- jr nz, .loop4
-
- ld hl, PartyMon1Moves
- ld a, [PartyCount]
- ld b, a
-.loop5
- push hl
- ld c, NUM_MOVES
- ld a, [hl]
- and a
- jr z, .invalid_move
- cp NUM_ATTACKS + 1
- jr c, .moves_loop
-.invalid_move
- ld [hl], POUND
-
-.moves_loop
- ld a, [hl]
- and a
- jr z, .fill_invalid_moves
- cp NUM_ATTACKS + 1
- jr c, .next_move
-
-.fill_invalid_moves
- xor a
- ld [hli], a
- dec c
- jr nz, .fill_invalid_moves
- jr .next_pokemon
-
-.next_move
- inc hl
- dec c
- jr nz, .moves_loop
-
-.next_pokemon
- pop hl
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop5
- ret
-; 13b6b
-
-.TAMAGO: ; 13b6b
- db "タマゴ@@@"
-; 13b71
-
-.GetLengthOfStringWith6CharCap: ; 13b71
- push de
- ld c, 1
- ld b, 6
-.search_loop
- ld a, [de]
- cp "@"
- jr z, .done
- inc de
- inc c
- dec b
- jr nz, .search_loop
- dec c
- dec de
- ld a, "@"
- ld [de], a
-.done
- pop de
- ret
-; 13b87
binary files a/unknown/1f4018.bin /dev/null differ
binary files a/unknown/1f4dd3.bin /dev/null differ
binary files a/unknown/1f5db4.bin /dev/null differ
--- a/wram.asm
+++ b/wram.asm
@@ -168,7 +168,8 @@
wPlayerMovement:: db
ds 2
wc2e2::
-wMovementPerson:: db
+wMovementPerson::
+ db
wMovementDataPointer:: ds 3 ; dba
wc2e6:: ds 4
wMovementByteWasControlSwitch:: db
@@ -330,11 +331,11 @@
UNION ; c608
; unidentified uses
-wc608::
+wc608:: ds 480
NEXTU ; c608
; miscellaneous
-wMisc:: ds (SCREEN_WIDTH + 4) * (SCREEN_HEIGHT + 2)
+wMisc:: ds WMISC_WIDTH * WMISC_HEIGHT
wMiscEnd::
NEXTU ; c608
@@ -349,10 +350,11 @@
NEXTU ; c608
; hall of fame temp struct
- hall_of_fame wHallOfFameTemp
+wHallOfFameTemp:: hall_of_fame wHallOfFameTemp
NEXTU ; c608
; timeset temp storage
+wTimeSetBuffer::
ds 20
wInitHourBuffer:: db ; c61c
ds 9
@@ -507,7 +509,8 @@
wBattleReward:: ds 3 ; c686
wBattleAnimParam::
wKickCounter::
-wPresentPower:: db ; c689
+wPresentPower::
+ db ; c689
BattleScriptBuffer:: ds 40 ; c68a
BattleScriptBufferAddress:: dw ; c6b2
@@ -800,7 +803,7 @@
NEXTU ; c6d0
; pokedex
wPokedexDataStart::
-wPokedexOrder:: ds $100 ; NUM_POKEMON + 5
+wPokedexOrder:: ds $100 ; >= NUM_POKEMON
wPokedexOrderEnd::
wPokedexMetadata::
wDexListingScrollOffset:: db ; offset of the first displayed entry from the start
@@ -1266,7 +1269,8 @@
MonType:: db ; cf5f
CurSpecies::
-CurMove:: db ; cf60
+CurMove::
+ db ; cf60
wNamedObjectTypeBuffer:: db
@@ -1273,7 +1277,8 @@
ds 1
wBattleTowerBattleEnded::
-wJumptableIndex:: db
+wJumptableIndex::
+ db
UNION ; cf64
; unidentified
@@ -1624,7 +1629,9 @@
NEXTU ; d002
; miscellaneous
wTempDayOfWeek::
-wApricorns:: db
+wApricorns::
+ db
+
ds 2
StartFlypoint:: db
@@ -1792,7 +1799,8 @@
wSwitchMon::
wSwitchItem::
wMoveSwapBuffer::
-wd0e3:: ds 1
+wd0e3::
+ db
wMenuScrollPosition:: ds 4
@@ -1943,50 +1951,11 @@
; bit set
MapConnections:: db ; d1a8
-NorthMapConnection:: ; d1a9
-NorthConnectedMapGroup:: db ; d1a9
-NorthConnectedMapNumber:: db ; d1aa
-NorthConnectionStripPointer:: dw ; d1ab
-NorthConnectionStripLocation:: dw ; d1ad
-NorthConnectionStripLength:: db ; d1af
-NorthConnectedMapWidth:: db ; d1b0
-NorthConnectionStripYOffset:: db ; d1b1
-NorthConnectionStripXOffset:: db ; d1b2
-NorthConnectionWindow:: dw ; d1b3
+NorthMapConnection:: map_connection_struct North ; d1a9
+SouthMapConnection:: map_connection_struct South ; d1b5
+WestMapConnection:: map_connection_struct West ; d1c1
+EastMapConnection:: map_connection_struct East ; d1cd
-SouthMapConnection:: ; d1b5
-SouthConnectedMapGroup:: db ; d1b5
-SouthConnectedMapNumber:: db ; d1b6
-SouthConnectionStripPointer:: dw ; d1b7
-SouthConnectionStripLocation:: dw ; d1b9
-SouthConnectionStripLength:: db ; d1bb
-SouthConnectedMapWidth:: db ; d1bc
-SouthConnectionStripYOffset:: db ; d1bd
-SouthConnectionStripXOffset:: db ; d1be
-SouthConnectionWindow:: dw ; d1bf
-
-WestMapConnection:: ; d1c1
-WestConnectedMapGroup:: db ; d1c1
-WestConnectedMapNumber:: db ; d1c2
-WestConnectionStripPointer:: dw ; d1c3
-WestConnectionStripLocation:: dw ; d1c5
-WestConnectionStripLength:: db ; d1c7
-WestConnectedMapWidth:: db ; d1c8
-WestConnectionStripYOffset:: db ; d1c9
-WestConnectionStripXOffset:: db ; d1ca
-WestConnectionWindow:: dw ; d1cb
-
-EastMapConnection:: ; d1cd
-EastConnectedMapGroup:: db ; d1cd
-EastConnectedMapNumber:: db ; d1ce
-EastConnectionStripPointer:: dw ; d1cf
-EastConnectionStripLocation:: dw ; d1d1
-EastConnectionStripLength:: db ; d1d3
-EastConnectedMapWidth:: db ; d1d4
-EastConnectionStripYOffset:: db ; d1d5
-EastConnectionStripXOffset:: db ; d1d6
-EastConnectionWindow:: dw ; d1d7
-
TilesetHeader::
TilesetBank:: db ; d1d9
TilesetAddress:: dw ; d1da
@@ -2095,7 +2064,7 @@
wMoveSelectionMenuType:: db
-; corresponds to the data/base_stats/*.asm contents
+; corresponds to the data/pokemon/base_stats/*.asm contents
CurBaseData:: ; d236
BaseDexNo:: db ; d236
BaseStats:: ; d237
@@ -2137,11 +2106,12 @@
wInitListType:: db
wBattleHasJustStarted:: db
-wFoundMatchingIDInParty::
wNamedObjectIndexBuffer::
wCurTMHM::
wTypeMatchup::
-wd265:: db
+wFoundMatchingIDInParty::
+wd265::
+ db
wFailedToFlee:: db
wNumFleeAttempts:: db
@@ -2155,16 +2125,14 @@
SECTION "Enemy Party", WRAMX
UNION ; d26b
-wPokedexShowPointerAddr::
-wd26b:: ds 1
-wd26c:: ds 1
-wPokedexShowPointerBank::
-wd26d:: ds 1
+wd26b::
+wPokedexShowPointerAddr:: dw
+wPokedexShowPointerBank:: db
ds 3
wd271:: ds 5
NEXTU ; d26b
-; SECTION "Enemy Party", WRAMX
+; enemy party
OTPlayerName:: ds NAME_LENGTH ; d26b
ENDU ; d276
@@ -2175,22 +2143,6 @@
OTPartyEnd:: ds 1 ; legacy scripts don't check PartyCount
UNION ; d288
-; catch tutorial dude pack
-wDudeBag::
-wDudeNumItems:: db
-wDudeItems:: ds 2 * 4
-wDudeItemsEnd:: db
-
-wDudeNumKeyItems:: db ; d292
-wDudeKeyItems:: ds 18
-wDudeKeyItemsEnd:: db
-
-wDudeNumBalls:: db ; d2a6
-wDudeBalls:: ds 2 * 4 ; d2a7
-wDudeBallsEnd:: db ; d2af
-wDudeBagEnd::
-
-NEXTU ; d288
; ot party mons
OTPartyMons::
OTPartyMon1:: party_struct OTPartyMon1 ; d288
@@ -2205,6 +2157,22 @@
OTPartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; d3ea
OTPartyDataEnd::
ds 4
+
+NEXTU ; d288
+; catch tutorial dude pack
+wDudeBag::
+wDudeNumItems:: db
+wDudeItems:: ds 2 * 4
+wDudeItemsEnd:: db
+
+wDudeNumKeyItems:: db ; d292
+wDudeKeyItems:: ds 18
+wDudeKeyItemsEnd:: db
+
+wDudeNumBalls:: db ; d2a6
+wDudeBalls:: ds 2 * 4 ; d2a7
+wDudeBallsEnd:: db ; d2af
+wDudeBagEnd::
ENDU ; d430
wd430::
@@ -2241,9 +2209,11 @@
ScriptDelay:: db ; d44d
wPriorityScriptBank::
-wScriptTextBank:: db ; d44e
+wScriptTextBank::
+ db ; d44e
wPriorityScriptAddr::
-wScriptTextAddr:: dw ; d44f
+wScriptTextAddr::
+ dw ; d44f
ds 1
wWildEncounterCooldown:: db ; d452
wXYComparePointer:: dw ; d453
@@ -2456,9 +2426,7 @@
ds 13
-
-;SECTION "Map Triggers", WRAMX
-
+; map triggers
wPokecenter2FTrigger:: db ; d972
wTradeCenterTrigger:: db ; d973
wColosseumTrigger:: db ; d974
@@ -2541,9 +2509,7 @@
ds 49
-
-;SECTION "Events", WRAMX
-
+; fight counts
wJackFightCount:: db ; d9f2
wBeverlyFightCount:: db ; unused
wHueyFightCount:: db
@@ -2573,6 +2539,7 @@
wParryFightCount:: db
wErinFightCount:: db
; da0e
+
ds 100
EventFlags:: flag_array NUM_EVENTS ; da72
@@ -2744,7 +2711,6 @@
ds 22
-
PokedexCaught:: flag_array NUM_POKEMON ; de99
EndPokedexCaught::
@@ -2803,12 +2769,14 @@
wRoamMons_CurrentMapGroup:: db
wRoamMons_LastMapNumber:: db
wRoamMons_LastMapGroup:: db
+
wBestMagikarpLengthFeet:: db
wBestMagikarpLengthInches:: db
wMagikarpRecordHoldersName:: ds NAME_LENGTH
-; dff5
+
wPokemonDataEnd::
wGameDataEnd::
+; dff5
SECTION "Pic Animations", WRAMX
@@ -2855,19 +2823,15 @@
w3_d000:: ds 1 ; d000
w3_d001:: ds 1
-w3_d002::
- ds $7e
-w3_d080::
- ds $10
-w3_d090::
- ds $70
+w3_d002:: ds $7e
+w3_d080:: ds $10
+w3_d090:: ds $70
-w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24)
+w3_d100::
BT_OTTrainer:: battle_tower_struct BT_OT
-; d1e0
ds $20
-; d200
-BT_TrainerTextIndex:: ds 2
+BT_TrainerTextIndex:: db ; d200
+ ds 1
w3_d202:: battle_tower_struct w3_d202
w3_d2e2:: battle_tower_struct w3_d2e2
w3_d3c2:: battle_tower_struct w3_d3c2
@@ -2874,6 +2838,7 @@
w3_d4a2:: battle_tower_struct w3_d4a2
w3_d582:: battle_tower_struct w3_d582
w3_d662:: battle_tower_struct w3_d662
+
UNION ; d742
w3_d742:: battle_tower_struct w3_d742
; d822
@@ -2880,16 +2845,15 @@
NEXTU ; d742
ds $be
+w3_d800:: ds BG_MAP_WIDTH * SCREEN_HEIGHT
-wBTChoiceOfLvlGroup::
-w3_d800:: ; ds BG_MAP_WIDTH * SCREEN_HEIGHT ($240)
- ds $69
-ENDU ; d869
+NEXTU ; d742
+ ds $be
+wBTChoiceOfLvlGroup:: db
+ ds $68
w3_d869:: ds $17
w3_d880:: ds 1
-w3_d881:: ds 1
-w3_d882:: ds 1
-w3_d883:: ds 7
+w3_d881:: ds 9
w3_d88a:: ds 5
w3_d88f:: ds 5
w3_d894:: ds 1
@@ -2897,12 +2861,16 @@
w3_d8a0:: ds 1
w3_d8a1:: ds 1
w3_d8a2:: ds 1
-w3_d8a3:: ds $19d
-w3_da40:: ds $1c0
+w3_d8a3:: ds 1
+ENDU ; d8a4
+ ds $1c0
+
w3_dc00:: ds SCREEN_WIDTH * SCREEN_HEIGHT
w3_dd68:: ds SCREEN_WIDTH * SCREEN_HEIGHT
+
ds $11c
+
w3_dfec:: ds $10
w3_dffc:: ds 4
@@ -2967,31 +2935,38 @@
BattleAnimVar:: db ; d416
BattleAnimByte:: db ; d417
wBattleAnimOAMPointerLo:: db ; d418
-BattleAnimTemps:: ; d419
-wBattleAnimTempOAMFlags::
+
+UNION ; d419
+; unidentified
wBattleAnimTemp0:: db
wBattleAnimTemp1:: db
-wBattleAnimTempTileID::
wBattleAnimTemp2:: db
-wBattleAnimTempXCoord::
wBattleAnimTemp3:: db
-wBattleAnimTempYCoord::
wBattleAnimTemp4:: db
-wBattleAnimTempXOffset::
wBattleAnimTemp5:: db
-wBattleAnimTempYOffset::
wBattleAnimTemp6:: db
wBattleAnimTemp7:: db
-wBattleAnimTempPalette::
wBattleAnimTemp8:: db
-UNION ; d422
-wSurfWaveBGEffect:: ds $40
-wSurfWaveBGEffectEnd::
+NEXTU ; d419
+wBattleAnimTempOAMFlags:: db
+ ds 1
+wBattleAnimTempTileID:: db
+wBattleAnimTempXCoord:: db
+wBattleAnimTempYCoord:: db
+wBattleAnimTempXOffset:: db
+wBattleAnimTempYOffset:: db
+ ds 1
+wBattleAnimTempPalette:: db
+ENDU ; d422
-NEXTU ; d422
+UNION ; d422
ds $32
wBattleAnimEnd::
+
+NEXTU ; d422
+wSurfWaveBGEffect:: ds $40
+wSurfWaveBGEffectEnd::
ENDU ; d462