summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile23
-rw-r--r--audio/music/contestresults.asm (renamed from audio/music/bugcatchingcontestresults.asm)0
-rw-r--r--audio/music/johtogymbattle.asm (renamed from audio/music/johtogymleaderbattle.asm)0
-rw-r--r--audio/music/johtowildbattle.asm (renamed from audio/music/johtowildpokemonbattle.asm)0
-rw-r--r--audio/music/johtowildbattlenight.asm (renamed from audio/music/johtowildpokemonbattlenight.asm)0
-rw-r--r--audio/music/kantogymbattle.asm (renamed from audio/music/kantogymleaderbattle.asm)0
-rw-r--r--audio/music/kantowildbattle.asm (renamed from audio/music/kantowildpokemonbattle.asm)0
-rw-r--r--audio/music/lakeofragerocketradio.asm (renamed from audio/music/lakeofragerocketsradiosignal.asm)0
-rw-r--r--audio/music/ruinsofalphradio.asm (renamed from audio/music/ruinsofalphradiosignal.asm)0
-rw-r--r--battle/effect_commands.asm329
-rw-r--r--battle/effects/curse.asm98
-rw-r--r--battle/effects/endure.asm18
-rw-r--r--battle/effects/protect.asm81
-rw-r--r--battle/effects/spikes.asm28
-rw-r--r--constants.asm101
-rw-r--r--constants/event_flags.asm600
-rw-r--r--engine/fruit_trees.asm165
-rw-r--r--engine/scripting.asm14
-rw-r--r--engine/std_scripts.asm2619
-rw-r--r--event/name_rater.asm236
-rw-r--r--gfx/tilesets/00.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/01.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/02.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/03.lzbin1541 -> 1542 bytes
-rw-r--r--gfx/tilesets/04.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/05.lzbin1192 -> 1200 bytes
-rw-r--r--gfx/tilesets/06.lzbin984 -> 992 bytes
-rw-r--r--gfx/tilesets/07.lzbin1071 -> 1072 bytes
-rw-r--r--gfx/tilesets/08.lzbin1019 -> 1024 bytes
-rw-r--r--gfx/tilesets/09.lzbin1035 -> 1040 bytes
-rw-r--r--gfx/tilesets/10.lzbin2047 -> 2048 bytes
-rw-r--r--gfx/tilesets/11.lzbin1050 -> 1056 bytes
-rw-r--r--gfx/tilesets/12.lzbin1861 -> 1872 bytes
-rw-r--r--gfx/tilesets/14.lzbin1457 -> 1472 bytes
-rw-r--r--gfx/tilesets/15.lzbin1239 -> 1248 bytes
-rw-r--r--gfx/tilesets/16.lzbin1202 -> 1216 bytes
-rw-r--r--gfx/tilesets/18.lzbin2174 -> 2176 bytes
-rw-r--r--gfx/tilesets/19.lzbin1124 -> 1136 bytes
-rw-r--r--gfx/tilesets/20.lzbin1203 -> 1216 bytes
-rw-r--r--gfx/tilesets/21.lzbin2195 -> 2208 bytes
-rw-r--r--gfx/tilesets/22.lzbin817 -> 832 bytes
-rw-r--r--gfx/tilesets/23.lzbin1361 -> 1376 bytes
-rw-r--r--gfx/tilesets/24.lzbin898 -> 912 bytes
-rw-r--r--gfx/tilesets/25.lzbin1176 -> 1184 bytes
-rw-r--r--gfx/tilesets/26.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/27.lzbin1372 -> 1376 bytes
-rw-r--r--gfx/tilesets/28.lzbin966 -> 976 bytes
-rw-r--r--gfx/tilesets/29.lzbin2346 -> 2352 bytes
-rw-r--r--gfx/tilesets/30.lzbin829 -> 832 bytes
-rw-r--r--gfx/tilesets/31.lzbin974 -> 976 bytes
-rw-r--r--gfx/tilesets/32.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/33.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/34.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/35.lzbin3079 -> 3080 bytes
-rw-r--r--gfx/tilesets/36.lzbin3079 -> 3080 bytes
-rw-r--r--home/copy.asm (renamed from engine/copy.asm)32
-rw-r--r--home/copy2.asm134
-rw-r--r--home/decompress.asm (renamed from engine/decompress.asm)0
-rw-r--r--home/delay.asm23
-rw-r--r--home/double_speed.asm31
-rw-r--r--home/fade.asm (renamed from engine/fade.asm)0
-rw-r--r--home/farcall.asm55
-rw-r--r--home/flag.asm113
-rw-r--r--home/game_time.asm132
-rw-r--r--home/handshake.asm38
-rw-r--r--home/init.asm (renamed from engine/init.asm)2
-rw-r--r--home/item.asm76
-rw-r--r--home/joypad.asm (renamed from engine/joypad.asm)12
-rw-r--r--home/lcd.asm (renamed from engine/lcd.asm)0
-rw-r--r--home/map.asm2369
-rw-r--r--home/map_objects.asm683
-rw-r--r--home/math.asm76
-rw-r--r--home/menu.asm603
-rw-r--r--home/palettes.asm (renamed from engine/palettes.asm)0
-rw-r--r--home/predef.asm54
-rw-r--r--home/random.asm76
-rw-r--r--home/rtc.asm25
-rw-r--r--home/serial.asm (renamed from engine/serial.asm)0
-rw-r--r--home/sine.asm22
-rw-r--r--home/sram.asm34
-rw-r--r--home/string.asm39
-rw-r--r--home/text.asm (renamed from engine/text.asm)5
-rw-r--r--home/time.asm (renamed from engine/time.asm)0
-rw-r--r--home/vblank.asm (renamed from engine/vblank.asm)34
-rw-r--r--home/video.asm487
-rw-r--r--interrupts.asm17
-rw-r--r--items/marts.asm443
-rw-r--r--macros.asm95
-rw-r--r--main.asm34180
-rw-r--r--maps/AzaleaGym.asm18
-rw-r--r--maps/AzaleaTown.asm6
-rw-r--r--maps/BillsHouse.asm46
-rw-r--r--maps/BlackthornCity.asm14
-rw-r--r--maps/BlackthornGym1F.asm20
-rw-r--r--maps/BrunosRoom.asm8
-rw-r--r--maps/BurnedTower1F.asm6
-rw-r--r--maps/BurnedTowerB1F.asm6
-rw-r--r--maps/CeladonCafe.asm4
-rw-r--r--maps/CeladonGameCorner.asm4
-rw-r--r--maps/CeladonGym.asm12
-rw-r--r--maps/CeladonMansion3F.asm4
-rw-r--r--maps/CeladonMansionRoofHouse.asm4
-rw-r--r--maps/CeruleanCity.asm6
-rw-r--r--maps/CeruleanGym.asm12
-rw-r--r--maps/CharcoalKiln.asm10
-rw-r--r--maps/CherrygroveCity.asm10
-rw-r--r--maps/CherrygroveMart.asm4
-rw-r--r--maps/CherrygrovePokeCenter1F.asm2
-rw-r--r--maps/CianwoodCity.asm8
-rw-r--r--maps/CianwoodGym.asm16
-rw-r--r--maps/CianwoodPharmacy.asm4
-rw-r--r--maps/CianwoodPokeCenter1F.asm2
-rw-r--r--maps/CopycatsHouse1F.asm2
-rw-r--r--maps/CopycatsHouse2F.asm12
-rw-r--r--maps/DanceTheatre.asm14
-rw-r--r--maps/DarkCaveBlackthornEntrance.asm4
-rw-r--r--maps/DayCare.asm4
-rw-r--r--maps/DragonShrine.asm2
-rw-r--r--maps/DragonsDenB1F.asm4
-rw-r--r--maps/EcruteakCity.asm4
-rw-r--r--maps/EcruteakGym.asm18
-rw-r--r--maps/EcruteakHouse.asm12
-rw-r--r--maps/EcruteakItemfinderHouse.asm4
-rw-r--r--maps/ElmsLab.asm56
-rw-r--r--maps/FastShipCabins.asm6
-rw-r--r--maps/FastShipCabins_SE_SSE_CaptainsCabin.asm6
-rw-r--r--maps/FuchsiaGym.asm8
-rw-r--r--maps/GoldenrodBikeShop.asm4
-rw-r--r--maps/GoldenrodBillsHouse.asm4
-rw-r--r--maps/GoldenrodCity.asm2
-rw-r--r--maps/GoldenrodDeptStore5F.asm6
-rw-r--r--maps/GoldenrodFlowerShop.asm10
-rw-r--r--maps/GoldenrodGym.asm24
-rw-r--r--maps/GoldenrodMagnetTrainStation.asm2
-rw-r--r--maps/GoldenrodPokeCenter1F.asm12
-rw-r--r--maps/HallOfFame.asm2
-rw-r--r--maps/IcePathB1F.asm8
-rw-r--r--maps/IlexForest.asm10
-rw-r--r--maps/IndigoPlateauPokeCenter1F.asm28
-rw-r--r--maps/KarensRoom.asm12
-rw-r--r--maps/KogasRoom.asm8
-rw-r--r--maps/KrissHouse1F.asm8
-rw-r--r--maps/KrissHouse2F.asm6
-rw-r--r--maps/KrissNeighborsHouse.asm6
-rw-r--r--maps/KurtsHouse.asm10
-rw-r--r--maps/LakeofRage.asm18
-rw-r--r--maps/LakeofRageHiddenPowerHouse.asm4
-rw-r--r--maps/LakeofRageMagikarpHouse.asm2
-rw-r--r--maps/LancesRoom.asm8
-rw-r--r--maps/LavRadioTower1F.asm2
-rw-r--r--maps/LavenderPokeCenter1F.asm2
-rw-r--r--maps/MahoganyGym.asm20
-rw-r--r--maps/MahoganyMart1F.asm8
-rw-r--r--maps/MahoganyTown.asm4
-rw-r--r--maps/ManiasHouse.asm10
-rw-r--r--maps/MountMoon.asm6
-rw-r--r--maps/MountMortarB1F.asm4
-rw-r--r--maps/MrPokemonsHouse.asm8
-rw-r--r--maps/MrPsychicsHouse.asm4
-rw-r--r--maps/NationalPark.asm12
-rw-r--r--maps/NewBarkTown.asm6
-rw-r--r--maps/OlivineCafe.asm4
-rw-r--r--maps/OlivineGoodRodHouse.asm4
-rw-r--r--maps/OlivineGym.asm12
-rw-r--r--maps/OlivineLighthouse2F.asm10
-rw-r--r--maps/OlivineLighthouse6F.asm4
-rw-r--r--maps/OlivinePort.asm18
-rw-r--r--maps/PewterCity.asm4
-rw-r--r--maps/PewterGym.asm6
-rw-r--r--maps/PokeCenter2F.asm4
-rw-r--r--maps/PokemonFanClub.asm14
-rw-r--r--maps/PowerPlant.asm28
-rw-r--r--maps/RadioTower2F.asm20
-rw-r--r--maps/RadioTower3F.asm16
-rw-r--r--maps/RadioTower4F.asm6
-rw-r--r--maps/RadioTower5F.asm6
-rw-r--r--maps/RedsHouse1F.asm4
-rw-r--r--maps/Route10PokeCenter1F.asm2
-rw-r--r--maps/Route12SuperRodHouse.asm4
-rw-r--r--maps/Route25.asm4
-rw-r--r--maps/Route26.asm4
-rw-r--r--maps/Route27.asm4
-rw-r--r--maps/Route27SandstormHouse.asm4
-rw-r--r--maps/Route28FamousSpeechHouse.asm4
-rw-r--r--maps/Route29.asm22
-rw-r--r--maps/Route30.asm10
-rw-r--r--maps/Route30BerrySpeechHouse.asm4
-rw-r--r--maps/Route31.asm20
-rw-r--r--maps/Route32.asm24
-rw-r--r--maps/Route32PokeCenter1F.asm4
-rw-r--r--maps/Route33.asm4
-rw-r--r--maps/Route34.asm14
-rw-r--r--maps/Route34IlexForestGate.asm4
-rw-r--r--maps/Route35.asm2
-rw-r--r--maps/Route35Goldenrodgate.asm12
-rw-r--r--maps/Route36.asm22
-rw-r--r--maps/Route37.asm8
-rw-r--r--maps/Route38.asm8
-rw-r--r--maps/Route39.asm4
-rw-r--r--maps/Route39Barn.asm10
-rw-r--r--maps/Route39Farmhouse.asm10
-rw-r--r--maps/Route40.asm8
-rw-r--r--maps/Route42.asm6
-rw-r--r--maps/Route43.asm14
-rw-r--r--maps/Route43Gate.asm6
-rw-r--r--maps/Route43MahoganyGate.asm2
-rw-r--r--maps/Route44.asm16
-rw-r--r--maps/Route45.asm8
-rw-r--r--maps/Route46.asm8
-rw-r--r--maps/Route5CleanseTagSpeechHouse.asm4
-rw-r--r--maps/Route6SaffronGate.asm2
-rw-r--r--maps/Route7SaffronGate.asm2
-rw-r--r--maps/RuinsofAlphAerodactylChamber.asm6
-rw-r--r--maps/RuinsofAlphHoOhChamber.asm6
-rw-r--r--maps/RuinsofAlphInnerChamber.asm2
-rw-r--r--maps/RuinsofAlphKabutoChamber.asm8
-rw-r--r--maps/RuinsofAlphOmanyteChamber.asm6
-rw-r--r--maps/RuinsofAlphOutside.asm2
-rw-r--r--maps/RuinsofAlphResearchCenter.asm4
-rw-r--r--maps/SafariZoneWardensHome.asm4
-rw-r--r--maps/SaffronCity.asm6
-rw-r--r--maps/SaffronGym.asm12
-rw-r--r--maps/SaffronPokeCenter1F.asm2
-rw-r--r--maps/SaffronTrainStation.asm4
-rw-r--r--maps/SeafoamGym.asm4
-rw-r--r--maps/SilphCo1F.asm4
-rw-r--r--maps/SlowpokeWellB1F.asm2
-rw-r--r--maps/SlowpokeWellB2F.asm4
-rw-r--r--maps/SproutTower3F.asm6
-rw-r--r--maps/TeamRocketBaseB1F.asm134
-rw-r--r--maps/TeamRocketBaseB2F.asm24
-rw-r--r--maps/TeamRocketBaseB3F.asm2
-rw-r--r--maps/TinTower1F.asm28
-rw-r--r--maps/TinTowerRoof.asm6
-rw-r--r--maps/UndergroundPathSwitchRoomEntrances.asm106
-rw-r--r--maps/UndergroundWarehouse.asm30
-rw-r--r--maps/VermilionCity.asm2
-rw-r--r--maps/VermilionGym.asm10
-rw-r--r--maps/VermilionPokeCenter1F.asm2
-rw-r--r--maps/VermilionPort.asm20
-rw-r--r--maps/VictoryRoad.asm4
-rw-r--r--maps/VioletGym.asm14
-rw-r--r--maps/VioletPokeCenter1F.asm10
-rw-r--r--maps/ViridianCity.asm4
-rw-r--r--maps/ViridianGym.asm4
-rw-r--r--maps/WarehouseEntrance.asm36
-rw-r--r--maps/WhirlIslandLugiaChamber.asm4
-rw-r--r--maps/WillsRoom.asm4
-rw-r--r--maps/WiseTriosRoom.asm8
-rw-r--r--maps/blockdata_1.asm308
-rw-r--r--maps/blockdata_2.asm552
-rw-r--r--maps/blockdata_3.asm348
-rw-r--r--predef/cgb.asm922
-rw-r--r--predef/sgb.asm591
-rw-r--r--rst.asm38
-rw-r--r--stats/odd_eggs.asm2
-rw-r--r--text/types.asm162
-rw-r--r--tilesets/data_1.asm51
-rw-r--r--tilesets/data_2.asm62
-rw-r--r--tilesets/data_3.asm65
-rw-r--r--tilesets/data_4.asm52
-rw-r--r--tilesets/data_5.asm61
-rw-r--r--tilesets/data_6.asm76
-rw-r--r--tilesets/data_7.asm17
-rw-r--r--tilesets/data_8.asm16
-rw-r--r--tilesets/palette_maps.asm129
-rw-r--r--tilesets/tileset_headers.asm298
-rw-r--r--trainers/dvs.asm93
-rw-r--r--wram.asm60
269 files changed, 38757 insertions, 10988 deletions
diff --git a/Makefile b/Makefile
index 00c634b3e..1fe1789ad 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,4 @@
+PYTHON := python
.SUFFIXES: .asm .tx .o .gbc .png .2bpp .lz
TEXTFILES := $(shell find ./ -type f -name '*.asm' | grep -v pokecrystal.asm | grep -v constants.asm | grep -v gbhw.asm | grep -v hram.asm | grep -v constants | grep -v wram.asm)
@@ -13,36 +14,36 @@ clean:
rm -f pokecrystal.o pokecrystal.gbc
@echo 'rm -f $(TEXTFILES:.asm=.tx)'
@rm -f $(TEXTFILES:.asm=.tx)
-pokecrystal.o: $(TEXTFILES:.asm=.tx) wram.asm constants.asm $(shell find constants/ -type f -name '*constants.asm') hram.asm gbhw.asm $(LZ_GFX) $(TWOBPP_GFX)
- python prequeue.py $(TEXTQUEUE)
+pokecrystal.o: $(TEXTFILES:.asm=.tx) wram.asm constants.asm $(shell find constants/ -type f -name '*.asm') hram.asm gbhw.asm $(LZ_GFX) $(TWOBPP_GFX)
+ $(PYTHON) prequeue.py $(TEXTQUEUE)
rgbasm -o pokecrystal.o pokecrystal.asm
.asm.tx:
$(eval TEXTQUEUE := $(TEXTQUEUE) $<)
@rm -f $@
baserom.gbc:
- python -c "import os; assert 'baserom.gbc' in os.listdir('.'), 'Wait! Need baserom.gbc first. Check README and INSTALL for details.';"
+ $(PYTHON) -c "import os; assert 'baserom.gbc' in os.listdir('.'), 'Wait! Need baserom.gbc first. Check README and INSTALL for details.';"
pokecrystal.gbc: pokecrystal.o
rgblink -n pokecrystal.sym -m pokecrystal.map -o $@ $<
rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
pngs:
- python extras/pokemontools/gfx.py mass-decompress
- python extras/pokemontools/gfx.py dump-pngs
+ $(PYTHON) extras/pokemontools/gfx.py mass-decompress
+ $(PYTHON) extras/pokemontools/gfx.py dump-pngs
lzs: $(LZ_GFX) $(TWOBPP_GFX)
@:
gfx/pics/%/front.lz: gfx/pics/%/tiles.2bpp gfx/pics/%/front.png
- python extras/pokemontools/gfx.py png-to-lz --front $^
+ $(PYTHON) extras/pokemontools/gfx.py png-to-lz --front $^
gfx/pics/%/tiles.2bpp: gfx/pics/%/tiles.png
- python extras/pokemontools/gfx.py png-to-2bpp $<
+ $(PYTHON) extras/pokemontools/gfx.py png-to-2bpp $<
gfx/pics/%/back.lz: gfx/pics/%/back.png
- python extras/pokemontools/gfx.py png-to-lz --vert $<
+ $(PYTHON) extras/pokemontools/gfx.py png-to-lz --vert $<
gfx/trainers/%.lz: gfx/trainers/%.png
- python extras/pokemontools/gfx.py png-to-lz --vert $<
+ $(PYTHON) extras/pokemontools/gfx.py png-to-lz --vert $<
.png.lz:
- python extras/pokemontools/gfx.py png-to-lz $<
+ $(PYTHON) extras/pokemontools/gfx.py png-to-lz $<
.png.2bpp:
- python extras/pokemontools/gfx.py png-to-lz $<
+ $(PYTHON) extras/pokemontools/gfx.py png-to-lz $<
diff --git a/audio/music/bugcatchingcontestresults.asm b/audio/music/contestresults.asm
index b6a00c721..b6a00c721 100644
--- a/audio/music/bugcatchingcontestresults.asm
+++ b/audio/music/contestresults.asm
diff --git a/audio/music/johtogymleaderbattle.asm b/audio/music/johtogymbattle.asm
index f20ab6c19..f20ab6c19 100644
--- a/audio/music/johtogymleaderbattle.asm
+++ b/audio/music/johtogymbattle.asm
diff --git a/audio/music/johtowildpokemonbattle.asm b/audio/music/johtowildbattle.asm
index 3d17d6fb0..3d17d6fb0 100644
--- a/audio/music/johtowildpokemonbattle.asm
+++ b/audio/music/johtowildbattle.asm
diff --git a/audio/music/johtowildpokemonbattlenight.asm b/audio/music/johtowildbattlenight.asm
index 1d48e7a19..1d48e7a19 100644
--- a/audio/music/johtowildpokemonbattlenight.asm
+++ b/audio/music/johtowildbattlenight.asm
diff --git a/audio/music/kantogymleaderbattle.asm b/audio/music/kantogymbattle.asm
index fa587f709..fa587f709 100644
--- a/audio/music/kantogymleaderbattle.asm
+++ b/audio/music/kantogymbattle.asm
diff --git a/audio/music/kantowildpokemonbattle.asm b/audio/music/kantowildbattle.asm
index 9ad410458..9ad410458 100644
--- a/audio/music/kantowildpokemonbattle.asm
+++ b/audio/music/kantowildbattle.asm
diff --git a/audio/music/lakeofragerocketsradiosignal.asm b/audio/music/lakeofragerocketradio.asm
index 7fc1965d8..7fc1965d8 100644
--- a/audio/music/lakeofragerocketsradiosignal.asm
+++ b/audio/music/lakeofragerocketradio.asm
diff --git a/audio/music/ruinsofalphradiosignal.asm b/audio/music/ruinsofalphradio.asm
index f2bc19774..f2bc19774 100644
--- a/audio/music/ruinsofalphradiosignal.asm
+++ b/audio/music/ruinsofalphradio.asm
diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm
index 94b54c0bd..87196653a 100644
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -9328,72 +9328,102 @@ BattleCommand50: ; 37492
ld a, [hBattleTurn]
and a
- jr nz, .asm_374ce ; 37495 $37
- call .asm_37501
+ jr nz, .enemy
+
+; The player needs to be able to steal an item.
+
+ call .playeritem
ld a, [hl]
and a
ret nz
- call .asm_3750c
+
+; The enemy needs to have an item to steal.
+
+ call .enemyitem
ld a, [hl]
and a
ret z
+
+; Can't steal mail.
+
ld [$d265], a
ld d, a
- ld a, $2e
- ld hl, $5e76
- rst FarCall
+ callba ItemIsMail
ret c
+
ld a, [EffectFailed]
and a
ret nz
+
ld a, [InLinkBattle]
and a
- jr z, .asm_374be ; 374b7 $5
+ jr z, .stealenemyitem
+
ld a, [IsInBattle]
dec a
ret z
-.asm_374be
- call .asm_3750c
+
+.stealenemyitem
+ call .enemyitem
xor a
ld [hl], a
ld [de], a
- call .asm_37501
+
+ call .playeritem
ld a, [$d265]
ld [hl], a
ld [de], a
- jr .asm_374f8 ; 374cc $2a
-.asm_374ce
- call .asm_3750c
+ jr .stole
+
+
+.enemy
+
+; The enemy can't already have an item.
+
+ call .enemyitem
ld a, [hl]
and a
ret nz
- call .asm_37501
+
+; The player must have an item to steal.
+
+ call .playeritem
ld a, [hl]
and a
ret z
+
+; Can't steal mail!
+
ld [$d265], a
ld d, a
- ld a, $2e
- ld hl, $5e76
- rst FarCall
+ callba ItemIsMail
ret c
+
ld a, [EffectFailed]
and a
ret nz
- call .asm_37501
+
+; If the enemy steals your item,
+; it's gone for good if you don't get it back.
+
+ call .playeritem
xor a
ld [hl], a
ld [de], a
- call .asm_3750c
+
+ call .enemyitem
ld a, [$d265]
ld [hl], a
ld [de], a
-.asm_374f8
+
+
+.stole
call GetItemName
ld hl, StoleText
jp StdBattleTextBox
-.asm_37501
+
+.playeritem
ld a, 1
call BattlePartyAttr
ld d, h
@@ -9401,9 +9431,9 @@ BattleCommand50: ; 37492
ld hl, BattleMonItem
ret
-.asm_3750c
+.enemyitem
ld a, 1
- call $396d ; GetOTStat_Battle
+ call OTPartyAttr
ld d, h
ld e, l
ld hl, EnemyMonItem
@@ -9413,17 +9443,27 @@ BattleCommand50: ; 37492
BattleCommand51: ; 37517
; arenatrap
+
+; Doesn't work on an absent opponent.
+
call CheckHiddenOpponent
- jr nz, .asm_37530 ; 3751a $14
+ jr nz, .failed
+
+; Don't trap if the opponent is already trapped.
+
ld a, BATTLE_VARS_SUBSTATUS5
call GetBattleVarPair
- bit 7, [hl]
- jr nz, .asm_37530 ; 37523 $b
- set 7, [hl]
+ bit SUBSTATUS_CANT_RUN, [hl]
+ jr nz, .failed
+
+; Otherwise trap the opponent.
+
+ set SUBSTATUS_CANT_RUN, [hl]
call Function0x37e01
ld hl, CantEscapeNowText
jp StdBattleTextBox
-.asm_37530
+
+.failed
call Function0x37e77
jp PrintButItFailed
; 37536
@@ -9432,23 +9472,38 @@ BattleCommand51: ; 37517
BattleCommand52: ; 37536
; nightmare
+; Can't hit an absent opponent.
+
call CheckHiddenOpponent
- jr nz, .asm_3755d ; 37539 $22
+ jr nz, .failed
+
+; Can't hit a substitute.
+
call CheckSubstituteOpp
- jr nz, .asm_3755d ; 3753e $1d
+ jr nz, .failed
+
+; Only works on a sleeping opponent.
+
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarPair
- and $7
- jr z, .asm_3755d ; 37547 $14
+ and SLP
+ jr z, .failed
+
+; Bail if the opponent is already having a nightmare.
+
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVarPair
- bit 0, [hl]
- jr nz, .asm_3755d ; 37550 $b
- set 0, [hl]
+ bit SUBSTATUS_NIGHTMARE, [hl]
+ jr nz, .failed
+
+; Otherwise give the opponent a nightmare.
+
+ set SUBSTATUS_NIGHTMARE, [hl]
call Function0x37e01
ld hl, StartedNightmareText
jp StdBattleTextBox
-.asm_3755d
+
+.failed
call Function0x37e77
jp PrintButItFailed
; 37563
@@ -9457,205 +9512,43 @@ BattleCommand52: ; 37536
BattleCommand53: ; 37563
; defrost
+; Thaw the user.
+
ld a, BATTLE_VARS_STATUS
call GetBattleVarPair
- bit 5, [hl]
+ bit FRZ, [hl]
ret z
- res 5, [hl]
- ld a, [hBattleTurn]
- and a
- jr z, .asm_37578 ; 37570 $6
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3757f ; 37576 $7
-.asm_37578
- ld a, $20
- call UserPartyAttr
- res 5, [hl]
-.asm_3757f
- call RefreshBattleHuds
- ld hl, WasDefrostedText
- jp StdBattleTextBox
-; 37588
+ res FRZ, [hl]
+; Don't update the enemy's party struct in a wild battle.
-BattleCommand54: ; 37588
-; curse
-
- ld de, BattleMonType1
- ld bc, PlayerStatLevels
ld a, [hBattleTurn]
and a
- jr z, .asm_37599 ; 37591 $6
- ld de, EnemyMonType1
- ld bc, EnemyStatLevels
-.asm_37599
- ld a, [de]
- cp $8
- jr z, .asm_375d7 ; 3759c $39
- inc de
- ld a, [de]
- cp $8
- jr z, .asm_375d7 ; 375a2 $33
- ld a, [bc]
- cp $d
- jr c, .asm_375af ; 375a7 $6
- inc bc
- ld a, [bc]
- cp $d
- jr nc, .asm_3760a ; 375ad $5b
-.asm_375af
- ld a, $1
- ld [$c689], a
- call Function0x37e01
- ld a, $2
- call Function0x36532
- call SwitchTurn
- call BattleCommand8d
- call ResetMiss
- call SwitchTurn
- call BattleCommand70
- call BattleCommand8c
- call ResetMiss
- call BattleCommand71
- jp BattleCommand8c
-.asm_375d7
- call CheckHiddenOpponent
- jr nz, .asm_37604 ; 375da $28
- call CheckSubstituteOpp
- jr nz, .asm_37604 ; 375df $23
- ld a, BATTLE_VARS_SUBSTATUS1_OPP
- call GetBattleVarPair
- bit 1, [hl]
- jr nz, .asm_37604 ; 375e8 $1a
- set 1, [hl]
- call Function0x37e01
- ld hl, $4c9f
- call CallBankF
- ld hl, $4c3f
- call CallBankF
- call UpdateUserInParty
- ld hl, PutACurseText
- jp StdBattleTextBox
-.asm_37604
- call Function0x37e77
- jp PrintButItFailed
-.asm_3760a
- ld b, $8
- call GetStatName
- call Function0x37e77
- ld hl, WontRiseAnymoreText
- jp StdBattleTextBox
-; 37618
-
-
-BattleCommand55: ; 37618
-; protect
-
- call Function0x3762c
- ret c
- ld a, BATTLE_VARS_SUBSTATUS1
- call GetBattleVarPair
- set 2, [hl]
- call Function0x37e01
- ld hl, ProtectedItselfText
- jp StdBattleTextBox
-; 3762c
-
-
-Function0x3762c: ; 3762c
- ld de, $c679
- ld a, [hBattleTurn]
- and a
- jr z, .asm_37637
- ld de, $c681
-
-.asm_37637
- call Function0x36abf
- jr nz, .asm_37665
-
- ld a, $3
- call CleanGetBattleVarPair
- bit 4, a
- jr nz, .asm_37665
-
- ld b, $ff
- ld a, [de]
- ld c, a
-.asm_37649
- ld a, c
- and a
- jr z, .asm_37656
-
- dec c
- srl b
- ld a, b
- and a
- jr nz, .asm_37649
-
- jr .asm_37665
-
-.asm_37656
- call BattleRandom
- and a
- jr z, .asm_37656
+ jr z, .party
+ ld a, [IsInBattle]
dec a
- cp b
- jr nc, .asm_37665
-
- ld a, [de]
- inc a
- ld [de], a
- and a
- ret
-
-.asm_37665
- xor a
- ld [de], a
- call Function0x37e77
- call PrintButItFailed
- scf
- ret
-; 3766f
-
-
-BattleCommand5a: ; 3766f
-; endure
+ jr z, .done
- call Function0x3762c
- ret c
+.party
+ ld a, PartyMon1Status - PartyMon1
+ call UserPartyAttr
+ res FRZ, [hl]
- ld a, BATTLE_VARS_SUBSTATUS1
- call GetBattleVarPair
- set SUBSTATUS_ENDURE, [hl]
- call Function0x37e01
- ld hl, BracedItselfText
+.done
+ call RefreshBattleHuds
+ ld hl, WasDefrostedText
jp StdBattleTextBox
-; 37683
+; 37588
-BattleCommand56: ; 37683
-; spikes
+INCLUDE "battle/effects/curse.asm"
- ld hl, EnemyScreens
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3768e
- ld hl, PlayerScreens
+INCLUDE "battle/effects/protect.asm"
-.asm_3768e
- bit 0, [hl]
- jr nz, .failed
+INCLUDE "battle/effects/endure.asm"
- set 0, [hl]
- call Function0x37e01
- ld hl, SpikesText
- jp StdBattleTextBox
-
-.failed
- jp Function0x37354
-; 376a0
+INCLUDE "battle/effects/spikes.asm"
BattleCommand57: ; 376a0
diff --git a/battle/effects/curse.asm b/battle/effects/curse.asm
new file mode 100644
index 000000000..41ffc3a8d
--- /dev/null
+++ b/battle/effects/curse.asm
@@ -0,0 +1,98 @@
+BattleCommand54: ; 37588
+; curse
+
+ ld de, BattleMonType1
+ ld bc, PlayerStatLevels
+ ld a, [hBattleTurn]
+ and a
+ jr z, .go
+ ld de, EnemyMonType1
+ ld bc, EnemyStatLevels
+
+.go
+
+; Curse is different for Ghost-types.
+
+ ld a, [de]
+ cp GHOST
+ jr z, .ghost
+ inc de
+ ld a, [de]
+ cp GHOST
+ jr z, .ghost
+
+
+; If no stats can be increased, don't.
+
+; Attack
+ ld a, [bc]
+ cp 13 ; max
+ jr c, .raise
+
+; Defense
+ inc bc
+ ld a, [bc]
+ cp 13 ; max
+ jr nc, .cantraise
+
+.raise
+
+; Raise Attack and Defense, and lower Speed.
+
+ ld a, $1
+ ld [$c689], a
+ call Function0x37e01
+ ld a, $2
+ call Function0x36532
+ call SwitchTurn
+ call BattleCommand8d
+ call ResetMiss
+ call SwitchTurn
+ call BattleCommand70
+ call BattleCommand8c
+ call ResetMiss
+ call BattleCommand71
+ jp BattleCommand8c
+
+
+.ghost
+
+; Cut HP in half and put a curse on the opponent.
+
+ call CheckHiddenOpponent
+ jr nz, .failed
+
+ call CheckSubstituteOpp
+ jr nz, .failed
+
+ ld a, BATTLE_VARS_SUBSTATUS1_OPP
+ call GetBattleVarPair
+ bit 1, [hl]
+ jr nz, .failed
+
+ set 1, [hl]
+ call Function0x37e01
+ ld hl, GetHalfMaxHP
+ call CallBankF
+ ld hl, Function3cc3f
+ call CallBankF
+ call UpdateUserInParty
+ ld hl, PutACurseText
+ jp StdBattleTextBox
+
+.failed
+ call Function0x37e77
+ jp PrintButItFailed
+
+
+.cantraise
+
+; Can't raise either stat.
+
+ ld b, $8 ; ABILITY
+ call GetStatName
+ call Function0x37e77
+ ld hl, WontRiseAnymoreText
+ jp StdBattleTextBox
+; 37618
+
diff --git a/battle/effects/endure.asm b/battle/effects/endure.asm
new file mode 100644
index 000000000..79f657a24
--- /dev/null
+++ b/battle/effects/endure.asm
@@ -0,0 +1,18 @@
+BattleCommand5a: ; 3766f
+; endure
+
+; Endure shares code with Protect. See protect.asm.
+
+ call ProtectChance
+ ret c
+
+ ld a, BATTLE_VARS_SUBSTATUS1
+ call GetBattleVarPair
+ set SUBSTATUS_ENDURE, [hl]
+
+ call Function0x37e01
+
+ ld hl, BracedItselfText
+ jp StdBattleTextBox
+; 37683
+
diff --git a/battle/effects/protect.asm b/battle/effects/protect.asm
new file mode 100644
index 000000000..80edc0d85
--- /dev/null
+++ b/battle/effects/protect.asm
@@ -0,0 +1,81 @@
+BattleCommand55: ; 37618
+; protect
+ call ProtectChance
+ ret c
+
+ ld a, BATTLE_VARS_SUBSTATUS1
+ call GetBattleVarPair
+ set SUBSTATUS_PROTECT, [hl]
+
+ call Function0x37e01
+
+ ld hl, ProtectedItselfText
+ jp StdBattleTextBox
+; 3762c
+
+
+ProtectChance: ; 3762c
+
+ ld de, PlayerProtectCount
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_37637
+ ld de, EnemyProtectCount
+.asm_37637
+
+ call Function0x36abf
+ jr nz, .failed
+
+; Can't have a substitute.
+
+ ld a, BATTLE_VARS_SUBSTATUS4
+ call CleanGetBattleVarPair
+ bit SUBSTATUS_SUBSTITUTE, a
+ jr nz, .failed
+
+; Halve the chance of a successful Protect for each consecutive use.
+
+ ld b, $ff
+ ld a, [de]
+ ld c, a
+.loop
+ ld a, c
+ and a
+ jr z, .done
+ dec c
+
+ srl b
+ ld a, b
+ and a
+ jr nz, .loop
+ jr .failed
+.done
+
+.rand
+ call BattleRandom
+ and a
+ jr z, .rand
+
+ dec a
+ cp b
+ jr nc, .failed
+
+; Another consecutive Protect use.
+
+ ld a, [de]
+ inc a
+ ld [de], a
+
+ and a
+ ret
+
+
+.failed
+ xor a
+ ld [de], a
+ call Function0x37e77
+ call PrintButItFailed
+ scf
+ ret
+; 3766f
+
diff --git a/battle/effects/spikes.asm b/battle/effects/spikes.asm
new file mode 100644
index 000000000..1b93f9fa1
--- /dev/null
+++ b/battle/effects/spikes.asm
@@ -0,0 +1,28 @@
+BattleCommand56: ; 37683
+; spikes
+
+ ld hl, EnemyScreens
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3768e
+ ld hl, PlayerScreens
+.asm_3768e
+
+; Fails if spikes are already down!
+
+ bit SCREENS_SPIKES, [hl]
+ jr nz, .failed
+
+; Nothing else stops it from working.
+
+ set SCREENS_SPIKES, [hl]
+
+ call Function0x37e01
+
+ ld hl, SpikesText
+ jp StdBattleTextBox
+
+.failed
+ jp Function0x37354
+; 376a0
+
diff --git a/constants.asm b/constants.asm
index 19049702e..84d93f9dd 100644
--- a/constants.asm
+++ b/constants.asm
@@ -23,99 +23,7 @@ FarCall EQU $08
Bankswitch EQU $10
JumpTable EQU $28
-
-dwb: MACRO
- dw \1
- db \2
- ENDM
-
-dbw: MACRO
- db \1
- dw \2
- ENDM
-
-dn: MACRO
- db \1 << 4 + \2
- ENDM
-
-dt: MACRO ; three-byte (big-endian)
- db (\1 >> 16) & $ff
- db (\1 >> 8) & $ff
- db \1 & $ff
- ENDM
-
-bigdw: MACRO ; big-endian word
- dw ((\1)/$100) + (((\1)&$ff)*$100)
- ENDM
-
-callab: MACRO ; address, bank
- ld hl, \1
- ld a, BANK(\1)
- rst FarCall
- ENDM
-
-callba: MACRO ; bank, address
- ld a, BANK(\1)
- ld hl, \1
- rst FarCall
- ENDM
-
-TX_RAM: MACRO
- db 1
- dw \1
- ENDM
-
-TX_FAR: MACRO
- db $16
- dw \1
- db BANK(\1)
- ENDM
-
-RGB: MACRO
- dw ((\3 << 10) | (\2 << 5) | (\1))
- ENDM
-
-note: MACRO
- db \1
- ENDM
-
-; It's better to use *coord than FuncCoord.
-FuncCoord: MACRO
-Coord = $c4a0 + 20 * \2 + \1
- ENDM
-
-bccoord: MACRO
- FuncCoord \1, \2
- ld bc, Coord
- ENDM
-
-decoord: MACRO
- FuncCoord \1, \2
- ld de, Coord
- ENDM
-
-hlcoord: MACRO
- FuncCoord \1, \2
- ld hl, Coord
- ENDM
-
-
-; pic animations
-frame: MACRO
- db \1
- db \2
- ENDM
-setrepeat: MACRO
- db $fe
- db \1
- ENDM
-dorepeat: MACRO
- db $fd
- db \1
- ENDM
-endanim: MACRO
- db $ff
- ENDM
+INCLUDE "macros.asm"
NONE EQU 0
@@ -262,8 +170,8 @@ BUTTONS EQU %00010000
D_PAD EQU %00100000
NO_INPUT EQU %00000000
-BUTTON_A EQU %00000001
-BUTTON_B EQU %00000010
+A_BUTTON EQU %00000001
+B_BUTTON EQU %00000010
SELECT EQU %00000100
START EQU %00001000
D_RIGHT EQU %00010000
@@ -283,6 +191,9 @@ SCREEN_HEIGHT EQU 18
SCREEN_WIDTH_PX EQU 160
SCREEN_HEIGHT_PX EQU 144
+BG_MAP_WIDTH EQU 32
+BG_MAP_HEIGHT EQU 32
+
TILE_WIDTH EQU 8
diff --git a/constants/event_flags.asm b/constants/event_flags.asm
index a533761fb..e4f26d8df 100644
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -1,6 +1,594 @@
-EVENT_FOUGHT_SUDOWOODO EQU $02a
-EVENT_FOUGHT_HO_OH EQU $317
-EVENT_FOUGHT_LUGIA EQU $318
-EVENT_FOUGHT_SUICUNE EQU $335
-EVENT_FOUGHT_SNORLAX EQU $750
-
+EVENT_GOT_TM31_MUD_SLAP EQU $008
+EVENT_GOT_TM49_FURY_CUTTER EQU $009
+EVENT_GOT_TM01_DYNAMICPUNCH EQU $00a
+EVENT_GOT_TM45_ATTRACT EQU $00b
+EVENT_GOT_TM30_SHADOW_BALL EQU $00c
+EVENT_GOT_TM23_IRON_TAIL EQU $00d
+EVENT_GOT_TM16_ICY_WIND EQU $00e
+EVENT_GOT_TM24_DRAGONBREATH EQU $00f
+EVENT_GOT_HM01_CUT EQU $010
+EVENT_GOT_HM02_FLY EQU $011
+EVENT_GOT_HM03_SURF EQU $012
+EVENT_GOT_HM04_STRENGTH EQU $013
+EVENT_GOT_HM05_FLASH EQU $014
+EVENT_GOT_HM06_WHIRLPOOL EQU $015
+EVENT_GOT_OLD_ROD EQU $017
+EVENT_GOT_GOOD_ROD EQU $018
+EVENT_GOT_SUPER_ROD EQU $019
+EVENT_GOT_A_POKEMON_FROM_ELM EQU $01a
+EVENT_GOT_CYNDAQUIL_FROM_ELM EQU $01b
+EVENT_GOT_TOTODILE_FROM_ELM EQU $01c
+EVENT_GOT_CHIKORITA_FROM_ELM EQU $01d
+EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON EQU $01e
+EVENT_GAVE_MYSTERY_EGG_TO_ELM EQU $01f
+EVENT_JASMINE_RETURNED_TO_GYM EQU $020
+EVENT_CLEARED_RADIO_TOWER EQU $021
+EVENT_CLEARED_ROCKET_HIDEOUT EQU $022
+EVENT_GOT_SECRETPOTION_FROM_PHARMACY EQU $023
+EVENT_GOT_SS_TICKET_FROM_ELM EQU $024
+EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER EQU $025
+EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE EQU $026
+EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE EQU $027
+EVENT_MADE_WHITNEY_CRY EQU $028
+EVENT_FOUGHT_SUDOWOODO EQU $02a
+EVENT_CLEARED_SLOWPOKE_WELL EQU $02b
+EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE EQU $02c
+EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE EQU $02d
+EVENT_MADE_UNOWN_APPEAR_IN_RUINS EQU $02e
+EVENT_HEALED_MOOMOO EQU $03d
+EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM EQU $03e
+EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO EQU $03f
+EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST EQU $040
+EVENT_DUDE_TALKED_TO_YOU EQU $041
+EVENT_LEARNED_TO_CATCH_POKEMON EQU $042
+EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON EQU $043
+EVENT_GOT_SHUCKIE EQU $045
+EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM EQU $046
+EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER EQU $047
+EVENT_GOT_PINK_BOW_FROM_MARY EQU $048
+EVENT_USED_BASEMENT_KEY EQU $049
+EVENT_GOT_TM08_ROCK_SMASH EQU $04b
+EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE EQU $04d
+EVENT_GOT_TM05_ROAR EQU $04e
+EVENT_GOT_EEVEE EQU $04f
+EVENT_GOT_KENYA EQU $050
+EVENT_GAVE_KENYA EQU $051
+EVENT_GOT_HP_UP_FROM_RANDY EQU $052
+EVENT_GOT_TM50_NIGHTMARE EQU $053
+EVENT_TOGEPI_HATCHED EQU $054
+EVENT_SHOWED_TOGEPI_TO_ELM EQU $055
+EVENT_GOT_EVERSTONE_FROM_ELM EQU $056
+EVENT_GOT_QUICK_CLAW EQU $057
+EVENT_GOT_TM10_HIDDEN_POWER EQU $058
+EVENT_GOT_TM36_SLUDGE_BOMB EQU $059
+EVENT_GOT_ITEMFINDER EQU $05a
+EVENT_GOT_BICYCLE EQU $05b
+EVENT_GOT_SQUIRTBOTTLE EQU $05c
+EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32 EQU $05d
+EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN EQU $05e
+EVENT_GOT_TM02_HEADBUTT EQU $05f
+EVENT_DECIDED_TO_HELP_LANCE EQU $060
+EVENT_GOT_TYROGUE_FROM_KIYO EQU $061
+EVENT_MET_FRIEDA_OF_FRIDAY EQU $062
+EVENT_GOT_POISON_BARB_FROM_FRIEDA EQU $063
+EVENT_MET_TUSCANY_OF_TUESDAY EQU $064
+EVENT_GOT_PINK_BOW_FROM_TUSCANY EQU $065
+EVENT_MET_ARTHUR_OF_THURSDAY EQU $066
+EVENT_GOT_HARD_STONE_FROM_ARTHUR EQU $067
+EVENT_MET_SUNNY_OF_SUNDAY EQU $068
+EVENT_GOT_MAGNET_FROM_SUNNY EQU $069
+EVENT_MET_WESLEY_OF_WEDNESDAY EQU $06a
+EVENT_GOT_BLACKBELT_FROM_WESLEY EQU $06b
+EVENT_MET_SANTOS_OF_SATURDAY EQU $06c
+EVENT_GOT_SPELL_TAG_FROM_SANTOS EQU $06d
+EVENT_MET_MONICA_OF_MONDAY EQU $06e
+EVENT_GOT_SHARP_BEAK_FROM_MONICA EQU $06f
+EVENT_GOT_SOFT_SAND_FROM_KATE EQU $070
+EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA EQU $071
+EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE EQU $072
+EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL EQU $073
+EVENT_GOT_TM47_STEEL_WING EQU $074
+EVENT_GOT_TM37_SANDSTORM EQU $075
+EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE EQU $077
+EVENT_GOT_CLEAR_BELL EQU $078
+EVENT_GOT_SILVER_WING EQU $079
+EVENT_GOT_TM12_SWEET_SCENT EQU $07a
+EVENT_RELEASED_THE_BEASTS EQU $07b
+EVENT_GOT_MASTER_BALL_FROM_ELM EQU $07c
+EVENT_FOUND_REVIVE_IN_ROCKET_BASE_B1F EQU $086
+EVENT_CAN_GIVE_GS_BALL_TO_KURT EQU $0be
+EVENT_RETURNED_MACHINE_PART EQU $0c9
+EVENT_MET_MANAGER_AT_POWER_PLANT EQU $0ca
+EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM EQU $0cb
+EVENT_MET_REDS_MOM EQU $0cc
+EVENT_RESTORED_POWER_TO_KANTO EQU $0cd
+EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON EQU $0ce
+EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM EQU $0cf
+EVENT_RETURNED_LOST_ITEM_TO_COPYCAT EQU $0d0
+EVENT_GOT_PASS_FROM_COPYCAT EQU $0d1
+EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB EQU $0d2
+EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT_BUT_BAG_WAS_FULL EQU $0d3
+EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT EQU $0d4
+EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE EQU $0d5
+EVENT_ENABLE_DIPLOMA_PRINTING EQU $0d6
+EVENT_CLEARED_NUGGET_BRIDGE EQU $0d8
+EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER EQU $0d9
+EVENT_GOT_TM03_CURSE EQU $0da
+EVENT_GOT_CLEANSE_TAG EQU $0db
+EVENT_GOT_TM19_GIGA_DRAIN EQU $0dc
+EVENT_GOT_TM06_TOXIC EQU $0dd
+EVENT_GOT_UP_GRADE EQU $0de
+EVENT_GOT_TM07_ZAP_CANNON EQU $0df
+EVENT_GOT_TM42_DREAM_EATER EQU $0e0
+EVENT_GOT_TM29_PSYCHIC EQU $0e3
+EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE EQU $0f9
+EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM EQU $0fb
+EVENT_SHOWED_BEVERLY_MARILL EQU $261
+EVENT_SHOWED_DEREK_PIKACHU EQU $28d
+EVENT_SHOWED_TIFFANY_CLEFAIRY EQU $293
+EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD EQU $29e
+EVENT_SWITCH_1 EQU $2d3
+EVENT_SWITCH_2 EQU $2d4
+EVENT_SWITCH_3 EQU $2d5
+EVENT_EMERGENCY_SWITCH EQU $2d6
+EVENT_SWITCH_4 EQU $2d7
+EVENT_SWITCH_5 EQU $2d8
+EVENT_SWITCH_6 EQU $2d9
+EVENT_SWITCH_7 EQU $2da
+EVENT_SWITCH_8 EQU $2db
+EVENT_SWITCH_9 EQU $2dc
+EVENT_SWITCH_10 EQU $2dd
+EVENT_SWITCH_11 EQU $2de
+EVENT_SWITCH_12 EQU $2df
+EVENT_SWITCH_13 EQU $2e0
+EVENT_SWITCH_14 EQU $2e1
+EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART EQU $2e2
+EVENT_TURNED_OFF_SECURITY_CAMERAS EQU $2e3
+EVENT_SECURITY_CAMERA_1 EQU $2e4
+EVENT_SECURITY_CAMERA_2 EQU $2e5
+EVENT_SECURITY_CAMERA_3 EQU $2e6
+EVENT_SECURITY_CAMERA_4 EQU $2e7
+EVENT_SECURITY_CAMERA_5 EQU $2e8
+EVENT_EXPLODING_TRAP_1 EQU $2e9
+EVENT_EXPLODING_TRAP_2 EQU $2ea
+EVENT_EXPLODING_TRAP_3 EQU $2eb
+EVENT_EXPLODING_TRAP_4 EQU $2ec
+EVENT_EXPLODING_TRAP_5 EQU $2ed
+EVENT_EXPLODING_TRAP_6 EQU $2ee
+EVENT_EXPLODING_TRAP_7 EQU $2ef
+EVENT_EXPLODING_TRAP_8 EQU $2f0
+EVENT_EXPLODING_TRAP_9 EQU $2f1
+EVENT_EXPLODING_TRAP_10 EQU $2f2
+EVENT_EXPLODING_TRAP_11 EQU $2f3
+EVENT_EXPLODING_TRAP_12 EQU $2f4
+EVENT_EXPLODING_TRAP_13 EQU $2f5
+EVENT_EXPLODING_TRAP_14 EQU $2f6
+EVENT_EXPLODING_TRAP_15 EQU $2f7
+EVENT_EXPLODING_TRAP_16 EQU $2f8
+EVENT_EXPLODING_TRAP_17 EQU $2f9
+EVENT_EXPLODING_TRAP_18 EQU $2fa
+EVENT_EXPLODING_TRAP_19 EQU $2fb
+EVENT_EXPLODING_TRAP_20 EQU $2fc
+EVENT_EXPLODING_TRAP_21 EQU $2fd
+EVENT_EXPLODING_TRAP_22 EQU $2fe
+EVENT_LEARNED_HAIL_GIOVANNI EQU $2ff
+EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER EQU $300
+EVENT_WILLS_ROOM_EXIT_OPEN EQU $30a
+EVENT_WILLS_ROOM_ENTRANCE_CLOSED EQU $30b
+EVENT_KOGAS_ROOM_EXIT_OPEN EQU $30c
+EVENT_KOGAS_ROOM_ENTRANCE_CLOSED EQU $30d
+EVENT_BRUNOS_ROOM_EXIT_OPEN EQU $30e
+EVENT_KARENS_ROOM_ENTRANCE_CLOSED EQU $30f
+EVENT_KARENS_ROOM_EXIT_OPEN EQU $310
+EVENT_LANCES_ROOM_ENTRANCE_CLOSED EQU $311
+EVENT_FOUGHT_HO_OH EQU $317
+EVENT_FOUGHT_LUGIA EQU $318
+EVENT_BEAT_RIVAL_IN_MT_MOON EQU $319
+EVENT_MET_BILLS_GRANDPA EQU $31a
+EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA EQU $31b
+EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA EQU $31c
+EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA EQU $31d
+EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA EQU $31e
+EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA EQU $31f
+EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA EQU $320
+EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA EQU $321
+EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA EQU $322
+EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA EQU $323
+EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA EQU $324
+EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE EQU $325
+EVENT_WALL_OPENED_IN_HO_OH_CHAMBER EQU $326
+EVENT_WALL_OPENED_IN_KABUTO_CHAMBER EQU $327
+EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER EQU $328
+EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER EQU $329
+EVENT_WADE_HAS_BERRY EQU $32b
+EVENT_WADE_HAS_PSNCUREBERRY EQU $32c
+EVENT_WADE_HAS_PRZCUREBERRY EQU $32d
+EVENT_WADE_HAS_BITTER_BERRY EQU $32e
+EVENT_WILTON_HAS_ULTRA_BALL EQU $32f
+EVENT_WILTON_HAS_GREAT_BALL EQU $330
+EVENT_WILTON_HAS_POKE_BALL EQU $331
+EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER EQU $334
+EVENT_FOUGHT_SUICUNE EQU $335
+EVENT_GOT_RAINBOW_WING EQU $336
+EVENT_HUEY_PROTEIN EQU $337
+EVENT_JOEY_HP_UP EQU $338
+EVENT_VANCE_CARBOS EQU $339
+EVENT_PARRY_IRON EQU $33a
+EVENT_ERIN_CALCIUM EQU $33b
+EVENT_BUENA_OFFERED_HER_PHONE_NUMBER EQU $33c
+EVENT_MET_BUENA EQU $33d
+EVENT_GOT_ODD_EGG EQU $33e
+EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER EQU $340
+EVENT_BEAT_SWIMMERF_ELAINE EQU $3e8
+EVENT_BEAT_SWIMMERF_PAULA EQU $3e9
+EVENT_BEAT_SWIMMERF_KAYLEE EQU $3ea
+EVENT_BEAT_SWIMMERF_SUSIE EQU $3eb
+EVENT_BEAT_SWIMMERF_DENISE EQU $3ec
+EVENT_BEAT_SWIMMERF_KARA EQU $3ed
+EVENT_BEAT_SWIMMERF_WENDY EQU $3ee
+EVENT_BEAT_SWIMMERF_DAWN EQU $3f3
+EVENT_BEAT_SWIMMERF_NICOLE EQU $3f5
+EVENT_BEAT_SWIMMERF_LORI EQU $3f6
+EVENT_BEAT_SWIMMERF_NIKKI EQU $3f8
+EVENT_BEAT_SWIMMERF_DIANA EQU $3f9
+EVENT_BEAT_SWIMMERF_BRIANA EQU $3fa
+EVENT_BEAT_BIRD_KEEPER_ROD EQU $3fb
+EVENT_BEAT_BIRD_KEEPER_ABE EQU $3fc
+EVENT_BEAT_BIRD_KEEPER_BRYAN EQU $3fd
+EVENT_BEAT_BIRD_KEEPER_THEO EQU $3fe
+EVENT_BEAT_BIRD_KEEPER_TOBY EQU $3ff
+EVENT_BEAT_BIRD_KEEPER_DENIS EQU $400
+EVENT_BEAT_BIRD_KEEPER_VANCE_1 EQU $401
+EVENT_BEAT_BIRD_KEEPER_HANK EQU $402
+EVENT_BEAT_BIRD_KEEPER_ROY EQU $403
+EVENT_BEAT_BIRD_KEEPER_BORIS EQU $404
+EVENT_BEAT_BIRD_KEEPER_BOB EQU $405
+EVENT_BEAT_BIRD_KEEPER_PETER EQU $407
+EVENT_BEAT_BIRD_KEEPER_JOSE EQU $408
+EVENT_BEAT_BIRD_KEEPER_PERRY EQU $409
+EVENT_BEAT_BIRD_KEEPER_BRET EQU $40a
+EVENT_BEAT_BOARDER_RONALD EQU $40e
+EVENT_BEAT_BOARDER_BRAD EQU $40f
+EVENT_BEAT_BOARDER_DOUGLAS EQU $410
+EVENT_BEAT_SAGE_CHOW EQU $411
+EVENT_BEAT_SAGE_NICO EQU $412
+EVENT_BEAT_SAGE_JIN EQU $413
+EVENT_BEAT_SAGE_TROY EQU $414
+EVENT_BEAT_SAGE_JEFFREY EQU $415
+EVENT_BEAT_SAGE_PING EQU $416
+EVENT_BEAT_SAGE_EDMOND EQU $417
+EVENT_BEAT_SAGE_NEAL EQU $418
+EVENT_BEAT_SAGE_LI EQU $419
+EVENT_BEAT_CAMPER_ROLAND EQU $41a
+EVENT_BEAT_CAMPER_TODD_1 EQU $41b
+EVENT_BEAT_CAMPER_IVAN EQU $41c
+EVENT_BEAT_CAMPER_ELLIOT EQU $41d
+EVENT_BEAT_CAMPER_LLOYD EQU $41f
+EVENT_BEAT_CAMPER_DEAN EQU $420
+EVENT_BEAT_CAMPER_SID EQU $421
+EVENT_BEAT_CAMPER_TED EQU $424
+EVENT_BEAT_CAMPER_JERRY EQU $42b
+EVENT_BEAT_CAMPER_SPENCER EQU $42c
+EVENT_BEAT_BURGLAR_DUNCAN EQU $42d
+EVENT_BEAT_BURGLAR_EDDIE EQU $42e
+EVENT_BEAT_BURGLAR_COREY EQU $42f
+EVENT_BEAT_BIKER_DWAYNE EQU $433
+EVENT_BEAT_BIKER_HARRIS EQU $434
+EVENT_BEAT_BIKER_ZEKE EQU $435
+EVENT_BEAT_BIKER_CHARLES EQU $436
+EVENT_BEAT_BIKER_RILEY EQU $437
+EVENT_BEAT_BIKER_JOEL EQU $438
+EVENT_BEAT_BIKER_GLENN EQU $439
+EVENT_BEAT_PSYCHIC_NATHAN EQU $43a
+EVENT_BEAT_PSYCHIC_FRANKLIN EQU $43b
+EVENT_BEAT_PSYCHIC_HERMAN EQU $43c
+EVENT_BEAT_PSYCHIC_FIDEL EQU $43d
+EVENT_BEAT_PSYCHIC_GREG EQU $43e
+EVENT_BEAT_PSYCHIC_NORMAN EQU $43f
+EVENT_BEAT_PSYCHIC_MARK EQU $440
+EVENT_BEAT_PSYCHIC_PHIL EQU $441
+EVENT_BEAT_PSYCHIC_RICHARD EQU $442
+EVENT_BEAT_PSYCHIC_GILBERT EQU $443
+EVENT_BEAT_PSYCHIC_JARED EQU $444
+EVENT_BEAT_PSYCHIC_RODNEY EQU $445
+EVENT_BEAT_FIREBREATHER_OTIS EQU $446
+EVENT_BEAT_FIREBREATHER_BURT EQU $449
+EVENT_BEAT_FIREBREATHER_BILL EQU $44a
+EVENT_BEAT_FIREBREATHER_WALT EQU $44b
+EVENT_BEAT_FIREBREATHER_RAY EQU $44c
+EVENT_BEAT_FIREBREATHER_LYLE EQU $44d
+EVENT_BEAT_FISHER_JUSTIN EQU $44e
+EVENT_BEAT_FISHER_RALPH_1 EQU $44f
+EVENT_BEAT_FISHER_ARNOLD EQU $450
+EVENT_BEAT_FISHER_KYLE EQU $451
+EVENT_BEAT_FISHER_HENRY EQU $452
+EVENT_BEAT_FISHER_MARVIN EQU $453
+EVENT_BEAT_FISHER_TULLY_1 EQU $454
+EVENT_BEAT_FISHER_ANDRE EQU $455
+EVENT_BEAT_FISHER_RAYMOND EQU $456
+EVENT_BEAT_FISHER_WILTON_1 EQU $457
+EVENT_BEAT_FISHER_EDGAR EQU $458
+EVENT_BEAT_FISHER_JONAH EQU $459
+EVENT_BEAT_FISHER_MARTIN EQU $45a
+EVENT_BEAT_FISHER_STEPHEN EQU $45b
+EVENT_BEAT_FISHER_BARNEY EQU $45c
+EVENT_BEAT_FISHER_SCOTT EQU $462
+EVENT_BEAT_TWINS_AMY_AND_MAY EQU $464
+EVENT_BEAT_TWINS_ANN_AND_ANNE EQU $465
+EVENT_BEAT_TWINS_JO_AND_ZOE EQU $468
+EVENT_BEAT_TWINS_MEG_AND_PEG EQU $46a
+EVENT_BEAT_SCHOOLBOY_JACK_1 EQU $46c
+EVENT_BEAT_SCHOOLBOY_KIP EQU $46d
+EVENT_BEAT_SCHOOLBOY_ALAN EQU $46e
+EVENT_BEAT_SCHOOLBOY_JOHNNY EQU $46f
+EVENT_BEAT_SCHOOLBOY_DANNY EQU $470
+EVENT_BEAT_SCHOOLBOY_TOMMY EQU $471
+EVENT_BEAT_SCHOOLBOY_DUDLEY EQU $472
+EVENT_BEAT_SCHOOLBOY_JOE EQU $473
+EVENT_BEAT_SCHOOLBOY_BILLY EQU $474
+EVENT_BEAT_SCHOOLBOY_CHAD_1 EQU $475
+EVENT_BEAT_SCHOOLBOY_NATE EQU $476
+EVENT_BEAT_SCHOOLBOY_RICKY EQU $477
+EVENT_BEAT_PICNICKER_LIZ_1 EQU $47e
+EVENT_BEAT_PICNICKER_GINA_1 EQU $47f
+EVENT_BEAT_PICNICKER_BROOKE EQU $480
+EVENT_BEAT_PICNICKER_KIM EQU $481
+EVENT_BEAT_PICNICKER_HOPE EQU $483
+EVENT_BEAT_PICNICKER_SHARON EQU $484
+EVENT_BEAT_PICNICKER_DEBRA EQU $485
+EVENT_BEAT_PICNICKER_ERIN_1 EQU $487
+EVENT_BEAT_PICNICKER_HEIDI EQU $48a
+EVENT_BEAT_PICNICKER_EDNA EQU $48b
+EVENT_BEAT_PICNICKER_TANYA EQU $490
+EVENT_BEAT_PICNICKER_TIFFANY_3 EQU $491
+EVENT_BEAT_GUITARIST_CLYDE EQU $493
+EVENT_BEAT_GUITARIST_VINCENT EQU $494
+EVENT_BEAT_JUGGLER_IRWIN_1 EQU $495
+EVENT_BEAT_JUGGLER_FRITZ EQU $496
+EVENT_BEAT_JUGGLER_HORTON EQU $497
+EVENT_BEAT_GENTLEMAN_PRESTON EQU $49a
+EVENT_BEAT_GENTLEMAN_EDWARD EQU $49b
+EVENT_BEAT_GENTLEMAN_GREGORY EQU $49c
+EVENT_BEAT_GENTLEMAN_ALFRED EQU $49e
+EVENT_BEAT_SCIENTIST_ROSS EQU $49f
+EVENT_BEAT_SCIENTIST_MITCH EQU $4a0
+EVENT_BEAT_SCIENTIST_JED EQU $4a1
+EVENT_BEAT_SCIENTIST_MARC EQU $4a2
+EVENT_BEAT_SCIENTIST_RICH EQU $4a3
+EVENT_BEAT_BLACKBELT_YOSHI EQU $4a5
+EVENT_BEAT_BLACKBELT_LAO EQU $4a7
+EVENT_BEAT_BLACKBELT_NOB EQU $4a8
+EVENT_BEAT_BLACKBELT_LUNG EQU $4aa
+EVENT_BEAT_BLACKBELT_KENJI_3 EQU $4ab
+EVENT_BEAT_BLACKBELT_WAI EQU $4ac
+EVENT_BEAT_BEAUTY_VICTORIA EQU $4ad
+EVENT_BEAT_BEAUTY_SAMANTHA EQU $4ae
+EVENT_BEAT_BEAUTY_CASSIE EQU $4b2
+EVENT_BEAT_BEAUTY_JULIA EQU $4ba
+EVENT_BEAT_BEAUTY_VALERIE EQU $4bc
+EVENT_BEAT_FALKNER EQU $4bd
+EVENT_BEAT_BUGSY EQU $4be
+EVENT_BEAT_WHITNEY EQU $4bf
+EVENT_BEAT_MORTY EQU $4c0
+EVENT_BEAT_JASMINE EQU $4c1
+EVENT_BEAT_CHUCK EQU $4c2
+EVENT_BEAT_PRYCE EQU $4c3
+EVENT_BEAT_CLAIR EQU $4c4
+EVENT_BEAT_BROCK EQU $4c5
+EVENT_BEAT_MISTY EQU $4c6
+EVENT_BEAT_LTSURGE EQU $4c7
+EVENT_BEAT_JANINE EQU $4c9
+EVENT_BEAT_SABRINA EQU $4ca
+EVENT_BEAT_BLUE EQU $4cc
+EVENT_BEAT_POKEFANM_WILLIAM EQU $4cd
+EVENT_BEAT_POKEFANM_DEREK EQU $4ce
+EVENT_BEAT_POKEFANM_ROBERT EQU $4cf
+EVENT_BEAT_POKEFANM_JOSHUA EQU $4d0
+EVENT_BEAT_POKEFANM_CARTER EQU $4d1
+EVENT_BEAT_POKEFANM_TREVOR EQU $4d2
+EVENT_BEAT_POKEFANM_BRANDON EQU $4d3
+EVENT_BEAT_POKEFANM_JEREMY EQU $4d4
+EVENT_BEAT_POKEFANM_COLIN EQU $4d5
+EVENT_BEAT_POKEFANM_ALEX EQU $4d8
+EVENT_BEAT_POKEFANF_BEVERLY EQU $4d9
+EVENT_BEAT_POKEFANF_RUTH EQU $4da
+EVENT_BEAT_POKEFANF_GEORGIA EQU $4dd
+EVENT_BEAT_KIMONO_GIRL_NAOKO EQU $4df
+EVENT_BEAT_KIMONO_GIRL_SAYO EQU $4e0
+EVENT_BEAT_KIMONO_GIRL_ZUKI EQU $4e1
+EVENT_BEAT_KIMONO_GIRL_KUNI EQU $4e2
+EVENT_BEAT_KIMONO_GIRL_MIKI EQU $4e3
+EVENT_BEAT_POKEMANIAC_LARRY EQU $4e4
+EVENT_BEAT_POKEMANIAC_ANDREW EQU $4e5
+EVENT_BEAT_POKEMANIAC_CALVIN EQU $4e6
+EVENT_BEAT_POKEMANIAC_SHANE EQU $4e7
+EVENT_BEAT_POKEMANIAC_BEN EQU $4e8
+EVENT_BEAT_POKEMANIAC_BRENT EQU $4e9
+EVENT_BEAT_POKEMANIAC_RON EQU $4ea
+EVENT_BEAT_POKEMANIAC_ETHAN EQU $4eb
+EVENT_BEAT_POKEMANIAC_ISSAC EQU $4ee
+EVENT_BEAT_POKEMANIAC_DONALD EQU $4ef
+EVENT_BEAT_POKEMANIAC_ZACH EQU $4f0
+EVENT_BEAT_ROCKET_GRUNTM_1 EQU $4f1
+EVENT_BEAT_ROCKET_GRUNTM_2 EQU $4f2
+EVENT_BEAT_ROCKET_GRUNTM_3 EQU $4f3
+EVENT_BEAT_ROCKET_GRUNTM_4 EQU $4f4
+EVENT_BEAT_ROCKET_GRUNTM_5 EQU $4f5
+EVENT_BEAT_ROCKET_GRUNTM_6 EQU $4f6
+EVENT_BEAT_ROCKET_GRUNTM_7 EQU $4f7
+EVENT_BEAT_ROCKET_GRUNTM_8 EQU $4f8
+EVENT_BEAT_ROCKET_GRUNTM_9 EQU $4f9
+EVENT_BEAT_ROCKET_GRUNTM_10 EQU $4fa
+EVENT_BEAT_ROCKET_GRUNTM_11 EQU $4fb
+EVENT_BEAT_ROCKET_GRUNTM_12 EQU $4fd
+EVENT_BEAT_ROCKET_GRUNTM_13 EQU $4fe
+EVENT_BEAT_ROCKET_GRUNTM_14 EQU $4ff
+EVENT_BEAT_ROCKET_GRUNTM_15 EQU $500
+EVENT_BEAT_ROCKET_GRUNTM_16 EQU $501
+EVENT_BEAT_ROCKET_GRUNTM_17 EQU $502
+EVENT_BEAT_ROCKET_GRUNTM_18 EQU $503
+EVENT_BEAT_ROCKET_GRUNTM_19 EQU $508
+EVENT_BEAT_ROCKET_GRUNTM_20 EQU $509
+EVENT_BEAT_ROCKET_GRUNTM_21 EQU $50c
+EVENT_BEAT_ROCKET_GRUNTM_22 EQU $50d
+EVENT_BEAT_ROCKET_GRUNTF_1 EQU $510
+EVENT_BEAT_ROCKET_GRUNTF_2 EQU $511
+EVENT_BEAT_ROCKET_GRUNTF_3 EQU $512
+EVENT_BEAT_ROCKET_GRUNTF_4 EQU $513
+EVENT_BEAT_ROCKET_GRUNTF_5 EQU $514
+EVENT_BEAT_LASS_CARRIE EQU $515
+EVENT_BEAT_LASS_BRIDGET EQU $516
+EVENT_BEAT_LASS_KRISE EQU $518
+EVENT_BEAT_LASS_CONNIE_1 EQU $519
+EVENT_BEAT_LASS_LAURA EQU $51b
+EVENT_BEAT_LASS_SHANNON EQU $51c
+EVENT_BEAT_LASS_MICHELLE EQU $51d
+EVENT_BEAT_LASS_DANA EQU $51e
+EVENT_BEAT_LASS_ELLEN EQU $51f
+EVENT_BEAT_HIKER_RUSSELL EQU $525
+EVENT_BEAT_HIKER_PHILLIP EQU $526
+EVENT_BEAT_HIKER_LEONARD EQU $527
+EVENT_BEAT_HIKER_ANTHONY_2 EQU $528
+EVENT_BEAT_HIKER_BENJAMIN EQU $529
+EVENT_BEAT_HIKER_ERIK EQU $52a
+EVENT_BEAT_HIKER_MICHAEL EQU $52b
+EVENT_BEAT_HIKER_PARRY_3 EQU $52c
+EVENT_BEAT_HIKER_TIMOTHY EQU $52d
+EVENT_BEAT_HIKER_BAILEY EQU $52e
+EVENT_BEAT_HIKER_TIM EQU $530
+EVENT_BEAT_HIKER_NOLAND EQU $531
+EVENT_BEAT_HIKER_SIDNEY EQU $532
+EVENT_BEAT_HIKER_KENNY EQU $533
+EVENT_BEAT_HIKER_JIM EQU $534
+EVENT_BEAT_HIKER_DANIEL EQU $535
+EVENT_BEAT_BUG_CATCHER_DON EQU $538
+EVENT_BEAT_BUG_CATCHER_ROB EQU $539
+EVENT_BEAT_BUG_CATCHER_ED EQU $53a
+EVENT_BEAT_BUG_CATCHER_WADE_1 EQU $53b
+EVENT_BEAT_BUG_CATCHER_BENNY EQU $53c
+EVENT_BEAT_BUG_CATCHER_AL EQU $53d
+EVENT_BEAT_BUG_CATCHER_JOSH EQU $53e
+EVENT_BEAT_BUG_CATCHER_ARNIE_1 EQU $53f
+EVENT_BEAT_BUG_CATCHER_KEN EQU $540
+EVENT_BEAT_BUG_CATCHER_DOUG EQU $543
+EVENT_BEAT_COOLTRAINERM_NICK EQU $548
+EVENT_BEAT_COOLTRAINERM_AARON EQU $549
+EVENT_BEAT_COOLTRAINERM_PAUL EQU $54a
+EVENT_BEAT_COOLTRAINERM_CODY EQU $54b
+EVENT_BEAT_COOLTRAINERM_MIKE EQU $54c
+EVENT_BEAT_COOLTRAINERM_RYAN EQU $54f
+EVENT_BEAT_COOLTRAINERM_JAKE EQU $550
+EVENT_BEAT_COOLTRAINERM_GAVEN_3 EQU $551
+EVENT_BEAT_COOLTRAINERM_BLAKE EQU $552
+EVENT_BEAT_COOLTRAINERM_BRIAN EQU $553
+EVENT_BEAT_COOLTRAINERM_SEAN EQU $557
+EVENT_BEAT_COOLTRAINERM_ALLEN EQU $55a
+EVENT_BEAT_COOLTRAINERF_GWEN EQU $55b
+EVENT_BEAT_COOLTRAINERF_LOIS EQU $55c
+EVENT_BEAT_COOLTRAINERF_FRAN EQU $55d
+EVENT_BEAT_COOLTRAINERF_LOLA EQU $55e
+EVENT_BEAT_COOLTRAINERF_KATE EQU $55f
+EVENT_BEAT_COOLTRAINERF_IRENE EQU $560
+EVENT_BEAT_COOLTRAINERF_KELLY EQU $561
+EVENT_BEAT_COOLTRAINERF_JOYCE EQU $562
+EVENT_BEAT_COOLTRAINERF_BETH_1 EQU $563
+EVENT_BEAT_COOLTRAINERF_REENA_1 EQU $564
+EVENT_BEAT_COOLTRAINERF_MEGAN EQU $565
+EVENT_BEAT_COOLTRAINERF_CAROL EQU $567
+EVENT_BEAT_COOLTRAINERF_QUINN EQU $568
+EVENT_BEAT_COOLTRAINERF_EMMA EQU $569
+EVENT_BEAT_COOLTRAINERF_CYBIL EQU $56a
+EVENT_BEAT_COOLTRAINERF_JENN EQU $56b
+EVENT_BEAT_ROCKET_EXECUTIVEF EQU $56f
+EVENT_BEAT_ROCKET_EXECUTIVEM EQU $572
+EVENT_BEAT_SAILOR_EUGENE EQU $575
+EVENT_BEAT_SAILOR_HUEY_1 EQU $576
+EVENT_BEAT_SAILOR_TERRELL EQU $577
+EVENT_BEAT_SAILOR_KENT EQU $578
+EVENT_BEAT_SAILOR_ERNEST EQU $579
+EVENT_BEAT_SAILOR_JEFF EQU $57a
+EVENT_BEAT_SAILOR_GARRETT EQU $57b
+EVENT_BEAT_SAILOR_KENNETH EQU $57c
+EVENT_BEAT_SAILOR_HARRY EQU $57e
+EVENT_BEAT_SUPER_NERD_ERIC EQU $582
+EVENT_BEAT_SUPER_NERD_SAM EQU $586
+EVENT_BEAT_SUPER_NERD_TOM EQU $587
+EVENT_BEAT_SUPER_NERD_PAT EQU $588
+EVENT_BEAT_SUPER_NERD_SHAWN EQU $589
+EVENT_BEAT_SUPER_NERD_TERU EQU $58a
+EVENT_BEAT_MEDIUM_MARTHA EQU $58b
+EVENT_BEAT_MEDIUM_GRACE EQU $58c
+EVENT_BEAT_MEDIUM_REBECCA EQU $590
+EVENT_BEAT_MEDIUM_DORIS EQU $591
+EVENT_BEAT_SKIER_ROXANNE EQU $592
+EVENT_BEAT_SKIER_CLARISSA EQU $593
+EVENT_BEAT_SWIMMERM_HAROLD EQU $594
+EVENT_BEAT_SWIMMERM_SIMON EQU $595
+EVENT_BEAT_SWIMMERM_RANDALL EQU $596
+EVENT_BEAT_SWIMMERM_CHARLIE EQU $597
+EVENT_BEAT_SWIMMERM_GEORGE EQU $598
+EVENT_BEAT_SWIMMERM_BERKE EQU $599
+EVENT_BEAT_SWIMMERM_KIRK EQU $59a
+EVENT_BEAT_SWIMMERM_MATHEW EQU $59b
+EVENT_BEAT_SWIMMERM_JEROME EQU $5a1
+EVENT_BEAT_SWIMMERM_TUCKER EQU $5a2
+EVENT_BEAT_SWIMMERM_CAMERON EQU $5a4
+EVENT_BEAT_SWIMMERM_SETH EQU $5a5
+EVENT_BEAT_SWIMMERM_PARKER EQU $5a8
+EVENT_BEAT_YOUNGSTER_JOEY_1 EQU $5a9
+EVENT_BEAT_YOUNGSTER_MIKEY EQU $5aa
+EVENT_BEAT_YOUNGSTER_ALBERT EQU $5ab
+EVENT_BEAT_YOUNGSTER_GORDON EQU $5ac
+EVENT_BEAT_YOUNGSTER_SAMUEL EQU $5ad
+EVENT_BEAT_YOUNGSTER_IAN EQU $5ae
+EVENT_BEAT_YOUNGSTER_WARREN EQU $5b1
+EVENT_BEAT_YOUNGSTER_JIMMY EQU $5b2
+EVENT_BEAT_YOUNGSTER_OWEN EQU $5b3
+EVENT_BEAT_YOUNGSTER_JASON EQU $5b4
+EVENT_BEAT_TEACHER_COLETTE EQU $5b5
+EVENT_BEAT_TEACHER_HILLARY EQU $5b6
+EVENT_BEAT_TEACHER_SHIRLEY EQU $5b7
+EVENT_BEAT_ELITE_4_KAREN EQU $5bb
+EVENT_BEAT_CHAMPION_LANCE EQU $5bc
+EVENT_BEAT_COOLTRAINERM_DARIN EQU $5bd
+EVENT_BEAT_COOLTRAINERF_CARA EQU $5be
+EVENT_BEAT_TWINS_LEA_AND_PIA EQU $5bf
+EVENT_BEAT_BUG_CATCHER_WAYNE EQU $5c0
+EVENT_BEAT_BEAUTY_OLIVIA EQU $5c1
+EVENT_BEAT_POKEMANIAC_MILER EQU $5c4
+EVENT_BEAT_SUPER_NERD_HUGH EQU $5c5
+EVENT_BEAT_SUPER_NERD_MARKUS EQU $5c6
+EVENT_BEAT_POKEFANM_REX EQU $5c7
+EVENT_BEAT_POKEFANM_ALLAN EQU $5c8
+EVENT_BEAT_SAGE_GAKU EQU $5c9
+EVENT_BEAT_SAGE_MASA EQU $5ca
+EVENT_BEAT_SAGE_KOJI EQU $5cb
+EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE EQU $6ff
+EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER EQU $700
+EVENT_ELMS_AIDE_IN_LAB EQU $701
+EVENT_BOULDER_IN_ICE_PATH_1 EQU $70d
+EVENT_BOULDER_IN_ICE_PATH_2 EQU $70e
+EVENT_BOULDER_IN_ICE_PATH_3 EQU $70f
+EVENT_BOULDER_IN_ICE_PATH_4 EQU $710
+EVENT_FOUGHT_SNORLAX EQU $750
+EVENT_PICKED_UP_FOCUS_BAND EQU $77d
+EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM EQU $794
+EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM EQU $795
+EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM EQU $796
+EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM EQU $797
+EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM EQU $798
+EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM EQU $799
+EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM EQU $79a
+EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM EQU $79b
+EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM EQU $79c
+EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM EQU $79d
+EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM EQU $79e
+EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM EQU $79f
+EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM EQU $7a0
+EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM EQU $7a1
+EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM EQU $7a2
+EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM EQU $7a3
+EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY EQU $7ae
+EVENT_SAW_SUICUNE_ON_ROUTE_42 EQU $7af
+EVENT_SAW_SUICUNE_ON_ROUTE_36 EQU $7b0
+EVENT_SET_WHEN_FOUGHT_HO_OH EQU $7b7
diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm
new file mode 100644
index 000000000..5890d6784
--- /dev/null
+++ b/engine/fruit_trees.asm
@@ -0,0 +1,165 @@
+FruitTreeScript: ; 44000
+ 3callasm BANK(GetCurTreeFruit), GetCurTreeFruit
+ loadfont
+ copybytetovar CurFruit
+ itemtotext $0, $0
+ 2writetext FruitBearingTreeText
+ keeptextopen
+ 3callasm BANK(TryResetFruitTrees), TryResetFruitTrees
+ 3callasm BANK(CheckFruitTree), CheckFruitTree
+ iffalse .fruit
+ 2writetext NothingHereText
+ closetext
+ 2jump .end
+
+.fruit
+ 2writetext HeyItsFruitText
+ copybytetovar CurFruit
+ giveitem $ff, 1
+ iffalse .packisfull
+ keeptextopen
+ 2writetext ObtainedFruitText
+ 3callasm BANK(PickedFruitTree), PickedFruitTree
+ specialsound
+ itemnotify
+ 2jump .end
+
+.packisfull
+ keeptextopen
+ 2writetext FruitPackIsFullText
+ closetext
+
+.end
+ loadmovesprites
+ end
+; 44041
+
+GetCurTreeFruit: ; 44041
+ ld a, [CurFruitTree]
+ dec a
+ call GetFruitTreeItem
+ ld [CurFruit], a
+ ret
+; 4404c
+
+TryResetFruitTrees: ; 4404c
+ ld hl, $dc1e
+ bit 4, [hl]
+ ret nz
+ jp ResetFruitTrees
+; 44055
+
+CheckFruitTree: ; 44055
+ ld b, 2
+ call GetFruitTreeFlag
+ ld a, c
+ ld [ScriptVar], a
+ ret
+; 4405f
+
+PickedFruitTree: ; 4405f
+ ld a, $41
+ ld hl, $609b
+ rst FarCall ; empty function
+
+ ld b, 1
+ jp GetFruitTreeFlag
+; 4406a
+
+ResetFruitTrees: ; 4406a
+ xor a
+ ld hl, FruitTreeFlags
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $dc1e
+ set 4, [hl]
+ ret
+; 44078
+
+GetFruitTreeFlag: ; 44078
+ push hl
+ push de
+ ld a, [CurFruitTree]
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, FruitTreeFlags
+ call FlagAction
+ pop de
+ pop hl
+ ret
+; 4408a
+
+GetFruitTreeItem: ; 4408a
+ push hl
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, FruitTreeItems
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+; 44097
+
+FruitTreeItems: ; 44097
+ db BERRY
+ db BERRY
+ db BERRY
+ db BERRY
+ db PSNCUREBERRY
+ db PSNCUREBERRY
+ db BITTER_BERRY
+ db BITTER_BERRY
+ db PRZCUREBERRY
+ db PRZCUREBERRY
+ db MYSTERYBERRY
+ db MYSTERYBERRY
+ db ICE_BERRY
+ db ICE_BERRY
+ db MINT_BERRY
+ db BURNT_BERRY
+ db RED_APRICORN
+ db BLU_APRICORN
+ db BLK_APRICORN
+ db WHT_APRICORN
+ db PNK_APRICORN
+ db GRN_APRICORN
+ db YLW_APRICORN
+ db BERRY
+ db PSNCUREBERRY
+ db BITTER_BERRY
+ db PRZCUREBERRY
+ db ICE_BERRY
+ db MINT_BERRY
+ db BURNT_BERRY
+; 440b5
+
+FruitBearingTreeText: ; 440b5
+ text_jump _FruitBearingTreeText, BANK(_FruitBearingTreeText)
+ db "@"
+; 440ba
+
+HeyItsFruitText: ; 440ba
+ text_jump _HeyItsFruitText, BANK(_HeyItsFruitText)
+ db "@"
+; 440bf
+
+ObtainedFruitText: ; 440bf
+ text_jump _ObtainedFruitText, BANK(_ObtainedFruitText)
+ db "@"
+; 440c4
+
+FruitPackIsFullText: ; 440c4
+ text_jump _FruitPackIsFullText, BANK(_FruitPackIsFullText)
+ db "@"
+; 440c9
+
+NothingHereText: ; 440c9
+ text_jump _NothingHereText, BANK(_NothingHereText)
+ db "@"
+; 440ce
+
diff --git a/engine/scripting.asm b/engine/scripting.asm
index 5d44d1a8e..12fd14283 100644
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -539,7 +539,7 @@ Script_verbosegiveitem2: ; 0x96f8e
ld a, [de]
ld [$d10c], a
ld hl, $d892
- call Function2f66
+ call ReceiveItem
ld a, $1
jr c, .asm_96fb0 ; 0x96fad $1
xor a
@@ -1787,15 +1787,15 @@ StdScript: ; 0x9757b
ld e, a
call GetScriptByte
ld d, a
- ld hl, $4000 ; StdScripts
+ ld hl, StdScripts
add hl, de
add hl, de
add hl, de
- ld a, $2f ; BANK(StdScripts)
+ ld a, BANK(StdScripts)
call GetFarByte
ld b, a
inc hl
- ld a, $2f ; BANK(StdScripts)
+ ld a, BANK(StdScripts)
call GetFarHalfword
ret
; 0x97596
@@ -2320,7 +2320,7 @@ Script_giveitem: ; 0x977ca
call GetScriptByte
ld [$d10c], a
ld hl, $d892
- call Function2f66
+ call ReceiveItem
jr nc, .asm_977eb ; 0x977e3 $6
ld a, $1
ld [$c2dd], a
@@ -2346,7 +2346,7 @@ Script_takeitem: ; 0x977f0
ld a, $ff
ld [$d107], a
ld hl, $d892
- call Function2f53
+ call TossItem
ret nc
ld a, $1
ld [$c2dd], a
@@ -2363,7 +2363,7 @@ Script_checkitem: ; 0x97812
call GetScriptByte
ld [$d106], a
ld hl, $d892
- call PickUpItem
+ call CheckItem
ret nc
ld a, $1
ld [$c2dd], a
diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm
new file mode 100644
index 000000000..095013d1d
--- /dev/null
+++ b/engine/std_scripts.asm
@@ -0,0 +1,2619 @@
+StdScripts: ; bc000
+ dbw BANK(PokeCenterNurseScript), PokeCenterNurseScript
+ dbw BANK(UnknownScript_0xbc162), UnknownScript_0xbc162
+ dbw BANK(UnknownScript_0xbc166), UnknownScript_0xbc166
+ dbw BANK(UnknownScript_0xbc16a), UnknownScript_0xbc16a
+ dbw BANK(UnknownScript_0xbc16e), UnknownScript_0xbc16e
+ dbw BANK(UnknownScript_0xbc172), UnknownScript_0xbc172
+ dbw BANK(UnknownScript_0xbc176), UnknownScript_0xbc176
+ dbw BANK(UnknownScript_0xbc17a), UnknownScript_0xbc17a
+ dbw BANK(UnknownScript_0xbc185), UnknownScript_0xbc185
+ dbw BANK(UnknownScript_0xbc189), UnknownScript_0xbc189
+ dbw BANK(UnknownScript_0xbc191), UnknownScript_0xbc191
+ dbw BANK(UnknownScript_0xbc195), UnknownScript_0xbc195
+ dbw BANK(UnknownScript_0xbc19d), UnknownScript_0xbc19d
+ dbw BANK(UnknownScript_0xbc1a5), UnknownScript_0xbc1a5
+ dbw BANK(UnknownScript_0xbc1b8), UnknownScript_0xbc1b8
+ dbw BANK(UnknownScript_0xbc1bc), UnknownScript_0xbc1bc
+ dbw BANK(UnknownScript_0xbc1c0), UnknownScript_0xbc1c0
+ dbw BANK(UnknownScript_0xbc1c4), UnknownScript_0xbc1c4
+ dbw BANK(UnknownScript_0xbc23e), UnknownScript_0xbc23e
+ dbw BANK(UnknownScript_0xbc242), UnknownScript_0xbc242
+ dbw BANK(UnknownScript_0xbc1af), UnknownScript_0xbc1af
+ dbw BANK(UnknownScript_0xbc1c8), UnknownScript_0xbc1c8
+ dbw BANK(UnknownScript_0xbc25c), UnknownScript_0xbc25c
+ dbw BANK(UnknownScript_0xbc274), UnknownScript_0xbc274
+ dbw BANK(UnknownScript_0xbc3db), UnknownScript_0xbc3db
+ dbw BANK(UnknownScript_0xbc574), UnknownScript_0xbc574
+ dbw BANK(UnknownScript_0xbc62d), UnknownScript_0xbc62d
+ dbw BANK(UnknownScript_0xbc6e6), UnknownScript_0xbc6e6
+ dbw BANK(UnknownScript_0xbc6f0), UnknownScript_0xbc6f0
+ dbw BANK(UnknownScript_0xbc7ce), UnknownScript_0xbc7ce
+ dbw BANK(UnknownScript_0xbc8ac), UnknownScript_0xbc8ac
+ dbw BANK(UnknownScript_0xbc98a), UnknownScript_0xbc98a
+ dbw BANK(UnknownScript_0xbca47), UnknownScript_0xbca47
+ dbw BANK(UnknownScript_0xbca8f), UnknownScript_0xbca8f
+ dbw BANK(UnknownScript_0xbcb0a), UnknownScript_0xbcb0a
+ dbw BANK(UnknownScript_0xbcb35), UnknownScript_0xbcb35
+ dbw BANK(UnknownScript_0xbcb7f), UnknownScript_0xbcb7f
+ dbw BANK(UnknownScript_0xbcbc9), UnknownScript_0xbcbc9
+ dbw BANK(UnknownScript_0xbcbd3), UnknownScript_0xbcbd3
+ dbw BANK(UnknownScript_0xbcc2d), UnknownScript_0xbcc2d
+ dbw BANK(UnknownScript_0xbcc87), UnknownScript_0xbcc87
+ dbw BANK(UnknownScript_0xbcce1), UnknownScript_0xbcce1
+ dbw BANK(UnknownScript_0xbcd30), UnknownScript_0xbcd30
+ dbw BANK(UnknownScript_0xbcd5a), UnknownScript_0xbcd5a
+ dbw BANK(UnknownScript_0xbcd93), UnknownScript_0xbcd93
+ dbw BANK(UnknownScript_0xbcda0), UnknownScript_0xbcda0
+ dbw BANK(UnknownScript_0xbcdaa), UnknownScript_0xbcdaa
+ dbw BANK(UnknownScript_0xbcdb9), UnknownScript_0xbcdb9
+ dbw BANK(UnknownScript_0xbcdc3), UnknownScript_0xbcdc3
+ dbw BANK(UnknownScript_0xbc1a9), UnknownScript_0xbc1a9
+ dbw BANK(UnknownScript_0xbcdcd), UnknownScript_0xbcdcd
+ dbw BANK(UnknownScript_0xbce7f), UnknownScript_0xbce7f
+; bc09c
+
+PokeCenterNurseScript: ; bc09c
+; Talking to a nurse in a Pokemon Center
+
+ loadfont
+; The nurse has different text for:
+; Morn
+ checktime $1
+ iftrue .morn
+; Day
+ checktime $2
+ iftrue .day
+; Nite
+ checktime $4
+ iftrue .nite
+; If somehow it's not a time of day at all, we skip the introduction
+ 2jump .heal
+
+.morn
+; Different text if we're in the com center
+ checkbit1 $032a
+ iftrue .morn_comcenter
+; Good morning! Welcome to ...
+ 3writetext BANK(UnknownText_0x1b0000), UnknownText_0x1b0000
+ keeptextopen
+ 2jump .heal
+.morn_comcenter
+; Good morning! This is the ...
+ 3writetext BANK(UnknownText_0x1b008a), UnknownText_0x1b008a
+ keeptextopen
+ 2jump .heal
+
+.day
+; Different text if we're in the com center
+ checkbit1 $032a
+ iftrue .day_comcenter
+; Hello! Welcome to ...
+ 3writetext BANK(UnknownText_0x1b002b), UnknownText_0x1b002b
+ keeptextopen
+ 2jump .heal
+.day_comcenter
+; Hello! This is the ...
+ 3writetext BANK(UnknownText_0x1b00d6), UnknownText_0x1b00d6
+ keeptextopen
+ 2jump .heal
+
+.nite
+; Different text if we're in the com center
+ checkbit1 $032a
+ iftrue .nite_comcenter
+; Good evening! You're out late. ...
+ 3writetext BANK(UnknownText_0x1b004f), UnknownText_0x1b004f
+ keeptextopen
+ 2jump .heal
+.nite_comcenter
+; Good to see you working so late. ...
+ 3writetext BANK(UnknownText_0x1b011b), UnknownText_0x1b011b
+ keeptextopen
+ 2jump .heal
+
+.heal
+; If we come back, don't welcome us to the com center again
+ clearbit1 $032a
+; Ask if you want to heal
+ 3writetext BANK(UnknownText_0x1b017a), UnknownText_0x1b017a
+ yesorno
+ iffalse .end
+; Go ahead and heal
+ 3writetext BANK(UnknownText_0x1b01bd), UnknownText_0x1b01bd
+ pause 20
+ special $009d
+; Turn to the machine
+ spriteface $fe, $2
+ pause 10
+ special $001b
+ playmusic $0000
+ writebyte $0
+ special $003e
+ pause 30
+ special $003d
+ spriteface $fe, $0
+ pause 10
+; Has Elm already phoned you about Pokerus?
+ checkphonecall
+ iftrue .done
+; Has Pokerus already been found in the Pokecenter?
+ checkbit2 $000d
+ iftrue .done
+; Check for Pokerus
+ special $004e ; SPECIAL_CHECKPOKERUS
+ iftrue .pokerus
+.done
+; Thank you for waiting. ...
+ 3writetext BANK(UnknownText_0x1b01d7), UnknownText_0x1b01d7
+ pause 20
+.end
+; We hope to see you again.
+ 3writetext BANK(UnknownText_0x1b020b), UnknownText_0x1b020b
+; Curtsy
+ spriteface $fe, $1
+ pause 10
+ spriteface $fe, $0
+ pause 10
+; And we're out
+ closetext
+ loadmovesprites
+ end
+
+.pokerus
+; Different text for com center (excludes 'in a Pokemon Center')
+; Since flag $32a is cleared when healing,
+; this text is never actually seen
+ checkbit1 $032a
+ iftrue .pokerus_comcenter
+; Your Pokemon appear to be infected ...
+ 3writetext BANK(UnknownText_0x1b0241), UnknownText_0x1b0241
+ closetext
+ loadmovesprites
+ 2jump .endpokerus
+.pokerus_comcenter
+; Your Pokemon appear to be infected ...
+ 3writetext BANK(UnknownText_0x1b02d6), UnknownText_0x1b02d6
+ closetext
+ loadmovesprites
+.endpokerus
+; Don't tell us about Pokerus again
+ setbit2 $000d
+; Trigger Elm's Pokerus phone call
+ specialphonecall $0001
+ end
+; bc162
+
+UnknownScript_0xbc162: ; 0xbc162
+ 3jumptext $6c, $435a
+; 0xbc166
+
+UnknownScript_0xbc166: ; 0xbc166
+ 3jumptext $6c, $4378
+; 0xbc16a
+
+UnknownScript_0xbc16a: ; 0xbc16a
+ 3jumptext $6c, $43a3
+; 0xbc16e
+
+UnknownScript_0xbc16e: ; 0xbc16e
+ 3jumptext $6c, $43d9
+; 0xbc172
+
+UnknownScript_0xbc172: ; 0xbc172
+ 3jumptext $6c, $4448
+; 0xbc176
+
+UnknownScript_0xbc176: ; 0xbc176
+ 3jumptext $6c, $4472
+; 0xbc17a
+
+UnknownScript_0xbc17a: ; 0xbc17a
+ loadfont
+ 3writetext $6c, $448d
+ closetext
+ special $0026
+ loadmovesprites
+ end
+; 0xbc185
+
+UnknownScript_0xbc185: ; 0xbc185
+ 3jumptext $6c, $44a0
+; 0xbc189
+
+UnknownScript_0xbc189: ; 0xbc189
+ loadfont
+ 3writetext $6c, $44be
+ closetext
+ loadmovesprites
+ end
+; 0xbc191
+
+UnknownScript_0xbc191: ; 0xbc191
+ 3jumptext $6c, $44c9
+; 0xbc195
+
+UnknownScript_0xbc195: ; 0xbc195
+ loadfont
+ writebyte $0
+ special $0028
+ loadmovesprites
+ end
+; 0xbc19d
+
+UnknownScript_0xbc19d: ; 0xbc19d
+ loadfont
+ writebyte $4
+ special $0028
+ loadmovesprites
+ end
+; 0xbc1a5
+
+UnknownScript_0xbc1a5: ; 0xbc1a5
+ 3jumptext $6c, $4526
+; 0xbc1a9
+
+UnknownScript_0xbc1a9: ; 0xbc1a9
+ loadfont
+ special $001c
+ loadmovesprites
+ end
+; 0xbc1af
+
+UnknownScript_0xbc1af: ; 0xbc1af
+ playsound $0008
+ pause 15
+ playsound $0027
+ end
+; 0xbc1b8
+
+UnknownScript_0xbc1b8: ; 0xbc1b8
+ 3jump BANK(UnknownScript_0xcd4b), UnknownScript_0xcd4b
+; 0xbc1bc
+
+UnknownScript_0xbc1bc: ; 0xbc1bc
+ 3jump BANK(UnknownScript_0xcf5d), UnknownScript_0xcf5d
+; 0xbc1c0
+
+UnknownScript_0xbc1c0: ; 0xbc1c0
+ 3jumptext $6c, $457f
+; 0xbc1c4
+
+UnknownScript_0xbc1c4: ; 0xbc1c4
+ 3jumptext $6c, $459c
+; 0xbc1c8
+
+UnknownScript_0xbc1c8: ; 0xbc1c8
+ checkcode $b
+ if_equal $1, UnknownScript_0xbc1e7
+ if_equal $2, UnknownScript_0xbc1ec
+ if_equal $3, UnknownScript_0xbc1f1
+ if_equal $4, UnknownScript_0xbc1f6
+ if_equal $5, UnknownScript_0xbc1fb
+ if_equal $6, UnknownScript_0xbc200
+ stringtotext UnknownRawText_0xbc205, $0
+ end
+; 0xbc1e7
+
+UnknownScript_0xbc1e7: ; 0xbc1e7
+ stringtotext UnknownRawText_0xbc20c, $0
+ end
+; 0xbc1ec
+
+UnknownScript_0xbc1ec: ; 0xbc1ec
+ stringtotext UnknownRawText_0xbc213, $0
+ end
+; 0xbc1f1
+
+UnknownScript_0xbc1f1: ; 0xbc1f1
+ stringtotext UnknownRawText_0xbc21b, $0
+ end
+; 0xbc1f6
+
+UnknownScript_0xbc1f6: ; 0xbc1f6
+ stringtotext UnknownRawText_0xbc225, $0
+ end
+; 0xbc1fb
+
+UnknownScript_0xbc1fb: ; 0xbc1fb
+ stringtotext UnknownRawText_0xbc22e, $0
+ end
+; 0xbc200
+
+UnknownScript_0xbc200: ; 0xbc200
+ stringtotext UnknownRawText_0xbc235, $0
+ end
+; 0xbc205
+
+UnknownRawText_0xbc205: ; bc205
+ db "SUNDAY@"
+; bc20c
+
+UnknownRawText_0xbc20c: ; bc20c
+ db "MONDAY@"
+; bc213
+
+UnknownRawText_0xbc213: ; bc213
+ db "TUESDAY@"
+; bc21b
+
+UnknownRawText_0xbc21b: ; bc21b
+ db "WEDNESDAY@"
+; bc225
+
+UnknownRawText_0xbc225: ; bc225
+ db "THURSDAY@"
+; bc22e
+
+UnknownRawText_0xbc22e: ; bc22e
+ db "FRIDAY@"
+; bc235
+
+UnknownRawText_0xbc235: ; bc235
+ db "SATURDAY@"
+; bc23e
+
+UnknownScript_0xbc23e: ; 0xbc23e
+ clearbit1 $06cd
+ end
+; 0xbc242
+
+UnknownScript_0xbc242: ; 0xbc242
+ setbit2 $0013
+ setbit1 $06cf
+ setbit1 $06d1
+ clearbit1 $06ce
+ clearbit1 $0025
+ setbit1 $0756
+ specialphonecall $0004
+ domaptrigger GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN, $1
+ end
+; 0xbc25c
+
+UnknownScript_0xbc25c: ; 0xbc25c
+ special $0034
+ 2call UnknownScript_0xbc380
+ setbit1 $0747
+ clearbit1 $0748
+ setbit1 $02d2
+ warp GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE, $0, $4
+ applymovement $0, MovementData_0xbcea1
+
+UnknownScript_0xbc274: ; bc274
+ clearbit2 $0011
+ clearbit1 $02d2
+ clearbit1 $0313
+ clearbit1 $0314
+ clearbit1 $0315
+ clearbit1 $0316
+ loadfont
+ 3writetext $6c, $45bf
+ closetext
+ special $0014
+ RAM2MEM $0
+ if_equal $1, UnknownScript_0xbc31e
+ if_equal $2, UnknownScript_0xbc332
+ if_equal $3, UnknownScript_0xbc343
+ 3writetext $6c, $4681
+ keeptextopen
+ waitbutton
+ verbosegiveitem BERRY, 1
+ iffalse UnknownScript_0xbc375
+ 3writetext $6c, $46b7
+ keeptextopen
+ 2jump $42b6
+; 0xbc2b1
+
+UnknownScript_0xbc2b1: ; 0xbc2b1
+ 3writetext $6c, $465b
+ keeptextopen
+ checkbit1 $0308
+ iffalse $42c4
+ 3writetext $6c, $46d9
+ closetext
+ special $0017
+ special $0015
+ if_equal $0, $42d4
+ if_equal $2, $42d4
+ 3writetext $6c, $470d
+ closetext
+ loadmovesprites
+ dotrigger $0
+ domaptrigger GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE, $0
+ setbit1 $0716
+ setbit1 $0717
+ setbit1 $0718
+ setbit1 $0719
+ setbit1 $071a
+ setbit1 $071b
+ setbit1 $071c
+ setbit1 $071d
+ setbit1 $071e
+ setbit1 $071f
+ setbit1 $0720
+ setbit1 $0721
+ setbit1 $0722
+ setbit1 $0723
+ setbit1 $0724
+ setbit1 $0725
+ setbit1 $0726
+ setbit1 $0727
+ setbit1 $0728
+ setbit1 $0729
+ setbit2 $0051
+ special $003c
+ end
+; 0xbc31e
+
+UnknownScript_0xbc31e: ; 0xbc31e
+ setbit1 $0000
+ itemtotext SUN_STONE, $1
+ 3writetext $6c, $4621
+ closetext
+ verbosegiveitem SUN_STONE, 1
+ iffalse UnknownScript_0xbc354
+ 2jump UnknownScript_0xbc2b1
+; 0xbc332
+
+UnknownScript_0xbc332: ; 0xbc332
+ itemtotext EVERSTONE, $1
+ 3writetext $6c, $4621
+ closetext
+ verbosegiveitem EVERSTONE, 1
+ iffalse UnknownScript_0xbc35f
+ 2jump UnknownScript_0xbc2b1
+; 0xbc343
+
+UnknownScript_0xbc343: ; 0xbc343
+ itemtotext GOLD_BERRY, $1
+ 3writetext $6c, $4621
+ closetext
+ verbosegiveitem GOLD_BERRY, 1
+ iffalse UnknownScript_0xbc36a
+ 2jump UnknownScript_0xbc2b1
+; 0xbc354
+
+UnknownScript_0xbc354: ; 0xbc354
+ 3writetext $6c, $48cc
+ keeptextopen
+ setbit1 $0313
+ 2jump UnknownScript_0xbc2b1
+; 0xbc35f
+
+UnknownScript_0xbc35f: ; 0xbc35f
+ 3writetext $6c, $48cc
+ keeptextopen
+ setbit1 $0314
+ 2jump UnknownScript_0xbc2b1
+; 0xbc36a
+
+UnknownScript_0xbc36a: ; 0xbc36a
+ 3writetext $6c, $48cc
+ keeptextopen
+ setbit1 $0315
+ 2jump UnknownScript_0xbc2b1
+; 0xbc375
+
+UnknownScript_0xbc375: ; 0xbc375
+ 3writetext $6c, $48cc
+ keeptextopen
+ setbit1 $0316
+ 2jump $42a9
+; 0xbc380
+
+UnknownScript_0xbc380: ; 0xbc380
+ checkbit1 $0716
+ iftrue .skip1
+ clearbit1 $0720
+.skip1
+ checkbit1 $0717
+ iftrue .skip2
+ clearbit1 $0721
+.skip2
+ checkbit1 $0718
+ iftrue .skip3
+ clearbit1 $0722
+.skip3
+ checkbit1 $0719
+ iftrue .skip4
+ clearbit1 $0723
+.skip4
+ checkbit1 $071a
+ iftrue .skip5
+ clearbit1 $0724
+.skip5
+ checkbit1 $071b
+ iftrue .skip6
+ clearbit1 $0725
+.skip6
+ checkbit1 $071c
+ iftrue .skip7
+ clearbit1 $0726
+.skip7
+ checkbit1 $071d
+ iftrue .skip8
+ clearbit1 $0727
+.skip8
+ checkbit1 $071e
+ iftrue .skip9
+ clearbit1 $0728
+.skip9
+ checkbit1 $071f
+ iftrue .skip10
+ clearbit1 $0729
+.skip10
+ end
+; 0xbc3db
+
+UnknownScript_0xbc3db: ; 0xbc3db
+ setbit1 $06cb
+ setbit1 $06ce
+ setbit1 $06cd
+ setbit1 $06d0
+ setbit1 $06f3
+ setbit1 $06e9
+ setbit1 $06f4
+ setbit1 $06d5
+ setbit1 $06de
+ setbit1 $06dd
+ setbit1 $06df
+ setbit1 $06c0
+ setbit1 $06e4
+ setbit1 $0025
+ setbit1 $06be
+ setbit1 $06bf
+ setbit1 $06c1
+ setbit1 $06f9
+ setbit1 $06fd
+ setbit1 $06ff
+ setbit1 $0700
+ setbit1 $0702
+ setbit1 $0703
+ setbit1 $0704
+ setbit1 $070d
+ setbit1 $070e
+ setbit1 $070f
+ setbit1 $0710
+ setbit1 $0715
+ setbit1 $0716
+ setbit1 $0717
+ setbit1 $0718
+ setbit1 $0719
+ setbit1 $071a
+ setbit1 $071b
+ setbit1 $071c
+ setbit1 $071d
+ setbit1 $071e
+ setbit1 $071f
+ setbit1 $0720
+ setbit1 $0721
+ setbit1 $0722
+ setbit1 $0723
+ setbit1 $0724
+ setbit1 $0725
+ setbit1 $0726
+ setbit1 $0727
+ setbit1 $0728
+ setbit1 $0729
+ setbit1 $072c
+ setbit1 $072f
+ setbit1 $072d
+ setbit1 $0735
+ setbit1 $0736
+ setbit1 $073c
+ setbit1 $073d
+ setbit1 $0741
+ setbit1 $0742
+ setbit1 $0743
+ setbit1 $0744
+ setbit1 $02a4
+ setbit1 $02af
+ setbit1 $0749
+ setbit1 $06d3
+ setbit1 $074d
+ setbit1 $0712
+ setbit1 $0713
+ setbit1 $0711
+ setbit1 $06d4
+ setbit1 $0304
+ setbit1 $0307
+ setbit1 $06d8
+ setbit1 $06c3
+ setbit1 $06c2
+ setbit1 $06c6
+ setbit1 $075f
+ setbit1 $0731
+ setbit1 $074a
+ setbit1 $0762
+ setbit1 $0738
+ setbit1 $073a
+ setbit1 $073b
+ setbit1 $0733
+ setbit1 $073f
+ setbit1 $078d
+ setbit1 $0766
+ setbit1 $0768
+ setbit1 $0769
+ setbit1 $076a
+ setbit1 $078e
+ setbit1 $078f
+ setbit1 $0790
+ setbit1 $0791
+ setbit1 $0793
+ setbit1 $07a4
+ setbit1 $07a4
+ setbit1 $07a5
+ setbit1 $06ec
+ setbit1 $06ed
+ setbit1 $06f0
+ setbit1 $07a9
+ setbit1 $07aa
+ setbit1 $06c8
+ setbit1 $07ac
+ setbit1 $07ad
+ setbit1 $07b5
+ setbit1 $07b6
+ setbit1 $07c5
+ setbit1 $07b7
+ setbit1 $07b0
+ setbit1 $07af
+ setbit1 $07ae
+ setbit1 $07cf
+ setbit2 $000e
+ setbit2 $0017
+ variablesprite $4, $52
+ variablesprite $5, $4
+ variablesprite $6, $35
+ variablesprite $7, $a
+ variablesprite $8, $a
+ variablesprite $9, $a
+ variablesprite $a, $a
+ variablesprite $b, $28
+ variablesprite $c, $28
+ setbit1 $00fb
+ setbit1 $076d
+ setbit1 $076c
+ setbit1 $076e
+ setbit1 $076f
+ setbit1 $0773
+ setbit1 $0776
+ setbit1 $0777
+ setbit1 $0779
+ setbit1 $0772
+ setbit1 $077b
+ setbit1 $0036
+ return
+; 0xbc574
+
+UnknownScript_0xbc574: ; 0xbc574
+ special $005d
+ checkcode $17
+ if_equal $5, UnknownScript_0xbc5c9
+ if_equal $7, UnknownScript_0xbc5ce
+ if_equal $b, UnknownScript_0xbc5d3
+ if_equal $d, UnknownScript_0xbc5d8
+ if_equal $f, UnknownScript_0xbc5dd
+ if_equal $10, UnknownScript_0xbc5e2
+ if_equal $11, UnknownScript_0xbc5e7
+ if_equal $13, UnknownScript_0xbc5ec
+ if_equal $14, UnknownScript_0xbc5f1
+ if_equal $16, UnknownScript_0xbc5f6
+ if_equal $17, UnknownScript_0xbc5fb
+ if_equal $18, UnknownScript_0xbc600
+ if_equal $1b, UnknownScript_0xbc605
+ if_equal $1c, UnknownScript_0xbc60a
+ if_equal $1d, UnknownScript_0xbc60f
+ if_equal $1e, UnknownScript_0xbc614
+ if_equal $20, UnknownScript_0xbc619
+ if_equal $21, UnknownScript_0xbc61e
+ if_equal $22, UnknownScript_0xbc623
+ if_equal $23, UnknownScript_0xbc628
+
+UnknownScript_0xbc5c9: ; bc5c9
+ 3writetext $6c, $49fe
+ end
+; 0xbc5ce
+
+UnknownScript_0xbc5ce: ; 0xbc5ce
+ 3writetext $6c, $4d9f
+ end
+; 0xbc5d3
+
+UnknownScript_0xbc5d3: ; 0xbc5d3
+ 3writetext $6c, $502e
+ end
+; 0xbc5d8
+
+UnknownScript_0xbc5d8: ; 0xbc5d8
+ 3writetext $6c, $542d
+ end
+; 0xbc5dd
+
+UnknownScript_0xbc5dd: ; 0xbc5dd
+ 3writetext $6c, $5800
+ end
+; 0xbc5e2
+
+UnknownScript_0xbc5e2: ; 0xbc5e2
+ 3writetext $6c, $5a71
+ end
+; 0xbc5e7
+
+UnknownScript_0xbc5e7: ; 0xbc5e7
+ 3writetext $6c, $5cd5
+ end
+; 0xbc5ec
+
+UnknownScript_0xbc5ec: ; 0xbc5ec
+ 3writetext $29, $4000
+ end
+; 0xbc5f1
+
+UnknownScript_0xbc5f1: ; 0xbc5f1
+ 3writetext $29, $41c0
+ end
+; 0xbc5f6
+
+UnknownScript_0xbc5f6: ; 0xbc5f6
+ 3writetext $29, $4642
+ end
+; 0xbc5fb
+
+UnknownScript_0xbc5fb: ; 0xbc5fb
+ 3writetext $29, $4829
+ end
+; 0xbc600
+
+UnknownScript_0xbc600: ; 0xbc600
+ 3writetext $29, $4a31
+ end
+; 0xbc605
+
+UnknownScript_0xbc605: ; 0xbc605
+ 3writetext $29, $4ed4
+ end
+; 0xbc60a
+
+UnknownScript_0xbc60a: ; 0xbc60a
+ 3writetext $29, $50d5
+ end
+; 0xbc60f
+
+UnknownScript_0xbc60f: ; 0xbc60f
+ 3writetext $29, $52e2
+ end
+; 0xbc614
+
+UnknownScript_0xbc614: ; 0xbc614
+ 3writetext $29, $5545
+ end
+; 0xbc619
+
+UnknownScript_0xbc619: ; 0xbc619
+ 3writetext $29, $5937
+ end
+; 0xbc61e
+
+UnknownScript_0xbc61e: ; 0xbc61e
+ 3writetext $29, $5bc4
+ end
+; 0xbc623
+
+UnknownScript_0xbc623: ; 0xbc623
+ 3writetext $29, $5dc6
+ end
+; 0xbc628
+
+UnknownScript_0xbc628: ; 0xbc628
+ 3writetext $29, $600c
+ end
+; 0xbc62d
+
+UnknownScript_0xbc62d: ; 0xbc62d
+ special $005d
+ checkcode $17
+ if_equal $5, UnknownScript_0xbc682
+ if_equal $7, UnknownScript_0xbc687
+ if_equal $b, UnknownScript_0xbc68c
+ if_equal $d, UnknownScript_0xbc691
+ if_equal $f, UnknownScript_0xbc696
+ if_equal $10, UnknownScript_0xbc69b
+ if_equal $11, UnknownScript_0xbc6a0
+ if_equal $13, UnknownScript_0xbc6a5
+ if_equal $14, UnknownScript_0xbc6aa
+ if_equal $16, UnknownScript_0xbc6af
+ if_equal $17, UnknownScript_0xbc6b4
+ if_equal $18, UnknownScript_0xbc6b9
+ if_equal $1b, UnknownScript_0xbc6be
+ if_equal $1c, UnknownScript_0xbc6c3
+ if_equal $1d, UnknownScript_0xbc6c8
+ if_equal $1e, UnknownScript_0xbc6cd
+ if_equal $20, UnknownScript_0xbc6d2
+ if_equal $21, UnknownScript_0xbc6d7
+ if_equal $22, UnknownScript_0xbc6dc
+ if_equal $23, UnknownScript_0xbc6e1
+
+UnknownScript_0xbc682: ; bc682
+ 3writetext $6c, $4a82
+ end
+; 0xbc687
+
+UnknownScript_0xbc687: ; 0xbc687
+ 3writetext $6c, $4e2c
+ end
+; 0xbc68c
+
+UnknownScript_0xbc68c: ; 0xbc68c
+ 3writetext $6c, $50d3
+ end
+; 0xbc691
+
+UnknownScript_0xbc691: ; 0xbc691
+ 3writetext $6c, $54e4
+ end
+; 0xbc696
+
+UnknownScript_0xbc696: ; 0xbc696
+ 3writetext $6c, $587b
+ end
+; 0xbc69b
+
+UnknownScript_0xbc69b: ; 0xbc69b
+ 3writetext $6c, $5b1d
+ end
+; 0xbc6a0
+
+UnknownScript_0xbc6a0: ; 0xbc6a0
+ 3writetext $6c, $5d85
+ end
+; 0xbc6a5
+
+UnknownScript_0xbc6a5: ; 0xbc6a5
+ 3writetext $29, $40a9
+ end
+; 0xbc6aa
+
+UnknownScript_0xbc6aa: ; 0xbc6aa
+ 3writetext $29, $426a
+ end
+; 0xbc6af
+
+UnknownScript_0xbc6af: ; 0xbc6af
+ 3writetext $29, $470b
+ end
+; 0xbc6b4
+
+UnknownScript_0xbc6b4: ; 0xbc6b4
+ 3writetext $29, $48fc
+ end
+; 0xbc6b9
+
+UnknownScript_0xbc6b9: ; 0xbc6b9
+ 3writetext $29, $4b03
+ end
+; 0xbc6be
+
+UnknownScript_0xbc6be: ; 0xbc6be
+ 3writetext $29, $4fc8
+ end
+; 0xbc6c3
+
+UnknownScript_0xbc6c3: ; 0xbc6c3
+ 3writetext $29, $5175
+ end
+; 0xbc6c8
+
+UnknownScript_0xbc6c8: ; 0xbc6c8
+ 3writetext $29, $5383
+ end
+; 0xbc6cd
+
+UnknownScript_0xbc6cd: ; 0xbc6cd
+ 3writetext $29, $5621
+ end
+; 0xbc6d2
+
+UnknownScript_0xbc6d2: ; 0xbc6d2
+ 3writetext $29, $59bc
+ end
+; 0xbc6d7
+
+UnknownScript_0xbc6d7: ; 0xbc6d7
+ 3writetext $29, $5c4b
+ end
+; 0xbc6dc
+
+UnknownScript_0xbc6dc: ; 0xbc6dc
+ 3writetext $29, $5e63
+ end
+; 0xbc6e1
+
+UnknownScript_0xbc6e1: ; 0xbc6e1
+ 3writetext $29, $6076
+ end
+; 0xbc6e6
+
+UnknownScript_0xbc6e6: ; 0xbc6e6
+ 3writetext $6c, $49c4
+ playsound $0093
+ waitbutton
+ keeptextopen
+ end
+; 0xbc6f0
+
+UnknownScript_0xbc6f0: ; 0xbc6f0
+ checkcode $17
+ if_equal $5, $4742
+ if_equal $7, UnknownScript_0xbc749
+ if_equal $b, UnknownScript_0xbc750
+ if_equal $d, UnknownScript_0xbc757
+ if_equal $f, UnknownScript_0xbc75e
+ if_equal $10, UnknownScript_0xbc765
+ if_equal $11, UnknownScript_0xbc76c
+ if_equal $13, UnknownScript_0xbc773
+ if_equal $14, UnknownScript_0xbc77a
+ if_equal $16, UnknownScript_0xbc781
+ if_equal $17, UnknownScript_0xbc788
+ if_equal $18, UnknownScript_0xbc78f
+ if_equal $1b, UnknownScript_0xbc796
+ if_equal $1c, UnknownScript_0xbc79d
+ if_equal $1d, UnknownScript_0xbc7a4
+ if_equal $1e, UnknownScript_0xbc7ab
+ if_equal $20, UnknownScript_0xbc7b2
+ if_equal $21, UnknownScript_0xbc7b9
+ if_equal $22, UnknownScript_0xbc7c0
+ if_equal $23, UnknownScript_0xbc7c7
+ 3writetext $6c, $4adb
+ closetext
+ loadmovesprites
+ end
+; 0xbc749
+
+UnknownScript_0xbc749: ; 0xbc749
+ 3writetext $6c, $4e89
+ closetext
+ loadmovesprites
+ end
+; 0xbc750
+
+UnknownScript_0xbc750: ; 0xbc750
+ 3writetext $6c, $5136
+ closetext
+ loadmovesprites
+ end
+; 0xbc757
+
+UnknownScript_0xbc757: ; 0xbc757
+ 3writetext $6c, $5553
+ closetext
+ loadmovesprites
+ end
+; 0xbc75e
+
+UnknownScript_0xbc75e: ; 0xbc75e
+ 3writetext $6c, $58d7
+ closetext
+ loadmovesprites
+ end
+; 0xbc765
+
+UnknownScript_0xbc765: ; 0xbc765
+ 3writetext $6c, $5b8e
+ closetext
+ loadmovesprites
+ end
+; 0xbc76c
+
+UnknownScript_0xbc76c: ; 0xbc76c
+ 3writetext $6c, $5db9
+ closetext
+ loadmovesprites
+ end
+; 0xbc773
+
+UnknownScript_0xbc773: ; 0xbc773
+ 3writetext $29, $40f8
+ closetext
+ loadmovesprites
+ end
+; 0xbc77a
+
+UnknownScript_0xbc77a: ; 0xbc77a
+ 3writetext $29, $42ab
+ closetext
+ loadmovesprites
+ end
+; 0xbc781
+
+UnknownScript_0xbc781: ; 0xbc781
+ 3writetext $29, $4730
+ closetext
+ loadmovesprites
+ end
+; 0xbc788
+
+UnknownScript_0xbc788: ; 0xbc788
+ 3writetext $29, $494d
+ closetext
+ loadmovesprites
+ end
+; 0xbc78f
+
+UnknownScript_0xbc78f: ; 0xbc78f
+ 3writetext $29, $4b47
+ closetext
+ loadmovesprites
+ end
+; 0xbc796
+
+UnknownScript_0xbc796: ; 0xbc796
+ 3writetext $29, $502e
+ closetext
+ loadmovesprites
+ end
+; 0xbc79d
+
+UnknownScript_0xbc79d: ; 0xbc79d
+ 3writetext $29, $51ac
+ closetext
+ loadmovesprites
+ end
+; 0xbc7a4
+
+UnknownScript_0xbc7a4: ; 0xbc7a4
+ 3writetext $29, $53de
+ closetext
+ loadmovesprites
+ end
+; 0xbc7ab
+
+UnknownScript_0xbc7ab: ; 0xbc7ab
+ 3writetext $29, $5666
+ closetext
+ loadmovesprites
+ end
+; 0xbc7b2
+
+UnknownScript_0xbc7b2: ; 0xbc7b2
+ 3writetext $29, $5a28
+ closetext
+ loadmovesprites
+ end
+; 0xbc7b9
+
+UnknownScript_0xbc7b9: ; 0xbc7b9
+ 3writetext $29, $5c8e
+ closetext
+ loadmovesprites
+ end
+; 0xbc7c0
+
+UnknownScript_0xbc7c0: ; 0xbc7c0
+ 3writetext $29, $5ea8
+ closetext
+ loadmovesprites
+ end
+; 0xbc7c7
+
+UnknownScript_0xbc7c7: ; 0xbc7c7
+ 3writetext $29, $60b5
+ closetext
+ loadmovesprites
+ end
+; 0xbc7ce
+
+UnknownScript_0xbc7ce: ; 0xbc7ce
+ checkcode $17
+ if_equal $5, $4820
+ if_equal $7, UnknownScript_0xbc827
+ if_equal $b, UnknownScript_0xbc82e
+ if_equal $d, UnknownScript_0xbc835
+ if_equal $f, UnknownScript_0xbc83c
+ if_equal $10, UnknownScript_0xbc843
+ if_equal $11, UnknownScript_0xbc84a
+ if_equal $13, UnknownScript_0xbc851
+ if_equal $14, UnknownScript_0xbc858
+ if_equal $16, UnknownScript_0xbc85f
+ if_equal $17, UnknownScript_0xbc866
+ if_equal $18, UnknownScript_0xbc86d
+ if_equal $1b, UnknownScript_0xbc874
+ if_equal $1c, UnknownScript_0xbc87b
+ if_equal $1d, UnknownScript_0xbc882
+ if_equal $1e, UnknownScript_0xbc889
+ if_equal $20, UnknownScript_0xbc890
+ if_equal $21, UnknownScript_0xbc897
+ if_equal $22, UnknownScript_0xbc89e
+ if_equal $23, UnknownScript_0xbc8a5
+ 3writetext $6c, $4afd
+ closetext
+ loadmovesprites
+ end
+; 0xbc827
+
+UnknownScript_0xbc827: ; 0xbc827
+ 3writetext $6c, $4ea2
+ closetext
+ loadmovesprites
+ end
+; 0xbc82e
+
+UnknownScript_0xbc82e: ; 0xbc82e
+ 3writetext $6c, $517b
+ closetext
+ loadmovesprites
+ end
+; 0xbc835
+
+UnknownScript_0xbc835: ; 0xbc835
+ 3writetext $6c, $5584
+ closetext
+ loadmovesprites
+ end
+; 0xbc83c
+
+UnknownScript_0xbc83c: ; 0xbc83c
+ 3writetext $6c, $5908
+ closetext
+ loadmovesprites
+ end
+; 0xbc843
+
+UnknownScript_0xbc843: ; 0xbc843
+ 3writetext $6c, $5bd2
+ closetext
+ loadmovesprites
+ end
+; 0xbc84a
+
+UnknownScript_0xbc84a: ; 0xbc84a
+ 3writetext $6c, $5df4
+ closetext
+ loadmovesprites
+ end
+; 0xbc851
+
+UnknownScript_0xbc851: ; 0xbc851
+ 3writetext $29, $4126
+ closetext
+ loadmovesprites
+ end
+; 0xbc858
+
+UnknownScript_0xbc858: ; 0xbc858
+ 3writetext $29, $42f2
+ closetext
+ loadmovesprites
+ end
+; 0xbc85f
+
+UnknownScript_0xbc85f: ; 0xbc85f
+ 3writetext $29, $4794
+ closetext
+ loadmovesprites
+ end
+; 0xbc866
+
+UnknownScript_0xbc866: ; 0xbc866
+ 3writetext $29, $498a
+ closetext
+ loadmovesprites
+ end
+; 0xbc86d
+
+UnknownScript_0xbc86d: ; 0xbc86d
+ 3writetext $29, $4b87
+ closetext
+ loadmovesprites
+ end
+; 0xbc874
+
+UnknownScript_0xbc874: ; 0xbc874
+ 3writetext $29, $505f
+ closetext
+ loadmovesprites
+ end
+; 0xbc87b
+
+UnknownScript_0xbc87b: ; 0xbc87b
+ 3writetext $29, $51ee
+ closetext
+ loadmovesprites
+ end
+; 0xbc882
+
+UnknownScript_0xbc882: ; 0xbc882
+ 3writetext $29, $5412
+ closetext
+ loadmovesprites
+ end
+; 0xbc889
+
+UnknownScript_0xbc889: ; 0xbc889
+ 3writetext $29, $56b6
+ closetext
+ loadmovesprites
+ end
+; 0xbc890
+
+UnknownScript_0xbc890: ; 0xbc890
+ 3writetext $29, $5a5a
+ closetext
+ loadmovesprites
+ end
+; 0xbc897
+
+UnknownScript_0xbc897: ; 0xbc897
+ 3writetext $29, $5cc5
+ closetext
+ loadmovesprites
+ end
+; 0xbc89e
+
+UnknownScript_0xbc89e: ; 0xbc89e
+ 3writetext $29, $5ed6
+ closetext
+ loadmovesprites
+ end
+; 0xbc8a5
+
+UnknownScript_0xbc8a5: ; 0xbc8a5
+ 3writetext $29, $60e2
+ closetext
+ loadmovesprites
+ end
+; 0xbc8ac
+
+UnknownScript_0xbc8ac: ; 0xbc8ac
+ checkcode $17
+ if_equal $5, $48fe
+ if_equal $7, UnknownScript_0xbc905
+ if_equal $b, UnknownScript_0xbc90c
+ if_equal $d, UnknownScript_0xbc913
+ if_equal $f, UnknownScript_0xbc91a
+ if_equal $10, UnknownScript_0xbc921
+ if_equal $11, UnknownScript_0xbc928
+ if_equal $13, UnknownScript_0xbc92f
+ if_equal $14, UnknownScript_0xbc936
+ if_equal $16, UnknownScript_0xbc93d
+ if_equal $17, UnknownScript_0xbc944
+ if_equal $18, UnknownScript_0xbc94b
+ if_equal $1b, UnknownScript_0xbc952
+ if_equal $1c, UnknownScript_0xbc959
+ if_equal $1d, UnknownScript_0xbc960
+ if_equal $1e, UnknownScript_0xbc967
+ if_equal $20, UnknownScript_0xbc96e
+ if_equal $21, UnknownScript_0xbc975
+ if_equal $22, UnknownScript_0xbc97c
+ if_equal $23, UnknownScript_0xbc983
+ 3writetext $6c, $4b42
+ closetext
+ loadmovesprites
+ end
+; 0xbc905
+
+UnknownScript_0xbc905: ; 0xbc905
+ 3writetext $6c, $4ebc
+ closetext
+ loadmovesprites
+ end
+; 0xbc90c
+
+UnknownScript_0xbc90c: ; 0xbc90c
+ 3writetext $6c, $51c4
+ closetext
+ loadmovesprites
+ end
+; 0xbc913
+
+UnknownScript_0xbc913: ; 0xbc913
+ 3writetext $6c, $55b6
+ closetext
+ loadmovesprites
+ end
+; 0xbc91a
+
+UnknownScript_0xbc91a: ; 0xbc91a
+ 3writetext $6c, $5936
+ closetext
+ loadmovesprites
+ end
+; 0xbc921
+
+UnknownScript_0xbc921: ; 0xbc921
+ 3writetext $6c, $5c06
+ closetext
+ loadmovesprites
+ end
+; 0xbc928
+
+UnknownScript_0xbc928: ; 0xbc928
+ 3writetext $6c, $5e50
+ closetext
+ loadmovesprites
+ end
+; 0xbc92f
+
+UnknownScript_0xbc92f: ; 0xbc92f
+ 3writetext $29, $4158
+ closetext
+ loadmovesprites
+ end
+; 0xbc936
+
+UnknownScript_0xbc936: ; 0xbc936
+ 3writetext $29, $434a
+ closetext
+ loadmovesprites
+ end
+; 0xbc93d
+
+UnknownScript_0xbc93d: ; 0xbc93d
+ 3writetext $29, $47eb
+ closetext
+ loadmovesprites
+ end
+; 0xbc944
+
+UnknownScript_0xbc944: ; 0xbc944
+ 3writetext $29, $49bd
+ closetext
+ loadmovesprites
+ end
+; 0xbc94b
+
+UnknownScript_0xbc94b: ; 0xbc94b
+ 3writetext $29, $4bcd
+ closetext
+ loadmovesprites
+ end
+; 0xbc952
+
+UnknownScript_0xbc952: ; 0xbc952
+ 3writetext $29, $508c
+ closetext
+ loadmovesprites
+ end
+; 0xbc959
+
+UnknownScript_0xbc959: ; 0xbc959
+ 3writetext $29, $5216
+ closetext
+ loadmovesprites
+ end
+; 0xbc960
+
+UnknownScript_0xbc960: ; 0xbc960
+ 3writetext $29, $5446
+ closetext
+ loadmovesprites
+ end
+; 0xbc967
+
+UnknownScript_0xbc967: ; 0xbc967
+ 3writetext $29, $56e2
+ closetext
+ loadmovesprites
+ end
+; 0xbc96e
+
+UnknownScript_0xbc96e: ; 0xbc96e
+ 3writetext $29, $5aa6
+ closetext
+ loadmovesprites
+ end
+; 0xbc975
+
+UnknownScript_0xbc975: ; 0xbc975
+ 3writetext $29, $5cfa
+ closetext
+ loadmovesprites
+ end
+; 0xbc97c
+
+UnknownScript_0xbc97c: ; 0xbc97c
+ 3writetext $29, $5f06
+ closetext
+ loadmovesprites
+ end
+; 0xbc983
+
+UnknownScript_0xbc983: ; 0xbc983
+ 3writetext $29, $6144
+ closetext
+ loadmovesprites
+ end
+; 0xbc98a
+
+UnknownScript_0xbc98a: ; 0xbc98a
+ checkcode $17
+ if_equal $5, $49d0
+ if_equal $7, UnknownScript_0xbc9d7
+ if_equal $b, UnknownScript_0xbc9de
+ if_equal $d, UnknownScript_0xbc9e5
+ if_equal $f, UnknownScript_0xbc9ec
+ if_equal $10, UnknownScript_0xbc9f3
+ if_equal $11, UnknownScript_0xbc9fa
+ if_equal $13, UnknownScript_0xbca01
+ if_equal $14, UnknownScript_0xbca08
+ if_equal $17, UnknownScript_0xbca0f
+ if_equal $18, UnknownScript_0xbca16
+ if_equal $1b, UnknownScript_0xbca1d
+ if_equal $1d, UnknownScript_0xbca24
+ if_equal $1e, UnknownScript_0xbca2b
+ if_equal $20, UnknownScript_0xbca32
+ if_equal $21, UnknownScript_0xbca39
+ if_equal $23, UnknownScript_0xbca40
+ 3writetext $6c, $4b75
+ closetext
+ loadmovesprites
+ end
+; 0xbc9d7
+
+UnknownScript_0xbc9d7: ; 0xbc9d7
+ 3writetext $6c, $4edc
+ closetext
+ loadmovesprites
+ end
+; 0xbc9de
+
+UnknownScript_0xbc9de: ; 0xbc9de
+ 3writetext $6c, $51fe
+ closetext
+ loadmovesprites
+ end
+; 0xbc9e5
+
+UnknownScript_0xbc9e5: ; 0xbc9e5
+ 3writetext $6c, $55d5
+ closetext
+ loadmovesprites
+ end
+; 0xbc9ec
+
+UnknownScript_0xbc9ec: ; 0xbc9ec
+ 3writetext $6c, $5954
+ closetext
+ loadmovesprites
+ end
+; 0xbc9f3
+
+UnknownScript_0xbc9f3: ; 0xbc9f3
+ 3writetext $6c, $5c32
+ closetext
+ loadmovesprites
+ end
+; 0xbc9fa
+
+UnknownScript_0xbc9fa: ; 0xbc9fa
+ 3writetext $6c, $5e98
+ closetext
+ loadmovesprites
+ end
+; 0xbca01
+
+UnknownScript_0xbca01: ; 0xbca01
+ 3writetext $29, $418d
+ closetext
+ loadmovesprites
+ end
+; 0xbca08
+
+UnknownScript_0xbca08: ; 0xbca08
+ 3writetext $29, $4382
+ closetext
+ loadmovesprites
+ end
+; 0xbca0f
+
+UnknownScript_0xbca0f: ; 0xbca0f
+ 3writetext $29, $49fc
+ closetext
+ loadmovesprites
+ end
+; 0xbca16
+
+UnknownScript_0xbca16: ; 0xbca16
+ 3writetext $29, $4bec
+ closetext
+ loadmovesprites
+ end
+; 0xbca1d
+
+UnknownScript_0xbca1d: ; 0xbca1d
+ 3writetext $29, $50b1
+ closetext
+ loadmovesprites
+ end
+; 0xbca24
+
+UnknownScript_0xbca24: ; 0xbca24
+ 3writetext $29, $548c
+ closetext
+ loadmovesprites
+ end
+; 0xbca2b
+
+UnknownScript_0xbca2b: ; 0xbca2b
+ 3writetext $29, $571e
+ closetext
+ loadmovesprites
+ end
+; 0xbca32
+
+UnknownScript_0xbca32: ; 0xbca32
+ 3writetext $29, $5ada
+ closetext
+ loadmovesprites
+ end
+; 0xbca39
+
+UnknownScript_0xbca39: ; 0xbca39
+ 3writetext $29, $5d1d
+ closetext
+ loadmovesprites
+ end
+; 0xbca40
+
+UnknownScript_0xbca40: ; 0xbca40
+ 3writetext $29, $6175
+ closetext
+ loadmovesprites
+ end
+; 0xbca47
+
+UnknownScript_0xbca47: ; 0xbca47
+ checkcode $17
+ if_equal $d, $4a65
+ if_equal $10, UnknownScript_0xbca6b
+ if_equal $18, UnknownScript_0xbca71
+ if_equal $1c, UnknownScript_0xbca77
+ if_equal $1d, UnknownScript_0xbca7d
+ if_equal $21, UnknownScript_0xbca83
+ if_equal $22, UnknownScript_0xbca89
+ 3writetext $6c, $5607
+ keeptextopen
+ end
+; 0xbca6b
+
+UnknownScript_0xbca6b: ; 0xbca6b
+ 3writetext $6c, $5c57
+ keeptextopen
+ end
+; 0xbca71
+
+UnknownScript_0xbca71: ; 0xbca71
+ 3writetext $29, $4c24
+ keeptextopen
+ end
+; 0xbca77
+
+UnknownScript_0xbca77: ; 0xbca77
+ 3writetext $29, $523a
+ keeptextopen
+ end
+; 0xbca7d
+
+UnknownScript_0xbca7d: ; 0xbca7d
+ 3writetext $29, $54e3
+ keeptextopen
+ end
+; 0xbca83
+
+UnknownScript_0xbca83: ; 0xbca83
+ 3writetext $29, $5d4d
+ keeptextopen
+ end
+; 0xbca89
+
+UnknownScript_0xbca89: ; 0xbca89
+ 3writetext $29, $5f37
+ keeptextopen
+ end
+; 0xbca8f
+
+UnknownScript_0xbca8f: ; 0xbca8f
+ checkcode $17
+ if_equal $7, $4abd
+ if_equal $d, UnknownScript_0xbcac4
+ if_equal $f, UnknownScript_0xbcacb
+ if_equal $10, UnknownScript_0xbcad2
+ if_equal $18, UnknownScript_0xbcad9
+ if_equal $1c, UnknownScript_0xbcae0
+ if_equal $1d, UnknownScript_0xbcae7
+ if_equal $20, UnknownScript_0xbcaee
+ if_equal $21, UnknownScript_0xbcaf5
+ if_equal $22, UnknownScript_0xbcafc
+ if_equal $23, UnknownScript_0xbcb03
+ 3writetext $6c, $4eff
+ closetext
+ loadmovesprites
+ end
+; 0xbcac4
+
+UnknownScript_0xbcac4: ; 0xbcac4
+ 3writetext $6c, $564d
+ closetext
+ loadmovesprites
+ end
+; 0xbcacb
+
+UnknownScript_0xbcacb: ; 0xbcacb
+ 3writetext $6c, $5978
+ closetext
+ loadmovesprites
+ end
+; 0xbcad2
+
+UnknownScript_0xbcad2: ; 0xbcad2
+ 3writetext $6c, $5c91
+ closetext
+ loadmovesprites
+ end
+; 0xbcad9
+
+UnknownScript_0xbcad9: ; 0xbcad9
+ 3writetext $29, $4c47
+ closetext
+ loadmovesprites
+ end
+; 0xbcae0
+
+UnknownScript_0xbcae0: ; 0xbcae0
+ 3writetext $29, $52a0
+ closetext
+ loadmovesprites
+ end
+; 0xbcae7
+
+UnknownScript_0xbcae7: ; 0xbcae7
+ 3writetext $29, $5513
+ closetext
+ loadmovesprites
+ end
+; 0xbcaee
+
+UnknownScript_0xbcaee: ; 0xbcaee
+ 3writetext $29, $5aff
+ closetext
+ loadmovesprites
+ end
+; 0xbcaf5
+
+UnknownScript_0xbcaf5: ; 0xbcaf5
+ 3writetext $29, $5d9a
+ closetext
+ loadmovesprites
+ end
+; 0xbcafc
+
+UnknownScript_0xbcafc: ; 0xbcafc
+ 3writetext $29, $5faa
+ closetext
+ loadmovesprites
+ end
+; 0xbcb03
+
+UnknownScript_0xbcb03: ; 0xbcb03
+ 3writetext $29, $61c9
+ closetext
+ loadmovesprites
+ end
+; 0xbcb0a
+
+UnknownScript_0xbcb0a: ; 0xbcb0a
+ loadfont
+ checkcode $17
+ if_equal $7, $4b1d
+ if_equal $f, UnknownScript_0xbcb23
+ if_equal $20, UnknownScript_0xbcb29
+ if_equal $23, UnknownScript_0xbcb2f
+ 3writetext $6c, $4f2f
+ keeptextopen
+ end
+; 0xbcb23
+
+UnknownScript_0xbcb23: ; 0xbcb23
+ 3writetext $6c, $59be
+ keeptextopen
+ end
+; 0xbcb29
+
+UnknownScript_0xbcb29: ; 0xbcb29
+ 3writetext $29, $5b3f
+ keeptextopen
+ end
+; 0xbcb2f
+
+UnknownScript_0xbcb2f: ; 0xbcb2f
+ 3writetext $29, $6200
+ keeptextopen
+ end
+; 0xbcb35
+
+UnknownScript_0xbcb35: ; 0xbcb35
+ checkcode $17
+ if_equal $6, $4b57
+ if_equal $c, UnknownScript_0xbcb5c
+ if_equal $e, UnknownScript_0xbcb61
+ if_equal $12, UnknownScript_0xbcb66
+ if_equal $15, UnknownScript_0xbcb6b
+ if_equal $1a, UnknownScript_0xbcb70
+ if_equal $1f, UnknownScript_0xbcb75
+ if_equal $24, UnknownScript_0xbcb7a
+ 3writetext $6c, $4bb6
+ end
+; 0xbcb5c
+
+UnknownScript_0xbcb5c: ; 0xbcb5c
+ 3writetext $6c, $5239
+ end
+; 0xbcb61
+
+UnknownScript_0xbcb61: ; 0xbcb61
+ 3writetext $6c, $5690
+ end
+; 0xbcb66
+
+UnknownScript_0xbcb66: ; 0xbcb66
+ 3writetext $6c, $5ebe
+ end
+; 0xbcb6b
+
+UnknownScript_0xbcb6b: ; 0xbcb6b
+ 3writetext $29, $4405
+ end
+; 0xbcb70
+
+UnknownScript_0xbcb70: ; 0xbcb70
+ 3writetext $29, $4c8c
+ end
+; 0xbcb75
+
+UnknownScript_0xbcb75: ; 0xbcb75
+ 3writetext $29, $574a
+ end
+; 0xbcb7a
+
+UnknownScript_0xbcb7a: ; 0xbcb7a
+ 3writetext $29, $6295
+ end
+; 0xbcb7f
+
+UnknownScript_0xbcb7f: ; 0xbcb7f
+ checkcode $17
+ if_equal $6, $4ba1
+ if_equal $c, UnknownScript_0xbcba6
+ if_equal $e, UnknownScript_0xbcbab
+ if_equal $12, UnknownScript_0xbcbb0
+ if_equal $15, UnknownScript_0xbcbb5
+ if_equal $1a, UnknownScript_0xbcbba
+ if_equal $1f, UnknownScript_0xbcbbf
+ if_equal $24, UnknownScript_0xbcbc4
+ 3writetext $6c, $4c37
+ end
+; 0xbcba6
+
+UnknownScript_0xbcba6: ; 0xbcba6
+ 3writetext $6c, $5314
+ end
+; 0xbcbab
+
+UnknownScript_0xbcbab: ; 0xbcbab
+ 3writetext $6c, $5710
+ end
+; 0xbcbb0
+
+UnknownScript_0xbcbb0: ; 0xbcbb0
+ 3writetext $6c, $5f4e
+ end
+; 0xbcbb5
+
+UnknownScript_0xbcbb5: ; 0xbcbb5
+ 3writetext $29, $44db
+ end
+; 0xbcbba
+
+UnknownScript_0xbcbba: ; 0xbcbba
+ 3writetext $29, $4d36
+ end
+; 0xbcbbf
+
+UnknownScript_0xbcbbf: ; 0xbcbbf
+ 3writetext $29, $57e3
+ end
+; 0xbcbc4
+
+UnknownScript_0xbcbc4: ; 0xbcbc4
+ 3writetext $29, $6316
+ end
+; 0xbcbc9
+
+UnknownScript_0xbcbc9: ; 0xbcbc9
+ 3writetext $6c, $49e1
+ playsound $0093
+ waitbutton
+ keeptextopen
+ end
+; 0xbcbd3
+
+UnknownScript_0xbcbd3: ; 0xbcbd3
+ checkcode $17
+ if_equal $6, $4bf5
+ if_equal $c, UnknownScript_0xbcbfc
+ if_equal $e, UnknownScript_0xbcc03
+ if_equal $12, UnknownScript_0xbcc0a
+ if_equal $15, UnknownScript_0xbcc11
+ if_equal $1a, UnknownScript_0xbcc18
+ if_equal $1f, UnknownScript_0xbcc1f
+ if_equal $24, UnknownScript_0xbcc26
+ 3writetext $6c, $4c9b
+ closetext
+ loadmovesprites
+ end
+; 0xbcbfc
+
+UnknownScript_0xbcbfc: ; 0xbcbfc
+ 3writetext $6c, $5392
+ closetext
+ loadmovesprites
+ end
+; 0xbcc03
+
+UnknownScript_0xbcc03: ; 0xbcc03
+ 3writetext $6c, $5755
+ closetext
+ loadmovesprites
+ end
+; 0xbcc0a
+
+UnknownScript_0xbcc0a: ; 0xbcc0a
+ 3writetext $6c, $5faa
+ closetext
+ loadmovesprites
+ end
+; 0xbcc11
+
+UnknownScript_0xbcc11: ; 0xbcc11
+ 3writetext $29, $451d
+ closetext
+ loadmovesprites
+ end
+; 0xbcc18
+
+UnknownScript_0xbcc18: ; 0xbcc18
+ 3writetext $29, $4d72
+ closetext
+ loadmovesprites
+ end
+; 0xbcc1f
+
+UnknownScript_0xbcc1f: ; 0xbcc1f
+ 3writetext $29, $5820
+ closetext
+ loadmovesprites
+ end
+; 0xbcc26
+
+UnknownScript_0xbcc26: ; 0xbcc26
+ 3writetext $29, $6359
+ closetext
+ loadmovesprites
+ end
+; 0xbcc2d
+
+UnknownScript_0xbcc2d: ; 0xbcc2d
+ checkcode $17
+ if_equal $6, $4c4f
+ if_equal $c, UnknownScript_0xbcc56
+ if_equal $e, UnknownScript_0xbcc5d
+ if_equal $12, UnknownScript_0xbcc64
+ if_equal $15, UnknownScript_0xbcc6b
+ if_equal $1a, UnknownScript_0xbcc72
+ if_equal $1f, UnknownScript_0xbcc79
+ if_equal $24, UnknownScript_0xbcc80
+ 3writetext $6c, $4ce0
+ closetext
+ loadmovesprites
+ end
+; 0xbcc56
+
+UnknownScript_0xbcc56: ; 0xbcc56
+ 3writetext $6c, $53af
+ closetext
+ loadmovesprites
+ end
+; 0xbcc5d
+
+UnknownScript_0xbcc5d: ; 0xbcc5d
+ 3writetext $6c, $578a
+ closetext
+ loadmovesprites
+ end
+; 0xbcc64
+
+UnknownScript_0xbcc64: ; 0xbcc64
+ 3writetext $6c, $5fdd
+ closetext
+ loadmovesprites
+ end
+; 0xbcc6b
+
+UnknownScript_0xbcc6b: ; 0xbcc6b
+ 3writetext $29, $4542
+ closetext
+ loadmovesprites
+ end
+; 0xbcc72
+
+UnknownScript_0xbcc72: ; 0xbcc72
+ 3writetext $29, $4dcd
+ closetext
+ loadmovesprites
+ end
+; 0xbcc79
+
+UnknownScript_0xbcc79: ; 0xbcc79
+ 3writetext $29, $5842
+ closetext
+ loadmovesprites
+ end
+; 0xbcc80
+
+UnknownScript_0xbcc80: ; 0xbcc80
+ 3writetext $29, $638c
+ closetext
+ loadmovesprites
+ end
+; 0xbcc87
+
+UnknownScript_0xbcc87: ; 0xbcc87
+ checkcode $17
+ if_equal $6, $4ca9
+ if_equal $c, UnknownScript_0xbccb0
+ if_equal $e, UnknownScript_0xbccb7
+ if_equal $12, UnknownScript_0xbccbe
+ if_equal $15, UnknownScript_0xbccc5
+ if_equal $1a, UnknownScript_0xbcccc
+ if_equal $1f, UnknownScript_0xbccd3
+ if_equal $24, UnknownScript_0xbccda
+ 3writetext $6c, $4d0b
+ closetext
+ loadmovesprites
+ end
+; 0xbccb0
+
+UnknownScript_0xbccb0: ; 0xbccb0
+ 3writetext $6c, $53e4
+ closetext
+ loadmovesprites
+ end
+; 0xbccb7
+
+UnknownScript_0xbccb7: ; 0xbccb7
+ 3writetext $6c, $57ba
+ closetext
+ loadmovesprites
+ end
+; 0xbccbe
+
+UnknownScript_0xbccbe: ; 0xbccbe
+ 3writetext $6c, $5ffa
+ closetext
+ loadmovesprites
+ end
+; 0xbccc5
+
+UnknownScript_0xbccc5: ; 0xbccc5
+ 3writetext $29, $4573
+ closetext
+ loadmovesprites
+ end
+; 0xbcccc
+
+UnknownScript_0xbcccc: ; 0xbcccc
+ 3writetext $29, $4e01
+ closetext
+ loadmovesprites
+ end
+; 0xbccd3
+
+UnknownScript_0xbccd3: ; 0xbccd3
+ 3writetext $29, $5881
+ closetext
+ loadmovesprites
+ end
+; 0xbccda
+
+UnknownScript_0xbccda: ; 0xbccda
+ 3writetext $29, $63cc
+ closetext
+ loadmovesprites
+ end
+; 0xbcce1
+
+UnknownScript_0xbcce1: ; 0xbcce1
+ checkcode $17
+ if_equal $c, $4cff
+ if_equal $e, UnknownScript_0xbcd06
+ if_equal $12, UnknownScript_0xbcd0d
+ if_equal $15, UnknownScript_0xbcd14
+ if_equal $1a, UnknownScript_0xbcd1b
+ if_equal $1f, UnknownScript_0xbcd22
+ if_equal $24, UnknownScript_0xbcd29
+ 3writetext $6c, $5409
+ closetext
+ loadmovesprites
+ end
+; 0xbcd06
+
+UnknownScript_0xbcd06: ; 0xbcd06
+ 3writetext $6c, $57de
+ closetext
+ loadmovesprites
+ end
+; 0xbcd0d
+
+UnknownScript_0xbcd0d: ; 0xbcd0d
+ 3writetext $6c, $601f
+ closetext
+ loadmovesprites
+ end
+; 0xbcd14
+
+UnknownScript_0xbcd14: ; 0xbcd14
+ 3writetext $29, $4595
+ closetext
+ loadmovesprites
+ end
+; 0xbcd1b
+
+UnknownScript_0xbcd1b: ; 0xbcd1b
+ 3writetext $29, $4e21
+ closetext
+ loadmovesprites
+ end
+; 0xbcd22
+
+UnknownScript_0xbcd22: ; 0xbcd22
+ 3writetext $29, $58a3
+ closetext
+ loadmovesprites
+ end
+; 0xbcd29
+
+UnknownScript_0xbcd29: ; 0xbcd29
+ 3writetext $29, $63f1
+ closetext
+ loadmovesprites
+ end
+; 0xbcd30
+
+UnknownScript_0xbcd30: ; 0xbcd30
+ checkcode $17
+ if_equal $6, $4d42
+ if_equal $15, UnknownScript_0xbcd48
+ if_equal $1a, UnknownScript_0xbcd4e
+ if_equal $1f, UnknownScript_0xbcd54
+ 3writetext $6c, $4d2c
+ keeptextopen
+ end
+; 0xbcd48
+
+UnknownScript_0xbcd48: ; 0xbcd48
+ 3writetext $29, $45c9
+ keeptextopen
+ end
+; 0xbcd4e
+
+UnknownScript_0xbcd4e: ; 0xbcd4e
+ 3writetext $29, $4e4c
+ keeptextopen
+ end
+; 0xbcd54
+
+UnknownScript_0xbcd54: ; 0xbcd54
+ 3writetext $29, $58d5
+ keeptextopen
+ end
+; 0xbcd5a
+
+UnknownScript_0xbcd5a: ; 0xbcd5a
+ checkcode $17
+ if_equal $6, $4d70
+ if_equal $15, UnknownScript_0xbcd77
+ if_equal $1a, UnknownScript_0xbcd7e
+ if_equal $1f, UnknownScript_0xbcd85
+ if_equal $24, UnknownScript_0xbcd8c
+ 3writetext $6c, $4d69
+ closetext
+ loadmovesprites
+ end
+; 0xbcd77
+
+UnknownScript_0xbcd77: ; 0xbcd77
+ 3writetext $29, $4603
+ closetext
+ loadmovesprites
+ end
+; 0xbcd7e
+
+UnknownScript_0xbcd7e: ; 0xbcd7e
+ 3writetext $29, $4e8f
+ closetext
+ loadmovesprites
+ end
+; 0xbcd85
+
+UnknownScript_0xbcd85: ; 0xbcd85
+ 3writetext $29, $5914
+ closetext
+ loadmovesprites
+ end
+; 0xbcd8c
+
+UnknownScript_0xbcd8c: ; 0xbcd8c
+ 3writetext $29, $6411
+ closetext
+ loadmovesprites
+ end
+; 0xbcd93
+
+UnknownScript_0xbcd93: ; 0xbcd93
+ checkcode $17
+ if_equal $24, $4d99
+ loadfont
+ 3writetext $29, $6454
+ keeptextopen
+ end
+; 0xbcda0
+
+UnknownScript_0xbcda0: ; 0xbcda0
+ mapnametotext $0
+ loadfont
+ 3writetext $6c, $474e
+ closetext
+ loadmovesprites
+ end
+; 0xbcdaa
+
+UnknownScript_0xbcdaa: ; 0xbcdaa
+ mapnametotext $0
+ loadfont
+ 3writetext $6c, $474e
+ keeptextopen
+ 3writetext $6c, $475c
+ closetext
+ loadmovesprites
+ end
+; 0xbcdb9
+
+UnknownScript_0xbcdb9: ; 0xbcdb9
+ waitbutton
+ 3writetext $6c, $4648
+ playsound $0001
+ waitbutton
+ end
+; 0xbcdc3
+
+UnknownScript_0xbcdc3: ; 0xbcdc3
+ waitbutton
+ 3writetext $6c, $4648
+ playsound $0096
+ waitbutton
+ end
+; 0xbcdcd
+
+UnknownScript_0xbcdcd: ; 0xbcdcd
+ faceplayer
+ loadfont
+ 3writetext $6c, $477f
+ keeptextopen
+ checkitem COIN_CASE
+ iftrue UnknownScript_0xbcde0
+ 3writetext $6c, $479c
+ closetext
+ loadmovesprites
+ end
+; 0xbcde0
+
+UnknownScript_0xbcde0: ; 0xbcde0
+ 3writetext $6c, $47e3
+ special $0050
+ loadmenudata MenuDataHeader_0xbce54
+ interpretmenu2
+ writebackup
+ if_equal $1, UnknownScript_0xbcdf7
+ if_equal $2, UnknownScript_0xbce1b
+ 2jump UnknownScript_0xbce4d
+; 0xbcdf7
+
+UnknownScript_0xbcdf7: ; 0xbcdf7
+ checkcoins 9949
+ if_equal $0, UnknownScript_0xbce46
+ checkmoney $0, 1000
+ if_equal $2, UnknownScript_0xbce3f
+ givecoins 50
+ takemoney $0, 1000
+ waitbutton
+ playsound $0022
+ 3writetext $6c, $4830
+ closetext
+ 2jump $4de4
+; 0xbce1b
+
+UnknownScript_0xbce1b: ; 0xbce1b
+ checkcoins 9499
+ if_equal $0, UnknownScript_0xbce46
+ checkmoney $0, 10000
+ if_equal $2, UnknownScript_0xbce3f
+ givecoins 500
+ takemoney $0, 10000
+ waitbutton
+ playsound $0022
+ 3writetext $6c, $484f
+ closetext
+ 2jump $4de4
+; 0xbce3f
+
+UnknownScript_0xbce3f: ; 0xbce3f
+ 3writetext $6c, $486f
+ closetext
+ loadmovesprites
+ end
+; 0xbce46
+
+UnknownScript_0xbce46: ; 0xbce46
+ 3writetext $6c, $488c
+ closetext
+ loadmovesprites
+ end
+; 0xbce4d
+
+UnknownScript_0xbce4d: ; 0xbce4d
+ 3writetext $6c, $48ad
+ closetext
+ loadmovesprites
+ end
+; 0xbce54
+
+
+MenuDataHeader_0xbce54: ; 0xbce54
+ db $40 ; flags
+ db 04, 00 ; start coords
+ db 11, 15 ; end coords
+ dw MenuData2_0xbce5c
+ db 1 ; default option
+; 0xbce5c
+
+MenuData2_0xbce5c: ; 0xbce5c
+ db $80 ; flags
+ db 3 ; items
+ db " 50 : ¥1000@"
+ db "500 : ¥10000@"
+ db "CANCEL@"
+; 0xbce7f
+
+
+UnknownScript_0xbce7f: ; 0xbce7f
+ faceplayer
+ loadfont
+ special $0059
+ if_greater_than $32, UnknownScript_0xbce9a
+ if_greater_than $96, UnknownScript_0xbce93
+ 3writetext $6c, $492a
+ closetext
+ loadmovesprites
+ end
+; 0xbce93
+
+UnknownScript_0xbce93: ; 0xbce93
+ 3writetext $6c, $4954
+ closetext
+ loadmovesprites
+ end
+; 0xbce9a
+
+UnknownScript_0xbce9a: ; 0xbce9a
+ 3writetext $6c, $4989
+ closetext
+ loadmovesprites
+ end
+; 0xbcea1
+
+MovementData_0xbcea1: ; bcea1
+ step_right
+ step_down
+ turn_head_up
+ step_end
+; bcea5
+
+UnusedPhoneScript: ; 0xbcea5
+ 3writetext BANK(UnusedPhoneText), UnusedPhoneText
+ end
+
+MomPhoneScript: ; 0xbceaa
+ checkbit1 $0040
+ iftrue .bcec5
+ checkbit1 $0041 ; if dude talked to you, then you left home without talking to mom
+ iftrue MomPhoneLectureScript
+ checkbit1 $001f
+ iftrue MomPhoneNoGymQuestScript
+ checkbit1 $001a
+ iftrue MomPhoneNoPokedexScript
+ 2jump MomPhoneNoPokemonScript
+
+.bcec5 ; 0xbcec5
+ checkbit1 $0007
+ iftrue MomPhoneHangUpScript
+ 3writetext BANK(MomPhoneGreetingText), MomPhoneGreetingText
+ keeptextopen
+ mapnametotext $0
+ checkcode $f
+ if_equal $1, UnknownScript_0xbcee7
+ if_equal $2, $4f27
+ 2jump UnknownScript_0xbcf2f
+
+UnknownScript_0xbcedf: ; 0xbcedf
+ 3writetext $6d, $4021
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+UnknownScript_0xbcee7: ; 0xbcee7
+ checkcode $c
+ if_equal GROUP_NEW_BARK_TOWN, .newbark
+ if_equal GROUP_CHERRYGROVE_CITY, .cherrygrove
+ if_equal GROUP_VIOLET_CITY, .violet
+ if_equal GROUP_AZALEA_TOWN, .azalea
+ if_equal GROUP_GOLDENROD_CITY, .goldenrod
+ 3writetext BANK(MomPhoneGenericAreaText), MomPhoneGenericAreaText
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+.newbark ; 0xbcf05
+ 3writetext BANK(MomPhoneNewBarkText), MomPhoneNewBarkText
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+.cherrygrove ; 0xbcf0d
+ 3writetext BANK(MomPhoneCherrygroveText), MomPhoneCherrygroveText
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+.violet ; 0xbcf15
+ displaylocation $7 ; sprout tower
+ 3call $3, UnknownScript_0xbcedf
+.azalea ; 0xbcf1b
+ displaylocation $d ; slowpoke well
+ 3call $3, UnknownScript_0xbcedf
+.goldenrod ; 0xbcf21
+ displaylocation $11 ; radio tower
+ 3call $3, UnknownScript_0xbcedf
+ 3writetext $6d, $411c
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+UnknownScript_0xbcf2f: ; 0xbcf2f
+ 3writetext $6d, $4150
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+UnknownScript_0xbcf37: ; 0xbcf37
+ checkbit2 $0008
+ iffalse UnknownScript_0xbcf49
+ checkmoney $1, 0
+ if_equal $0, UnknownScript_0xbcf55
+ 2jump UnknownScript_0xbcf63
+
+UnknownScript_0xbcf49: ; 0xbcf49
+ checkmoney $1, 0
+ if_equal $0, UnknownScript_0xbcf79
+ 2jump UnknownScript_0xbcf6e
+
+UnknownScript_0xbcf55: ; 0xbcf55
+ readmoney $1, $0
+ 3writetext $6d, $41a7
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+UnknownScript_0xbcf63: ; 0xbcf63
+ 3writetext $6d, $41ea
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+UnknownScript_0xbcf6e: ; 0xbcf6e
+ 3writetext $6d, $420d
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+UnknownScript_0xbcf79: ; 0xbcf79
+ readmoney $1, $0
+ 3writetext $6d, $4249
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+MomPhoneSaveMoneyScript: ; 0xbcf87
+ setbit2 $0008
+ 3writetext $6d, $4289
+ keeptextopen
+ 2jump MomPhoneHangUpScript
+
+MomPhoneWontSaveMoneyScript: ; 0xbcf92
+ clearbit2 $0008
+ 3writetext BANK(MomPhoneWontSaveMoneyText), MomPhoneWontSaveMoneyText
+ keeptextopen
+ 2jump MomPhoneHangUpScript
+
+MomPhoneHangUpScript: ; 0xbcf9d
+ 3writetext BANK(MomPhoneHangUpText), MomPhoneHangUpText
+ end
+
+MomPhoneNoPokemonScript: ; 0xbcfa2
+ 3writetext BANK(MomPhoneNoPokemonText), MomPhoneNoPokemonText
+ end
+
+MomPhoneNoPokedexScript: ; 0xbcfa7
+ 3writetext BANK(MomPhoneNoPokedexText), MomPhoneNoPokedexText
+ end
+
+MomPhoneNoGymQuestScript: ; 0xbcfac
+ 3writetext BANK(MomPhoneNoGymQuestText), MomPhoneNoGymQuestText
+ end
+
+MomPhoneLectureScript: ; 0xbcfb1
+ setbit1 $0040
+ setbit2 $0009
+ specialphonecall $0000
+ 3writetext BANK(MomPhoneLectureText), MomPhoneLectureText
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+BillPhoneScript1: ; 0xbcfc5
+ checktime $2
+ iftrue .daygreet
+ checktime $4
+ iftrue .nitegreet
+ 3writetext BANK(BillPhoneMornGreetingText), BillPhoneMornGreetingText
+ keeptextopen
+ 2jump .main
+
+.daygreet ; 0xbcfd7
+ 3writetext BANK(BillPhoneDayGreetingText), BillPhoneDayGreetingText
+ keeptextopen
+ 2jump .main
+
+.nitegreet ; 0xbcfdf
+ 3writetext BANK(BillPhoneNiteGreetingText), BillPhoneNiteGreetingText
+ keeptextopen
+ 2jump .main
+
+.main ; 0xbcfe7
+ 3writetext BANK(BillPhoneGeneriText), BillPhoneGeneriText
+ keeptextopen
+ checkcode $10
+ RAM2MEM $0
+ if_equal $0, .full
+ if_greater_than $6, .nearlyfull
+ 3writetext BANK(BillPhoneNotFullText), BillPhoneNotFullText
+ end
+
+.nearlyfull ; 0xbcffd
+ 3writetext BANK(BillPhoneNearlyFullText), BillPhoneNearlyFullText
+ end
+
+.full ; 0xbd002
+ 3writetext BANK(BillPhoneFullText), BillPhoneFullText
+ end
+
+BillPhoneScript2: ; 0xbd007
+ 3writetext BANK(BillPhoneNewlyFullText), BillPhoneNewlyFullText
+ closetext
+ end
+
+ElmPhoneScript1: ; 0xbd00d
+ checkcode $14
+ if_equal $1, .pokerus
+ checkbit1 $0055
+ iftrue .discovery
+ checkbit1 $002d
+ iffalse .next
+ checkbit1 $0054
+ iftrue .egghatched
+.next
+ checkbit1 $002d
+ iftrue .eggunhatched
+ checkbit1 $0701
+ iftrue .assistant
+ checkbit1 $001f
+ iftrue .checkingegg
+ checkbit1 $0043
+ iftrue .stolen
+ checkbit1 $001e
+ iftrue .sawmrpokemon
+ 3writetext BANK(ElmPhoneStartText), ElmPhoneStartText
+ end
+
+.sawmrpokemon ; 0xbd048
+ 3writetext BANK(ElmPhoneSawMrPokemonText), ElmPhoneSawMrPokemonText
+ end
+
+.stolen ; 0xbd04d
+ 3writetext BANK(ElmPhonePokemonStolenText), ElmPhonePokemonStolenText
+ end
+
+.checkingegg ; 0xbd052
+ 3writetext BANK(ElmPhoneCheckingEggText), ElmPhoneCheckingEggText
+ end
+
+.assistant ; 0xbd057
+ 3writetext BANK(ElmPhoneAssistantText), ElmPhoneAssistantText
+ end
+
+.eggunhatched ; 0xbd05c
+ 3writetext BANK(ElmPhoneEggUnhatchedText), ElmPhoneEggUnhatchedText
+ end
+
+.egghatched ; 0xbd061
+ 3writetext BANK(ElmPhoneEggHatchedText), ElmPhoneEggHatchedText
+ setbit1 $0077
+ end
+
+.discovery ; 0xbd069
+ random $2
+ if_equal $0, .nextdiscovery
+ 3writetext BANK(ElmPhoneDiscovery1Text), ElmPhoneDiscovery1Text
+ end
+
+.nextdiscovery ; 0xbd074
+ 3writetext BANK(ElmPhoneDiscovery2Text), ElmPhoneDiscovery2Text
+ end
+
+.pokerus ; 0xbd079
+ 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText
+ specialphonecall $0000
+ end
+
+ElmPhoneScript2: ; 0xbd081
+ checkcode $14
+ if_equal $2, .disaster
+ if_equal $3, .assistant
+ if_equal $4, .rocket
+ if_equal $5, .gift
+ if_equal $8, .gift
+ 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText
+ specialphonecall $0000
+ end
+
+.disaster ; 0xbd09f
+ 3writetext BANK(ElmPhoneDisasterText), ElmPhoneDisasterText
+ specialphonecall $0000
+ setbit1 $0043
+ end
+
+.assistant ; 0xbd0aa
+ 3writetext BANK(ElmPhoneEggAssistantText), ElmPhoneEggAssistantText
+ specialphonecall $0000
+ clearbit1 $0700
+ setbit1 $0701
+ end
+
+.rocket ; 0xbd0b8
+ 3writetext BANK(ElmPhoneRocketText), ElmPhoneRocketText
+ specialphonecall $0000
+ end
+
+.gift ; 0xbd0c0
+ 3writetext BANK(ElmPhoneGiftText), ElmPhoneGiftText
+ specialphonecall $0000
+ end
+
+.unused ; 0xbd0c8
+ 3writetext BANK(ElmPhoneUnusedText), ElmPhoneUnusedText
+ specialphonecall $0000
+ end
+; bd0d0
+
diff --git a/event/name_rater.asm b/event/name_rater.asm
new file mode 100644
index 000000000..063376daf
--- /dev/null
+++ b/event/name_rater.asm
@@ -0,0 +1,236 @@
+NameRater: ; fb6ed
+ ld hl, UnknownText_0xfb80f
+ call PrintText
+ call Function1dcf
+ jp c, .asm_fb77e
+ ld hl, UnknownText_0xfb814
+ call PrintText
+ callba Function50000
+ jr c, .asm_fb77e
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_fb783
+ call GetCurNick
+ call Functionfb78a
+ jr c, .asm_fb779
+ ld hl, UnknownText_0xfb819
+ call PrintText
+ call Function1dcf
+ jr c, .asm_fb77e
+ ld hl, UnknownText_0xfb81e
+ call PrintText
+ xor a
+ ld [MonType], a
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld b, 0
+ ld de, StringBuffer2
+ callba Function116b7
+ call Functionfb7be
+ ld hl, UnknownText_0xfb837
+ jr c, .asm_fb76c
+ call Functionfb7d3
+ ld hl, UnknownText_0xfb837
+ jr c, .asm_fb76c
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld hl, StringBuffer2
+ ld bc, $000b
+ call CopyBytes
+ ld hl, UnknownText_0xfb823
+
+.asm_fb76c
+ push hl
+ call GetCurNick
+ ld hl, UnknownText_0xfb83c
+ call PrintText
+ pop hl
+ jr .asm_fb786
+
+.asm_fb779
+ ld hl, UnknownText_0xfb82d
+ jr .asm_fb786
+
+.asm_fb77e
+ ld hl, UnknownText_0xfb828
+ jr .asm_fb786
+
+.asm_fb783
+ ld hl, UnknownText_0xfb832
+
+.asm_fb786
+ call PrintText
+ ret
+; fb78a
+
+Functionfb78a: ; fb78a
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, PlayerName
+ ld c, $b
+ call .asm_fb7b1
+ jr c, .asm_fb7bc
+ ld hl, PartyMon1ID
+ ld bc, PartyMon2 - PartyMon1
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, PlayerID
+ ld c, $2
+.asm_fb7b1
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_fb7bc
+ inc hl
+ inc de
+ dec c
+ jr nz, .asm_fb7b1
+ and a
+ ret
+
+.asm_fb7bc
+ scf
+ ret
+; fb7be
+
+Functionfb7be: ; fb7be
+ ld hl, StringBuffer2
+ ld c, 10
+.asm_fb7c3
+ ld a, [hli]
+ cp "@"
+ jr z, .asm_fb7cf
+ cp " "
+ jr nz, .asm_fb7d1
+ dec c
+ jr nz, .asm_fb7c3
+
+.asm_fb7cf
+ scf
+ ret
+
+.asm_fb7d1
+ and a
+ ret
+; fb7d3
+
+Functionfb7d3: ; fb7d3
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ push hl
+ call Functionfb802
+ ld b, c
+ ld hl, StringBuffer2
+ call Functionfb802
+ pop hl
+ ld a, c
+ cp b
+ jr nz, .asm_fb7fe
+ ld de, StringBuffer2
+.asm_fb7f2
+ ld a, [de]
+ cp "@"
+ jr z, .asm_fb800
+ cp [hl]
+ jr nz, .asm_fb7fe
+ inc hl
+ inc de
+ jr .asm_fb7f2
+
+.asm_fb7fe
+ and a
+ ret
+
+.asm_fb800
+ scf
+ ret
+; fb802
+
+Functionfb802: ; fb802
+ ld c, 0
+.asm_fb804
+ ld a, [hli]
+ cp "@"
+ ret z
+ inc c
+ ld a, c
+ cp 10
+ jr nz, .asm_fb804
+ ret
+; fb80f
+
+UnknownText_0xfb80f: ; 0xfb80f
+ ; Hello, hello! I'm the NAME RATER.
+ ; I rate the names of #MON.
+ ; Would you like me to rate names?
+ text_jump UnknownText_0x1c0043, BANK(UnknownText_0x1c0043)
+ db "@"
+; 0xfb814
+
+UnknownText_0xfb814: ; 0xfb814
+ ; Which #MON's nickname should I rate for you?
+ text_jump UnknownText_0x1c00a0, BANK(UnknownText_0x1c00a0)
+ db "@"
+; 0xfb819
+
+UnknownText_0xfb819: ; 0xfb819
+ ; Hm… @ … That's a fairly decent name.
+ ; But, how about a slightly better nickname?
+ ; Want me to give it a better name?
+ text_jump UnknownText_0x1c00cd, BANK(UnknownText_0x1c00cd)
+ db "@"
+; 0xfb81e
+
+UnknownText_0xfb81e: ; 0xfb81e
+ ; All right. What name should we give it, then?
+ text_jump UnknownText_0x1c0142, BANK(UnknownText_0x1c0142)
+ db "@"
+; 0xfb823
+
+UnknownText_0xfb823: ; 0xfb823
+ ; That's a better name than before! Well done!
+ text_jump UnknownText_0x1c0171, BANK(UnknownText_0x1c0171)
+ db "@"
+; 0xfb828
+
+UnknownText_0xfb828: ; 0xfb828
+ ; OK, then. Come again sometime.
+ text_jump UnknownText_0x1c019e, BANK(UnknownText_0x1c019e)
+ db "@"
+; 0xfb82d
+
+UnknownText_0xfb82d: ; 0xfb82d
+ ; Hm… @ ? What a great name! It's perfect.
+ ; Treat @ with loving care.
+ text_jump UnknownText_0x1c01be, BANK(UnknownText_0x1c01be)
+ db "@"
+; 0xfb832
+
+UnknownText_0xfb832: ; 0xfb832
+ ; Whoa… That's just an EGG.
+ text_jump UnknownText_0x1c0208, BANK(UnknownText_0x1c0208)
+ db "@"
+; 0xfb837
+
+UnknownText_0xfb837: ; 0xfb837
+ ; It might look the same as before,
+ ; but this new name is much better! Well done!
+ text_jump UnknownText_0x1c0222, BANK(UnknownText_0x1c0222)
+ db "@"
+; 0xfb83c
+
+UnknownText_0xfb83c: ; 0xfb83c
+ ; All right. This #MON is now named @ .
+ text_jump UnknownText_0x1c0272, BANK(UnknownText_0x1c0272)
+ db "@"
+; 0xfb841
+
diff --git a/gfx/tilesets/00.lz b/gfx/tilesets/00.lz
index 26cdee7a5..9821e1433 100644
--- a/gfx/tilesets/00.lz
+++ b/gfx/tilesets/00.lz
Binary files differ
diff --git a/gfx/tilesets/01.lz b/gfx/tilesets/01.lz
index 26cdee7a5..9821e1433 100644
--- a/gfx/tilesets/01.lz
+++ b/gfx/tilesets/01.lz
Binary files differ
diff --git a/gfx/tilesets/02.lz b/gfx/tilesets/02.lz
index c33920ea7..64f23e23b 100644
--- a/gfx/tilesets/02.lz
+++ b/gfx/tilesets/02.lz
Binary files differ
diff --git a/gfx/tilesets/03.lz b/gfx/tilesets/03.lz
index d5528e6ea..d925ee111 100644
--- a/gfx/tilesets/03.lz
+++ b/gfx/tilesets/03.lz
Binary files differ
diff --git a/gfx/tilesets/04.lz b/gfx/tilesets/04.lz
index c33920ea7..64f23e23b 100644
--- a/gfx/tilesets/04.lz
+++ b/gfx/tilesets/04.lz
Binary files differ
diff --git a/gfx/tilesets/05.lz b/gfx/tilesets/05.lz
index a4fde3a53..f9afaf70d 100644
--- a/gfx/tilesets/05.lz
+++ b/gfx/tilesets/05.lz
Binary files differ
diff --git a/gfx/tilesets/06.lz b/gfx/tilesets/06.lz
index 342165f65..17c64de65 100644
--- a/gfx/tilesets/06.lz
+++ b/gfx/tilesets/06.lz
Binary files differ
diff --git a/gfx/tilesets/07.lz b/gfx/tilesets/07.lz
index 456b0f570..71783d9f2 100644
--- a/gfx/tilesets/07.lz
+++ b/gfx/tilesets/07.lz
Binary files differ
diff --git a/gfx/tilesets/08.lz b/gfx/tilesets/08.lz
index c86fe9093..724b6b8b7 100644
--- a/gfx/tilesets/08.lz
+++ b/gfx/tilesets/08.lz
Binary files differ
diff --git a/gfx/tilesets/09.lz b/gfx/tilesets/09.lz
index 01e4dc3a5..96dd2e594 100644
--- a/gfx/tilesets/09.lz
+++ b/gfx/tilesets/09.lz
Binary files differ
diff --git a/gfx/tilesets/10.lz b/gfx/tilesets/10.lz
index d599354af..cd0f43861 100644
--- a/gfx/tilesets/10.lz
+++ b/gfx/tilesets/10.lz
Binary files differ
diff --git a/gfx/tilesets/11.lz b/gfx/tilesets/11.lz
index aa592b1d5..584e54dd2 100644
--- a/gfx/tilesets/11.lz
+++ b/gfx/tilesets/11.lz
Binary files differ
diff --git a/gfx/tilesets/12.lz b/gfx/tilesets/12.lz
index e7830d831..e8091a899 100644
--- a/gfx/tilesets/12.lz
+++ b/gfx/tilesets/12.lz
Binary files differ
diff --git a/gfx/tilesets/14.lz b/gfx/tilesets/14.lz
index afe093c97..f7e185b4e 100644
--- a/gfx/tilesets/14.lz
+++ b/gfx/tilesets/14.lz
Binary files differ
diff --git a/gfx/tilesets/15.lz b/gfx/tilesets/15.lz
index ff6eec958..6b45c769d 100644
--- a/gfx/tilesets/15.lz
+++ b/gfx/tilesets/15.lz
Binary files differ
diff --git a/gfx/tilesets/16.lz b/gfx/tilesets/16.lz
index a8821375c..28f025413 100644
--- a/gfx/tilesets/16.lz
+++ b/gfx/tilesets/16.lz
Binary files differ
diff --git a/gfx/tilesets/18.lz b/gfx/tilesets/18.lz
index ad4129733..e19994f37 100644
--- a/gfx/tilesets/18.lz
+++ b/gfx/tilesets/18.lz
Binary files differ
diff --git a/gfx/tilesets/19.lz b/gfx/tilesets/19.lz
index 6264091ea..d208e65c3 100644
--- a/gfx/tilesets/19.lz
+++ b/gfx/tilesets/19.lz
Binary files differ
diff --git a/gfx/tilesets/20.lz b/gfx/tilesets/20.lz
index 8cf39f262..b458a501d 100644
--- a/gfx/tilesets/20.lz
+++ b/gfx/tilesets/20.lz
Binary files differ
diff --git a/gfx/tilesets/21.lz b/gfx/tilesets/21.lz
index ae250c001..5b787c854 100644
--- a/gfx/tilesets/21.lz
+++ b/gfx/tilesets/21.lz
Binary files differ
diff --git a/gfx/tilesets/22.lz b/gfx/tilesets/22.lz
index a788ae8c0..fa5d0a9f0 100644
--- a/gfx/tilesets/22.lz
+++ b/gfx/tilesets/22.lz
Binary files differ
diff --git a/gfx/tilesets/23.lz b/gfx/tilesets/23.lz
index c51f717b0..2033306e3 100644
--- a/gfx/tilesets/23.lz
+++ b/gfx/tilesets/23.lz
Binary files differ
diff --git a/gfx/tilesets/24.lz b/gfx/tilesets/24.lz
index 01bb3bdf6..69069fb75 100644
--- a/gfx/tilesets/24.lz
+++ b/gfx/tilesets/24.lz
Binary files differ
diff --git a/gfx/tilesets/25.lz b/gfx/tilesets/25.lz
index d2a88f5c6..01a0e56bd 100644
--- a/gfx/tilesets/25.lz
+++ b/gfx/tilesets/25.lz
Binary files differ
diff --git a/gfx/tilesets/26.lz b/gfx/tilesets/26.lz
index ead4b25bf..68a4fdad0 100644
--- a/gfx/tilesets/26.lz
+++ b/gfx/tilesets/26.lz
Binary files differ
diff --git a/gfx/tilesets/27.lz b/gfx/tilesets/27.lz
index 0e2630574..34be33856 100644
--- a/gfx/tilesets/27.lz
+++ b/gfx/tilesets/27.lz
Binary files differ
diff --git a/gfx/tilesets/28.lz b/gfx/tilesets/28.lz
index 8ba18b56c..c204dca26 100644
--- a/gfx/tilesets/28.lz
+++ b/gfx/tilesets/28.lz
Binary files differ
diff --git a/gfx/tilesets/29.lz b/gfx/tilesets/29.lz
index 8350f7f9d..25cc45c85 100644
--- a/gfx/tilesets/29.lz
+++ b/gfx/tilesets/29.lz
Binary files differ
diff --git a/gfx/tilesets/30.lz b/gfx/tilesets/30.lz
index 775ac2c6c..50a5ab9ac 100644
--- a/gfx/tilesets/30.lz
+++ b/gfx/tilesets/30.lz
Binary files differ
diff --git a/gfx/tilesets/31.lz b/gfx/tilesets/31.lz
index 32304f928..7b5355705 100644
--- a/gfx/tilesets/31.lz
+++ b/gfx/tilesets/31.lz
Binary files differ
diff --git a/gfx/tilesets/32.lz b/gfx/tilesets/32.lz
index ead4b25bf..68a4fdad0 100644
--- a/gfx/tilesets/32.lz
+++ b/gfx/tilesets/32.lz
Binary files differ
diff --git a/gfx/tilesets/33.lz b/gfx/tilesets/33.lz
index ead4b25bf..68a4fdad0 100644
--- a/gfx/tilesets/33.lz
+++ b/gfx/tilesets/33.lz
Binary files differ
diff --git a/gfx/tilesets/34.lz b/gfx/tilesets/34.lz
index ead4b25bf..68a4fdad0 100644
--- a/gfx/tilesets/34.lz
+++ b/gfx/tilesets/34.lz
Binary files differ
diff --git a/gfx/tilesets/35.lz b/gfx/tilesets/35.lz
index ead4b25bf..68a4fdad0 100644
--- a/gfx/tilesets/35.lz
+++ b/gfx/tilesets/35.lz
Binary files differ
diff --git a/gfx/tilesets/36.lz b/gfx/tilesets/36.lz
index ead4b25bf..68a4fdad0 100644
--- a/gfx/tilesets/36.lz
+++ b/gfx/tilesets/36.lz
Binary files differ
diff --git a/engine/copy.asm b/home/copy.asm
index c5ba92c65..ad25c96e6 100644
--- a/engine/copy.asm
+++ b/home/copy.asm
@@ -248,13 +248,13 @@ Request2bpp: ; eba
.asm_edc
ld a, e
- ld [$cf68], a
+ ld [Requested2bppSource], a
ld a, d
- ld [$cf69], a
+ ld [Requested2bppSource + 1], a
ld a, l
- ld [$cf6a], a
+ ld [Requested2bppDest], a
ld a, h
- ld [$cf6b], a
+ ld [Requested2bppDest + 1], a
.asm_eec
ld a, c
@@ -262,10 +262,10 @@ Request2bpp: ; eba
cp [hl]
jr nc, .asm_f08
- ld [$cf67], a
+ ld [Requested2bpp], a
.wait
call DelayFrame
- ld a, [$cf67]
+ ld a, [Requested2bpp]
and a
jr nz, .wait
@@ -281,10 +281,10 @@ Request2bpp: ; eba
.asm_f08
ld a, [$ffd3]
- ld [$cf67], a
+ ld [Requested2bpp], a
.asm_f0d
call DelayFrame
- ld a, [$cf67]
+ ld a, [Requested2bpp]
and a
jr nz, .asm_f0d
ld a, c
@@ -322,23 +322,23 @@ Request1bpp: ; f1e
.asm_f40
ld a, e
- ld [$cf6d], a
+ ld [Requested1bppSource], a
ld a, d
- ld [$cf6e], a
+ ld [Requested1bppSource + 1], a
ld a, l
- ld [$cf6f], a
+ ld [Requested1bppDest], a
ld a, h
- ld [$cf70], a
+ ld [Requested1bppDest + 1], a
.asm_f50
ld a, c
ld hl, $ffd3
cp [hl]
jr nc, .asm_f6c
- ld [$cf6c], a
+ ld [Requested1bpp], a
.wait
call DelayFrame
- ld a, [$cf6c]
+ ld a, [Requested1bpp]
and a
jr nz, .wait
@@ -354,10 +354,10 @@ Request1bpp: ; f1e
.asm_f6c
ld a, [$ffd3]
- ld [$cf6c], a
+ ld [Requested1bpp], a
.asm_f71
call DelayFrame
- ld a, [$cf6c]
+ ld a, [Requested1bpp]
and a
jr nz, .asm_f71
ld a, c
diff --git a/home/copy2.asm b/home/copy2.asm
new file mode 100644
index 000000000..bdfbe9fdf
--- /dev/null
+++ b/home/copy2.asm
@@ -0,0 +1,134 @@
+CopyBytes: ; 0x3026
+; copy bc bytes from hl to de
+ inc b ; we bail the moment b hits 0, so include the last run
+ inc c ; same thing; include last byte
+ jr .HandleLoop
+.CopyByte
+ ld a, [hli]
+ ld [de], a
+ inc de
+.HandleLoop
+ dec c
+ jr nz, .CopyByte
+ dec b
+ jr nz, .CopyByte
+ ret
+
+SwapBytes: ; 0x3034
+; swap bc bytes between hl and de
+.Loop
+ ; stash [hl] away on the stack
+ ld a, [hl]
+ push af
+
+ ; copy a byte from [de] to [hl]
+ ld a, [de]
+ ld [hli], a
+
+ ; retrieve the previous value of [hl]; put it in [de]
+ pop af
+ ld [de], a
+ inc de
+
+ ; handle loop stuff
+ dec bc
+ ld a, b
+ or c
+ jr nz, .Loop
+ ret
+
+ByteFill: ; 0x3041
+; fill bc bytes with the value of a, starting at hl
+ inc b ; we bail the moment b hits 0, so include the last run
+ inc c ; same thing; include last byte
+ jr .HandleLoop
+.PutByte
+ ld [hli], a
+.HandleLoop
+ dec c
+ jr nz, .PutByte
+ dec b
+ jr nz, .PutByte
+ ret
+
+GetFarByte: ; 0x304d
+; retrieve a single byte from a:hl, and return it in a.
+ ; bankswitch to new bank
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+
+ ; get byte from new bank
+ ld a, [hl]
+ ld [hBuffer], a
+
+ ; bankswitch to previous bank
+ pop af
+ rst Bankswitch
+
+ ; return retrieved value in a
+ ld a, [hBuffer]
+ ret
+
+GetFarHalfword: ; 0x305d
+; retrieve a halfword from a:hl, and return it in hl.
+ ; bankswitch to new bank
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+
+ ; get halfword from new bank, put it in hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ; bankswitch to previous bank and return
+ pop af
+ rst Bankswitch
+ ret
+; 0x306b
+
+FarCopyWRAM: ; 306b
+ ld [hBuffer], a
+ ld a, [rSVBK]
+ push af
+ ld a, [hBuffer]
+ ld [rSVBK], a
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 307b
+
+GetFarWRAMByte: ; 307b
+ ld [hBuffer], a
+ ld a, [rSVBK]
+ push af
+ ld a, [hBuffer]
+ ld [rSVBK], a
+ ld a, [hl]
+ ld [hBuffer], a
+ pop af
+ ld [rSVBK], a
+ ld a, [hBuffer]
+ ret
+; 308d
+
+GetFarWRAMWord: ; 308d
+ ld [hBuffer], a
+ ld a, [rSVBK]
+ push af
+ ld a, [hBuffer]
+ ld [rSVBK], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ld [rSVBK], a
+ ret
+; 309d
+
diff --git a/engine/decompress.asm b/home/decompress.asm
index 8d39cd968..8d39cd968 100644
--- a/engine/decompress.asm
+++ b/home/decompress.asm
diff --git a/home/delay.asm b/home/delay.asm
new file mode 100644
index 000000000..4e8b2147c
--- /dev/null
+++ b/home/delay.asm
@@ -0,0 +1,23 @@
+DelayFrame: ; 45a
+; Wait for one frame
+ ld a, 1
+ ld [VBlankOccurred], a
+
+; Wait for the next VBlank, halting to conserve battery
+.halt
+ halt ; rgbasm adds a nop after this instruction by default
+ ld a, [VBlankOccurred]
+ and a
+ jr nz, .halt
+ ret
+; 468
+
+
+DelayFrames: ; 468
+; Wait c frames
+ call DelayFrame
+ dec c
+ jr nz, DelayFrames
+ ret
+; 46f
+
diff --git a/home/double_speed.asm b/home/double_speed.asm
new file mode 100644
index 000000000..fc1234215
--- /dev/null
+++ b/home/double_speed.asm
@@ -0,0 +1,31 @@
+; The CGB hardware introduces Double Speed Mode.
+; While active, the clock speed is doubled.
+
+; The hardware can switch between normal speed
+; and double speed at any time, but LCD output
+; collapses during the switch.
+
+DoubleSpeed: ; 2fef
+ ld hl, rKEY1
+ bit 7, [hl]
+ jr z, SwitchSpeed
+ ret
+; 2ff7
+
+NormalSpeed: ; 2ff7
+ ld hl, rKEY1
+ bit 7, [hl]
+ ret z
+; 2ffd
+
+SwitchSpeed: ; 2ffd
+ set 0, [hl]
+ xor a
+ ld [rIF], a
+ ld [rIE], a
+ ld a, $30
+ ld [rJOYP], a
+ stop ; rgbasm adds a nop after this instruction by default
+ ret
+; 300b
+
diff --git a/engine/fade.asm b/home/fade.asm
index d67211e29..d67211e29 100644
--- a/engine/fade.asm
+++ b/home/fade.asm
diff --git a/home/farcall.asm b/home/farcall.asm
new file mode 100644
index 000000000..bdee3bf38
--- /dev/null
+++ b/home/farcall.asm
@@ -0,0 +1,55 @@
+FarCall_de: ; 2d54
+; Call a:de.
+; Preserves other registers.
+
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+ call .de
+ jr ReturnFarCall
+
+.de
+ push de
+ ret
+; 2d63
+
+
+FarCall_hl: ; 2d63
+; Call a:hl.
+; Preserves other registers.
+
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+ call Function2d82
+; 2d6e
+
+ReturnFarCall: ; 2d6e
+; We want to retain the contents of f.
+; To do this, we can pop to bc instead of af.
+
+ ld a, b
+ ld [$cfb9], a
+ ld a, c
+ ld [$cfba], a
+
+; Restore the working bank.
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ ld a, [$cfb9]
+ ld b, a
+ ld a, [$cfba]
+ ld c, a
+ ret
+; 2d82
+
+Function2d82: ; 2d82
+ jp [hl]
+; 2d83
+
diff --git a/home/flag.asm b/home/flag.asm
new file mode 100644
index 000000000..e99248a3e
--- /dev/null
+++ b/home/flag.asm
@@ -0,0 +1,113 @@
+Function2e50: ; 2e50
+ xor a
+ ld hl, EventFlags
+ ld [hli], a
+ ret
+; 2e56
+
+Function2e56: ; 2e56
+ xor a
+ ld hl, BikeFlags
+ ld [hli], a
+ ld [hl], a
+ ret
+; 2e5d
+
+Function2e5d: ; 2e5d
+ ld a, [$d19a]
+ cp $2
+ jr z, .asm_2e69
+ cp $1
+ jr z, .asm_2e69
+ ret
+
+.asm_2e69
+ ld hl, StatusFlags
+ res 2, [hl]
+ ret
+; 2e6f
+
+
+EventFlagAction: ; 0x2e6f
+ ld hl, EventFlags
+ call FlagAction
+ ret
+
+FlagAction: ; 0x2e76
+; Perform action b on bit de in flag array hl.
+
+; inputs:
+; b: function
+; 0 clear bit
+; 1 set bit
+; 2 check bit
+; de: bit number
+; hl: index within bit table
+
+ ; get index within the byte
+ ld a, e
+ and 7
+
+ ; shift de right by three bits (get the index within memory)
+ srl d
+ rr e
+ srl d
+ rr e
+ srl d
+ rr e
+ add hl, de
+
+ ; implement a decoder
+ ld c, 1
+ rrca
+ jr nc, .one
+ rlc c
+.one
+ rrca
+ jr nc, .two
+ rlc c
+ rlc c
+.two
+ rrca
+ jr nc, .three
+ swap c
+.three
+
+ ; check b's value: 0, 1, 2
+ ld a, b
+ cp 1
+ jr c, .clearbit ; 0
+ jr z, .setbit ; 1
+
+ ; check bit
+ ld a, [hl]
+ and c
+ ld c, a
+ ret
+
+.setbit
+ ; set bit
+ ld a, [hl]
+ or c
+ ld [hl], a
+ ret
+
+.clearbit
+ ; clear bit
+ ld a, c
+ cpl
+ and [hl]
+ ld [hl], a
+ ret
+; 0x2ead
+
+
+Function2ead: ; 2ead
+ ld de, ENGINE_POKEDEX
+ ld b, CHECK_FLAG
+ callba EngineFlagAction
+ ld a, c
+ and a
+ ret
+; 2ebb
+
diff --git a/home/game_time.asm b/home/game_time.asm
new file mode 100644
index 000000000..ee52488f4
--- /dev/null
+++ b/home/game_time.asm
@@ -0,0 +1,132 @@
+ResetGameTime: ; 208a
+ xor a
+ ld [GameTimeCap], a
+ ld [GameTimeHours], a
+ ld [GameTimeHours + 1], a
+ ld [GameTimeMinutes], a
+ ld [GameTimeSeconds], a
+ ld [GameTimeFrames], a
+ ret
+; 209e
+
+
+GameTimer: ; 209e
+
+ nop
+
+ ld a, [rSVBK]
+ push af
+ ld a, 1
+ ld [rSVBK], a
+
+ call UpdateGameTimer
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 20ad
+
+
+UpdateGameTimer: ; 20ad
+; Increment the game timer by one frame.
+; The game timer is capped at 999:59:59.00.
+
+
+; Don't update if game logic is paused.
+ ld a, [$c2cd]
+ and a
+ ret nz
+
+; Is the timer paused?
+ ld hl, GameTimerPause
+ bit 0, [hl]
+ ret z
+
+; Is the timer already capped?
+ ld hl, GameTimeCap
+ bit 0, [hl]
+ ret nz
+
+
+; +1 frame
+ ld hl, GameTimeFrames
+ ld a, [hl]
+ inc a
+
+ cp 60 ; frames/second
+ jr nc, .second
+
+ ld [hl], a
+ ret
+
+
+.second
+ xor a
+ ld [hl], a
+
+; +1 second
+ ld hl, GameTimeSeconds
+ ld a, [hl]
+ inc a
+
+ cp 60 ; seconds/minute
+ jr nc, .minute
+
+ ld [hl], a
+ ret
+
+
+.minute
+ xor a
+ ld [hl], a
+
+; +1 minute
+ ld hl, GameTimeMinutes
+ ld a, [hl]
+ inc a
+
+ cp 60 ; minutes/hour
+ jr nc, .hour
+
+ ld [hl], a
+ ret
+
+
+.hour
+ xor a
+ ld [hl], a
+
+; +1 hour
+ ld a, [GameTimeHours]
+ ld h, a
+ ld a, [GameTimeHours + 1]
+ ld l, a
+ inc hl
+
+
+; Cap the timer after 1000 hours.
+ ld a, h
+ cp 1000 / $100
+ jr c, .ok
+
+ ld a, l
+ cp 1000 % $100
+ jr c, .ok
+
+ ld hl, GameTimeCap
+ set 0, [hl]
+
+ ld a, 59 ; 999:59:59.00
+ ld [GameTimeMinutes], a
+ ld [GameTimeSeconds], a
+ ret
+
+
+.ok
+ ld a, h
+ ld [GameTimeHours], a
+ ld a, l
+ ld [GameTimeHours + 1], a
+ ret
+; 210f
+
diff --git a/home/handshake.asm b/home/handshake.asm
new file mode 100644
index 000000000..8ed1473e4
--- /dev/null
+++ b/home/handshake.asm
@@ -0,0 +1,38 @@
+AskSerial: ; 2063
+; send out a handshake while serial int is off
+ ld a, [$c2d4]
+ bit 0, a
+ ret z
+
+ ld a, [$c2d5]
+ and a
+ ret nz
+
+; once every 6 frames
+ ld hl, $ca8a
+ inc [hl]
+ ld a, [hl]
+ cp 6
+ ret c
+
+ xor a
+ ld [hl], a
+
+ ld a, $c
+ ld [$c2d5], a
+
+; handshake
+ ld a, $88
+ ld [rSB], a
+
+; switch to internal clock
+ ld a, %00000001
+ ld [rSC], a
+
+; start transfer
+ ld a, %10000001
+ ld [rSC], a
+
+ ret
+; 208a
+
diff --git a/engine/init.asm b/home/init.asm
index 3104c416d..ead75975c 100644
--- a/engine/init.asm
+++ b/home/init.asm
@@ -156,7 +156,7 @@ Init: ; 17d
ld a, [hCGB]
and a
jr z, .asm_22b
- call Function2ff7
+ call NormalSpeed
.asm_22b
xor a
diff --git a/home/item.asm b/home/item.asm
new file mode 100644
index 000000000..0906a19f6
--- /dev/null
+++ b/home/item.asm
@@ -0,0 +1,76 @@
+DoItemEffect: ; 2f3f
+ callba _DoItemEffect
+ ret
+; 2f46
+
+CheckTossableItem: ; 2f46
+ push hl
+ push de
+ push bc
+ callba _CheckTossableItem
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2f53
+
+TossItem: ; 2f53
+ push hl
+ push de
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_TossItem)
+ rst Bankswitch
+
+ call _TossItem
+
+ pop bc
+ ld a, b
+ rst Bankswitch
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2f66
+
+ReceiveItem: ; 2f66
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_ReceiveItem)
+ rst Bankswitch
+ push hl
+ push de
+
+ call _ReceiveItem
+
+ pop de
+ pop hl
+ pop bc
+ ld a, b
+ rst Bankswitch
+ pop bc
+ ret
+; 2f79
+
+CheckItem: ; 2f79
+ push hl
+ push de
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_CheckItem)
+ rst Bankswitch
+
+ call _CheckItem
+
+ pop bc
+ ld a, b
+ rst Bankswitch
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2f8c
+
diff --git a/engine/joypad.asm b/home/joypad.asm
index 388c84e22..198e1c47b 100644
--- a/engine/joypad.asm
+++ b/home/joypad.asm
@@ -101,8 +101,8 @@ Joypad: ; 935
; Now that we have the input, we can do stuff with it.
; For example, soft reset:
- and BUTTON_A | BUTTON_B | SELECT | START
- cp BUTTON_A | BUTTON_B | SELECT | START
+ and A_BUTTON | B_BUTTON | SELECT | START
+ cp A_BUTTON | B_BUTTON | SELECT | START
jp z, Reset
ret
@@ -283,11 +283,11 @@ Functiona1b: ; a1b
pop bc
ld a, [hJoyDown]
- cp D_UP | SELECT | BUTTON_B
+ cp D_UP | SELECT | B_BUTTON
jr z, .asm_a34
ld a, [$ffa9]
- and START | BUTTON_A
+ and START | A_BUTTON
jr nz, .asm_a34
dec c
@@ -306,7 +306,7 @@ Functiona36: ; a36
call DelayFrame
call GetJoypadPublic
ld a, [hJoyPressed]
- and BUTTON_A | BUTTON_B
+ and A_BUTTON | B_BUTTON
ret nz
call RTC
jr Functiona36
@@ -382,7 +382,7 @@ Functiona80: ; a80
Functionaa5: ; aa5
call Functiona57
ld a, [$ffa9]
- and BUTTON_A | BUTTON_B
+ and A_BUTTON | B_BUTTON
jr z, Functionaa5
ret
; aaf
diff --git a/engine/lcd.asm b/home/lcd.asm
index 9c86eaa5c..9c86eaa5c 100644
--- a/engine/lcd.asm
+++ b/home/lcd.asm
diff --git a/home/map.asm b/home/map.asm
new file mode 100644
index 000000000..d4cfe1be9
--- /dev/null
+++ b/home/map.asm
@@ -0,0 +1,2369 @@
+; Functions dealing with rendering and interacting with maps.
+
+Function210f: ; 210f
+ ld hl, $c7e8
+ ld bc, $0018
+ ld a, $0
+ call ByteFill
+ ret
+; 211b
+
+Function211b: ; 211b
+ push hl
+ ld hl, $dbf7
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ or h
+ ld a, [hl]
+ jr nz, .asm_2128
+ ld a, $ff
+
+.asm_2128
+ pop hl
+ ret
+; 212a
+
+Function212a: ; 212a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ xor a
+ ld [$dbf7], a
+ ld [$dbf8], a
+ call Function2147
+ ret c
+ ld a, e
+ ld [$dbf7], a
+ ld a, d
+ ld [$dbf8], a
+ xor a
+ ret
+; 2147
+
+Function2147: ; 2147
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, $13
+ rst Bankswitch
+
+ ld hl, $501e
+.asm_2151
+ push hl
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_2167
+ cp b
+ jr nz, .asm_2160
+ ld a, [hli]
+ cp c
+ jr nz, .asm_2160
+ jr .asm_216a
+
+.asm_2160
+ pop hl
+ ld de, $0004
+ add hl, de
+ jr .asm_2151
+
+.asm_2167
+ scf
+ jr .asm_216d
+
+.asm_216a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+
+.asm_216d
+ pop hl
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ pop bc
+ ret
+; 2173
+
+Function2173: ; 2173
+ call Function217a
+ call Functiondb1
+ ret
+; 217a
+
+Function217a: ; 217a
+ ld a, [hROMBank]
+ push af
+ ld a, [TilesetBlocksBank]
+ rst Bankswitch
+
+ call Function2198
+ ld a, $60
+ ld hl, TileMap
+ ld bc, $0168
+ call ByteFill
+ ld a, $13
+ rst Bankswitch
+
+ call $515b
+ pop af
+ rst Bankswitch
+
+ ret
+; 2198
+
+Function2198: ; 2198
+ ld a, [$d194]
+ ld e, a
+ ld a, [$d195]
+ ld d, a
+ ld hl, EnemyMoveAnimation
+ ld b, $5
+
+.asm_21a5
+ push de
+ push hl
+ ld c, $6
+
+.asm_21a9
+ push de
+ push hl
+ ld a, [de]
+ and a
+ jr nz, .asm_21b2
+ ld a, [$d19d]
+
+.asm_21b2
+ ld e, l
+ ld d, h
+ add a
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld a, [TilesetBlocksAddress]
+ add l
+ ld l, a
+ ld a, [TilesetBlocksAddress + 1]
+ adc h
+ ld h, a
+
+rept 3
+ 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, e
+ add 20
+ ld e, a
+ jr nc, .next\@
+ inc d
+.next\@
+endr
+
+ 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
+
+ pop hl
+ ld de, $0004
+ add hl, de
+ pop de
+ inc de
+ dec c
+ jp nz, .asm_21a9
+ pop hl
+ ld de, $0060
+ add hl, de
+ pop de
+ ld a, [$d19f]
+ add $6
+ add e
+ ld e, a
+ jr nc, .asm_2225
+ inc d
+
+.asm_2225
+ dec b
+ jp nz, .asm_21a5
+ ret
+; 222a
+
+Function222a: ; 222a
+ ld a, $fa
+ ld [$ff9f], a
+ callba Function15363
+ xor a
+ ld [$ff9f], a
+ ret
+; 2238
+
+Function2238: ; 2238
+ call Function2252
+ ret nc
+ push bc
+ callba Function149af
+ pop bc
+ ret nc
+ call Function22a7
+ scf
+ ret
+; 224a
+
+
+
+Function224a: ; 224a
+ call Function2252
+ ret nc
+ call Function22a7
+ ret
+; 2252
+
+Function2252: ; 2252
+ callba Function1499a
+ ret nc
+
+ ld a, [hROMBank]
+ push af
+
+ call Function2c52
+ call Function2266
+
+ pop de
+ ld a, d
+ rst Bankswitch
+ ret
+; 2266
+
+Function2266: ; 2266
+ ld a, [MapY]
+ sub $4
+ ld e, a
+ ld a, [MapX]
+ sub $4
+ ld d, a
+ ld a, [$dbfb]
+ and a
+ ret z
+ ld c, a
+ ld hl, $dbfc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.asm_227e
+ push hl
+ ld a, [hli]
+ cp e
+ jr nz, .asm_2289
+ ld a, [hli]
+ cp d
+ jr nz, .asm_2289
+ jr .asm_2296
+
+.asm_2289
+ pop hl
+ ld a, $5
+ add l
+ ld l, a
+ jr nc, .asm_2291
+ inc h
+
+.asm_2291
+ dec c
+ jr nz, .asm_227e
+ xor a
+ ret
+
+.asm_2296
+ pop hl
+ call Function22a3
+ ret nc
+ ld a, [$dbfb]
+ inc a
+ sub c
+ ld c, a
+ scf
+ ret
+; 22a3
+
+Function22a3: ; 22a3
+ inc hl
+ inc hl
+ scf
+ ret
+; 22a7
+
+Function22a7: ; 22a7
+ ld a, [hROMBank]
+ push af
+
+ call Function2c52
+ call Function22b4
+
+ pop af
+ rst Bankswitch
+ scf
+ ret
+; 22b4
+
+Function22b4: ; 22b4
+ push bc
+ ld hl, $dbfc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, c
+ dec a
+ ld bc, $0005
+ call AddNTimes
+ ld bc, $0002
+ add hl, bc
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_22d0
+ ld hl, $dcac
+ ld a, [hli]
+
+.asm_22d0
+ pop bc
+ ld [$d146], a
+ ld a, [hli]
+ ld [$d147], a
+ ld a, [hli]
+ ld [$d148], a
+ ld a, c
+ ld [$d149], a
+ ld a, [MapGroup]
+ ld [$d14a], a
+ ld a, [MapNumber]
+ ld [$d14b], a
+ scf
+ ret
+; 22ee
+
+
+
+CheckOutdoorMap: ; 22ee
+ cp ROUTE
+ ret z
+ cp TOWN
+ ret
+; 22f4
+
+CheckIndoorMap: ; 22f4
+ cp INDOOR
+ ret z
+ cp CAVE
+ ret z
+ cp DUNGEON
+ ret z
+ cp GATE
+ ret
+; 2300
+
+Function2300: ; 2300
+ cp INDOOR
+ ret z
+ cp GATE
+ ret z
+ cp $5
+ ret
+; 2309
+
+
+Function2309: ; 2309
+ call Function2326
+ call Function2c52
+ call Function234f
+ xor a
+ call Function2336
+ ret
+; 2317
+
+Function2317: ; 2317
+ call Function2326
+ call Function2c52
+ call Function234f
+ ld a, $1
+ call Function2336
+ ret
+; 2326
+
+Function2326: ; 2326
+ call Function2c3d
+ call Function2c1c
+ call GetSecondaryMapHeaderPointer
+ call Function235c
+ call Function2368
+ ret
+; 2336
+
+Function2336: ; 2336
+ push af
+ ld hl, $d1a6
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ inc hl
+ call Function23da
+ call Function23f1
+ call Function2408
+ pop af
+ and a
+ ret nz
+ call Function241f
+ ret
+; 234f
+
+Function234f: ; 234f
+ ld hl, $d1a4
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function23ac
+ call Function23c3
+ ret
+; 235c
+
+Function235c: ; 235c
+ ld de, $d19d
+ ld c, $c
+.asm_2361
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_2361
+ ret
+; 2368
+
+Function2368: ; 2368
+ ld a, $ff
+ ld [NorthConnectedMapGroup], a
+ ld [SouthConnectedMapGroup], a
+ ld [WestConnectedMapGroup], a
+ ld [EastConnectedMapGroup], a
+
+ ld a, [$d1a8]
+ ld b, a
+
+ bit 3, b
+ jr z, .asm_2384
+ ld de, NorthMapConnection
+ call GetMapConnection
+
+.asm_2384
+ bit 2, b
+ jr z, .asm_238e
+ ld de, SouthMapConnection
+ call GetMapConnection
+
+.asm_238e
+ bit 1, b
+ jr z, .asm_2398
+ ld de, WestMapConnection
+ call GetMapConnection
+
+.asm_2398
+ bit 0, b
+ jr z, .asm_23a2
+ ld de, EastMapConnection
+ call GetMapConnection
+
+.asm_23a2
+ ret
+; 23a3
+
+
+GetMapConnection: ; 23a3
+; Load map connection struct at hl into de.
+ ld c, SouthMapConnection - NorthMapConnection
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop
+ ret
+; 23ac
+
+
+Function23ac: ; 23ac
+ ld a, [hli]
+ ld c, a
+ ld [$dc07], a
+ ld a, l
+ ld [$dc08], a
+ ld a, h
+ ld [$dc09], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0004
+ call AddNTimes
+ ret
+; 23c3
+
+Function23c3: ; 23c3
+ ld a, [hli]
+ ld c, a
+ ld [$dc0a], a
+ ld a, l
+ ld [$dc0b], a
+ ld a, h
+ ld [$dc0c], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0003
+ call AddNTimes
+ ret
+; 23da
+
+Function23da: ; 23da
+ ld a, [hli]
+ ld c, a
+ ld [$dbfb], a
+ ld a, l
+ ld [$dbfc], a
+ ld a, h
+ ld [$dbfd], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0005
+ call AddNTimes
+ ret
+; 23f1
+
+Function23f1: ; 23f1
+ ld a, [hli]
+ ld c, a
+ ld [$dbfe], a
+ ld a, l
+ ld [$dbff], a
+ ld a, h
+ ld [$dc00], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0008
+ call AddNTimes
+ ret
+; 2408
+
+Function2408: ; 2408
+ ld a, [hli]
+ ld c, a
+ ld [$dc01], a
+ ld a, l
+ ld [$dc02], a
+ ld a, h
+ ld [$dc03], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0005
+ call AddNTimes
+ ret
+; 241f
+
+Function241f: ; 241f
+ push hl
+ call Function2471
+ pop de
+ ld hl, $d72e
+ ld a, [de]
+ inc de
+ ld [$dc04], a
+ ld a, e
+ ld [$dc05], a
+ ld a, d
+ ld [$dc06], a
+ ld a, [$dc04]
+ call Function2457
+ ld a, [$dc04]
+ ld c, a
+ ld a, $10
+ sub c
+ jr z, .asm_2454
+ ld bc, $0001
+ add hl, bc
+ ld bc, $0010
+.asm_244a
+ ld [hl], $0
+ inc hl
+ ld [hl], $ff
+ dec hl
+ add hl, bc
+ dec a
+ jr nz, .asm_244a
+
+.asm_2454
+ ld h, d
+ ld l, e
+ ret
+; 2457
+
+Function2457: ; 2457
+ and a
+ ret z
+ ld c, a
+.asm_245a
+ push bc
+ push hl
+ ld a, $ff
+ ld [hli], a
+ ld b, $d
+.asm_2461
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_2461
+ pop hl
+ ld bc, $0010
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_245a
+ ret
+; 2471
+
+Function2471: ; 2471
+ ld hl, $d4fe
+ ld bc, $01e0
+ xor a
+ call ByteFill
+ ld hl, $d4fe
+ ld de, $0028
+ ld c, $c
+ xor a
+.asm_2484
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_2484
+ ret
+; 248a
+
+Function248a: ; 248a
+ call GetMapEventBank
+ rst Bankswitch
+
+ ld hl, $d1a6
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ inc hl
+ inc hl
+ ld a, [WarpNumber]
+ dec a
+ ld c, a
+ ld b, $0
+ ld a, $5
+ call AddNTimes
+ ld a, [hli]
+ ld [YCoord], a
+ ld a, [hli]
+ ld [XCoord], a
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_24b3
+ call Function24ba
+
+.asm_24b3
+ ld a, $41
+ ld hl, $486d
+ rst FarCall
+ ret
+; 24ba
+
+Function24ba: ; 24ba
+ ld a, [$d149]
+ ld [$dcac], a
+ ld a, [$d14a]
+ ld [BackupMapGroup], a
+ ld a, [$d14b]
+ ld [BackupMapNumber], a
+ ret
+; 24cd
+
+Function24cd: ; 24cd
+ ld hl, OverworldMap
+ ld bc, $0514
+ ld a, $0
+ call ByteFill
+ call Function24e4
+ call FillMapConnections
+ ld a, $1
+ call Function263b
+ ret
+; 24e4
+
+
+
+Function24e4: ; 24e4
+ ld a, [hROMBank]
+ push af
+ ld hl, OverworldMap
+ ld a, [$d19f]
+ ld [hConnectedMapWidth], a
+ add $6
+ ld [hConnectionStripLength], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld c, $3
+ add hl, bc
+ ld a, [$d1a0]
+ rst Bankswitch
+
+ ld a, [$d1a1]
+ ld e, a
+ ld a, [$d1a2]
+ ld d, a
+ ld a, [$d19e]
+ ld b, a
+.asm_250c
+ push hl
+ ld a, [hConnectedMapWidth]
+ ld c, a
+.asm_2510
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_2510
+ pop hl
+ ld a, [hConnectionStripLength]
+ add l
+ ld l, a
+ jr nc, .asm_251e
+ inc h
+
+.asm_251e
+ dec b
+ jr nz, .asm_250c
+ pop af
+ rst Bankswitch
+
+ ret
+; 2524
+
+
+
+FillMapConnections: ; 2524
+
+; North
+ ld a, [NorthConnectedMapGroup]
+ cp $ff
+ jr z, .South
+ ld b, a
+ ld a, [NorthConnectedMapNumber]
+ ld c, a
+ call GetAnyMapBlockdataBank
+
+ ld a, [NorthConnectionStripPointer]
+ ld l, a
+ ld a, [NorthConnectionStripPointer + 1]
+ ld h, a
+ ld a, [NorthConnectionStripLocation]
+ ld e, a
+ ld a, [NorthConnectionStripLocation + 1]
+ ld d, a
+ ld a, [NorthConnectionStripLength]
+ ld [hConnectionStripLength], a
+ ld a, [NorthConnectedMapWidth]
+ ld [hConnectedMapWidth], a
+ call FillNorthConnectionStrip
+
+.South
+ ld a, [SouthConnectedMapGroup]
+ cp $ff
+ jr z, .West
+ ld b, a
+ ld a, [SouthConnectedMapNumber]
+ ld c, a
+ call GetAnyMapBlockdataBank
+
+ ld a, [SouthConnectionStripPointer]
+ ld l, a
+ ld a, [SouthConnectionStripPointer + 1]
+ ld h, a
+ ld a, [SouthConnectionStripLocation]
+ ld e, a
+ ld a, [SouthConnectionStripLocation + 1]
+ ld d, a
+ ld a, [SouthConnectionStripLength]
+ ld [hConnectionStripLength], a
+ ld a, [SouthConnectedMapWidth]
+ ld [hConnectedMapWidth], a
+ call FillSouthConnectionStrip
+
+.West
+ ld a, [WestConnectedMapGroup]
+ cp $ff
+ jr z, .East
+ ld b, a
+ ld a, [WestConnectedMapNumber]
+ ld c, a
+ call GetAnyMapBlockdataBank
+
+ ld a, [WestConnectionStripPointer]
+ ld l, a
+ ld a, [WestConnectionStripPointer + 1]
+ ld h, a
+ ld a, [WestConnectionStripLocation]
+ ld e, a
+ ld a, [WestConnectionStripLocation + 1]
+ ld d, a
+ ld a, [WestConnectionStripLength]
+ ld b, a
+ ld a, [WestConnectedMapWidth]
+ ld [hConnectionStripLength], a
+ call FillWestConnectionStrip
+
+.East
+ ld a, [EastConnectedMapGroup]
+ cp $ff
+ jr z, .Done
+ ld b, a
+ ld a, [EastConnectedMapNumber]
+ ld c, a
+ call GetAnyMapBlockdataBank
+
+ ld a, [EastConnectionStripPointer]
+ ld l, a
+ ld a, [EastConnectionStripPointer + 1]
+ ld h, a
+ ld a, [EastConnectionStripLocation]
+ ld e, a
+ ld a, [EastConnectionStripLocation + 1]
+ ld d, a
+ ld a, [EastConnectionStripLength]
+ ld b, a
+ ld a, [EastConnectedMapWidth]
+ ld [hConnectionStripLength], a
+ call FillEastConnectionStrip
+
+.Done
+ ret
+; 25d3
+
+
+FillNorthConnectionStrip:
+FillSouthConnectionStrip: ; 25d3
+
+ ld c, 3
+.y
+ push de
+
+ push hl
+ ld a, [hConnectionStripLength]
+ ld b, a
+.x
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .x
+ pop hl
+
+ ld a, [hConnectedMapWidth]
+ ld e, a
+ ld d, 0
+ add hl, de
+ pop de
+
+ ld a, [$d19f]
+ add 6
+ add e
+ ld e, a
+ jr nc, .asm_25f2
+ inc d
+.asm_25f2
+ dec c
+ jr nz, .y
+ ret
+; 25f6
+
+
+FillWestConnectionStrip:
+FillEastConnectionStrip: ; 25f6
+
+.asm_25f6
+ ld a, [$d19f]
+ add 6
+ ld [hConnectedMapWidth], a
+
+ push de
+
+ push hl
+ ld a, [hli]
+ 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, [hConnectionStripLength]
+ ld e, a
+ ld d, 0
+ add hl, de
+ pop de
+
+ ld a, [hConnectedMapWidth]
+ add e
+ ld e, a
+ jr nc, .asm_2617
+ inc d
+.asm_2617
+ dec b
+ jr nz, .asm_25f6
+ ret
+; 261b
+
+Function261b: ; 261b
+ ld [$d432], a
+ ret
+; 261f
+
+
+CallScript: ; 261f
+; Call a script at a:hl.
+
+ ld [ScriptBank], a
+ ld a, l
+ ld [ScriptPos], a
+ ld a, h
+ ld [ScriptPos + 1], a
+
+ ld a, $ff
+ ld [ScriptRunning], a
+
+ scf
+ ret
+; 2631
+
+Function2631: ; 2631
+ ld a, [ScriptRunning]
+ and a
+ ret nz
+ call GetMapEventBank
+ jr CallScript
+; 263b
+
+Function263b: ; 263b
+ ld b, a
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function2653
+ jr nc, .done
+
+ call GetMapEventBank
+ ld b, a
+ ld d, h
+ ld e, l
+ call Function2674
+
+.done
+ pop af
+ rst Bankswitch
+ ret
+; 2653
+
+Function2653: ; 2653
+ ld a, [$dc0a]
+ ld c, a
+ and a
+ ret z
+ ld hl, $dc0b
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ or h
+ ret z
+ ld de, $0003
+.asm_2664
+ ld a, [hl]
+ cp b
+ jr z, .asm_266e
+ add hl, de
+ dec c
+ jr nz, .asm_2664
+ xor a
+ ret
+
+.asm_266e
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ scf
+ ret
+; 2674
+
+Function2674: ; 2674
+ callba Unknown_0x974f3
+ ld a, [ScriptMode]
+ push af
+ ld hl, ScriptFlags
+ ld a, [hl]
+ push af
+ set 1, [hl]
+ callba Function96c56
+ callba ScriptEvents
+ pop af
+ ld [ScriptFlags], a
+ pop af
+ ld [ScriptMode], a
+ ret
+; 269a
+
+Function269a: ; 269a
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
+
+ push hl
+ call SpeechTextBox
+ call Function2e31
+ ld a, 1
+ ld [hOAMUpdate], a
+ call Function321c
+ pop hl
+ call PrintTextBoxText
+ xor a
+ ld [hOAMUpdate], a
+ pop af
+ rst Bankswitch
+
+ ret
+; 26b7
+
+Function26b7: ; 26b7
+; Call a:de.
+
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+
+ call .de
+
+ pop af
+ rst Bankswitch
+ ret
+
+.de
+ push de
+ ret
+; 26c7
+
+Function26c7: ; 26c7
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
+
+ ld a, c
+ call Function19e9
+
+ pop hl
+ ld a, h
+ rst Bankswitch
+ ret
+; 26d4
+
+
+GetScriptByte: ; 0x26d4
+; Return byte at ScriptBank:ScriptPos in a.
+
+ push hl
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, [ScriptBank]
+ rst Bankswitch
+
+ ld hl, ScriptPos
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+
+ ld a, [bc]
+
+ inc bc
+ ld [hl], b
+ dec hl
+ ld [hl], c
+
+ ld b, a
+ pop af
+ rst Bankswitch
+ ld a, b
+ pop bc
+ pop hl
+ ret
+; 0x26ef
+
+
+ObjectEvent: ; 0x26ef
+ jumptextfaceplayer ObjectEventText
+; 0x26f2
+
+ObjectEventText:
+ TX_FAR _ObjectEventText
+ db "@"
+; 0x26f7
+
+
+BGEvent: ; 26f7
+ jumptext BGEventText
+; 26fa
+
+BGEventText: ; 26fa
+ text_jump UnknownText_0x1c46fc, BANK(UnknownText_0x1c46fc)
+ db "@"
+; 26ff
+
+
+CoordinatesEvent: ; 26ff
+ jumptext CoordinatesEventText
+; 2702
+
+CoordinatesEventText: ; 2702
+ text_jump UnknownText_0x1c4706, BANK(UnknownText_0x1c4706)
+ db "@"
+; 2707
+
+
+Function2707: ; 2707
+ ld a, [hConnectionStripLength]
+ ld e, a
+ ld d, $0
+ ld hl, $d81e
+ add hl, de
+ ld a, [hl]
+ ret
+; 2712
+
+Function2712: ; 2712
+ ld a, [hConnectionStripLength]
+ ld e, a
+ ld d, $0
+ ld hl, $d81e
+ add hl, de
+ ld [hl], $ff
+ ret
+; 271e
+
+Function271e: ; 271e
+ ld a, [hConnectionStripLength]
+ ld e, a
+ ld d, $0
+ ld hl, $d81e
+ add hl, de
+ ld [hl], $0
+ ret
+; 272a
+
+
+Function272a: ; 272a
+ ld hl, TileMap
+ ld de, BGMapBuffer
+ call Function27b7
+ ld c, $28
+ call Functiondbd
+ ld a, [$d152]
+ ld e, a
+ ld a, [$d153]
+ ld d, a
+ call Function27d3
+ ld a, $1
+ ld [hBGMapUpdate], a
+ ret
+; 2748
+
+Function2748: ; 2748
+ ld hl, $c5e0
+ ld de, BGMapBuffer
+ call Function27b7
+ ld c, $28
+ call Functiondbd
+ ld a, [$d152]
+ ld l, a
+ ld a, [$d153]
+ ld h, a
+ ld bc, $0200
+ add hl, bc
+ ld a, h
+ and $3
+ or $98
+ ld e, l
+ ld d, a
+ call Function27d3
+ ld a, $1
+ ld [hBGMapUpdate], a
+ ret
+; 2771
+
+Function2771: ; 2771
+ ld hl, TileMap
+ ld de, BGMapBuffer
+ call Function27c0
+ ld c, $24
+ call Functiondbd
+ ld a, [$d152]
+ ld e, a
+ ld a, [$d153]
+ ld d, a
+ call Function27f8
+ ld a, $1
+ ld [hBGMapUpdate], a
+ ret
+; 278f
+
+Function278f: ; 278f
+ ld hl, $c4b2
+ ld de, BGMapBuffer
+ call Function27c0
+ ld c, $24
+ call Functiondbd
+ ld a, [$d152]
+ ld e, a
+ and $e0
+ ld b, a
+ ld a, e
+ add $12
+ and $1f
+ or b
+ ld e, a
+ ld a, [$d153]
+ ld d, a
+ call Function27f8
+ ld a, $1
+ ld [hBGMapUpdate], a
+ ret
+; 27b7
+
+Function27b7: ; 27b7
+ ld c, $28
+.asm_27b9
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_27b9
+ ret
+; 27c0
+
+Function27c0: ; 27c0
+ ld c, $12
+.asm_27c2
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, $13
+ add l
+ ld l, a
+ jr nc, .asm_27cf
+ inc h
+
+.asm_27cf
+ dec c
+ jr nz, .asm_27c2
+ ret
+; 27d3
+
+Function27d3: ; 27d3
+ ld hl, BGMapBufferPtrs
+ push de
+ call .asm_27df
+ pop de
+ ld a, $20
+ add e
+ ld e, a
+
+.asm_27df
+ ld c, $a
+.asm_27e1
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, e
+ inc a
+ inc a
+ and $1f
+ ld b, a
+ ld a, e
+ and $e0
+ or b
+ ld e, a
+ dec c
+ jr nz, .asm_27e1
+ ld a, $14
+ ld [$ffdc], a
+ ret
+; 27f8
+
+Function27f8: ; 27f8
+ ld hl, BGMapBufferPtrs
+ ld c, $12
+.asm_27fd
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, $20
+ add e
+ ld e, a
+ jr nc, .asm_280e
+ inc d
+ ld a, d
+ and $3
+ or $98
+ ld d, a
+
+.asm_280e
+ dec c
+ jr nz, .asm_27fd
+ ld a, $12
+ ld [$ffdc], a
+ ret
+; 2816
+
+Function2816: ; 2816
+ ld hl, BGMapBuffer
+ ld bc, $0078
+ xor a
+ call ByteFill
+ ret
+; 2821
+
+Function2821: ; 2821
+ ld hl, TilesetAddress
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [TilesetBank]
+ ld e, a
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, e
+ ld de, $d000
+ call FarDecompress
+ ld hl, $d000
+ ld de, VTiles2
+ ld bc, $0600
+ call CopyBytes
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, $d600
+ ld de, VTiles2
+ ld bc, $0600
+ call CopyBytes
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ ld a, [$d199]
+ cp $1
+ jr z, .asm_286f
+ cp $2
+ jr z, .asm_286f
+ cp $4
+ jr z, .asm_286f
+ jr .asm_2875
+
+.asm_286f
+ ld a, $7
+ ld hl, $4000
+ rst FarCall
+
+.asm_2875
+ xor a
+ ld [hTileAnimFrame], a
+ ret
+; 2879
+
+Function2879: ; 2879
+ ld hl, $d194
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $dcb9
+ ld c, $5
+ ld b, $6
+.asm_2886
+ push bc
+ push hl
+.asm_2888
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_2888
+ pop hl
+ ld a, [$d19f]
+ add $6
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_2886
+ ret
+; 289d
+
+Function289d: ; 289d
+ ld hl, $d194
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $dcb9
+ ld a, [$d19f]
+ add $6
+ ld [hConnectionStripLength], a
+ ld a, [$d151]
+ and a
+ jr z, .asm_28cb
+ cp $1
+ jr z, .asm_28c0
+ cp $2
+ jr z, .asm_28d4
+ cp $3
+ jr z, .asm_28da
+ ret
+
+.asm_28c0
+ ld de, $dcbf
+ ld a, [hConnectionStripLength]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ jr .asm_28ce
+
+.asm_28cb
+ ld de, $dcb9
+
+.asm_28ce
+ ld b, $6
+ ld c, $4
+ jr .asm_28f7
+
+.asm_28d4
+ ld de, $dcba
+ inc hl
+ jr .asm_28dd
+
+.asm_28da
+ ld de, $dcb9
+
+.asm_28dd
+ ld b, $5
+ ld c, $5
+ jr .asm_28f7
+
+ ld hl, $d194
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d19f]
+ add $6
+ ld [hConnectionStripLength], a
+ ld de, $dcb9
+ ld b, $6
+ ld c, $5
+
+.asm_28f7
+ push bc
+ push hl
+ push de
+.asm_28fa
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_28fa
+ pop de
+ ld a, e
+ add $6
+ ld e, a
+ jr nc, .asm_2908
+ inc d
+
+.asm_2908
+ pop hl
+ ld a, [hConnectionStripLength]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_28f7
+ ret
+; 2914
+
+Function2914: ; 2914
+ xor a
+ ld [TilePermissions], a
+ call Function296c
+ call Function294d
+ ld a, [MapX]
+ ld d, a
+ ld a, [MapY]
+ ld e, a
+ call Function2a3c
+ ld [StandingTile], a
+ call Function29ff
+ ret nz
+ ld a, [StandingTile]
+ and 7
+ ld hl, .data_2945
+ add l
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+ ld a, [hl]
+ ld hl, TilePermissions
+ or [hl]
+ ld [hl], a
+ ret
+; 2945
+
+.data_2945 ; 2945
+ db 1, 2, 4, 8, 9, 10, 5, 6
+; 294d
+
+Function294d: ; 294d
+ ld a, [MapX]
+ ld d, a
+ ld a, [MapY]
+ ld e, a
+ push de
+ inc e
+ call Function2a3c
+ ld [TileDown], a
+ call Function298b
+ pop de
+ dec e
+ call Function2a3c
+ ld [TileUp], a
+ call Function29a8
+ ret
+; 296c
+
+Function296c: ; 296c
+ ld a, [MapX]
+ ld d, a
+ ld a, [MapY]
+ ld e, a
+ push de
+ dec d
+ call Function2a3c
+ ld [TileLeft], a
+ call Function29e2
+ pop de
+ inc d
+ call Function2a3c
+ ld [TileRight], a
+ call Function29c5
+ ret
+; 298b
+
+Function298b: ; 298b
+ call Function29ff
+ ret nz
+ ld a, [TileDown]
+ and $7
+ cp $2
+ jr z, .asm_299f
+ cp $6
+ jr z, .asm_299f
+ cp $7
+ ret nz
+
+.asm_299f
+ ld a, [TilePermissions]
+ or $8
+ ld [TilePermissions], a
+ ret
+; 29a8
+
+Function29a8: ; 29a8
+ call Function29ff
+ ret nz
+ ld a, [TileUp]
+ and $7
+ cp $3
+ jr z, .asm_29bc
+ cp $4
+ jr z, .asm_29bc
+ cp $5
+ ret nz
+
+.asm_29bc
+ ld a, [TilePermissions]
+ or $4
+ ld [TilePermissions], a
+ ret
+; 29c5
+
+Function29c5: ; 29c5
+ call Function29ff
+ ret nz
+ ld a, [TileRight]
+ and $7
+ cp $1
+ jr z, .asm_29d9
+ cp $5
+ jr z, .asm_29d9
+ cp $7
+ ret nz
+
+.asm_29d9
+ ld a, [TilePermissions]
+ or $1
+ ld [TilePermissions], a
+ ret
+; 29e2
+
+Function29e2: ; 29e2
+ call Function29ff
+ ret nz
+ ld a, [TileLeft]
+ and $7
+ cp $0
+ jr z, .asm_29f6
+ cp $4
+ jr z, .asm_29f6
+ cp $6
+ ret nz
+
+.asm_29f6
+ ld a, [TilePermissions]
+ or $2
+ ld [TilePermissions], a
+ ret
+; 29ff
+
+Function29ff: ; 29ff
+ and $f0
+ cp $b0
+ ret z
+ cp $c0
+ ret
+; 2a07
+
+
+GetFacingTileCoord: ; 2a07
+; Return map coordinates in (d, e) and tile id in a
+; of the tile the player is facing.
+
+ ld a, [PlayerDirection]
+ and %1100
+ srl a
+ srl a
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, .Directions
+ add hl, de
+
+ ld d, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ld a, [MapX]
+ add d
+ ld d, a
+ ld a, [MapY]
+ add e
+ ld e, a
+ ld a, [hl]
+ ret
+
+.Directions
+ ; x, y
+ db 0, 1
+ dw TileDown
+ db 0, -1
+ dw TileUp
+ db -1, 0
+ dw TileLeft
+ db 1, 0
+ dw TileRight
+; 2a3c
+
+
+Function2a3c: ; 2a3c
+ call Function2a66
+ ld a, [hl]
+ and a
+ jr z, .asm_2a63
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld a, [TilesetCollisionAddress]
+ ld c, a
+ ld a, [$d1e1]
+ ld b, a
+ add hl, bc
+ rr d
+ jr nc, .asm_2a56
+ inc hl
+
+.asm_2a56
+ rr e
+ jr nc, .asm_2a5c
+ inc hl
+ inc hl
+
+.asm_2a5c
+ ld a, [TilesetCollisionBank]
+ call GetFarByte
+ ret
+
+.asm_2a63
+ ld a, $ff
+ ret
+; 2a66
+
+Function2a66: ; 2a66
+ ld a, [$d19f]
+ add $6
+ ld c, a
+ ld b, $0
+ ld hl, $c801
+ add hl, bc
+ ld a, e
+ srl a
+ jr z, .asm_2a84
+ and a
+.asm_2a78
+ srl a
+ jr nc, .asm_2a7d
+ add hl, bc
+
+.asm_2a7d
+ sla c
+ rl b
+ and a
+ jr nz, .asm_2a78
+
+.asm_2a84
+ ld c, d
+ srl c
+ ld b, $0
+ add hl, bc
+ ret
+; 2a8b
+
+
+CheckFacingSign: ; 2a8b
+ call GetFacingTileCoord
+ ld b, a
+ ld a, d
+ sub 4
+ ld d, a
+ ld a, e
+ sub 4
+ ld e, a
+ ld a, [$dc01]
+ and a
+ ret z
+ ld c, a
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function2aaa
+ pop hl
+ ld a, h
+ rst Bankswitch
+ ret
+; 2aaa
+
+Function2aaa: ; 2aaa
+ ld hl, $dc02
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.asm_2ab0
+ push hl
+ ld a, [hli]
+ cp e
+ jr nz, .asm_2abb
+ ld a, [hli]
+ cp d
+ jr nz, .asm_2abb
+ jr .asm_2ac8
+
+.asm_2abb
+ pop hl
+ ld a, 5
+ add l
+ ld l, a
+ jr nc, .asm_2ac3
+ inc h
+
+.asm_2ac3
+ dec c
+ jr nz, .asm_2ab0
+ xor a
+ ret
+
+.asm_2ac8
+ pop hl
+ ld de, EngineBuffer1
+ ld bc, 5
+ call CopyBytes
+ scf
+ ret
+; 2ad4
+
+Function2ad4: ; 2ad4
+ ld a, [$dbfe]
+ and a
+ ret z
+ ld c, a
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function2ae7
+ pop hl
+ ld a, h
+ rst Bankswitch
+ ret
+; 2ae7
+
+Function2ae7: ; 2ae7
+ ld hl, $dbff
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function211b
+ ld b, a
+ ld a, [MapX]
+ sub $4
+ ld d, a
+ ld a, [MapY]
+ sub $4
+ ld e, a
+.asm_2afd
+ push hl
+ ld a, [hli]
+ cp b
+ jr z, .asm_2b06
+ cp $ff
+ jr nz, .asm_2b10
+
+.asm_2b06
+ ld a, [hli]
+ cp e
+ jr nz, .asm_2b10
+ ld a, [hli]
+ cp d
+ jr nz, .asm_2b10
+ jr .asm_2b1d
+
+.asm_2b10
+ pop hl
+ ld a, $8
+ add l
+ ld l, a
+ jr nc, .asm_2b18
+ inc h
+
+.asm_2b18
+ dec c
+ jr nz, .asm_2afd
+ xor a
+ ret
+
+.asm_2b1d
+ pop hl
+ ld de, EngineBuffer1
+ ld bc, $0008
+ call CopyBytes
+ scf
+ ret
+; 2b29
+
+
+FadeToMenu: ; 2b29
+ xor a
+ ld [hBGMapMode], a
+ call Function1d6e
+ ld a, $23
+ ld hl, $4084
+ rst FarCall
+ call ClearSprites
+ call Function2ed3
+ ret
+; 2b3c
+
+
+Function2b3c: ; 2b3c
+ call WhiteBGMap
+ call Function2bae
+ call Function1ad2
+ call Function1d7d
+ call Functiond90
+ jr Function2b5c
+; 2b4d
+
+Function2b4d: ; 2b4d
+ call WhiteBGMap
+ call Function1d7d
+ call Function2bae
+ call Function1ad2
+ call Functiond90
+; 2b5c
+
+Function2b5c: ; 2b5c
+ ld b, $9
+ call GetSGBLayout
+ ld a, $12
+ ld hl, $5409
+ rst FarCall
+ call Function3200
+ ld a, $23
+ ld hl, $4079
+ rst FarCall
+ call Function2ee4
+ ret
+; 2b74
+
+
+Function2b74: ; 0x2b74
+ push af
+ ld a, $1
+ ld [$c2ce], a
+ call WhiteBGMap
+ call ClearSprites
+ call Function2bae
+ ld hl, $c590 ; tile 0, 12
+ ld bc, $0412
+ call TextBox
+ ld hl, VramState
+ set 0, [hl]
+ call Function1ad2
+ call Function3200
+ ld b, $9
+ call GetSGBLayout
+ callba Function49409
+ call UpdateTimePals
+ call DelayFrame
+ ld a, $1
+ ld [$ffde], a
+ pop af
+ ret
+; 0x2bae
+
+Function2bae: ; 2bae
+ call DisableLCD
+ call ClearSprites
+ ld a, $5
+ ld hl, $4168
+ rst FarCall
+ call Functione51
+ call Functione5f
+ ld a, [hROMBank]
+ push af
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call Function2c24
+ ld a, $23
+ ld hl, $4001
+ rst FarCall
+ call Function2173
+ call Function2821
+ ld a, $9
+ call Function3cb4
+ pop af
+ rst Bankswitch
+
+ call EnableLCD
+ ret
+; 2be5
+
+
+GetMapHeaderPointer: ; 2be5
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+; 2bed
+
+GetAnyMapHeaderPointer: ; 0x2bed
+; Prior to calling this function, you must have switched banks so that
+; MapGroupPointers is visible.
+
+; inputs:
+; b = map group, c = map number
+; XXX de = ???
+
+; outputs:
+; hl points to the map header
+ push bc ; save map number for later
+
+ ; get pointer to map group
+ dec b
+ ld c, b
+ ld b, $0
+ ld hl, MapGroupPointers
+ add hl, bc
+ add hl, bc
+
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop bc ; restore map number
+
+ ; find the cth map header
+ dec c
+ ld b, $0
+ ld a, OlivineGym_MapHeader - OlivinePokeCenter1F_MapHeader
+ call AddNTimes
+ ret
+; 0x2c04
+
+GetMapHeaderMember: ; 0x2c04
+; Extract data from the current map's header.
+
+; inputs:
+; de = offset of desired data within the mapheader
+
+; outputs:
+; bc = data from the current map's header
+; (e.g., de = $0003 would return a pointer to the secondary map header)
+
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ ; fallthrough
+
+GetAnyMapHeaderMember: ; 0x2c0c
+ ; bankswitch
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(MapGroupPointers)
+ rst Bankswitch
+
+ call GetAnyMapHeaderPointer
+ add hl, de
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+
+ ; bankswitch back
+ pop af
+ rst Bankswitch
+ ret
+; 0x2c1c
+
+
+Function2c1c: ; 2c1c
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+; 2c24
+
+Function2c24: ; 2c24
+ call Function2c31
+ rst Bankswitch
+ ret
+; 2c29
+
+
+Function2c29: ; 2c29
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+; 2c31
+
+Function2c31: ; 2c31
+ push hl
+ push de
+ ld de, $0000
+ call GetAnyMapHeaderMember
+ ld a, c
+ pop de
+ pop hl
+ ret
+; 2c3d
+
+Function2c3d: ; 2c3d
+ ld a, [hROMBank]
+ push af
+ ld a, $25
+ rst Bankswitch
+ call GetMapHeaderPointer
+ ld de, $d198
+ ld bc, $0005
+ call CopyBytes
+ pop af
+ rst Bankswitch
+ ret
+; 2c52
+
+Function2c52: ; 2c52
+ ld a, [MapEventBank]
+ rst Bankswitch
+ ret
+; 2c57
+
+
+GetMapEventBank: ; 2c57
+ ld a, [MapEventBank]
+ ret
+; 2c5b
+
+GetAnyMapBlockdataBank: ; 2c5b
+; Return the blockdata bank for group b map c.
+ push hl
+ push de
+ push bc
+
+ push bc
+ ld de, 3 ; second map header pointer
+ call GetAnyMapHeaderMember
+ ld l, c
+ ld h, b
+ pop bc
+
+ push hl
+ ld de, 0 ; second map header bank
+ call GetAnyMapHeaderMember
+ pop hl
+
+ ld de, 3 ; blockdata bank
+ add hl, de
+ ld a, c
+ call GetFarByte
+ rst Bankswitch
+
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2c7d
+
+GetSecondaryMapHeaderPointer: ; 0x2c7d
+; returns the current map's secondary map header pointer in hl.
+ push bc
+ push de
+ ld de, $0003 ; secondary map header pointer (offset within header)
+ call GetMapHeaderMember
+ ld l, c
+ ld h, b
+ pop de
+ pop bc
+ ret
+; 2c8a
+
+GetMapPermission: ; 2c8a
+ push hl
+ push de
+ push bc
+ ld de, 2
+ call GetMapHeaderMember
+ ld a, c
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2c98
+
+Function2c98: ; 2c98
+ ret
+; 2c99
+
+Function2c99: ; 2c99
+ push hl
+ push de
+ push bc
+ ld de, $0002
+ call GetAnyMapHeaderMember
+ ld a, c
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2ca7
+
+Function2ca7: ; 2ca7
+ ld de, $0001
+ call GetAnyMapHeaderMember
+ ld a, c
+ ret
+; 2caf
+
+GetWorldMapLocation: ; 0x2caf
+; given a map group/id in bc, return its location on the Pokégear map.
+ push hl
+ push de
+ push bc
+ ld de, 5
+ call GetAnyMapHeaderMember
+ ld a, c
+ pop bc
+ pop de
+ pop hl
+ ret
+; 0x2cbd
+
+Function2cbd: ; 2cbd
+ push hl
+ push bc
+ ld de, $0006
+ call GetMapHeaderMember
+ ld a, c
+ cp $64
+ jr z, .asm_2cee
+ bit 7, c
+ jr nz, .asm_2cda
+ ld a, $22
+ ld hl, $7342
+ rst FarCall
+ ld e, c
+ ld d, $0
+.asm_2cd7
+ pop bc
+ pop hl
+ ret
+
+.asm_2cda
+ ld a, [StatusFlags2]
+ bit 0, a
+ jr z, .asm_2ce6
+ ld de, $0056
+ jr .asm_2cd7
+
+.asm_2ce6
+ ld a, c
+ and $7f
+ ld e, a
+ ld d, $0
+ jr .asm_2cd7
+
+.asm_2cee
+ ld a, [StatusFlags2]
+ bit 7, a
+ jr z, .asm_2cfa
+ ld de, $0048
+ jr .asm_2cd7
+
+.asm_2cfa
+ ld de, $0026
+ jr .asm_2cd7
+; 2cff
+
+Function2cff: ; 2cff
+ call Function2d0d
+ and $f
+ ret
+; 2d05
+
+Function2d05: ; 2d05
+ call Function2d0d
+ and $f0
+ swap a
+ ret
+; 2d0d
+
+Function2d0d: ; 2d0d
+ push hl
+ push bc
+ ld de, $0007
+ call GetMapHeaderMember
+ ld a, c
+ pop bc
+ pop hl
+ ret
+; 2d19
+
+Function2d19: ; 2d19
+ push de
+ push hl
+ push bc
+ ld de, $0008
+ call GetMapHeaderMember
+ ld a, c
+ pop bc
+ pop hl
+ pop de
+ ret
+; 2d27
+
+Function2d27: ; 2d27
+ push hl
+ push bc
+ ld hl, $5596
+ ld bc, $000f
+ ld a, [$d199]
+ call AddNTimes
+ ld de, TilesetBank
+ ld bc, $000f
+ ld a, $13
+ call FarCopyBytes
+ pop bc
+ pop hl
+ ret
+; 2d43
+
diff --git a/home/map_objects.asm b/home/map_objects.asm
new file mode 100644
index 000000000..3ebc1b597
--- /dev/null
+++ b/home/map_objects.asm
@@ -0,0 +1,683 @@
+; Functions handling map objects.
+
+
+GetSpritePalette: ; 17ff
+ push hl
+ push de
+ push bc
+ ld c, a
+ callba _GetSpritePalette
+ ld a, c
+ pop bc
+ pop de
+ pop hl
+ ret
+; 180e
+
+
+Function180e: ; 180e
+ push hl
+ push bc
+ ld hl, $d156
+ ld c, $1f
+ ld b, a
+ ld a, [hConnectionStripLength]
+ cp $0
+ jr z, .asm_182b
+ ld a, b
+.asm_181d
+ cp [hl]
+ jr z, .asm_1830
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_181d
+ ld a, [$d155]
+ scf
+ jr .asm_1833
+
+.asm_182b
+ ld a, [$d155]
+ jr .asm_1833
+
+.asm_1830
+ inc hl
+ xor a
+ ld a, [hl]
+
+.asm_1833
+ pop bc
+ pop hl
+ ret
+; 1836
+
+Function1836: ; 1836
+ push de
+ push hl
+
+ ld b, a
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function142a7)
+ rst Bankswitch
+
+ ld a, b
+ call Function142a7
+ ld c, a
+
+ pop de
+ ld a, d
+ rst Bankswitch
+
+ pop hl
+ pop de
+ ret
+; 184a
+
+
+
+Function184a: ; 184a
+ ld a, [StandingTile]
+ call GetTileCollision
+ ld b, a
+ ret
+; 1852
+
+Function1852: ; 1852
+ ld a, [StandingTile]
+ call GetTileCollision
+ sub 1
+ ret z
+ and a
+ ret
+; 185d
+
+
+GetTileCollision: ; 185d
+; Get the collision type of tile a.
+
+ push de
+ push hl
+
+ ld hl, TileCollisionTable
+ ld e, a
+ ld d, 0
+ add hl, de
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(TileCollisionTable)
+ rst Bankswitch
+ ld e, [hl]
+ pop af
+ rst Bankswitch
+
+ ld a, e
+ and $f ; lo nybble only
+
+ pop hl
+ pop de
+ ret
+; 1875
+
+
+Function1875: ; 1875
+ ld d, a
+ and $f0
+ cp $10
+ jr z, .asm_1882
+ cp $20
+ jr z, .asm_1888
+ scf
+ ret
+
+.asm_1882
+ ld a, d
+ and 7
+ ret z
+ scf
+ ret
+
+.asm_1888
+ ld a, d
+ and 7
+ ret z
+ scf
+ ret
+; 188e
+
+Function188e: ; 188e
+ cp $14
+ ret z
+ cp $1c
+ ret
+; 1894
+
+CheckCutTreeTile: ; 1894
+ cp $12
+ ret z
+ cp $1a
+ ret
+; 189a
+
+CheckHeadbuttTreeTile: ; 189a
+ cp $15
+ ret z
+ cp $1d
+ ret
+; 18a0
+
+CheckCounterTile: ; 18a0
+ cp $90
+ ret z
+ cp $98
+ ret
+; 18a6
+
+CheckPitTile: ; 18a6
+ cp $60
+ ret z
+ cp $68
+ ret
+; 18ac
+
+CheckIceTile: ; 18ac
+ cp $23
+ ret z
+ cp $2b
+ ret z
+ scf
+ ret
+; 18b4
+
+CheckWhirlpoolTile: ; 18b4
+ nop
+ cp $24
+ ret z
+ cp $2c
+ ret z
+ scf
+ ret
+; 18bd
+
+CheckWaterfallTile: ; 18bd
+ cp $33
+ ret z
+ cp $3b
+ ret
+; 18c3
+
+CheckStandingOnEntrance: ; 18c3
+ ld a, [StandingTile]
+ cp $71 ; door
+ ret z
+ cp $79
+ ret z
+ cp $7a ; stairs
+ ret z
+ cp $7b ; cave
+ ret
+; 18d2
+
+
+GetMapObject: ; 18d2
+; Return the location of map object a in bc.
+ ld hl, MapObjects
+ ld bc, $10
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ret
+; 18de
+
+
+Function18de: ; 18de
+ ld [hConnectionStripLength], a
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_18f3
+ ld [hConnectedMapWidth], a
+ call Function1ae5
+ and a
+ ret
+
+.asm_18f3
+ scf
+ ret
+; 18f5
+
+Function18f5: ; 18f5
+ ld hl, $0006
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_1921
+ ld hl, $0007
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_191c
+ ld hl, .data_191e
+ ld a, [TimeOfDay]
+ add l
+ ld l, a
+ jr nc, .asm_1912
+ inc h
+
+.asm_1912
+ ld a, [hl]
+ ld hl, $0007
+ add hl, bc
+ and [hl]
+ jr nz, .asm_191c
+ scf
+ ret
+
+.asm_191c
+ and a
+ ret
+
+.data_191e
+ db $1
+ db $2
+ db $4
+
+.asm_1921
+ ld hl, $0006
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0007
+ add hl, bc
+ ld e, [hl]
+ ld hl, hHours
+ ld a, d
+ cp e
+ jr z, .asm_1949
+ jr c, .asm_193f
+ ld a, [hl]
+ cp d
+ jr nc, .asm_1949
+ cp e
+ jr c, .asm_1949
+ jr z, .asm_1949
+ jr .asm_194b
+
+.asm_193f
+ ld a, e
+ cp [hl]
+ jr c, .asm_194b
+ ld a, [hl]
+ cp d
+ jr nc, .asm_1949
+ jr .asm_194b
+
+.asm_1949
+ and a
+ ret
+
+.asm_194b
+ scf
+ ret
+; 194d
+
+Function194d: ; 194d
+ ld [hConnectionStripLength], a
+ call GetMapObject
+ call $40e7
+ ret
+; 1956
+
+
+
+Function1956: ; 1956
+ ld [hConnectionStripLength], a
+ call Function271e
+ ld a, [hConnectionStripLength]
+ call GetMapObject
+ ld a, $2
+ ld hl, $40e7
+ rst FarCall
+ ret
+; 1967
+
+Function1967: ; 1967
+ ld [hConnectionStripLength], a
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [hl], $ff
+ push af
+ call Function1985
+ pop af
+ call Function1ae5
+ callba Function4357
+ ret
+; 1985
+
+Function1985: ; 1985
+ ld hl, $d4cd
+ cp [hl]
+ jr z, .asm_1990
+ ld hl, $d4ce
+ cp [hl]
+ ret nz
+
+.asm_1990
+ callba Function581f
+ ld a, $ff
+ ld [$d4cd], a
+ ld [$d4ce], a
+ ret
+; 199f
+
+Function199f: ; 199f
+ call Function1967
+ call Function2712
+ ret
+; 19a6
+
+Function19a6: ; 19a6
+ push hl
+ call GetMapObject
+ ld d, b
+ ld e, c
+ ld a, $ff
+ ld [de], a
+ inc de
+ pop hl
+ ld bc, $000f
+ call CopyBytes
+ ret
+; 19b8
+
+Function19b8: ; 19b8
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ push af
+ ld [hl], $ff
+ inc hl
+ ld bc, $000f
+ xor a
+ call ByteFill
+ pop af
+ cp $ff
+ ret z
+ cp $d
+ ret nc
+ ld b, a
+ ld a, [$d4cd]
+ cp b
+ jr nz, .asm_19de
+ ld a, $ff
+ ld [$d4cd], a
+
+.asm_19de
+ ld a, b
+ call Function1ae5
+ callba Function4357
+ ret
+; 19e9
+
+
+
+Function19e9: ; 19e9
+ ld [$c2e2], a
+ ld a, [hROMBank]
+ ld [$c2e3], a
+ ld a, l
+ ld [$c2e4], a
+ ld a, h
+ ld [$c2e5], a
+ ld a, [$c2e2]
+ call Function18de
+ ret c
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $14
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $0
+ ld hl, VramState
+ set 7, [hl]
+ and a
+ ret
+; 1a13
+
+
+
+Function1a13: ; 1a13
+ push bc
+ push de
+ ld hl, $d4d6
+ ld de, $0028
+ ld c, $d
+.asm_1a1d
+ ld a, [hl]
+ and a
+ jr z, .asm_1a28
+ add hl, de
+ dec c
+ jr nz, .asm_1a1d
+ xor a
+ jr .asm_1a2c
+
+.asm_1a28
+ ld a, $d
+ sub c
+ scf
+
+.asm_1a2c
+ pop de
+ pop bc
+ ret
+; 1a2f
+
+
+
+Function1a2f: ; 1a2f
+ ld hl, $0003
+ add hl, bc
+ ld a, [hl]
+ cp $25
+ jr c, .asm_1a39
+ xor a
+
+.asm_1a39
+ ld hl, Data4273
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hl]
+ ret
+; 1a47
+
+Function1a47: ; 1a47
+ push bc
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, Data4273 + 1
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, BANK(Data4273)
+ call GetFarByte
+ add a
+ add a
+ and $c
+ pop de
+ pop bc
+ ret
+; 1a61
+
+
+Function1a61: ; 1a61
+ ld l, a
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Data4273)
+ rst Bankswitch
+ ld a, l
+ push bc
+
+ call Function1a71
+
+ pop bc
+ pop af
+ rst Bankswitch
+
+ ret
+; 1a71
+
+Function1a71: ; 1a71
+ ld hl, $0003
+ add hl, de
+ ld [hl], a
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, Data4273 + 1
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ld b, h
+ ld c, l
+ pop de
+ ld a, [bc]
+ inc bc
+ rlca
+ rlca
+ and $c
+ ld hl, $0008
+ add hl, de
+ ld [hl], a
+ ld a, [bc]
+ inc bc
+ ld hl, $000b
+ add hl, de
+ ld [hl], a
+ ld a, [bc]
+ inc bc
+ ld hl, $0004
+ add hl, de
+ ld [hl], a
+ ld a, [bc]
+ inc bc
+ ld hl, $0005
+ add hl, de
+ ld [hl], a
+ ld a, [bc]
+ inc bc
+ ld hl, $0006
+ add hl, de
+ ld [hl], a
+ ret
+; 1aae
+
+Function1aae: ; 1aae
+ ld a, [hROMBank]
+ push af
+ ld a, [hli]
+ rst Bankswitch
+
+ ld a, [hli]
+ ld d, [hl]
+ ld hl, $001b
+ add hl, bc
+ add [hl]
+ ld e, a
+ ld a, d
+ adc $0
+ ld d, a
+ inc [hl]
+ ld a, [de]
+ ld h, a
+ pop af
+ rst Bankswitch
+
+ ld a, h
+ ret
+; 1ac6
+
+Function1ac6: ; 1ac6
+ ld hl, VramState
+ set 0, [hl]
+ ret
+; 1acc
+
+Function1acc: ; 1acc
+ ld hl, VramState
+ res 0, [hl]
+ ret
+; 1ad2
+
+
+Function1ad2: ; 1ad2
+ ld a, [VramState]
+ bit 0, a
+ ret z
+ callba Function55e0
+ callba Function5920
+ ret
+; 1ae5
+
+
+Function1ae5: ; 1ae5
+ ld bc, $0028
+ ld hl, $d4d6
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ret
+; 1af1
+
+Function1af1: ; 1af1
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret
+; 1af8
+
+Function1af8: ; 1af8
+ push af
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ and $f3
+ ld e, a
+ pop af
+ and $c
+ or e
+ ld [hl], a
+ ret
+; 1b07
+
+
+GetSpriteDirection: ; 1b07
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ and $c
+ ret
+; 1b0f
+
diff --git a/home/math.asm b/home/math.asm
new file mode 100644
index 000000000..87a00c412
--- /dev/null
+++ b/home/math.asm
@@ -0,0 +1,76 @@
+SimpleMultiply: ; 3105
+; Return a * c.
+ and a
+ ret z
+
+ push bc
+ ld b, a
+ xor a
+.loop
+ add c
+ dec b
+ jr nz, .loop
+ pop bc
+ ret
+; 3110
+
+
+SimpleDivide: ; 3110
+; Divide a by c. Return quotient b and remainder a.
+ ld b, 0
+.loop
+ inc b
+ sub c
+ jr nc, .loop
+ dec b
+ add c
+ ret
+; 3119
+
+
+Multiply: ; 3119
+; Multiply hMultiplicand (3 bytes) by hMultiplier. Result in hProduct.
+; All values are big endian.
+ push hl
+ push bc
+
+ callab _Multiply
+
+ pop bc
+ pop hl
+ ret
+; 3124
+
+
+Divide: ; 3124
+; Divide hDividend length b (max 4 bytes) by hDivisor. Result in hQuotient.
+; All values are big endian.
+ push hl
+ push de
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_Divide)
+ rst Bankswitch
+
+ call _Divide
+
+ pop af
+ rst Bankswitch
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3136
+
+
+SubtractSigned: ; 3136
+; Return a - b, sign in carry.
+ sub b
+ ret nc
+ cpl
+ add 1
+ scf
+ ret
+; 313d
+
diff --git a/home/menu.asm b/home/menu.asm
new file mode 100644
index 000000000..c761a927c
--- /dev/null
+++ b/home/menu.asm
@@ -0,0 +1,603 @@
+; Functions used in displaying and handling menus.
+
+
+LoadMenuDataHeader: ; 0x1d35
+ call Function1d3c
+ call Function1c00
+ ret
+
+Function1d3c: ; 0x1d3c
+ ld de, $cf81
+ ld bc, $0010
+ call CopyBytes
+ ld a, [hROMBank]
+ ld [$cf8a], a
+ ret
+; 0x1d4b
+
+Function1d4b: ; 1d4b
+ ld [$cf88], a
+ ret
+; 1d4f
+
+
+Function1d4f: ; 1d4f
+ push hl
+ call Function1d58
+ pop hl
+ jp PrintText
+; 1d57
+
+Function1d57: ; 1d57
+ ret
+; 1d58
+
+Function1d58: ; 1d58
+ ld hl, MenuDataHeader_0x1d5f
+ call LoadMenuDataHeader
+ ret
+; 1d5f
+
+MenuDataHeader_0x1d5f: ; 1d5f
+ db $40 ; tile backup
+ db 12, 0 ; start coords
+ db 17, 19 ; end coords
+ dw VTiles0
+ db 0 ; default option
+; 1d67
+
+Function1d67: ; 1d67
+ call Function1d4f
+ call Function1c17
+ ret
+; 1d6e
+
+Function1d6e: ; 1d6e
+ ld hl, MenuDataHeader_0x1d75
+ call LoadMenuDataHeader
+ ret
+; 1d75
+
+MenuDataHeader_0x1d75: ; 1d75
+ db $40 ; tile backup
+ db 0, 0 ; start coords
+ db 17, 19 ; end coords
+ dw $0000
+ db 1 ; default option
+; 1d7d
+
+Function1d7d: ; 1d7d
+ call Function1c07
+ ret
+; 1d81
+
+Function1d81: ; 0x1d81
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function1ad2
+ call Function1c89
+ call Function321c
+ call Function1c66
+ ld a, [$cf91]
+ bit 7, a
+ jr z, .asm_1da7 ; 0x1d98 $d
+ call Function1c10
+ call Function1bc9
+ call Function1ff8
+ bit 1, a
+ jr z, .asm_1da9 ; 0x1da5 $2
+.asm_1da7
+ scf
+ ret
+.asm_1da9
+ and a
+ ret
+; 0x1dab
+
+Function1dab: ; 1dab
+ call LoadMenuDataHeader
+ call Function1d81
+ call Function1c17
+ ld a, [$cfa9]
+ ret
+; 1db8
+
+Function1db8: ; 0x1db8
+ push hl
+ push bc
+ push af
+ ld hl, $cf86
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ inc hl
+ pop af
+ call GetNthString
+ ld d, h
+ ld e, l
+ call CopyName1
+ pop bc
+ pop hl
+ ret
+; 0x1dcf
+
+
+Function1dcf: ; 1dcf
+ ld bc, $0e07
+
+Function1dd2: ; 1dd2
+ jr Function1dd9
+
+Function1dd4: ; 1dd4
+ call LoadMenuDataHeader
+ jr Function1dfe
+
+Function1dd9: ; 1dd9
+ push bc
+ ld hl, MenuDataHeader_0x1e1d
+ call Function1d3c
+ pop bc
+ ld a, b
+ cp $e
+ jr nz, .asm_1de9
+ ld a, $e
+ ld b, a
+
+.asm_1de9
+ ld a, b
+ ld [$cf83], a
+ add $5
+ ld [$cf85], a
+ ld a, c
+ ld [$cf82], a
+ add $4
+ ld [$cf84], a
+ call Function1c00
+
+Function1dfe: ; 1dfe
+ call Function1d81
+ push af
+ ld c, $f
+ call DelayFrames
+ call Function1c17
+ pop af
+ jr c, .asm_1e16
+ ld a, [$cfa9]
+ cp $2
+ jr z, .asm_1e16
+ and a
+ ret
+
+.asm_1e16
+ ld a, $2
+ ld [$cfa9], a
+ scf
+ ret
+; 1e1d
+
+MenuDataHeader_0x1e1d: ; 1e1d
+ db $40 ; tile backup
+ db 5, 10 ; start coords
+ db 9, 15 ; end coords
+ dw MenuData2_0x1e25
+ db 1 ; default option
+; 1e25
+
+MenuData2_0x1e25: ; 1e25
+ db $c0 ; flags
+ db 2
+ db "YES@"
+ db "NO@"
+; 1e2e
+
+Function1e2e: ; 1e2e
+ call Function1e35
+ call Function1c00
+ ret
+; 1e35
+
+Function1e35: ; 1e35
+ push de
+ call Function1d3c
+ pop de
+ ld a, [$cf83]
+ ld h, a
+ ld a, [$cf85]
+ sub h
+ ld h, a
+ ld a, d
+ ld [$cf83], a
+ add h
+ ld [$cf85], a
+ ld a, [$cf82]
+ ld l, a
+ ld a, [$cf84]
+ sub l
+ ld l, a
+ ld a, e
+ ld [$cf82], a
+ add l
+ ld [$cf84], a
+ ret
+; 1e5d
+
+Function1e5d: ; 1e5d
+ call MenuFunc_1e7f
+ call MenuWriteText
+ call Function1eff
+ call Function1f23
+ call Function1bdd
+ call Function1ff8
+ ret
+; 1e70
+
+SetUpMenu: ; 1e70
+ call MenuFunc_1e7f ; ???
+ call MenuWriteText
+ call Function1eff ; set up selection pointer
+ ld hl, $cfa5
+ set 7, [hl]
+ ret
+
+MenuFunc_1e7f: ; 0x1e7f
+ call Function1c66
+ call Function1ebd
+ call Function1ea6
+ call Function1cbb
+ ret
+
+MenuWriteText: ; 0x1e8c
+ xor a
+ ld [hBGMapMode], a
+ call Function1ebd ; sort out the text
+ call Function1eda ; actually write it
+ call Function2e31
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function321c
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 0x1ea6
+
+Function1ea6: ; 1ea6
+ ld a, [$cf83]
+ ld c, a
+ ld a, [$cf85]
+ sub c
+ ld c, a
+ ld a, [$cf92]
+ add a
+ inc a
+ ld b, a
+ ld a, [$cf82]
+ add b
+ ld [$cf84], a
+ ret
+; 1ebd
+
+Function1ebd: ; 1ebd
+ ld hl, $cf93
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$cf76]
+ and a
+ jr z, .asm_1ed3
+ ld b, a
+ ld c, $ff
+.asm_1ecc
+ ld a, [hli]
+ cp c
+ jr nz, .asm_1ecc
+ dec b
+ jr nz, .asm_1ecc
+
+.asm_1ed3
+ ld d, h
+ ld e, l
+ ld a, [hl]
+ ld [$cf92], a
+ ret
+; 1eda
+
+Function1eda: ; 1eda
+ call Function1cfd
+ ld bc, $002a
+ add hl, bc
+.asm_1ee1
+ inc de
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [MenuSelection], a
+ push de
+ push hl
+ ld d, h
+ ld e, l
+ ld hl, $cf95
+ call Function1efb
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop de
+ jr .asm_1ee1
+; 1efb
+
+Function1efb: ; 1efb
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1eff
+
+Function1eff: ; 1eff
+ call Function1c10
+ ld hl, $cfa8
+ ld a, [$cf91]
+ bit 3, a
+ jr z, .asm_1f0e
+ set 3, [hl]
+
+.asm_1f0e
+ ld a, [$cf91]
+ bit 2, a
+ jr z, .asm_1f19
+ set 5, [hl]
+ set 4, [hl]
+
+.asm_1f19
+ ret
+; 1f1a
+
+
+Function1f1a: ; 1f1a
+ call Function1bd3
+ ld hl, $cfa8
+ and [hl]
+ jr Function1f2a
+; 1f23
+
+Function1f23: ; 1f23
+ xor a
+ ld [$cf73], a
+ call Function1bc9
+; 1f2a
+
+Function1f2a: ; 1f2a
+ bit 0, a
+ jr nz, .asm_1f52
+ bit 1, a
+ jr nz, .asm_1f6d
+ bit 3, a
+ jr nz, .asm_1f6d
+ bit 4, a
+ jr nz, .asm_1f44
+ bit 5, a
+ jr nz, .asm_1f4b
+ xor a
+ ld [$cf73], a
+ jr .asm_1f57
+
+.asm_1f44
+ ld a, $10
+ ld [$cf73], a
+ jr .asm_1f57
+
+.asm_1f4b
+ ld a, $20
+ ld [$cf73], a
+ jr .asm_1f57
+
+.asm_1f52
+ ld a, $1
+ ld [$cf73], a
+
+.asm_1f57
+ call Function1ebd
+ ld a, [$cfa9]
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ ld [MenuSelection], a
+ ld a, [$cfa9]
+ ld [$cf88], a
+ and a
+ ret
+
+.asm_1f6d
+ ld a, $2
+ ld [$cf73], a
+ ld a, $ff
+ ld [MenuSelection], a
+ scf
+ ret
+; 1f79
+
+Function1f79: ; 1f79
+ push de
+ ld hl, $cf97
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [MenuSelection]
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ret
+; 1f8d
+
+Function1f8d: ; 1f8d
+ push de
+ ld a, [MenuSelection]
+ call Function1fb1
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+; 1f9e
+
+Function1f9e: ; 1f9e
+ call Function1fb1
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ret
+; 1fa7
+
+Function1fa7: ; 1fa7
+ ld a, [MenuSelection]
+ call Function1fb1
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1fb1
+
+Function1fb1: ; 1fb1
+ ld e, a
+ ld d, $0
+ ld hl, $cf97
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ret
+; 1fbf
+
+Function1fbf: ; 1fbf
+ ld hl, $cf71
+ call Function1ff0
+ ld hl, $cf81
+ call Function1ff0
+ ld hl, $cf91
+ call Function1ff0
+ ld hl, $cfa1
+ call Function1ff0
+ ld a, [rSVBK]
+ push af
+ ld a, $7
+ ld [rSVBK], a
+ xor a
+ ld hl, $dfff
+ ld [hld], a
+ ld [hld], a
+ ld a, l
+ ld [$cf71], a
+ ld a, h
+ ld [$cf72], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 1ff0
+
+Function1ff0: ; 1ff0
+ ld bc, $0010
+ xor a
+ call ByteFill
+ ret
+; 1ff8
+
+Function1ff8: ; 1ff8
+ push af
+ and $3
+ jr z, .asm_2007
+ ld hl, $cf81
+ bit 3, [hl]
+ jr nz, .asm_2007
+ call PlayClickSFX
+
+.asm_2007
+ pop af
+ ret
+; 2009
+
+
+PlayClickSFX: ; 2009
+ push de
+ ld de, SFX_READ_TEXT_2
+ call StartSFX
+ pop de
+ ret
+; 0x2012
+
+Function2012: ; 2012
+ call Function1d4f
+ call Functiona46
+ call Function1c07
+ ret
+; 201c
+
+Function201c: ; 201c
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+
+ call PlaceString
+ pop af
+ rst Bankswitch
+
+ ret
+; 202a
+
+Function202a: ; 202a
+ ld a, [hROMBank]
+ ld [$cf94], a
+ ld a, $9
+ ld hl, $400e
+ rst FarCall
+ ld a, [$cf88]
+ ret
+; 2039
+
+Function2039: ; 2039
+ ld a, [hROMBank]
+ ld [$cf94], a
+ ld a, $9
+ ld hl, $4022
+ rst FarCall
+ ld a, [$cf88]
+ ret
+; 2048
+
+Function2048: ; 2048
+ ld a, [hROMBank]
+ ld [$cf94], a
+ ld a, $9
+ ld hl, $403c
+ rst FarCall
+ ld a, [$cf88]
+ ret
+; 2057
+
+Function2057: ; 2057
+ ld a, [hROMBank]
+ push af
+ ld a, $21
+ rst Bankswitch
+
+ call $42db
+ pop af
+ rst Bankswitch
+
+ ret
+; 2063
+
diff --git a/engine/palettes.asm b/home/palettes.asm
index accaa96b5..accaa96b5 100644
--- a/engine/palettes.asm
+++ b/home/palettes.asm
diff --git a/home/predef.asm b/home/predef.asm
new file mode 100644
index 000000000..bd34a87a1
--- /dev/null
+++ b/home/predef.asm
@@ -0,0 +1,54 @@
+Predef: ; 2d83
+; Call predefined function a.
+; Preserves bc, de, hl and f.
+
+ ld [PredefID], a
+ ld a, [hROMBank]
+ push af
+
+ ld a, BANK(GetPredefPointer)
+ rst Bankswitch
+ call GetPredefPointer ; stores hl in PredefTemp
+
+; Switch to the new function's bank
+ rst Bankswitch
+
+; Instead of directly calling stuff,
+; push it to the stack in reverse.
+
+ ld hl, .Return
+ push hl
+
+; Call the Predef function
+ ld a, [PredefAddress]
+ ld h, a
+ ld a, [PredefAddress + 1]
+ ld l, a
+ push hl
+
+; Get hl back
+ ld a, [PredefTemp]
+ ld h, a
+ ld a, [PredefTemp + 1]
+ ld l, a
+ ret
+
+.Return
+; Clean up after the Predef call
+
+ ld a, h
+ ld [PredefTemp], a
+ ld a, l
+ ld [PredefTemp+1], a
+
+ pop hl
+ ld a, h
+ rst Bankswitch
+
+ ld a, [PredefTemp]
+ ld h, a
+ ld a, [PredefTemp + 1]
+ ld l, a
+ ret
+; 2dba
+
diff --git a/home/random.asm b/home/random.asm
new file mode 100644
index 000000000..0f46da9e4
--- /dev/null
+++ b/home/random.asm
@@ -0,0 +1,76 @@
+Random: ; 2f8c
+; A simple hardware-based random number generator (RNG).
+
+; Two random numbers are generated by adding and subtracting
+; the divider to the respective values every time it's called.
+
+; The divider is a register that increments at a rate of 16384Hz.
+; For comparison, the Game Boy operates at a clock speed of 4.2MHz.
+
+; Additionally, an equivalent function is executed in VBlank.
+
+; This leaves a with the value in hRandomSub.
+
+ push bc
+
+ ld a, [rDIV]
+ ld b, a
+ ld a, [hRandomAdd]
+ adc b
+ ld [hRandomAdd], a
+
+ ld a, [rDIV]
+ ld b, a
+ ld a, [hRandomSub]
+ sbc b
+ ld [hRandomSub], a
+
+ pop bc
+ ret
+; 2f9f
+
+BattleRandom: ; 2f9f
+; _BattleRandom lives in another bank.
+
+; It handles all RNG calls in the battle engine, allowing
+; link battles to remain in sync using a shared PRNG.
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_BattleRandom)
+ rst Bankswitch
+
+ call _BattleRandom
+
+ ld [$cfb6], a
+ pop af
+ rst Bankswitch
+ ld a, [$cfb6]
+ ret
+; 2fb1
+
+
+Function2fb1: ; 2fb1
+ push bc
+ ld c, a
+ xor a
+ sub c
+.asm_2fb5
+ sub c
+ jr nc, .asm_2fb5
+ add c
+ ld b, a
+ push bc
+.asm_2fbb
+ call Random
+ ld a, [hRandomAdd]
+ ld c, a
+ add b
+ jr c, .asm_2fbb
+ ld a, c
+ pop bc
+ call SimpleDivide
+ pop bc
+ ret
+; 2fcb
+
diff --git a/home/rtc.asm b/home/rtc.asm
new file mode 100644
index 000000000..91428d03b
--- /dev/null
+++ b/home/rtc.asm
@@ -0,0 +1,25 @@
+RTC: ; 46f
+; update time and time-sensitive palettes
+
+; rtc enabled?
+ ld a, [$c2ce]
+ cp 0
+ ret z
+
+ call UpdateTime
+
+; obj update on?
+ ld a, [VramState]
+ bit 0, a ; obj update
+ ret z
+
+TimeOfDayPals: ; 47e
+ callab _TimeOfDayPals
+ ret
+; 485
+
+UpdateTimePals: ; 485
+ callab _UpdateTimePals
+ ret
+; 48c
+
diff --git a/engine/serial.asm b/home/serial.asm
index fca9d82c3..fca9d82c3 100644
--- a/engine/serial.asm
+++ b/home/serial.asm
diff --git a/home/sine.asm b/home/sine.asm
new file mode 100644
index 000000000..09d06ca89
--- /dev/null
+++ b/home/sine.asm
@@ -0,0 +1,22 @@
+Cosine: ; 1b0f
+; Return d * cos(a) in hl
+ add $10 ; 90 degrees
+
+Sine: ; 1b11
+; Return d * sin(a) in hl
+; a is a signed 6-bit value.
+
+ ld e, a
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_Sine)
+ rst Bankswitch
+
+ call _Sine
+
+ pop af
+ rst Bankswitch
+ ret
+; 1b1e
+
diff --git a/home/sram.asm b/home/sram.asm
new file mode 100644
index 000000000..3c42e7618
--- /dev/null
+++ b/home/sram.asm
@@ -0,0 +1,34 @@
+GetSRAMBank: ; 2fcb
+; load sram bank a
+; if invalid bank, sram is disabled
+ cp NUM_SRAM_BANKS
+ jr c, OpenSRAM
+ jr CloseSRAM
+; 2fd1
+
+OpenSRAM: ; 2fd1
+; switch to sram bank a
+ push af
+; latch clock data
+ ld a, 1
+ ld [MBC3LatchClock], a
+; enable sram/clock write
+ ld a, SRAM_ENABLE
+ ld [MBC3SRamEnable], a
+; select sram bank
+ pop af
+ ld [MBC3SRamBank], a
+ ret
+; 2fe1
+
+CloseSRAM: ; 2fe1
+ push af
+ ld a, SRAM_DISABLE
+; reset clock latch for next time
+ ld [MBC3LatchClock], a
+; disable sram/clock write
+ ld [MBC3SRamEnable], a
+ pop af
+ ret
+; 2fec
+
diff --git a/home/string.asm b/home/string.asm
new file mode 100644
index 000000000..a871b4d2a
--- /dev/null
+++ b/home/string.asm
@@ -0,0 +1,39 @@
+InitString: ; 2ef6
+; Init a string of length c.
+ push hl
+ jr _InitString
+; 2ef9
+
+InitName: ; 2ef9
+; Intended for names, so this function is limited to ten characters.
+ push hl
+ ld c, 10
+; 2efc
+
+_InitString: ; 2efc
+; if the string pointed to by hl is empty (defined as "zero or more spaces
+; followed by a null"), then initialize it to the string pointed to by de.
+ push bc
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .blank
+ cp " "
+ jr nz, .notblank
+ dec c
+ jr nz, .loop
+.blank
+ pop bc
+ ld l, e
+ ld h, d
+ pop de
+ ld b, 0
+ inc c
+ call CopyBytes
+ ret
+.notblank
+ pop bc
+ pop hl
+ ret
+; 2f17
+
diff --git a/engine/text.asm b/home/text.asm
index ccc8623cf..e010de6d4 100644
--- a/engine/text.asm
+++ b/home/text.asm
@@ -155,6 +155,7 @@ Function1052: ; 1052
PrintText: ; 1057
call Function106c
+Function105a: ; 105a
push hl
hlcoord 1, 14
ld bc, 18 + 3<<8
@@ -1053,7 +1054,7 @@ Text_0A: ; 14ed
push bc
call GetJoypadPublic
ld a, [hJoyDown]
- and BUTTON_A | BUTTON_B
+ and A_BUTTON | B_BUTTON
jr nz, .asm_14fd
ld c, 30
call DelayFrames
@@ -1135,7 +1136,7 @@ Text_0C: ; 1543
ld [hli], a
call GetJoypadPublic
ld a, [hJoyDown]
- and BUTTON_A | BUTTON_B
+ and A_BUTTON | B_BUTTON
jr nz, .asm_155a
ld c, 10
call DelayFrames
diff --git a/engine/time.asm b/home/time.asm
index fff52b173..fff52b173 100644
--- a/engine/time.asm
+++ b/home/time.asm
diff --git a/engine/vblank.asm b/home/vblank.asm
index 44b3195f8..71114964e 100644
--- a/engine/vblank.asm
+++ b/home/vblank.asm
@@ -119,9 +119,9 @@ VBlank0: ; 2b1
call UpdateBGMap
; these have their own timing checks
- call SafeLoadTiles
- call SafeLoadTiles2
- call SafeTileAnimation
+ call Serve2bppRequest
+ call Serve1bppRequest
+ call AnimateTileset
.doneframeaction
; oam update off?
@@ -131,8 +131,8 @@ VBlank0: ; 2b1
; update oam by dma transfer
call hPushOAM
-; 403f:
-; ld a, $c4
+; @PushOAM:
+; ld a, Sprites >> 8
; ld [rDMA], a
; ld a, $28
; .loop
@@ -230,11 +230,11 @@ VBlank1: ; 337
; these have their own timing checks
call UpdateBGMap
- call LoadTiles
+ call Serve2bppRequest@VBlank
; update oam by dma transfer
call hPushOAM
-; 403f:
-; ld a, $c4
+; @PushOAM:
+; ld a, Sprites >> 8
; ld [rDMA], a
; ld a, $28
; .loop
@@ -338,12 +338,12 @@ VBlank3: ; 396
jr c, .vblankoccurred
; else
call UpdateBGMap
- call LoadTiles
+ call Serve2bppRequest@VBlank
; update oam by dma transfer
call hPushOAM
-; 403f:
-; ld a, $c4 ; Sprites / $100
+; @PushOAM:
+; ld a, Sprites >> 8
; ld [rDMA], a
; ld a, $28
; .loop
@@ -410,12 +410,12 @@ VBlank4: ; 3df
ld [$ff8a], a
call UpdateBGMap
- call SafeLoadTiles
+ call Serve2bppRequest
; update oam by dma transfer
call hPushOAM
-; 403f:
-; ld a, $c4
+; @PushOAM:
+; ld a, Sprites >> 8
; ld [rDMA], a
; ld a, $28
; .loop
@@ -465,7 +465,7 @@ VBlank5: ; 400
jr c, .vblankoccurred
call UpdateBGMap
- call SafeLoadTiles
+ call Serve2bppRequest
.vblankoccurred
; tell other fns vblank happened
@@ -521,8 +521,8 @@ VBlank6: ; 436
call UpdateCGBPals
jr c, .vblankoccurred
- call SafeLoadTiles
- call SafeLoadTiles2
+ call Serve2bppRequest
+ call Serve1bppRequest
call DMATransfer
.vblankoccurred
diff --git a/home/video.asm b/home/video.asm
new file mode 100644
index 000000000..0d0aa272d
--- /dev/null
+++ b/home/video.asm
@@ -0,0 +1,487 @@
+; Functions dealing with VRAM.
+
+DMATransfer: ; 15d8
+; Return carry if the transfer is completed.
+
+ ld a, [hDMATransfer]
+ and a
+ ret z
+
+; Start transfer
+ ld [rHDMA5], a
+
+; Execution is halted until the transfer is complete.
+
+ xor a
+ ld [hDMATransfer], a
+ scf
+ ret
+; 15e3
+
+
+UpdateBGMapBuffer: ; 15e3
+; Copy [$ffdc] 16x8 tiles from BGMapBuffer
+; to bg map addresses in BGMapBufferPtrs.
+
+; [$ffdc] must be even since this is done in pairs.
+
+; Return carry on success.
+
+ ld a, [hBGMapUpdate]
+ and a
+ ret z
+
+ ld a, [rVBK]
+ push af
+ ld [hSPBuffer], sp
+
+ ld hl, BGMapBufferPtrs
+ ld sp, hl
+
+; We can now pop the addresses of affected spots on the BG Map
+
+ ld hl, BGMapPalBuffer
+ ld de, BGMapBuffer
+
+
+.next
+; Copy a pair of 16x8 blocks (one 16x16 block)
+
+rept 2
+; Get our BG Map address
+ pop bc
+
+; Palettes
+ ld a, 1
+ ld [rVBK], a
+
+ ld a, [hli]
+ ld [bc], a
+ inc c
+ ld a, [hli]
+ ld [bc], a
+ dec c
+
+; Tiles
+ ld a, 0
+ ld [rVBK], a
+
+ ld a, [de]
+ inc de
+ ld [bc], a
+ inc c
+ ld a, [de]
+ inc de
+ ld [bc], a
+endr
+
+; We've done 2 16x8 blocks
+ ld a, [$ffdc]
+ dec a
+ dec a
+ ld [$ffdc], a
+
+ jr nz, .next
+
+
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [hSPBuffer + 1]
+ ld h, a
+ ld sp, hl
+
+ pop af
+ ld [rVBK], a
+
+ xor a
+ ld [hBGMapUpdate], a
+ scf
+ ret
+; 163a
+
+
+WaitTop: ; 163a
+; Wait until the top third of the BG Map is being updated.
+
+ ld a, [hBGMapMode]
+ and a
+ ret z
+
+ ld a, [hBGMapThird]
+ and a
+ jr z, .done
+
+ call DelayFrame
+ jr WaitTop
+
+.done
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 164c
+
+
+UpdateBGMap: ; 164c
+; Update the BG Map, in thirds, from TileMap and AttrMap.
+
+ ld a, [hBGMapMode]
+ and a
+ ret z
+
+; BG Map 0
+ dec a ; 1
+ jr z, .Tiles
+ dec a ; 2
+ jr z, .Attr
+
+; BG Map 1
+ dec a
+
+ ld a, [hBGMapAddress]
+ ld l, a
+ ld a, [hBGMapAddress + 1]
+ ld h, a
+ push hl
+
+ xor a
+ ld [hBGMapAddress], a
+ ld a, VBGMap1 >> 8
+ ld [hBGMapAddress + 1], a
+
+ ld a, [hBGMapMode]
+ push af
+ cp 3
+ call z, .Tiles
+ pop af
+ cp 4
+ call z, .Attr
+
+ pop hl
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [hBGMapAddress + 1], a
+ ret
+
+
+.Attr
+ ld a, 1
+ ld [rVBK], a
+
+ ld hl, AttrMap
+ call .update
+
+ ld a, 0
+ ld [rVBK], a
+ ret
+
+
+.Tiles
+ ld hl, TileMap
+
+
+.update
+ ld [hSPBuffer], sp
+
+; Which third?
+ ld a, [hBGMapThird]
+ and a ; 0
+ jr z, .top
+ dec a ; 1
+ jr z, .middle
+ ; 2
+
+
+THIRD_HEIGHT EQU SCREEN_HEIGHT / 3
+
+
+.bottom
+ ld de, 2 * THIRD_HEIGHT * SCREEN_WIDTH
+ add hl, de
+ ld sp, hl
+
+ ld a, [hBGMapAddress + 1]
+ ld h, a
+ ld a, [hBGMapAddress]
+ ld l, a
+
+ ld de, 2 * THIRD_HEIGHT * BG_MAP_WIDTH
+ add hl, de
+
+; Next time: top third
+ xor a
+ jr .start
+
+
+.middle
+ ld de, THIRD_HEIGHT * SCREEN_WIDTH
+ add hl, de
+ ld sp, hl
+
+ ld a, [hBGMapAddress + 1]
+ ld h, a
+ ld a, [hBGMapAddress]
+ ld l, a
+
+ ld de, THIRD_HEIGHT * BG_MAP_WIDTH
+ add hl, de
+
+; Next time: bottom third
+ ld a, 2
+ jr .start
+
+
+.top
+ ld sp, hl
+
+ ld a, [hBGMapAddress + 1]
+ ld h, a
+ ld a, [hBGMapAddress]
+ ld l, a
+
+; Next time: middle third
+ ld a, 1
+
+
+.start
+; Which third to update next time
+ ld [hBGMapThird], a
+
+; Rows of tiles in a third
+ ld a, SCREEN_HEIGHT / 3
+
+; Discrepancy between TileMap and BGMap
+ ld bc, BG_MAP_WIDTH - (SCREEN_WIDTH - 1)
+
+
+.row
+; Copy a row of 20 tiles
+rept SCREEN_WIDTH / 2 - 1
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+endr
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+
+ add hl, bc
+ dec a
+ jr nz, .row
+
+
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [hSPBuffer + 1]
+ ld h, a
+ ld sp, hl
+ ret
+; 170a
+
+
+Serve1bppRequest: ; 170a
+; Only call during the first fifth of VBlank
+
+ ld a, [Requested1bpp]
+ and a
+ ret z
+
+; Back out if we're too far into VBlank
+ ld a, [rLY]
+ cp 144
+ ret c
+ cp 146
+ ret nc
+
+; Copy [Requested1bpp] 1bpp tiles from [Requested1bppSource] to [Requested1bppDest]
+
+ ld [hSPBuffer], sp
+
+; Source
+ ld hl, Requested1bppSource
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld sp, hl
+
+; Destination
+ ld hl, Requested1bppDest
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+; # tiles to copy
+ ld a, [Requested1bpp]
+ ld b, a
+
+ xor a
+ ld [Requested1bpp], a
+
+.next
+
+rept 3
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld [hl], d
+ inc l
+endr
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld [hl], d
+
+ inc hl
+ dec b
+ jr nz, .next
+
+
+ ld a, l
+ ld [Requested1bppDest], a
+ ld a, h
+ ld [Requested1bppDest + 1], a
+
+ ld [Requested1bppSource], sp
+
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [hSPBuffer + 1]
+ ld h, a
+ ld sp, hl
+ ret
+; 1769
+
+
+Serve2bppRequest: ; 1769
+; Only call during the first fifth of VBlank
+
+ ld a, [Requested2bpp]
+ and a
+ ret z
+
+; Back out if we're too far into VBlank
+ ld a, [rLY]
+ cp 144
+ ret c
+ cp 146
+ ret nc
+ jr _Serve2bppRequest
+
+
+Serve2bppRequest@VBlank: ; 1778
+
+ ld a, [Requested2bpp]
+ and a
+ ret z
+
+_Serve2bppRequest: ; 177d
+; Copy [Requested2bpp] 2bpp tiles from [Requested2bppSource] to [Requested2bppDest]
+
+ ld [hSPBuffer], sp
+
+; Source
+ ld hl, Requested2bppSource
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld sp, hl
+
+; Destination
+ ld hl, Requested2bppDest
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+; # tiles to copy
+ ld a, [Requested2bpp]
+ ld b, a
+
+ xor a
+ ld [Requested2bpp], a
+
+.next
+
+rept 7
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+endr
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+
+ inc hl
+ dec b
+ jr nz, .next
+
+
+ ld a, l
+ ld [Requested2bppDest], a
+ ld a, h
+ ld [Requested2bppDest + 1], a
+
+ ld [Requested2bppSource], sp
+
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [hSPBuffer + 1]
+ ld h, a
+ ld sp, hl
+ ret
+; 17d3
+
+
+AnimateTileset: ; 17d3
+; Only call during the first fifth of VBlank
+
+ ld a, [$ffde]
+ and a
+ ret z
+
+; Back out if we're too far into VBlank
+ ld a, [rLY]
+ cp 144
+ ret c
+ cp 151
+ ret nc
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_AnimateTileset)
+ rst Bankswitch
+
+ ld a, [rSVBK]
+ push af
+ ld a, 1
+ ld [rSVBK], a
+
+ ld a, [rVBK]
+ push af
+ ld a, 0
+ ld [rVBK], a
+
+ call _AnimateTileset
+
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ pop af
+ rst Bankswitch
+ ret
+; 17ff
+
diff --git a/interrupts.asm b/interrupts.asm
new file mode 100644
index 000000000..2da426e96
--- /dev/null
+++ b/interrupts.asm
@@ -0,0 +1,17 @@
+; Game Boy hardware interrupts
+
+SECTION "vblank",ROM0[$40]
+ jp VBlank
+
+SECTION "lcd",ROM0[$48]
+ jp LCD
+
+SECTION "timer",ROM0[$50]
+ jp Timer
+
+SECTION "serial",ROM0[$58]
+ jp Serial
+
+SECTION "joypad",ROM0[$60]
+ jp JoypadInt
+
diff --git a/items/marts.asm b/items/marts.asm
new file mode 100644
index 000000000..16a0695c4
--- /dev/null
+++ b/items/marts.asm
@@ -0,0 +1,443 @@
+Marts: ; 160a9
+ dw Mart0
+ dw Mart1
+ dw Mart2
+ dw Mart3
+ dw Mart4
+ dw Mart5
+ dw Mart6
+ dw Mart7
+ dw Mart8
+ dw Mart9
+ dw Mart10
+ dw Mart11
+ dw Mart12
+ dw Mart13
+ dw Mart14
+ dw Mart15
+ dw Mart16
+ dw Mart17
+ dw Mart18
+ dw Mart19
+ dw Mart20
+ dw Mart21
+ dw Mart22
+ dw Mart23
+ dw Mart24
+ dw Mart25
+ dw Mart26
+ dw Mart27
+ dw Mart28
+ dw Mart29
+ dw Mart30
+ dw Mart31
+ dw Mart32
+ dw Mart33
+MartsEnd
+; 160ed
+
+
+Mart0: ; 160ed
+ db 4 ; # items
+ db POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db $ff
+; 160f3
+
+Mart1: ; 160f3
+ db 5 ; # items
+ db POKE_BALL
+ db POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db $ff
+; 160fa
+
+Mart2: ; 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
+
+Mart3: ; 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
+
+Mart4: ; 16111
+ db 5 ; # items
+ db POTION
+ db SUPER_POTION
+ db HYPER_POTION
+ db FULL_HEAL
+ db REVIVE
+ db $ff
+; 16118
+
+Mart5: ; 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
+
+Mart6: ; 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
+
+Mart7: ; 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
+
+Mart8: ; 16134
+ db 5 ; # items
+ db PROTEIN
+ db IRON
+ db CARBOS
+ db CALCIUM
+ db HP_UP
+ db $ff
+; 1613b
+
+Mart9: ; 1613b
+ db 3 ; # items
+ db TM_41
+ db TM_48
+ db TM_33
+ db $ff
+; 16140
+
+Mart10: ; 16140
+ db 4 ; # items
+ db TM_41
+ db TM_48
+ db TM_33
+ db TM_02
+ db $ff
+; 16146
+
+Mart11: ; 16146
+ db 4 ; # items
+ db TM_41
+ db TM_48
+ db TM_33
+ db TM_08
+ db $ff
+; 1614c
+
+Mart12: ; 1614c
+ db 5 ; # items
+ db TM_41
+ db TM_48
+ db TM_33
+ db TM_02
+ db TM_08
+ db $ff
+; 16153
+
+Mart13: ; 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
+
+Mart14: ; 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
+
+Mart15: ; 1616a
+ db 4 ; # items
+ db TINYMUSHROOM
+ db SLOWPOKETAIL
+ db POKE_BALL
+ db POTION
+ db $ff
+; 16170
+
+Mart16: ; 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
+
+Mart17: ; 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
+
+Mart18: ; 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
+
+Mart19: ; 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
+
+Mart20: ; 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
+
+Mart21: ; 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
+
+Mart22: ; 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
+
+Mart23: ; 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
+
+Mart24: ; 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
+
+Mart25: ; 161ce
+ db 5 ; # items
+ db TM_10
+ db TM_11
+ db TM_17
+ db TM_18
+ db TM_37
+ db $ff
+; 161d5
+
+Mart26: ; 161d5
+ db 3 ; # items
+ db POKE_DOLL
+ db LOVELY_MAIL
+ db SURF_MAIL
+ db $ff
+; 161da
+
+Mart27: ; 161da
+ db 5 ; # items
+ db HP_UP
+ db PROTEIN
+ db IRON
+ db CARBOS
+ db CALCIUM
+ db $ff
+; 161e1
+
+Mart28: ; 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
+
+Mart29: ; 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
+
+Mart30: ; 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
+
+Mart31: ; 161fd
+ db 6 ; # items
+ db POKE_DOLL
+ db FRESH_WATER
+ db SODA_POP
+ db LEMONADE
+ db REPEL
+ db PORTRAITMAIL
+ db $ff
+; 16205
+
+Mart32: ; 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
+
+Mart33: ; 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
+
diff --git a/macros.asm b/macros.asm
new file mode 100644
index 000000000..e5291ade5
--- /dev/null
+++ b/macros.asm
@@ -0,0 +1,95 @@
+; rgbds macros
+
+dwb: MACRO
+ dw \1
+ db \2
+ ENDM
+
+dbw: MACRO
+ db \1
+ dw \2
+ ENDM
+
+dn: MACRO
+ db \1 << 4 + \2
+ ENDM
+
+dt: MACRO ; three-byte (big-endian)
+ db (\1 >> 16) & $ff
+ db (\1 >> 8) & $ff
+ db \1 & $ff
+ ENDM
+
+bigdw: MACRO ; big-endian word
+ dw ((\1)/$100) + (((\1)&$ff)*$100)
+ ENDM
+
+callab: MACRO ; address, bank
+ ld hl, \1
+ ld a, BANK(\1)
+ rst FarCall
+ ENDM
+
+callba: MACRO ; bank, address
+ ld a, BANK(\1)
+ ld hl, \1
+ rst FarCall
+ ENDM
+
+TX_RAM: MACRO
+ db 1
+ dw \1
+ ENDM
+
+TX_FAR: MACRO
+ db $16
+ dw \1
+ db BANK(\1)
+ ENDM
+
+RGB: MACRO
+ dw ((\3 << 10) | (\2 << 5) | (\1))
+ ENDM
+
+note: MACRO
+ db \1
+ ENDM
+
+; It's better to use *coord than FuncCoord.
+FuncCoord: MACRO
+Coord = $c4a0 + 20 * \2 + \1
+ ENDM
+
+bccoord: MACRO
+ FuncCoord \1, \2
+ ld bc, Coord
+ ENDM
+
+decoord: MACRO
+ FuncCoord \1, \2
+ ld de, Coord
+ ENDM
+
+hlcoord: MACRO
+ FuncCoord \1, \2
+ ld hl, Coord
+ ENDM
+
+
+; pic animations
+frame: MACRO
+ db \1
+ db \2
+ ENDM
+setrepeat: MACRO
+ db $fe
+ db \1
+ ENDM
+dorepeat: MACRO
+ db $fd
+ db \1
+ ENDM
+endanim: MACRO
+ db $ff
+ ENDM
+
diff --git a/main.asm b/main.asm
index 077205a37..011e7d966 100644
--- a/main.asm
+++ b/main.asm
@@ -1,1370 +1,35 @@
SECTION "bank0",ROM0
-SECTION "rst0",ROM0[$0]
- di
- jp Start
-
-SECTION "rst8",ROM0[$8] ; FarCall
- jp FarCall_hl
-
-SECTION "rst10",ROM0[$10] ; Bankswitch
- ld [hROMBank], a
- ld [MBC3RomBank], a
- ret
-
-SECTION "rst18",ROM0[$18] ; Unused
- rst $38
-
-SECTION "rst20",ROM0[$20] ; Unused
- rst $38
-
-SECTION "rst28",ROM0[$28] ; JumpTable
- push de
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- jp [hl]
-
-; rst30 is midst rst28
-SECTION "rst38",ROM0[$38] ; Unused
- rst $38
+INCLUDE "rst.asm"
-SECTION "vblank",ROM0[$40] ; vblank interrupt
- jp VBlank
+INCLUDE "interrupts.asm"
-SECTION "lcd",ROM0[$48] ; lcd interrupt
- jp LCD
-SECTION "timer",ROM0[$50] ; timer interrupt
- jp Timer
+SECTION "header",ROM0[$100]
-SECTION "serial",ROM0[$58] ; serial interrupt
- jp Serial
-
-SECTION "joypad",ROM0[$60] ; joypad interrupt
- jp JoypadInt
-
-SECTION "romheader",ROM0[$100]
Start:
nop
jp _Start
-SECTION "start",ROM0[$150]
-
-INCLUDE "engine/init.asm"
-
-
-INCLUDE "engine/vblank.asm"
-
-
-DelayFrame: ; 45a
-; Wait for one frame
- ld a, 1
- ld [VBlankOccurred], a
-
-; Wait for the next VBlank, halting to conserve battery
-.halt
- halt ; rgbasm adds a nop after this instruction by default
- ld a, [VBlankOccurred]
- and a
- jr nz, .halt
- ret
-; 468
-
-
-DelayFrames: ; 468
-; Wait c frames
- call DelayFrame
- dec c
- jr nz, DelayFrames
- ret
-; 46f
-
-
-RTC: ; 46f
-; update time and time-sensitive palettes
-
-; rtc enabled?
- ld a, [$c2ce]
- cp 0
- ret z
-
- call UpdateTime
-
-; obj update on?
- ld a, [VramState]
- bit 0, a ; obj update
- ret z
-
-TimeOfDayPals: ; 47e
- callab _TimeOfDayPals
- ret
-; 485
-
-
-Function485: ; 485
- callab UpdateTimePals
- ret
-; 48c
-
-
-INCLUDE "engine/fade.asm"
-
-
-INCLUDE "engine/lcd.asm"
-
-
-INCLUDE "engine/time.asm"
-
-
-INCLUDE "engine/serial.asm"
-
-
-INCLUDE "engine/joypad.asm"
-
-
-INCLUDE "engine/decompress.asm"
-
-
-INCLUDE "engine/palettes.asm"
-
-
-INCLUDE "engine/copy.asm"
-
-
-INCLUDE "engine/text.asm"
-
-
-DMATransfer: ; 15d8
-; DMA transfer
-; return carry if successful
-
-; anything to transfer?
- ld a, [hDMATransfer]
- and a
- ret z
-; start transfer
- ld [rHDMA5], a
-; indicate that transfer has occurred
- xor a
- ld [hDMATransfer], a
-; successful transfer
- scf
- ret
-; 15e3
-
-
-UpdateBGMapBuffer: ; 15e3
-; write [$ffdc] 16x8 tiles from BGMapBuffer to bg map addresses in BGMapBufferPtrs
-; [$ffdc] must be even since this is done in 16x16 blocks
-
-; return carry if successful
-
-; any tiles to update?
- ld a, [hBGMapUpdate]
- and a
- ret z
-; save wram bank
- ld a, [rVBK]
- push af
-; save sp
- ld [hSPBuffer], sp
-
-; temp stack
- ld hl, BGMapBufferPtrs
- ld sp, hl
-; we can now pop the addresses of affected spots in bg map
-
-; get pal and tile buffers
- ld hl, BGMapPalBuffer
- ld de, BGMapBuffer
-
-.loop
-; draw one 16x16 block
-
-; top half:
-
-; get bg map address
- pop bc
-; update palettes
- ld a, $1
- ld [rVBK], a
-; tile 1
- ld a, [hli]
- ld [bc], a
- inc c
-; tile 2
- ld a, [hli]
- ld [bc], a
- dec c
-; update tiles
- ld a, $0
- ld [rVBK], a
-; tile 1
- ld a, [de]
- inc de
- ld [bc], a
- inc c
-; tile 2
- ld a, [de]
- inc de
- ld [bc], a
-
-; bottom half:
-
-; get bg map address
- pop bc
-; update palettes
- ld a, $1
- ld [rVBK], a
-; tile 1
- ld a, [hli]
- ld [bc], a
- inc c
-; tile 2
- ld a, [hli]
- ld [bc], a
- dec c
-; update tiles
- ld a, $0
- ld [rVBK], a
-; tile 1
- ld a, [de]
- inc de
- ld [bc], a
- inc c
-; tile 2
- ld a, [de]
- inc de
- ld [bc], a
-
-; we've done 2 16x8 blocks
- ld a, [$ffdc]
- dec a
- dec a
- ld [$ffdc], a
-
-; if there are more left, get the next 16x16 block
- jr nz, .loop
-
-
-; restore sp
- ld a, [hSPBuffer]
- ld l, a
- ld a, [$ffda]
- ld h, a
- ld sp, hl
-
-; restore vram bank
- pop af
- ld [rVBK], a
-
-; we don't need to update bg map until new tiles are loaded
- xor a
- ld [hBGMapUpdate], a
-
-; successfully updated bg map
- scf
- ret
-; 163a
-
-
-WaitTop: ; 163a
- ld a, [hBGMapMode]
- and a
- ret z
-
-; wait until top third of bg map can be updated
- ld a, [hBGMapThird]
- and a
- jr z, .quit
-
- call DelayFrame
- jr WaitTop
-
-.quit
- xor a
- ld [hBGMapMode], a
- ret
-; 164c
-
-
-UpdateBGMap: ; 164c
-; get mode
- ld a, [hBGMapMode]
- and a
- ret z
-
-; don't save bg map address
- dec a ; 1
- jr z, .tiles
- dec a ; 2
- jr z, .attr
- dec a ; ?
-
-; save bg map address
- ld a, [hBGMapAddress]
- ld l, a
- ld a, [$ffd7]
- ld h, a
- push hl
-
-; bg map 1 (VBGMap1)
- xor a
- ld [hBGMapAddress], a
- ld a, $9c
- ld [$ffd7], a
-
-; get mode again
- ld a, [hBGMapMode]
- push af
- cp 3
- call z, .tiles
- pop af
- cp 4
- call z, .attr
-
-; restore bg map address
- pop hl
- ld a, l
- ld [hBGMapAddress], a
- ld a, h
- ld [$ffd7], a
- ret
-
-.attr
-; switch vram banks
- ld a, 1
- ld [rVBK], a
-; bg map 1
- ld hl, AttrMap
- call .getthird
-; restore vram bank
- ld a, 0
- ld [rVBK], a
- ret
-
-.tiles
-; bg map 0
- ld hl, TileMap
-
-.getthird
-; save sp
- ld [hSPBuffer], sp
-
-; # tiles to move down * 6 (which third?)
- ld a, [hBGMapThird]
- and a ; 0
- jr z, .top
- dec a ; 1
- jr z, .middle
-
-; .bottom ; 2
-; move 12 tiles down
- ld de, $00f0 ; TileMap(0,12) - TileMap
- add hl, de
-; stack now points to source
- ld sp, hl
-; get bg map address
- ld a, [$ffd7]
- ld h, a
- ld a, [hBGMapAddress]
- ld l, a
-; move 12 tiles down
- ld de, $0180 ; bgm(0,12)
- add hl, de
-; start at top next time
- xor a
- jr .start
-
-.middle
-; move 6 tiles down
- ld de, $0078 ; TileMap(0,6) - TileMap
- add hl, de
-; stack now points to source
- ld sp, hl
-; get bg map address
- ld a, [$ffd7]
- ld h, a
- ld a, [hBGMapAddress]
- ld l, a
-; move 6 tiles down
- ld de, $00c0 ; bgm(0,6)
- add hl, de
-; start at bottom next time
- ld a, 2
- jr .start
-
-.top
-; stack now points to source
- ld sp, hl
-; get bg map address
- ld a, [$ffd7]
- ld h, a
- ld a, [hBGMapAddress]
- ld l, a
-; start at middle next time
- ld a, 1
-
-.start
-; which third to draw next update
- ld [hBGMapThird], a
-; # rows per third
- ld a, 6 ; SCREEN_HEIGHT / 3
-; # tiles from the edge of the screen to the next row
- ld bc, $000d ; BG_WIDTH + 1 - SCREEN_WIDTH
-
-.row
-; write a row of 20 tiles
-rept 9
- pop de
- ld [hl], e
- inc l
- ld [hl], d
- inc l
-endr
- pop de
- ld [hl], e
- inc l
- ld [hl], d
-; next row
- add hl, bc
-; done?
- dec a
- jr nz, .row
-
-; restore sp
- ld a, [hSPBuffer]
- ld l, a
- ld a, [$ffda]
- ld h, a
- ld sp, hl
- ret
-; 170a
-
-
-SafeLoadTiles2: ; 170a
-; only execute during first fifth of vblank
-; any tiles to draw?
- ld a, [$cf6c]
- and a
- ret z
-; abort if too far into vblank
- ld a, [rLY]
-; ly = 144-145?
- cp 144
- ret c
- cp 146
- ret nc
-
-GetTiles2: ; 1717
-; load [$cf6c] tiles from [$cf6d-e] to [$cf6f-70]
-; save sp
- ld [hSPBuffer], sp
-
-; sp = [$cf6d-e] tile source
- ld hl, $cf6d
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld sp, hl
-
-; hl = [$cf6f-70] tile dest
- ld hl, $cf6f
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
-; # tiles to draw
- ld a, [$cf6c]
- ld b, a
-
-; clear tile queue
- xor a
- ld [$cf6c], a
-
-.loop
-; put 1 tile (16 bytes) into hl from sp
-
-rept 3
- pop de
- ld [hl], e
- inc l
- ld [hl], e
- inc l
- ld [hl], d
- inc l
- ld [hl], d
- inc l
-endr
- pop de
- ld [hl], e
- inc l
- ld [hl], e
- inc l
- ld [hl], d
- inc l
- ld [hl], d
-; next tile
- inc hl
-; done?
- dec b
- jr nz, .loop
-
-; update $cf6f-70
- ld a, l
- ld [$cf6f], a
- ld a, h
- ld [$cf70], a
-
-; update $cf6d-e
- ld [$cf6d], sp
-
-; restore sp
- ld a, [hSPBuffer]
- ld l, a
- ld a, [$ffda]
- ld h, a
- ld sp, hl
- ret
-; 1769
-
-
-SafeLoadTiles: ; 1769
-; only execute during first fifth of vblank
-; any tiles to draw?
- ld a, [$cf67]
- and a
- ret z
-; abort if too far into vblank
- ld a, [rLY]
-; ly = 144-145?
- cp 144
- ret c
- cp 146
- ret nc
- jr GetTiles
-
-LoadTiles: ; 1778
-; use only if time is allotted
-; any tiles to draw?
- ld a, [$cf67]
- and a
- ret z
-; get tiles
-
-GetTiles: ; 177d
-; load [$cf67] tiles from [$cf68-9] to [$cf6a-b]
-; save sp
- ld [hSPBuffer], sp
-
-; sp = [$cf68-9] tile source
- ld hl, $cf68
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld sp, hl
-
-; hl = [$cf6a-b] tile dest
- ld hl, $cf6a
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
-; # tiles to draw
- ld a, [$cf67]
- ld b, a
-; clear tile queue
- xor a
- ld [$cf67], a
-
-.loop
-; put 1 tile (16 bytes) into hl from sp
-rept 7
- pop de
- ld [hl], e
- inc l
- ld [hl], d
- inc l
-endr
- pop de
- ld [hl], e
- inc l
- ld [hl], d
-; next tile
- inc hl
-; done?
- dec b
- jr nz, .loop
-
-; update $cf6a-b
- ld a, l
- ld [$cf6a], a
- ld a, h
- ld [$cf6b], a
-
-; update $cf68-9
- ld [$cf68], sp
-
-; restore sp
- ld a, [hSPBuffer]
- ld l, a
- ld a, [$ffda]
- ld h, a
- ld sp, hl
- ret
-; 17d3
-
-
-SafeTileAnimation: ; 17d3
-; call from vblank
-
- ld a, [$ffde]
- and a
- ret z
-
-; abort if too far into vblank
- ld a, [rLY]
-; ret unless ly = 144-150
- cp 144
- ret c
- cp 151
- ret nc
-
-; save affected banks
-; switch to new banks
- ld a, [hROMBank]
- push af ; save bank
- ld a, BANK(DoTileAnimation)
- rst Bankswitch ; bankswitch
-
- ld a, [rSVBK]
- push af ; save wram bank
- ld a, $1 ; wram bank 1
- ld [rSVBK], a
-
- ld a, [rVBK]
- push af ; save vram bank
- ld a, $0 ; vram bank 0
- ld [rVBK], a
-
-; take care of tile animation queue
- call DoTileAnimation
-
-; restore affected banks
- pop af
- ld [rVBK], a
- pop af
- ld [rSVBK], a
- pop af
- rst Bankswitch ; bankswitch
- ret
-; 17ff
-
-
-GetSpritePalette: ; 17ff
- push hl
- push de
- push bc
- ld c, a
- callba _GetSpritePalette
- ld a, c
- pop bc
- pop de
- pop hl
- ret
-; 180e
-
-Function180e: ; 180e
- push hl
- push bc
- ld hl, $d156
- ld c, $1f
- ld b, a
- ld a, [hConnectionStripLength]
- cp $0
- jr z, .asm_182b
- ld a, b
-.asm_181d
- cp [hl]
- jr z, .asm_1830
- inc hl
- inc hl
- dec c
- jr nz, .asm_181d
- ld a, [$d155]
- scf
- jr .asm_1833
-
-.asm_182b
- ld a, [$d155]
- jr .asm_1833
-
-.asm_1830
- inc hl
- xor a
- ld a, [hl]
-
-.asm_1833
- pop bc
- pop hl
- ret
-; 1836
-
-Function1836: ; 1836
- push de
- push hl
-
- ld b, a
- ld a, [hROMBank]
- push af
- ld a, BANK(Function142a7)
- rst Bankswitch
-
- ld a, b
- call Function142a7
- ld c, a
-
- pop de
- ld a, d
- rst Bankswitch
-
- pop hl
- pop de
- ret
-; 184a
-
-
-
-Function184a: ; 184a
- ld a, [StandingTile]
- call GetTileCollision
- ld b, a
- ret
-; 1852
-
-Function1852: ; 1852
- ld a, [StandingTile]
- call GetTileCollision
- sub 1
- ret z
- and a
- ret
-; 185d
-
-
-GetTileCollision: ; 185d
-; Get the collision type of tile a.
-
- push de
- push hl
-
- ld hl, TileCollisionTable
- ld e, a
- ld d, 0
- add hl, de
-
- ld a, [hROMBank]
- push af
- ld a, BANK(TileCollisionTable)
- rst Bankswitch
- ld e, [hl]
- pop af
- rst Bankswitch
-
- ld a, e
- and $f ; lo nybble only
-
- pop hl
- pop de
- ret
-; 1875
-
-
-Function1875: ; 1875
- ld d, a
- and $f0
- cp $10
- jr z, .asm_1882
- cp $20
- jr z, .asm_1888
- scf
- ret
-
-.asm_1882
- ld a, d
- and 7
- ret z
- scf
- ret
-
-.asm_1888
- ld a, d
- and 7
- ret z
- scf
- ret
-; 188e
-
-Function188e: ; 188e
- cp $14
- ret z
- cp $1c
- ret
-; 1894
-
-CheckCutTreeTile: ; 1894
- cp $12
- ret z
- cp $1a
- ret
-; 189a
-
-CheckHeadbuttTreeTile: ; 189a
- cp $15
- ret z
- cp $1d
- ret
-; 18a0
-
-CheckCounterTile: ; 18a0
- cp $90
- ret z
- cp $98
- ret
-; 18a6
-
-CheckPitTile: ; 18a6
- cp $60
- ret z
- cp $68
- ret
-; 18ac
-
-CheckIceTile: ; 18ac
- cp $23
- ret z
- cp $2b
- ret z
- scf
- ret
-; 18b4
-
-CheckWhirlpoolTile: ; 18b4
- nop
- cp $24
- ret z
- cp $2c
- ret z
- scf
- ret
-; 18bd
-
-CheckWaterfallTile: ; 18bd
- cp $33
- ret z
- cp $3b
- ret
-; 18c3
-
-CheckStandingOnEntrance: ; 18c3
- ld a, [StandingTile]
- cp $71 ; door
- ret z
- cp $79
- ret z
- cp $7a ; stairs
- ret z
- cp $7b ; cave
- ret
-; 18d2
-
-
-GetMapObject: ; 18d2
-; Return the location of map object a in bc.
- ld hl, MapObjects
- ld bc, $10
- call AddNTimes
- ld b, h
- ld c, l
- ret
-; 18de
-
-
-Function18de: ; 18de
- ld [hConnectionStripLength], a
- call GetMapObject
- ld hl, $0000
- add hl, bc
- ld a, [hl]
- cp $ff
- jr z, .asm_18f3
- ld [hConnectedMapWidth], a
- call Function1ae5
- and a
- ret
-
-.asm_18f3
- scf
- ret
-; 18f5
-
-Function18f5: ; 18f5
- ld hl, $0006
- add hl, bc
- ld a, [hl]
- cp $ff
- jr nz, .asm_1921
- ld hl, $0007
- add hl, bc
- ld a, [hl]
- cp $ff
- jr z, .asm_191c
- ld hl, .data_191e
- ld a, [TimeOfDay]
- add l
- ld l, a
- jr nc, .asm_1912
- inc h
-
-.asm_1912
- ld a, [hl]
- ld hl, $0007
- add hl, bc
- and [hl]
- jr nz, .asm_191c
- scf
- ret
-
-.asm_191c
- and a
- ret
-
-.data_191e
- db $1
- db $2
- db $4
-
-.asm_1921
- ld hl, $0006
- add hl, bc
- ld d, [hl]
- ld hl, $0007
- add hl, bc
- ld e, [hl]
- ld hl, hHours
- ld a, d
- cp e
- jr z, .asm_1949
- jr c, .asm_193f
- ld a, [hl]
- cp d
- jr nc, .asm_1949
- cp e
- jr c, .asm_1949
- jr z, .asm_1949
- jr .asm_194b
-
-.asm_193f
- ld a, e
- cp [hl]
- jr c, .asm_194b
- ld a, [hl]
- cp d
- jr nc, .asm_1949
- jr .asm_194b
-
-.asm_1949
- and a
- ret
-
-.asm_194b
- scf
- ret
-; 194d
-
-Function194d: ; 194d
- ld [hConnectionStripLength], a
- call GetMapObject
- call $40e7
- ret
-; 1956
-
-
-
-Function1956: ; 1956
- ld [hConnectionStripLength], a
- call Function271e
- ld a, [hConnectionStripLength]
- call GetMapObject
- ld a, $2
- ld hl, $40e7
- rst FarCall
- ret
-; 1967
-
-Function1967: ; 1967
- ld [hConnectionStripLength], a
- call GetMapObject
- ld hl, $0000
- add hl, bc
- ld a, [hl]
- cp $ff
- ret z
- ld [hl], $ff
- push af
- call Function1985
- pop af
- call Function1ae5
- callba Function4357
- ret
-; 1985
-
-Function1985: ; 1985
- ld hl, $d4cd
- cp [hl]
- jr z, .asm_1990
- ld hl, $d4ce
- cp [hl]
- ret nz
-
-.asm_1990
- callba Function581f
- ld a, $ff
- ld [$d4cd], a
- ld [$d4ce], a
- ret
-; 199f
-
-Function199f: ; 199f
- call Function1967
- call Function2712
- ret
-; 19a6
-
-Function19a6: ; 19a6
- push hl
- call GetMapObject
- ld d, b
- ld e, c
- ld a, $ff
- ld [de], a
- inc de
- pop hl
- ld bc, $000f
- call CopyBytes
- ret
-; 19b8
-
-Function19b8: ; 19b8
- call GetMapObject
- ld hl, $0000
- add hl, bc
- ld a, [hl]
- push af
- ld [hl], $ff
- inc hl
- ld bc, $000f
- xor a
- call ByteFill
- pop af
- cp $ff
- ret z
- cp $d
- ret nc
- ld b, a
- ld a, [$d4cd]
- cp b
- jr nz, .asm_19de
- ld a, $ff
- ld [$d4cd], a
-
-.asm_19de
- ld a, b
- call Function1ae5
- callba Function4357
- ret
-; 19e9
-
-
-
-Function19e9: ; 19e9
- ld [$c2e2], a
- ld a, [hROMBank]
- ld [$c2e3], a
- ld a, l
- ld [$c2e4], a
- ld a, h
- ld [$c2e5], a
- ld a, [$c2e2]
- call Function18de
- ret c
- ld hl, $0003
- add hl, bc
- ld [hl], $14
- ld hl, $0009
- add hl, bc
- ld [hl], $0
- ld hl, VramState
- set 7, [hl]
- and a
- ret
-; 1a13
-
-
-
-Function1a13: ; 1a13
- push bc
- push de
- ld hl, $d4d6
- ld de, $0028
- ld c, $d
-.asm_1a1d
- ld a, [hl]
- and a
- jr z, .asm_1a28
- add hl, de
- dec c
- jr nz, .asm_1a1d
- xor a
- jr .asm_1a2c
-
-.asm_1a28
- ld a, $d
- sub c
- scf
-
-.asm_1a2c
- pop de
- pop bc
- ret
-; 1a2f
-
-
-
-Function1a2f: ; 1a2f
- ld hl, $0003
- add hl, bc
- ld a, [hl]
- cp $25
- jr c, .asm_1a39
- xor a
-
-.asm_1a39
- ld hl, Data4273
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- ld a, [hl]
- ret
-; 1a47
-
-Function1a47: ; 1a47
- push bc
- push de
- ld e, a
- ld d, 0
- ld hl, Data4273 + 1
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- ld a, BANK(Data4273)
- call GetFarByte
- add a
- add a
- and $c
- pop de
- pop bc
- ret
-; 1a61
-
-
-Function1a61: ; 1a61
- ld l, a
- ld a, [hROMBank]
- push af
- ld a, BANK(Data4273)
- rst Bankswitch
- ld a, l
- push bc
-
- call Function1a71
-
- pop bc
- pop af
- rst Bankswitch
-
- ret
-; 1a71
-
-Function1a71: ; 1a71
- ld hl, $0003
- add hl, de
- ld [hl], a
- push de
- ld e, a
- ld d, 0
- ld hl, Data4273 + 1
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- ld b, h
- ld c, l
- pop de
- ld a, [bc]
- inc bc
- rlca
- rlca
- and $c
- ld hl, $0008
- add hl, de
- ld [hl], a
- ld a, [bc]
- inc bc
- ld hl, $000b
- add hl, de
- ld [hl], a
- ld a, [bc]
- inc bc
- ld hl, $0004
- add hl, de
- ld [hl], a
- ld a, [bc]
- inc bc
- ld hl, $0005
- add hl, de
- ld [hl], a
- ld a, [bc]
- inc bc
- ld hl, $0006
- add hl, de
- ld [hl], a
- ret
-; 1aae
-
-Function1aae: ; 1aae
- ld a, [hROMBank]
- push af
- ld a, [hli]
- rst Bankswitch
-
- ld a, [hli]
- ld d, [hl]
- ld hl, $001b
- add hl, bc
- add [hl]
- ld e, a
- ld a, d
- adc $0
- ld d, a
- inc [hl]
- ld a, [de]
- ld h, a
- pop af
- rst Bankswitch
-
- ld a, h
- ret
-; 1ac6
-
-Function1ac6: ; 1ac6
- ld hl, VramState
- set 0, [hl]
- ret
-; 1acc
-
-Function1acc: ; 1acc
- ld hl, VramState
- res 0, [hl]
- ret
-; 1ad2
-
-
-Function1ad2: ; 1ad2
- ld a, [VramState]
- bit 0, a
- ret z
- callba Function55e0
- callba Function5920
- ret
-; 1ae5
-
-
-Function1ae5: ; 1ae5
- ld bc, $0028
- ld hl, $d4d6
- call AddNTimes
- ld b, h
- ld c, l
- ret
-; 1af1
-
-Function1af1: ; 1af1
- ld hl, $0000
- add hl, bc
- ld a, [hl]
- and a
- ret
-; 1af8
-
-Function1af8: ; 1af8
- push af
- ld hl, $0008
- add hl, bc
- ld a, [hl]
- and $f3
- ld e, a
- pop af
- and $c
- or e
- ld [hl], a
- ret
-; 1b07
-
-
-GetSpriteDirection: ; 1b07
- ld hl, $0008
- add hl, bc
- ld a, [hl]
- and $c
- ret
-; 1b0f
-
-
-Function1b0f: ; 1b0f
- add $10
-
-Function1b11: ; 1b11
- ld e, a
-
- ld a, [hROMBank]
- push af
- ld a, BANK(Function84d9)
- rst Bankswitch
+SECTION "start",ROM0[$150]
- call Function84d9
-
- pop af
- rst Bankswitch
- ret
-; 1b1e
+INCLUDE "home/init.asm"
+INCLUDE "home/vblank.asm"
+INCLUDE "home/delay.asm"
+INCLUDE "home/rtc.asm"
+INCLUDE "home/fade.asm"
+INCLUDE "home/lcd.asm"
+INCLUDE "home/time.asm"
+INCLUDE "home/serial.asm"
+INCLUDE "home/joypad.asm"
+INCLUDE "home/decompress.asm"
+INCLUDE "home/palettes.asm"
+INCLUDE "home/copy.asm"
+INCLUDE "home/text.asm"
+INCLUDE "home/video.asm"
+INCLUDE "home/map_objects.asm"
+INCLUDE "home/sine.asm"
Function1b1e: ; 1b1e
ld [$d003], a
@@ -1808,3193 +473,15 @@ Function1d19: ; 1d19
; 1d35
-LoadMenuDataHeader: ; 0x1d35
- call Function1d3c
- call Function1c00
- ret
-
-Function1d3c: ; 0x1d3c
- ld de, $cf81
- ld bc, $0010
- call CopyBytes
- ld a, [hROMBank]
- ld [$cf8a], a
- ret
-; 0x1d4b
-
-Function1d4b: ; 1d4b
- ld [$cf88], a
- ret
-; 1d4f
-
-
-Function1d4f: ; 1d4f
- push hl
- call Function1d58
- pop hl
- jp PrintText
-; 1d57
-
-Function1d57: ; 1d57
- ret
-; 1d58
-
-Function1d58: ; 1d58
- ld hl, MenuDataHeader_0x1d5f
- call LoadMenuDataHeader
- ret
-; 1d5f
-
-MenuDataHeader_0x1d5f: ; 1d5f
- db $40 ; tile backup
- db 12, 0 ; start coords
- db 17, 19 ; end coords
- dw VTiles0
- db 0 ; default option
-; 1d67
-
-Function1d67: ; 1d67
- call Function1d4f
- call Function1c17
- ret
-; 1d6e
-
-Function1d6e: ; 1d6e
- ld hl, MenuDataHeader_0x1d75
- call LoadMenuDataHeader
- ret
-; 1d75
-
-MenuDataHeader_0x1d75: ; 1d75
- db $40 ; tile backup
- db 0, 0 ; start coords
- db 17, 19 ; end coords
- dw $0000
- db 1 ; default option
-; 1d7d
-
-Function1d7d: ; 1d7d
- call Function1c07
- ret
-; 1d81
-
-Function1d81: ; 0x1d81
- xor a
- ld [hBGMapMode], a
- call Function1cbb
- call Function1ad2
- call Function1c89
- call Function321c
- call Function1c66
- ld a, [$cf91]
- bit 7, a
- jr z, .asm_1da7 ; 0x1d98 $d
- call Function1c10
- call Function1bc9
- call Function1ff8
- bit 1, a
- jr z, .asm_1da9 ; 0x1da5 $2
-.asm_1da7
- scf
- ret
-.asm_1da9
- and a
- ret
-; 0x1dab
-
-Function1dab: ; 1dab
- call LoadMenuDataHeader
- call Function1d81
- call Function1c17
- ld a, [$cfa9]
- ret
-; 1db8
-
-Function1db8: ; 0x1db8
- push hl
- push bc
- push af
- ld hl, $cf86
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- inc hl
- pop af
- call GetNthString
- ld d, h
- ld e, l
- call CopyName1
- pop bc
- pop hl
- ret
-; 0x1dcf
-
-
-Function1dcf: ; 1dcf
- ld bc, $0e07
-
-Function1dd2: ; 1dd2
- jr Function1dd9
-
-Function1dd4: ; 1dd4
- call LoadMenuDataHeader
- jr Function1dfe
-
-Function1dd9: ; 1dd9
- push bc
- ld hl, MenuDataHeader_0x1e1d
- call Function1d3c
- pop bc
- ld a, b
- cp $e
- jr nz, .asm_1de9
- ld a, $e
- ld b, a
-
-.asm_1de9
- ld a, b
- ld [$cf83], a
- add $5
- ld [$cf85], a
- ld a, c
- ld [$cf82], a
- add $4
- ld [$cf84], a
- call Function1c00
-
-Function1dfe: ; 1dfe
- call Function1d81
- push af
- ld c, $f
- call DelayFrames
- call Function1c17
- pop af
- jr c, .asm_1e16
- ld a, [$cfa9]
- cp $2
- jr z, .asm_1e16
- and a
- ret
-
-.asm_1e16
- ld a, $2
- ld [$cfa9], a
- scf
- ret
-; 1e1d
-
-MenuDataHeader_0x1e1d: ; 1e1d
- db $40 ; tile backup
- db 5, 10 ; start coords
- db 9, 15 ; end coords
- dw MenuData2_0x1e25
- db 1 ; default option
-; 1e25
-
-MenuData2_0x1e25: ; 1e25
- db $c0 ; flags
- db 2
- db "YES@"
- db "NO@"
-; 1e2e
-
-Function1e2e: ; 1e2e
- call Function1e35
- call Function1c00
- ret
-; 1e35
-
-Function1e35: ; 1e35
- push de
- call Function1d3c
- pop de
- ld a, [$cf83]
- ld h, a
- ld a, [$cf85]
- sub h
- ld h, a
- ld a, d
- ld [$cf83], a
- add h
- ld [$cf85], a
- ld a, [$cf82]
- ld l, a
- ld a, [$cf84]
- sub l
- ld l, a
- ld a, e
- ld [$cf82], a
- add l
- ld [$cf84], a
- ret
-; 1e5d
-
-Function1e5d: ; 1e5d
- call MenuFunc_1e7f
- call MenuWriteText
- call Function1eff
- call Function1f23
- call Function1bdd
- call Function1ff8
- ret
-; 1e70
-
-SetUpMenu: ; 1e70
- call MenuFunc_1e7f ; ???
- call MenuWriteText
- call Function1eff ; set up selection pointer
- ld hl, $cfa5
- set 7, [hl]
- ret
-
-MenuFunc_1e7f: ; 0x1e7f
- call Function1c66
- call Function1ebd
- call Function1ea6
- call Function1cbb
- ret
-
-MenuWriteText: ; 0x1e8c
- xor a
- ld [hBGMapMode], a
- call Function1ebd ; sort out the text
- call Function1eda ; actually write it
- call Function2e31
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- call Function321c
- pop af
- ld [hOAMUpdate], a
- ret
-; 0x1ea6
-
-Function1ea6: ; 1ea6
- ld a, [$cf83]
- ld c, a
- ld a, [$cf85]
- sub c
- ld c, a
- ld a, [$cf92]
- add a
- inc a
- ld b, a
- ld a, [$cf82]
- add b
- ld [$cf84], a
- ret
-; 1ebd
-
-Function1ebd: ; 1ebd
- ld hl, $cf93
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$cf76]
- and a
- jr z, .asm_1ed3
- ld b, a
- ld c, $ff
-.asm_1ecc
- ld a, [hli]
- cp c
- jr nz, .asm_1ecc
- dec b
- jr nz, .asm_1ecc
-
-.asm_1ed3
- ld d, h
- ld e, l
- ld a, [hl]
- ld [$cf92], a
- ret
-; 1eda
-
-Function1eda: ; 1eda
- call Function1cfd
- ld bc, $002a
- add hl, bc
-.asm_1ee1
- inc de
- ld a, [de]
- cp $ff
- ret z
- ld [MenuSelection], a
- push de
- push hl
- ld d, h
- ld e, l
- ld hl, $cf95
- call Function1efb
- pop hl
- ld de, $0028
- add hl, de
- pop de
- jr .asm_1ee1
-; 1efb
-
-Function1efb: ; 1efb
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 1eff
-
-Function1eff: ; 1eff
- call Function1c10
- ld hl, $cfa8
- ld a, [$cf91]
- bit 3, a
- jr z, .asm_1f0e
- set 3, [hl]
-
-.asm_1f0e
- ld a, [$cf91]
- bit 2, a
- jr z, .asm_1f19
- set 5, [hl]
- set 4, [hl]
-
-.asm_1f19
- ret
-; 1f1a
-
-
-Function1f1a: ; 1f1a
- call Function1bd3
- ld hl, $cfa8
- and [hl]
- jr Function1f2a
-; 1f23
-
-Function1f23: ; 1f23
- xor a
- ld [$cf73], a
- call Function1bc9
-; 1f2a
-
-Function1f2a: ; 1f2a
- bit 0, a
- jr nz, .asm_1f52
- bit 1, a
- jr nz, .asm_1f6d
- bit 3, a
- jr nz, .asm_1f6d
- bit 4, a
- jr nz, .asm_1f44
- bit 5, a
- jr nz, .asm_1f4b
- xor a
- ld [$cf73], a
- jr .asm_1f57
-
-.asm_1f44
- ld a, $10
- ld [$cf73], a
- jr .asm_1f57
-
-.asm_1f4b
- ld a, $20
- ld [$cf73], a
- jr .asm_1f57
-
-.asm_1f52
- ld a, $1
- ld [$cf73], a
-
-.asm_1f57
- call Function1ebd
- ld a, [$cfa9]
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- ld [MenuSelection], a
- ld a, [$cfa9]
- ld [$cf88], a
- and a
- ret
-
-.asm_1f6d
- ld a, $2
- ld [$cf73], a
- ld a, $ff
- ld [MenuSelection], a
- scf
- ret
-; 1f79
-
-Function1f79: ; 1f79
- push de
- ld hl, $cf97
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [MenuSelection]
- call GetNthString
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- ret
-; 1f8d
-
-Function1f8d: ; 1f8d
- push de
- ld a, [MenuSelection]
- call Function1fb1
- inc hl
- inc hl
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- call PlaceString
- ret
-; 1f9e
-
-Function1f9e: ; 1f9e
- call Function1fb1
- inc hl
- inc hl
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ret
-; 1fa7
-
-Function1fa7: ; 1fa7
- ld a, [MenuSelection]
- call Function1fb1
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 1fb1
-
-Function1fb1: ; 1fb1
- ld e, a
- ld d, $0
- ld hl, $cf97
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- ret
-; 1fbf
-
-Function1fbf: ; 1fbf
- ld hl, $cf71
- call Function1ff0
- ld hl, $cf81
- call Function1ff0
- ld hl, $cf91
- call Function1ff0
- ld hl, $cfa1
- call Function1ff0
- ld a, [rSVBK]
- push af
- ld a, $7
- ld [rSVBK], a
- xor a
- ld hl, $dfff
- ld [hld], a
- ld [hld], a
- ld a, l
- ld [$cf71], a
- ld a, h
- ld [$cf72], a
- pop af
- ld [rSVBK], a
- ret
-; 1ff0
-
-Function1ff0: ; 1ff0
- ld bc, $0010
- xor a
- call ByteFill
- ret
-; 1ff8
-
-Function1ff8: ; 1ff8
- push af
- and $3
- jr z, .asm_2007
- ld hl, $cf81
- bit 3, [hl]
- jr nz, .asm_2007
- call PlayClickSFX
-
-.asm_2007
- pop af
- ret
-; 2009
-
-
-PlayClickSFX: ; 2009
- push de
- ld de, SFX_READ_TEXT_2
- call StartSFX
- pop de
- ret
-; 0x2012
-
-Function2012: ; 2012
- call Function1d4f
- call Functiona46
- call Function1c07
- ret
-; 201c
-
-Function201c: ; 201c
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
-
- call PlaceString
- pop af
- rst Bankswitch
-
- ret
-; 202a
-
-Function202a: ; 202a
- ld a, [hROMBank]
- ld [$cf94], a
- ld a, $9
- ld hl, $400e
- rst FarCall
- ld a, [$cf88]
- ret
-; 2039
-
-Function2039: ; 2039
- ld a, [hROMBank]
- ld [$cf94], a
- ld a, $9
- ld hl, $4022
- rst FarCall
- ld a, [$cf88]
- ret
-; 2048
-
-Function2048: ; 2048
- ld a, [hROMBank]
- ld [$cf94], a
- ld a, $9
- ld hl, $403c
- rst FarCall
- ld a, [$cf88]
- ret
-; 2057
-
-Function2057: ; 2057
- ld a, [hROMBank]
- push af
- ld a, $21
- rst Bankswitch
-
- call $42db
- pop af
- rst Bankswitch
-
- ret
-; 2063
-
-
-AskSerial: ; 2063
-; send out a handshake while serial int is off
- ld a, [$c2d4]
- bit 0, a
- ret z
-
- ld a, [$c2d5]
- and a
- ret nz
-
-; once every 6 frames
- ld hl, $ca8a
- inc [hl]
- ld a, [hl]
- cp 6
- ret c
-
- xor a
- ld [hl], a
-
- ld a, $c
- ld [$c2d5], a
-
-; handshake
- ld a, $88
- ld [rSB], a
-
-; switch to internal clock
- ld a, %00000001
- ld [rSC], a
-
-; start transfer
- ld a, %10000001
- ld [rSC], a
-
- ret
-; 208a
-
-
-ResetGameTime: ; 208a
- xor a
- ld [GameTimeCap], a
- ld [GameTimeHours], a
- ld [GameTimeHours + 1], a
- ld [GameTimeMinutes], a
- ld [GameTimeSeconds], a
- ld [GameTimeFrames], a
- ret
-; 209e
-
-
-GameTimer: ; 209e
-; precautionary
- nop
-
-; save wram bank
- ld a, [rSVBK]
- push af
-
- ld a, $1
- ld [rSVBK], a
-
- call UpdateGameTimer
-
-; restore wram bank
- pop af
- ld [rSVBK], a
- ret
-; 20ad
-
-
-UpdateGameTimer: ; 20ad
-; increment the game timer by one frame
-; capped at 999:59:59.00 after exactly 1000 hours
-
-; pause game update?
- ld a, [$c2cd]
- and a
- ret nz
-
-; game timer paused?
- ld hl, GameTimerPause
- bit 0, [hl]
- ret z
-
-; reached cap? (999:00:00.00)
- ld hl, GameTimeCap
- bit 0, [hl]
- ret nz
-
-; increment frame counter
- ld hl, GameTimeFrames ; frame counter
- ld a, [hl]
- inc a
-
-; reached 1 second?
- cp 60 ; frames/second
- jr nc, .second ; 20c5 $2
-
-; update frame counter
- ld [hl], a
- ret
-
-.second
-; reset frame counter
- xor a
- ld [hl], a
-
-; increment second counter
- ld hl, GameTimeSeconds
- ld a, [hl]
- inc a
-
-; reached 1 minute?
- cp 60 ; seconds/minute
- jr nc, .minute
-
-; update second counter
- ld [hl], a
- ret
-
-.minute
-; reset second counter
- xor a
- ld [hl], a
-
-; increment minute counter
- ld hl, GameTimeMinutes
- ld a, [hl]
- inc a
-
-; reached 1 hour?
- cp 60 ; minutes/hour
- jr nc, .hour
-
-; update minute counter
- ld [hl], a
- ret
-
-.hour
-; reset minute counter
- xor a
- ld [hl], a
-
-; increment hour counter
- ld a, [GameTimeHours]
- ld h, a
- ld a, [GameTimeHours+1]
- ld l, a
- inc hl
-
-; reached 1000 hours?
- ld a, h
- cp $3 ; 1000 / $100
- jr c, .updatehr
-
- ld a, l
- cp $e8 ; 1000 & $ff
- jr c, .updatehr
-
-; cap at 999:59:59.00
- ld hl, GameTimeCap
- set 0, [hl] ; stop timer
-
- ld a, 59
- ld [GameTimeMinutes], a
- ld [GameTimeSeconds], a
-
-; this will never be run again
- ret
-
-.updatehr
- ld a, h
- ld [GameTimeHours], a
- ld a, l
- ld [GameTimeHours+1], a
- ret
-; 210f
-
-
-Function210f: ; 210f
- ld hl, $c7e8
- ld bc, $0018
- ld a, $0
- call ByteFill
- ret
-; 211b
-
-Function211b: ; 211b
- push hl
- ld hl, $dbf7
- ld a, [hli]
- ld h, [hl]
- ld l, a
- or h
- ld a, [hl]
- jr nz, .asm_2128
- ld a, $ff
-
-.asm_2128
- pop hl
- ret
-; 212a
-
-Function212a: ; 212a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- xor a
- ld [$dbf7], a
- ld [$dbf8], a
- call Function2147
- ret c
- ld a, e
- ld [$dbf7], a
- ld a, d
- ld [$dbf8], a
- xor a
- ret
-; 2147
-
-Function2147: ; 2147
- push bc
- ld a, [hROMBank]
- push af
- ld a, $13
- rst Bankswitch
-
- ld hl, $501e
-.asm_2151
- push hl
- ld a, [hli]
- cp $ff
- jr z, .asm_2167
- cp b
- jr nz, .asm_2160
- ld a, [hli]
- cp c
- jr nz, .asm_2160
- jr .asm_216a
-
-.asm_2160
- pop hl
- ld de, $0004
- add hl, de
- jr .asm_2151
-
-.asm_2167
- scf
- jr .asm_216d
-
-.asm_216a
- ld e, [hl]
- inc hl
- ld d, [hl]
-
-.asm_216d
- pop hl
- pop bc
- ld a, b
- rst Bankswitch
-
- pop bc
- ret
-; 2173
-
-Function2173: ; 2173
- call Function217a
- call Functiondb1
- ret
-; 217a
-
-Function217a: ; 217a
- ld a, [hROMBank]
- push af
- ld a, [TileSetBlocksBank]
- rst Bankswitch
-
- call Function2198
- ld a, $60
- ld hl, TileMap
- ld bc, $0168
- call ByteFill
- ld a, $13
- rst Bankswitch
-
- call $515b
- pop af
- rst Bankswitch
-
- ret
-; 2198
-
-Function2198: ; 2198
- ld a, [$d194]
- ld e, a
- ld a, [$d195]
- ld d, a
- ld hl, EnemyMoveAnimation
- ld b, $5
-
-.asm_21a5
- push de
- push hl
- ld c, $6
-
-.asm_21a9
- push de
- push hl
- ld a, [de]
- and a
- jr nz, .asm_21b2
- ld a, [$d19d]
-
-.asm_21b2
- ld e, l
- ld d, h
- add a
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- ld a, [TileSetBlocksAddress]
- add l
- ld l, a
- ld a, [$d1de]
- adc h
- ld h, a
- 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, e
- add $14
- ld e, a
- jr nc, .asm_21d8
- inc d
-
-.asm_21d8
- 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, e
- add $14
- ld e, a
- jr nc, .asm_21eb
- inc d
-
-.asm_21eb
- 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, e
- add $14
- ld e, a
- jr nc, .asm_21fe
- inc d
-
-.asm_21fe
- 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
- pop hl
- ld de, $0004
- add hl, de
- pop de
- inc de
- dec c
- jp nz, .asm_21a9
- pop hl
- ld de, $0060
- add hl, de
- pop de
- ld a, [$d19f]
- add $6
- add e
- ld e, a
- jr nc, .asm_2225
- inc d
-
-.asm_2225
- dec b
- jp nz, .asm_21a5
- ret
-; 222a
-
-Function222a: ; 222a
- ld a, $fa
- ld [$ff9f], a
- ld a, $5
- ld hl, $5363
- rst FarCall
- xor a
- ld [$ff9f], a
- ret
-; 2238
-
-Function2238: ; 2238
- call Function2252
- ret nc
- push bc
- ld a, $5
- ld hl, $49af
- rst FarCall
- pop bc
- ret nc
- call Function22a7
- scf
- ret
-; 224a
-
-
-
-Function224a: ; 224a
- call Function2252
- ret nc
- call Function22a7
- ret
-; 2252
-
-Function2252: ; 2252
- ld a, $5
- ld hl, $499a
- rst FarCall
- ret nc
- ld a, [hROMBank]
- push af
- call Function2c52
- call Function2266
- pop de
- ld a, d
- rst Bankswitch
-
- ret
-; 2266
-
-Function2266: ; 2266
- ld a, [MapY]
- sub $4
- ld e, a
- ld a, [MapX]
- sub $4
- ld d, a
- ld a, [$dbfb]
- and a
- ret z
- ld c, a
- ld hl, $dbfc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.asm_227e
- push hl
- ld a, [hli]
- cp e
- jr nz, .asm_2289
- ld a, [hli]
- cp d
- jr nz, .asm_2289
- jr .asm_2296
-
-.asm_2289
- pop hl
- ld a, $5
- add l
- ld l, a
- jr nc, .asm_2291
- inc h
-
-.asm_2291
- dec c
- jr nz, .asm_227e
- xor a
- ret
-
-.asm_2296
- pop hl
- call Function22a3
- ret nc
- ld a, [$dbfb]
- inc a
- sub c
- ld c, a
- scf
- ret
-; 22a3
-
-Function22a3: ; 22a3
- inc hl
- inc hl
- scf
- ret
-; 22a7
-
-Function22a7: ; 22a7
- ld a, [hROMBank]
- push af
- call Function2c52
- call Function22b4
- pop af
- rst Bankswitch
-
- scf
- ret
-; 22b4
-
-Function22b4: ; 22b4
- push bc
- ld hl, $dbfc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, c
- dec a
- ld bc, $0005
- call AddNTimes
- ld bc, $0002
- add hl, bc
- ld a, [hli]
- cp $ff
- jr nz, .asm_22d0
- ld hl, $dcac
- ld a, [hli]
-
-.asm_22d0
- pop bc
- ld [$d146], a
- ld a, [hli]
- ld [$d147], a
- ld a, [hli]
- ld [$d148], a
- ld a, c
- ld [$d149], a
- ld a, [MapGroup]
- ld [$d14a], a
- ld a, [MapNumber]
- ld [$d14b], a
- scf
- ret
-; 22ee
-
-
-
-CheckOutdoorMap: ; 22ee
- cp ROUTE
- ret z
- cp TOWN
- ret
-; 22f4
-
-CheckIndoorMap: ; 22f4
- cp INDOOR
- ret z
- cp CAVE
- ret z
- cp DUNGEON
- ret z
- cp GATE
- ret
-; 2300
-
-
-Function2300: ; 2300
- cp $3
- ret z
- cp $6
- ret z
- cp $5
- ret
-; 2309
-
-Function2309: ; 2309
- call Function2326
- call Function2c52
- call Function234f
- xor a
- call Function2336
- ret
-; 2317
-
-Function2317: ; 2317
- call Function2326
- call Function2c52
- call Function234f
- ld a, $1
- call Function2336
- ret
-; 2326
-
-
-
-Function2326: ; 2326
- call Function2c3d
- call Function2c1c
- call GetSecondaryMapHeaderPointer
- call Function235c
- call Function2368
- ret
-; 2336
-
-Function2336: ; 2336
- push af
- ld hl, $d1a6
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- inc hl
- call Function23da
- call Function23f1
- call Function2408
- pop af
- and a
- ret nz
- call Function241f
- ret
-; 234f
-
-Function234f: ; 234f
- ld hl, $d1a4
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Function23ac
- call Function23c3
- ret
-; 235c
-
-Function235c: ; 235c
- ld de, $d19d
- ld c, $c
-.asm_2361
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_2361
- ret
-; 2368
-
-Function2368: ; 2368
- ld a, $ff
- ld [NorthConnectedMapGroup], a
- ld [SouthConnectedMapGroup], a
- ld [WestConnectedMapGroup], a
- ld [EastConnectedMapGroup], a
- ld a, [$d1a8]
- ld b, a
- bit 3, b
- jr z, .asm_2384
- ld de, NorthConnectedMapGroup
- call GetMapConnection
-
-.asm_2384
- bit 2, b
- jr z, .asm_238e
- ld de, SouthConnectedMapGroup
- call GetMapConnection
-
-.asm_238e
- bit 1, b
- jr z, .asm_2398
- ld de, WestConnectedMapGroup
- call GetMapConnection
-
-.asm_2398
- bit 0, b
- jr z, .asm_23a2
- ld de, EastConnectedMapGroup
- call GetMapConnection
-
-.asm_23a2
- ret
-; 23a3
-
-
-
-GetMapConnection: ; 23a3
-; Load map connection struct at hl into de.
- ld c, SouthMapConnection - NorthMapConnection
-.loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop
- ret
-; 23ac
-
-
-Function23ac: ; 23ac
- ld a, [hli]
- ld c, a
- ld [$dc07], a
- ld a, l
- ld [$dc08], a
- ld a, h
- ld [$dc09], a
- ld a, c
- and a
- ret z
- ld bc, $0004
- call AddNTimes
- ret
-; 23c3
-
-Function23c3: ; 23c3
- ld a, [hli]
- ld c, a
- ld [$dc0a], a
- ld a, l
- ld [$dc0b], a
- ld a, h
- ld [$dc0c], a
- ld a, c
- and a
- ret z
- ld bc, $0003
- call AddNTimes
- ret
-; 23da
-
-Function23da: ; 23da
- ld a, [hli]
- ld c, a
- ld [$dbfb], a
- ld a, l
- ld [$dbfc], a
- ld a, h
- ld [$dbfd], a
- ld a, c
- and a
- ret z
- ld bc, $0005
- call AddNTimes
- ret
-; 23f1
-
-Function23f1: ; 23f1
- ld a, [hli]
- ld c, a
- ld [$dbfe], a
- ld a, l
- ld [$dbff], a
- ld a, h
- ld [$dc00], a
- ld a, c
- and a
- ret z
- ld bc, $0008
- call AddNTimes
- ret
-; 2408
-
-Function2408: ; 2408
- ld a, [hli]
- ld c, a
- ld [$dc01], a
- ld a, l
- ld [$dc02], a
- ld a, h
- ld [$dc03], a
- ld a, c
- and a
- ret z
- ld bc, $0005
- call AddNTimes
- ret
-; 241f
-
-Function241f: ; 241f
- push hl
- call Function2471
- pop de
- ld hl, $d72e
- ld a, [de]
- inc de
- ld [$dc04], a
- ld a, e
- ld [$dc05], a
- ld a, d
- ld [$dc06], a
- ld a, [$dc04]
- call Function2457
- ld a, [$dc04]
- ld c, a
- ld a, $10
- sub c
- jr z, .asm_2454
- ld bc, $0001
- add hl, bc
- ld bc, $0010
-.asm_244a
- ld [hl], $0
- inc hl
- ld [hl], $ff
- dec hl
- add hl, bc
- dec a
- jr nz, .asm_244a
-
-.asm_2454
- ld h, d
- ld l, e
- ret
-; 2457
-
-Function2457: ; 2457
- and a
- ret z
- ld c, a
-.asm_245a
- push bc
- push hl
- ld a, $ff
- ld [hli], a
- ld b, $d
-.asm_2461
- ld a, [de]
- inc de
- ld [hli], a
- dec b
- jr nz, .asm_2461
- pop hl
- ld bc, $0010
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_245a
- ret
-; 2471
-
-Function2471: ; 2471
- ld hl, $d4fe
- ld bc, $01e0
- xor a
- call ByteFill
- ld hl, $d4fe
- ld de, $0028
- ld c, $c
- xor a
-.asm_2484
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_2484
- ret
-; 248a
-
-Function248a: ; 248a
- call GetMapEventBank
- rst Bankswitch
-
- ld hl, $d1a6
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- inc hl
- inc hl
- ld a, [WarpNumber]
- dec a
- ld c, a
- ld b, $0
- ld a, $5
- call AddNTimes
- ld a, [hli]
- ld [YCoord], a
- ld a, [hli]
- ld [XCoord], a
- ld a, [hli]
- cp $ff
- jr nz, .asm_24b3
- call Function24ba
-
-.asm_24b3
- ld a, $41
- ld hl, $486d
- rst FarCall
- ret
-; 24ba
-
-Function24ba: ; 24ba
- ld a, [$d149]
- ld [$dcac], a
- ld a, [$d14a]
- ld [BackupMapGroup], a
- ld a, [$d14b]
- ld [BackupMapNumber], a
- ret
-; 24cd
-
-Function24cd: ; 24cd
- ld hl, OverworldMap
- ld bc, $0514
- ld a, $0
- call ByteFill
- call Function24e4
- call FillMapConnections
- ld a, $1
- call Function263b
- ret
-; 24e4
-
-
-
-Function24e4: ; 24e4
- ld a, [hROMBank]
- push af
- ld hl, OverworldMap
- ld a, [$d19f]
- ld [hConnectedMapWidth], a
- add $6
- ld [hConnectionStripLength], a
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- add hl, bc
- ld c, $3
- add hl, bc
- ld a, [$d1a0]
- rst Bankswitch
-
- ld a, [$d1a1]
- ld e, a
- ld a, [$d1a2]
- ld d, a
- ld a, [$d19e]
- ld b, a
-.asm_250c
- push hl
- ld a, [hConnectedMapWidth]
- ld c, a
-.asm_2510
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_2510
- pop hl
- ld a, [hConnectionStripLength]
- add l
- ld l, a
- jr nc, .asm_251e
- inc h
-
-.asm_251e
- dec b
- jr nz, .asm_250c
- pop af
- rst Bankswitch
-
- ret
-; 2524
-
-
-
-FillMapConnections: ; 2524
-
-; North
- ld a, [NorthConnectedMapGroup]
- cp $ff
- jr z, .South
- ld b, a
- ld a, [NorthConnectedMapNumber]
- ld c, a
- call GetAnyMapBlockdataBank
-
- ld a, [NorthConnectionStripPointer]
- ld l, a
- ld a, [NorthConnectionStripPointer + 1]
- ld h, a
- ld a, [NorthConnectionStripLocation]
- ld e, a
- ld a, [NorthConnectionStripLocation + 1]
- ld d, a
- ld a, [NorthConnectionStripLength]
- ld [hConnectionStripLength], a
- ld a, [NorthConnectedMapWidth]
- ld [hConnectedMapWidth], a
- call FillNorthConnectionStrip
-
-.South
- ld a, [SouthConnectedMapGroup]
- cp $ff
- jr z, .West
- ld b, a
- ld a, [SouthConnectedMapNumber]
- ld c, a
- call GetAnyMapBlockdataBank
-
- ld a, [SouthConnectionStripPointer]
- ld l, a
- ld a, [SouthConnectionStripPointer + 1]
- ld h, a
- ld a, [SouthConnectionStripLocation]
- ld e, a
- ld a, [SouthConnectionStripLocation + 1]
- ld d, a
- ld a, [SouthConnectionStripLength]
- ld [hConnectionStripLength], a
- ld a, [SouthConnectedMapWidth]
- ld [hConnectedMapWidth], a
- call FillSouthConnectionStrip
-
-.West
- ld a, [WestConnectedMapGroup]
- cp $ff
- jr z, .East
- ld b, a
- ld a, [WestConnectedMapNumber]
- ld c, a
- call GetAnyMapBlockdataBank
-
- ld a, [WestConnectionStripPointer]
- ld l, a
- ld a, [WestConnectionStripPointer + 1]
- ld h, a
- ld a, [WestConnectionStripLocation]
- ld e, a
- ld a, [WestConnectionStripLocation + 1]
- ld d, a
- ld a, [WestConnectionStripLength]
- ld b, a
- ld a, [WestConnectedMapWidth]
- ld [hConnectionStripLength], a
- call FillWestConnectionStrip
-
-.East
- ld a, [EastConnectedMapGroup]
- cp $ff
- jr z, .Done
- ld b, a
- ld a, [EastConnectedMapNumber]
- ld c, a
- call GetAnyMapBlockdataBank
-
- ld a, [EastConnectionStripPointer]
- ld l, a
- ld a, [EastConnectionStripPointer + 1]
- ld h, a
- ld a, [EastConnectionStripLocation]
- ld e, a
- ld a, [EastConnectionStripLocation + 1]
- ld d, a
- ld a, [EastConnectionStripLength]
- ld b, a
- ld a, [EastConnectedMapWidth]
- ld [hConnectionStripLength], a
- call FillEastConnectionStrip
-
-.Done
- ret
-; 25d3
-
-
-FillNorthConnectionStrip:
-FillSouthConnectionStrip: ; 25d3
-
- ld c, 3
-.y
- push de
-
- push hl
- ld a, [hConnectionStripLength]
- ld b, a
-.x
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .x
- pop hl
-
- ld a, [hConnectedMapWidth]
- ld e, a
- ld d, 0
- add hl, de
- pop de
-
- ld a, [$d19f]
- add 6
- add e
- ld e, a
- jr nc, .asm_25f2
- inc d
-.asm_25f2
- dec c
- jr nz, .y
- ret
-; 25f6
-
-
-FillWestConnectionStrip:
-FillEastConnectionStrip: ; 25f6
-
-.asm_25f6
- ld a, [$d19f]
- add 6
- ld [hConnectedMapWidth], a
-
- push de
-
- push hl
- ld a, [hli]
- 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, [hConnectionStripLength]
- ld e, a
- ld d, 0
- add hl, de
- pop de
-
- ld a, [hConnectedMapWidth]
- add e
- ld e, a
- jr nc, .asm_2617
- inc d
-.asm_2617
- dec b
- jr nz, .asm_25f6
- ret
-; 261b
-
-Function261b: ; 261b
- ld [$d432], a
- ret
-; 261f
-
-CallScript: ; 261f
-; Call a script at a:hl.
-
- ld [ScriptBank], a
- ld a, l
- ld [ScriptPos], a
- ld a, h
- ld [ScriptPos + 1], a
-
- ld a, $ff
- ld [ScriptRunning], a
-
- scf
- ret
-; 2631
-
-Function2631: ; 2631
- ld a, [ScriptRunning]
- and a
- ret nz
- call GetMapEventBank
- jr CallScript
-; 263b
-
-Function263b: ; 263b
- ld b, a
- ld a, [hROMBank]
- push af
- call Function2c52
- call Function2653
- jr nc, .asm_2650
- call GetMapEventBank
- ld b, a
- ld d, h
- ld e, l
- call Function2674
-
-.asm_2650
- pop af
- rst Bankswitch
-
- ret
-; 2653
-
-Function2653: ; 2653
- ld a, [$dc0a]
- ld c, a
- and a
- ret z
- ld hl, $dc0b
- ld a, [hli]
- ld h, [hl]
- ld l, a
- or h
- ret z
- ld de, $0003
-.asm_2664
- ld a, [hl]
- cp b
- jr z, .asm_266e
- add hl, de
- dec c
- jr nz, .asm_2664
- xor a
- ret
-
-.asm_266e
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- scf
- ret
-; 2674
-
-Function2674: ; 2674
- callba Unknown_0x974f3
- ld a, [ScriptMode]
- push af
- ld hl, ScriptFlags
- ld a, [hl]
- push af
- set 1, [hl]
- callba Function96c56
- callba ScriptEvents
- pop af
- ld [ScriptFlags], a
- pop af
- ld [ScriptMode], a
- ret
-; 269a
-
-Function269a: ; 269a
- ld a, [hROMBank]
- push af
- ld a, b
- rst Bankswitch
-
- push hl
- call SpeechTextBox
- call Function2e31
- ld a, $1
- ld [hOAMUpdate], a
- call Function321c
- pop hl
- call PrintTextBoxText
- xor a
- ld [hOAMUpdate], a
- pop af
- rst Bankswitch
-
- ret
-; 26b7
-
-Function26b7: ; 26b7
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
-
- call Function26c5
- pop af
- rst Bankswitch
-
- ret
-; 26c5
-
-Function26c5: ; 26c5
- push de
- ret
-; 26c7
-
-Function26c7: ; 26c7
- ld a, [hROMBank]
- push af
- ld a, b
- rst Bankswitch
-
- ld a, c
- call Function19e9
- pop hl
- ld a, h
- rst Bankswitch
-
- ret
-; 26d4
-
-
-GetScriptByte: ; 0x26d4
-; Return byte at ScriptBank:ScriptPos in a.
-
- push hl
- push bc
-
- ld a, [hROMBank]
- push af
-
- ld a, [ScriptBank]
- rst Bankswitch
-
- ld hl, ScriptPos
- ld c, [hl]
- inc hl
- ld b, [hl]
-
- ld a, [bc]
-
- inc bc
- ld [hl], b
- dec hl
- ld [hl], c
-
- ld b, a
- pop af
- rst Bankswitch
- ld a, b
-
- pop bc
- pop hl
- ret
-; 0x26ef
-
-
-ObjectEvent: ; 0x26ef
- jumptextfaceplayer ObjectEventText
-; 0x26f2
-
-ObjectEventText:
- TX_FAR _ObjectEventText
- db "@"
-; 0x26f7
-
-
-BGEvent: ; 26f7
- jumptext BGEventText
-; 26fa
-
-BGEventText: ; 26fa
- text_jump UnknownText_0x1c46fc, BANK(UnknownText_0x1c46fc)
- db "@"
-; 26ff
-
-
-CoordinatesEvent: ; 26ff
- jumptext CoordinatesEventText
-; 2702
-
-CoordinatesEventText: ; 2702
- text_jump UnknownText_0x1c4706, BANK(UnknownText_0x1c4706)
- db "@"
-; 2707
-
-
-Function2707: ; 2707
- ld a, [hConnectionStripLength]
- ld e, a
- ld d, $0
- ld hl, $d81e
- add hl, de
- ld a, [hl]
- ret
-; 2712
-
-Function2712: ; 2712
- ld a, [hConnectionStripLength]
- ld e, a
- ld d, $0
- ld hl, $d81e
- add hl, de
- ld [hl], $ff
- ret
-; 271e
-
-Function271e: ; 271e
- ld a, [hConnectionStripLength]
- ld e, a
- ld d, $0
- ld hl, $d81e
- add hl, de
- ld [hl], $0
- ret
-; 272a
-
-
-Function272a: ; 272a
- ld hl, TileMap
- ld de, BGMapBuffer
- call Function27b7
- ld c, $28
- call Functiondbd
- ld a, [$d152]
- ld e, a
- ld a, [$d153]
- ld d, a
- call Function27d3
- ld a, $1
- ld [hBGMapUpdate], a
- ret
-; 2748
-
-Function2748: ; 2748
- ld hl, $c5e0
- ld de, BGMapBuffer
- call Function27b7
- ld c, $28
- call Functiondbd
- ld a, [$d152]
- ld l, a
- ld a, [$d153]
- ld h, a
- ld bc, $0200
- add hl, bc
- ld a, h
- and $3
- or $98
- ld e, l
- ld d, a
- call Function27d3
- ld a, $1
- ld [hBGMapUpdate], a
- ret
-; 2771
-
-Function2771: ; 2771
- ld hl, TileMap
- ld de, BGMapBuffer
- call Function27c0
- ld c, $24
- call Functiondbd
- ld a, [$d152]
- ld e, a
- ld a, [$d153]
- ld d, a
- call Function27f8
- ld a, $1
- ld [hBGMapUpdate], a
- ret
-; 278f
-
-Function278f: ; 278f
- ld hl, $c4b2
- ld de, BGMapBuffer
- call Function27c0
- ld c, $24
- call Functiondbd
- ld a, [$d152]
- ld e, a
- and $e0
- ld b, a
- ld a, e
- add $12
- and $1f
- or b
- ld e, a
- ld a, [$d153]
- ld d, a
- call Function27f8
- ld a, $1
- ld [hBGMapUpdate], a
- ret
-; 27b7
-
-Function27b7: ; 27b7
- ld c, $28
-.asm_27b9
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_27b9
- ret
-; 27c0
-
-Function27c0: ; 27c0
- ld c, $12
-.asm_27c2
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
- ld a, $13
- add l
- ld l, a
- jr nc, .asm_27cf
- inc h
-
-.asm_27cf
- dec c
- jr nz, .asm_27c2
- ret
-; 27d3
-
-Function27d3: ; 27d3
- ld hl, BGMapBufferPtrs
- push de
- call .asm_27df
- pop de
- ld a, $20
- add e
- ld e, a
-
-.asm_27df
- ld c, $a
-.asm_27e1
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, e
- inc a
- inc a
- and $1f
- ld b, a
- ld a, e
- and $e0
- or b
- ld e, a
- dec c
- jr nz, .asm_27e1
- ld a, $14
- ld [$ffdc], a
- ret
-; 27f8
-
-Function27f8: ; 27f8
- ld hl, BGMapBufferPtrs
- ld c, $12
-.asm_27fd
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, $20
- add e
- ld e, a
- jr nc, .asm_280e
- inc d
- ld a, d
- and $3
- or $98
- ld d, a
-
-.asm_280e
- dec c
- jr nz, .asm_27fd
- ld a, $12
- ld [$ffdc], a
- ret
-; 2816
-
-Function2816: ; 2816
- ld hl, BGMapBuffer
- ld bc, $0078
- xor a
- call ByteFill
- ret
-; 2821
-
-Function2821: ; 2821
- ld hl, TileSetAddress
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [TileSetBank]
- ld e, a
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld a, e
- ld de, $d000
- call FarDecompress
- ld hl, $d000
- ld de, VTiles2
- ld bc, $0600
- call CopyBytes
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld hl, $d600
- ld de, VTiles2
- ld bc, $0600
- call CopyBytes
- pop af
- ld [rVBK], a
- pop af
- ld [rSVBK], a
- ld a, [$d199]
- cp $1
- jr z, .asm_286f
- cp $2
- jr z, .asm_286f
- cp $4
- jr z, .asm_286f
- jr .asm_2875
-
-.asm_286f
- ld a, $7
- ld hl, $4000
- rst FarCall
-
-.asm_2875
- xor a
- ld [hTileAnimFrame], a
- ret
-; 2879
-
-Function2879: ; 2879
- ld hl, $d194
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, $dcb9
- ld c, $5
- ld b, $6
-.asm_2886
- push bc
- push hl
-.asm_2888
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .asm_2888
- pop hl
- ld a, [$d19f]
- add $6
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_2886
- ret
-; 289d
-
-Function289d: ; 289d
- ld hl, $d194
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, $dcb9
- ld a, [$d19f]
- add $6
- ld [hConnectionStripLength], a
- ld a, [$d151]
- and a
- jr z, .asm_28cb
- cp $1
- jr z, .asm_28c0
- cp $2
- jr z, .asm_28d4
- cp $3
- jr z, .asm_28da
- ret
-
-.asm_28c0
- ld de, $dcbf
- ld a, [hConnectionStripLength]
- ld c, a
- ld b, $0
- add hl, bc
- jr .asm_28ce
-
-.asm_28cb
- ld de, $dcb9
-
-.asm_28ce
- ld b, $6
- ld c, $4
- jr .asm_28f7
-
-.asm_28d4
- ld de, $dcba
- inc hl
- jr .asm_28dd
-
-.asm_28da
- ld de, $dcb9
-
-.asm_28dd
- ld b, $5
- ld c, $5
- jr .asm_28f7
-
- ld hl, $d194
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$d19f]
- add $6
- ld [hConnectionStripLength], a
- ld de, $dcb9
- ld b, $6
- ld c, $5
-
-.asm_28f7
- push bc
- push hl
- push de
-.asm_28fa
- ld a, [de]
- inc de
- ld [hli], a
- dec b
- jr nz, .asm_28fa
- pop de
- ld a, e
- add $6
- ld e, a
- jr nc, .asm_2908
- inc d
-
-.asm_2908
- pop hl
- ld a, [hConnectionStripLength]
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_28f7
- ret
-; 2914
-
-Function2914: ; 2914
- xor a
- ld [TilePermissions], a
- call Function296c
- call Function294d
- ld a, [MapX]
- ld d, a
- ld a, [MapY]
- ld e, a
- call Function2a3c
- ld [StandingTile], a
- call Function29ff
- ret nz
- ld a, [StandingTile]
- and 7
- ld hl, .data_2945
- add l
- ld l, a
- ld a, 0
- adc h
- ld h, a
- ld a, [hl]
- ld hl, TilePermissions
- or [hl]
- ld [hl], a
- ret
-; 2945
-
-.data_2945 ; 2945
- db 1, 2, 4, 8, 9, 10, 5, 6
-; 294d
-
-Function294d: ; 294d
- ld a, [MapX]
- ld d, a
- ld a, [MapY]
- ld e, a
- push de
- inc e
- call Function2a3c
- ld [TileDown], a
- call Function298b
- pop de
- dec e
- call Function2a3c
- ld [TileUp], a
- call Function29a8
- ret
-; 296c
-
-Function296c: ; 296c
- ld a, [MapX]
- ld d, a
- ld a, [MapY]
- ld e, a
- push de
- dec d
- call Function2a3c
- ld [TileLeft], a
- call Function29e2
- pop de
- inc d
- call Function2a3c
- ld [TileRight], a
- call Function29c5
- ret
-; 298b
-
-Function298b: ; 298b
- call Function29ff
- ret nz
- ld a, [TileDown]
- and $7
- cp $2
- jr z, .asm_299f
- cp $6
- jr z, .asm_299f
- cp $7
- ret nz
-
-.asm_299f
- ld a, [TilePermissions]
- or $8
- ld [TilePermissions], a
- ret
-; 29a8
-
-Function29a8: ; 29a8
- call Function29ff
- ret nz
- ld a, [TileUp]
- and $7
- cp $3
- jr z, .asm_29bc
- cp $4
- jr z, .asm_29bc
- cp $5
- ret nz
-
-.asm_29bc
- ld a, [TilePermissions]
- or $4
- ld [TilePermissions], a
- ret
-; 29c5
-
-Function29c5: ; 29c5
- call Function29ff
- ret nz
- ld a, [TileRight]
- and $7
- cp $1
- jr z, .asm_29d9
- cp $5
- jr z, .asm_29d9
- cp $7
- ret nz
-
-.asm_29d9
- ld a, [TilePermissions]
- or $1
- ld [TilePermissions], a
- ret
-; 29e2
-
-Function29e2: ; 29e2
- call Function29ff
- ret nz
- ld a, [TileLeft]
- and $7
- cp $0
- jr z, .asm_29f6
- cp $4
- jr z, .asm_29f6
- cp $6
- ret nz
-
-.asm_29f6
- ld a, [TilePermissions]
- or $2
- ld [TilePermissions], a
- ret
-; 29ff
-
-Function29ff: ; 29ff
- and $f0
- cp $b0
- ret z
- cp $c0
- ret
-; 2a07
-
-
-GetFacingTileCoord: ; 2a07
-; Return map coordinates in (d, e) and tile id in a
-; of the tile the player is facing.
-
- ld a, [PlayerDirection]
- and %1100
- srl a
- srl a
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- ld de, .Directions
- add hl, de
-
- ld d, [hl]
- inc hl
- ld e, [hl]
- inc hl
-
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [MapX]
- add d
- ld d, a
- ld a, [MapY]
- add e
- ld e, a
- ld a, [hl]
- ret
-
-.Directions
- ; x, y
- db 0, 1
- dw TileDown
- db 0, -1
- dw TileUp
- db -1, 0
- dw TileLeft
- db 1, 0
- dw TileRight
-; 2a3c
-
-
-Function2a3c: ; 2a3c
- call Function2a66
- ld a, [hl]
- and a
- jr z, .asm_2a63
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld a, [TileSetCollisionAddress]
- ld c, a
- ld a, [$d1e1]
- ld b, a
- add hl, bc
- rr d
- jr nc, .asm_2a56
- inc hl
-
-.asm_2a56
- rr e
- jr nc, .asm_2a5c
- inc hl
- inc hl
-
-.asm_2a5c
- ld a, [TileSetCollisionBank]
- call GetFarByte
- ret
-
-.asm_2a63
- ld a, $ff
- ret
-; 2a66
-
-Function2a66: ; 2a66
- ld a, [$d19f]
- add $6
- ld c, a
- ld b, $0
- ld hl, $c801
- add hl, bc
- ld a, e
- srl a
- jr z, .asm_2a84
- and a
-.asm_2a78
- srl a
- jr nc, .asm_2a7d
- add hl, bc
-
-.asm_2a7d
- sla c
- rl b
- and a
- jr nz, .asm_2a78
-
-.asm_2a84
- ld c, d
- srl c
- ld b, $0
- add hl, bc
- ret
-; 2a8b
-
-
-CheckFacingSign: ; 2a8b
- call GetFacingTileCoord
- ld b, a
- ld a, d
- sub 4
- ld d, a
- ld a, e
- sub 4
- ld e, a
- ld a, [$dc01]
- and a
- ret z
- ld c, a
- ld a, [hROMBank]
- push af
- call Function2c52
- call Function2aaa
- pop hl
- ld a, h
- rst Bankswitch
- ret
-; 2aaa
-
-Function2aaa: ; 2aaa
- ld hl, $dc02
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.asm_2ab0
- push hl
- ld a, [hli]
- cp e
- jr nz, .asm_2abb
- ld a, [hli]
- cp d
- jr nz, .asm_2abb
- jr .asm_2ac8
-
-.asm_2abb
- pop hl
- ld a, 5
- add l
- ld l, a
- jr nc, .asm_2ac3
- inc h
-
-.asm_2ac3
- dec c
- jr nz, .asm_2ab0
- xor a
- ret
-
-.asm_2ac8
- pop hl
- ld de, EngineBuffer1
- ld bc, 5
- call CopyBytes
- scf
- ret
-; 2ad4
-
-Function2ad4: ; 2ad4
- ld a, [$dbfe]
- and a
- ret z
- ld c, a
- ld a, [hROMBank]
- push af
- call Function2c52
- call Function2ae7
- pop hl
- ld a, h
- rst Bankswitch
- ret
-; 2ae7
-
-Function2ae7: ; 2ae7
- ld hl, $dbff
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Function211b
- ld b, a
- ld a, [MapX]
- sub $4
- ld d, a
- ld a, [MapY]
- sub $4
- ld e, a
-.asm_2afd
- push hl
- ld a, [hli]
- cp b
- jr z, .asm_2b06
- cp $ff
- jr nz, .asm_2b10
-
-.asm_2b06
- ld a, [hli]
- cp e
- jr nz, .asm_2b10
- ld a, [hli]
- cp d
- jr nz, .asm_2b10
- jr .asm_2b1d
-
-.asm_2b10
- pop hl
- ld a, $8
- add l
- ld l, a
- jr nc, .asm_2b18
- inc h
-
-.asm_2b18
- dec c
- jr nz, .asm_2afd
- xor a
- ret
-
-.asm_2b1d
- pop hl
- ld de, EngineBuffer1
- ld bc, $0008
- call CopyBytes
- scf
- ret
-; 2b29
-
-
-FadeToMenu: ; 2b29
- xor a
- ld [hBGMapMode], a
- call Function1d6e
- ld a, $23
- ld hl, $4084
- rst FarCall
- call ClearSprites
- call Function2ed3
- ret
-; 2b3c
-
-
-Function2b3c: ; 2b3c
- call WhiteBGMap
- call Function2bae
- call Function1ad2
- call Function1d7d
- call Functiond90
- jr Function2b5c
-; 2b4d
+INCLUDE "home/menu.asm"
+INCLUDE "home/handshake.asm"
+INCLUDE "home/game_time.asm"
+INCLUDE "home/map.asm"
-Function2b4d: ; 2b4d
- call WhiteBGMap
- call Function1d7d
- call Function2bae
- call Function1ad2
- call Functiond90
-; 2b5c
-
-Function2b5c: ; 2b5c
- ld b, $9
- call GetSGBLayout
- ld a, $12
- ld hl, $5409
- rst FarCall
- call Function3200
- ld a, $23
- ld hl, $4079
- rst FarCall
- call Function2ee4
- ret
-; 2b74
-
-
-Function2b74: ; 0x2b74
- push af
- ld a, $1
- ld [$c2ce], a
- call WhiteBGMap
- call ClearSprites
- call Function2bae
- ld hl, $c590 ; tile 0, 12
- ld bc, $0412
- call TextBox
- ld hl, VramState
- set 0, [hl]
- call Function1ad2
- call Function3200
- ld b, $9
- call GetSGBLayout
- callba Function49409
- call Function485
- call DelayFrame
- ld a, $1
- ld [$ffde], a
- pop af
- ret
-; 0x2bae
-
-Function2bae: ; 2bae
- call DisableLCD
- call ClearSprites
- ld a, $5
- ld hl, $4168
- rst FarCall
- call Functione51
- call Functione5f
- ld a, [hROMBank]
- push af
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call Function2c24
- ld a, $23
- ld hl, $4001
- rst FarCall
- call Function2173
- call Function2821
- ld a, $9
- call Function3cb4
- pop af
- rst Bankswitch
-
- call EnableLCD
- ret
-; 2be5
-
-
-GetMapHeaderPointer: ; 2be5
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
-; 2bed
-
-GetAnyMapHeaderPointer: ; 0x2bed
-; Prior to calling this function, you must have switched banks so that
-; MapGroupPointers is visible.
-
-; inputs:
-; b = map group, c = map number
-; XXX de = ???
-
-; outputs:
-; hl points to the map header
- push bc ; save map number for later
-
- ; get pointer to map group
- dec b
- ld c, b
- ld b, $0
- ld hl, MapGroupPointers
- add hl, bc
- add hl, bc
-
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop bc ; restore map number
-
- ; find the cth map header
- dec c
- ld b, $0
- ld a, OlivineGym_MapHeader - OlivinePokeCenter1F_MapHeader
- call AddNTimes
- ret
-; 0x2c04
-
-GetMapHeaderMember: ; 0x2c04
-; Extract data from the current map's header.
-
-; inputs:
-; de = offset of desired data within the mapheader
-
-; outputs:
-; bc = data from the current map's header
-; (e.g., de = $0003 would return a pointer to the secondary map header)
-
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- ; fallthrough
-
-GetAnyMapHeaderMember: ; 0x2c0c
- ; bankswitch
- ld a, [hROMBank]
- push af
- ld a, BANK(MapGroupPointers)
- rst Bankswitch
-
- call GetAnyMapHeaderPointer
- add hl, de
- ld c, [hl]
- inc hl
- ld b, [hl]
-
- ; bankswitch back
- pop af
- rst Bankswitch
- ret
-; 0x2c1c
-
-
-Function2c1c: ; 2c1c
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
-; 2c24
-
-Function2c24: ; 2c24
- call Function2c31
- rst Bankswitch
- ret
-; 2c29
-
-
-Function2c29: ; 2c29
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
-; 2c31
-
-Function2c31: ; 2c31
- push hl
- push de
- ld de, $0000
- call GetAnyMapHeaderMember
- ld a, c
- pop de
- pop hl
- ret
-; 2c3d
-
-Function2c3d: ; 2c3d
- ld a, [hROMBank]
- push af
- ld a, $25
- rst Bankswitch
- call GetMapHeaderPointer
- ld de, $d198
- ld bc, $0005
- call CopyBytes
- pop af
- rst Bankswitch
- ret
-; 2c52
-
-Function2c52: ; 2c52
- ld a, [MapEventBank]
- rst Bankswitch
- ret
-; 2c57
-
-
-GetMapEventBank: ; 2c57
- ld a, [MapEventBank]
- ret
-; 2c5b
-
-GetAnyMapBlockdataBank: ; 2c5b
-; Return the blockdata bank for group b map c.
- push hl
- push de
- push bc
-
- push bc
- ld de, 3 ; second map header pointer
- call GetAnyMapHeaderMember
- ld l, c
- ld h, b
- pop bc
-
- push hl
- ld de, 0 ; second map header bank
- call GetAnyMapHeaderMember
- pop hl
-
- ld de, 3 ; blockdata bank
- add hl, de
- ld a, c
- call GetFarByte
- rst Bankswitch
-
- pop bc
- pop de
- pop hl
- ret
-; 2c7d
-
-GetSecondaryMapHeaderPointer: ; 0x2c7d
-; returns the current map's secondary map header pointer in hl.
- push bc
- push de
- ld de, $0003 ; secondary map header pointer (offset within header)
- call GetMapHeaderMember
- ld l, c
- ld h, b
- pop de
- pop bc
- ret
-; 2c8a
-
-GetMapPermission: ; 2c8a
- push hl
- push de
- push bc
- ld de, 2
- call GetMapHeaderMember
- ld a, c
- pop bc
- pop de
- pop hl
- ret
-; 2c98
-
-Function2c98: ; 2c98
- ret
-; 2c99
-
-Function2c99: ; 2c99
- push hl
- push de
- push bc
- ld de, $0002
- call GetAnyMapHeaderMember
- ld a, c
- pop bc
- pop de
- pop hl
- ret
-; 2ca7
-
-Function2ca7: ; 2ca7
- ld de, $0001
- call GetAnyMapHeaderMember
- ld a, c
- ret
-; 2caf
-
-GetWorldMapLocation: ; 0x2caf
-; given a map group/id in bc, return its location on the Pokégear map.
- push hl
- push de
- push bc
- ld de, 5
- call GetAnyMapHeaderMember
- ld a, c
- pop bc
- pop de
- pop hl
- ret
-; 0x2cbd
-
-Function2cbd: ; 2cbd
- push hl
- push bc
- ld de, $0006
- call GetMapHeaderMember
- ld a, c
- cp $64
- jr z, .asm_2cee
- bit 7, c
- jr nz, .asm_2cda
- ld a, $22
- ld hl, $7342
- rst FarCall
- ld e, c
- ld d, $0
-.asm_2cd7
- pop bc
- pop hl
- ret
-
-.asm_2cda
- ld a, [StatusFlags2]
- bit 0, a
- jr z, .asm_2ce6
- ld de, $0056
- jr .asm_2cd7
-
-.asm_2ce6
- ld a, c
- and $7f
- ld e, a
- ld d, $0
- jr .asm_2cd7
-
-.asm_2cee
- ld a, [StatusFlags2]
- bit 7, a
- jr z, .asm_2cfa
- ld de, $0048
- jr .asm_2cd7
-
-.asm_2cfa
- ld de, $0026
- jr .asm_2cd7
-; 2cff
-
-Function2cff: ; 2cff
- call Function2d0d
- and $f
- ret
-; 2d05
-
-Function2d05: ; 2d05
- call Function2d0d
- and $f0
- swap a
- ret
-; 2d0d
-
-Function2d0d: ; 2d0d
- push hl
- push bc
- ld de, $0007
- call GetMapHeaderMember
- ld a, c
- pop bc
- pop hl
- ret
-; 2d19
-
-Function2d19: ; 2d19
- push de
- push hl
- push bc
- ld de, $0008
- call GetMapHeaderMember
- ld a, c
- pop bc
- pop hl
- pop de
- ret
-; 2d27
-
-Function2d27: ; 2d27
- push hl
- push bc
- ld hl, $5596
- ld bc, $000f
- ld a, [$d199]
- call AddNTimes
- ld de, TileSetBank
- ld bc, $000f
- ld a, $13
- call FarCopyBytes
- pop bc
- pop hl
- ret
-; 2d43
Function2d43: ; 2d43
+; Inexplicably empty.
+; Seen in PredefPointers.
nop
nop
nop
@@ -5015,134 +502,8 @@ Function2d43: ; 2d43
; 2d54
-FarCall_de: ; 2d54
-; Call a:de.
-; Preserves other registers.
-
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
- call .de
- jr ReturnFarCall
-
-.de
- push de
- ret
-; 2d63
-
-
-FarCall_hl: ; 2d63
-; Call a:hl.
-; Preserves other registers.
-
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
- call Function2d82
-; 2d6e
-
-ReturnFarCall: ; 2d6e
-; We want to retain the contents of f.
-; To do this, we can pop to bc instead of af.
-
- ld a, b
- ld [$cfb9], a
- ld a, c
- ld [$cfba], a
-
-; Restore the working bank.
- pop bc
- ld a, b
- rst Bankswitch
-
- ld a, [$cfb9]
- ld b, a
- ld a, [$cfba]
- ld c, a
- ret
-; 2d82
-
-Function2d82: ; 2d82
- jp [hl]
-; 2d83
-
-
-Predef: ; 2d83
-; call a function from given id a
-
-; relies on $cfb4-8
-
-; this function is somewhat unreadable at a glance
-; the execution flow is as follows:
-; save bank
-; get function from id
-; call function
-; restore bank
-; these are pushed to the stack in reverse
-
-; most of the $cfbx trickery is just juggling hl (which is preserved)
-; this allows hl, de and bc to be passed to the function
-
-; input:
-; a: id
-; parameters bc, de, hl
-
-; store id
- ld [$cfb4], a
-
-; save bank
- ld a, [hROMBank] ; current bank
- push af
-
-; get Predef function to call
-; GetPredefFn also stores hl in $cfb5-6
- ld a, BANK(GetPredefFn)
- rst Bankswitch
- call GetPredefFn
-; switch bank to Predef function
- rst Bankswitch
-
-; clean up after Predef call
- ld hl, .cleanup
- push hl
-
-; call Predef function from ret
- ld a, [$cfb7]
- ld h, a
- ld a, [$cfb8]
- ld l, a
- push hl
-
-; get hl back
- ld a, [$cfb5]
- ld h, a
- ld a, [$cfb6]
- ld l, a
- ret
-
-.cleanup
-; store hl
- ld a, h
- ld [$cfb5], a
- ld a, l
- ld [$cfb6], a
-
-; restore bank
- pop hl ; popping a pushed af. h = a (old bank)
- ld a, h
- rst Bankswitch
-
-; get hl back
- ld a, [$cfb5]
- ld h, a
- ld a, [$cfb6]
- ld l, a
- ret
-; 2dba
+INCLUDE "home/farcall.asm"
+INCLUDE "home/predef.asm"
ResetWindow: ; 2dba
@@ -5252,125 +613,16 @@ Function2e4e: ; 2e4e
ret
; 2e50
-Function2e50: ; 2e50
- xor a
- ld hl, $da72
- ld [hli], a
- ret
-; 2e56
-Function2e56: ; 2e56
- xor a
- ld hl, BikeFlags
- ld [hli], a
- ld [hl], a
- ret
-; 2e5d
-
-Function2e5d: ; 2e5d
- ld a, [$d19a]
- cp $2
- jr z, .asm_2e69
- cp $1
- jr z, .asm_2e69
- ret
+INCLUDE "home/flag.asm"
-.asm_2e69
- ld hl, StatusFlags
- res 2, [hl]
- ret
-; 2e6f
-
-
-EventFlagAction: ; 0x2e6f
- ld hl, EventFlags
- call FlagAction
- ret
-
-FlagAction: ; 0x2e76
-; Perform a function on a bit in memory.
-
-; inputs:
-; b: function
-; 0 clear bit
-; 1 set bit
-; 2 check bit
-; de: bit number
-; hl: index within bit table
-
- ; get index within the byte
- ld a, e
- and $7
-
- ; shift de right by three bits (get the index within memory)
- srl d
- rr e
- srl d
- rr e
- srl d
- rr e
- add hl, de
-
- ; implement a decoder
- ld c, $1
- rrca
- jr nc, .one
- rlc c
-.one
- rrca
- jr nc, .two
- rlc c
- rlc c
-.two
- rrca
- jr nc, .three
- swap c
-.three
-
- ; check b's value: 0, 1, 2
- ld a, b
- cp 1
- jr c, .clearbit ; 0
- jr z, .setbit ; 1
-
- ; check bit
- ld a, [hl]
- and c
- ld c, a
- ret
-
-.setbit
- ; set bit
- ld a, [hl]
- or c
- ld [hl], a
- ret
-
-.clearbit
- ; clear bit
- ld a, c
- cpl
- and [hl]
- ld [hl], a
- ret
-; 0x2ead
-
-
-Function2ead: ; 2ead
- ld de, ENGINE_POKEDEX
- ld b, CHECK_FLAG
- callba EngineFlagAction
- ld a, c
- and a
- ret
-; 2ebb
Function2ebb: ; 2ebb
ld a, [$c2cc]
bit 1, a
ret z
ld a, [hJoyDown]
- bit 1, a
+ bit A_BUTTON, a
ret
; 2ec6
@@ -5386,7 +638,6 @@ Function2ec8: ; 2ec8
ret
; 2ecb
-
Function2ecb: ; 2ecb
push hl
ld hl, $c2cc
@@ -5420,71 +671,40 @@ Function2ee4: ; 2ee4
; 2ef6
-InitString: ; 2ef6
-; Init a string of length c.
- push hl
- jr _InitString
-; 2ef9
+INCLUDE "home/string.asm"
-InitName: ; 2ef9
-; Intended for names, so this function is limited to ten characters.
- push hl
- ld c, 10
-; 2efc
-_InitString: ; 2efc
-; if the string pointed to by hl is empty (defined as "zero or more spaces
-; followed by a null"), then initialize it to the string pointed to by de.
- push bc
-.loop
- ld a, [hli]
- cp "@"
- jr z, .blank
- cp " "
- jr nz, .notblank
- dec c
- jr nz, .loop
-.blank
- pop bc
- ld l, e
- ld h, d
- pop de
- ld b, $0
- inc c
- call CopyBytes
- ret
-.notblank
- pop bc
- pop hl
- ret
-; 2f17
+IsInJohto: ; 2f17
+; Return 0 if the player is in Johto, and 1 in Kanto.
-Function2f17: ; 2f17
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
- cp $5f
- jr z, .asm_2f39
- cp $0
- jr nz, .asm_2f35
+
+ cp $5f ; SS Aqua
+ jr z, .Johto
+
+ cp $0 ; Poke Center 2F
+ jr nz, .CheckRegion
+
ld a, [BackupMapGroup]
ld b, a
ld a, [BackupMapNumber]
ld c, a
call GetWorldMapLocation
-.asm_2f35
- cp $2f
- jr nc, .asm_2f3b
+.CheckRegion
+ cp $2f ; Pallet Town
+ jr nc, .Kanto
-.asm_2f39
+.Johto
xor a
ret
-.asm_2f3b
- ld a, $1
+.Kanto
+ ld a, 1
ret
; 2f3e
@@ -5493,193 +713,10 @@ Function2f3e: ; 2f3e
ret
; 2f3f
-DoItemEffect: ; 2f3f
- callba _DoItemEffect
- ret
-; 2f46
-CheckTossableItem: ; 2f46
- push hl
- push de
- push bc
- callba _CheckTossableItem
- pop bc
- pop de
- pop hl
- ret
-; 2f53
-
-Function2f53: ; 2f53
- push hl
- push de
- push bc
- ld a, [hROMBank]
- push af
- ld a, $3
- rst Bankswitch
-
- call $520d
- pop bc
- ld a, b
- rst Bankswitch
-
- pop bc
- pop de
- pop hl
- ret
-; 2f66
-
-Function2f66: ; 2f66
- push bc
- ld a, [hROMBank]
- push af
- ld a, $3
- rst Bankswitch
-
- push hl
- push de
- call $51d5
- pop de
- pop hl
- pop bc
- ld a, b
- rst Bankswitch
-
- pop bc
- ret
-; 2f79
-
-PickUpItem: ; 2f79
- push hl
- push de
- push bc
- ld a, [hROMBank]
- push af
- ld a, BANK(_PickUpItem)
- rst Bankswitch
-
- call _PickUpItem
-
- pop bc
- ld a, b
- rst Bankswitch
- pop bc
- pop de
- pop hl
- ret
-; 2f8c
-
-
-Random: ; 2f8c
-; A simple hardware-based random number generator (RNG).
-
-; Two random numbers are generated by adding and subtracting
-; the divider to the respective values every time it's called.
-
-; The divider is a register that increments at a rate of 16384Hz.
-; For comparison, the Game Boy operates at a clock speed of 4.2MHz.
-
-; Additionally, an equivalent function is executed in VBlank.
-
-; This leaves a with the value in hRandomSub.
-
- push bc
-
- ld a, [rDIV]
- ld b, a
- ld a, [hRandomAdd]
- adc b
- ld [hRandomAdd], a
-
- ld a, [rDIV]
- ld b, a
- ld a, [hRandomSub]
- sbc b
- ld [hRandomSub], a
-
- pop bc
- ret
-; 2f9f
-
-BattleRandom: ; 2f9f
-; _BattleRandom lives in another bank.
-
-; It handles all RNG calls in the battle engine, allowing
-; link battles to remain in sync using a shared PRNG.
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_BattleRandom)
- rst Bankswitch
-
- call _BattleRandom
-
- ld [$cfb6], a
- pop af
- rst Bankswitch
- ld a, [$cfb6]
- ret
-; 2fb1
-
-
-Function2fb1: ; 2fb1
- push bc
- ld c, a
- xor a
- sub c
-.asm_2fb5
- sub c
- jr nc, .asm_2fb5
- add c
- ld b, a
- push bc
-.asm_2fbb
- call Random
- ld a, [hRandomAdd]
- ld c, a
- add b
- jr c, .asm_2fbb
- ld a, c
- pop bc
- call SimpleDivide
- pop bc
- ret
-; 2fcb
-
-GetSRAMBank: ; 2fcb
-; load sram bank a
-; if invalid bank, sram is disabled
- cp NUM_SRAM_BANKS
- jr c, OpenSRAM
- jr CloseSRAM
-; 2fd1
-
-OpenSRAM: ; 2fd1
-; switch to sram bank a
- push af
-; latch clock data
- ld a, 1
- ld [MBC3LatchClock], a
-; enable sram/clock write
- ld a, SRAM_ENABLE
- ld [MBC3SRamEnable], a
-; select sram bank
- pop af
- ld [MBC3SRamBank], a
- ret
-; 2fe1
-
-CloseSRAM: ; 2fe1
-; preserve a
- push af
- ld a, SRAM_DISABLE
-; reset clock latch for next time
- ld [MBC3LatchClock], a
-; disable sram/clock write
- ld [MBC3SRamEnable], a
- pop af
- ret
-; 2fec
+INCLUDE "home/item.asm"
+INCLUDE "home/random.asm"
+INCLUDE "home/sram.asm"
; Register aliases
@@ -5694,29 +731,7 @@ _de_: ; 2fed
; 2fef
-Function2fef: ; 2fef
- ld hl, rKEY1
- bit 7, [hl]
- jr z, Function2ffd
- ret
-; 2ff7
-
-Function2ff7: ; 2ff7
- ld hl, rKEY1
- bit 7, [hl]
- ret z
-; 2ffd
-
-Function2ffd: ; 2ffd
- set 0, [hl]
- xor a
- ld [rIF], a
- ld [rIE], a
- ld a, $30
- ld [rJOYP], a
- stop ; rgbasm adds a nop after this instruction by default
- ret
-; 300b
+INCLUDE "home/double_speed.asm"
ClearSprites: ; 300b
@@ -5744,139 +759,9 @@ HideSprites: ; 3016
ret
; 3026
-CopyBytes: ; 0x3026
-; copy bc bytes from hl to de
- inc b ; we bail the moment b hits 0, so include the last run
- inc c ; same thing; include last byte
- jr .HandleLoop
-.CopyByte
- ld a, [hli]
- ld [de], a
- inc de
-.HandleLoop
- dec c
- jr nz, .CopyByte
- dec b
- jr nz, .CopyByte
- ret
-SwapBytes: ; 0x3034
-; swap bc bytes between hl and de
-.Loop
- ; stash [hl] away on the stack
- ld a, [hl]
- push af
+INCLUDE "home/copy2.asm"
- ; copy a byte from [de] to [hl]
- ld a, [de]
- ld [hli], a
-
- ; retrieve the previous value of [hl]; put it in [de]
- pop af
- ld [de], a
-
- ; handle loop stuff
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .Loop
- ret
-
-ByteFill: ; 0x3041
-; fill bc bytes with the value of a, starting at hl
- inc b ; we bail the moment b hits 0, so include the last run
- inc c ; same thing; include last byte
- jr .HandleLoop
-.PutByte
- ld [hli], a
-.HandleLoop
- dec c
- jr nz, .PutByte
- dec b
- jr nz, .PutByte
- ret
-
-GetFarByte: ; 0x304d
-; retrieve a single byte from a:hl, and return it in a.
- ; bankswitch to new bank
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
-
- ; get byte from new bank
- ld a, [hl]
- ld [hBuffer], a
-
- ; bankswitch to previous bank
- pop af
- rst Bankswitch
-
- ; return retrieved value in a
- ld a, [hBuffer]
- ret
-
-GetFarHalfword: ; 0x305d
-; retrieve a halfword from a:hl, and return it in hl.
- ; bankswitch to new bank
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
-
- ; get halfword from new bank, put it in hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ; bankswitch to previous bank and return
- pop af
- rst Bankswitch
- ret
-; 0x306b
-
-Function306b: ; 306b
- ld [hBuffer], a
- ld a, [rSVBK]
- push af
- ld a, [hBuffer]
- ld [rSVBK], a
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 307b
-
-Function307b: ; 307b
- ld [hBuffer], a
- ld a, [rSVBK]
- push af
- ld a, [hBuffer]
- ld [rSVBK], a
- ld a, [hl]
- ld [hBuffer], a
- pop af
- ld [rSVBK], a
- ld a, [hBuffer]
- ret
-; 308d
-
-Function308d: ; 308d
- ld [hBuffer], a
- ld a, [rSVBK]
- push af
- ld a, [hBuffer]
- ld [rSVBK], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- ld [rSVBK], a
- ret
-; 309d
Function309d: ; 309d
ld a, [rSVBK]
@@ -5976,81 +861,7 @@ AddNTimes: ; 0x30fe
; 0x3105
-SimpleMultiply: ; 3105
-; Return a * c.
- and a
- ret z
-
- push bc
- ld b, a
- xor a
-.loop
- add c
- dec b
- jr nz, .loop
- pop bc
- ret
-; 3110
-
-
-SimpleDivide: ; 3110
-; Divide a by c. Return quotient b and remainder a.
- ld b, 0
-.loop
- inc b
- sub c
- jr nc, .loop
- dec b
- add c
- ret
-; 3119
-
-
-Multiply: ; 3119
-; Multiply hMultiplicand (3 bytes) by hMultiplier. Result in hProduct.
-; All values are big endian.
- push hl
- push bc
-
- callab _Multiply
-
- pop bc
- pop hl
- ret
-; 3124
-
-
-Divide: ; 3124
-; Divide hDividend length b (max 4 bytes) by hDivisor. Result in hQuotient.
-; All values are big endian.
- push hl
- push de
- push bc
- ld a, [hROMBank]
- push af
- ld a, BANK(_Divide)
- rst Bankswitch
-
- call _Divide
-
- pop af
- rst Bankswitch
- pop bc
- pop de
- pop hl
- ret
-; 3136
-
-
-SubtractSigned: ; 3136
-; Return a - b, sign in carry.
- sub b
- ret nc
- cpl
- add 1
- scf
- ret
-; 313d
+INCLUDE "home/math.asm"
PrintLetterDelay: ; 313d
@@ -6139,6 +950,7 @@ PrintLetterDelay: ; 313d
ret
; 318c
+
CopyDataUntil: ; 318c
; Copies [hl, bc) to [de, bc - hl).
; In other words, the source data is from hl up to but not including bc,
@@ -6155,12 +967,15 @@ CopyDataUntil: ; 318c
ret
; 0x3198
+
PrintNum: ; 3198
ld a, [hROMBank]
push af
ld a, BANK(_PrintNum)
rst Bankswitch
+
call _PrintNum
+
pop af
rst Bankswitch
ret
@@ -6170,18 +985,18 @@ PrintNum: ; 3198
Function31a4: ; 31a4
ld a, [hROMBank]
push af
- ld a, $41
+ ld a, BANK(Function1061ef)
rst Bankswitch
- call $61ef
+ call Function1061ef
+
pop af
rst Bankswitch
-
ret
; 31b0
-Function31b0: ; 31b0
+FarPrintText: ; 31b0
ld [hBuffer], a
ld a, [hROMBank]
push af
@@ -6189,13 +1004,14 @@ Function31b0: ; 31b0
rst Bankswitch
call PrintText
+
pop af
rst Bankswitch
-
ret
; 31be
-Function31be: ; 31be
+
+CallPointerAt: ; 31be
ld a, [hROMBank]
push af
ld a, [hli]
@@ -6213,10 +1029,13 @@ Function31be: ; 31be
ret
; 31cd
+
Function31cd: ; 31cd
+; Push pointer hl in the current bank to $d0e8.
ld a, [hROMBank]
Function31cf: ; 31cf
+; Push pointer a:hl to $d0e8.
ld [$d0e8], a
ld a, l
ld [$d0e9], a
@@ -6280,15 +1099,15 @@ Function3200: ; 0x3200
ld a, [hCGB]
and a
jr z, .asm_320e
- ld a, $2
+ ld a, 2
ld [hBGMapMode], a
- ld c, $4
+ ld c, 4
call DelayFrames
.asm_320e
- ld a, $1
+ ld a, 1
ld [hBGMapMode], a
- ld c, $4
+ ld c, 4
call DelayFrames
ret
; 0x3218
@@ -6305,9 +1124,11 @@ Function321c: ; 321c
ld a, [hCGB]
and a
jr z, .asm_322e
+
ld a, [$c2ce]
cp 0
jr z, .asm_322e
+
ld a, 1
ld [hBGMapMode], a
jr Function323d
@@ -6456,26 +1277,28 @@ ClearPalettes: ; 3317
ret
.cgb
-; Save WRAM bank
ld a, [rSVBK]
push af
-; WRAM bank 5
+
ld a, 5
ld [rSVBK], a
+
; Fill BGPals and OBPals with $ffff (white)
ld hl, BGPals
- ld bc, $0080
+ ld bc, $80
ld a, $ff
call ByteFill
-; Restore WRAM bank
+
pop af
ld [rSVBK], a
+
; Request palette update
ld a, 1
ld [hCGBPalUpdate], a
ret
; 333e
+
ClearSGB: ; 333e
ld b, $ff
GetSGBLayout: ; 3340
@@ -6549,9 +1372,9 @@ CountSetBits: ; 0x335f
GetWeekday: ; 3376
ld a, [CurDay]
-.loop
+.mod
sub 7
- jr nc, .loop
+ jr nc, .mod
add 7
ret
; 3380
@@ -6560,39 +1383,38 @@ GetWeekday: ; 3376
SetSeenAndCaughtMon: ; 3380
push af
ld c, a
- ld hl, PokedexSeen
- ld b, 1
- call GetWramFlag
+ ld hl, PokedexCaught
+ ld b, SET_FLAG
+ call PokedexFlagAction
pop af
; fallthrough
; 338b
-SetCaughtMon: ; 338b
+SetSeenMon: ; 338b
ld c, a
- ld hl, PokedexCaught
- ld b, 1
- jr GetWramFlag
+ ld hl, PokedexSeen
+ ld b, SET_FLAG
+ jr PokedexFlagAction
; 3393
-CheckSeenMon: ; 3393
+CheckCaughtMon: ; 3393
ld c, a
- ld hl, PokedexSeen
- ld b, 2
- jr GetWramFlag
+ ld hl, PokedexCaught
+ ld b, CHECK_FLAG
+ jr PokedexFlagAction
; 339b
-CheckCaughtMon: ; 339b
+CheckSeenMon: ; 339b
ld c, a
- ld hl, PokedexCaught
- ld b, 2
+ ld hl, PokedexSeen
+ ld b, CHECK_FLAG
; fallthrough
; 33a1
-GetWramFlag: ; 33a1
+PokedexFlagAction: ; 33a1
ld d, 0
ld a, PREDEF_FLAG
call Predef
-
ld a, c
and a
ret
@@ -6923,7 +1745,7 @@ Function350c: ; 350c
Function3524: ; 3524
ld hl, VramState
bit 0, [hl]
- jp nz, Function485
+ jp nz, UpdateTimePals
jp Function32f9
; 352f
@@ -7206,7 +2028,7 @@ CheckTrainerBattle: ; 360d
pop af
ld [$ffe0], a
ld a, b
- ld [CurFruit], a
+ ld [$d03f], a
ld a, c
ld [MartPointer], a
jr Function367e
@@ -7214,7 +2036,7 @@ CheckTrainerBattle: ; 360d
Function3674: ; 3674
ld a, $1
- ld [CurFruit], a
+ ld [$d03f], a
ld a, $ff
ld [MartPointer], a
@@ -7366,7 +2188,7 @@ Function3718: ; 3718
ld h, [hl]
ld l, a
call GetMapEventBank
- call Function31b0
+ call FarPrintText
call WaitBGMap
call Functiona80
ret
@@ -8250,16 +3072,19 @@ Function3b0c: ; 3b0c
ld a, [hLCDStatCustom]
and a
ret z
- ld a, $0
- ld [$cf68], a
+
+ ld a, $00
+ ld [Requested2bppSource], a
ld a, $d2
- ld [$cf69], a
- ld a, $0
- ld [$cf6a], a
+ ld [Requested2bppSource + 1], a
+
+ ld a, $00
+ ld [Requested2bppDest], a
ld a, $d1
- ld [$cf6b], a
+ ld [Requested2bppDest + 1], a
+
ld a, $9
- ld [$cf67], a
+ ld [Requested2bpp], a
ret
; 3b2a
@@ -9239,7 +4064,7 @@ LoadPushOAM: ; 4031
; 403f
PushOAM: ; 403f
- ld a, $c4
+ ld a, Sprites >> 8
ld [rDMA], a
ld a, $28
.loop
@@ -11176,7 +6001,7 @@ Function4c5d: ; 4c5d
inc [hl]
ld a, [hl]
ld d, $60
- call Function1b11
+ call Sine
ld a, h
sub $60
ld hl, $001a
@@ -11249,7 +6074,7 @@ Function4cc9: ; 4cc9
inc [hl]
ld a, [hl]
ld d, $60
- call Function1b11
+ call Sine
ld a, h
sub $60
ld hl, $001a
@@ -11340,7 +6165,7 @@ Function4d4f: ; 4d4f
inc [hl]
ld a, [hl]
ld d, $60
- call Function1b11
+ call Sine
ld a, h
sub $60
ld hl, $001a
@@ -12514,7 +7339,7 @@ Function57bc: ; 57bc
.asm_57c4
ld a, $0
- ld [$d4e1], a
+ ld [PlayerAction], a
ret
; 57ca
@@ -13786,7 +8611,7 @@ Function5f6b: ; 5f6b
bit 0, a
ret z
push hl
- ld hl, PokedexSeen
+ ld hl, PokedexCaught
ld b, $20
call CountSetBits
pop hl
@@ -14196,7 +9021,7 @@ Function620b: ; 620b
ld [hWY], a
ld b, $8
call GetSGBLayout
- call Function485
+ call UpdateTimePals
ld a, [$cf64]
cp $5
jr c, .asm_625e
@@ -14294,7 +9119,7 @@ TitleScreenEntrance: ; 62bc
; Lay out a base (all lines scrolling together).
ld e, a
- ld hl, $d100
+ ld hl, LYOverrides
ld bc, 8 * 10 ; logo height
call ByteFill
@@ -16746,7 +11571,7 @@ Function831e: ; 831e
call Function1b1e
ld a, $3e
call Function1b3f
- ld a, [CurFruit]
+ ld a, [$d03f]
dec a
jr z, Function833b
ld a, [$ffe0]
@@ -17069,17 +11894,22 @@ Function849d: ; 849d
ret
; 84d9
-Function84d9: ; 84d9
+_Sine: ; 84d9
+; A simple sine function.
+; Return d * sin(e) in hl.
+
+; e is a signed 6-bit value.
ld a, e
- and $3f
- cp $20
- jr nc, .asm_84e5
+ and %111111
+ cp %100000
+ jr nc, .negative
+
call Function84ef
ld a, h
ret
-.asm_84e5
- and $1f
+.negative
+ and %011111
call Function84ef
ld a, h
xor $ff
@@ -17091,62 +11921,63 @@ Function84ef: ; 84ef
ld e, a
ld a, d
ld d, 0
- ld hl, $450b
+ ld hl, SineWave
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld hl, 0
-.asm_84fe
+
+; Factor amplitude
+.multiply
srl a
- jr nc, .asm_8503
+ jr nc, .even
add hl, de
-
-.asm_8503
+.even
sla e
rl d
and a
- jr nz, .asm_84fe
+ jr nz, .multiply
ret
; 850b
-INCBIN "baserom.gbc", $850b, $854b - $850b
+SineWave: ; 850b
+; A $20-word table representing a sine wave.
+; 90 degrees is index $10 at a base amplitude of $100.
+x set 0
+ rept $20
+ dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
+x set x + $100 * $40000
+ endr
+; 854b
-GetPredefFn: ; 854b
-; input:
-; [$cfb4] id
+GetPredefPointer: ; 854b
+; Return the bank and address of PredefID in a and PredefAddress.
-; save hl for later
+; Save hl for later (back in Predef)
ld a, h
- ld [$cfb5], a
+ ld [PredefTemp], a
ld a, l
- ld [$cfb6], a
-
+ ld [PredefTemp + 1], a
+
push de
-
-; get id
- ld a, [$cfb4]
+ ld a, [PredefID]
ld e, a
- ld d, $0
+ ld d, 0
ld hl, PredefPointers
-; seek
add hl, de
add hl, de
add hl, de
-
pop de
-
-; store address in [$cfb7-8]
-; addr lo
+
ld a, [hli]
- ld [$cfb8], a
-; addr hi
+ ld [PredefAddress + 1], a
ld a, [hli]
- ld [$cfb7], a
-; get bank
+ ld [PredefAddress], a
ld a, [hl]
+
ret
; 856b
@@ -17155,23 +11986,23 @@ PredefPointers: ; 856b
; address, bank
dwb Function6508, BANK(Function6508)
- dwb $747a, $01
- dwb $4658, $03
- dwb $57c1, $13 ; Flag, BANK(Flag)
- dwb $4699, $03
+ dwb Function747a, BANK(Function747a)
+ dwb Functionc658, BANK(Functionc658)
+ dwb FlagPredef, BANK(FlagPredef)
+ dwb Functionc699, BANK(Functionc699)
dwb FillPP, BANK(FillPP)
dwb Functiond88c, BANK(Functiond88c)
- dwb $5a96, $03
- dwb $5b3f, $03
+ dwb Functionda96, BANK(Functionda96)
+ dwb Functiondb3f, BANK(Functiondb3f)
dwb Functionde6e, BANK(Functionde6e)
dwb Functiondf8c, BANK(Functiondf8c)
- dwb $46e0, $03
+ dwb Functionc6e0, BANK(Functionc6e0)
dwb Functione167, BANK(Functione167)
dwb Functione17b, BANK(Functione17b)
- dwb $5639, $04
- dwb $566a, $04
- dwb $4eef, $0a
- dwb $4b3e, $0b ; PrintMoveDescription, BANK(PrintMoveDescription)
+ dwb CanLearnTMHMMove, BANK(CanLearnTMHMMove)
+ dwb GetTMHMMove, BANK(GetTMHMMove)
+ dwb Function28eef, BANK(Function28eef)
+ dwb PrintMoveDesc, BANK(PrintMoveDesc)
dwb Function3df48, BANK(Function3df48) ; UpdatePlayerHUD
dwb FillBox, BANK(FillBox)
dwb Function3d873, BANK(Function3d873)
@@ -17182,141 +12013,135 @@ PredefPointers: ; 856b
dwb Function3f47c, BANK(Function3f47c)
dwb Function42487, BANK(Function42487)
dwb FillMoves, BANK(FillMoves)
- dwb $61e6, $10
- dwb $4f63, $0a
- dwb $4f24, $0a
- dwb $484a, $14
- dwb $4d6f, $14
- dwb $4d2e, $14
- dwb $4cdb, $14
- dwb $4c50, $14
+ dwb Function421e6, BANK(Function421e6)
+ dwb Function28f63, BANK(Function28f63)
+ dwb Function28f24, BANK(Function28f24)
+ dwb Function5084a, BANK(Function5084a)
+ dwb Function50d6f, BANK(Function50d6f)
+ dwb Function50d2e, BANK(Function50d2e)
+ dwb Function50cdb, BANK(Function50cdb)
+ dwb Function50c50, BANK(Function50c50)
dwb GetGender, BANK(GetGender)
dwb StatsScreenInit, BANK(StatsScreenInit)
dwb DrawPlayerHP, BANK(DrawPlayerHP)
dwb DrawEnemyHP, BANK(DrawEnemyHP)
- dwb $4b7b, $14
+ dwb Function50b7b, BANK(Function50b7b)
dwb GetTypeName, BANK(GetTypeName)
dwb PrintMoveType, BANK(PrintMoveType)
dwb PrintType, BANK(PrintType)
dwb PrintMonTypes, BANK(PrintMonTypes)
- dwb $5040, $14 ; GetUnownLetter
- dwb $7cdd, $32
- dwb $40d5, $33
- dwb $5853, $02
- dwb $464c, $02 ; LoadSGBLayout, BANK(LoadSGBLayout)
- dwb $5d11, $24
+ dwb GetUnownLetter, BANK(GetUnownLetter)
+ dwb Functioncbcdd, BANK(Functioncbcdd)
+ dwb Functioncc0d5, BANK(Functioncc0d5)
+ dwb Function9853, BANK(Function9853)
+ dwb Function864c, BANK(Function864c)
+ dwb Function91d11, BANK(Function91d11)
dwb CheckContestMon, BANK(CheckContestMon)
dwb Function8c20f, BANK(Function8c20f)
- dwb $4000, $23
- dwb $4000, $23
+ dwb Function8c000, BANK(Function8c000)
+ dwb Function8c000, BANK(Function8c000)
dwb Functioncc0d6, BANK(Functioncc0d6)
- dwb $40d5, $33
- dwb $40d5, $33
- dwb $51d0, $3f
+ dwb Functioncc0d5, BANK(Functioncc0d5)
+ dwb Functioncc0d5, BANK(Functioncc0d5)
+ dwb Functionfd1d0, BANK(Functionfd1d0)
dwb PartyMonItemName, BANK(PartyMonItemName)
- dwb $5077, $14
- dwb $516c, $14
- dwb $508b, $14
+ dwb Function51077, BANK(Function51077)
+ dwb Function5116c, BANK(Function5116c)
+ dwb Function5108b, BANK(Function5108b)
dwb Function5120d, BANK(Function5120d)
dwb DecompressPredef, BANK(DecompressPredef)
dwb Function0x347d3, BANK(Function0x347d3)
- dwb $7908, $3e
- dwb $7877, $3e
- dwb $4000, $34
+ dwb Functionfb908, BANK(Functionfb908)
+ dwb Functionfb877, BANK(Functionfb877)
+ dwb Functiond0000, BANK(Functiond0000)
dwb Function50d0a, BANK(Function50d0a)
- dwb $40a3, $34
- dwb $408e, $34
- dwb $4669, $34
- dwb $466e, $34
- dwb $43ff, $2d
+ dwb Functiond00a3, BANK(Functiond00a3)
+ dwb Functiond008e, BANK(Functiond008e)
+ dwb Functiond0669, BANK(Functiond0669)
+ dwb Functiond066e, BANK(Functiond066e)
+ dbw $ff, Function2d43 ; ????
; 864c
-Function864c: ; 864c
- call Function8d55
- jp nz, Function8d59
- ld a, b
- cp $ff
- jr nz, .asm_865a
- ld a, [SGBPredef]
+INCLUDE "predef/sgb.asm"
-.asm_865a
- cp $fc
- jp z, Function8ade
- ld l, a
- ld h, 0
- add hl, hl
- ld de, $466f
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Function8a60
- push de
- jp [hl]
-; 866f
-INCBIN "baserom.gbc", $866f, $8a60 - $866f
+CheckShininess: ; 8a68
+; Check if a mon is shiny by DVs at bc.
+; Return carry if shiny.
-Function8a60: ; 8a60
- push de
- call Function9809
- pop hl
- jp Function9809
-; 8a68
+ ld l, c
+ ld h, b
+; Attack
+ ld a, [hl]
+ and %0010 << 4
+ jr z, .NotShiny
-CheckShininess: ; 0x8a68
-; given a pointer to Attack/Defense DV in bc, determine if monster is shiny.
-; if shiny, set carry.
- ld l,c
- ld h,b
- ld a,[hl]
- and a,%00100000 ; is attack DV xx1x?
- jr z,.NotShiny
- ld a,[hli]
- and a,%1111
- cp $A ; is defense DV 1010?
- jr nz,.NotShiny
- ld a,[hl]
- and a,%11110000
- cp $A0 ; is speed DV 1010?
- jr nz,.NotShiny
- ld a,[hl]
- and a,%1111
- cp $A ; is special DV 1010?
- jr nz,.NotShiny
+; Defense
+ ld a, [hli]
+ and %1111
+ cp %1010
+ jr nz, .NotShiny
+
+; Speed
+ ld a, [hl]
+ and %1111 << 4
+ cp %1010 << 4
+ jr nz, .NotShiny
+
+; Special
+ ld a, [hl]
+ and %1111
+ cp %1010
+ jr nz, .NotShiny
+
+.Shiny
scf
ret
+
.NotShiny
- and a ; clear carry flag
+ and a
ret
; 8a88
CheckContestMon: ; 8a88
+; Check a mon's DVs at hl in the bug catching contest.
+; Return carry if its DVs are good enough to place in the contest.
+
+; Attack
ld a, [hl]
- cp $a0
- jr c, .asm_8aa2
+ cp 10 << 4
+ jr c, .Bad
+
+; Defense
ld a, [hli]
and $f
- cp $a
- jr c, .asm_8aa2
+ cp 10
+ jr c, .Bad
+
+; Speed
ld a, [hl]
- cp $a0
- jr c, .asm_8aa2
+ cp 10 << 4
+ jr c, .Bad
+
+; Special
ld a, [hl]
and $f
- cp $a
- jr c, .asm_8aa2
+ cp 10
+ jr c, .Bad
+
+.Good
scf
ret
-.asm_8aa2
+.Bad
and a
ret
; 8aa4
+
Function8aa4: ; 8aa4
push de
push bc
@@ -17379,25 +12204,78 @@ Function8ade: ; 8ade
; 8b07
Function8b07: ; 8b07
- call Function8d55
+ call CheckCGB
ret z
ld hl, $4b2f
ld de, $d000
ld bc, $0008
ld a, $5
- call Function306b
+ call FarCopyWRAM
ld hl, $4b37
ld de, MartPointer
ld bc, $0008
ld a, $5
- call Function306b
+ call FarCopyWRAM
call Function96a4
ld a, $1
ld [hCGBPalUpdate], a
ret
; 8b2f
-INCBIN "baserom.gbc", $8b2f, $8cb4 - $8b2f
+INCBIN "baserom.gbc", $8b2f, $8c43 - $8b2f
+
+Function8c43: ; 8c43
+ ld a, [$d10a]
+ and a
+ jr z, .asm_8c52
+ cp $1
+ jr z, .asm_8c57
+ cp $2
+ jr z, .asm_8c70
+ ret
+
+.asm_8c52
+ ld de, $d092
+ jr .asm_8c5a
+
+.asm_8c57
+ ld de, $d09a
+
+.asm_8c5a
+ ld l, c
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ ld bc, $0004
+ ld a, $5
+ call FarCopyWRAM
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+
+.asm_8c70
+ ld e, c
+ inc e
+ ld hl, $cdf8
+ ld bc, $0028
+ ld a, [CurPartyMon]
+.asm_8c7b
+ and a
+ jr z, .asm_8c82
+ add hl, bc
+ dec a
+ jr .asm_8c7b
+
+.asm_8c82
+ ld bc, $0208
+ ld a, e
+ call Function9663
+ ret
+; 8c8a
+
+INCBIN "baserom.gbc", $8c8a, $8cb4 - $8c8a
Function8cb4: ; 8cb4
ld l, e
@@ -17407,7 +12285,7 @@ Function8cb4: ; 8cb4
add hl, hl
ld de, $4d05
add hl, de
- call Function8d55
+ call CheckCGB
jr nz, .asm_8cf0
push hl
ld hl, $5ce6
@@ -17435,7 +12313,7 @@ Function8cb4: ; 8cb4
ld de, $d000
ld bc, $0008
ld a, $5
- call Function306b
+ call FarCopyWRAM
call Function96a4
call Function9699
call Function96b3
@@ -17445,231 +12323,10 @@ Function8cb4: ; 8cb4
INCBIN "baserom.gbc", $8d05, $8d55 - $8d05
-Function8d55: ; 8d55
- ld a, [hCGB]
- and a
- ret
-; 8d59
-
-Function8d59: ; 8d59
- ld a, b
- cp $ff
- jr nz, .asm_8d61
- ld a, [SGBPredef]
-
-.asm_8d61
- cp $fc
- jp z, Function96f3
- call Function9673
- ld l, a
- ld h, $0
- add hl, hl
- ld de, $4d7a
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Function8d79
- push de
- jp [hl]
-; 8d79
+INCLUDE "predef/cgb.asm"
-Function8d79: ; 8d79
- ret
-; 8d7a
-INCBIN "baserom.gbc", $8d7a, $8db8 - $8d7a
-
-Function8db8: ; 8db8
- ld hl, $5c67
- ld de, $d000
- ld c, $4
- call $5615
- ld hl, $5c67
- ld de, $d020
- ld c, $4
- call $5615
- ld hl, $5c67
- ld de, MartPointer
- ld c, $2
- call $5615
- jr .asm_8e23
-
- ld de, $d000
- call Function9729
- push hl
- call Function9643
- call Function973a
- push hl
- call Function9643
- ld a, [EnemyHPPal]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, $68be
- add hl, bc
- call Function9643
- ld a, [PlayerHPPal]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, $68be
- add hl, bc
- call Function9643
- ld hl, $68ca
- call Function9643
- ld de, MartPointer
- pop hl
- call Function9643
- pop hl
- call Function9643
- ld a, $1
- ld [SGBPredef], a
- call Function96a4
-
-.asm_8e23
- call Function8e85
- ld hl, AttrMap
- ld bc, $0168
- ld a, $2
- call ByteFill
- ld hl, $ce29
- ld bc, $080a
- ld a, $0
- call Function9663
- ld hl, $cde3
- ld bc, $070a
- ld a, $1
- call Function9663
- ld hl, AttrMap
- ld bc, $040a
- ld a, $2
- call Function9663
- ld hl, $ce6f
- ld bc, $050a
- ld a, $3
- call Function9663
- ld hl, $cebf
- ld bc, $0109
- ld a, $4
- call Function9663
- ld hl, $cec9
- ld bc, $0078
- ld a, $7
- call ByteFill
- ld hl, $579c
- ld de, $d050
- ld bc, $0030
- ld a, $5
- call Function306b
- call Function96b3
- ret
-; 8e85
-
-
-Function8e85: ; 8e85
- ld a, $40
- ld hl, $4dc0
- rst FarCall
- ld hl, $7311
- jr nc, .asm_8e93
- ld hl, $7309
-
-.asm_8e93
- ld de, $d038
- ld bc, $0008
- ld a, $5
- call Function306b
- ret
-; 8e9f
-
-Function8e9f: ; 8e9f
- callba Function100dc0
- ld hl, $7311
- jr nc, .asm_8ead
- ld hl, $7309
-
-.asm_8ead
- ld de, $d000
- ld bc, $0008
- ld a, $5
- call Function306b
- ret
-; 8eb9
-
-Function8eb9: ; 8eb9
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_8ec5
- ld hl, $7759
- jr .asm_8ec8
-
-.asm_8ec5
- ld hl, $7729
-
-.asm_8ec8
- ld de, $d000
- ld bc, $0030
- ld a, $5
- call Function306b
- call Function96a4
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8edb
-
-Function8edb: ; 8edb
- ld de, $d000
- ld a, [$cda1]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, $68be
- add hl, bc
- call Function9643
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call Function974b
- call Function9643
- ld hl, $68ca
- call Function9643
- ld hl, $4f52
- ld de, $d018
- ld bc, $0018
- ld a, $5
- call Function306b
- call Function9699
- ld hl, AttrMap
- ld bc, $0814
- ld a, $1
- call Function9663
- ld hl, $cf23
- ld bc, $000a
- ld a, $2
- call ByteFill
- ld hl, $ce4a
- ld bc, $0202
- ld a, $3
- call Function9663
- ld hl, $ce4c
- ld bc, $0202
- ld a, $4
- call Function9663
- ld hl, $ce4e
- ld bc, $0202
- ld a, $5
- call Function9663
- call Function96b3
- call Function96a4
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8f52
-
-INCBIN "baserom.gbc", $8f52, $9610 - $8f52
+INCBIN "baserom.gbc", $95e0, $9610 - $95e0
Function9610: ; 9610
@@ -17809,7 +12466,7 @@ Function96a4: ; 96a4
ld de, $d080
ld bc, $0080
ld a, $5
- call Function306b
+ call FarCopyWRAM
ret
; 96b3
@@ -17891,7 +12548,7 @@ Function971a: ; 971a
ld de, MartPointer
ld bc, $0010
ld a, $5
- call Function306b
+ call FarCopyWRAM
ret
; 9729
@@ -17938,6 +12595,8 @@ Function9764: ; 9764
and a
jp nz, Function97f9
ld a, [TrainerClass]
+
+Function976b: ; 976b
ld l, a
ld h, $0
add hl, hl
@@ -17947,7 +12606,12 @@ Function9764: ; 9764
ret
; 9775
-INCBIN "baserom.gbc", $9775, $97ee - $9775
+Function9775: ; 9775
+ call Function97ee
+ ret
+; 9779
+
+INCBIN "baserom.gbc", $9779, $97ee - $9779
Function97ee: ; 97ee
ld l, a
@@ -18028,11 +12692,41 @@ Function981a: ; 981a
ret
; 9853
-INCBIN "baserom.gbc", $9853, $9890 - $9853
+Function9853: ; 9853
+ call CheckCGB
+ ret nz
+ di
+ ld a, [$cfbe]
+ push af
+ set 7, a
+ ld [$cfbe], a
+ xor a
+ ld [rJOYP], a
+ ld [hSGB], a
+ call Function994a
+ jr nc, .asm_988a
+ ld a, $1
+ ld [hSGB], a
+ call Function98eb
+ call Function99b4
+ call Function9a7a
+ call Function993f
+ call Function992c
+ call Function9a7a
+ call Function993f
+ ld hl, $5d66
+ call Function981a
+
+.asm_988a
+ pop af
+ ld [$cfbe], a
+ ei
+ ret
+; 9890
Function9890: ; 9890
- call Function8d55
+ call CheckCGB
ret z
ld a, $1
ld [rVBK], a
@@ -18087,7 +12781,181 @@ Function98df: ; 98df
ret
; 98eb
-INCBIN "baserom.gbc", $98eb, $9a52 - $98eb
+Function98eb: ; 98eb
+ ld hl, $58ff
+ ld c, $9
+.asm_98f0
+ push bc
+ ld a, [hli]
+ push hl
+ ld h, [hl]
+ ld l, a
+ call Function981a
+ pop hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_98f0
+ ret
+; 98ff
+
+INCBIN "baserom.gbc", $98ff, $992c - $98ff
+
+Function992c: ; 992c
+ call Function9938
+ push de
+ call Function9a24
+ pop hl
+ call Function99d8
+ ret
+; 9938
+
+Function9938: ; 9938
+ ld hl, $651e
+ ld de, $606e
+ ret
+; 993f
+
+Function993f: ; 993f
+ ld hl, VTiles0
+ ld bc, $2000
+ xor a
+ call ByteFill
+ ret
+; 994a
+
+Function994a: ; 994a
+ ld hl, $5d26
+ call Function981a
+ call Function9a7a
+ ld a, [rJOYP]
+ and $3
+ cp $3
+ jr nz, .asm_99a6
+ ld a, $20
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ call Function9a7a
+ call Function9a7a
+ ld a, $30
+ ld [rJOYP], a
+ call Function9a7a
+ call Function9a7a
+ ld a, $10
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ call Function9a7a
+ call Function9a7a
+ ld a, $30
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ call Function9a7a
+ call Function9a7a
+ ld a, [rJOYP]
+ and $3
+ cp $3
+ jr nz, .asm_99a6
+ call Function99ab
+ and a
+ ret
+
+.asm_99a6
+ call Function99ab
+ scf
+ ret
+; 99ab
+
+Function99ab: ; 99ab
+ ld hl, $5d16
+ call Function981a
+ jp Function9a7a
+; 99b4
+
+Function99b4: ; 99b4
+ call DisableLCD
+ ld a, $e4
+ ld [rBGP], a
+ ld hl, $5df6
+ ld de, VTiles1
+ ld bc, $1000
+ call CopyData
+ call DrawDefaultTiles
+ ld a, $e3
+ ld [rLCDC], a
+ ld hl, $5d06
+ call Function981a
+ xor a
+ ld [rBGP], a
+ ret
+; 99d8
+
+Function99d8: ; 99d8
+ call DisableLCD
+ ld a, $e4
+ ld [rBGP], a
+ ld de, VTiles1
+ ld bc, $0140
+ call CopyData
+ ld b, $12
+.asm_99ea
+ push bc
+ ld bc, $000c
+ call CopyData
+ ld bc, $0028
+ call ClearBytes
+ ld bc, $000c
+ call CopyData
+ pop bc
+ dec b
+ jr nz, .asm_99ea
+ ld bc, $0140
+ call CopyData
+ ld bc, Start
+ call ClearBytes
+ ld bc, $0080
+ call CopyData
+ call DrawDefaultTiles
+ ld a, $e3
+ ld [rLCDC], a
+ ld hl, $5d46
+ call Function981a
+ xor a
+ ld [rBGP], a
+ ret
+; 9a24
+
+Function9a24: ; 9a24
+ call DisableLCD
+ ld a, $e4
+ ld [rBGP], a
+ ld de, VTiles1
+ ld b, $80
+.asm_9a30
+ push bc
+ ld bc, $0010
+ call CopyData
+ ld bc, $0010
+ call ClearBytes
+ pop bc
+ dec b
+ jr nz, .asm_9a30
+ call DrawDefaultTiles
+ ld a, $e3
+ ld [rLCDC], a
+ ld hl, $5d36
+ call Function981a
+ xor a
+ ld [rBGP], a
+ ret
+; 9a52
CopyData: ; 0x9a52
; copy bc bytes of data from hl to de
@@ -18161,7 +13029,106 @@ INCBIN "baserom.gbc", $b0ae, $b0d2 - $b0ae
TrainerPalettes:
INCLUDE "gfx/trainers/palette_pointers.asm"
-INCBIN "baserom.gbc", $b1de, $b319 - $b1de
+Functionb1de: ; b1de
+ callba Function494ac
+ jr c, .asm_b230
+ ld a, [$d19a]
+ and $7
+ ld e, a
+ ld d, $0
+ ld hl, $7279
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [TimeOfDayPal]
+ and $3
+ add a
+ add a
+ add a
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Unkn1Pals
+ ld b, $8
+.asm_b210
+ ld a, [de]
+ push de
+ push hl
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, MornPal
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ ld c, $8
+.asm_b222
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_b222
+ pop de
+ inc de
+ dec b
+ jr nz, .asm_b210
+ pop af
+ ld [rSVBK], a
+
+.asm_b230
+ ld a, [TimeOfDayPal]
+ and $3
+ ld bc, $0040
+ ld hl, $7469
+ call AddNTimes
+ ld de, Unkn2Pals
+ ld bc, $0040
+ ld a, $5
+ call FarCopyWRAM
+ ld a, [$d19a]
+ cp $1
+ jr z, .asm_b253
+ cp $2
+ ret nz
+
+.asm_b253
+ ld a, [MapGroup]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, $7569
+ add hl, de
+ ld a, [TimeOfDayPal]
+ and $3
+ cp $2
+ jr c, .asm_b26d
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+
+.asm_b26d
+ ld de, $d032
+ ld bc, $0004
+ ld a, $5
+ call FarCopyWRAM
+ ret
+; b279
+
+INCBIN "baserom.gbc", $b279, $b319 - $b279
MornPal: ; 0xb319
INCBIN "tilesets/morn.pal"
@@ -18218,184 +13185,253 @@ Functionc01b: ; c01b
SpecialsPointers: ; c029
dbw BANK(Function97c28), Function97c28
- dbw $0a, $5ce8
- dbw $0a, $5d11
- dbw $0a, $5d92
- dbw $0a, $5e66
- dbw $0a, $5e82
- dbw $0a, $5efa
- dbw $0a, $5eee
- dbw $0a, $5c92
- dbw $0a, $5cf1
- dbw $0a, $5cfa
- dbw $0a, $5bfb
- dbw $0a, $5c7b
- dbw $0a, $5ec4
- dbw $0a, $5ed9
- dbw $0a, $5eaf
- dbw $0a, $5f47
- dbw $03, $42f6
- dbw $03, $4309
- dbw $41, $50b9
- dbw $03, $434a
- dbw $13, $59e5
- dbw $04, $7a12
- dbw $04, $7a31
- dbw $04, $75db
- dbw $3e, $7b32
- dbw $3e, $7cd2
- dbw $03, $4658
- dbw $05, $559a
- dbw $03, $42e7
- dbw $05, $66d6
- dbw $05, $672a
- dbw $05, $6936
- dbw $0b, $4547
- dbw $05, $6218
- dbw $23, $4c04
+ dbw BANK(Function29ce8), Function29ce8
+ dbw BANK(Function29d11), Function29d11
+ dbw BANK(Function29d92), Function29d92
+ dbw BANK(Function29e66), Function29e66
+ dbw BANK(Function29e82), Function29e82
+ dbw BANK(Function29efa), Function29efa
+ dbw BANK(Function29eee), Function29eee
+ dbw BANK(Function29c92), Function29c92
+ dbw BANK(Function29cf1), Function29cf1
+ dbw BANK(Function29cfa), Function29cfa
+ dbw BANK(Function29bfb), Function29bfb
+ dbw BANK(Function29c7b), Function29c7b
+ dbw BANK(Function29ec4), Function29ec4
+ dbw BANK(Function29ed9), Function29ed9
+ dbw BANK(Function29eaf), Function29eaf
+ dbw BANK(Function29f47), Function29f47
+ dbw BANK(Functionc2f6), Functionc2f6
+ dbw BANK(Functionc309), Functionc309
+ dbw BANK(Function1050b9), Function1050b9
+ dbw BANK(Functionc34a), Functionc34a
+ dbw BANK(Function4d9e5), Function4d9e5
+ dbw BANK(Function13a12), Function13a12
+ dbw BANK(Function13a31), Function13a31
+ dbw BANK(Function135db), Function135db
+ dbw BANK(Functionfbb32), Functionfbb32
+ dbw BANK(Functionfbcd2), Functionfbcd2
+ dbw BANK(Functionc658), Functionc658
+ dbw BANK(Function1559a), Function1559a
+ dbw BANK(Functionc2e7), Functionc2e7
+ dbw BANK(Function166d6), Function166d6
+ dbw BANK(Function1672a), Function1672a
+ dbw BANK(Function16936), Function16936
+ dbw BANK(Function2c547), Function2c547
+ dbw BANK(Function16218), Function16218
+ dbw BANK(Function8cc04), Function8cc04
dbw BANK(SpecialNameRival), SpecialNameRival
- dbw $24, $4913
- dbw $03, $42c0
- dbw $03, $42cd
- dbw $03, $4355
- dbw $03, $4360
- dbw $03, $4373
- dbw $03, $4380
- dbw $03, $438d
- dbw $03, $43db
+ dbw BANK(Function90913), Function90913
+ dbw BANK(Functionc2c0), Functionc2c0
+ dbw BANK(Functionc2cd), Functionc2cd
+ dbw BANK(Functionc355), Functionc355
+ dbw BANK(Functionc360), Functionc360
+ dbw BANK(Functionc373), Functionc373
+ dbw BANK(Functionc380), Functionc380
+ dbw BANK(Functionc38d), Functionc38d
+ dbw BANK(Functionc3db), Functionc3db
dbw BANK(Function8c084), Function8c084
- dbw $23, $4092
- dbw $23, $40b6
+ dbw BANK(Function8c092), Function8c092
+ dbw BANK(Function8c0b6), Function8c0b6
dbw BANK(Function8c079), Function8c079
- dbw $23, $40ab
+ dbw BANK(Function8c0ab), Function8c0ab
dbw BANK(Functiond91), Functiond91
dbw BANK(WhiteBGMap), WhiteBGMap
- dbw BANK(Function485), Function485
+ dbw BANK(UpdateTimePals), UpdateTimePals
dbw BANK(ClearTileMap), ClearTileMap
dbw BANK(Function1ad2), Function1ad2
dbw BANK(Functione4a), Functione4a
- dbw $03, $4230
- dbw $03, $4252
+ dbw BANK(Functionc230), Functionc230
+ dbw BANK(SpecialSeenMon), SpecialSeenMon
dbw BANK(WaitSFX),WaitSFX
dbw BANK(Function3cdf), Function3cdf
dbw BANK(Function3d47), Function3d47
- dbw $04, $6324
- dbw $02, $4379
- dbw $03, $425a
- dbw $03, $4268
- dbw $03, $4276
- dbw $03, $4284
- dbw $03, $43ef
- dbw $05, $7421
- dbw $05, $7440
- dbw $04, $79a8
- dbw $03, $43fc
- dbw $09, $6feb
- dbw $09, $7043
+ dbw BANK(Function12324), Function12324
+ dbw BANK(Function8379), Function8379
+ dbw BANK(Functionc25a), Functionc25a
+ dbw BANK(Functionc268), Functionc268
+ dbw BANK(Functionc276), Functionc276
+ dbw BANK(Functionc284), Functionc284
+ dbw BANK(Functionc3ef), Functionc3ef
+ dbw BANK(Function17421), Function17421
+ dbw BANK(Function17440), Function17440
+ dbw BANK(Function139a8), Function139a8
+ dbw BANK(Functionc3fc), Functionc3fc
+ dbw BANK(Function26feb), Function26feb
+ dbw BANK(Function27043), Function27043
dbw BANK(SpecialGiveShuckle), SpecialGiveShuckle
dbw BANK(SpecialReturnShuckle), SpecialReturnShuckle
- dbw $01, $73f7
+ dbw BANK(Function73f7), Function73f7
dbw BANK(SpecialCheckPokerus),SpecialCheckPokerus
dbw BANK(Function24b25), Function24b25
- dbw $09, $4b4e
+ dbw BANK(Function24b4e), Function24b4e
dbw BANK(Function24ae8), Function24ae8
- dbw $13, $587a
- dbw $03, $4434
- dbw $03, $4422
- dbw $13, $59d3
- dbw $22, $4018
- dbw $03, $42b9
- dbw $03, $42da
- dbw $01, $718d
- dbw $01, $71ac
- dbw $0a, $64ab
- dbw $0a, $651f
- dbw $0a, $6567
+ dbw BANK(Function4d87a), Function4d87a
+ dbw BANK(Functionc434), Functionc434
+ dbw BANK(Functionc422), Functionc422
+ dbw BANK(Function4d9d3), Function4d9d3
+ dbw BANK(Function88018), Function88018
+ dbw BANK(SpecialNameRater), SpecialNameRater
+ dbw BANK(Functionc2da), Functionc2da
+ dbw BANK(Function718d), Function718d
+ dbw BANK(Function71ac), Function71ac
+ dbw BANK(Function2a4ab), Function2a4ab
+ dbw BANK(Function2a51f), Function2a51f
+ dbw BANK(Function2a567), Function2a567
dbw BANK(Function14209), Function14209
- dbw $3e, $7841
+ dbw BANK(Functionfb841), Functionfb841
dbw BANK(SpecialSnorlaxAwake),SpecialSnorlaxAwake
- dbw $01, $7413
- dbw $01, $7418
- dbw $01, $741d
- dbw $03, $4472
+ dbw BANK(Function7413), Function7413
+ dbw BANK(Function7418), Function7418
+ dbw BANK(Function741d), Function741d
+ dbw BANK(Functionc472), Functionc472
dbw BANK(ProfOaksPCBoot), ProfOaksPCBoot
dbw BANK(SpecialGameboyCheck),SpecialGameboyCheck
dbw BANK(SpecialTrainerHouse),SpecialTrainerHouse
- dbw $05, $6dc7
+ dbw BANK(Function16dc7), Function16dc7
dbw BANK(InitRoamMons), InitRoamMons
- dbw $03, $448f
- dbw $03, $449f
- dbw $03, $44ac
- dbw $46, $6c3e
- dbw $46, $7444
- dbw $46, $75e8
- dbw $46, $77e5
- dbw $46, $7879
- dbw $46, $7920
- dbw $46, $793b
- dbw $5c, $40b0
- dbw $5c, $40ba
- dbw $5c, $4114
- dbw $5c, $4215
- dbw $5c, $44e1
- dbw $5c, $421d
- dbw $5c, $4b44
- dbw $46, $7a38
- dbw $5c, $4bd3
- dbw $45, $7656
+ dbw BANK(Functionc48f), Functionc48f
+ dbw BANK(Functionc49f), Functionc49f
+ dbw BANK(Functionc4ac), Functionc4ac
+ dbw BANK(Function11ac3e), Function11ac3e
+ dbw BANK(Function11b444), Function11b444
+ dbw BANK(Function11b5e8), Function11b5e8
+ dbw BANK(Function11b7e5), Function11b7e5
+ dbw BANK(Function11b879), Function11b879
+ dbw BANK(Function11b920), Function11b920
+ dbw BANK(Function11b93b), Function11b93b
+ dbw BANK(Function1700b0), Function1700b0
+ dbw BANK(Function1700ba), Function1700ba
+ dbw BANK(Function170114), Function170114
+ dbw BANK(Function170215), Function170215
+ dbw BANK(Function1704e1), Function1704e1
+ dbw BANK(Function17021d), Function17021d
+ dbw BANK(Function170b44), Function170b44
+ dbw BANK(Function11ba38), Function11ba38
+ dbw BANK(Function170bd3), Function170bd3
+ dbw BANK(Function117656), Function117656
dbw BANK(Reset), Reset
- dbw $40, $51f1
- dbw $40, $5220
- dbw $40, $5225
- dbw $40, $5231
+ dbw BANK(Function1011f1), Function1011f1
+ dbw BANK(Function101220), Function101220
+ dbw BANK(Function101225), Function101225
+ dbw BANK(Function101231), Function101231
dbw BANK(Function4925b), Function4925b
- dbw $22, $6def
- dbw $47, $41ab
- dbw $5c, $4687
- dbw $22, $6e68
- dbw $5f, $5224
- dbw $5f, $52b6
- dbw $5f, $52ce
- dbw $5f, $753d
- dbw $40, $7612
+ dbw BANK(Function8adef), Function8adef
+ dbw BANK(Function11c1ab), Function11c1ab
+ dbw BANK(Function170687), Function170687
+ dbw BANK(Function8ae68), Function8ae68
+ dbw BANK(Function17d224), Function17d224
+ dbw BANK(Function17d2b6), Function17d2b6
+ dbw BANK(Function17d2ce), Function17d2ce
+ dbw BANK(Function17f53d), Function17f53d
+ dbw BANK(Function103612), Function103612
dbw BANK(SpecialHoOhChamber),SpecialHoOhChamber
- dbw $40, $6142
- dbw $12, $589a
- dbw $12, $5bf9
- dbw $13, $70bc
- dbw $22, $6f6b
- dbw $22, $6fd4
+ dbw BANK(Function102142), Function102142
+ dbw BANK(Function4989a), Function4989a
+ dbw BANK(Function49bf9), Function49bf9
+ dbw BANK(Function4f0bc), Function4f0bc
+ dbw BANK(Function8af6b), Function8af6b
+ dbw BANK(Function8afd4), Function8afd4
dbw BANK(SpecialDratini),SpecialDratini
- dbw $04, $5485
+ dbw BANK(Function11485), Function11485
dbw BANK(SpecialBeastsCheck),SpecialBeastsCheck
dbw BANK(SpecialMonCheck),SpecialMonCheck
- dbw $03, $4225
- dbw $5c, $4bd2
- dbw $40, $766e
- dbw $40, $77eb
- dbw $40, $783c
- dbw $41, $60a2
+ dbw BANK(Functionc225), Functionc225
+ dbw BANK(Function170bd2), Function170bd2
+ dbw BANK(Function10366e), Function10366e
+ dbw BANK(Function1037eb), Function1037eb
+ dbw BANK(Function10383c), Function10383c
+ dbw BANK(Function1060a2), Function1060a2
dbw BANK(Function14168), Function14168
- dbw $40, $77c2
- dbw $41, $630f
- dbw $40, $7780
- dbw $40, $787b
- dbw $12, $6e12
- dbw $41, $47eb
- dbw $12, $6927
- dbw $24, $4a54
- dbw $24, $4a88
- dbw $03, $4224
+ dbw BANK(Function1037c2), Function1037c2
+ dbw BANK(Function10630f), Function10630f
+ dbw BANK(Function103780), Function103780
+ dbw BANK(Function10387b), Function10387b
+ dbw BANK(Function4ae12), Function4ae12
+ dbw BANK(Function1047eb), Function1047eb
+ dbw BANK(Function4a927), Function4a927
+ dbw BANK(Function90a54), Function90a54
+ dbw BANK(Function90a88), Function90a88
+ dbw BANK(SpecialNone), SpecialNone
; c224
-INCBIN "baserom.gbc", $c224, $c29d - $c224
+SpecialNone: ; c224
+ ret
+; c225
+
+Functionc225: ; c225
+ ld a, [ScriptVar]
+ ld d, a
+ callba Function57e2
+ ret
+; c230
+
+Functionc230: ; c230
+ ld a, [ScriptVar]
+ dec a
+ call CheckCaughtMon
+ ret nz
+ ld a, [ScriptVar]
+ dec a
+ call SetSeenAndCaughtMon
+ call FadeToMenu
+ ld a, [ScriptVar]
+ ld [$d265], a
+ callba Functionfb877
+ call Function2b4d
+ ret
+; c252
+
+SpecialSeenMon: ; c252
+ ld a, [ScriptVar]
+ dec a
+ call SetSeenMon
+ ret
+; c25a
+
+Functionc25a: ; c25a
+ ld a, [ScriptVar]
+ ld b, a
+ callba Function4dbd2
+ jr z, Functionc298
+ jr Functionc292
+
+Functionc268: ; c268
+ ld a, [ScriptVar]
+ ld b, a
+ callba Function4dbd9
+ jr z, Functionc298
+ jr Functionc292
+
+Functionc276: ; c276
+ ld a, [ScriptVar]
+ ld b, a
+ callba Function4dbe0
+ jr z, Functionc298
+ jr Functionc292
+
+Functionc284: ; c284
+ ld a, [ScriptVar]
+ ld b, a
+ callba Function4dbe6
+ jr z, Functionc298
+ jr Functionc292
+
+Functionc292: ; c292
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+Functionc298: ; c298
+ xor a
+ ld [ScriptVar], a
+ ret
+; c29d
SpecialNameRival: ; 0xc29d
ld b, $2 ; rival
ld de, RivalName
- ld a, BANK(Function116b7)
- ld hl, Function116b7
- rst $8
+ callba Function116b7
; default to "SILVER"
ld hl, RivalName
ld de, DefaultRivalName
@@ -18406,7 +13442,198 @@ SpecialNameRival: ; 0xc29d
DefaultRivalName: ; 0xc2b2
db "SILVER@"
-INCBIN "baserom.gbc", $c2b9, $c3e2 - $c2b9
+SpecialNameRater: ; c2b9
+ callba NameRater
+ ret
+; c2c0
+
+Functionc2c0: ; c2c0
+ call FadeToMenu
+ callba Function9191c
+ call Function2b4d
+ ret
+; c2cd
+
+Functionc2cd: ; c2cd
+ call FadeToMenu
+ callba Function16be4
+ call Function2b4d
+ ret
+; c2da
+
+Functionc2da: ; c2da
+ call FadeToMenu
+ callba Function3f836
+ call Function2b4d
+ ret
+; c2e7
+
+Functionc2e7: ; c2e7
+ xor a
+ ld [ScriptVar], a
+ callba Function156d9
+ ld a, c
+ ld [ScriptVar], a
+ ret
+; c2f6
+
+Functionc2f6: ; c2f6
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$abe2]
+ and a
+ jr z, .asm_c302
+ inc a
+
+.asm_c302
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+; c309
+
+Functionc309: ; c309
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$abe2]
+ ld [CurItem], a
+ ld a, $1
+ ld [$d10c], a
+ ld hl, NumItems
+ call ReceiveItem
+ jr nc, .asm_c33d
+ xor a
+ ld [$abe2], a
+ call CloseSRAM
+ ld a, [CurItem]
+ ld [$d265], a
+ call GetItemName
+ ld hl, UnknownText_0xc345
+ call PrintText
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_c33d
+ call CloseSRAM
+ xor a
+ ld [ScriptVar], a
+ ret
+; c345
+
+UnknownText_0xc345: ; 0xc345
+ ; received item
+ text_jump UnknownText_0x1bd3be, BANK(UnknownText_0x1bd3be)
+ db "@"
+; 0xc34a
+
+Functionc34a: ; c34a
+ callba Function1369d
+ ld a, b
+ ld [ScriptVar], a
+ ret
+; c355
+
+Functionc355: ; c355
+ ld a, [ScriptVar]
+ ld e, a
+ callba Function91a53
+ ret
+; c360
+
+Functionc360: ; c360
+ call FadeToMenu
+ callba Functione1190
+ ld a, [$d0ec]
+ ld [ScriptVar], a
+ call Function2b4d
+ ret
+; c373
+
+Functionc373: ; c373
+ call Functionc3ae
+ ret c
+ ld a, $24
+ ld hl, $66c7
+ call Functionc39a
+ ret
+; c380
+
+Functionc380: ; c380
+ call Functionc3ae
+ ret c
+ ld a, $38
+ ld hl, $40ee
+ call Functionc39a
+ ret
+; c38d
+
+Functionc38d: ; c38d
+ call Functionc3ae
+ ret c
+ ld a, $38
+ ld hl, $5e5b
+ call Functionc39a
+ ret
+; c39a
+
+Functionc39a: ; c39a
+ call Function31cf
+ call FadeToMenu
+ ld hl, $d0e8
+ ld a, [hli]
+ push af
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ rst FarCall
+ call Function2b4d
+ ret
+; c3ae
+
+Functionc3ae: ; c3ae
+ ld hl, Coins
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_c3c4
+ ld a, $36
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ jr nc, .asm_c3c9
+ and a
+ ret
+
+.asm_c3c4
+ ld hl, UnknownText_0xc3d1
+ jr .asm_c3cc
+
+.asm_c3c9
+ ld hl, UnknownText_0xc3d6
+
+.asm_c3cc
+ call PrintText
+ scf
+ ret
+; c3d1
+
+UnknownText_0xc3d1: ; 0xc3d1
+ ; You have no coins.
+ text_jump UnknownText_0x1bd3d7, BANK(UnknownText_0x1bd3d7)
+ db "@"
+; 0xc3d6
+
+UnknownText_0xc3d6: ; 0xc3d6
+ ; You don't have a COIN CASE.
+ text_jump UnknownText_0x1bd3eb, BANK(UnknownText_0x1bd3eb)
+ db "@"
+; 0xc3db
+
+Functionc3db: ; c3db
+ call WhiteBGMap
+ call Function2879
+ ret
+; c3e2
ScriptReturnCarry: ; c3e2
jr c, .carry
@@ -18419,7 +13646,18 @@ ScriptReturnCarry: ; c3e2
ret
; c3ef
-INCBIN "baserom.gbc", $c3ef, $c403 - $c3ef
+Functionc3ef: ; c3ef
+ callba Function1150c
+ ld a, [$dc3a]
+ ld [ScriptVar], a
+ ret
+; c3fc
+
+Functionc3fc: ; c3fc
+ ld a, [ScriptVar]
+ ld [$dfce], a
+ ret
+; c403
Functionc403: ; c403
@@ -18447,7 +13685,18 @@ SpecialCheckPokerus: ; c419
jp ScriptReturnCarry
; c422
-INCBIN "baserom.gbc", $c422, $c43d - $c422
+Functionc422: ; c422
+ callba Function1152b
+ ld hl, $dc9d
+ res 0, [hl]
+ callba Function5d33
+ ret
+; c434
+
+Functionc434: ; c434
+ callba Function11542
+ jp ScriptReturnCarry
+; c43d
SpecialSnorlaxAwake: ; 0xc43d
; Check if the Poké Flute channel is playing, and if the player is standing
@@ -18498,7 +13747,10 @@ SpecialSnorlaxAwake: ; 0xc43d
db $24, $09
db $ff
-INCBIN "baserom.gbc", $c472, $c478 - $c472
+Functionc472: ; c472
+ ld a, [CurPartySpecies]
+ jp Function37ce
+; c478
SpecialGameboyCheck: ; c478
; check cgb
@@ -18524,7 +13776,29 @@ SpecialGameboyCheck: ; c478
ld [ScriptVar], a
ret
-INCBIN "baserom.gbc", $c48f, $c4b9 - $c48f
+Functionc48f: ; c48f
+ ld a, $0
+ ld [MusicFadeIDLo], a
+ ld a, $0
+ ld [MusicFadeIDHi], a
+ ld a, $2
+ ld [MusicFade], a
+ ret
+; c49f
+
+Functionc49f: ; c49f
+ call FadeToMenu
+ callba Function1dd702
+ call Function2b4d
+ ret
+; c4ac
+
+Functionc4ac: ; c4ac
+ call FadeToMenu
+ callba Function84688
+ call Function2b4d
+ ret
+; c4b9
SpecialTrainerHouse: ; 0xc4b9
ld a, 0
@@ -18742,7 +14016,111 @@ PrintNumber_AdvancePointer: ; c64a
ret
; 0xc658
-INCBIN "baserom.gbc", $c658, $c6ea - $c658
+Functionc658: ; c658
+ xor a
+ ld [CurPartyMon], a
+ ld hl, PartySpecies
+.asm_c65f
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_c676
+ cp $fd
+ jr z, .asm_c66d
+ push hl
+ call Functionc677
+ pop hl
+
+.asm_c66d
+ ld a, [CurPartyMon]
+ inc a
+ ld [CurPartyMon], a
+ jr .asm_c65f
+
+.asm_c676
+ ret
+; c677
+
+Functionc677: ; c677
+ ld a, $0
+ call GetPartyParamLocation
+ ld d, h
+ ld e, l
+ ld hl, $0020
+ add hl, de
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $0024
+ add hl, de
+ ld b, h
+ ld c, l
+ dec bc
+ dec bc
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ ld a, [hl]
+ ld [bc], a
+ callba Functionf8b9
+ ret
+; c699
+
+Functionc699: ; c699
+ ld a, b
+ or c
+ jr z, .asm_c6dd
+ push hl
+ xor a
+ ld [hMultiplicand], a
+ ld a, b
+ ld [$ffb5], a
+ ld a, c
+ ld [$ffb6], a
+ ld a, $30
+ ld [hMultiplier], a
+ call Multiply
+ ld a, d
+ and a
+ jr z, .asm_c6cc
+ srl d
+ rr e
+ srl d
+ rr e
+ ld a, [$ffb5]
+ ld b, a
+ ld a, [$ffb6]
+ srl b
+ rr a
+ srl b
+ rr a
+ ld [$ffb6], a
+ ld a, b
+ ld [$ffb5], a
+
+.asm_c6cc
+ ld a, e
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ ld a, [$ffb6]
+ ld e, a
+ pop hl
+ and a
+ ret nz
+ ld e, $1
+ ret
+
+.asm_c6dd
+ ld e, $0
+ ret
+; c6e0
+
+Functionc6e0: ; c6e0
+ call WaitBGMap
+ call Functiond627
+ call WaitBGMap
+ ret
+; c6ea
Functionc6ea: ; c6ea
@@ -19714,6 +15092,8 @@ Functioncd1d: ; cd1d
UnknownScript_0xcd29: ; 0xcd29
reloadmappart
special $0035
+
+UnknownScript_0xcd2d: ; 0xcd2d
3callasm BANK(Functioncd12), Functioncd12
2writetext UnknownText_0xcd41
copybytetovar $d1ef
@@ -19734,7 +15114,49 @@ UnknownText_0xcd46: ; 0xcd46
db $50
; 0xcd4b
-INCBIN "baserom.gbc", $cd4b, $cd9d - $cd4b
+UnknownScript_0xcd4b: ; 0xcd4b
+ 3callasm $03, $4d78
+ iffalse UnknownScript_0xcd5f
+ if_equal $1, UnknownScript_0xcd59
+ 2jump UnknownScript_0xcd5c
+; 0xcd59
+
+UnknownScript_0xcd59: ; 0xcd59
+ jumptext UnknownText_0xcd73
+; 0xcd5c
+
+UnknownScript_0xcd5c: ; 0xcd5c
+ jumptext UnknownText_0xcd6e
+; 0xcd5f
+
+UnknownScript_0xcd5f: ; 0xcd5f
+ loadfont
+ 2writetext UnknownText_0xcd69
+ yesorno
+ iftrue UnknownScript_0xcd2d
+ loadmovesprites
+ end
+; 0xcd69
+
+UnknownText_0xcd69: ; 0xcd69
+ ; A #MON may be able to move this. Want to use STRENGTH?
+ text_jump UnknownText_0x1c07a0, BANK(UnknownText_0x1c07a0)
+ db "@"
+; 0xcd6e
+
+UnknownText_0xcd6e: ; 0xcd6e
+ ; Boulders may now be moved!
+ text_jump UnknownText_0x1c07d8, BANK(UnknownText_0x1c07d8)
+ db "@"
+; 0xcd73
+
+UnknownText_0xcd73: ; 0xcd73
+ ; A #MON may be able to move this.
+ text_jump UnknownText_0x1c07f4, BANK(UnknownText_0x1c07f4)
+ db "@"
+; 0xcd78
+
+INCBIN "baserom.gbc", $cd78, $cd9d - $cd78
Functioncd9d: ; cd9d
call Functionc6ea
@@ -19982,6 +15404,8 @@ Functioncf0d: ; cf0d
UnknownScript_0xcf2e: ; 0xcf2e
reloadmappart
special $0035
+
+UnknownScript_0xcf32: ; cf32
3callasm BANK(GetPartyNick), GetPartyNick
2writetext UnknownText_0xcf58
loadmovesprites
@@ -20009,7 +15433,34 @@ UnknownText_0xcf58: ; 0xcf58
db $50
; 0xcf5d
-INCBIN "baserom.gbc", $cf5d, $cf8e - $cf5d
+UnknownScript_0xcf5d: ; 0xcf5d
+ 3callasm $03, $4f7c
+ if_equal $1, UnknownScript_0xcf6f
+ loadfont
+ 2writetext UnknownText_0xcf77
+ yesorno
+ iftrue UnknownScript_0xcf32
+ loadmovesprites
+ end
+; 0xcf6f
+
+UnknownScript_0xcf6f: ; 0xcf6f
+ jumptext UnknownText_0xcf72
+; 0xcf72
+
+UnknownText_0xcf72: ; 0xcf72
+ ; Maybe a #MON can break this.
+ text_jump UnknownText_0x1c0906, BANK(UnknownText_0x1c0906)
+ db "@"
+; 0xcf77
+
+UnknownText_0xcf77: ; 0xcf77
+ ; This rock looks breakable. Want to use ROCK SMASH?
+ text_jump UnknownText_0x1c0924, BANK(UnknownText_0x1c0924)
+ db "@"
+; 0xcf7c
+
+INCBIN "baserom.gbc", $cf7c, $cf8e - $cf7c
Functioncf8e: ; cf8e
@@ -20181,7 +15632,7 @@ UnknownText_0xd1d0: ; 0xd1d0
; 0xd1d5
-Functiond1d5: ; d1d5
+_ReceiveItem: ; d1d5
call Functiond27b
jp nz, Functiond29c
push hl
@@ -20228,7 +15679,7 @@ Functiond201: ; d201
; d20d
-Functiond20d: ; d20d
+_TossItem: ; d20d
call Functiond27b
jr nz, .asm_d241
push hl
@@ -20276,7 +15727,7 @@ Functiond20d: ; d20d
jp Functiond2ff
; d244
-_PickUpItem: ; d244
+_CheckItem: ; d244
call Functiond27b
jr nz, .asm_d278
push hl
@@ -20334,7 +15785,7 @@ Functiond27b: ; d27b
; d283
Functiond283: ; d283
- ld c, $14
+ ld c, 20
ld a, e
cp TMsHMsEnd % $100
jr nz, .asm_d28e
@@ -20343,7 +15794,7 @@ Functiond283: ; d283
ret z
.asm_d28e
- ld c, $32
+ ld c, 50
ld a, e
cp BallsEnd % $100
jr nz, .asm_d299
@@ -20813,7 +16264,440 @@ GetItemPrice: ; d486
ret
; d497
-INCBIN "baserom.gbc", $d497, $d88c - $d497
+INCBIN "baserom.gbc", $d497, $d627 - $d497
+
+Functiond627: ; d627
+ call Functiond65f
+ jr c, .asm_d645
+ call Functiond670
+.asm_d62f
+ push bc
+ push hl
+ call Functiond6e2
+ pop hl
+ pop bc
+ push af
+ push bc
+ push hl
+ call Functiond730
+ call Functiond7c9
+ pop hl
+ pop bc
+ pop af
+ jr nc, .asm_d62f
+ ret
+
+.asm_d645
+ call Functiond670
+.asm_d648
+ push bc
+ push hl
+ call Functiond6f5
+ pop hl
+ pop bc
+ ret c
+ push af
+ push bc
+ push hl
+ call Functiond749
+ call Functiond7c9
+ pop hl
+ pop bc
+ pop af
+ jr nc, .asm_d648
+ ret
+; d65f
+
+Functiond65f: ; d65f
+ ld a, [Buffer2]
+ and a
+ jr nz, .asm_d66e
+ ld a, [Buffer1]
+ cp $30
+ jr nc, .asm_d66e
+ and a
+ ret
+
+.asm_d66e
+ scf
+ ret
+; d670
+
+Functiond670: ; d670
+ push hl
+ ld hl, Buffer1
+ 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
+ call Functionc699
+ ld a, e
+ ld [$d1f1], a
+ ld a, [$d1ee]
+ ld c, a
+ ld a, [$d1ef]
+ ld b, a
+ ld a, [Buffer1]
+ ld e, a
+ ld a, [Buffer2]
+ ld d, a
+ call Functionc699
+ ld a, e
+ ld [$d1f2], a
+ push hl
+ ld hl, $d1ec
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ pop hl
+ ld a, e
+ sub c
+ ld e, a
+ ld a, d
+ sbc b
+ ld d, a
+ jr c, .asm_d6c1
+ ld a, [$d1ec]
+ ld [$d1f5], a
+ ld a, [$d1ee]
+ ld [$d1f6], a
+ ld bc, $0001
+ jr .asm_d6d9
+
+.asm_d6c1
+ ld a, [$d1ec]
+ ld [$d1f6], a
+ ld a, [$d1ee]
+ ld [$d1f5], a
+ ld a, e
+ xor $ff
+ inc a
+ ld e, a
+ ld a, d
+ xor $ff
+ ld d, a
+ ld bc, rIE
+
+.asm_d6d9
+ ld a, d
+ ld [$d1f3], a
+ ld a, e
+ ld [$d1f4], a
+ ret
+; d6e2
+
+Functiond6e2: ; d6e2
+ ld hl, $d1f1
+ ld a, [$d1f2]
+ cp [hl]
+ jr nz, .asm_d6ed
+ scf
+ ret
+
+.asm_d6ed
+ ld a, c
+ add [hl]
+ ld [hl], a
+ call Functiond839
+ and a
+ ret
+; d6f5
+
+Functiond6f5: ; d6f5
+.asm_d6f5
+ ld hl, $d1ec
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, e
+ cp [hl]
+ jr nz, .asm_d707
+ inc hl
+ ld a, d
+ cp [hl]
+ jr nz, .asm_d707
+ scf
+ ret
+
+.asm_d707
+ ld l, e
+ ld h, d
+ add hl, bc
+ ld a, l
+ ld [$d1ec], a
+ ld a, h
+ ld [$d1ed], a
+ push hl
+ push de
+ push bc
+ ld hl, Buffer1
+ 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 Functionc699
+ pop bc
+ pop de
+ pop hl
+ ld a, e
+ ld hl, $d1f1
+ cp [hl]
+ jr z, .asm_d6f5
+ ld [hl], a
+ and a
+ ret
+; d730
+
+Functiond730: ; d730
+ call Functiond784
+ ld d, $6
+ ld a, [$d10a]
+ and $1
+ ld b, a
+ ld a, [$d1f1]
+ ld e, a
+ ld c, a
+ push de
+ call Functiond771
+ pop de
+ call Functiond7b4
+ ret
+; d749
+
+Functiond749: ; d749
+ call Functiond784
+ ld a, [$d1ec]
+ ld c, a
+ ld a, [$d1ed]
+ ld b, a
+ ld a, [Buffer1]
+ ld e, a
+ ld a, [Buffer2]
+ ld d, a
+ call Functionc699
+ ld c, e
+ ld d, $6
+ ld a, [$d10a]
+ and $1
+ ld b, a
+ push de
+ call Functiond771
+ pop de
+ call Functiond7b4
+ ret
+; d771
+
+Functiond771: ; d771
+ ld a, [$d10a]
+ cp $2
+ jr nz, .asm_d780
+ ld a, $28
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+
+.asm_d780
+ call DrawHPBar
+ ret
+; d784
+
+Functiond784: ; d784
+ ld a, [$d10a]
+ and a
+ ret z
+ cp $1
+ jr z, .asm_d792
+ ld de, $0016
+ jr .asm_d795
+
+.asm_d792
+ ld de, $0015
+
+.asm_d795
+ push hl
+ add hl, de
+ ld a, $7f
+ ld [hli], a
+ ld [hli], a
+ ld [hld], a
+ dec hl
+ ld a, [$d1ec]
+ ld [$d087], a
+ ld a, [$d1ed]
+ ld [StringBuffer2], a
+ ld de, StringBuffer2
+ ld bc, $0203
+ call PrintNum
+ pop hl
+ ret
+; d7b4
+
+Functiond7b4: ; d7b4
+ ld a, [hCGB]
+ and a
+ ret z
+ ld hl, $d1f0
+ call SetHPPal
+ ld a, [$d1f0]
+ ld c, a
+ callba Function8c43
+ ret
+; d7c9
+
+Functiond7c9: ; d7c9
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_d7d5
+ call DelayFrame
+ call DelayFrame
+ ret
+
+.asm_d7d5
+ ld a, [$d10a]
+ and a
+ jr z, .asm_d829
+ cp $1
+ jr z, .asm_d82d
+ ld a, [CurPartyMon]
+ cp $3
+ jr nc, .asm_d7ea
+ ld c, $0
+ jr .asm_d7ec
+
+.asm_d7ea
+ ld c, $1
+
+.asm_d7ec
+ push af
+ cp $2
+ jr z, .asm_d7ff
+ cp $5
+ jr z, .asm_d7ff
+ ld a, $2
+ ld [hBGMapMode], a
+ ld a, c
+ ld [hBGMapThird], a
+ call DelayFrame
+
+.asm_d7ff
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, c
+ ld [hBGMapThird], a
+ call DelayFrame
+ pop af
+ cp $2
+ jr z, .asm_d813
+ cp $5
+ jr z, .asm_d813
+ ret
+
+.asm_d813
+ inc c
+ ld a, $2
+ ld [hBGMapMode], a
+ ld a, c
+ ld [hBGMapThird], a
+ call DelayFrame
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, c
+ ld [hBGMapThird], a
+ call DelayFrame
+ ret
+
+.asm_d829
+ ld c, $0
+ jr .asm_d82f
+
+.asm_d82d
+ ld c, $1
+
+.asm_d82f
+ call DelayFrame
+ ld a, c
+ ld [hBGMapThird], a
+ call DelayFrame
+ ret
+; d839
+
+Functiond839: ; d839
+ ld a, [Buffer1]
+ ld c, a
+ ld b, $0
+ ld hl, $0000
+ ld a, [$d1f1]
+ cp $30
+ jr nc, .asm_d885
+ and a
+ jr z, .asm_d880
+ call AddNTimes
+ ld b, $0
+.asm_d851
+ ld a, l
+ sub $30
+ ld l, a
+ ld a, h
+ sbc $0
+ ld h, a
+ jr c, .asm_d85e
+ inc b
+ jr .asm_d851
+
+.asm_d85e
+ push bc
+ ld bc, $0080
+ add hl, bc
+ pop bc
+ ld a, l
+ sub $30
+ ld l, a
+ ld a, h
+ sbc $0
+ ld h, a
+ jr c, .asm_d86f
+ inc b
+
+.asm_d86f
+ ld a, [$d1f5]
+ cp b
+ jr nc, .asm_d87c
+ ld a, [$d1f6]
+ cp b
+ jr c, .asm_d87c
+ ld a, b
+
+.asm_d87c
+ ld [$d1ec], a
+ ret
+
+.asm_d880
+ xor a
+ ld [$d1ec], a
+ ret
+
+.asm_d885
+ ld a, [Buffer1]
+ ld [$d1ec], a
+ ret
+; d88c
Functiond88c: ; d88c
@@ -20986,7 +16870,7 @@ Functiond88c: ; d88c
ld [$d265], a
dec a
push de
- call CheckSeenMon
+ call CheckCaughtMon
ld a, [$d265]
dec a
call SetSeenAndCaughtMon
@@ -21166,7 +17050,307 @@ FillPP: ; da6d
ret
; da96
-INCBIN "baserom.gbc", $da96, $dcb6 - $da96
+Functionda96: ; da96
+ ld hl, PartyCount
+ ld a, [hl]
+ cp $6
+ scf
+ ret z
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [CurPartySpecies]
+ ld [hli], a
+ ld [hl], $ff
+ ld hl, PartyMon1Species
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld hl, TempMonSpecies
+ call CopyBytes
+ ld hl, PartyMon1OT
+ ld a, [PartyCount]
+ dec a
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, OTPartyMon1OT
+ ld a, [CurPartyMon]
+ call SkipNames
+ ld bc, $000b
+ call CopyBytes
+ ld hl, PartyMon1Nickname
+ ld a, [PartyCount]
+ dec a
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, OTPartyMon1Nickname
+ ld a, [CurPartyMon]
+ call SkipNames
+ ld bc, $000b
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ cp $fd
+ jr z, .asm_db12
+ dec a
+ call SetSeenAndCaughtMon
+ ld hl, PartyMon1Happiness
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld [hl], $46
+
+.asm_db12
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_db3d
+ ld hl, PartyMon1DVs
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld a, $2d
+ call Predef
+ callab Functionfba18
+ ld a, [$def4]
+ and a
+ jr nz, .asm_db3d
+ ld a, [UnownLetter]
+ ld [$def4], a
+
+.asm_db3d
+ and a
+ ret
+; db3f
+
+Functiondb3f: ; db3f
+ ld a, $1
+ call GetSRAMBank
+ ld a, [$d10b]
+ and a
+ jr z, .asm_db60
+ cp $2
+ jr z, .asm_db60
+ cp $3
+ ld hl, BreedMon1Species
+ jr z, .asm_db9b
+ ld hl, BoxCount
+ ld a, [hl]
+ cp $14
+ jr nz, .asm_db69
+ jp Functiondcb1
+
+.asm_db60
+ ld hl, PartyCount
+ ld a, [hl]
+ cp $6
+ jp z, Functiondcb1
+
+.asm_db69
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [$d10b]
+ cp $2
+ ld a, [BreedMon1Species]
+ jr z, .asm_db7c
+ ld a, [CurPartySpecies]
+
+.asm_db7c
+ ld [hli], a
+ ld [hl], $ff
+ ld a, [$d10b]
+ dec a
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ ld a, [PartyCount]
+ jr nz, .asm_db97
+ ld hl, BoxMon1Species
+ ld bc, $0020
+ ld a, [BoxCount]
+
+.asm_db97
+ dec a
+ call AddNTimes
+
+.asm_db9b
+ push hl
+ ld e, l
+ ld d, h
+ ld a, [$d10b]
+ and a
+ ld hl, BoxMon1Species
+ ld bc, $0020
+ jr z, .asm_dbb7
+ cp $2
+ ld hl, BreedMon1Species
+ jr z, .asm_dbbd
+ ld hl, PartyMon1Species
+ ld bc, $0030
+
+.asm_dbb7
+ ld a, [CurPartyMon]
+ call AddNTimes
+
+.asm_dbbd
+ ld bc, $0020
+ call CopyBytes
+ ld a, [$d10b]
+ cp $3
+ ld de, BreedMon1OT
+ jr z, .asm_dbe2
+ dec a
+ ld hl, PartyMon1OT
+ ld a, [PartyCount]
+ jr nz, .asm_dbdc
+ ld hl, BoxMon1OT
+ ld a, [BoxCount]
+
+.asm_dbdc
+ dec a
+ call SkipNames
+ ld d, h
+ ld e, l
+
+.asm_dbe2
+ ld hl, BoxMon1OT
+ ld a, [$d10b]
+ and a
+ jr z, .asm_dbf5
+ ld hl, BreedMon1OT
+ cp $2
+ jr z, .asm_dbfb
+ ld hl, PartyMon1OT
+
+.asm_dbf5
+ ld a, [CurPartyMon]
+ call SkipNames
+
+.asm_dbfb
+ ld bc, $000b
+ call CopyBytes
+ ld a, [$d10b]
+ cp $3
+ ld de, BreedMon1Nick
+ jr z, .asm_dc20
+ dec a
+ ld hl, PartyMon1Nickname
+ ld a, [PartyCount]
+ jr nz, .asm_dc1a
+ ld hl, BoxMon1Nickname
+ ld a, [BoxCount]
+
+.asm_dc1a
+ dec a
+ call SkipNames
+ ld d, h
+ ld e, l
+
+.asm_dc20
+ ld hl, BoxMon1Nickname
+ ld a, [$d10b]
+ and a
+ jr z, .asm_dc33
+ ld hl, BreedMon1Nick
+ cp $2
+ jr z, .asm_dc39
+ ld hl, PartyMon1Nickname
+
+.asm_dc33
+ ld a, [CurPartyMon]
+ call SkipNames
+
+.asm_dc39
+ ld bc, $000b
+ call CopyBytes
+ pop hl
+ ld a, [$d10b]
+ cp $1
+ jr z, .asm_dca4
+ cp $3
+ jp z, .asm_dcac
+ push hl
+ srl a
+ add $2
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ callab Function50e1b
+ ld a, d
+ ld [CurPartyLevel], a
+ pop hl
+ ld b, h
+ ld c, l
+ ld hl, $001f
+ add hl, bc
+ ld [hl], a
+ ld hl, $0024
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000a
+ add hl, bc
+ push bc
+ ld b, $1
+ call Functione167
+ pop bc
+ ld a, [$d10b]
+ and a
+ jr nz, .asm_dcac
+ ld hl, $0020
+ add hl, bc
+ xor a
+ ld [hl], a
+ ld hl, $0022
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_dc9e
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld [de], a
+ ld a, [hl]
+ inc de
+ ld [de], a
+ jr .asm_dcac
+
+.asm_dc9e
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ jr .asm_dcac
+
+.asm_dca4
+ ld a, [BoxCount]
+ dec a
+ ld b, a
+ call Functiondcb6
+
+.asm_dcac
+ call CloseSRAM
+ and a
+ ret
+; dcb1
+
+Functiondcb1: ; dcb1
+ call CloseSRAM
+ scf
+ ret
+; dcb6
Functiondcb6: ; dcb6
@@ -21238,7 +17422,179 @@ Functiondcb6: ; dcb6
; dd21
-INCBIN "baserom.gbc", $dd21, $de6e - $dd21
+Functiondd21: ; dd21
+ ld a, [BreedMon1Species]
+ ld [CurPartySpecies], a
+ ld de, $0022
+ call StartSFX
+ call WaitSFX
+ call Functione698
+ ld a, b
+ ld [DefaultFlypoint], a
+ ld a, e
+ ld [CurPartyLevel], a
+ xor a
+ ld [$d10b], a
+ jp Functiondd64
+; dd42
+
+Functiondd42: ; dd42
+ ld a, [BreedMon2Species]
+ ld [CurPartySpecies], a
+ ld de, $0022
+ call StartSFX
+ call WaitSFX
+ call Functione6b3
+ ld a, b
+ ld [DefaultFlypoint], a
+ ld a, e
+ ld [CurPartyLevel], a
+ ld a, $1
+ ld [$d10b], a
+ jp Functiondd64
+; dd64
+
+Functiondd64: ; dd64
+ ld hl, PartyCount
+ ld a, [hl]
+ cp $6
+ jr nz, .asm_dd6e
+ scf
+ ret
+
+.asm_dd6e
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [$d10b]
+ and a
+ ld a, [BreedMon1Species]
+ ld de, BreedMon1Nick
+ jr z, .asm_dd86
+ ld a, [BreedMon2Species]
+ ld de, BreedMon2Nick
+
+.asm_dd86
+ ld [hli], a
+ ld [CurSpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMon1Nickname
+ ld a, [PartyCount]
+ dec a
+ call SkipNames
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ call CopyBytes
+ push hl
+ ld hl, PartyMon1OT
+ ld a, [PartyCount]
+ dec a
+ call SkipNames
+ ld d, h
+ ld e, l
+ pop hl
+ call CopyBytes
+ push hl
+ call Functionde1a
+ pop hl
+ ld bc, $0020
+ call CopyBytes
+ call GetBaseData
+ call Functionde1a
+ ld b, d
+ ld c, e
+ ld hl, $001f
+ add hl, bc
+ ld a, [CurPartyLevel]
+ ld [hl], a
+ ld hl, $0024
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000a
+ add hl, bc
+ push bc
+ ld b, $1
+ call Functione167
+ ld hl, PartyMon1Move1
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld a, $1
+ ld [Buffer1], a
+ ld a, $1b
+ call Predef
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ callba Functionc677
+ ld a, [CurPartyLevel]
+ ld d, a
+ callab Function50e47
+ pop bc
+ ld hl, $0008
+ add hl, bc
+ ld a, [hMultiplicand]
+ ld [hli], a
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hl], a
+ and a
+ ret
+; de1a
+
+Functionde1a: ; de1a
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ret
+; de2a
+
+Functionde2a: ; de2a
+ ld de, BreedMon1Nick
+ call Functionde44
+ xor a
+ ld [$d10b], a
+ jp Functione039
+; de37
+
+Functionde37: ; de37
+ ld de, BreedMon2Nick
+ call Functionde44
+ xor a
+ ld [$d10b], a
+ jp Functione039
+; de44
+
+Functionde44: ; de44
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ call SkipNames
+ call CopyBytes
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ call SkipNames
+ call CopyBytes
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld bc, $0020
+ jp CopyBytes
+; de6e
Functionde6e: ; de6e
@@ -21420,10 +17776,10 @@ Functiondf8c: ; df8c
ld a, [CurPartySpecies]
dec a
push af
- call CheckSeenMon
+ call CheckCaughtMon
pop af
push bc
- call CheckCaughtMon
+ call CheckSeenMon
push bc
call Functiond88c
pop bc
@@ -21434,7 +17790,7 @@ Functiondf8c: ; df8c
dec a
ld c, a
ld d, $0
- ld hl, PokedexSeen
+ ld hl, PokedexCaught
ld b, $0
ld a, $3
call Predef
@@ -21448,7 +17804,7 @@ Functiondf8c: ; df8c
dec a
ld c, a
ld d, $0
- ld hl, PokedexCaught
+ ld hl, PokedexSeen
ld b, $0
ld a, $3
call Predef
@@ -21942,7 +18298,7 @@ Functione277: ; e277
and a
jr z, .asm_e2e1
ld a, [CurItem]
- ld [$ad27], a
+ ld [BoxMon1Item], a
.asm_e2e1
ld a, [CurPartySpecies]
@@ -22012,7 +18368,7 @@ Functione277: ; e277
.asm_e35e
ld a, $1
call GetSRAMBank
- ld de, $afa6
+ ld de, BoxMon1OT
.asm_e366
ld a, [ScriptBank]
call GetFarByte
@@ -22024,7 +18380,7 @@ Functione277: ; e277
ld a, [ScriptBank]
call GetFarByte
ld b, a
- ld hl, $ad2c
+ ld hl, BoxMon1ID
call Random
ld [hli], a
call Random
@@ -22071,7 +18427,7 @@ Functione277: ; e277
ld a, $1
call GetSRAMBank
ld hl, $d050
- ld de, $b082
+ ld de, BoxMon1Nickname
ld bc, $000b
call CopyBytes
call CloseSRAM
@@ -22166,7 +18522,7 @@ ClearPCItemScreen: ; e58b
Functione5bb: ; e5bb
ld a, [CurPartyMon]
- ld hl, $ad26
+ ld hl, BoxMon1Species
ld bc, $0020
call AddNTimes
ld de, TempMonSpecies
@@ -22178,7 +18534,37 @@ Functione5bb: ; e5bb
ret
; e5d9
-INCBIN "baserom.gbc", $e5d9, $e6ce - $e5d9
+INCBIN "baserom.gbc", $e5d9, $e698 - $e5d9
+
+Functione698: ; e698
+ ld hl, BreedMon1Species
+ ld de, TempMonSpecies
+ ld bc, $0020
+ call CopyBytes
+ callab Function50e1b
+ ld a, [$df2b]
+ ld b, a
+ ld a, d
+ ld e, a
+ sub b
+ ld d, a
+ ret
+; e6b3
+
+Functione6b3: ; e6b3
+ ld hl, BreedMon2Species
+ ld de, TempMonSpecies
+ ld bc, $0020
+ call CopyBytes
+ callab Function50e1b
+ ld a, [$df64]
+ ld b, a
+ ld a, d
+ ld e, a
+ sub b
+ ld d, a
+ ret
+; e6ce
Functione6ce: ; e6ce
@@ -22444,7 +18830,7 @@ Functionf795: ; f795
ld hl, NumItems
ld a, $1
ld [$d10c], a
- jp Function2f53
+ jp TossItem
; f7a0
Functionf7a0: ; f7a0
@@ -22596,7 +18982,41 @@ Functionf881: ; f881
ret
; f8b9
-INCBIN "baserom.gbc", $f8b9, $f8ec - $f8b9
+Functionf8b9: ; f8b9
+ ld a, $17
+ call GetPartyParamLocation
+ push hl
+ ld a, $2
+ call GetPartyParamLocation
+ pop de
+ xor a
+ ld [$cfa9], a
+ ld [MonType], a
+ ld c, $4
+.asm_f8ce
+ ld a, [hli]
+ and a
+ ret z
+ push hl
+ push de
+ push bc
+ call Functionf8ec
+ pop bc
+ pop de
+ ld a, [de]
+ and $c0
+ ld b, a
+ ld a, [$d265]
+ add b
+ ld [de], a
+ inc de
+ ld hl, $cfa9
+ inc [hl]
+ pop hl
+ dec c
+ jr nz, .asm_f8ce
+ ret
+; f8ec
Functionf8ec: ; f8ec
@@ -23062,7 +19482,150 @@ Function113da: ; 113da
ret
; 113e5
-INCBIN "baserom.gbc", $113e5, $114dd - $113e5
+Function113e5: ; 113e5
+ xor a
+ ld [$d464], a
+
+Function113e9: ; 113e9
+ ld a, [$d464]
+ cp 3
+ jr c, .asm_113f2
+ ld a, 3
+
+.asm_113f2
+ ld e, a
+ ld d, 0
+ ld hl, .data_113fd
+ add hl, de
+ ld a, [hl]
+ jp Function1142e
+; 113fd
+
+.data_113fd
+ db 20, 10, 5, 3
+; 11401
+
+Function11401: ; 11401
+ call Function1143c
+ ret nc
+ ld hl, $d464
+ ld a, [hl]
+ cp 3
+ jr nc, .asm_1140e
+ inc [hl]
+
+.asm_1140e
+ call Function113e9
+ scf
+ ret
+; 11413
+
+Function11413: ; 11413
+ ld a, 1
+
+Function11415: ; 11415
+ ld [hl], a
+ push hl
+ call UpdateTime
+ pop hl
+ inc hl
+ call Function11621
+ ret
+; 11420
+
+Function11420: ; 11420
+ inc hl
+ push hl
+ call Function115cf
+ call Function115c8
+ pop hl
+ dec hl
+ call Function11586
+ ret
+; 1142e
+
+Function1142e: ; 1142e
+ ld hl, $d465
+ ld [hl], a
+ call UpdateTime
+ ld hl, $d466
+ call Function1162e
+ ret
+; 1143c
+
+Function1143c: ; 1143c
+ ld hl, $d466
+ call Function115d6
+ call Function115ae
+ ld hl, $d465
+ call Function11586
+ ret
+; 1144c
+
+Function1144c: ; 1144c
+ ld hl, $dc1c
+ jp Function11413
+; 11452
+
+Function11452: ; 11452
+ ld hl, $dc1c
+ call Function11420
+ ret nc
+ xor a
+ ld hl, $dc1e
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $dc4c
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld hl, $dc50
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld hl, $dc54
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld hl, $dc58
+ ld a, [hl]
+ and a
+ jr z, .asm_11480
+ dec [hl]
+ jr nz, .asm_11483
+
+.asm_11480
+ call Function11485
+
+.asm_11483
+ jr Function1144c
+; 11485
+
+Function11485: ; 11485
+ call Random
+ and 3
+ add 3
+ ld [$dc58], a
+ ret
+; 11490
+
+Function11490: ; 11490
+ ld a, $14
+ ld [$d46c], a
+ ld a, $0
+ ld [$d46d], a
+ call UpdateTime
+ ld hl, $dc35
+ call Function11613
+ ret
+; 114a4
+
+INCBIN "baserom.gbc", $114a4, $114dd - $114a4
Function114dd: ; 114dd
@@ -23072,8 +19635,251 @@ Function114dd: ; 114dd
ret
; 114e7
-INCBIN "baserom.gbc", $114e7, $11621 - $114e7
+Function114e7: ; 114e7
+ ld hl, $dc23
+ call Function115cf
+ call Function115c8
+ and a
+ jr z, .asm_114fa
+ ld b, a
+ callba Function13988
+
+.asm_114fa
+ xor a
+ ret
+; 114fc
+
+Function114fc: ; 114fc
+ ld a, $2
+ ld hl, $dc3a
+ ld [hl], a
+ call UpdateTime
+ ld hl, $dc3b
+ call Function11621
+ ret
+; 1150c
+
+Function1150c: ; 1150c
+ ld hl, $dc3b
+ call Function115cf
+ call Function115c8
+ ld hl, $dc3a
+ call Function11586
+ ret
+; 1151c
+
+Function1151c: ; 1151c
+ ld hl, $dc1e
+ set 2, [hl]
+ ret
+; 11522
+
+Function11522: ; 11522
+ and a
+ ld hl, $dc1e
+ bit 2, [hl]
+ ret nz
+ scf
+ ret
+; 1152b
+
+Function1152b: ; 1152b
+ call Function11534
+ ld hl, $dc2d
+ jp Function11415
+; 11534
+
+Function11534: ; 11534
+ call GetWeekday
+ ld c, a
+ ld a, $5
+ sub c
+ jr z, .asm_1153f
+ jr nc, .asm_11541
+
+.asm_1153f
+ add $7
+
+.asm_11541
+ ret
+; 11542
+
+Function11542: ; 11542
+ ld hl, $dc2d
+ jp Function11420
+; 11548
+
+Function11548: ; 11548
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $abfa
+ ld a, [hli]
+ ld [Buffer1], a
+ ld a, [hl]
+ ld [Buffer2], a
+ call CloseSRAM
+ ld hl, Buffer1
+ call Function11420
+ jr nc, .asm_11572
+ ld hl, Buffer1
+ call Function11413
+ call CloseSRAM
+ callba Function1050c8
+
+.asm_11572
+ ld a, $0
+ call GetSRAMBank
+ ld hl, Buffer1
+ ld a, [hli]
+ ld [$abfa], a
+ ld a, [hl]
+ ld [$abfb], a
+ call CloseSRAM
+ ret
+; 11586
+
+Function11586: ; 11586
+ cp $ff
+ jr z, .asm_11595
+ ld c, a
+ ld a, [hl]
+ sub c
+ jr nc, .asm_11590
+ xor a
+
+.asm_11590
+ ld [hl], a
+ jr z, .asm_11595
+ xor a
+ ret
+
+.asm_11595
+ xor a
+ ld [hl], a
+ scf
+ ret
+; 11599
+
+Function11599: ; 11599
+ ld a, [$cfd7]
+ and a
+ jr nz, Function115cc
+ ld a, [$cfd6]
+ and a
+ jr nz, Function115cc
+ ld a, [$cfd5]
+ jr nz, Function115cc
+ ld a, [$cfd4]
+ ret
+; 115ae
+
+Function115ae: ; 115ae
+ ld a, [$cfd7]
+ and a
+ jr nz, Function115cc
+ ld a, [$cfd6]
+ and a
+ jr nz, Function115cc
+ ld a, [$cfd5]
+ ret
+; 115be
+
+Function115be: ; 115be
+ ld a, [$cfd7]
+ and a
+ jr nz, Function115cc
+ ld a, [$cfd6]
+ ret
+; 115c8
+
+Function115c8: ; 115c8
+ ld a, [$cfd7]
+ ret
+; 115cc
+
+Function115cc: ; 115cc
+ ld a, $ff
+ ret
+; 115cf
+
+Function115cf: ; 115cf
+ xor a
+ jr Function11605
+; 115d2
+
+Function115d2: ; 115d2
+ inc hl
+ xor a
+ jr Function115f8
+; 115d6
+
+Function115d6: ; 115d6
+ inc hl
+ inc hl
+ xor a
+ jr Function115eb
+; 115db
+
+Function115db: ; 115db
+ inc hl
+ inc hl
+ inc hl
+ ld a, [hSeconds]
+ ld c, a
+ sub [hl]
+ jr nc, .asm_115e6
+ add 60
+.asm_115e6
+ ld [hl], c
+ dec hl
+ ld [$cfd4], a
+
+Function115eb: ; 115eb
+ ld a, [hMinutes]
+ ld c, a
+ sbc [hl]
+ jr nc, .asm_115f3
+ add 60
+.asm_115f3
+ ld [hl], c
+ dec hl
+ ld [$cfd5], a
+
+Function115f8: ; 115f8
+ ld a, [hHours]
+ ld c, a
+ sbc [hl]
+ jr nc, .asm_11600
+ add 24
+.asm_11600
+ ld [hl], c
+ dec hl
+ ld [$cfd6], a
+
+Function11605
+ ld a, [CurDay]
+ ld c, a
+ sbc [hl]
+ jr nc, .asm_1160e
+ add 140
+.asm_1160e
+ ld [hl], c
+ ld [$cfd7], a
+ ret
+; 11613
+
+Function11613: ; 11613
+ ld a, [CurDay]
+ ld [hli], a
+ ld a, [hHours]
+ ld [hli], a
+ ld a, [hMinutes]
+ ld [hli], a
+ ld a, [hSeconds]
+ ld [hli], a
+ ret
+; 11621
Function11621: ; 11621
ld a, [CurDay]
@@ -23081,9 +19887,73 @@ Function11621: ; 11621
ret
; 11626
-INCBIN "baserom.gbc", $11626, $1167a - $11626
+Function11626: ; 11626
+ ld a, [CurDay]
+ ld [hli], a
+ ld a, [hHours]
+ ld [hli], a
+ ret
+; 1162e
+
+Function1162e: ; 1162e
+ ld a, [CurDay]
+ ld [hli], a
+ ld a, [hHours]
+ ld [hli], a
+ ld a, [hMinutes]
+ ld [hli], a
+ ret
+; 11639
+
+CanLearnTMHMMove: ; 11639
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, BaseTMHM
+ push hl
+
+ ld a, [$d262]
+ ld b, a
+ ld c, 0
+ ld hl, TMHMMoves
+.loop
+ ld a, [hli]
+ and a
+ jr z, .end
+ cp b
+ jr z, .asm_11659
+ inc c
+ jr .loop
+
+.asm_11659
+ pop hl
+ ld b, CHECK_FLAG
+ push de
+ ld d, 0
+ ld a, PREDEF_FLAG
+ call Predef
+ pop de
+ ret
+
+.end
+ pop hl
+ ld c, 0
+ ret
+; 1166a
+
+GetTMHMMove: ; 1166a
+ ld a, [$d265]
+ dec a
+ ld hl, TMHMMoves
+ ld b, 0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ ret
+; 1167a
-TechnicalMachines: ; 0x1167a
+TMHMMoves: ; 1167a
db DYNAMICPUNCH
db HEADBUTT
db CURSE
@@ -23142,7 +20012,13 @@ TechnicalMachines: ; 0x1167a
db WHIRLPOOL
db WATERFALL
-INCBIN "baserom.gbc", $116b3, $116b7 - $116b3
+; Move tutor
+ db FLAMETHROWER
+ db THUNDERBOLT
+ db ICE_BEAM
+
+ db 0 ; end
+; 116b7
Function116b7: ; 0x116b7
call Function2ed3
@@ -23460,7 +20336,229 @@ UnknownScript_0x122c1: ; 0x122c1
end
; 0x122ce
-INCBIN "baserom.gbc", $122ce, $124c8 - $122ce
+INCBIN "baserom.gbc", $122ce, $12324 - $122ce
+
+Function12324: ; 12324
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld a, [ScriptVar]
+ ld [Buffer1], a
+ ld a, [rOBP1]
+ ld [Buffer2], a
+ call Function1233e
+ ld a, [Buffer2]
+ call Functiond24
+ ret
+; 1233e
+
+Function1233e: ; 1233e
+ xor a
+ ld [$d1ec], a
+.asm_12342
+ ld a, [Buffer1]
+ ld e, a
+ ld d, $0
+ ld hl, $6365
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d1ec]
+ ld e, a
+ inc a
+ ld [$d1ec], a
+ add hl, de
+ ld a, [hl]
+ cp $5
+ jr z, .asm_12364
+ ld hl, $6377
+ rst JumpTable
+ jr .asm_12342
+
+.asm_12364
+ ret
+; 12365
+
+INCBIN "baserom.gbc", $12365, $12377 - $12365
+
+Table12377: ; 12377
+ dw Function12383
+ dw Function12393
+ dw Function123a1
+ dw Function123bf
+ dw Function123c8
+ dw Function123db
+; 12383
+
+Function12383: ; 12383
+ call Function12434
+ ld de, $63fc
+ ld hl, $87c0
+ ld bc, $0402
+ call Request2bpp
+ ret
+; 12393
+
+Function12393: ; 12393
+ ld hl, $c480
+ ld de, $63dc
+ call Function124a3
+ call Function124a3
+ jr Function123a7
+
+Function123a1: ; 123a1
+ ld hl, $c480
+ ld de, $641c
+
+Function123a7: ; 123a7
+ ld a, [PartyCount]
+ ld b, a
+.asm_123ab
+ call Function124a3
+ push de
+ ld de, $0012
+ call StartSFX
+ pop de
+ ld c, $1e
+ call DelayFrames
+ dec b
+ jr nz, .asm_123ab
+ ret
+; 123bf
+
+Function123bf: ; 123bf
+ ld de, $000d
+ call StartMusic
+ jp Function12459
+; 123c8
+
+Function123c8: ; 123c8
+ ld de, $00aa
+ call StartSFX
+ call Function12459
+ call WaitSFX
+ ld de, $000d
+ call StartSFX
+ ret
+; 123db
+
+Function123db: ; 123db
+ ret
+; 123dc
+
+INCBIN "baserom.gbc", $123dc, $12434 - $123dc
+
+Function12434: ; 12434
+ call Function3218
+ jr nz, .asm_1243e
+ ld a, $e0
+ ld [rOBP1], a
+ ret
+
+.asm_1243e
+ ld hl, $6451
+ ld de, CurMart
+ ld bc, $0008
+ ld a, $5
+ call FarCopyWRAM
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 12451
+
+INCBIN "baserom.gbc", $12451, $12459 - $12451
+
+Function12459: ; 12459
+ ld c, $8
+.asm_1245b
+ push bc
+ call Function12469
+ ld c, $a
+ call DelayFrames
+ pop bc
+ dec c
+ jr nz, .asm_1245b
+ ret
+; 12469
+
+Function12469: ; 12469
+ call Function3218
+ jr nz, .asm_12475
+ ld a, [rOBP1]
+ xor $28
+ ld [rOBP1], a
+ ret
+
+.asm_12475
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, CurMart
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ ld c, $3
+.asm_12486
+ 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, .asm_12486
+ 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
+
+Function124a3: ; 124a3
+ push bc
+ ld a, [Buffer1]
+ ld bc, $1020
+ cp $1
+ jr z, .asm_124b1
+ ld bc, $0000
+
+.asm_124b1
+ 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
+
+INCBIN "baserom.gbc", $124c1, $124c8 - $124c1
UnknownScript_0x124c8: ; 0x124c8
refreshscreen $0
@@ -23592,12 +20690,12 @@ StartMenu: ; 125cd
call Function2e20
callba Function64bf
call .DrawBugContestStatus
- call Function485
+ call UpdateTimePals
jr .Select
.Reopen
call Function1ad2
- call Function485
+ call UpdateTimePals
call .SetUpMenuItems
ld a, [$d0d2]
ld [$cf88], a
@@ -23645,7 +20743,7 @@ StartMenu: ; 125cd
call Function1c07
.ReturnEnd2
call Function2dcf
- call Function485
+ call UpdateTimePals
ret
.GetInput
@@ -23660,9 +20758,9 @@ StartMenu: ; 125cd
call .PrintMenuAccount
call Function1f1a
ld a, [$cf73]
- cp BUTTON_B
+ cp B_BUTTON
jr z, .b
- cp BUTTON_A
+ cp A_BUTTON
jr z, .a
jr .loop
.a
@@ -24559,7 +21657,7 @@ Function12cdf: ; 12cdf
ld a, $1
ld [$d10c], a
ld hl, NumItems
- jp Function2f66
+ jp ReceiveItem
; 12cea
INCBIN "baserom.gbc", $12cea, $12cf5 - $12cea
@@ -24926,7 +22024,64 @@ Function12f50: ; 12f50
ret
; 12f5b
-INCBIN "baserom.gbc", $12f5b, $12fba - $12f5b
+Function12f5b: ; 12f5b
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Functione58
+ call Function12f73
+ pop bc
+ ld a, b
+ ld [Options], a
+ push af
+ call WhiteBGMap
+ pop af
+ ret
+; 12f73
+
+Function12f73: ; 12f73
+ call Function13172
+ ld de, $6fb2
+ call Function1bb1
+ call Function131ef
+ ld hl, $cfa5
+ set 6, [hl]
+ jr Function12f93
+
+Function12f86: ; 12f86
+ call Function1bd3
+ bit 1, a
+ jp nz, Function12f9f
+ bit 0, a
+ jp nz, Function12f9c
+
+Function12f93: ; 12f93
+ call Function13235
+ call Function13256
+ jp Function12f86
+; 12f9c
+
+Function12f9c: ; 12f9c
+ and a
+ jr Function12fa0
+
+Function12f9f: ; 12f9f
+ scf
+
+Function12fa0: ; 12fa0
+ push af
+ xor a
+ ld [$d0e3], a
+ ld hl, $cfa5
+ res 6, [hl]
+ call ClearSprites
+ call ClearTileMap
+ pop af
+ ret
+; 12fb2
+
+INCBIN "baserom.gbc", $12fb2, $12fba - $12fb2
Function12fba: ; 12fba
ld a, [CurPartySpecies]
@@ -25275,7 +22430,7 @@ Function13256: ; 13256
ld a, [CurSpecies]
ld b, a
ld hl, $c592
- ld a, $2a
+ ld a, PREDEF_PRINT_MOVE_TYPE
call Predef
ld a, [CurSpecies]
dec a
@@ -25591,7 +22746,7 @@ Function1344a: ; 1344a
ld a, b
ld [EngineBuffer1], a
ld a, e
- ld [CurFruit], a
+ ld [$d03f], a
ld a, d
ld [MartPointer], a
call Function1345a
@@ -25601,7 +22756,7 @@ Function1344a: ; 1344a
Function1345a: ; 1345a
ld de, CurMart
ld bc, $0004
- ld hl, CurFruit
+ ld hl, $d03f
ld a, [hli]
ld h, [hl]
ld l, a
@@ -25622,7 +22777,7 @@ Function1345a: ; 1345a
; 1347d
Function1347d: ; 1347d
- ld hl, CurFruit
+ ld hl, $d03f
ld a, [hli]
ld h, [hl]
ld l, a
@@ -25673,7 +22828,7 @@ Function1347d: ; 1347d
Function134c0: ; 134c0
push af
- ld hl, CurFruit
+ ld hl, $d03f
ld a, [hli]
ld h, [hl]
ld l, a
@@ -25831,7 +22986,14 @@ Function13575: ; 13575
; 135db
-INCBIN "baserom.gbc", $135db, $135eb - $135db
+Function135db: ; 135db
+ xor a
+ ld [$df9c], a
+ ld a, $14
+ ld [$dc79], a
+ callba Function11490
+ ret
+; 135eb
UnknownScript_0x135eb: ; 0x135eb
writecode $3, $6
@@ -25907,7 +23069,459 @@ UnknownScript_0x1369a: ; 0x1369a
; 0x1369d
-INCBIN "baserom.gbc", $1369d, $13b87 - $1369d
+Function1369d: ; 1369d
+ call Function13900
+ callba Function105f79
+ call Function13819
+ ld a, [$d00a]
+ call Function13730
+ ld a, [$d00b]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $7719
+ call PrintText
+ ld a, [EndFlypoint]
+ call Function13730
+ ld a, [MovementBuffer]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $7702
+ call PrintText
+ ld a, [DefaultFlypoint]
+ call Function13730
+ ld a, [$d003]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $76eb
+ call PrintText
+ jp Function13807
+; 136eb
+
+INCBIN "baserom.gbc", $136eb, $13730 - $136eb
+
+Function13730: ; 13730
+ dec a
+ jr z, .asm_13777
+ ld c, a
+ ld b, $0
+ ld hl, $7783
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+ ld c, a
+ push hl
+ push bc
+ callab Function3952d
+ ld hl, StringBuffer1
+ ld de, $d016
+ ld bc, $000d
+ call CopyBytes
+ ld hl, $d016
+.asm_13757
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_13757
+ dec hl
+ ld [hl], $7f
+ inc hl
+ ld d, h
+ ld e, l
+ pop bc
+ pop hl
+ push de
+ ld a, [hl]
+ ld b, a
+ callab Function3994c
+ ld hl, StringBuffer1
+ pop de
+ ld bc, $000a
+ jp CopyBytes
+
+.asm_13777
+ ld hl, PlayerName
+ ld de, $d016
+ ld bc, $000b
+ jp CopyBytes
+; 13783
+
+INCBIN "baserom.gbc", $13783, $13807 - $13783
+
+Function13807: ; 13807
+ ld hl, $d00a
+ ld de, $fffc
+ ld b, $3
+.asm_1380f
+ ld a, [hl]
+ cp $1
+ jr z, .asm_13818
+ add hl, de
+ dec b
+ jr nz, .asm_1380f
+
+.asm_13818
+ ret
+; 13819
+
+Function13819: ; 13819
+ call Function13833
+ call Function138b0
+ ld hl, $d00e
+ ld a, $1
+ ld [hli], a
+ ld a, [$df9c]
+ ld [hli], a
+ ld a, [hProduct]
+ ld [hli], a
+ ld a, [hMultiplicand]
+ ld [hl], a
+ call Function1383e
+ ret
+; 13833
+
+Function13833: ; 13833
+ ld hl, DefaultFlypoint
+ ld b, $c
+ xor a
+.asm_13839
+ ld [hli], a
+ dec b
+ jr nz, .asm_13839
+ ret
+; 1383e
+
+Function1383e: ; 1383e
+ ld de, $d010
+ ld hl, $d004
+ ld c, $2
+ call StringCmp
+ jr c, .asm_1386b
+ ld hl, EndFlypoint
+ ld de, $d00a
+ ld bc, $0004
+ call CopyBytes
+ ld hl, DefaultFlypoint
+ ld de, EndFlypoint
+ ld bc, $0004
+ call CopyBytes
+ ld hl, DefaultFlypoint
+ call Function138a0
+ jr .asm_1389f
+
+.asm_1386b
+ ld de, $d010
+ ld hl, $d008
+ ld c, $2
+ call StringCmp
+ jr c, .asm_1388c
+ ld hl, EndFlypoint
+ ld de, $d00a
+ ld bc, $0004
+ call CopyBytes
+ ld hl, EndFlypoint
+ call Function138a0
+ jr .asm_1389f
+
+.asm_1388c
+ ld de, $d010
+ ld hl, $d00c
+ ld c, $2
+ call StringCmp
+ jr c, .asm_1389f
+ ld hl, $d00a
+ call Function138a0
+
+.asm_1389f
+ ret
+; 138a0
+
+Function138a0: ; 138a0
+ ld de, $d00e
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ret
+; 138b0
+
+Function138b0: ; 138b0
+ ld e, $0
+.asm_138b2
+ push de
+ call Function139ed
+ pop de
+ jr nz, .asm_138f9
+ ld a, e
+ inc a
+ inc a
+ ld [$d00e], a
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $7783
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ inc hl
+.asm_138cd
+ call Random
+ and $3
+ cp $3
+ jr z, .asm_138cd
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld [$d00f], 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 [$d010], a
+ ld a, l
+ ld [$d011], a
+ push de
+ call Function1383e
+ pop de
+
+.asm_138f9
+ inc e
+ ld a, e
+ cp $a
+ jr nz, .asm_138b2
+ ret
+; 13900
+
+Function13900: ; 13900
+ xor a
+ ld [hProduct], a
+ ld [hMultiplicand], a
+ ld a, [$df9c]
+ and a
+ jr z, .asm_1397e
+ ld a, [$dfc1]
+ call Function1397f
+ ld a, [$dfc1]
+ call Function1397f
+ ld a, [$dfc1]
+ call Function1397f
+ ld a, [$dfc1]
+ call Function1397f
+ ld a, [$dfc3]
+ call Function1397f
+ ld a, [$dfc5]
+ call Function1397f
+ ld a, [$dfc7]
+ call Function1397f
+ ld a, [$dfc9]
+ call Function1397f
+ ld a, [$dfcb]
+ call Function1397f
+ ld a, [$dfb1]
+ 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, [$dfb2]
+ 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 Function1397f
+ ld a, [$dfbf]
+ srl a
+ srl a
+ srl a
+ call Function1397f
+ ld a, [$df9d]
+ and a
+ jr z, .asm_1397e
+ ld a, $1
+ call Function1397f
+
+.asm_1397e
+ ret
+; 1397f
+
+Function1397f: ; 1397f
+ ld hl, hMultiplicand
+ add [hl]
+ ld [hl], a
+ ret nc
+ dec hl
+ inc [hl]
+ ret
+; 13988
+
+Function13988: ; 13988
+ ld hl, PartyMon1PokerusStatus
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+.asm_13991
+ ld a, [hl]
+ and $f
+ jr z, .asm_139a0
+ sub b
+ jr nc, .asm_1399a
+ xor a
+
+.asm_1399a
+ ld d, a
+ ld a, [hl]
+ and $f0
+ add d
+ ld [hl], a
+
+.asm_139a0
+ ld de, PartyMon2 - PartyMon1
+ add hl, de
+ dec c
+ jr nz, .asm_13991
+ ret
+; 139a8
+
+Function139a8: ; 139a8
+ ld c, $a
+ ld hl, $79fe
+.asm_139ad
+ push bc
+ push hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $0
+ call EventFlagAction
+ pop hl
+ inc hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_139ad
+ ld c, $5
+.asm_139c0
+ push bc
+.asm_139c1
+ call Random
+ cp $fa
+ jr nc, .asm_139c1
+ ld c, $19
+ call SimpleDivide
+ ld e, b
+ ld d, $0
+ ld hl, $79fe
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+ ld b, $2
+ call EventFlagAction
+ pop de
+ ld a, c
+ and a
+ jr nz, .asm_139c1
+ ld b, $1
+ call EventFlagAction
+ pop bc
+ dec c
+ jr nz, .asm_139c0
+ ret
+; 139ed
+
+Function139ed: ; 139ed
+ ld hl, $79fe
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $2
+ call EventFlagAction
+ ret
+; 139fe
+
+INCBIN "baserom.gbc", $139fe, $13a12 - $139fe
+
+Function13a12: ; 13a12
+ ld hl, PartyMon1CurHP
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_13a2b
+ ld hl, PartyCount
+ ld a, $1
+ ld [hli], a
+ inc hl
+ ld a, [hl]
+ ld [$df9b], a
+ ld [hl], $ff
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_13a2b
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 13a31
+
+Function13a31: ; 13a31
+ ld hl, $dcd9
+ ld a, [$df9b]
+ ld [hl], a
+ ld b, $1
+.asm_13a3a
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_13a42
+ inc b
+ jr .asm_13a3a
+
+.asm_13a42
+ ld a, b
+ ld [PartyCount], a
+ ret
+; 13a47
+
+INCBIN "baserom.gbc", $13a47, $13b87 - $13a47
GetSquareRoot: ; 13b87
@@ -27655,7 +25269,49 @@ Function14a07: ; 14a07
ret
; 14a1a
-INCBIN "baserom.gbc", $14a1a, $14b5f - $14a1a
+INCBIN "baserom.gbc", $14a1a, $14a58 - $14a1a
+
+Function14a58: ; 14a58
+ call Function14b54
+ callba Function14056
+ callba Function1050d9
+ call Function14df7
+ call Function14e13
+ call Function14e76
+ call Function14e8b
+ callba Function44725
+ callba Function1406a
+ call Function14b5a
+ ret
+; 14a83
+
+INCBIN "baserom.gbc", $14a83, $14ab2 - $14a83
+
+Function14ab2: ; 14ab2
+ call Function14b89
+ jr c, .asm_14ac1
+ call Function14b54
+ call Function14be3
+ call Function14b5a
+ and a
+
+.asm_14ac1
+ ret
+; 14ac2
+
+INCBIN "baserom.gbc", $14ac2, $14b54 - $14ac2
+
+Function14b54: ; 14b54
+ ld a, $1
+ ld [$c2cd], a
+ ret
+; 14b5a
+
+Function14b5a: ; 14b5a
+ xor a
+ ld [$c2cd], a
+ ret
+; 14b5f
Function14b5f: ; 14b5f
@@ -27685,7 +25341,87 @@ Function14b85: ; 14b85
ret
; 14b89
-INCBIN "baserom.gbc", $14b89, $14c10 - $14b89
+Function14b89: ; 14b89
+ ld a, [$cfcd]
+ and a
+ jr z, .asm_14ba8
+ call Function14bcb
+ jr z, .asm_14b9e
+ ld hl, $5297
+ call Function14baf
+ jr nz, .asm_14bad
+ jr .asm_14ba8
+
+.asm_14b9e
+ ld hl, $5292
+ call Function14baf
+ jr nz, .asm_14bad
+ jr .asm_14bab
+
+.asm_14ba8
+ call Function14cbb
+
+.asm_14bab
+ and a
+ ret
+
+.asm_14bad
+ scf
+ ret
+; 14baf
+
+Function14baf: ; 14baf
+ ld b, $5
+ call Function269a
+ call Function1d58
+ ld bc, $0007
+ call Function1dd2
+ ld a, [$cfa9]
+ dec a
+ call Function1c17
+ push af
+ call Functiond90
+ pop af
+ and a
+ ret
+; 14bcb
+
+Function14bcb: ; 14bcb
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $a009
+ ld a, [hli]
+ ld c, [hl]
+ ld b, a
+ call CloseSRAM
+ ld a, [PlayerID]
+ cp b
+ ret nz
+ ld a, [$d47c]
+ cp c
+ ret
+; 14be3
+
+Function14be3: ; 14be3
+ call Function14c99
+ call Function14c10
+ ld c, $20
+ call DelayFrames
+ ld a, [Options]
+ push af
+ ld a, $3
+ ld [Options], a
+ ld hl, $528d
+ call PrintText
+ pop af
+ ld [Options], a
+ ld de, $0025
+ call WaitPlaySFX
+ call WaitSFX
+ ld c, $1e
+ call DelayFrames
+ ret
+; 14c10
Function14c10: ; 14c10
@@ -27768,7 +25504,24 @@ Function14c90: ; 14c90
jr .asm_14c93
; 14c99
-INCBIN "baserom.gbc", $14c99, $14cbb - $14c99
+Function14c99: ; 14c99
+ xor a
+ ld [hJoypadReleased], a
+ ld [hJoypadPressed], a
+ ld [hJoypadSum], a
+ ld [hJoypadDown], a
+ ld a, [Options]
+ push af
+ ld a, $3
+ ld [Options], a
+ ld hl, $5288
+ call PrintText
+ pop af
+ ld [Options], a
+ ld c, $10
+ call DelayFrames
+ ret
+; 14cbb
Function14cbb: ; 14cbb
@@ -28072,7 +25825,20 @@ Function14faf: ; 14faf
ret
; 14fd7
-INCBIN "baserom.gbc", $14fd7, $1509a - $14fd7
+INCBIN "baserom.gbc", $14fd7, $1500c - $14fd7
+
+Function1500c: ; 1500c
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $a865
+ ld de, PartyCount
+ ld bc, $031e
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 15021
+
+INCBIN "baserom.gbc", $15021, $1509a - $15021
Function1509a: ; 1509a
@@ -28128,7 +25894,7 @@ Function150f9: ; 150f9
push de
ld a, $1
call GetSRAMBank
- ld hl, $ad10
+ ld hl, BoxCount
ld de, EnemyMoveAnimation
ld bc, $01e0
call CopyBytes
@@ -28368,7 +26134,149 @@ Function1541d: ; 1541d
jr .asm_1541d
; 15440
-INCBIN "baserom.gbc", $15440, $15736 - $15440
+INCBIN "baserom.gbc", $15440, $1559a - $15440
+
+Function1559a: ; 1559a
+ call Function15650
+ ret c
+ call Function156b3
+ ld hl, $5a27
+ call Function15a20
+ ld hl, $5a2c
+ call Function157bb
+ ld hl, $55d6
+ call LoadMenuDataHeader
+.asm_155b3
+ xor a
+ ld [hBGMapMode], a
+ call Function1563e
+ ld [$cf76], a
+ call Function1e5d
+ jr c, .asm_155cc
+ ld a, [MenuSelection]
+ ld hl, $55e6
+ call Function1fa7
+ jr nc, .asm_155b3
+
+.asm_155cc
+ call Function156b8
+ call Function1c07
+ call Function1c17
+ ret
+; 155d6
+
+INCBIN "baserom.gbc", $155d6, $1563e - $155d6
+
+Function1563e: ; 1563e
+ call Function2ead
+ jr nz, .asm_15646
+ ld a, $0
+ ret
+
+.asm_15646
+ ld a, [$d95e]
+ and a
+ ld a, $1
+ ret z
+ ld a, $2
+ ret
+; 15650
+
+Function15650: ; 15650
+ ld a, [PartyCount]
+ and a
+ ret nz
+ ld de, $000f
+ call StartSFX
+ ld hl, $5663
+ call Function15a20
+ scf
+ ret
+; 15663
+
+INCBIN "baserom.gbc", $15663, $156b3 - $15663
+
+Function156b3: ; 156b3
+ ld de, $000d
+ jr Function156d0
+
+Function156b8: ; 156b8
+ ld de, $000e
+ call Function156d0
+ call WaitSFX
+ ret
+
+Function156c1: ; 156c1
+ ld de, $000f
+ jr Function156d0
+
+Function156c6: ; 156c6
+ ld de, $0020
+ call Function156d0
+ ld de, $0020
+
+Function156d0: ; 156d0
+ push de
+ call WaitSFX
+ pop de
+ call StartSFX
+ ret
+; 156d9
+
+Function156d9: ; 156d9
+ call Function156b3
+ ld hl, $56ff
+ call Function15a20
+ ld b, $1
+ call Function15704
+ and a
+ jr nz, .asm_156f9
+ call Function2173
+ call Function321c
+ call Function1ad2
+ call Function156b8
+ ld c, $0
+ ret
+
+.asm_156f9
+ call WhiteBGMap
+ ld c, $1
+ ret
+; 156ff
+
+INCBIN "baserom.gbc", $156ff, $15704 - $156ff
+
+Function15704: ; 15704
+ ld a, b
+ ld [$cf76], a
+ ld hl, $57cc
+ call Function157bb
+ call Function15715
+ call Function1c07
+ ret
+; 15715
+
+Function15715: ; 15715
+ xor a
+ ld [$d0d7], a
+ ld [$d0dd], a
+ ld hl, KrissPCMenuData
+ call LoadMenuDataHeader
+.asm_15722
+ call UpdateTimePals
+ call Function1e5d
+ jr c, .asm_15731
+ call Function1fa7
+ jr nc, .asm_15722
+ jr .asm_15732
+
+.asm_15731
+ xor a
+
+.asm_15732
+ call Function1c07
+ ret
+; 15736
KrissPCMenuData: ; 0x15736
db %01000000
@@ -28429,7 +26337,18 @@ LOG_OFF EQU 6
db LOG_OFF
db $ff
-INCBIN "baserom.gbc", $157bb, $157d1 - $157bb
+Function157bb: ; 157bb
+ ld a, [Options]
+ push af
+ set 4, a
+ ld [Options], a
+ call Function1d4f
+ pop af
+ ld [Options], a
+ ret
+; 157cc
+
+INCBIN "baserom.gbc", $157cc, $157d1 - $157cc
KrisWithdrawItemMenu: ; 0x157d1
call Function1d6e
@@ -28476,14 +26395,14 @@ Function157e9: ; 0x157e9
ld a, [$d107]
ld [Buffer2], a
ld hl, NumItems
- call Function2f66
+ call ReceiveItem
jr nc, .PackFull
ld a, [Buffer1]
ld [$d10c], a
ld a, [Buffer2]
ld [$d107], a
ld hl, PCItems
- call Function2f53
+ call TossItem
ld a, $3b
call Predef
ld hl, .WithdrewText
@@ -28657,14 +26576,14 @@ Function1590a: ; 0x1590a
ld a, [$d107]
ld [Buffer2], a
ld hl, PCItems
- call Function2f66
+ call ReceiveItem
jr nc, .asm_15965
ld a, [Buffer1]
ld [$d10c], a
ld a, [Buffer2]
ld [$d107], a
ld hl, NumItems
- call Function2f53
+ call TossItem
ld a, $3b
call Predef
ld hl, .DepositText
@@ -28754,7 +26673,7 @@ Function15985: ; 0x15985
jr .asm_159f8
.asm_159ef
- call $56c7
+ call Function156c6
.asm_159f2
ld a, $9
@@ -28793,7 +26712,13 @@ MenuData15a08: ; 0x15a08
dbw BANK(Function24ac3), Function24ac3
dbw BANK(Function244c3), Function244c3
-INCBIN "baserom.gbc", $15a20, $15a45 - $15a20
+Function15a20: ; 15a20
+ call Function1d4f
+ call Function1c07
+ ret
+; 15a27
+
+INCBIN "baserom.gbc", $15a27, $15a45 - $15a27
OpenMartDialog: ; 15a45
@@ -28808,11 +26733,11 @@ OpenMartDialog: ; 15a45
; 15a57
.dialogs
- dw MartDialog
- dw HerbShop
- dw BargainShop
- dw Pharmacist
- dw VendingMachine
+ dw MartDialog
+ dw HerbShop
+ dw BargainShop
+ dw Pharmacist
+ dw VendingMachine
; 15a61
MartDialog: ; 15a61
@@ -28894,7 +26819,7 @@ INCBIN "baserom.gbc", $15aee, $15b10 - $15aee
Function15b10: ; 15b10
ld a, b
- ld [CurFruit], a
+ ld [$d03f], a
ld a, e
ld [MartPointer], a
ld a, d
@@ -28940,12 +26865,12 @@ Function15b47: ; 15b47
ret
.table_15b56
- dw Function15b62
- dw Function15b6e
- dw Function15b8d
- dw Function15b9a
- dw Function15ba3
- dw Function15baf
+ dw Function15b62
+ dw Function15b6e
+ dw Function15b8d
+ dw Function15b9a
+ dw Function15ba3
+ dw Function15baf
; 15b62
Function15b62: ; 15b62
@@ -29016,7 +26941,7 @@ ReadMart: ; 15bbb
ld l, a
ld de, CurMart
.CopyMart
- ld a, [CurFruit]
+ ld a, [$d03f]
call GetFarByte
ld [de], a
inc hl
@@ -29182,11 +27107,11 @@ Function15ca3: ; 15ca3
; 15cb0
.data_15cb0 ; 15cb0
- dwb $5cbf, 0
- dwb $5ccb, 0
- dwb $5cd7, 1
- dwb $5ce3, 0
- dwb $5cbf, 2
+ dwb $5cbf, 0
+ dwb $5ccb, 0
+ dwb $5cd7, 1
+ dwb $5ce3, 0
+ dwb $5cbf, 2
; 15cbf
INCBIN "baserom.gbc", $15cbf, $15cef - $15cbf
@@ -29226,7 +27151,7 @@ Function15cef: ; 15cef
call Function1600b
jr c, .asm_15d79
ld hl, NumItems
- call Function2f66
+ call ReceiveItem
jr nc, .asm_15d6f
ld a, [$d107]
ld e, a
@@ -29391,12 +27316,24 @@ INCBIN "baserom.gbc", $15ed3, $15ee0 - $15ed3
Function15ee0: ; 15ee0
callba CheckItemMenu
ld a, [$d142]
- ld hl, $5eee
+ ld hl, Table15eee
rst JumpTable
ret
; 15eee
-INCBIN "baserom.gbc", $15eee, $15efd - $15eee
+Table15eee: ; 15eee
+ dw Function15efd
+ dw Function15efc
+ dw Function15efc
+ dw Function15efc
+ dw Function15efd
+ dw Function15efd
+ dw Function15efd
+; 15efc
+
+Function15efc: ; 15efc
+ ret
+; 15efd
Function15efd: ; 15efd
@@ -29432,7 +27369,7 @@ Function15efd: ; 15efd
call Function15fd7
ld a, [$d107]
ld hl, NumItems
- call Function2f53
+ call TossItem
ld a, $3b
call Predef
ld hl, $c5b9
@@ -29699,451 +27636,909 @@ Function160a1: ; 160a1
; 160a9
-Marts: ; 160a9
- dw Mart0
- dw Mart1
- dw Mart2
- dw Mart3
- dw Mart4
- dw Mart5
- dw Mart6
- dw Mart7
- dw Mart8
- dw Mart9
- dw Mart10
- dw Mart11
- dw Mart12
- dw Mart13
- dw Mart14
- dw Mart15
- dw Mart16
- dw Mart17
- dw Mart18
- dw Mart19
- dw Mart20
- dw Mart21
- dw Mart22
- dw Mart23
- dw Mart24
- dw Mart25
- dw Mart26
- dw Mart27
- dw Mart28
- dw Mart29
- dw Mart30
- dw Mart31
- dw Mart32
- dw Mart33
-MartsEnd
-; 160ed
-
-
-Mart0: ; 160ed
- db 4 ; # items
- db POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db $ff
-; 160f3
-
-Mart1: ; 160f3
- db 5 ; # items
- db POKE_BALL
- db POTION
- db ANTIDOTE
- db PARLYZ_HEAL
- db AWAKENING
- db $ff
-; 160fa
-
-Mart2: ; 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
-
-Mart3: ; 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
-
-Mart4: ; 16111
- db 5 ; # items
- db POTION
- db SUPER_POTION
- db HYPER_POTION
- db FULL_HEAL
- db REVIVE
- db $ff
-; 16118
-
-Mart5: ; 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
-
-Mart6: ; 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
-
-Mart7: ; 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
-
-Mart8: ; 16134
- db 5 ; # items
- db PROTEIN
- db IRON
- db CARBOS
- db CALCIUM
- db HP_UP
- db $ff
-; 1613b
+INCLUDE "items/marts.asm"
-Mart9: ; 1613b
- db 3 ; # items
- db TM_41
- db TM_48
- db TM_33
- db $ff
-; 16140
-
-Mart10: ; 16140
- db 4 ; # items
- db TM_41
- db TM_48
- db TM_33
- db TM_02
- db $ff
-; 16146
-
-Mart11: ; 16146
- db 4 ; # items
- db TM_41
- db TM_48
- db TM_33
- db TM_08
- db $ff
-; 1614c
-
-Mart12: ; 1614c
- db 5 ; # items
- db TM_41
- db TM_48
- db TM_33
- db TM_02
- db TM_08
- db $ff
-; 16153
-
-Mart13: ; 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
-
-Mart14: ; 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
-
-Mart15: ; 1616a
- db 4 ; # items
- db TINYMUSHROOM
- db SLOWPOKETAIL
- db POKE_BALL
- db POTION
- db $ff
-; 16170
-
-Mart16: ; 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
-
-Mart17: ; 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
-
-Mart18: ; 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
-
-Mart19: ; 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
-
-Mart20: ; 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
-
-Mart21: ; 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
-
-Mart22: ; 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
-
-Mart23: ; 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
-
-Mart24: ; 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
-
-Mart25: ; 161ce
- db 5 ; # items
- db TM_10
- db TM_11
- db TM_17
- db TM_18
- db TM_37
- db $ff
-; 161d5
-Mart26: ; 161d5
- db 3 ; # items
- db POKE_DOLL
- db LOVELY_MAIL
- db SURF_MAIL
- db $ff
-; 161da
-
-Mart27: ; 161da
- db 5 ; # items
- db HP_UP
- db PROTEIN
- db IRON
- db CARBOS
- db CALCIUM
- db $ff
-; 161e1
-
-Mart28: ; 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
-
-Mart29: ; 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
-
-Mart30: ; 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
-
-Mart31: ; 161fd
- db 6 ; # items
- db POKE_DOLL
- db FRESH_WATER
- db SODA_POP
- db LEMONADE
- db REPEL
- db PORTRAITMAIL
- db $ff
-; 16205
-
-Mart32: ; 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
-
-Mart33: ; 1620e
- db 4 ; # items
- db ENERGYPOWDER
- db ENERGY_ROOT
- db HEAL_POWDER
- db REVIVAL_HERB
- db $ff
-; 16214
+Function16218: ; 16218
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ xor a
+ ld [$cf63], a
+.asm_16223
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_1622f
+ call Function16233
+ jr .asm_16223
-DefaultMart: ; 16214
- db 2 ; # items
- db POKE_BALL
- db POTION
- db $ff
-; 16218
+.asm_1622f
+ pop af
+ ld [$ffaa], a
+ ret
+; 16233
+
+Function16233: ; 16233
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $6242
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 16242
+
+INCBIN "baserom.gbc", $16242, $166d6 - $16242
+
+Function166d6: ; 166d6
+ ld hl, DaycareMan
+ bit 0, [hl]
+ jr nz, .asm_166fe
+ ld hl, DaycareMan
+ ld a, $0
+ call Function1678f
+ jr c, .asm_16724
+ call Function16798
+ jr c, .asm_16721
+ callba Functionde2a
+ ld hl, DaycareMan
+ set 0, [hl]
+ call Function167f6
+ call Function16a3b
+ ret
+
+.asm_166fe
+ callba Functione698
+ ld hl, BreedMon1Nick
+ call Function1686d
+ call Function16807
+ jr c, .asm_16721
+ callba Functiondd21
+ call Function16850
+ ld hl, DaycareMan
+ res 0, [hl]
+ res 5, [hl]
+ jr .asm_16724
+
+.asm_16721
+ call Function1689b
+
+.asm_16724
+ ld a, $13
+ call Function1689b
+ ret
+; 1672a
+
+Function1672a: ; 1672a
+ ld hl, DaycareLady
+ bit 0, [hl]
+ jr nz, .asm_16752
+ ld hl, DaycareLady
+ ld a, $2
+ call Function16781
+ jr c, .asm_1677b
+ call Function16798
+ jr c, .asm_16778
+ callba Functionde37
+ ld hl, DaycareLady
+ set 0, [hl]
+ call Function167f6
+ call Function16a3b
+ ret
+
+.asm_16752
+ callba Functione6b3
+ ld hl, BreedMon2Nick
+ call Function1686d
+ call Function16807
+ jr c, .asm_16778
+ callba Functiondd42
+ call Function16850
+ ld hl, DaycareLady
+ res 0, [hl]
+ ld hl, DaycareMan
+ res 5, [hl]
+ jr .asm_1677b
+
+.asm_16778
+ call Function1689b
+
+.asm_1677b
+ ld a, $13
+ call Function1689b
+ ret
+; 16781
+
+Function16781: ; 16781
+ bit 7, [hl]
+ jr nz, .asm_16788
+ set 7, [hl]
+ inc a
+
+.asm_16788
+ call Function1689b
+ call Function1dcf
+ ret
+; 1678f
+
+Function1678f: ; 1678f
+ set 7, [hl]
+ call Function1689b
+ call Function1dcf
+ ret
+; 16798
+
+Function16798: ; 16798
+ ld a, [PartyCount]
+ cp $2
+ jr c, .asm_167e5
+ ld a, $4
+ call Function1689b
+ ld b, $6
+ callba Function5001d
+ jr c, .asm_167dd
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_167e1
+ callba Functione538
+ jr c, .asm_167e9
+ ld hl, PartyMon1Item
+ ld bc, $0030
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld d, [hl]
+ callba ItemIsMail
+ jr c, .asm_167ed
+ ld hl, PartyMon1Nickname
+ ld a, [CurPartyMon]
+ call GetNick
+ and a
+ ret
+
+.asm_167dd
+ ld a, $12
+ scf
+ ret
+
+.asm_167e1
+ ld a, $6
+ scf
+ ret
+
+.asm_167e5
+ ld a, $7
+ scf
+ ret
+
+.asm_167e9
+ ld a, $8
+ scf
+ ret
+
+.asm_167ed
+ ld a, $a
+ scf
+ ret
+; 167f1
+
+INCBIN "baserom.gbc", $167f1, $167f6 - $167f1
+
+Function167f6: ; 167f6
+ ld a, $5
+ call Function1689b
+ ld a, [CurPartySpecies]
+ call Function37ce
+ ld a, $9
+ call Function1689b
+ ret
+; 16807
+
+Function16807: ; 16807
+ ld a, [$d087]
+ and a
+ jr nz, .asm_16819
+ ld a, $f
+ call Function1689b
+ call Function1dcf
+ jr c, .asm_16844
+ jr .asm_1682d
+
+.asm_16819
+ ld a, $b
+ call Function1689b
+ call Function1dcf
+ jr c, .asm_16844
+ ld a, $c
+ call Function1689b
+ call Function1dcf
+ jr c, .asm_16844
+
+.asm_1682d
+ ld de, Money
+ ld bc, $d088
+ callba Function1600b
+ jr c, .asm_16848
+ ld a, [PartyCount]
+ cp $6
+ jr nc, .asm_1684c
+ and a
+ ret
+.asm_16844
+ ld a, $12
+ scf
+ ret
+
+.asm_16848
+ ld a, $11
+ scf
+ ret
+
+.asm_1684c
+ ld a, $10
+ scf
+ ret
+; 16850
+
+Function16850: ; 16850
+ ld bc, $d088
+ ld de, Money
+ callba Function15ffa
+ ld a, $d
+ call Function1689b
+ ld a, [CurPartySpecies]
+ call Function37ce
+ ld a, $e
+ call Function1689b
+ ret
+; 1686d
+
+Function1686d: ; 1686d
+ ld a, b
+ ld [StringBuffer2], a
+ ld a, d
+ ld [$d087], a
+ ld de, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ ld hl, $0000
+ ld bc, $0064
+ ld a, [$d087]
+ call AddNTimes
+ ld de, $0064
+ add hl, de
+ xor a
+ ld [$d088], a
+ ld a, h
+ ld [$d089], a
+ ld a, l
+ ld [$d08a], a
+ ret
+; 1689b
+
+Function1689b: ; 1689b
+ ld e, a
+ ld d, $0
+ ld hl, $68aa
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 168aa
+
+INCBIN "baserom.gbc", $168aa, $16936 - $168aa
-INCBIN "baserom.gbc", $16218, $16e1d - $16218
+Function16936: ; 16936
+ ld hl, DaycareMan
+ bit 6, [hl]
+ jr nz, .asm_16949
+ ld hl, .data_16944
+ call PrintText
+ ret
+
+.data_16944
+ db $16
+ db $f6
+ db $5e
+ db $6f
+ db $50
+
+.asm_16949
+ ld hl, $6993
+ call PrintText
+ call Function1dcf
+ jr c, .asm_1697c
+ ld a, [PartyCount]
+ cp $6
+ jr nc, .asm_16987
+ call Function169ac
+ ld hl, DaycareMan
+ res 6, [hl]
+ call Function16a3b
+ ld hl, $6998
+ call PrintText
+ ld de, $0096
+ call StartSFX
+ ld c, $78
+ call DelayFrames
+ ld hl, $699d
+ jr .asm_1697f
+
+.asm_1697c
+ ld hl, $69a2
+
+.asm_1697f
+ call PrintText
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_16987
+ ld hl, $69a7
+ call PrintText
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 16993
+
+INCBIN "baserom.gbc", $16993, $169ac - $16993
+
+Function169ac: ; 169ac
+ ld a, [$df9a]
+ ld [CurPartyLevel], a
+ ld hl, PartyCount
+ ld a, [hl]
+ cp $6
+ jr nc, .asm_16a2f
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, $fd
+ ld [hli], a
+ ld a, [EggSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ call Function16a31
+ ld hl, EggNick
+ call CopyBytes
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ call Function16a31
+ ld hl, EggOT
+ call CopyBytes
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call Function16a31
+ ld hl, EggSpecies
+ ld bc, $0020
+ call CopyBytes
+ call GetBaseData
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ld hl, $0007
+ add hl, bc
+ push hl
+ ld hl, $0024
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ push bc
+ ld b, $0
+ ld a, $c
+ call Predef
+ pop bc
+ ld hl, $0022
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ and a
+ ret
+
+.asm_16a2f
+ scf
+ ret
+; 16a31
+
+Function16a31: ; 16a31
+ ld a, [PartyCount]
+ dec a
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ret
+; 16a3b
+
+Function16a3b: ; 16a3b
+ ld a, [DaycareLady]
+ bit 0, a
+ ret z
+ ld a, [DaycareMan]
+ bit 0, a
+ ret z
+ callab Function16e1d
+ ld a, [$d265]
+ and a
+ ret z
+ inc a
+ ret z
+ ld hl, DaycareMan
+ set 5, [hl]
+.asm_16a59
+ call Random
+ cp $96
+ jr c, .asm_16a59
+ ld [StepsToEgg], a
+ jp Function16a66
+; 16a66
+
+Function16a66: ; 16a66
+ xor a
+ ld hl, EggSpecies
+ ld bc, $0020
+ call ByteFill
+ ld hl, EggNick
+ ld bc, $000b
+ call ByteFill
+ ld hl, EggOT
+ ld bc, $000b
+ call ByteFill
+ ld a, [$df21]
+ ld [TempMonDVs], a
+ ld a, [$df22]
+ ld [$d124], a
+ ld a, [BreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, $3
+ ld [MonType], a
+ ld a, [BreedMon1Species]
+ cp $84
+ ld a, $1
+ jr z, .asm_16ab6
+ ld a, [BreedMon2Species]
+ cp $84
+ ld a, $0
+ jr z, .asm_16ab6
+ callba GetGender
+ ld a, $0
+ jr z, .asm_16ab6
+ inc a
+
+.asm_16ab6
+ ld [DittoInDaycare], a
+ and a
+ ld a, [BreedMon1Species]
+ jr z, .asm_16ac2
+ ld a, [BreedMon2Species]
+
+.asm_16ac2
+ ld [CurPartySpecies], a
+ callab GetPreEvolution
+ callab GetPreEvolution
+ ld a, $5
+ ld [CurPartyLevel], a
+ ld a, [CurPartySpecies]
+ cp $1d
+ jr nz, .asm_16ae8
+ call Random
+ cp $80
+ ld a, $1d
+ jr c, .asm_16ae8
+ ld a, $20
+
+.asm_16ae8
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ ld [EggSpecies], a
+ call GetBaseData
+ ld hl, EggNick
+ ld de, $6be0
+ call CopyName2
+ ld hl, PlayerName
+ ld de, EggOT
+ ld bc, $000b
+ call CopyBytes
+ xor a
+ ld [$df7c], a
+ ld de, $df7d
+ xor a
+ ld [Buffer1], a
+ ld a, $1b
+ call Predef
+ callba Function170bf
+ ld hl, $df81
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [$d47c]
+ ld [hl], a
+ ld a, [CurPartyLevel]
+ ld d, a
+ callab Function50e47
+ ld hl, $df83
+ ld a, [hMultiplicand]
+ ld [hli], a
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hl], a
+ xor a
+ ld b, $a
+ ld hl, $df86
+.asm_16b46
+ ld [hli], a
+ dec b
+ jr nz, .asm_16b46
+ ld hl, $df90
+ call Random
+ ld [hli], a
+ ld [TempMonDVs], a
+ call Random
+ ld [hld], a
+ ld [$d124], a
+ ld de, $df21
+ ld a, [BreedMon1Species]
+ cp $84
+ jr z, .asm_16b98
+ ld de, $df5a
+ ld a, [BreedMon2Species]
+ cp $84
+ jr z, .asm_16b98
+ ld a, $3
+ ld [MonType], a
+ push hl
+ callba GetGender
+ pop hl
+ ld de, $df21
+ ld bc, $df5a
+ jr c, .asm_16bab
+ jr z, .asm_16b90
+ ld a, [DittoInDaycare]
+ and a
+ jr z, .asm_16b98
+ ld d, b
+ ld e, c
+ jr .asm_16b98
+
+.asm_16b90
+ ld a, [DittoInDaycare]
+ and a
+ jr nz, .asm_16b98
+ ld d, b
+ ld e, c
+
+.asm_16b98
+ ld a, [de]
+ inc de
+ and $f
+ ld b, a
+ ld a, [hl]
+ and $f0
+ add b
+ ld [hli], a
+ ld a, [de]
+ and $7
+ ld b, a
+ ld a, [hl]
+ and $f8
+ add b
+ ld [hl], a
+
+.asm_16bab
+ ld hl, StringBuffer1
+ ld de, $d050
+ ld bc, $000b
+ call CopyBytes
+ ld hl, $df7d
+ ld de, $df92
+ ld a, $5
+ call Predef
+ ld hl, $d050
+ ld de, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ ld a, [BaseEggSteps]
+ ld hl, $df96
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld a, [CurPartyLevel]
+ ld [$df9a], a
+ ret
+; 16be0
+
+INCBIN "baserom.gbc", $16be0, $16be4 - $16be0
+
+Function16be4: ; 16be4
+ ld a, [UnownDex]
+ and a
+ ret z
+
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ ld a, [Options]
+ push af
+ set 4, a
+ ld [Options], a
+ call WhiteBGMap
+ call ClearTileMap
+
+ ld de, UnownDexATile
+ ld hl, $8ef0
+ ld bc, $0501
+ call Request1bpp
+
+ ld de, UnownDexBTile
+ ld hl, $8f50
+ ld bc, $0501
+ call Request1bpp
+
+ ld hl, TileMap
+ ld bc, $0312
+ call TextBox
+
+ ld hl, $c504
+ ld bc, $0707
+ call TextBox
+
+ ld hl, $c5b8
+ ld bc, $0212
+ call TextBox
+
+ ld hl, $c4c9
+ ld de, AlphRuinsStampString
+ call PlaceString
+
+ ld hl, $c5e1
+ ld de, UnownDexDoWhatString
+ call PlaceString
+
+ ld hl, $c522
+ ld de, UnownDexMenuString
+ call PlaceString
+
+ xor a
+ ld [$cf63], a
+ call Function16cc8
+ call WaitBGMap
+
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [TempMonDVs], a
+ ld [TempMonDVs + 1], a
+
+ ld b, $1c
+ call GetSGBLayout
+ call Function32f9
+
+.asm_16c6b
+ call Functiona57
+
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jr nz, .asm_16c95
+
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jr nz, .asm_16c82
+
+ call Function16ca0
+ call DelayFrame
+ jr .asm_16c6b
+
+.asm_16c82
+ ld a, [$cf63]
+ push af
+ callba Function84560
+ call Function3d47
+ pop af
+ ld [$cf63], a
+ jr .asm_16c6b
+
+.asm_16c95
+ pop af
+ ld [Options], a
+ pop af
+ ld [$ffaa], a
+ call Function222a
+ ret
+; 16ca0
+
+Function16ca0: ; 16ca0
+ ld a, [$ffa9]
+ and $10
+ jr nz, .asm_16cb9
+ ld a, [$ffa9]
+ and $20
+ jr nz, .asm_16cad
+ ret
+
+.asm_16cad
+ ld hl, $cf63
+ ld a, [hl]
+ and a
+ jr nz, .asm_16cb6
+ ld [hl], $1b
+
+.asm_16cb6
+ dec [hl]
+ jr .asm_16cc4
+
+.asm_16cb9
+ ld hl, $cf63
+ ld a, [hl]
+ cp $1a
+ jr c, .asm_16cc3
+ ld [hl], $ff
+
+.asm_16cc3
+ inc [hl]
+
+.asm_16cc4
+ call Function16cc8
+ ret
+; 16cc8
+
+Function16cc8: ; 16cc8
+ ld a, [$cf63]
+ cp 26
+ jr z, Function16d20
+ inc a
+ ld [UnownLetter], a
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [$c2c6], a
+ ld de, VTiles2
+ ld a, $3c
+ call Predef
+ call Function16cff
+ ld hl, $c519
+ xor a
+ ld [$ffad], a
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ld de, $9310
+ callba Functione0000
+ ret
+; 16cff
+
+Function16cff: ; 16cff
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, $0
+ call GetSRAMBank
+ ld de, Unkn1Pals
+ ld hl, $a000
+ ld a, [hROMBank]
+ ld b, a
+ ld c, $31
+ call Get2bpp
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ ret
+; 16d20
+
+Function16d20: ; 16d20
+ ld hl, $c519
+ ld bc, $0707
+ call ClearBox
+ ld hl, $c555
+ ld de, UnownDexVacantString
+ call PlaceString
+ xor a
+ call GetSRAMBank
+ ld hl, $a000
+ ld bc, $0310
+ xor a
+ call ByteFill
+ ld hl, $9310
+ ld de, $a000
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ld c, $14
+ call DelayFrames
+ ret
+; 16d57
+
+AlphRuinsStampString:
+ db " ALPH RUINS STAMP@"
+
+UnownDexDoWhatString:
+ db "Do what?@"
+
+UnownDexMenuString:
+ db $ef, " PRINT", $4e
+ db $f5, " CANCEL", $4e
+ db $df, " PREVIOUS", $4e
+ db $eb, " NEXT@"
+
+UnownDexVacantString:
+ db "VACANT@"
+; 16d9c
+
+UnownDexATile: ; 16d9c
+ INCBIN "baserom.gbc", $16d9c, $16da4 - $16d9c
+UnownDexBTile: ; 16da4
+ INCBIN "baserom.gbc", $16da4, $16dac - $16da4
+; 16dac
+
+Function16dac: ; 16dac
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ ld hl, $c583
+ ld a, $31
+ ld [$ffad], a
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ret
+; 16dc7
+
+Function16dc7: ; 16dc7
+ ld hl, $6e04
+ call PrintText
+ callba Function50000
+ jr c, .asm_16df8
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_16dfd
+ ld hl, $6e09
+ call PrintText
+ call Function2ed3
+ callba Function8461a
+ call Function2b74
+ ld a, [$ffac]
+ and a
+ jr nz, .asm_16df8
+ ld hl, $6e0e
+ jr .asm_16e00
+
+.asm_16df8
+ ld hl, $6e13
+ jr .asm_16e00
+
+.asm_16dfd
+ ld hl, $6e18
+
+.asm_16e00
+ call PrintText
+ ret
+; 16e04
+
+INCBIN "baserom.gbc", $16e04, $16e1d - $16e04
Function16e1d: ; 16e1d
@@ -30333,86 +28728,314 @@ Function16f3e: ; 16f3e
jr .loop
; 16f5e
-INCBIN "baserom.gbc", $16f5e, $174ba - $16f5e
+INCBIN "baserom.gbc", $16f5e, $170bf - $16f5e
+
+Function170bf: ; 170bf
+ call Function17197
+ ld d, h
+ ld e, l
+ ld b, $4
+.asm_170c6
+ ld a, [de]
+ and a
+ jr z, .asm_170e3
+ ld hl, $df7d
+ ld c, $4
+.asm_170cf
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_170df
+ inc hl
+ dec c
+ jr nz, .asm_170cf
+ call Function170e4
+ jr nc, .asm_170df
+ call Function17169
+
+.asm_170df
+ inc de
+ dec b
+ jr nz, .asm_170c6
+
+.asm_170e3
+ ret
+; 170e4
+
+Function170e4: ; 170e4
+ push bc
+ ld a, [EggSpecies]
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $7b11
+ add hl, bc
+ add hl, bc
+ ld a, $8
+ call GetFarHalfword
+.asm_170f6
+ ld a, $8
+ call GetFarByte
+ cp $ff
+ jr z, .asm_17107
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .asm_17163
+ inc hl
+ jr .asm_170f6
+
+.asm_17107
+ call Function1720b
+ ld b, $4
+.asm_1710c
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_17116
+ inc hl
+ dec b
+ jr z, .asm_17146
+ jr .asm_1710c
+
+.asm_17116
+ ld a, [EggSpecies]
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $65b1
+ add hl, bc
+ add hl, bc
+ ld a, $10
+ call GetFarHalfword
+.asm_17127
+ ld a, $10
+ call GetFarByte
+ inc hl
+ and a
+ jr nz, .asm_17127
+.asm_17130
+ ld a, $10
+ call GetFarByte
+ and a
+ jr z, .asm_17146
+ inc hl
+ ld a, $10
+ call GetFarByte
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .asm_17163
+ inc hl
+ jr .asm_17130
+
+.asm_17146
+ ld hl, $567a
+.asm_17149
+ ld a, $4
+ call GetFarByte
+ inc hl
+ and a
+ jr z, .asm_17166
+ ld b, a
+ ld a, [de]
+ cp b
+ jr nz, .asm_17149
+ ld [$d262], a
+ ld a, $e
+ call Predef
+ ld a, c
+ and a
+ jr z, .asm_17166
+
+.asm_17163
+ pop bc
+ scf
+ ret
+
+.asm_17166
+ pop bc
+ and a
+ ret
+; 17169
+
+Function17169: ; 17169
+ push de
+ push bc
+ ld a, [de]
+ ld b, a
+ ld hl, $df7d
+ ld c, $4
+.asm_17172
+ ld a, [hli]
+ and a
+ jr z, .asm_17187
+ dec c
+ jr nz, .asm_17172
+ ld de, $df7d
+ ld hl, $df7e
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+
+.asm_17187
+ dec hl
+ ld [hl], b
+ ld hl, $df7d
+ ld de, $df92
+ ld a, $5
+ call Predef
+ pop bc
+ pop de
+ ret
+; 17197
+
+Function17197: ; 17197
+ ld hl, $df47
+ ld a, [BreedMon1Species]
+ cp $84
+ jr z, .asm_171b1
+ ld a, [BreedMon2Species]
+ cp $84
+ jr z, .asm_171d7
+ ld a, [DittoInDaycare]
+ and a
+ ret z
+ ld hl, $df0e
+ ret
+
+.asm_171b1
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [BreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [$df5a]
+ ld [TempMonDVs], a
+ ld a, [$df5b]
+ ld [$d124], a
+ ld a, $3
+ ld [MonType], a
+ ld a, $24
+ call Predef
+ jr c, .asm_171fb
+ jr nz, .asm_171fb
+ jr .asm_17203
+
+.asm_171d7
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [BreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [$df21]
+ ld [TempMonDVs], a
+ ld a, [$df22]
+ ld [$d124], a
+ ld a, $3
+ ld [MonType], a
+ ld a, $24
+ call Predef
+ jr c, .asm_17203
+ jr nz, .asm_17203
+
+.asm_171fb
+ ld hl, $df47
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+.asm_17203
+ ld hl, $df0e
+ pop af
+ ld [CurPartySpecies], a
+ ret
+; 1720b
+
+Function1720b: ; 1720b
+ ld hl, $df0e
+ ld a, [BreedMon1Species]
+ cp $84
+ ret z
+ ld a, [BreedMon2Species]
+ cp $84
+ jr z, .asm_17220
+ ld a, [DittoInDaycare]
+ and a
+ ret z
+
+.asm_17220
+ ld hl, $df47
+ ret
+; 17224
+
+INCBIN "baserom.gbc", $17224, $17421 - $17224
+
+Function17421: ; 17421
+ ld hl, $7467
+ call PrintText
+ ld a, [BreedMon1Species]
+ call Function37ce
+ ld a, [DaycareLady]
+ bit 0, a
+ jr z, Function1745f
+ call Functionaaf
+ ld hl, BreedMon2Nick
+ call Function1746c
+ jp PrintText
+
+Function17440: ; 17440
+ ld hl, $7462
+ call PrintText
+ ld a, [BreedMon2Species]
+ call Function37ce
+ ld a, [DaycareMan]
+ bit 0, a
+ jr z, Function1745f
+ call Functionaaf
+ ld hl, BreedMon1Nick
+ call Function1746c
+ jp PrintText
+
+Function1745f: ; 1745f
+ jp Functiona80
+; 17462
+
+INCBIN "baserom.gbc", $17462, $1746c - $17462
+
+Function1746c: ; 1746c
+ push bc
+ ld de, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ call Function16e1d
+ pop bc
+ ld a, [$d265]
+ ld hl, $749c
+ cp $ff
+ jr z, .asm_1749b
+ ld hl, $74a1
+ and a
+ jr z, .asm_1749b
+ ld hl, $74a6
+ cp $e6
+ jr nc, .asm_1749b
+ cp $46
+ ld hl, $74ab
+ jr nc, .asm_1749b
+ ld hl, $74b0
+
+.asm_1749b
+ ret
+; 1749c
+
+INCBIN "baserom.gbc", $1749c, $174ba - $1749c
SECTION "bank6",ROMX,BANK[$6]
-Tileset03GFX: ; 0x18000
-INCBIN "gfx/tilesets/03.lz"
-; 0x18605
-
- db $00
-
-Tileset03Meta: ; 0x18606
-INCBIN "tilesets/03_metatiles.bin"
-; 0x18e06
-
-Tileset03Coll: ; 0x18e06
-INCBIN "tilesets/03_collision.bin"
-; 0x19006
-
-Tileset00GFX: ; 0x19006
-Tileset01GFX: ; 0x19006
-INCBIN "gfx/tilesets/01.lz"
-; 0x19c0d
-
- db $00
-
-Tileset00Meta: ; 0x19c0e
-Tileset01Meta: ; 0x19c0e
-INCBIN "tilesets/01_metatiles.bin"
-; 0x1a40e
-
-Tileset00Coll: ; 0x1a40e
-Tileset01Coll: ; 0x1a40e
-INCBIN "tilesets/01_collision.bin"
-; 0x1a60e
-
-Tileset29GFX: ; 0x1a60e
-INCBIN "gfx/tilesets/29.lz"
-; 0x1af38
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset29Meta: ; 0x1af3e
-INCBIN "tilesets/29_metatiles.bin"
-; 0x1b33e
-
-Tileset29Coll: ; 0x1b33e
-INCBIN "tilesets/29_collision.bin"
-; 0x1b43e
-
-Tileset20GFX: ; 0x1b43e
-INCBIN "gfx/tilesets/20.lz"
-; 0x1b8f1
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset20Meta: ; 0x1b8fe
-INCBIN "tilesets/20_metatiles.bin"
-; 0x1bcfe
-
-Tileset20Coll: ; 0x1bcfe
-INCBIN "tilesets/20_collision.bin"
-; 0x1bdfe
+INCLUDE "tilesets/data_1.asm"
SECTION "bank7",ROMX,BANK[$7]
@@ -30437,99 +29060,7 @@ Function1c000: ; 1c000
INCBIN "baserom.gbc", $1c021, $1c30c - $1c021
-Tileset07GFX: ; 0x1c30c
-INCBIN "gfx/tilesets/07.lz"
-; 0x1c73b
-
- db $00
-
-Tileset07Meta: ; 0x1c73c
-INCBIN "tilesets/07_metatiles.bin"
-; 0x1cb3c
-
-Tileset07Coll: ; 0x1cb3c
-INCBIN "tilesets/07_collision.bin"
-; 0x1cc3c
-
-Tileset09GFX: ; 0x1cc3c
-INCBIN "gfx/tilesets/09.lz"
-; 0x1d047
-
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset09Meta: ; 0x1d04c
-INCBIN "tilesets/09_metatiles.bin"
-; 0x1d44c
-
-Tileset09Coll: ; 0x1d44c
-INCBIN "tilesets/09_collision.bin"
-; 0x1d54c
-
-Tileset06GFX: ; 0x1d54c
-INCBIN "gfx/tilesets/06.lz"
-; 0x1d924
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset06Meta: ; 0x1d92c
-INCBIN "tilesets/06_metatiles.bin"
-; 0x1dd2c
-
-Tileset06Coll: ; 0x1dd2c
-INCBIN "tilesets/06_collision.bin"
-; 0x1de2c
-
-Tileset13GFX: ; 0x1de2c
-INCBIN "gfx/tilesets/13.lz"
-; 0x1e58c
-
-Tileset13Meta: ; 0x1e58c
-INCBIN "tilesets/13_metatiles.bin"
-; 0x1e98c
-
-Tileset13Coll: ; 0x1e98c
-INCBIN "tilesets/13_collision.bin"
-; 0x1ea8c
-
-Tileset24GFX: ; 0x1ea8c
-INCBIN "gfx/tilesets/24.lz"
-; 0x1ee0e
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset24Meta: ; 0x1ee1c
-Tileset30Meta: ; 0x1ee1c
-INCBIN "tilesets/30_metatiles.bin"
-; 0x1f21c
-
-Tileset24Coll: ; 0x1f21c
-Tileset30Coll: ; 0x1f21c
-INCBIN "tilesets/30_collision.bin"
-; 0x1f31c
+INCLUDE "tilesets/data_2.asm"
; Songs i
@@ -30542,116 +29073,7 @@ SECTION "bank8",ROMX,BANK[$8]
INCBIN "baserom.gbc", $20000, $20181 - $20000
-Tileset23GFX: ; 0x20181
-INCBIN "gfx/tilesets/23.lz"
-; 0x206d2
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset23Meta: ; 0x206e1
-INCBIN "tilesets/23_metatiles.bin"
-; 0x20ae1
-
-Tileset23Coll: ; 0x20ae1
-INCBIN "tilesets/23_collision.bin"
-; 0x20be1
-
-Tileset10GFX: ; 0x20be1
-INCBIN "gfx/tilesets/10.lz"
-; 0x213e0
-
- db $00
-
-Tileset10Meta: ; 0x213e1
-INCBIN "tilesets/10_metatiles.bin"
-; 0x217e1
-
-Tileset10Coll: ; 0x217e1
-INCBIN "tilesets/10_collision.bin"
-; 0x218e1
-
-Tileset12GFX: ; 0x218e1
-INCBIN "gfx/tilesets/12.lz"
-; 0x22026
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset12Meta: ; 0x22031
-INCBIN "tilesets/12_metatiles.bin"
-; 0x22431
-
-Tileset12Coll: ; 0x22431
-INCBIN "tilesets/12_collision.bin"
-; 0x22531
-
-Tileset14GFX: ; 0x22531
-INCBIN "gfx/tilesets/14.lz"
-; 0x22ae2
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset14Meta: ; 0x22af1
-INCBIN "tilesets/14_metatiles.bin"
-; 0x22ef1
-
-Tileset14Coll: ; 0x22ef1
-INCBIN "tilesets/14_collision.bin"
-; 0x22ff1
-
-Tileset17GFX: ; 0x22ff1
-INCBIN "gfx/tilesets/17.lz"
-; 0x23391
-
-Tileset17Meta: ; 0x23391
-INCBIN "tilesets/17_metatiles.bin"
-; 0x23791
-
-Tileset17Coll: ; 0x23791
-INCBIN "tilesets/17_collision.bin"
-; 0x23891
-
-; todo
-Tileset31Meta: ; 0x23891
-INCBIN "tilesets/31_metatiles.bin"
-; 0x23b11
+INCLUDE "tilesets/data_3.asm"
EggMovePointers: ; 0x23b11
INCLUDE "stats/egg_move_pointers.asm"
@@ -31898,7 +30320,7 @@ Function247f0: ; 247f0
ld d, h
ld e, l
ld hl, $cf98
- jp Function31be
+ jp CallPointerAt
; 2486e
Function2486e: ; 2486e
@@ -31906,7 +30328,7 @@ Function2486e: ; 2486e
ld d, h
ld e, l
ld hl, $cf98
- call Function31be
+ call CallPointerAt
pop hl
ld a, [$cf93]
and a
@@ -31917,7 +30339,7 @@ Function2486e: ; 2486e
ld d, h
ld e, l
ld hl, $cf9b
- call Function31be
+ call CallPointerAt
.asm_2488a
ret
@@ -31970,7 +30392,7 @@ Function248b8: ; 248b8
dec a
call Function248d5
ld hl, $cf9e
- call Function31be
+ call CallPointerAt
ret
; 248d5
@@ -32236,7 +30658,7 @@ Function24c64: ; 24c64
push hl
ld [CurItem], a
ld hl, NumItems
- call PickUpItem
+ call CheckItem
pop hl
jr nc, .asm_24c89
ld a, [hl]
@@ -32484,7 +30906,7 @@ Function24dd4: ; 24dd4
ld a, $1
call GetPartyParamLocation
ld d, [hl]
- callba Functionb9e76
+ callba ItemIsMail
pop hl
ld a, $14
jr c, .asm_24e2c
@@ -33007,13 +31429,13 @@ Function26601: ; 0x26601
Rate: ; 0x26616
; calculate Seen/Owned
- ld hl, PokedexCaught
- ld b, EndPokedexCaught - PokedexCaught
- call CountSetBits
- ld [DefaultFlypoint], a
ld hl, PokedexSeen
ld b, EndPokedexSeen - PokedexSeen
call CountSetBits
+ ld [DefaultFlypoint], a
+ ld hl, PokedexCaught
+ ld b, EndPokedexCaught - PokedexCaught
+ call CountSetBits
ld [$d003], a
; print appropriate rating
@@ -33323,21 +31745,68 @@ Function26a3b: ; 26a3b
ret
; 26a44
-INCBIN "baserom.gbc", $26a44, $26c72 - $26a44
+Function26a44: ; 26a44
+ ld a, c
+ call Function269dd
+ ld de, $0005
+ add hl, de
+ ld a, [hl]
+ ld c, a
+ ret
+; 26a4f
+
+INCBIN "baserom.gbc", $26a4f, $26b8d - $26a4f
+
+DecorationNames: ; 26b8d
+ db "CANCEL@"
+ db "PUT IT AWAY@"
+ db "MAGNAPLANT@"
+ db "TROPICPLANT@"
+ db "JUMBOPLANT@"
+ db "TOWN MAP@"
+ db "NES@"
+ db "SUPER NES@"
+ db "NINTENDO 64@"
+ db "VIRTUAL BOY@"
+ db "GOLD TROPHY@"
+ db "SILVER TROPHY@"
+ db "SURF PIKACHU DOLL@"
+ db " BED@"
+ db " CARPET@"
+ db " POSTER@"
+ db " DOLL@"
+ db "BIG @"
+ db "FEATHERY@"
+ db "PIKACHU@"
+ db "PINK@"
+ db "POLKADOT@"
+ db "RED@"
+ db "BLUE@"
+ db "YELLOW@"
+ db "GREEN@"
+; 26c72
Function26c72: ; 26c72
ld a, [hli]
ld e, [hl]
ld bc, StringBuffer2
push bc
- ld hl, $6c7e
+ ld hl, Table26c7e
rst JumpTable
pop de
ret
; 26c7e
-INCBIN "baserom.gbc", $26c7e, $26c8c - $26c7e
+Table26c7e: ; 26c7e
+ dw Function26c8c
+ dw Function26c8d
+ dw Function26c90
+ dw Function26c97
+ dw Function26c9e
+ dw Function26ca6
+ dw Function26cae
+; 26c8c
Function26c8c: ; 26c8c
@@ -33346,59 +31815,66 @@ Function26c8c: ; 26c8c
Function26c8d: ; 26c8d
ld a, e
- jr .asm_26cca
+ jr Function26cca
+Function26c90: ; 26c90
call Function26c8d
ld a, $d
- jr .asm_26cca
+ jr Function26cca
+Function26c97: ; 26c97
call Function26c8d
ld a, $e
- jr .asm_26cca
+ jr Function26cca
+Function26c9e: ; 26c9e
ld a, e
- call $6cc0
+ call Function26cc0
ld a, $f
- jr .asm_26cca
+ jr Function26cca
+Function26ca6: ; 26ca6
ld a, e
- call $6cc0
+ call Function26cc0
ld a, $10
- jr .asm_26cca
+ jr Function26cca
+Function26cae: ; 26cae
push de
ld a, $11
- call $6cca
+ call Function26cca
pop de
ld a, e
- jr .asm_26cc0
+ jr Function26cc0
+Function26cb8: ; 26cb8
push de
- call $6cca
+ call Function26cca
pop de
ld a, e
- jr .asm_26cca
+ jr Function26cca
-.asm_26cc0
+Function26cc0: ; 26cc0
push bc
ld [$d265], a
call GetPokemonName
pop bc
- jr .asm_26cda
+ jr Function26cda
-.asm_26cca
- call $6ccf
- jr .asm_26cda
+Function26cca: ; 26cca
+ call Function26ccf
+ jr Function26cda
+Function26ccf: ; 26ccf
push bc
- ld hl, $6b8d
+ ld hl, DecorationNames
call GetNthString
ld d, h
ld e, l
pop bc
ret
-.asm_26cda
+Function26cda: ; 26cda
ld h, b
ld l, c
call CopyName2
@@ -33453,25 +31929,54 @@ INCBIN "baserom.gbc", $26f19, $26f59 - $26f19
Function26f59: ; 26f59
ld a, b
- ld hl, $6f5f
+ ld hl, Table26f5f
rst JumpTable
ret
; 26f5f
-INCBIN "baserom.gbc", $26f5f, $26fb9 - $26f5f
+Table26f5f: ; 26f5f
+ dw Function26f69
+ dw Function26fb9
+ dw Function26fbe
+ dw Function26fdd
+ dw Function26fc3
+; 26f69
+
+Function26f69: ; 26f69
+ ld a, [Poster]
+ ld hl, $6f84
+ ld de, $0003
+ call IsInArray
+ jr c, .asm_26f7d
+ ld de, $6fb8
+ ld b, $9
+ ret
+
+.asm_26f7d
+ ld b, $9
+ inc hl
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ret
+; 26f84
+
+INCBIN "baserom.gbc", $26f84, $26fb9 - $26f84
Function26fb9: ; 26fb9
ld a, [LeftOrnament]
- jr .asm_26fc8
+ jr Function26fc8
+Function26fbe: ; 26fbe
ld a, [RightOrnament]
- jr .asm_26fc8
+ jr Function26fc8
+Function26fc3: ; 26fc3
ld a, [Console]
- jr .asm_26fc8
+ jr Function26fc8
-.asm_26fc8
+Function26fc8: ; 26fc8
ld c, a
ld de, StringBuffer3
call Function26eea
@@ -33489,7 +31994,116 @@ Function26fdd: ; 26fdd
ret
; 26fe3
-INCBIN "baserom.gbc", $26fe3, $2709e - $26fe3
+INCBIN "baserom.gbc", $26fe3, $26feb - $26fe3
+
+Function26feb: ; 26feb
+ ld de, $0004
+ ld a, [Bed]
+ call Function27037
+ ld de, $0704
+ ld a, [Plant]
+ call Function27037
+ ld de, $0600
+ ld a, [Poster]
+ call Function27037
+ call Function27027
+ ld de, $0000
+ call Function27092
+ ld a, [Carpet]
+ and a
+ ret z
+ call Function27085
+ ld [hl], a
+ push af
+ ld de, $0002
+ call Function27092
+ pop af
+ inc a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ ret
+; 27027
+
+Function27027: ; 27027
+ ld b, $1
+ ld a, [Poster]
+ and a
+ jr nz, .asm_27031
+ ld b, $0
+
+.asm_27031
+ ld de, $02cc
+ jp EventFlagAction
+; 27037
+
+Function27037: ; 27037
+ push af
+ call Function27092
+ pop af
+ and a
+ ret z
+ call Function27085
+ ld [hl], a
+ ret
+; 27043
+
+Function27043: ; 27043
+ ld de, $0741
+ ld hl, VariableSprites
+ ld a, [Console]
+ call Function27074
+ ld de, $0742
+ ld hl, $d82f
+ ld a, [LeftOrnament]
+ call Function27074
+ ld de, $0743
+ ld hl, $d830
+ ld a, [RightOrnament]
+ call Function27074
+ ld de, $0744
+ ld hl, $d831
+ ld a, [BigDoll]
+ call Function27074
+ ret
+; 27074
+
+Function27074: ; 27074
+ and a
+ jr z, .asm_27080
+ call Function27085
+ ld [hl], a
+ ld b, $0
+ jp EventFlagAction
+
+.asm_27080
+ ld b, $1
+ jp EventFlagAction
+; 27085
+
+Function27085: ; 27085
+ ld c, a
+ push de
+ push hl
+ callba Function26a44
+ pop hl
+ pop de
+ ld a, c
+ ret
+; 27092
+
+Function27092: ; 27092
+ ld a, d
+ add $4
+ ld d, a
+ ld a, e
+ add $4
+ ld e, a
+ call Function2a66
+ ret
+; 2709e
Function2709e: ; 2709e
@@ -33514,99 +32128,7 @@ Function2709e: ; 2709e
ret
; 270c4
-
-GetTrainerDVs: ; 270c4
-; get dvs based on trainer class
-; output: bc
- push hl
-; dec trainer class so there's no filler entry for $00
- ld a, [OtherTrainerClass]
- dec a
- ld c, a
- ld b, $0
-; seek table
- ld hl, TrainerClassDVs
- add hl, bc
- add hl, bc
-; get dvs
- ld a, [hli]
- ld b, a
- ld c, [hl]
-; we're done
- pop hl
- ret
-; 270d6
-
-TrainerClassDVs ; 270d6
-; AtkDef, SpdSpc
- 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
+INCLUDE "trainers/dvs.asm"
Function2715c: ; 2715c
call WhiteBGMap
@@ -33695,12 +32217,2976 @@ INCLUDE "battle/moves/move_effects_pointers.asm"
MoveEffects: ; 2732e
INCLUDE "battle/moves/move_effects.asm"
-INCBIN "baserom.gbc", $27a28, $27a2d - $27a28
+Function27a28: ; 27a28
+ call Function2500e
+ ld b, a
+ ret
+; 27a2d
SECTION "bankA",ROMX,BANK[$A]
-INCBIN "baserom.gbc", $28000, $2a0e7 - $28000
+Function28000: ; 28000
+ call WhiteBGMap
+ ld c, $50
+ call DelayFrames
+ call Functionfdb
+ call ClearSprites
+ call Function1ad2
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld c, $50
+ call DelayFrames
+ call Functionfdb
+ call Function1ad2
+ call Functione51
+ call Functione58
+ callba Function16d69a
+ call Function3200
+ ld hl, $c543
+ ld b, $2
+ ld c, $c
+ ld d, h
+ ld e, l
+ callba Function4d35b
+ ld hl, $c56c
+ ld de, $4419
+ call PlaceString
+ call Function28eff
+ call Function3200
+ ld hl, $cf5d
+ xor a
+ ld [hli], a
+ ld [hl], $50
+ ld a, [InLinkBattle]
+ cp $1
+ jp nz, Function28177
+
+Function2805d: ; 2805d
+ call Function28426
+ call Function28499
+ call Function28434
+ xor a
+ ld [$cf56], a
+ call Function87d
+ ld a, [$ffcb]
+ cp $2
+ jr nz, .asm_28091
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+
+.asm_28091
+ ld de, $0000
+ call StartMusic
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rIF], a
+ ld a, $8
+ ld [rIE], a
+ ld hl, $d1f3
+ ld de, EnemyMonSpecies
+ ld bc, $0011
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, OverworldMap
+ ld de, $d26b
+ ld bc, $01a8
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, EnemyMoveAnimation
+ ld de, PlayerSDefLevel
+ ld bc, $00c8
+ call Function75f
+ xor a
+ ld [rIF], a
+ ld a, $1d
+ ld [rIE], a
+ call Function287ab
+ ld hl, $d26b
+ call Function287ca
+ push hl
+ ld bc, $000b
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ and a
+ jp z, Function28b22
+ cp $7
+ jp nc, Function28b22
+ ld de, OverworldMap
+ ld bc, $01a2
+ call Function2879e
+ ld de, PlayerSDefLevel
+ ld hl, $c813
+ ld c, $2
+.asm_280fe
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_280fe
+ cp $fd
+ jr z, .asm_280fe
+ cp $fe
+ jr z, .asm_280fe
+ cp $ff
+ jr z, .asm_2811d
+ push hl
+ push bc
+ ld b, $0
+ dec a
+ ld c, a
+ add hl, bc
+ ld a, $fe
+ ld [hl], a
+ pop bc
+ pop hl
+ jr .asm_280fe
+
+.asm_2811d
+ ld hl, $c90f
+ dec c
+ jr nz, .asm_280fe
+ ld hl, OverworldMap
+ ld de, $d26b
+ ld bc, $000b
+ call CopyBytes
+ ld de, OTPartyCount
+ ld a, [hli]
+ ld [de], a
+ inc de
+.asm_28135
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_2814e
+ ld [$d265], a
+ push hl
+ push de
+ callab Functionfb908
+ pop de
+ pop hl
+ ld a, [$d265]
+ ld [de], a
+ inc de
+ jr .asm_28135
+
+.asm_2814e
+ ld [de], a
+ ld hl, $c813
+ call Function2868a
+ ld a, $a8
+ ld [$d102], a
+ ld a, $d3
+ ld [$d103], a
+ ld de, $0000
+ call StartMusic
+ ld a, [$ffcb]
+ cp $2
+ ld c, $42
+ call z, DelayFrames
+ ld de, $002b
+ call StartMusic
+ jp Function287e3
+; 28177
+
+Function28177: ; 28177
+ call Function28426
+ call Function28595
+ call Function28434
+ call Function29dba
+ ld a, [ScriptVar]
+ and a
+ jp z, Function283b2
+ ld a, [$ffcb]
+ cp $2
+ jr nz, .asm_281ae
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+
+.asm_281ae
+ ld de, $0000
+ call StartMusic
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rIF], a
+ ld a, $8
+ ld [rIE], a
+ ld hl, $d1f3
+ ld de, EnemyMonSpecies
+ ld bc, $0011
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, OverworldMap
+ ld de, $d26b
+ ld bc, $01c2
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, EnemyMoveAnimation
+ ld de, PlayerSDefLevel
+ ld bc, $00c8
+ call Function75f
+ ld a, [InLinkBattle]
+ cp $2
+ jr nz, .asm_281fd
+ ld hl, $c9f4
+ ld de, $cb84
+ ld bc, $0186
+ call Function283f2
+
+.asm_281fd
+ xor a
+ ld [rIF], a
+ ld a, $1d
+ ld [rIE], a
+ ld de, $0000
+ call StartMusic
+ call Function287ab
+ ld hl, $d26b
+ call Function287ca
+ ld de, OverworldMap
+ ld bc, $01b9
+ call Function2879e
+ ld de, PlayerSDefLevel
+ ld hl, $c813
+ ld c, $2
+.asm_28224
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_28224
+ cp $fd
+ jr z, .asm_28224
+ cp $fe
+ jr z, .asm_28224
+ cp $ff
+ jr z, .asm_28243
+ push hl
+ push bc
+ ld b, $0
+ dec a
+ ld c, a
+ add hl, bc
+ ld a, $fe
+ ld [hl], a
+ pop bc
+ pop hl
+ jr .asm_28224
+
+.asm_28243
+ ld hl, $c90f
+ dec c
+ jr nz, .asm_28224
+ ld a, [InLinkBattle]
+ cp $2
+ jp nz, .asm_282fe
+ ld hl, $cb84
+.asm_28254
+ ld a, [hli]
+ cp $20
+ jr nz, .asm_28254
+.asm_28259
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_28259
+ cp $20
+ jr z, .asm_28259
+ dec hl
+ ld de, $cb84
+ ld bc, $0190
+ call CopyBytes
+ ld hl, $cb84
+ ld bc, $00c6
+.asm_28272
+ ld a, [hl]
+ cp $21
+ jr nz, .asm_28279
+ ld [hl], $fe
+
+.asm_28279
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_28272
+ ld de, $cc9e
+.asm_28282
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_28294
+ ld hl, $cc4a
+ dec a
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld [hl], $fe
+ jr .asm_28282
+
+.asm_28294
+ ld hl, $cb84
+ ld de, $c9f4
+ ld b, $6
+.asm_2829c
+ push bc
+ ld bc, $0021
+ call CopyBytes
+ ld a, $e
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ pop bc
+ dec b
+ jr nz, .asm_2829c
+ ld de, $c9f4
+ ld b, $6
+.asm_282b4
+ push bc
+ ld a, $21
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ ld bc, $000e
+ call CopyBytes
+ pop bc
+ dec b
+ jr nz, .asm_282b4
+ ld b, $6
+ ld de, $c9f4
+.asm_282cc
+ push bc
+ push de
+ callba Function1de5c8
+ ld a, c
+ or a
+ jr z, .asm_282ee
+ sub $3
+ jr nc, .asm_282e4
+ callba Function1df203
+ jr .asm_282ee
+
+.asm_282e4
+ cp $2
+ jr nc, .asm_282ee
+ callba Function1df220
+
+.asm_282ee
+ pop de
+ ld hl, $002f
+ add hl, de
+ ld d, h
+ ld e, l
+ pop bc
+ dec b
+ jr nz, .asm_282cc
+ ld de, $cb0e
+ xor a
+ ld [de], a
+
+.asm_282fe
+ ld hl, OverworldMap
+ ld de, $d26b
+ ld bc, $000b
+ call CopyBytes
+ ld de, OTPartyCount
+ ld bc, $0008
+ call CopyBytes
+ ld de, $d276
+ ld bc, $0002
+ call CopyBytes
+ ld de, OTPartyMon1Species
+ ld bc, $01a4
+ call CopyBytes
+ ld a, $a8
+ ld [$d102], a
+ ld a, $d3
+ ld [$d103], a
+ ld de, $0000
+ call StartMusic
+ ld a, [$ffcb]
+ cp $2
+ ld c, $42
+ call z, DelayFrames
+ ld a, [InLinkBattle]
+ cp $3
+ jr nz, .asm_283a9
+ ld a, $c
+ ld [OtherTrainerClass], a
+ call Functionfdb
+ callba Function4d354
+ ld hl, Options
+ ld a, [hl]
+ push af
+ and $20
+ or $3
+ ld [hl], a
+ ld hl, $d26b
+ ld de, $c656
+ ld bc, $000b
+ call CopyBytes
+ call Function222a
+ ld a, [$c2d7]
+ push af
+ ld a, $1
+ ld [$c2d7], a
+ ld a, [rIE]
+ push af
+ ld a, [rIF]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ set 1, a
+ ld [rIE], a
+ pop af
+ ld [rIF], a
+ ld a, $16
+ call Predef
+ ld a, [rIF]
+ ld h, a
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ ld a, h
+ ld [rIF], a
+ pop af
+ ld [$c2d7], a
+ pop af
+ ld [Options], a
+ callba Function1500c
+ jp Function28b22
+
+.asm_283a9
+ ld de, $002b
+ call StartMusic
+ jp Function287e3
+; 283b2
+
+Function283b2: ; 283b2
+ ld de, $43ed
+ ld b, $a
+.asm_283b7
+ call DelayFrame
+ call Function908
+ dec b
+ jr nz, .asm_283b7
+ xor a
+ ld [hld], a
+ ld [hl], a
+ ld [$ff9e], a
+ push de
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ push de
+ ld d, h
+ ld e, l
+ callba Function4d35b
+ pop de
+ pop hl
+ ld bc, $c5b9
+ call Function13e5
+ call Function4b6
+ call Functionfdb
+ ld b, $8
+ call GetSGBLayout
+ call Function3200
+ ret
+; 283ed
+
+INCBIN "baserom.gbc", $283ed, $283f2 - $283ed
+
+Function283f2: ; 283f2
+ ld a, $1
+ ld [$ffcc], a
+.asm_283f6
+ ld a, [hl]
+ ld [hSerialSend], a
+ call Function78a
+ push bc
+ ld b, a
+ inc hl
+ ld a, $30
+.asm_28401
+ dec a
+ jr nz, .asm_28401
+ ld a, [$ffcc]
+ and a
+ ld a, b
+ pop bc
+ jr z, .asm_28411
+ dec hl
+ xor a
+ ld [$ffcc], a
+ jr .asm_283f6
+
+.asm_28411
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_283f6
+ ret
+; 28419
+
+INCBIN "baserom.gbc", $28419, $28426 - $28419
+
+Function28426: ; 28426
+ ld hl, OverworldMap
+ ld bc, $0514
+.asm_2842c
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_2842c
+ ret
+; 28434
+
+Function28434: ; 28434
+ ld hl, $d1f3
+ ld a, $fd
+ ld b, $7
+.asm_2843b
+ ld [hli], a
+ dec b
+ jr nz, .asm_2843b
+ ld b, $a
+.asm_28441
+ call Random
+ cp $fd
+ jr nc, .asm_28441
+ ld [hli], a
+ dec b
+ jr nz, .asm_28441
+ ld hl, EnemyMoveAnimation
+ ld a, $fd
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld b, $c8
+ xor a
+.asm_28457
+ ld [hli], a
+ dec b
+ jr nz, .asm_28457
+ ld hl, $c818
+ ld de, PlayerMoveType
+ ld bc, $0000
+.asm_28464
+ inc c
+ ld a, c
+ cp $fd
+ jr z, .asm_2848c
+ ld a, b
+ dec a
+ jr nz, .asm_2847f
+ push bc
+ ld a, [InLinkBattle]
+ cp $1
+ ld b, $d
+ jr z, .asm_2847a
+ ld b, $27
+
+.asm_2847a
+ ld a, c
+ cp b
+ pop bc
+ jr z, .asm_28495
+
+.asm_2847f
+ inc hl
+ ld a, [hl]
+ cp $fe
+ jr nz, .asm_28464
+ ld a, c
+ ld [de], a
+ inc de
+ ld [hl], $ff
+ jr .asm_28464
+
+.asm_2848c
+ ld a, $ff
+ ld [de], a
+ inc de
+ ld bc, Start
+ jr .asm_28464
+
+.asm_28495
+ ld a, $ff
+ ld [de], a
+ ret
+; 28499
+
+Function28499: ; 28499
+ ld de, OverworldMap
+ ld a, $fd
+ ld b, $6
+.asm_284a0
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_284a0
+ ld hl, PlayerName
+ ld bc, $000b
+ call CopyBytes
+ push de
+ ld hl, PartyCount
+ ld a, [hli]
+ ld [de], a
+ inc de
+.asm_284b5
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_284ce
+ ld [$d265], a
+ push hl
+ push de
+ callab Functionfb8f1
+ pop de
+ pop hl
+ ld a, [$d265]
+ ld [de], a
+ inc de
+ jr .asm_284b5
+
+.asm_284ce
+ ld [de], a
+ pop de
+ ld hl, $0008
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, PartyMon1Species
+ ld c, $6
+.asm_284db
+ push bc
+ call Function284f6
+ ld bc, $0030
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_284db
+ ld hl, PartyMonOT
+ call .asm_284f0
+ ld hl, PartyMonNicknames
+.asm_284f0
+ ld bc, $0042
+ jp CopyBytes
+; 284f6
+
+Function284f6: ; 284f6
+ ld b, h
+ ld c, l
+ push de
+ push bc
+ ld a, [hl]
+ ld [$d265], a
+ callab Functionfb8f1
+ pop bc
+ pop de
+ ld a, [$d265]
+ ld [de], a
+ inc de
+ ld hl, $0022
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ ld hl, $0020
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, [bc]
+ cp $51
+ jr z, .asm_28528
+ cp $52
+ jr nz, .asm_28530
+
+.asm_28528
+ ld a, $17
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ jr .asm_28544
+
+.asm_28530
+ push bc
+ dec a
+ ld hl, $542b
+ ld bc, $0020
+ call AddNTimes
+ ld bc, $0002
+ ld a, $14
+ call FarCopyBytes
+ pop bc
+
+.asm_28544
+ push bc
+ ld hl, $0001
+ add hl, bc
+ ld bc, $001a
+ call CopyBytes
+ pop bc
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ ld [CurPartyLevel], a
+ inc de
+ push bc
+ ld hl, $0024
+ add hl, bc
+ ld bc, $0008
+ call CopyBytes
+ pop bc
+ push de
+ push bc
+ ld a, [bc]
+ dec a
+ push bc
+ ld b, $0
+ ld c, a
+ ld hl, $7656
+ add hl, bc
+ ld a, $3e
+ call GetFarByte
+ ld [BaseSpecialAttack], a
+ pop bc
+ ld hl, $000a
+ add hl, bc
+ ld c, $5
+ ld b, $1
+ ld a, $d
+ call Predef
+ pop bc
+ pop de
+ ld a, [$ffb5]
+ ld [de], a
+ inc de
+ ld a, [$ffb6]
+ ld [de], a
+ inc de
+ ld h, b
+ ld l, c
+ ret
+; 28595
+
+Function28595: ; 28595
+ ld de, OverworldMap
+ ld a, $fd
+ ld b, $6
+.asm_2859c
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_2859c
+ ld hl, PlayerName
+ ld bc, $000b
+ call CopyBytes
+ ld hl, PartyCount
+ ld bc, $0008
+ call CopyBytes
+ ld hl, PlayerID
+ ld bc, $0002
+ call CopyBytes
+ ld hl, PartyMon1Species
+ ld bc, $0120
+ call CopyBytes
+ ld hl, PartyMon1OT
+ ld bc, $0042
+ call CopyBytes
+ ld hl, PartyMon1Nickname
+ ld bc, $0042
+ call CopyBytes
+ ld a, [InLinkBattle]
+ cp $2
+ ret nz
+ ld de, $c9f4
+ ld a, $20
+ call Function28682
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $a600
+ ld b, $6
+.asm_285ef
+ push bc
+ ld bc, $0021
+ call CopyBytes
+ ld bc, $000e
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_285ef
+ ld hl, $a600
+ ld b, $6
+.asm_28603
+ push bc
+ ld bc, $0021
+ add hl, bc
+ ld bc, $000e
+ call CopyBytes
+ pop bc
+ dec b
+ jr nz, .asm_28603
+ ld b, $6
+ ld de, $a600
+ ld hl, $c9f9
+.asm_2861a
+ push bc
+ push hl
+ push de
+ push hl
+ callba Function1de5c8
+ pop de
+ ld a, c
+ or a
+ jr z, .asm_2863f
+ sub $3
+ jr nc, .asm_28635
+ callba Function1df1e6
+ jr .asm_2863f
+
+.asm_28635
+ cp $2
+ jr nc, .asm_2863f
+ callba Function1df220
+
+.asm_2863f
+ pop de
+ ld hl, $002f
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, $0021
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_2861a
+ call CloseSRAM
+ ld hl, $c9f9
+ ld bc, $00c6
+.asm_28658
+ ld a, [hl]
+ cp $fe
+ jr nz, .asm_2865f
+ ld [hl], $21
+
+.asm_2865f
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_28658
+ ld hl, $cabf
+ ld de, $cb13
+ ld b, $54
+ ld c, $0
+.asm_2866f
+ inc c
+ ld a, [hl]
+ cp $fe
+ jr nz, .asm_2867a
+ ld [hl], $ff
+ ld a, c
+ ld [de], a
+ inc de
+
+.asm_2867a
+ inc hl
+ dec b
+ jr nz, .asm_2866f
+ ld a, $ff
+ ld [de], a
+ ret
+; 28682
+
+Function28682: ; 28682
+ ld c, $5
+.asm_28684
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_28684
+ ret
+; 2868a
+
+Function2868a: ; 2868a
+ push hl
+ ld d, h
+ ld e, l
+ ld bc, $cbea
+ ld hl, $cbe8
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ ld hl, OTPartyMon1Species
+ ld c, $6
+.asm_2869b
+ push bc
+ call Function286ba
+ pop bc
+ dec c
+ jr nz, .asm_2869b
+ pop hl
+ ld bc, $0108
+ add hl, bc
+ ld de, OTPartyMon1OT
+ ld bc, $0042
+ call CopyBytes
+ ld de, OTPartyMon1Nickname
+ ld bc, $0042
+ jp CopyBytes
+; 286ba
+
+Function286ba: ; 286ba
+ ld b, h
+ ld c, l
+ ld a, [de]
+ inc de
+ push bc
+ push de
+ ld [$d265], a
+ callab Functionfb908
+ pop de
+ pop bc
+ ld a, [$d265]
+ ld [bc], a
+ ld [CurSpecies], a
+ ld hl, $0022
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hl], a
+ inc de
+ ld hl, $0020
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ld hl, $cbe8
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, l
+ ld [$cbe8], a
+ ld a, h
+ ld [$cbe9], a
+ push bc
+ ld hl, $0001
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ push bc
+ ld a, [hli]
+ ld b, a
+ call Function28771
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ ld bc, $0019
+ call CopyBytes
+ pop bc
+ ld d, h
+ ld e, l
+ ld hl, $001f
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ld [CurPartyLevel], a
+ push bc
+ ld hl, $0024
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ ld bc, $0008
+ call CopyBytes
+ pop bc
+ call GetBaseData
+ push de
+ push bc
+ ld d, h
+ ld e, l
+ ld hl, $000a
+ add hl, bc
+ ld c, $5
+ ld b, $1
+ ld a, $d
+ call Predef
+ pop bc
+ pop hl
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hli], a
+ push hl
+ push bc
+ ld hl, $000a
+ add hl, bc
+ ld c, $6
+ ld b, $1
+ ld a, $d
+ call Predef
+ pop bc
+ pop hl
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hli], a
+ push hl
+ ld hl, $001b
+ add hl, bc
+ ld a, $46
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ inc de
+ inc de
+ ret
+; 28771
+
+Function28771: ; 28771
+ ld a, b
+ and a
+ ret z
+ push hl
+ ld hl, $4785
+.asm_28778
+ ld a, [hli]
+ and a
+ jr z, .asm_28783
+ cp b
+ jr z, .asm_28782
+ inc hl
+ jr .asm_28778
+
+.asm_28782
+ ld b, [hl]
+
+.asm_28783
+ pop hl
+ ret
+; 28785
+
+INCBIN "baserom.gbc", $28785, $2879e - $28785
+
+Function2879e: ; 2879e
+.asm_2879e
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_2879e
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_2879e
+ ret
+; 287ab
+
+Function287ab: ; 287ab
+ ld a, [$ffcb]
+ cp $2
+ ret z
+ ld hl, EnemyMonSpecies
+ call Function287d8
+ ld de, LinkBattleRNs
+ ld c, $a
+.asm_287bb
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_287bb
+ cp $fd
+ jr z, .asm_287bb
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_287bb
+ ret
+; 287ca
+
+Function287ca: ; 287ca
+.asm_287ca
+ ld a, [hli]
+ and a
+ jr z, .asm_287ca
+ cp $fd
+ jr z, .asm_287ca
+ cp $fe
+ jr z, .asm_287ca
+ dec hl
+ ret
+; 287d8
+
+Function287d8: ; 287d8
+.asm_287d8
+ ld a, [hli]
+ cp $fd
+ jr z, .asm_287d8
+ cp $fe
+ jr z, .asm_287d8
+ dec hl
+ ret
+; 287e3
+
+Function287e3: ; 287e3
+ call Functionfdb
+ call Function28ef8
+ callba Function16d673
+ xor a
+ ld hl, $cf51
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld a, $1
+ ld [$cfa9], a
+ inc a
+ ld [$cf56], a
+ jp Function2888b
+; 28803
+
+Function28803: ; 28803
+ ld a, $1
+ ld [MonType], a
+ ld a, $c1
+ ld [$cfa8], a
+ ld a, [OTPartyCount]
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $9
+ ld [$cfa1], a
+ ld a, $6
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfaa], a
+ ld a, $10
+ ld [$cfa7], a
+ ld a, $20
+ ld [$cfa5], a
+ xor a
+ ld [$cfa6], a
+
+Function28835: ; 28835
+ callba Function16d70c
+ ld a, d
+ and a
+ jp z, Function2891c
+ bit 0, a
+ jr z, .asm_2885b
+ ld a, $1
+ ld [$d263], a
+ callab Function50db9
+ ld hl, OTPartyMon1Species
+ callba Function4d319
+ jp Function2891c
+
+.asm_2885b
+ bit 6, a
+ jr z, .asm_28883
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [OTPartyCount]
+ cp b
+ jp nz, Function2891c
+ xor a
+ ld [MonType], a
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ ld a, [PartyCount]
+ ld [$cfa9], a
+ jr Function2888b
+
+.asm_28883
+ bit 7, a
+ jp z, Function2891c
+ jp Function28ac9
+; 2888b
+
+Function2888b: ; 2888b
+ callba Function49856
+ xor a
+ ld [MonType], a
+ ld a, $c1
+ ld [$cfa8], a
+ ld a, [PartyCount]
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $1
+ ld [$cfa1], a
+ ld a, $6
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfaa], a
+ ld a, $10
+ ld [$cfa7], a
+ ld a, $20
+ ld [$cfa5], a
+ xor a
+ ld [$cfa6], a
+ call Function3200
+
+Function288c5: ; 288c5
+ callba Function16d70c
+ ld a, d
+ and a
+ jr nz, .asm_288d2
+ jp Function2891c
+
+.asm_288d2
+ bit 0, a
+ jr z, .asm_288d9
+ jp Function28926
+
+.asm_288d9
+ bit 7, a
+ jr z, .asm_288fe
+ ld a, [$cfa9]
+ dec a
+ jp nz, Function2891c
+ ld a, $1
+ ld [MonType], a
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ ld a, $1
+ ld [$cfa9], a
+ jp Function28803
+
+.asm_288fe
+ bit 6, a
+ jr z, Function2891c
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [PartyCount]
+ cp b
+ jr nz, Function2891c
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ jp Function28ade
+; 2891c
+
+Function2891c: ; 2891c
+ ld a, [MonType]
+ and a
+ jp z, Function288c5
+ jp Function28835
+; 28926
+
+Function28926: ; 28926
+ call Function309d
+ ld a, [$cfa9]
+ push af
+ ld hl, $c5cc
+ ld b, $1
+ ld c, $12
+ call Function28eef
+ ld hl, $c5e2
+ ld de, $4ab4
+ call PlaceString
+ callba Function4d354
+
+.asm_28946
+ ld a, $7f
+ ld [$c5eb], a
+ ld a, $13
+ ld [$cfa8], a
+ ld a, $1
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $10
+ ld [$cfa1], a
+ ld a, $1
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfa9], a
+ ld [$cfaa], a
+ ld a, $20
+ ld [$cfa7], a
+ xor a
+ ld [$cfa5], a
+ ld [$cfa6], a
+ call Function1bd3
+ bit 4, a
+ jr nz, .asm_2898d
+ bit 1, a
+ jr z, .asm_289cd
+.asm_28983
+ pop af
+ ld [$cfa9], a
+ call Function30b4
+ jp Function2888b
+
+.asm_2898d
+ ld a, $7f
+ ld [$c5e1], a
+ ld a, $23
+ ld [$cfa8], a
+ ld a, $1
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $10
+ ld [$cfa1], a
+ ld a, $b
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfa9], a
+ ld [$cfaa], a
+ ld a, $20
+ ld [$cfa7], a
+ xor a
+ ld [$cfa5], a
+ ld [$cfa6], a
+ call Function1bd3
+ bit 5, a
+ jp nz, .asm_28946
+ bit 1, a
+ jr nz, .asm_28983
+ jr .asm_289fe
+
+.asm_289cd
+ pop af
+ ld [$cfa9], a
+ ld a, $4
+ ld [$d263], a
+ callab Function50db9
+ callba Function4d319
+ call Function30b4
+ ld hl, $c4ba
+ ld bc, $0601
+ ld a, $7f
+ call Function28b77
+ ld hl, $c4c5
+ ld bc, $0601
+ ld a, $7f
+ call Function28b77
+ jp Function2888b
+
+.asm_289fe
+ call Function1bee
+ pop af
+ ld [$cfa9], a
+ dec a
+ ld [DefaultFlypoint], a
+ ld [$cf56], a
+ callba Function16d6ce
+ ld a, [$cf51]
+ cp $f
+ jp z, Function287e3
+ ld [$d003], a
+ call Function28b68
+ ld c, $64
+ call DelayFrames
+ callba Functionfb57e
+ jr c, .asm_28a58
+ callba Functionfb5dd
+ jp nc, Function28b87
+ xor a
+ ld [$cf57], a
+ ld [$cf52], a
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld hl, $4aaf
+ ld bc, $c5b9
+ call Function13e5
+ jr .asm_28a89
+
+.asm_28a58
+ xor a
+ ld [$cf57], a
+ ld [$cf52], a
+ ld a, [$d003]
+ ld hl, OTPartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld hl, $4ac4
+ ld bc, $c5b9
+ call Function13e5
+
+.asm_28a89
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ ld hl, $c5b9
+ ld de, $4ece
+ call PlaceString
+ ld a, $1
+ ld [$cf56], a
+ callba Function16d6ce
+ ld c, $64
+ call DelayFrames
+ jp Function287e3
+; 28aaf
+
+INCBIN "baserom.gbc", $28aaf, $28ac9 - $28aaf
+
+Function28ac9: ; 28ac9
+ ld a, [$cfa9]
+ cp $1
+ jp nz, Function2891c
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+
+Function28ade: ; 28ade
+.asm_28ade
+ ld a, $ed
+ ld [$c5fd], a
+.asm_28ae3
+ call Functiona57
+ ld a, [$ffa9]
+ and a
+ jr z, .asm_28ae3
+ bit 0, a
+ jr nz, .asm_28b0b
+ push af
+ ld a, $7f
+ ld [$c5fd], a
+ pop af
+ bit 6, a
+ jr z, .asm_28b03
+ ld a, [OTPartyCount]
+ ld [$cfa9], a
+ jp Function28803
+
+.asm_28b03
+ ld a, $1
+ ld [$cfa9], a
+ jp Function2888b
+
+.asm_28b0b
+ ld a, $ec
+ ld [$c5fd], a
+ ld a, $f
+ ld [$cf56], a
+ callba Function16d6ce
+ ld a, [$cf51]
+ cp $f
+ jr nz, .asm_28ade
+
+Function28b22: ; 28b22
+ call Function4b6
+ call Functionfdb
+ ld b, $8
+ call GetSGBLayout
+ call Function3200
+ xor a
+ ld [$cfbb], a
+ xor a
+ ld [rSB], a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+; 28b42
+
+INCBIN "baserom.gbc", $28b42, $28b68 - $28b42
+
+Function28b68: ; 28b68
+ ld a, [$cf51]
+ ld hl, $c55a
+ ld bc, $0014
+ call AddNTimes
+ ld [hl], $ec
+ ret
+; 28b77
+
+Function28b77: ; 28b77
+.asm_28b77
+ push bc
+ push hl
+.asm_28b79
+ ld [hli], a
+ dec c
+ jr nz, .asm_28b79
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_28b77
+ ret
+; 28b87
+
+Function28b87: ; 28b87
+ xor a
+ ld [$cf57], a
+ ld [$cf52], a
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld a, [DefaultFlypoint]
+ ld hl, PartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, $d004
+ ld bc, $000b
+ call CopyBytes
+ ld a, [$d003]
+ ld hl, OTPartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $4eb8
+ ld bc, $c5b9
+ call Function13e5
+ call Function1d6e
+ ld hl, $c536
+ ld b, $3
+ ld c, $7
+ call Function28eef
+ ld de, $4eab
+ ld hl, $c54c
+ call PlaceString
+ ld a, $8
+ ld [$cfa1], a
+ ld a, $b
+ ld [$cfa2], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $2
+ ld [$cfa3], a
+ xor a
+ ld [$cfa5], a
+ ld [$cfa6], a
+ ld a, $20
+ ld [$cfa7], a
+ ld a, $3
+ ld [$cfa8], a
+ ld a, $1
+ ld [$cfa9], a
+ ld [$cfaa], a
+ callba Function4d354
+ call Function1bd3
+ push af
+ call Function1d7d
+ call Function3200
+ pop af
+ bit 1, a
+ jr nz, .asm_28c33
+ ld a, [$cfa9]
+ dec a
+ jr z, .asm_28c54
+
+.asm_28c33
+ ld a, $1
+ ld [$cf56], a
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ ld hl, $c5b9
+ ld de, $4ece
+ call PlaceString
+ callba Function16d6ce
+ jp Function28ea3
+
+.asm_28c54
+ ld a, $2
+ ld [$cf56], a
+ callba Function16d6ce
+ ld a, [$cf51]
+ dec a
+ jr nz, .asm_28c7b
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ ld hl, $c5b9
+ ld de, $4ece
+ call PlaceString
+ jp Function28ea3
+
+.asm_28c7b
+ ld hl, $a600
+ ld a, [DefaultFlypoint]
+ ld bc, $002f
+ call AddNTimes
+ ld a, $0
+ call GetSRAMBank
+ ld d, h
+ ld e, l
+ ld bc, $002f
+ add hl, bc
+ ld a, [DefaultFlypoint]
+ ld c, a
+.asm_28c96
+ inc c
+ ld a, c
+ cp $6
+ jr z, .asm_28ca6
+ push bc
+ ld bc, $002f
+ call CopyBytes
+ pop bc
+ jr .asm_28c96
+
+.asm_28ca6
+ ld hl, $a600
+ ld a, [PartyCount]
+ dec a
+ ld bc, $002f
+ call AddNTimes
+ push hl
+ ld hl, $c9f4
+ ld a, [$d003]
+ ld bc, $002f
+ call AddNTimes
+ pop de
+ ld bc, $002f
+ call CopyBytes
+ call CloseSRAM
+ ld hl, PlayerName
+ ld de, $c6e7
+ ld bc, $000b
+ call CopyBytes
+ ld a, [DefaultFlypoint]
+ ld hl, PartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [PlayerSDefLevel], a
+ push af
+ ld a, [DefaultFlypoint]
+ ld hl, PartyMon1OT
+ call SkipNames
+ ld de, $c6f2
+ ld bc, $000b
+ call CopyBytes
+ ld hl, PartyMon1ID
+ ld a, [DefaultFlypoint]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [PlayerScreens], a
+ ld a, [hl]
+ ld [EnemyScreens], a
+ ld hl, PartyMon1DVs
+ ld a, [DefaultFlypoint]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [$c6fd], a
+ ld a, [hl]
+ ld [$c6fe], a
+ ld a, [DefaultFlypoint]
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba Function4f301
+ ld a, c
+ ld [$c701], a
+ ld hl, $d26b
+ ld de, $c719
+ ld bc, $000b
+ call CopyBytes
+ ld a, [$d003]
+ ld hl, OTPartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [PlayerLightScreenCount], a
+ ld a, [$d003]
+ ld hl, OTPartyMon1OT
+ call SkipNames
+ ld de, $c724
+ ld bc, $000b
+ call CopyBytes
+ ld hl, OTPartyMon1ID
+ ld a, [$d003]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [$c731], a
+ ld a, [hl]
+ ld [$c732], a
+ ld hl, OTPartyMon1AtkDefDV
+ ld a, [$d003]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [$c72f], a
+ ld a, [hl]
+ ld [$c730], a
+ ld a, [$d003]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba Function4f301
+ ld a, c
+ ld [$c733], a
+ ld a, [DefaultFlypoint]
+ ld [CurPartyMon], a
+ ld hl, PartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [DefaultFlypoint], a
+ xor a
+ ld [$d10b], a
+ callab Functione039
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ ld a, $1
+ ld [$d1e9], a
+ ld a, [$d003]
+ push af
+ ld hl, OTPartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [$d003], a
+ ld c, $64
+ call DelayFrames
+ call ClearTileMap
+ call Functione58
+ ld b, $8
+ call GetSGBLayout
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_28de4
+ ld a, $1e
+ call Predef
+ jr .asm_28de9
+
+.asm_28de4
+ ld a, $1d
+ call Predef
+
+.asm_28de9
+ pop af
+ ld c, a
+ ld [CurPartyMon], a
+ ld hl, OTPartySpecies
+ ld d, $0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld hl, OTPartyMon1Species
+ ld a, c
+ call GetPartyLocation
+ ld de, TempMonSpecies
+ ld bc, $0030
+ call CopyBytes
+ ld a, $7
+ call Predef
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ callab Function421d8
+ call Functionfdb
+ call Function28ef8
+ call Function28eff
+ callba Function4d354
+ ld b, $1
+ pop af
+ ld c, a
+ cp $97
+ jr z, .asm_28e49
+ ld a, [CurPartySpecies]
+ cp $97
+ jr z, .asm_28e49
+ ld b, $2
+ ld a, c
+ cp $fb
+ jr z, .asm_28e49
+ ld a, [CurPartySpecies]
+ cp $fb
+ jr z, .asm_28e49
+ ld b, $0
+
+.asm_28e49
+ ld a, b
+ ld [$cf56], a
+ push bc
+ call Function862
+ pop bc
+ ld a, [InLinkBattle]
+ cp $1
+ jr z, .asm_28e63
+ ld a, b
+ and a
+ jr z, .asm_28e63
+ ld a, [$cf52]
+ cp b
+ jr nz, .asm_28e49
+
+.asm_28e63
+ callba Function14a58
+ callba Function1060af
+ callba Function106187
+ ld c, $28
+ call DelayFrames
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ ld hl, $c5b9
+ ld de, $4ebd
+ call PlaceString
+ callba Function4d354
+ ld c, $32
+ call DelayFrames
+ ld a, [InLinkBattle]
+ cp $1
+ jp z, Function2805d
+ jp Function28177
+; 28ea3
+
+Function28ea3: ; 28ea3
+ ld c, $64
+ call DelayFrames
+ jp Function287e3
+; 28eab
+
+INCBIN "baserom.gbc", $28eab, $28eef - $28eab
+
+Function28eef: ; 28eef
+ ld d, h
+ ld e, l
+ callba Function16d6ca
+ ret
+; 28ef8
+
+Function28ef8: ; 28ef8
+ callba Function16d696
+ ret
+; 28eff
+
+Function28eff: ; 28eff
+ callba Function16d6a7
+ call Function32f9
+ ret
+; 28f09
+
+INCBIN "baserom.gbc", $28f09, $28f24 - $28f09
+
+Function28f24: ; 28f24
+ xor a
+ ld [$cf66], a
+ ld hl, $c6e7
+ ld de, $c719
+ call Function297ff
+ ld hl, PlayerSDefLevel
+ ld de, PlayerLightScreenCount
+ call Function29814
+ ld de, .data_28f3f
+ jr Function28fa1
+
+.data_28f3f
+ db $1b
+ db $1
+ db $1c
+ db $21
+ db $2d
+ db $27
+ db $23
+ db $3
+ db $25
+ db $28
+ db $25
+ db $1e
+ db $29
+ db $6
+ db $16
+ db $1f
+ db $19
+ db $17
+ db $22
+ db $1f
+ db $2a
+ db $e
+ db $3
+ db $24
+ db $5
+ db $25
+ db $2
+ db $27
+ db $25
+ db $1d
+ db $2c
+ db $2e
+ db $1e
+ db $18
+ db $1f
+ db $2b
+
+Function28f63: ; 28f63
+ xor a
+ ld [$cf66], a
+ ld hl, $c719
+ ld de, $c6e7
+ call Function297ff
+ ld hl, PlayerLightScreenCount
+ ld de, PlayerSDefLevel
+ call Function29814
+ ld de, .data_28f7e
+ jr Function28fa1
+
+.data_28f7e
+ db $1a
+ db $17
+ db $22
+ db $1f
+ db $2a
+ db $6
+ db $3
+ db $24
+ db $5
+ db $25
+ db $2
+ db $27
+ db $25
+ db $1d
+ db $2c
+ db $2f
+ db $1e
+ db $18
+ db $1f
+ db $1b
+ db $1
+ db $1c
+ db $22
+ db $27
+ db $23
+ db $3
+ db $25
+ db $28
+ db $25
+ db $1e
+ db $29
+ db $e
+ db $16
+ db $1f
+ db $2b
+
+Function28fa1: ; 28fa1
+ ld hl, BattleEnded
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function28fdb
+ ld a, [$cf66]
+ and a
+ jr nz, .asm_28fca
+ ld de, MUSIC_EVOLUTION
+ call StartMusic2
+.asm_28fca
+ call Function29082
+ jr nc, .asm_28fca
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [$ffde], a
+ ret
+; 28fdb
+
+Function28fdb: ; 28fdb
+ xor a
+ ld [$cf63], a
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call Functione58
+ callab Function8cf53
+ ld a, [hCGB]
+ and a
+ jr z, .asm_2900b
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, $2000
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+
+.asm_2900b
+ ld hl, VBGMap0
+ ld bc, $0800
+ ld a, $7f
+ call ByteFill
+ ld hl, $599b
+ ld de, $9310
+ call Decompress
+ ld hl, $591b
+ ld de, $8ed0
+ ld bc, $0010
+ ld a, $a
+ call FarCopyBytes
+ ld hl, $592b
+ ld de, $8ee0
+ ld bc, $0010
+ ld a, $a
+ call FarCopyBytes
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function4d7fd
+ call EnableLCD
+ call Function2982b
+ ld a, [PlayerSDefLevel]
+ ld hl, $c6fd
+ ld de, VTiles0
+ call Function29491
+ ld a, [PlayerLightScreenCount]
+ ld hl, $c72f
+ ld de, $8310
+ call Function29491
+ ld a, [PlayerSDefLevel]
+ ld de, PlayerAccLevel
+ call Function294a9
+ ld a, [PlayerLightScreenCount]
+ ld de, PlayerReflectCount
+ call Function294a9
+ call Function297ed
+ ret
+; 29082
+
+Function29082: ; 29082
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_2909b
+ call Function290a0
+ callab Function8cf69
+ ld hl, $cf65
+ inc [hl]
+ call DelayFrame
+ and a
+ ret
+
+.asm_2909b
+ call Functione51
+ scf
+ ret
+; 290a0
+
+Function290a0: ; 290a0
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $50af
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 290af
+
+INCBIN "baserom.gbc", $290af, $29491 - $290af
+
+Function29491: ; 29491
+ push de
+ push af
+ ld a, $2d
+ call Predef
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ ld a, $3c
+ call Predef
+ ret
+; 294a9
+
+Function294a9: ; 294a9
+ push de
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 294bb
+
+INCBIN "baserom.gbc", $294bb, $297ed - $294bb
+
+Function297ed: ; 297ed
+ ld a, [hSGB]
+ and a
+ ld a, $e4
+ jr z, .asm_297f6
+ ld a, $f0
+
+.asm_297f6
+ call Functioncf8
+ ld a, $e4
+ call DmgToCgbBGPals
+ ret
+; 297ff
+
+Function297ff: ; 297ff
+ push de
+ ld de, $c736
+ ld bc, $000b
+ call CopyBytes
+ pop hl
+ ld de, $c741
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 29814
+
+Function29814: ; 29814
+ ld a, [hl]
+ ld [$c74c], a
+ ld a, [de]
+ ld [$c74d], a
+ ret
+; 2981d
+
+INCBIN "baserom.gbc", $2981d, $2982b - $2981d
+
+Function2982b: ; 2982b
+ call DelayFrame
+ ld de, $5adb
+ ld hl, $8620
+ ld bc, $0a06
+ call Request2bpp
+ ld de, $5b3b
+ ld hl, $8680
+ ld bc, $0a0c
+ call Request2bpp
+ ld de, $593b
+ ld hl, $8740
+ ld bc, $0a04
+ call Request2bpp
+ xor a
+ ld hl, $c300
+ ld [hli], a
+ ld [hl], $62
+ ret
+; 2985a
+
+INCBIN "baserom.gbc", $2985a, $29bfb - $2985a
+
+Function29bfb: ; 29bfb
+ ld hl, PartySpecies
+ ld b, $6
+.asm_29c00
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_29c0c
+ cp $98
+ jr nc, .asm_29c42
+ dec b
+ jr nz, .asm_29c00
+
+.asm_29c0c
+ ld a, [PartyCount]
+ ld b, a
+ ld hl, PartyMon1Item
+.asm_29c13
+ push hl
+ push bc
+ ld d, [hl]
+ callba ItemIsMail
+ pop bc
+ pop hl
+ jr c, .asm_29c5e
+ ld de, $0030
+ add hl, de
+ dec b
+ jr nz, .asm_29c13
+ ld hl, PartyMon1Move1
+ ld a, [PartyCount]
+ ld b, a
+.asm_29c2e
+ ld c, $4
+.asm_29c30
+ ld a, [hli]
+ cp $a6
+ jr nc, .asm_29c4c
+ dec c
+ jr nz, .asm_29c30
+ ld de, $002c
+ add hl, de
+ dec b
+ jr nz, .asm_29c2e
+ xor a
+ jr .asm_29c63
+
+.asm_29c42
+ ld [$d265], a
+ call GetPokemonName
+ ld a, $1
+ jr .asm_29c63
+
+.asm_29c4c
+ push bc
+ ld [$d265], a
+ call GetMoveName
+ call CopyName1
+ pop bc
+ call Function29c67
+ ld a, $2
+ jr .asm_29c63
+
+.asm_29c5e
+ call Function29c67
+ ld a, $3
+
+.asm_29c63
+ ld [ScriptVar], a
+ ret
+; 29c67
+
+Function29c67: ; 29c67
+ ld a, [PartyCount]
+ sub b
+ ld c, a
+ inc c
+ ld b, $0
+ ld hl, PartyCount
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ret
+; 29c7b
+
+Function29c7b: ; 29c7b
+ ld c, $a
+ call DelayFrames
+ ld a, $4
+ call Function29f17
+ ld c, $28
+ call DelayFrames
+ xor a
+ ld [$ff9e], a
+ inc a
+ ld [InLinkBattle], a
+ ret
+; 29c92
+
+Function29c92: ; 29c92
+ ld c, $3
+ call DelayFrames
+ ld a, $ff
+ ld [$ffcb], a
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ ld a, $ff
+ ld [$ffcb], a
+ ld a, [rIF]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $f
+ ld [rIE], a
+ pop af
+ ld [rIF], a
+ ld hl, $cf5b
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld [$ff9e], a
+ ld [InLinkBattle], a
+ ret
+; 29ce8
+
+Function29ce8: ; 29ce8
+ ld a, $1
+ ld [$cf56], a
+ ld [$d265], a
+ ret
+; 29cf1
+
+Function29cf1: ; 29cf1
+ ld a, $2
+ ld [$cf56], a
+ ld [$d265], a
+ ret
+; 29cfa
+
+Function29cfa: ; 29cfa
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ xor a
+ ld [$cf56], a
+ ld [$d265], a
+ ret
+; 29d11
+
+Function29d11: ; 29d11
+ ld a, [$cf56]
+ and a
+ jr z, .asm_29d2f
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+
+.asm_29d2f
+ ld a, $2
+ ld [$cf5c], a
+ ld a, $ff
+ ld [$cf5b], a
+.asm_29d39
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_29d79
+ cp $1
+ jr z, .asm_29d79
+ ld a, $ff
+ ld [$ffcb], a
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ ld a, [$cf5b]
+ dec a
+ ld [$cf5b], a
+ jr nz, .asm_29d68
+ ld a, [$cf5c]
+ dec a
+ ld [$cf5c], a
+ jr z, .asm_29d8d
+
+.asm_29d68
+ ld a, $1
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ jr .asm_29d39
+
+.asm_29d79
+ call Function908
+ call DelayFrame
+ call Function908
+ ld c, $32
+ call DelayFrames
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_29d8d
+ xor a
+ ld [ScriptVar], a
+ ret
+; 29d92
+
+Function29d92: ; 29d92
+ ld a, $1
+ ld [$cf56], a
+ ld hl, $cf5b
+ ld a, $3
+ ld [hli], a
+ xor a
+ ld [hl], a
+ call WaitBGMap
+ ld a, $2
+ ld [$ff9e], a
+ call DelayFrame
+ call DelayFrame
+ call Function29e0c
+ xor a
+ ld [$ff9e], a
+ ld a, [ScriptVar]
+ and a
+ ret nz
+ jp Function29f04
+; 29dba
+
+Function29dba: ; 29dba
+ ld a, $5
+ ld [$cf56], a
+ ld hl, $cf5b
+ ld a, $3
+ ld [hli], a
+ xor a
+ ld [hl], a
+ call WaitBGMap
+ ld a, $2
+ ld [$ff9e], a
+ call DelayFrame
+ call DelayFrame
+ call Function29e0c
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_29e08
+ ld bc, rIE
+.asm_29de0
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_29de0
+ ld a, [$cf51]
+ cp $5
+ jr nz, .asm_29e03
+ ld a, $6
+ ld [$cf56], a
+ ld hl, $cf5b
+ ld a, $1
+ ld [hli], a
+ ld [hl], $32
+ call Function29e0c
+ ld a, [$cf51]
+ cp $6
+ jr z, .asm_29e08
+
+.asm_29e03
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_29e08
+ xor a
+ ld [$ff9e], a
+ ret
+; 29e0c
+
+Function29e0c: ; 29e0c
+ xor a
+ ld [$ffca], a
+ ld a, [$cf5b]
+ ld h, a
+ ld a, [$cf5c]
+ ld l, a
+ push hl
+ call Function29e3b
+ pop hl
+ jr nz, .asm_29e2f
+ call Function29e47
+ call Function29e53
+ call Function29e3b
+ jr nz, .asm_29e2f
+ call Function29e47
+ xor a
+ jr .asm_29e31
+
+.asm_29e2f
+ ld a, $1
+
+.asm_29e31
+ ld [ScriptVar], a
+ ld hl, $cf5b
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+; 29e3b
+
+Function29e3b: ; 29e3b
+ call Function87d
+ ld hl, $cf5b
+ ld a, [hli]
+ inc a
+ ret nz
+ ld a, [hl]
+ inc a
+ ret
+; 29e47
+
+Function29e47: ; 29e47
+ ld b, $a
+.asm_29e49
+ call DelayFrame
+ call Function908
+ dec b
+ jr nz, .asm_29e49
+ ret
+; 29e53
+
+Function29e53: ; 29e53
+ dec h
+ srl h
+ rr l
+ srl h
+ rr l
+ inc h
+ ld a, h
+ ld [$cf5b], a
+ ld a, l
+ ld [$cf5c], a
+ ret
+; 29e66
+
+Function29e66: ; 29e66
+ ld a, [$d265]
+ push af
+ callba Function14ab2
+ ld a, $1
+ jr nc, .asm_29e75
+ xor a
+
+.asm_29e75
+ ld [ScriptVar], a
+ ld c, $1e
+ call DelayFrames
+ pop af
+ ld [$d265], a
+ ret
+; 29e82
+
+Function29e82: ; 29e82
+ ld a, [$d265]
+ call Function29f17
+ push af
+ call Function908
+ call DelayFrame
+ call Function908
+ pop af
+ ld b, a
+ ld a, [$d265]
+ cp b
+ jr nz, .asm_29eaa
+ ld a, [$d265]
+ inc a
+ ld [InLinkBattle], a
+ xor a
+ ld [$ff9e], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_29eaa
+ xor a
+ ld [ScriptVar], a
+ ret
+; 29eaf
+
+Function29eaf: ; 29eaf
+ ld a, $1
+ ld [InLinkBattle], a
+ call Function2ed3
+ callab Function28000
+ call Function2ee4
+ xor a
+ ld [$ff9e], a
+ ret
+; 29ec4
+
+Function29ec4: ; 29ec4
+ ld a, $2
+ ld [InLinkBattle], a
+ call Function2ed3
+ callab Function28000
+ call Function2ee4
+ xor a
+ ld [$ff9e], a
+ ret
+; 29ed9
+
+Function29ed9: ; 29ed9
+ ld a, $3
+ ld [InLinkBattle], a
+ call Function2ed3
+ callab Function28000
+ call Function2ee4
+ xor a
+ ld [$ff9e], a
+ ret
+; 29eee
+
+Function29eee: ; 29eee
+ xor a
+ ld [InLinkBattle], a
+ ld c, $3
+ call DelayFrames
+ jp Function29f04
+; 29efa
+
+Function29efa: ; 29efa
+ ld c, $28
+ call DelayFrames
+ ld a, $e
+ jp Function29f17
+; 29f04
+
+Function29f04: ; 29f04
+ ld c, $3
+ call DelayFrames
+ ld a, $ff
+ ld [$ffcb], a
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld [rSC], a
+ ret
+; 29f17
+
+Function29f17: ; 29f17
+ add $d0
+ ld [$cf56], a
+ ld [$cf57], a
+ ld a, $2
+ ld [$ff9e], a
+ call DelayFrame
+ call DelayFrame
+.asm_29f29
+ call Function83b
+ ld a, [$cf51]
+ ld b, a
+ and $f0
+ cp $d0
+ jr z, .asm_29f40
+ ld a, [$cf52]
+ ld b, a
+ and $f0
+ cp $d0
+ jr nz, .asm_29f29
+
+.asm_29f40
+ xor a
+ ld [$ff9e], a
+ ld a, b
+ and $f
+ ret
+; 29f47
+
+Function29f47: ; 29f47
+ ld a, [$ffcb]
+ cp $1
+ ld a, $1
+ jr z, .asm_29f50
+ dec a
+
+.asm_29f50
+ ld [ScriptVar], a
+ ret
+; 29f54
+
+INCBIN "baserom.gbc", $29f54, $2a01f - $29f54
+
+Function2a01f: ; 2a01f
+ ld hl, TileMap
+ ld bc, $0168
+ xor a
+ call ByteFill
+ ld a, e
+ and a
+ jr nz, .asm_2a043
+ ld de, TileMap
+ ld hl, WildMons1
+ call Function2a052
+ ld hl, WildMons2
+ call Function2a06e
+ call Function2a0b7
+ call Function2a0cf
+ ret
+
+.asm_2a043
+ ld de, TileMap
+ ld hl, WildMons3
+ call Function2a052
+ ld hl, WildMons4
+ jp Function2a06e
+; 2a052
+
+Function2a052: ; 2a052
+.asm_2a052
+ ld a, [hl]
+ cp $ff
+ ret z
+ push hl
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ inc hl
+ inc hl
+ inc hl
+ ld a, $15
+ call Function2a088
+ jr nc, .asm_2a067
+ ld [de], a
+ inc de
+
+.asm_2a067
+ pop hl
+ ld bc, $002f
+ add hl, bc
+ jr .asm_2a052
+; 2a06e
+
+Function2a06e: ; 2a06e
+.asm_2a06e
+ ld a, [hl]
+ cp $ff
+ ret z
+ push hl
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ inc hl
+ ld a, $3
+ call Function2a088
+ jr nc, .asm_2a081
+ ld [de], a
+ inc de
+
+.asm_2a081
+ pop hl
+ ld bc, $0009
+ add hl, bc
+ jr .asm_2a06e
+; 2a088
+
+Function2a088: ; 2a088
+ inc hl
+.asm_2a089
+ push af
+ ld a, [$d265]
+ cp [hl]
+ jr z, .asm_2a098
+ inc hl
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_2a089
+ and a
+ ret
+
+.asm_2a098
+ pop af
+ jp Function2a09c
+; 2a09c
+
+Function2a09c: ; 2a09c
+ push de
+ call GetWorldMapLocation
+ ld c, a
+ ld hl, TileMap
+ ld de, $0168
+.asm_2a0a7
+ ld a, [hli]
+ cp c
+ jr z, .asm_2a0b4
+ dec de
+ ld a, e
+ or d
+ jr nz, .asm_2a0a7
+ ld a, c
+ pop de
+ scf
+ ret
+
+.asm_2a0b4
+ pop de
+ and a
+ ret
+; 2a0b7
+
+Function2a0b7: ; 2a0b7
+ ld a, [RoamMon1Species]
+ ld b, a
+ ld a, [$d265]
+ cp b
+ ret nz
+ ld a, [RoamMon1MapGroup]
+ ld b, a
+ ld a, [RoamMon1MapNumber]
+ ld c, a
+ call Function2a09c
+ ret nc
+ ld [de], a
+ inc de
+ ret
+; 2a0cf
+
+Function2a0cf: ; 2a0cf
+ ld a, [RoamMon2Species]
+ ld b, a
+ ld a, [$d265]
+ cp b
+ ret nz
+ ld a, [RoamMon2MapGroup]
+ ld b, a
+ ld a, [RoamMon2MapNumber]
+ ld c, a
+ call Function2a09c
+ ret nc
+ ld [de], a
+ inc de
+ ret
+; 2a0e7
Function2a0e7: ; 2a0e7
; Try to trigger a wild encounter.
@@ -33935,7 +35421,7 @@ Function2a200: ; 2a200
jr .asm_2a27a
.asm_2a235
- call Function2f17
+ call IsInJohto
and a
ret z
ld h, d
@@ -34303,7 +35789,189 @@ Function2a4a0: ; 2a4a0
ret
; 2a4ab
-INCBIN "baserom.gbc", $2a4ab, $2a5e9 - $2a4ab
+Function2a4ab: ; 2a4ab
+ callba Function90439
+ ld d, b
+ ld e, c
+ ld hl, WildMons1
+ ld bc, $002f
+ call Function2a288
+ jr c, .asm_2a4c6
+ ld hl, WildMons3
+ call Function2a288
+ jr nc, .asm_2a514
+
+.asm_2a4c6
+ push hl
+ ld bc, $000d
+ add hl, bc
+ ld a, [TimeOfDay]
+ ld bc, $000e
+ call AddNTimes
+.asm_2a4d4
+ call Random
+ and $3
+ jr z, .asm_2a4d4
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ inc hl
+ ld c, [hl]
+ pop hl
+ ld de, $0005
+ add hl, de
+ inc hl
+ ld b, $4
+.asm_2a4eb
+ ld a, [hli]
+ cp c
+ jr z, .asm_2a514
+ inc hl
+ dec b
+ jr nz, .asm_2a4eb
+ push bc
+ dec c
+ ld a, c
+ call CheckSeenMon
+ pop bc
+ jr nz, .asm_2a514
+ ld de, StringBuffer1
+ call CopyName1
+ ld a, c
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $651a
+ call PrintText
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_2a514
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 2a51a
+
+INCBIN "baserom.gbc", $2a51a, $2a51f - $2a51a
+
+Function2a51f: ; 2a51f
+ callba Function90439
+ ld d, b
+ ld e, c
+ ld hl, WildMons1
+ ld bc, $002f
+ call Function2a288
+ jr c, .asm_2a538
+ ld hl, WildMons3
+ call Function2a288
+
+.asm_2a538
+ ld bc, $0005
+ add hl, bc
+ ld a, [TimeOfDay]
+ inc a
+ ld bc, $000e
+.asm_2a543
+ dec a
+ jr z, .asm_2a549
+ add hl, bc
+ jr .asm_2a543
+
+.asm_2a549
+ call Random
+ and $3
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ inc hl
+ ld a, [hl]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, StringBuffer4
+ ld bc, $000b
+ jp CopyBytes
+; 2a567
+
+Function2a567: ; 2a567
+ callba Function90439
+ ld hl, $5999
+ ld a, d
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, $e
+ call GetFarHalfword
+.asm_2a57c
+ dec e
+ jr z, .asm_2a58b
+.asm_2a57f
+ ld a, $e
+ call GetFarByte
+ inc hl
+ cp $ff
+ jr nz, .asm_2a57f
+ jr .asm_2a57c
+
+.asm_2a58b
+ ld a, $e
+ call GetFarByte
+ inc hl
+ cp $50
+ jr nz, .asm_2a58b
+ ld a, $e
+ call GetFarByte
+ inc hl
+ ld bc, $0002
+ cp $0
+ jr z, .asm_2a5b3
+ ld bc, $0006
+ cp $1
+ jr z, .asm_2a5b3
+ ld bc, $0003
+ cp $2
+ jr z, .asm_2a5b3
+ ld bc, $0007
+
+.asm_2a5b3
+ ld e, $0
+ push hl
+.asm_2a5b6
+ inc e
+ add hl, bc
+ ld a, $e
+ call GetFarByte
+ cp $ff
+ jr nz, .asm_2a5b6
+ pop hl
+.asm_2a5c2
+ call Random
+ and $7
+ cp e
+ jr nc, .asm_2a5c2
+ inc a
+.asm_2a5cb
+ dec a
+ jr z, .asm_2a5d1
+ add hl, bc
+ jr .asm_2a5cb
+
+.asm_2a5d1
+ inc hl
+ ld a, $e
+ call GetFarByte
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, StringBuffer4
+ ld bc, $000b
+ jp CopyBytes
+; 2a5e9
WildMons1: ; 0x2a5e9
@@ -34658,7 +36326,7 @@ Function2c0c5: ; 2c0c5
ret nz
ld a, [TempEnemyMonSpecies]
dec a
- call CheckSeenMon
+ call CheckCaughtMon
ret z
ld hl, $c4b5
ld [hl], $5d
@@ -34849,7 +36517,131 @@ TrainerClassNames: ; 2c1ef
db "MYSTICALMAN@"
-INCBIN "baserom.gbc", $2c41a, $2c7fb - $2c41a
+INCBIN "baserom.gbc", $2c41a, $2c547 - $2c41a
+
+Function2c547: ; 2c547
+ ld hl, $45ef
+ call PrintText
+ call Function1dcf
+ jr c, .asm_2c5c3
+ ld hl, $45f4
+ call PrintText
+ callba Function50000
+ jr c, .asm_2c5c3
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_2c5bc
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Move2
+ ld bc, $0030
+ call AddNTimes
+ ld a, [hl]
+ and a
+ jr z, .asm_2c5ca
+ ld hl, $45ea
+ call PrintText
+ call Function1d6e
+ callba Function12f5b
+ push af
+ call Function2b74
+ pop af
+ jr c, .asm_2c5c3
+ ld a, [$cfa9]
+ push af
+ ld a, [CurSpecies]
+ ld [$d265], a
+ call GetMoveName
+ ld hl, $45d6
+ call PrintText
+ call Function1dcf
+ pop bc
+ jr c, .asm_2c5c3
+ call Function2c5f9
+ call WaitSFX
+ ld de, $0097
+ call StartSFX
+ call WaitSFX
+ ld hl, $45db
+ call PrintText
+ ret
+
+.asm_2c5bc
+ ld hl, $45e0
+ call PrintText
+ ret
+
+.asm_2c5c3
+ ld hl, $45e5
+ call PrintText
+ ret
+
+.asm_2c5ca
+ ld hl, $45d1
+ call PrintText
+ ret
+; 2c5d1
+
+INCBIN "baserom.gbc", $2c5d1, $2c5f9 - $2c5d1
+
+Function2c5f9: ; 2c5f9
+ ld a, b
+ push bc
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, PartyMon1Move1
+ add hl, bc
+ ld a, [CurPartyMon]
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ push bc
+ inc b
+.asm_2c60f
+ ld a, b
+ cp $5
+ jr z, .asm_2c61b
+ inc hl
+ ld a, [hld]
+ ld [hl], a
+ inc hl
+ inc b
+ jr .asm_2c60f
+
+.asm_2c61b
+ xor a
+ ld [hl], a
+ pop bc
+ ld a, b
+ push bc
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, PartyMon1PP
+ add hl, bc
+ ld a, [CurPartyMon]
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ inc b
+.asm_2c633
+ ld a, b
+ cp $5
+ jr z, .asm_2c63f
+ inc hl
+ ld a, [hld]
+ ld [hl], a
+ inc hl
+ inc b
+ jr .asm_2c633
+
+.asm_2c63f
+ xor a
+ ld [hl], a
+ ret
+; 2c642
+
+INCBIN "baserom.gbc", $2c642, $2c7fb - $2c642
Function2c7fb: ; 2c7fb
@@ -34908,7 +36700,7 @@ Function2c7fb: ; 2c7fb
INCBIN "baserom.gbc", $2c867, $2cb3e - $2c867
-PrintMoveDescription: ; 2cb3e
+PrintMoveDesc: ; 2cb3e
push hl
ld hl, MoveDescriptions
ld a, [CurSpecies]
@@ -35360,94 +37152,9 @@ FillBox: ; 2ef6e
SECTION "bankC",ROMX,BANK[$C]
-Tileset15GFX: ; 0x30000
-INCBIN "gfx/tilesets/15.lz"
-; 0x304d7
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset15Meta: ; 0x304e0
-INCBIN "tilesets/15_metatiles.bin"
-; 0x308e0
-
-Tileset15Coll: ; 0x308e0
-INCBIN "tilesets/15_collision.bin"
-; 0x309e0
-
-Tileset25GFX: ; 0x309e0
-INCBIN "gfx/tilesets/25.lz"
-; 0x30e78
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset25Meta: ; 0x30e80
-INCBIN "tilesets/25_metatiles.bin"
-; 0x31280
-
-Tileset25Coll: ; 0x31280
-INCBIN "tilesets/25_collision.bin"
-; 0x31380
-
-Tileset27GFX: ; 0x31380
-INCBIN "gfx/tilesets/27.lz"
-; 0x318dc
-
- db $00
- db $00
- db $00
- db $00
-
-Tileset27Meta: ; 0x318e0
-INCBIN "tilesets/27_metatiles.bin"
-; 0x31ce0
-
-Tileset27Coll: ; 0x31ce0
-INCBIN "tilesets/27_collision.bin"
-; 0x31de0
-
-Tileset28GFX: ; 0x31de0
-INCBIN "gfx/tilesets/28.lz"
-; 0x321a6
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset28Meta: ; 0x321b0
-INCBIN "tilesets/28_metatiles.bin"
-; 0x325b0
-
-Tileset28Coll: ; 0x325b0
-INCBIN "tilesets/28_collision.bin"
-; 0x326b0
-
-Tileset30GFX: ; 0x326b0
-INCBIN "gfx/tilesets/30.lz"
-; 0x329ed
-
-INCBIN "baserom.gbc", $329ed, $333f0 - $329ed
+INCLUDE "tilesets/data_4.asm"
+
+INCBIN "baserom.gbc", $329f0, $333f0 - $329f0
SECTION "bankD",ROMX,BANK[$D]
@@ -36155,11 +37862,14 @@ Function39939: ; 39939
ld a, [$cfc0]
bit 0, a
ld hl, $d26b
- jp nz, $5984
+ jp nz, Function39984
+
ld a, [OtherTrainerID]
ld b, a
ld a, [OtherTrainerClass]
ld c, a
+
+Function3994c: ; 3994c
ld a, c
cp $c
jr nz, .asm_3996d
@@ -36172,7 +37882,7 @@ Function39939: ; 39939
ld a, $0
call GetSRAMBank
ld hl, $abfe
- call $5984
+ call Function39984
jp CloseSRAM
.asm_3996d
@@ -36186,16 +37896,17 @@ Function39939: ; 39939
ld h, [hl]
ld l, a
pop bc
+
.asm_3997a
dec b
- jr z, .asm_39984
+ jr z, Function39984
.asm_3997d
ld a, [hli]
cp $ff
jr nz, .asm_3997d
jr .asm_3997a
-.asm_39984
+Function39984: ; 39984
ld de, StringBuffer1
push de
ld bc, $000b
@@ -36212,8 +37923,6 @@ Function39990: ; 39990
ret
; 39999
-
-
TrainerGroups: ; 0x39999
INCLUDE "trainers/trainer_pointers.asm"
@@ -40881,7 +42590,7 @@ Function3deb1: ; 3deb1
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, $d
+ ld a, BANK(BattleCommand70)
rst FarCall
pop bc
pop de
@@ -40904,13 +42613,13 @@ Function3deb1: ; 3deb1
; 3defc
.data_3defc
- dbw $1f, $61ac
- dbw $20, $61b0
- dbw $21, $61b4
- dbw $22, $61b8
- dbw $23, $61bc
- dbw $24, $61c0
- dbw $25, $61c4
+ dbw $1f, BattleCommand70
+ dbw $20, BattleCommand71
+ dbw $21, BattleCommand72
+ dbw $22, BattleCommand73
+ dbw $23, BattleCommand74
+ dbw $24, BattleCommand75
+ dbw $25, BattleCommand76
db $ff
; 3df12
@@ -41957,10 +43666,10 @@ Function3e643: ; 3e643
ld a, [$d0e3]
and a
jr z, .asm_3e6bf
- ld hl, BattleMonMove1
- call $66a5
- ld hl, BattleMonPPMove1
- call $66a5
+ ld hl, BattleMonMoves
+ call .asm_3e6a5
+ ld hl, BattleMonPP
+ call .asm_3e6a5
ld hl, PlayerDisableCount
ld a, [hl]
swap a
@@ -41994,26 +43703,27 @@ Function3e643: ; 3e643
ld a, [PlayerSubStatus5]
bit 3, a
jr nz, .asm_3e69e
- ld hl, PartyMon1Move1
+ ld hl, PartyMon1Moves
ld a, [CurBattleMon]
call GetPartyLocation
push hl
- call $66a5
+ call .asm_3e6a5
pop hl
ld bc, $0015
add hl, bc
- call $66a5
+ call .asm_3e6a5
.asm_3e69e
xor a
ld [$d0e3], a
jp Function3e4bc
+.asm_3e6a5
push hl
ld a, [$d0e3]
dec a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld d, h
ld e, l
@@ -42021,7 +43731,7 @@ Function3e643: ; 3e643
ld a, [$cfa9]
dec a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [de]
ld b, [hl]
@@ -42039,64 +43749,73 @@ Function3e643: ; 3e643
MoveInfoBox: ; 3e6c8
xor a
ld [hBGMapMode], a
- ld hl, $c540
- ld b, $3
- ld c, $9
+
+ hlcoord 0, 8
+ ld b, 3
+ ld c, 9
call TextBox
call MobileTextBorder
+
ld a, [PlayerDisableCount]
and a
jr z, .asm_3e6f4
+
swap a
and $f
ld b, a
ld a, [$cfa9]
cp b
jr nz, .asm_3e6f4
- ld hl, $c569
+
+ hlcoord 1, 10
ld de, .Disabled
call PlaceString
- jr .asm_3e74e
+ jr .done
.asm_3e6f4
ld hl, $cfa9
dec [hl]
call SetPlayerTurn
- ld hl, BattleMonMove1
+ ld hl, BattleMonMoves
ld a, [$cfa9]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hl]
ld [CurPlayerMove], a
+
ld a, [CurBattleMon]
ld [CurPartyMon], a
- ld a, $4
+ ld a, WILDMON
ld [MonType], a
callab Functionf8ec
+
ld hl, $cfa9
ld c, [hl]
inc [hl]
- ld b, $0
- ld hl, BattleMonPPMove1
+ ld b, 0
+ ld hl, BattleMonPP
add hl, bc
ld a, [hl]
and $3f
ld [StringBuffer1], a
call Function3e75f
- ld hl, $c555
+
+ hlcoord 1, 9
ld de, .Type
call PlaceString
- ld hl, $c583
- ld [hl], $f3
+
+ hlcoord 7, 11
+ ld [hl], "/"
+
callab UpdateMoveData
ld a, [PlayerMoveAnimation]
ld b, a
- ld hl, $c56a
- ld a, $2a
+ hlcoord 2, 10
+ ld a, PREDEF_PRINT_MOVE_TYPE
call Predef
-.asm_3e74e
+.done
ret
; 3e74f
@@ -42108,11 +43827,11 @@ MoveInfoBox: ; 3e6c8
Function3e75f: ; 3e75f
- ld hl, $c581
+ hlcoord 5, 11
ld a, [InLinkBattle]
cp $4
jr c, .asm_3e76c
- ld hl, $c581
+ hlcoord 5, 11
.asm_3e76c
push hl
@@ -42122,7 +43841,7 @@ Function3e75f: ; 3e75f
pop hl
inc hl
inc hl
- ld [hl], $f3
+ ld [hl], "/"
inc hl
ld de, $d265
ld bc, $0102
@@ -42131,12 +43850,13 @@ Function3e75f: ; 3e75f
; 3e786
Function3e786: ; 3e786
- ld a, $a5
+ ld a, STRUGGLE
ld [CurPlayerMove], a
ld a, [PlayerDisableCount]
and a
- ld hl, BattleMonPPMove1
+ ld hl, BattleMonPP
jr nz, .asm_3e79f
+
ld a, [hli]
or [hl]
inc hl
@@ -42170,7 +43890,7 @@ Function3e786: ; 3e786
.asm_3e7b4
ld hl, BattleText_0x80c72
call StdBattleTextBox
- ld c, $3c
+ ld c, 60
call DelayFrames
xor a
ret
@@ -42826,7 +44546,7 @@ LoadEnemyMon: ; 3e8eb
dec a
ld c, a
ld b, 1 ; set
- ld hl, PokedexCaught
+ ld hl, PokedexSeen
ld a, PREDEF_FLAG
call Predef
@@ -45942,7 +47662,97 @@ Function4010b: ; 4010b
jp [hl]
; 40115
-INCBIN "baserom.gbc", $40115, $40ad5 - $40115
+INCBIN "baserom.gbc", $40115, $40741 - $40115
+
+Function40741: ; 40741
+ push de
+ ld de, $0014
+.asm_40745
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_40745
+ pop de
+ ret
+; 4074c
+
+INCBIN "baserom.gbc", $4074c, $407fd - $4074c
+
+Function407fd: ; 407fd
+ call Function40aa6
+ ld hl, TileMap
+ ld bc, $0f12
+ call Function40ad5
+ ld hl, $c4b3
+ ld [hl], $34
+ ld hl, $c4c7
+ ld a, $7f
+ ld b, $f
+ call Function40741
+ ld [hl], $39
+ ld hl, $c569
+ ld bc, $0013
+ ld a, $61
+ call ByteFill
+ ld hl, $c5f5
+ ld bc, $0012
+ ld a, $7f
+ call ByteFill
+ ld hl, $c535
+ ld de, $4852
+ call Function40acd
+ ld hl, $c55d
+ ld de, $485c
+ call Function40acd
+ ld hl, $c5f4
+ ld de, $4867
+ call Function40acd
+ call Function40ab2
+ ret
+; 4084f
+
+INCBIN "baserom.gbc", $4084f, $40aa6 - $4084f
+
+Function40aa6: ; 40aa6
+ ld hl, TileMap
+ ld a, $32
+ ld bc, $0168
+ call ByteFill
+ ret
+; 40ab2
+
+Function40ab2: ; 40ab2
+ ld hl, $c4b5
+ xor a
+ ld b, $7
+.asm_40ab8
+ ld c, $7
+ push af
+ push hl
+.asm_40abc
+ ld [hli], a
+ add $7
+ dec c
+ jr nz, .asm_40abc
+ pop hl
+ ld de, $0014
+ add hl, de
+ pop af
+ inc a
+ dec b
+ jr nz, .asm_40ab8
+ ret
+; 40acd
+
+Function40acd: ; 40acd
+.asm_40acd
+ ld a, [de]
+ cp $ff
+ ret z
+ inc de
+ ld [hli], a
+ jr .asm_40acd
+; 40ad5
Function40ad5: ; 40ad5
@@ -45990,7 +47800,21 @@ Function40b06: ; 40b06
jr .asm_40b07
; 40b0f
-INCBIN "baserom.gbc", $40b0f, $40bb1 - $40b0f
+INCBIN "baserom.gbc", $40b0f, $40ba0 - $40b0f
+
+Function40ba0: ; 40ba0
+ ld hl, $c4c6
+ ld a, $62
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld hl, $c4da
+ ld a, $64
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ret
+; 40bb1
Function40bb1: ; 40bb1
@@ -46014,7 +47838,7 @@ Function40bd0: ; 40bd0
push hl
ld a, [$d265]
dec a
- call CheckCaughtMon
+ call CheckSeenMon
pop hl
pop de
ret
@@ -46033,7 +47857,44 @@ Function40bdc: ; 40bdc
jp [hl]
; 40bf0
-INCBIN "baserom.gbc", $40bf0, $40c65 - $40bf0
+INCBIN "baserom.gbc", $40bf0, $40c30 - $40bf0
+
+Function40c30: ; 40c30
+ xor a
+ ld [$c7d2], a
+ ld hl, PlayerSDefLevel
+ ld de, AlphabeticalPokedexOrder
+ ld c, $fb
+.asm_40c3c
+ push bc
+ ld a, [de]
+ ld [$d265], a
+ call Function40bd0
+ jr z, .asm_40c51
+ ld a, [$d265]
+ ld [hli], a
+ ld a, [$c7d2]
+ inc a
+ ld [$c7d2], a
+
+.asm_40c51
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_40c3c
+ ld a, [$c7d2]
+ ld c, $0
+.asm_40c5b
+ cp $fb
+ jr z, .asm_40c64
+ ld [hl], c
+ inc hl
+ inc a
+ jr .asm_40c5b
+
+.asm_40c64
+ ret
+; 40c65
AlphabeticalPokedexOrder: ; 0x40c65
INCLUDE "stats/pokedex/order_alpha.asm"
@@ -46059,7 +47920,17 @@ Function40e5b: ; 40e5b
ret
; 40e7d
-INCBIN "baserom.gbc", $40e7d, $41432 - $40e7d
+INCBIN "baserom.gbc", $40e7d, $41423 - $40e7d
+
+Function41423: ; 41423
+ ld b, a
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $e0
+ call Functioncf8
+ ret
+; 41432
Function41432: ; 41432
@@ -46103,7 +47974,42 @@ Function4143b: ; 4143b
ret
; 41478
-INCBIN "baserom.gbc", $41478, $414b7 - $41478
+INCBIN "baserom.gbc", $41478, $4147b - $41478
+
+Function4147b: ; 4147b
+ ld a, [$d265]
+ dec a
+ and $f8
+ srl a
+ srl a
+ srl a
+ ld e, $0
+ ld d, a
+ ld a, [$d265]
+ dec a
+ and $7
+ swap a
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld de, $5434
+ add hl, de
+ push hl
+ ld e, l
+ ld d, h
+ ld hl, $9620
+ ld bc, $3e02
+ call Request1bpp
+ pop hl
+ ld de, $0080
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $9640
+ ld bc, $3e02
+ call Request1bpp
+ ret
+; 414b7
Function414b7: ; 414b7
@@ -46185,7 +48091,43 @@ Function41a2c: ; 41a2c
ret
; 41a58
-INCBIN "baserom.gbc", $41a58, $41af7 - $41a58
+INCBIN "baserom.gbc", $41a58, $41a7f - $41a58
+
+Function41a7f: ; 41a7f
+ xor a
+ ld [hBGMapMode], a
+ callba Function1de247
+ call Function41af7
+ call DisableLCD
+ call Functione51
+ call Functione5f
+ call Function414b7
+ call Function4147b
+ ld a, [$d265]
+ ld [CurPartySpecies], a
+ call Function407fd
+ call Function40ba0
+ ld hl, $c5f4
+ ld [hl], $3b
+ inc hl
+ ld bc, $0013
+ ld a, $7f
+ call ByteFill
+ callba Function4424d
+ call EnableLCD
+ call WaitBGMap
+ call GetBaseData
+ ld de, VTiles2
+ ld a, $3c
+ call Predef
+ ld a, $4
+ call Function41423
+ ld a, [CurPartySpecies]
+ call Function37ce
+ ret
+; 41ad7
+
+INCBIN "baserom.gbc", $41ad7, $41af7 - $41ad7
Function41af7: ; 41af7
@@ -46207,6 +48149,8 @@ Function421d8: ; 421d8
ld c, a
ld b, $1
call Function42577
+
+Function421e6: ; 421e6
xor a
ld [$d268], a
dec a
@@ -46808,171 +48752,7 @@ INCLUDE "stats/evos_attacks.asm"
SECTION "bank11",ROMX,BANK[$11]
-FruitTreeScript: ; 44000
- 3callasm BANK(GetCurTreeFruit), GetCurTreeFruit
- loadfont
- copybytetovar CurFruit
- itemtotext $0, $0
- 2writetext FruitBearingTreeText
- keeptextopen
- 3callasm BANK(TryResetFruitTrees), TryResetFruitTrees
- 3callasm BANK(CheckFruitTree), CheckFruitTree
- iffalse .fruit
- 2writetext NothingHereText
- closetext
- 2jump .end
-
-.fruit
- 2writetext HeyItsFruitText
- copybytetovar CurFruit
- giveitem $ff, 1
- iffalse .packisfull
- keeptextopen
- 2writetext ObtainedFruitText
- 3callasm BANK(PickedFruitTree), PickedFruitTree
- specialsound
- itemnotify
- 2jump .end
-
-.packisfull
- keeptextopen
- 2writetext FruitPackIsFullText
- closetext
-
-.end
- loadmovesprites
- end
-; 44041
-
-GetCurTreeFruit: ; 44041
- ld a, [CurFruitTree]
- dec a
- call GetFruitTreeItem
- ld [CurFruit], a
- ret
-; 4404c
-
-TryResetFruitTrees: ; 4404c
- ld hl, $dc1e
- bit 4, [hl]
- ret nz
- jp ResetFruitTrees
-; 44055
-
-CheckFruitTree: ; 44055
- ld b, 2
- call GetFruitTreeFlag
- ld a, c
- ld [ScriptVar], a
- ret
-; 4405f
-
-PickedFruitTree: ; 4405f
- ld a, $41
- ld hl, $609b
- rst FarCall ; empty function
-
- ld b, 1
- jp GetFruitTreeFlag
-; 4406a
-
-ResetFruitTrees: ; 4406a
- xor a
- ld hl, FruitTreeFlags
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, $dc1e
- set 4, [hl]
- ret
-; 44078
-
-GetFruitTreeFlag: ; 44078
- push hl
- push de
- ld a, [CurFruitTree]
- dec a
- ld e, a
- ld d, 0
- ld hl, FruitTreeFlags
- call FlagAction
- pop de
- pop hl
- ret
-; 4408a
-
-GetFruitTreeItem: ; 4408a
- push hl
- push de
- ld e, a
- ld d, 0
- ld hl, FruitTreeItems
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-; 44097
-
-FruitTreeItems: ; 44097
- db BERRY
- db BERRY
- db BERRY
- db BERRY
- db PSNCUREBERRY
- db PSNCUREBERRY
- db BITTER_BERRY
- db BITTER_BERRY
- db PRZCUREBERRY
- db PRZCUREBERRY
- db MYSTERYBERRY
- db MYSTERYBERRY
- db ICE_BERRY
- db ICE_BERRY
- db MINT_BERRY
- db BURNT_BERRY
- db RED_APRICORN
- db BLU_APRICORN
- db BLK_APRICORN
- db WHT_APRICORN
- db PNK_APRICORN
- db GRN_APRICORN
- db YLW_APRICORN
- db BERRY
- db PSNCUREBERRY
- db BITTER_BERRY
- db PRZCUREBERRY
- db ICE_BERRY
- db MINT_BERRY
- db BURNT_BERRY
-; 440b5
-
-FruitBearingTreeText: ; 440b5
- text_jump _FruitBearingTreeText, BANK(_FruitBearingTreeText)
- db "@"
-; 440ba
-
-HeyItsFruitText: ; 440ba
- text_jump _HeyItsFruitText, BANK(_HeyItsFruitText)
- db "@"
-; 440bf
-
-ObtainedFruitText: ; 440bf
- text_jump _ObtainedFruitText, BANK(_ObtainedFruitText)
- db "@"
-; 440c4
-
-FruitPackIsFullText: ; 440c4
- text_jump _FruitPackIsFullText, BANK(_FruitPackIsFullText)
- db "@"
-; 440c9
-
-NothingHereText: ; 440c9
- text_jump _NothingHereText, BANK(_NothingHereText)
- db "@"
-; 440ce
-
+INCLUDE "engine/fruit_trees.asm"
AIChooseMove: ; 440ce
@@ -47244,7 +49024,165 @@ Function44207: ; 44207
jr .asm_44210
; 44228
-INCBIN "baserom.gbc", $44228, $44378 - $44228
+INCBIN "baserom.gbc", $44228, $4424d - $44228
+
+Function4424d: ; 4424d
+ call GetPokemonName
+ ld hl, $c4e5
+ call PlaceString
+ ld a, [$d265]
+ ld b, a
+ call Function44333
+ ld a, b
+ push af
+ ld hl, $c50d
+ call Function13d4
+ ld h, b
+ ld l, c
+ push de
+ ld hl, $c542
+ ld a, $5c
+ ld [hli], a
+ ld a, $5d
+ ld [hli], a
+ ld de, $d265
+ ld bc, $8103
+ call PrintNum
+ ld a, [$d265]
+ dec a
+ call CheckCaughtMon
+ pop hl
+ pop bc
+ ret z
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ inc hl
+ ld a, b
+ push af
+ push hl
+ call GetFarHalfword
+ ld d, l
+ ld e, h
+ pop hl
+ inc hl
+ inc hl
+ ld a, d
+ or e
+ jr z, .asm_442b0
+ push hl
+ push de
+ ld hl, [sp+$0]
+ ld d, h
+ ld e, l
+ ld hl, $c538
+ ld bc, $0224
+ call PrintNum
+ ld hl, $c53a
+ ld [hl], $5e
+ pop af
+ pop hl
+
+.asm_442b0
+ pop af
+ push af
+ inc hl
+ push hl
+ dec hl
+ call GetFarHalfword
+ ld d, l
+ ld e, h
+ ld a, e
+ or d
+ jr z, .asm_442cd
+ push de
+ ld hl, [sp+$0]
+ ld d, h
+ ld e, l
+ ld hl, $c55f
+ ld bc, ClearVRAM
+ call PrintNum
+ pop de
+
+.asm_442cd
+ ld bc, $0512
+ ld hl, $c57e
+ call ClearBox
+ ld hl, $c569
+ ld bc, $0013
+ ld a, $61
+ call ByteFill
+ ld hl, $c555
+ ld [hl], $55
+ inc hl
+ ld [hl], $55
+ ld hl, $c569
+ ld [hl], $56
+ inc hl
+ ld [hl], $57
+ pop de
+ inc de
+ pop af
+ ld hl, $c57e
+ push af
+ call Function13d4
+ pop bc
+ ld a, [$cf65]
+ or a
+ ret z
+ push bc
+ push de
+ ld bc, $0512
+ ld hl, $c57e
+ call ClearBox
+ ld hl, $c569
+ ld bc, $0013
+ ld a, $61
+ call ByteFill
+ ld hl, $c555
+ ld [hl], $55
+ inc hl
+ ld [hl], $55
+ ld hl, $c569
+ ld [hl], $56
+ inc hl
+ ld [hl], $58
+ pop de
+ inc de
+ pop af
+ ld hl, $c57e
+ call Function13d4
+ ret
+; 44331
+
+INCBIN "baserom.gbc", $44331, $44333 - $44331
+
+Function44333: ; 44333
+ push hl
+ ld hl, PokedexDataPointerTable
+ ld a, b
+ dec a
+ ld d, $0
+ ld e, a
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+ rlca
+ rlca
+ and $3
+ ld hl, $4351
+ ld d, $0
+ ld e, a
+ add hl, de
+ ld b, [hl]
+ pop de
+ pop hl
+ ret
+; 44351
+
+INCBIN "baserom.gbc", $44351, $44378 - $44351
PokedexDataPointerTable: ; 0x44378
@@ -47589,7 +49527,7 @@ Function4484a: ; 0x4484a
ld a, $1
ld [$d10c], a
ld hl, NumItems
- call Function2f66
+ call ReceiveItem
jr c, .asm_4489e
ld hl, .PackFullText
jp Function1d67
@@ -47742,7 +49680,46 @@ Function48000: ; 48000
ret
; 4802f
-INCBIN "baserom.gbc", $4802f, $48e81 - $4802f
+INCBIN "baserom.gbc", $4802f, $48c63 - $4802f
+
+Function48c63: ; 48c63
+ ld a, $50
+ 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, $50
+ ld b, $7
+.asm_48c76
+ ld [hli], a
+ dec b
+ jr nz, .asm_48c76
+ ld hl, $455b
+ ld a, c
+ call GetNthString
+.asm_48c81
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ cp $50
+ jr nz, .asm_48c81
+ and a
+ pop de
+ ret
+
+.asm_48c8c
+ scf
+ ret
+; 48c8e
+
+INCBIN "baserom.gbc", $48c8e, $48e81 - $48c8e
Function48e81: ; 48e81
@@ -47842,7 +49819,7 @@ Function492b9: ; 492b9
pop de
ld a, $b
ld hl, $48ce
- call Function31b0
+ call FarPrintText
jr .asm_49300
.asm_492e5
@@ -47870,7 +49847,26 @@ Function492b9: ; 492b9
ret
; 4930a
-INCBIN "baserom.gbc", $4930a, $49409 - $4930a
+INCBIN "baserom.gbc", $4930a, $49336 - $4930a
+
+Function49336: ; 49336
+.asm_49336
+ push bc
+ push hl
+.asm_49338
+ ld [hli], a
+ dec c
+ jr nz, .asm_49338
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_49336
+ ret
+; 49346
+
+INCBIN "baserom.gbc", $49346, $49409 - $49346
Function49409: ; 49409
@@ -47878,11 +49874,317 @@ Function49409: ; 49409
ld de, $d038
ld bc, $0008
ld a, $5
- call Function306b
+ call FarCopyWRAM
ret
; 49418
-INCBIN "baserom.gbc", $49418, $49962 - $49418
+INCBIN "baserom.gbc", $49418, $494ac - $49418
+
+Function494ac: ; 494ac
+ ld a, [$d199]
+ cp $15
+ jr z, .asm_494c9
+ cp $16
+ jr z, .asm_494ce
+ cp $1d
+ jr z, .asm_494d3
+ cp $5
+ jr z, .asm_494e1
+ cp $1b
+ jr z, .asm_494e6
+ cp $d
+ jr z, .asm_494eb
+ jr .asm_494f0
+
+.asm_494c9
+ call Function494f2
+ scf
+ ret
+
+.asm_494ce
+ call Function49541
+ scf
+ ret
+
+.asm_494d3
+ ld a, [$d19a]
+ and $7
+ cp $3
+ jr z, .asm_494f0
+ call Function49590
+ scf
+ ret
+
+.asm_494e1
+ call Function495df
+ scf
+ ret
+
+.asm_494e6
+ call Function4962e
+ scf
+ ret
+
+.asm_494eb
+ call Function496c5
+ scf
+ ret
+
+.asm_494f0
+ and a
+ ret
+; 494f2
+
+Function494f2: ; 494f2
+ ld a, $5
+ ld de, Unkn1Pals
+ ld hl, $5501
+ ld bc, $0040
+ call FarCopyWRAM
+ ret
+; 49501
+
+INCBIN "baserom.gbc", $49501, $49541 - $49501
+
+Function49541: ; 49541
+ ld a, $5
+ ld de, Unkn1Pals
+ ld hl, $5550
+ ld bc, $0040
+ call FarCopyWRAM
+ ret
+; 49550
+
+INCBIN "baserom.gbc", $49550, $49590 - $49550
+
+Function49590: ; 49590
+ ld a, $5
+ ld de, Unkn1Pals
+ ld hl, $559f
+ ld bc, $0040
+ call FarCopyWRAM
+ ret
+; 4959f
+
+INCBIN "baserom.gbc", $4959f, $495df - $4959f
+
+Function495df: ; 495df
+ ld a, $5
+ ld de, Unkn1Pals
+ ld hl, $55ee
+ ld bc, $0040
+ call FarCopyWRAM
+ ret
+; 495ee
+
+INCBIN "baserom.gbc", $495ee, $4962e - $495ee
+
+Function4962e: ; 4962e
+ ld a, $5
+ ld de, Unkn1Pals
+ ld hl, $563d
+ ld bc, $0040
+ call FarCopyWRAM
+ ret
+; 4963d
+
+INCBIN "baserom.gbc", $4963d, $496c5 - $4963d
+
+Function496c5: ; 496c5
+ ld a, $5
+ ld de, Unkn1Pals
+ ld hl, $567d
+ ld bc, $0040
+ call FarCopyWRAM
+ ld a, $5
+ ld de, $d020
+ ld hl, $56fe
+ ld bc, $0008
+ call FarCopyWRAM
+ ld a, $5
+ ld de, $d018
+ ld hl, $56ad
+ ld bc, $0008
+ call FarCopyWRAM
+ ld a, $5
+ ld de, $d030
+ ld hl, $56bd
+ ld bc, $0008
+ call FarCopyWRAM
+ ret
+; 496fe
+
+INCBIN "baserom.gbc", $496fe, $49797 - $496fe
+
+Function49797: ; 49797
+ ld hl, AttrMap
+ ld bc, $1002
+ ld a, $4
+ call Function49336
+ ld a, $3
+ ld [$cded], a
+ ld [$cef1], a
+ ld hl, $cddb
+ ld bc, $0812
+ ld a, $5
+ call Function49336
+ ld hl, $ce7b
+ ld bc, $0812
+ ld a, $6
+ call Function49336
+ ld hl, $cf19
+ ld bc, $0214
+ ld a, $4
+ call Function49336
+ ld a, $3
+ ld bc, $0601
+ ld hl, $cdf3
+ call Function49336
+ ld a, $3
+ ld bc, $0601
+ ld hl, $cdfe
+ call Function49336
+ ld a, $3
+ ld bc, $0601
+ ld hl, $ce93
+ call Function49336
+ ld a, $3
+ ld bc, $0601
+ ld hl, $ce9e
+ call Function49336
+ ld a, $2
+ ld hl, $cf1b
+ ld [hli], a
+ ld a, $7
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld a, $2
+ ld [hl], a
+ ld hl, $cf2f
+ ld a, $3
+ ld bc, $0006
+ call ByteFill
+ ret
+; 49811
+
+Function49811: ; 49811
+ ld hl, $5826
+ ld de, $d010
+ ld bc, $0030
+ ld a, $5
+ call FarCopyWRAM
+ callba Function96a4
+ ret
+; 49826
+
+INCBIN "baserom.gbc", $49826, $49856 - $49826
+
+Function49856: ; 49856
+ call Function49797
+ ret
+; 4985a
+
+INCBIN "baserom.gbc", $4985a, $4989a - $4985a
+
+Function4989a: ; 4989a
+ call DelayFrame
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ call Function49912
+ ld de, $0750
+ ld a, $2c
+ call Function3b2a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $84
+ ld hl, $0002
+ add hl, bc
+ ld [hl], $1f
+ ld hl, $000f
+ add hl, bc
+ ld a, $80
+ ld [hl], a
+ ld a, $a0
+ ld [$cf64], a
+ ld d, $0
+.asm_498ca
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_498ee
+ push bc
+ call Function49bae
+ inc d
+ push de
+ ld a, $90
+ ld [$c3b5], a
+ callba Function8cf7a
+ call Function49935
+ ld c, $2
+ call DelayFrames
+ pop de
+ pop bc
+ jr .asm_498ca
+
+.asm_498ee
+ pop af
+ ld [VramState], a
+ call Function498f9
+ call Function49bf3
+ ret
+; 498f9
+
+Function498f9: ; 498f9
+ ld hl, $c402
+ xor a
+ ld c, $4
+.asm_498ff
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ inc a
+ dec c
+ jr nz, .asm_498ff
+ ld hl, $c410
+ ld bc, $0090
+ xor a
+ call ByteFill
+ ret
+; 49912
+
+Function49912: ; 49912
+ callba Function8cf53
+ ld de, $5962
+ ld hl, VTiles1
+ ld bc, $1204
+ call Request2bpp
+ ld de, $59a2
+ ld hl, $8840
+ ld bc, $1210
+ call Request2bpp
+ xor a
+ ld [$cf63], a
+ ret
+; 49935
+
+Function49935: ; 49935
+ ld hl, $cf64
+ ld a, [hl]
+ and a
+ jr z, .asm_4993e
+ dec [hl]
+ ret
+
+.asm_4993e
+ ld hl, $cf63
+ set 7, [hl]
+ ret
+; 49944
+
+INCBIN "baserom.gbc", $49944, $49962 - $49944
SpecialCelebiGFX:
INCBIN "gfx/special/celebi/leaf.2bpp"
@@ -47891,7 +50193,95 @@ INCBIN "gfx/special/celebi/2.2bpp"
INCBIN "gfx/special/celebi/3.2bpp"
INCBIN "gfx/special/celebi/4.2bpp"
-INCBIN "baserom.gbc", $49aa2, $49cdc - $49aa2
+INCBIN "baserom.gbc", $49aa2, $49bae - $49aa2
+
+Function49bae: ; 49bae
+ push hl
+ push bc
+ push de
+ ld a, d
+ ld d, $3
+ ld e, d
+ cp $0
+ jr z, .asm_49bd0
+ cp d
+ jr z, .asm_49bd4
+ call Function49bed
+ cp d
+ jr z, .asm_49bd8
+ call Function49bed
+ cp d
+ jr z, .asm_49bdc
+ call Function49bed
+ cp d
+ jr c, .asm_49be9
+ jr .asm_49be5
+
+.asm_49bd0
+ ld a, $84
+ jr .asm_49bde
+
+.asm_49bd4
+ ld a, $88
+ jr .asm_49bde
+
+.asm_49bd8
+ ld a, $8c
+ jr .asm_49bde
+
+.asm_49bdc
+ ld a, $90
+
+.asm_49bde
+ ld hl, $0003
+ add hl, bc
+ ld [hl], a
+ jr .asm_49be9
+
+.asm_49be5
+ pop de
+ ld d, $ff
+ push de
+
+.asm_49be9
+ pop de
+ pop bc
+ pop hl
+ ret
+; 49bed
+
+Function49bed: ; 49bed
+ push af
+ ld a, d
+ add e
+ ld d, a
+ pop af
+ ret
+; 49bf3
+
+Function49bf3: ; 49bf3
+ ld a, $b
+ ld [BattleType], a
+ ret
+; 49bf9
+
+Function49bf9: ; 49bf9
+ ld a, [$d0ee]
+ bit 6, a
+ jr z, .asm_49c07
+ ld a, $1
+ ld [ScriptVar], a
+ jr .asm_49c0b
+
+.asm_49c07
+ xor a
+ ld [ScriptVar], a
+
+.asm_49c0b
+ ret
+; 49c0c
+
+INCBIN "baserom.gbc", $49c0c, $49cdc - $49c0c
MainMenu: ; 49cdc
xor a
@@ -48164,7 +50554,7 @@ Function49e3d: ; 49e3d
ld a, $24
ld hl, $4b3e
rst FarCall
- ld [hl], $9c
+ ld [hl], ":"
inc hl
ld de, hMinutes
ld bc, $8102
@@ -48501,12 +50891,12 @@ CheckOwnMonAnywhere: ; 0x4a721
; run CheckOwnMon on each Pokémon in the PC
ld a, $1
call GetSRAMBank
- ld a, [$ad10]
+ ld a, [BoxCount]
and a
jr z, .asm_4a766 ; 0x4a748 $1c
ld d, a
- ld hl, $ad26
- ld bc, $afa6
+ ld hl, BoxMon1Species
+ ld bc, BoxMon1OT
.asm_4a751
call CheckOwnMon
jr nc, .asm_4a75a ; 0x4a754 $4
@@ -48681,7 +51071,800 @@ UpdateOTPointer: ; 0x4a83a
ret
; 0x4a843
-INCBIN "baserom.gbc", $4a843, $4ae78 - $4a843
+INCBIN "baserom.gbc", $4a843, $4a927 - $4a843
+
+Function4a927: ; 4a927
+ ld a, [ScriptVar]
+ ld [CurItem], a
+ ld hl, PCItems
+ call CheckItem
+ jr c, .asm_4a948
+ ld a, [ScriptVar]
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ jr c, .asm_4a948
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_4a948
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 4a94e
+
+Function4a94e: ; 4a94e
+ call FadeToMenu
+ ld a, $ff
+ ld hl, DefaultFlypoint
+ ld bc, $0003
+ call ByteFill
+ xor a
+ ld [$d018], a
+ ld [$d019], a
+ ld b, $14
+ call GetSGBLayout
+ call Function32f9
+ 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, $d019
+ res 1, [hl]
+ jr .asm_4a974
+
+.asm_4a985
+ ld a, [$d018]
+ and a
+ jr nz, .asm_4a990
+ call Function4aba8
+ jr c, .asm_4a974
+
+.asm_4a990
+ call Function2b3c
+ ld hl, DefaultFlypoint
+ ld a, $ff
+ ld bc, $0003
+ call ByteFill
+ scf
+ jr .asm_4a9af
+
+.asm_4a9a1
+ call Function4a9c3
+ jr c, .asm_4a9b0
+ call Function4a9d7
+ jr c, .asm_4a974
+ call Function2b3c
+ and a
+
+.asm_4a9af
+ ret
+
+.asm_4a9b0
+ ld de, $0019
+ call StartSFX
+ ld hl, $69be
+ call PrintText
+ jr .asm_4a974
+; 4a9be
+
+INCBIN "baserom.gbc", $4a9be, $4a9c3 - $4a9be
+
+Function4a9c3: ; 4a9c3
+ ld hl, DefaultFlypoint
+ 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, [DefaultFlypoint]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, EndFlypoint
+ ld bc, $0006
+ call CopyBytes
+ ld a, [$d003]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, $d00c
+ ld bc, $0006
+ call CopyBytes
+ ld a, [$d004]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld h, d
+ ld l, e
+ ld de, $d012
+ ld bc, $0006
+ call CopyBytes
+ ld hl, $6a1d
+ call PrintText
+ call Function1dcf
+ ret
+; 4aa1d
+
+INCBIN "baserom.gbc", $4aa1d, $4aa22 - $4aa1d
+
+Function4aa22: ; 4aa22
+ call WhiteBGMap
+
+Function4aa25: ; 4aa25
+ callba Function5004f
+ callba Function50405
+ call Function4aad3
+ ld a, $9
+ ld [PartyMenuActionText], a
+ callba WritePartyMenuTilemap
+ xor a
+ ld [PartyMenuActionText], a
+ callba PrintPartyMenuText
+ call Function4aab6
+ call WaitBGMap
+ call Function32f9
+ 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, $d019
+ set 1, [hl]
+ pop af
+ ret
+; 4aa6e
+
+INCBIN "baserom.gbc", $4aa6e, $4aa7a - $4aa6e
+
+Function4aa7a: ; 4aa7a
+ ld hl, DefaultFlypoint
+ ld d, $3
+.asm_4aa7f
+ ld e, $6
+ ld a, [hli]
+ push de
+ push hl
+ cp $ff
+ jr z, .asm_4aab3
+ ld hl, $c314
+ inc a
+ ld d, a
+.asm_4aa8d
+ ld a, [hl]
+ and a
+ jr z, .asm_4aaa5
+ cp d
+ jr z, .asm_4aa9a
+ jr .asm_4aaa5
+
+ ld a, $3
+ jr .asm_4aa9c
+
+.asm_4aa9a
+ ld a, $2
+
+.asm_4aa9c
+ push hl
+ ld c, l
+ ld b, h
+ ld hl, $0002
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.asm_4aaa5
+ ld bc, $0010
+ add hl, bc
+ dec e
+ jr nz, .asm_4aa8d
+ pop hl
+ pop de
+ dec d
+ jr nz, .asm_4aa7f
+ jr .asm_4aab5
+
+.asm_4aab3
+ pop hl
+ pop de
+
+.asm_4aab5
+ ret
+; 4aab6
+
+Function4aab6: ; 4aab6
+ ld hl, DefaultFlypoint
+ ld d, $3
+.asm_4aabb
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_4aad2
+ push de
+ push hl
+ ld hl, $c4b4
+ ld bc, $0028
+ call AddNTimes
+ ld [hl], $ec
+ pop hl
+ pop de
+ dec d
+ jr nz, .asm_4aabb
+
+.asm_4aad2
+ ret
+; 4aad3
+
+Function4aad3: ; 4aad3
+ ld hl, PartyCount
+ ld a, [hli]
+ and a
+ ret z
+ ld c, a
+ xor a
+ ld [hConnectedMapWidth], a
+.asm_4aadd
+ push bc
+ push hl
+ ld e, $0
+ callba Function8e83f
+ ld a, [hConnectedMapWidth]
+ inc a
+ ld [hConnectedMapWidth], a
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_4aadd
+ call Function4aa7a
+ callba Function8cf69
+ ret
+; 4aafb
+
+Function4aafb: ; 4aafb
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_4ab04
+ and a
+ ret
+
+.asm_4ab04
+ scf
+ ret
+; 4ab06
+
+Function4ab06: ; 4ab06
+ ld a, [CurPartyMon]
+ ld bc, $0030
+ ld hl, PartyMon1CurHP
+ call AddNTimes
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ or b
+ jr nz, .asm_4ab19
+ scf
+
+.asm_4ab19
+ ret
+; 4ab1a
+
+Function4ab1a: ; 4ab1a
+.asm_4ab1a
+ ld a, $fb
+ ld [$cfa8], a
+ ld a, $26
+ ld [$cfa7], a
+ ld a, $2
+ ld [$cfa4], a
+ call Function4adf7
+ call Function1bc9
+ call Function4abc3
+ jr c, .asm_4ab1a
+ push af
+ call Function4ab99
+ call nc, Function1bee
+ pop af
+ bit 1, a
+ jr nz, .asm_4ab6d
+ ld a, [PartyCount]
+ inc a
+ ld b, a
+ ld a, [$cfa9]
+ ld [$d0d8], a
+ cp b
+ jr z, .asm_4ab7e
+ ld a, [$cfa9]
+ 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, $0008
+ call StartSFX
+ call WaitSFX
+ ld a, $1
+ and a
+ ret
+
+.asm_4ab6d
+ ld a, [$cfa9]
+ ld [$d0d8], a
+.asm_4ab73
+ ld de, $0008
+ call StartSFX
+ call WaitSFX
+ scf
+ ret
+
+.asm_4ab7e
+ ld a, $1
+ ld [$d018], a
+ ld a, [$cfaa]
+ cp $2
+ jr z, .asm_4ab73
+ ld de, $0008
+ call StartSFX
+ call WaitSFX
+ xor a
+ ld [$d018], a
+ and a
+ ret
+; 4ab99
+
+Function4ab99: ; 4ab99
+ bit 1, a
+ jr z, .asm_4aba6
+ ld a, [DefaultFlypoint]
+ cp $ff
+ jr z, .asm_4aba6
+ scf
+ ret
+
+.asm_4aba6
+ and a
+ ret
+; 4aba8
+
+Function4aba8: ; 4aba8
+ ld hl, $d004
+ 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 [$cfa9], a
+ ld a, $1
+ ld [$cfaa], a
+ jr .asm_4ac29
+
+.asm_4abd5
+ bit 6, a
+ jr z, .asm_4abeb
+ ld a, [$cfa9]
+ ld [$cfa9], a
+ and a
+ jr nz, .asm_4ac29
+ ld a, [PartyCount]
+ inc a
+ ld [$cfa9], a
+ jr .asm_4ac29
+
+.asm_4abeb
+ bit 7, a
+ jr z, .asm_4ac08
+ ld a, [$cfa9]
+ ld [$cfa9], a
+ ld a, [PartyCount]
+ inc a
+ inc a
+ ld b, a
+ ld a, [$cfa9]
+ cp b
+ jr nz, .asm_4ac29
+ ld a, $1
+ ld [$cfa9], a
+ jr .asm_4ac29
+
+.asm_4ac08
+ bit 4, a
+ jr nz, .asm_4ac10
+ bit 5, a
+ jr z, .asm_4ac56
+
+.asm_4ac10
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [PartyCount]
+ inc a
+ cp b
+ jr nz, .asm_4ac29
+ ld a, [$cfaa]
+ cp $1
+ jr z, .asm_4ac26
+ ld a, $1
+ jr .asm_4ac29
+
+.asm_4ac26
+ ld [$cfaa], a
+
+.asm_4ac29
+ ld hl, $c4b4
+ ld bc, $0d01
+ call ClearBox
+ call Function4aab6
+ ld a, [PartyCount]
+ ld hl, $c4ba
+.asm_4ac3b
+ ld bc, $0028
+ add hl, bc
+ dec a
+ jr nz, .asm_4ac3b
+ ld [hl], $7f
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [PartyCount]
+ inc a
+ cp b
+ jr z, .asm_4ac54
+ ld a, $1
+ ld [$cfaa], a
+
+.asm_4ac54
+ scf
+ ret
+
+.asm_4ac56
+ and a
+ ret
+; 4ac58
+
+Function4ac58: ; 4ac58
+ ld bc, $0212
+ ld hl, $c5cd
+ call ClearBox
+ callba Function8ea4a
+ ld hl, $6ca2
+ call LoadMenuDataHeader
+ ld hl, $d019
+ bit 1, [hl]
+ jr z, .asm_4ac89
+ ld hl, $c5af
+ ld b, $3
+ ld c, $7
+ call TextBox
+ ld hl, $c5c5
+ ld de, $6da7
+ call PlaceString
+ jr .asm_4ac96
+
+.asm_4ac89
+ ld hl, $c55f
+ ld b, $7
+ ld c, $7
+ call TextBox
+ call Function4ad68
+
+.asm_4ac96
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function4acaa
+ call Function1c07
+ and a
+ ret
+; 4aca2
+
+INCBIN "baserom.gbc", $4aca2, $4acaa - $4aca2
+
+Function4acaa: ; 4acaa
+.asm_4acaa
+ ld a, $a0
+ ld [$cf91], a
+ ld a, [$d019]
+ bit 1, a
+ jr z, .asm_4acc2
+ ld a, $2
+ ld [$cf92], a
+ ld a, $c
+ ld [$cf82], a
+ jr .asm_4accc
+
+.asm_4acc2
+ ld a, $4
+ ld [$cf92], a
+ ld a, $8
+ ld [$cf82], a
+
+.asm_4accc
+ ld a, $b
+ ld [$cf83], a
+ ld a, $1
+ ld [$cf88], a
+ call Function1c10
+ ld hl, $cfa5
+ set 6, [hl]
+ call Function1bc9
+ ld de, $0008
+ call StartSFX
+ 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, [$d019]
+ bit 1, a
+ jr nz, .asm_4ad0e
+ ld a, [$cfa9]
+ cp $1
+ jr z, Function4ad17
+ cp $2
+ jp z, Function4ad56
+ cp $3
+ jp z, Function4ad60
+ jr .asm_4acf3
+
+.asm_4ad0e
+ ld a, [$cfa9]
+ cp $1
+ jr z, Function4ad56
+ jr .asm_4acf3
+
+Function4ad17: ; 4ad17
+ call Function4adb2
+ jr z, .asm_4ad4a
+ ld hl, DefaultFlypoint
+ 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, $0019
+ call WaitPlaySFX
+ ld hl, UnknownText_0x4ad51
+ call PrintText
+ ret
+
+.asm_4ad39
+ ld a, [CurPartyMon]
+ ld [hl], a
+ call Function4a9c3
+ ret c
+ ld a, [$d019]
+ set 0, a
+ ld [$d019], 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, BANK(UnknownText_0x1c521c)
+ db "@"
+; 0x4ad56
+
+Function4ad56: ; 4ad56
+ callba OpenPartyStats
+ call Function3200
+ ret
+; 4ad60
+
+Function4ad60: ; 4ad60
+ callba Function12fba
+ ret
+; 4ad67
+
+INCBIN "baserom.gbc", $4ad67, $4ad68 - $4ad67
+
+Function4ad68: ; 4ad68
+ ld hl, $c59d
+ ld de, $6d88
+ call PlaceString
+ call Function4adb2
+ jr c, .asm_4ad7e
+ ld hl, $c575
+ ld de, $6da0
+ jr .asm_4ad84
+
+.asm_4ad7e
+ ld hl, $c575
+ ld de, $6d9a
+
+.asm_4ad84
+ call PlaceString
+ ret
+; 4ad88
+
+INCBIN "baserom.gbc", $4ad88, $4adb2 - $4ad88
+
+Function4adb2: ; 4adb2
+ ld hl, DefaultFlypoint
+ 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, [DefaultFlypoint]
+ cp $ff
+ jr nz, .asm_4ade5
+ ld a, [$d003]
+ cp $ff
+ jr nz, .asm_4addd
+ ld a, [$d004]
+ ld [DefaultFlypoint], a
+ ld a, $ff
+ ld [$d004], a
+ jr .asm_4ade5
+
+.asm_4addd
+ ld [DefaultFlypoint], a
+ ld a, $ff
+ ld [$d003], a
+
+.asm_4ade5
+ ld a, [$d003]
+ cp $ff
+ ret nz
+ ld b, a
+ ld a, [$d004]
+ ld [$d003], a
+ ld a, b
+ ld [$d004], a
+ ret
+; 4adf7
+
+Function4adf7: ; 4adf7
+ ld a, [$d019]
+ bit 0, a
+ ret z
+ ld a, [PartyCount]
+ inc a
+ ld [$cfa9], a
+ ld a, $1
+ ld [$cfaa], a
+ ld a, [$d019]
+ res 0, a
+ ld [$d019], a
+ ret
+; 4ae12
+
+Function4ae12: ; 4ae12
+ call Function4ae1f
+ ld a, $0
+ jr c, .asm_4ae1b
+ ld a, $1
+
+.asm_4ae1b
+ ld [ScriptVar], a
+ ret
+; 4ae1f
+
+Function4ae1f: ; 4ae1f
+ ld bc, $0e07
+ push bc
+ ld hl, MenuDataHeader_0x1e1d
+ call Function1d3c
+ pop bc
+ ld a, b
+ ld [$cf83], a
+ add $5
+ ld [$cf85], a
+ ld a, c
+ ld [$cf82], a
+ add $4
+ ld [$cf84], a
+ call Function1c00
+ call Function1d81
+ push af
+ ld c, $f
+ call DelayFrames
+ call Function4ae5e
+ pop af
+ jr c, .asm_4ae57
+ ld a, [$cfa9]
+ cp $2
+ jr z, .asm_4ae57
+ and a
+ ret
+
+.asm_4ae57
+ ld a, $2
+ ld [$cfa9], a
+ scf
+ ret
+; 4ae5e
+
+Function4ae5e: ; 4ae5e
+ ld a, [hOAMUpdate]
+ push af
+ call Function1c07
+ call Function1ad2
+ xor a
+ ld [hOAMUpdate], a
+ call DelayFrame
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function321c
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 4ae78
SECTION "bank13",ROMX,BANK[$13]
@@ -48698,7 +51881,7 @@ Function4c000: ; 4c000
push hl
srl a
jr c, .asm_4c021
- ld hl, TileSetPalettes
+ ld hl, TilesetPalettes
add [hl]
ld l, a
ld a, [$d1e7]
@@ -48709,7 +51892,7 @@ Function4c000: ; 4c000
jr .asm_4c031
.asm_4c021
- ld hl, TileSetPalettes
+ ld hl, TilesetPalettes
add [hl]
ld l, a
ld a, [$d1e7]
@@ -48741,7 +51924,7 @@ Function4c03f: ; 4c03f
push hl
srl a
jr c, .asm_4c05b
- ld hl, TileSetPalettes
+ ld hl, TilesetPalettes
add [hl]
ld l, a
ld a, [$d1e7]
@@ -48752,7 +51935,7 @@ Function4c03f: ; 4c03f
jr .asm_4c06b
.asm_4c05b
- ld hl, TileSetPalettes
+ ld hl, TilesetPalettes
add [hl]
ld l, a
ld a, [$d1e7]
@@ -48774,134 +51957,8 @@ Function4c03f: ; 4c03f
; 4c075
-Tileset03PalMap: ; 0x4c075
-INCBIN "tilesets/03_palette_map.bin"
-; 0x4c0e5
-
-Tileset00PalMap: ; 0x4c0e5
-Tileset01PalMap: ; 0x4c0e5
-INCBIN "tilesets/01_palette_map.bin"
-; 0x4c155
-
-Tileset02PalMap: ; 0x4c155
-INCBIN "tilesets/02_palette_map.bin"
-; 0x4c1c5
-
-Tileset05PalMap: ; 0x4c1c5
-INCBIN "tilesets/05_palette_map.bin"
-; 0x4c235
-
-Tileset06PalMap: ; 0x4c235
-INCBIN "tilesets/06_palette_map.bin"
-; 0x4c2a5
-
-Tileset07PalMap: ; 0x4c2a5
-INCBIN "tilesets/07_palette_map.bin"
-; 0x4c315
-
-Tileset08PalMap: ; 0x4c315
-INCBIN "tilesets/08_palette_map.bin"
-; 0x4c385
-
-Tileset09PalMap: ; 0x4c385
-INCBIN "tilesets/09_palette_map.bin"
-; 0x4c3f5
-
-Tileset10PalMap: ; 0x4c3f5
-INCBIN "tilesets/10_palette_map.bin"
-; 0x4c465
-
-Tileset11PalMap: ; 0x4c465
-INCBIN "tilesets/11_palette_map.bin"
-; 0x4c4d5
-
-Tileset12PalMap: ; 0x4c4d5
-INCBIN "tilesets/12_palette_map.bin"
-; 0x4c545
+INCLUDE "tilesets/palette_maps.asm"
-Tileset13PalMap: ; 0x4c545
-INCBIN "tilesets/13_palette_map.bin"
-; 0x4c5b5
-
-Tileset14PalMap: ; 0x4c5b5
-INCBIN "tilesets/14_palette_map.bin"
-; 0x4c625
-
-Tileset15PalMap: ; 0x4c625
-INCBIN "tilesets/15_palette_map.bin"
-; 0x4c695
-
-Tileset16PalMap: ; 0x4c695
-INCBIN "tilesets/16_palette_map.bin"
-; 0x4c705
-
-Tileset23PalMap: ; 0x4c705
-INCBIN "tilesets/23_palette_map.bin"
-; 0x4c775
-
-Tileset24PalMap: ; 0x4c775
-Tileset30PalMap: ; 0x4c775
-INCBIN "tilesets/30_palette_map.bin"
-; 0x4c7e5
-
-Tileset25PalMap: ; 0x4c7e5
-INCBIN "tilesets/25_palette_map.bin"
-; 0x4c855
-
-Tileset26PalMap: ; 0x4c855
-Tileset32PalMap: ; 0x4c855
-Tileset33PalMap: ; 0x4c855
-Tileset34PalMap: ; 0x4c855
-Tileset35PalMap: ; 0x4c855
-Tileset36PalMap: ; 0x4c855
-INCBIN "tilesets/36_palette_map.bin"
-; 0x4c8c5
-
-Tileset27PalMap: ; 0x4c8c5
-INCBIN "tilesets/27_palette_map.bin"
-; 0x4c935
-
-Tileset17PalMap: ; 0x4c935
-INCBIN "tilesets/17_palette_map.bin"
-; 0x4c9a5
-
-Tileset28PalMap: ; 0x4c9a5
-INCBIN "tilesets/28_palette_map.bin"
-; 0x4ca15
-
-Tileset18PalMap: ; 0x4ca15
-INCBIN "tilesets/18_palette_map.bin"
-; 0x4ca85
-
-Tileset19PalMap: ; 0x4ca85
-INCBIN "tilesets/19_palette_map.bin"
-; 0x4caf5
-
-Tileset20PalMap: ; 0x4caf5
-INCBIN "tilesets/20_palette_map.bin"
-; 0x4cb65
-
-INCBIN "baserom.gbc", $4cb65, $4cbd5-$4cb65
-
-Tileset29PalMap: ; 0x4cbd5
-INCBIN "tilesets/29_palette_map.bin"
-; 0x4cc45
-
-Tileset31PalMap: ; 0x4cc45
-INCBIN "tilesets/31_palette_map.bin"
-; 0x4ccb5
-
-Tileset21PalMap: ; 0x4ccb5
-INCBIN "tilesets/21_palette_map.bin"
-; 0x4cd25
-
-Tileset22PalMap: ; 0x4cd25
-INCBIN "tilesets/22_palette_map.bin"
-; 0x4cd95
-
-Tileset04PalMap: ; 0x4cd95
-INCBIN "tilesets/04_palette_map.bin"
-; 0x4ce05
INCBIN "baserom.gbc", $4ce05, $4ce1f - $4ce05
@@ -49192,7 +52249,34 @@ Function4d1cb: ; 4d1cb
ret
; 4d249
-INCBIN "baserom.gbc", $4d249, $4d35b - $4d249
+INCBIN "baserom.gbc", $4d249, $4d319 - $4d249
+
+Function4d319: ; 4d319
+ ld a, [$cfa9]
+ dec a
+ ld [CurPartyMon], a
+ call LowVolume
+ ld a, $25
+ call Predef
+ ld a, [CurPartyMon]
+ inc a
+ ld [$cfa9], a
+ call Functionfdb
+ call WhiteBGMap
+ call MaxVolume
+ callba Function28ef8
+ callba Function4d354
+ callba Function16d673
+ callba Function28eff
+ call Function3200
+ ret
+; 4d354
+
+Function4d354: ; 4d354
+ call WaitBGMap
+ call Function3200
+ ret
+; 4d35b
Function4d35b: ; 4d35b
@@ -49538,306 +52622,100 @@ Function4d54c: ; 4d54c
INCBIN "baserom.gbc", $4d580, $4d596 - $4d580
Tilesets:
+INCLUDE "tilesets/tileset_headers.asm"
-Tileset00: ; 0x4d596
- dbw BANK(Tileset00GFX), Tileset00GFX
- dbw BANK(Tileset00Meta), Tileset00Meta
- dbw BANK(Tileset00Coll), Tileset00Coll
- dw Tileset00Anim
- dw $0000
- dw Tileset00PalMap
-
-Tileset01: ; 0x4d5a5
- dbw BANK(Tileset01GFX), Tileset01GFX
- dbw BANK(Tileset01Meta), Tileset01Meta
- dbw BANK(Tileset01Coll), Tileset01Coll
- dw Tileset01Anim
- dw $0000
- dw Tileset01PalMap
-
-Tileset02: ; 0x4d5b4
- dbw BANK(Tileset02GFX), Tileset02GFX
- dbw BANK(Tileset02Meta), Tileset02Meta
- dbw BANK(Tileset02Coll), Tileset02Coll
- dw Tileset02Anim
- dw $0000
- dw Tileset02PalMap
-
-Tileset03: ; 0x4d5c3
- dbw BANK(Tileset03GFX), Tileset03GFX
- dbw BANK(Tileset03Meta), Tileset03Meta
- dbw BANK(Tileset03Coll), Tileset03Coll
- dw Tileset03Anim
- dw $0000
- dw Tileset03PalMap
-
-Tileset04: ; 0x4d5d2
- dbw BANK(Tileset04GFX), Tileset04GFX
- dbw BANK(Tileset04Meta), Tileset04Meta
- dbw BANK(Tileset04Coll), Tileset04Coll
- dw Tileset04Anim
- dw $0000
- dw Tileset04PalMap
-
-Tileset05: ; 0x4d5e1
- dbw BANK(Tileset05GFX), Tileset05GFX
- dbw BANK(Tileset05Meta), Tileset05Meta
- dbw BANK(Tileset05Coll), Tileset05Coll
- dw Tileset05Anim
- dw $0000
- dw Tileset05PalMap
-
-Tileset06: ; 0x4d5f0
- dbw BANK(Tileset06GFX), Tileset06GFX
- dbw BANK(Tileset06Meta), Tileset06Meta
- dbw BANK(Tileset06Coll), Tileset06Coll
- dw Tileset06Anim
- dw $0000
- dw Tileset06PalMap
-
-Tileset07: ; 0x4d5ff
- dbw BANK(Tileset07GFX), Tileset07GFX
- dbw BANK(Tileset07Meta), Tileset07Meta
- dbw BANK(Tileset07Coll), Tileset07Coll
- dw Tileset07Anim
- dw $0000
- dw Tileset07PalMap
-
-Tileset08: ; 0x4d60e
- dbw BANK(Tileset08GFX), Tileset08GFX
- dbw BANK(Tileset08Meta), Tileset08Meta
- dbw BANK(Tileset08Coll), Tileset08Coll
- dw Tileset08Anim
- dw $0000
- dw Tileset08PalMap
-Tileset09: ; 0x4d61d
- dbw BANK(Tileset09GFX), Tileset09GFX
- dbw BANK(Tileset09Meta), Tileset09Meta
- dbw BANK(Tileset09Coll), Tileset09Coll
- dw Tileset09Anim
- dw $0000
- dw Tileset09PalMap
+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.
-Tileset10: ; 0x4d62c
- dbw BANK(Tileset10GFX), Tileset10GFX
- dbw BANK(Tileset10Meta), Tileset10Meta
- dbw BANK(Tileset10Coll), Tileset10Coll
- dw Tileset10Anim
- dw $0000
- dw Tileset10PalMap
-
-Tileset11: ; 0x4d63b
- dbw BANK(Tileset11GFX), Tileset11GFX
- dbw BANK(Tileset11Meta), Tileset11Meta
- dbw BANK(Tileset11Coll), Tileset11Coll
- dw Tileset11Anim
- dw $0000
- dw Tileset11PalMap
+; For longer flag arrays, see FlagAction.
-Tileset12: ; 0x4d64a
- dbw BANK(Tileset12GFX), Tileset12GFX
- dbw BANK(Tileset12Meta), Tileset12Meta
- dbw BANK(Tileset12Coll), Tileset12Coll
- dw Tileset12Anim
- dw $0000
- dw Tileset12PalMap
-
-Tileset13: ; 0x4d659
- dbw BANK(Tileset13GFX), Tileset13GFX
- dbw BANK(Tileset13Meta), Tileset13Meta
- dbw BANK(Tileset13Coll), Tileset13Coll
- dw Tileset13Anim
- dw $0000
- dw Tileset13PalMap
-
-Tileset14: ; 0x4d668
- dbw BANK(Tileset14GFX), Tileset14GFX
- dbw BANK(Tileset14Meta), Tileset14Meta
- dbw BANK(Tileset14Coll), Tileset14Coll
- dw Tileset14Anim
- dw $0000
- dw Tileset14PalMap
-
-Tileset15: ; 0x4d677
- dbw BANK(Tileset15GFX), Tileset15GFX
- dbw BANK(Tileset15Meta), Tileset15Meta
- dbw BANK(Tileset15Coll), Tileset15Coll
- dw Tileset15Anim
- dw $0000
- dw Tileset15PalMap
-
-Tileset16: ; 0x4d686
- dbw BANK(Tileset16GFX), Tileset16GFX
- dbw BANK(Tileset16Meta), Tileset16Meta
- dbw BANK(Tileset16Coll), Tileset16Coll
- dw Tileset16Anim
- dw $0000
- dw Tileset16PalMap
-
-Tileset17: ; 0x4d695
- dbw BANK(Tileset17GFX), Tileset17GFX
- dbw BANK(Tileset17Meta), Tileset17Meta
- dbw BANK(Tileset17Coll), Tileset17Coll
- dw Tileset17Anim
- dw $0000
- dw Tileset17PalMap
-
-Tileset18: ; 0x4d6a4
- dbw BANK(Tileset18GFX), Tileset18GFX
- dbw BANK(Tileset18Meta), Tileset18Meta
- dbw BANK(Tileset18Coll), Tileset18Coll
- dw Tileset18Anim
- dw $0000
- dw Tileset18PalMap
-
-Tileset19: ; 0x4d6b3
- dbw BANK(Tileset19GFX), Tileset19GFX
- dbw BANK(Tileset19Meta), Tileset19Meta
- dbw BANK(Tileset19Coll), Tileset19Coll
- dw Tileset19Anim
- dw $0000
- dw Tileset19PalMap
-
-Tileset20: ; 0x4d6c2
- dbw BANK(Tileset20GFX), Tileset20GFX
- dbw BANK(Tileset20Meta), Tileset20Meta
- dbw BANK(Tileset20Coll), Tileset20Coll
- dw Tileset20Anim
- dw $0000
- dw Tileset20PalMap
-
-Tileset21: ; 0x4d6d1
- dbw BANK(Tileset21GFX), Tileset21GFX
- dbw BANK(Tileset21Meta), Tileset21Meta
- dbw BANK(Tileset21Coll), Tileset21Coll
- dw Tileset21Anim
- dw $0000
- dw Tileset21PalMap
-
-Tileset22: ; 0x4d6e0
- dbw BANK(Tileset22GFX), Tileset22GFX
- dbw BANK(Tileset22Meta), Tileset22Meta
- dbw BANK(Tileset22Coll), Tileset22Coll
- dw Tileset22Anim
- dw $0000
- dw Tileset22PalMap
-
-Tileset23: ; 0x4d6ef
- dbw BANK(Tileset23GFX), Tileset23GFX
- dbw BANK(Tileset23Meta), Tileset23Meta
- dbw BANK(Tileset23Coll), Tileset23Coll
- dw Tileset23Anim
- dw $0000
- dw Tileset23PalMap
-
-Tileset24: ; 0x4d6fe
- dbw BANK(Tileset24GFX), Tileset24GFX
- dbw BANK(Tileset24Meta), Tileset24Meta
- dbw BANK(Tileset24Coll), Tileset24Coll
- dw Tileset24Anim
- dw $0000
- dw Tileset24PalMap
-
-Tileset25: ; 0x4d70d
- dbw BANK(Tileset25GFX), Tileset25GFX
- dbw BANK(Tileset25Meta), Tileset25Meta
- dbw BANK(Tileset25Coll), Tileset25Coll
- dw Tileset25Anim
- dw $0000
- dw Tileset25PalMap
-
-Tileset26: ; 0x4d71c
- dbw BANK(Tileset26GFX), Tileset26GFX
- dbw BANK(Tileset26Meta), Tileset26Meta
- dbw BANK(Tileset26Coll), Tileset26Coll
- dw Tileset26Anim
- dw $0000
- dw Tileset26PalMap
+ push hl
+ push bc
-Tileset27: ; 0x4d72b
- dbw BANK(Tileset27GFX), Tileset27GFX
- dbw BANK(Tileset27Meta), Tileset27Meta
- dbw BANK(Tileset27Coll), Tileset27Coll
- dw Tileset27Anim
- dw $0000
- dw Tileset27PalMap
+; 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
-Tileset28: ; 0x4d73a
- dbw BANK(Tileset28GFX), Tileset28GFX
- dbw BANK(Tileset28Meta), Tileset28Meta
- dbw BANK(Tileset28Coll), Tileset28Coll
- dw Tileset28Anim
- dw $0000
- dw Tileset28PalMap
+; Which bit we want from the byte
+ ld a, c
+ and 7
+ ld c, a
-Tileset29: ; 0x4d749
- dbw BANK(Tileset29GFX), Tileset29GFX
- dbw BANK(Tileset29Meta), Tileset29Meta
- dbw BANK(Tileset29Coll), Tileset29Coll
- dw Tileset29Anim
- dw $0000
- dw Tileset29PalMap
+; 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
-Tileset30: ; 0x4d758
- dbw BANK(Tileset30GFX), Tileset30GFX
- dbw BANK(Tileset30Meta), Tileset30Meta
- dbw BANK(Tileset30Coll), Tileset30Coll
- dw Tileset30Anim
- dw $0000
- dw Tileset30PalMap
+; What are we doing to this flag?
+ dec b
+ jr z, .set ; 1
+ dec b
+ jr z, .check ; 2
-Tileset31: ; 0x4d767
- dbw BANK(Tileset31GFX), Tileset31GFX
- dbw BANK(Tileset31Meta), Tileset31Meta
- dbw BANK(Tileset31Coll), Tileset31Coll
- dw Tileset31Anim
- dw $0000
- dw Tileset31PalMap
+.reset
+ ld a, c
+ cpl
+ and [hl]
+ ld [hl], a
+ jr .done
-Tileset32: ; 0x4d776
- dbw BANK(Tileset32GFX), Tileset32GFX
- dbw BANK(Tileset32Meta), Tileset32Meta
- dbw BANK(Tileset32Coll), Tileset32Coll
- dw Tileset32Anim
- dw $0000
- dw Tileset32PalMap
+.set
+ ld a, [hl]
+ or c
+ ld [hl], a
+ jr .done
-Tileset33: ; 0x4d785
- dbw BANK(Tileset33GFX), Tileset33GFX
- dbw BANK(Tileset33Meta), Tileset33Meta
- dbw BANK(Tileset33Coll), Tileset33Coll
- dw Tileset33Anim
- dw $0000
- dw Tileset33PalMap
+.check
+ ld a, d
+ cp 0
+ jr nz, .farcheck
-Tileset34: ; 0x4d794
- dbw BANK(Tileset34GFX), Tileset34GFX
- dbw BANK(Tileset34Meta), Tileset34Meta
- dbw BANK(Tileset34Coll), Tileset34Coll
- dw Tileset34Anim
- dw $0000
- dw Tileset34PalMap
+ ld a, [hl]
+ and c
+ jr .done
-Tileset35: ; 0x4d7a3
- dbw BANK(Tileset35GFX), Tileset35GFX
- dbw BANK(Tileset35Meta), Tileset35Meta
- dbw BANK(Tileset35Coll), Tileset35Coll
- dw Tileset35Anim
- dw $0000
- dw Tileset35PalMap
+.farcheck
+ call GetFarByte
+ and c
-Tileset36: ; 0x4d7b2
- dbw BANK(Tileset36GFX), Tileset36GFX
- dbw BANK(Tileset36Meta), Tileset36Meta
- dbw BANK(Tileset36Coll), Tileset36Coll
- dw Tileset36Anim
- dw $0000
- dw Tileset36PalMap
+.done
+ pop bc
+ pop hl
+ ld c, a
+ ret
+; 4d7fd
-; 0x4d7c1
+Function4d7fd: ; 4d7fd
+ ld a, [PlayerLightScreenCount]
+ ld hl, $c72f
+ ld de, VTiles2
+ push de
+ push af
+ ld a, $2d
+ call Predef
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ ld a, $3e
+ call Predef
+ ret
+; 4d81e
-INCBIN "baserom.gbc", $4d7c1, $4d860 - $4d7c1
+INCBIN "baserom.gbc", $4d81e, $4d860 - $4d81e
CheckPokerus: ; 4d860
; Return carry if a monster in your party has Pokerus
@@ -49866,7 +52744,365 @@ CheckPokerus: ; 4d860
ret
; 4d87a
-INCBIN "baserom.gbc", $4d87a, $4db3b - $4d87a
+Function4d87a: ; 4d87a
+ xor a
+ ld [ScriptVar], a
+ ld [$d265], a
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld d, a
+ ld hl, PartyMon1ID
+ ld bc, PartySpecies
+.asm_4d88d
+ ld a, [bc]
+ inc bc
+ cp $fd
+ call nz, Function4d939
+ push bc
+ ld bc, $0030
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .asm_4d88d
+ ld a, $1
+ call GetSRAMBank
+ ld a, [BoxCount]
+ and a
+ jr z, .asm_4d8c8
+ ld d, a
+ ld hl, BoxMon1ID
+ ld bc, BoxSpecies
+.asm_4d8af
+ ld a, [bc]
+ inc bc
+ cp $fd
+ jr z, .asm_4d8bf
+ call Function4d939
+ jr nc, .asm_4d8bf
+ ld a, $1
+ ld [$d265], a
+
+.asm_4d8bf
+ push bc
+ ld bc, $0020
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .asm_4d8af
+
+.asm_4d8c8
+ call CloseSRAM
+ ld c, $0
+.asm_4d8cd
+ ld a, [$db72]
+ and $f
+ cp c
+ jr z, .asm_4d90b
+ ld hl, $599f
+ 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_4d90b
+ push bc
+ ld b, h
+ ld c, l
+ inc bc
+ ld de, $001c
+ add hl, de
+ ld d, a
+.asm_4d8f1
+ ld a, [bc]
+ inc bc
+ cp $fd
+ jr z, .asm_4d901
+ call Function4d939
+ jr nc, .asm_4d901
+ ld a, $1
+ ld [$d265], a
+
+.asm_4d901
+ push bc
+ ld bc, $0020
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .asm_4d8f1
+ pop bc
+
+.asm_4d90b
+ inc c
+ ld a, c
+ cp $e
+ jr c, .asm_4d8cd
+ call CloseSRAM
+ ld a, [ScriptVar]
+ and a
+ ret z
+ callba Function1060cd
+ ld a, [$d265]
+ and a
+ push af
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $59c9
+ pop af
+ jr z, .asm_4d936
+ ld hl, $59ce
+
+.asm_4d936
+ jp PrintText
+; 4d939
+
+Function4d939: ; 4d939
+ push bc
+ push de
+ push hl
+ ld d, h
+ ld e, l
+ ld hl, Buffer1
+ ld bc, $8205
+ call PrintNum
+ ld hl, DefaultFlypoint
+ ld de, $dc9f
+ ld bc, $8205
+ call PrintNum
+ ld b, $5
+ ld c, $0
+ ld hl, EndFlypoint
+ ld de, $d1ee
+.asm_4d95d
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_4d967
+ dec de
+ dec hl
+ inc c
+ dec b
+ jr nz, .asm_4d95d
+
+.asm_4d967
+ pop hl
+ push hl
+ ld de, $fffa
+ add hl, de
+ ld a, [hl]
+ pop hl
+ pop de
+ push af
+ ld a, c
+ ld b, $1
+ cp $5
+ jr z, .asm_4d984
+ ld b, $2
+ cp $3
+ jr nc, .asm_4d984
+ ld b, $3
+ cp $2
+ jr nz, .asm_4d99b
+
+.asm_4d984
+ inc b
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_4d98e
+ cp b
+ jr c, .asm_4d99b
+
+.asm_4d98e
+ dec b
+ ld a, b
+ ld [ScriptVar], a
+ pop bc
+ ld a, b
+ ld [CurPartySpecies], a
+ pop bc
+ scf
+ ret
+
+.asm_4d99b
+ pop bc
+ pop bc
+ and a
+ ret
+; 4d99f
+
+INCBIN "baserom.gbc", $4d99f, $4d9d3 - $4d99f
+
+Function4d9d3: ; 4d9d3
+ ld hl, StringBuffer3
+ ld de, $dc9f
+ ld bc, $8205
+ call PrintNum
+ ld a, $50
+ ld [$d09e], a
+ ret
+; 4d9e5
+
+Function4d9e5: ; 4d9e5
+ ld a, [$df9c]
+ and a
+ jp z, Function4db35
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, PartyCount
+ ld a, [hl]
+ cp $6
+ jp nc, Function4daa3
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [$df9c]
+ ld [hli], a
+ ld [CurSpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMon1Species
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, $df9c
+ ld bc, $0030
+ call CopyBytes
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1OT
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, $d050
+ ld bc, $000b
+ call CopyBytes
+ call Function4db3b
+ jr c, .asm_4da66
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ xor a
+ ld [MonType], a
+ ld de, $d050
+ callab Functione3de
+
+.asm_4da66
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Nickname
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, $d050
+ call CopyBytes
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Level
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ call Function4db49
+ 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 [$df9c], a
+ and a
+ ld [ScriptVar], a
+ ret
+; 4daa3
+
+Function4daa3: ; 4daa3
+ ld a, $1
+ call GetSRAMBank
+ ld hl, BoxCount
+ ld a, [hl]
+ cp $14
+ call CloseSRAM
+ jr nc, .asm_4db08
+ xor a
+ ld [CurPartyMon], a
+ ld hl, $df9c
+ ld de, $d018
+ ld bc, $0020
+ call CopyBytes
+ ld hl, PlayerName
+ ld de, $d00d
+ ld bc, $000b
+ call CopyBytes
+ callab Function51322
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ call GetPokemonName
+ call Function4db3b
+ ld hl, StringBuffer1
+ jr c, .asm_4daf7
+ ld a, $2
+ ld [MonType], a
+ ld de, $d050
+ callab Functione3de
+ ld hl, $d050
+
+.asm_4daf7
+ ld a, $1
+ call GetSRAMBank
+ ld de, BoxMon1Nickname
+ ld bc, $000b
+ call CopyBytes
+ call CloseSRAM
+
+.asm_4db08
+ ld a, $1
+ call GetSRAMBank
+ ld a, [BoxMon1Level]
+ ld [CurPartyLevel], a
+ call CloseSRAM
+ call Function4db83
+ ld a, $1
+ call GetSRAMBank
+ ld hl, BoxMon1CaughtLocation
+ ld a, [hl]
+ and $80
+ ld b, $13
+ or b
+ ld [hl], a
+ call CloseSRAM
+ xor a
+ ld [$df9c], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 4db35
+
+Function4db35: ; 4db35
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+; 4db3b
Function4db3b: ; 4db3b
@@ -49918,7 +53154,7 @@ Function4db49: ; 4db49
Function4db83: ; 4db83
ld a, $1
call GetSRAMBank
- ld hl, $ad43
+ ld hl, BoxMon1CaughtLevel
call $5b53
call CloseSRAM
ret
@@ -49928,7 +53164,7 @@ Function4db92: ; 4db92
push bc
ld a, $1
call GetSRAMBank
- ld hl, $ad43
+ ld hl, BoxMon1CaughtLevel
pop bc
call $5baf
call CloseSRAM
@@ -49951,7 +53187,146 @@ Function4dba3: ; 4dba3
ret
; 4dbb8
-INCBIN "baserom.gbc", $4dbb8, $4dc8a - $4dbb8
+INCBIN "baserom.gbc", $4dbb8, $4dbd2 - $4dbb8
+
+Function4dbd2: ; 4dbd2
+ ld hl, PartyMon1Level
+ call Function4dc31
+ ret
+; 4dbd9
+
+Function4dbd9: ; 4dbd9
+ ld hl, PartyMon1Happiness
+ call Function4dc0a
+ ret
+; 4dbe0
+
+Function4dbe0: ; 4dbe0
+ ld hl, PartyMon1Species
+ jp Function4dc56
+; 4dbe6
+
+Function4dbe6: ; 4dbe6
+ ld hl, PartyMon1Species
+ call Function4dc56
+ ret z
+ ld a, c
+ ld hl, PartyMon1ID
+ ld bc, $0030
+ call AddNTimes
+ ld a, [PlayerID]
+ cp [hl]
+ jr nz, .asm_4dc08
+ inc hl
+ ld a, [$d47c]
+ cp [hl]
+ jr nz, .asm_4dc08
+ ld a, $1
+ and a
+ ret
+
+.asm_4dc08
+ xor a
+ ret
+; 4dc0a
+
+Function4dc0a: ; 4dc0a
+ ld c, $0
+ ld a, [PartyCount]
+ ld d, a
+.asm_4dc10
+ ld a, d
+ dec a
+ push hl
+ push bc
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ ld a, b
+ cp [hl]
+ pop hl
+ jr z, .asm_4dc22
+ jr nc, .asm_4dc26
+
+.asm_4dc22
+ ld a, c
+ or $1
+ ld c, a
+
+.asm_4dc26
+ sla c
+ dec d
+ jr nz, .asm_4dc10
+ call Function4dc67
+ ld a, c
+ and a
+ ret
+; 4dc31
+
+Function4dc31: ; 4dc31
+ ld c, $0
+ ld a, [PartyCount]
+ ld d, a
+.asm_4dc37
+ ld a, d
+ dec a
+ push hl
+ push bc
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ ld a, b
+ cp [hl]
+ pop hl
+ jr c, .asm_4dc4b
+ ld a, c
+ or $1
+ ld c, a
+
+.asm_4dc4b
+ sla c
+ dec d
+ jr nz, .asm_4dc37
+ call Function4dc67
+ ld a, c
+ and a
+ ret
+; 4dc56
+
+Function4dc56: ; 4dc56
+ ld c, $ff
+ ld hl, PartySpecies
+.asm_4dc5b
+ ld a, [hli]
+ cp $ff
+ ret z
+ inc c
+ cp b
+ jr nz, .asm_4dc5b
+ ld a, $1
+ and a
+ ret
+; 4dc67
+
+Function4dc67: ; 4dc67
+ ld e, $fe
+ ld hl, PartySpecies
+.asm_4dc6c
+ ld a, [hli]
+ cp $ff
+ ret z
+ cp $fd
+ jr nz, .asm_4dc77
+ ld a, c
+ and e
+ ld c, a
+
+.asm_4dc77
+ rlc e
+ jr .asm_4dc6c
+; 4dc7b
+
+INCBIN "baserom.gbc", $4dc7b, $4dc8a - $4dc7b
StatsScreenInit: ; 4dc8a
ld hl, StatsScreenMain
@@ -50017,14 +53392,14 @@ StatsScreenMain: ; 0x4dcd2
INCBIN "baserom.gbc", $4dcf7, $4dd2a - $4dcf7
StatsScreenPointerTable: ; 4dd2a
- dw $5d72 ; regular pokémon
- dw EggStatsInit ; egg
- dw $5de6
- dw $5dac
- dw $5dc6
- dw $5de6
- dw $5dd6
- dw $5d6c
+ dw $5d72 ; regular pokémon
+ dw EggStatsInit ; egg
+ dw $5de6
+ dw $5dac
+ dw $5dc6
+ dw $5de6
+ dw $5dd6
+ dw $5d6c
; 4dd3a
@@ -50041,10 +53416,10 @@ EggStatsInit: ; 4dda1
INCBIN "baserom.gbc", $4ddac, $4e21e - $4ddac
IDNoString: ; 4e21e
- db $73, "№.@"
+ db $73, "№.@"
OTString: ; 4e222
- db "OT/@"
+ db "OT/@"
; 4e226
INCBIN "baserom.gbc", $4e226, $4e33a - $4e226
@@ -50106,22 +53481,22 @@ EggStatsScreen: ; 4e33a
; 0x4e3c0
EggString: ; 4e3c0
- db "EGG@"
+ db "EGG@"
FiveQMarkString: ; 4e3c4
- db "?????@"
+ db "?????@"
EggSoonString: ; 0x4e3ca
- db "It's making sounds", $4e, "inside. It's going", $4e, "to hatch soon!@"
+ db "It's making sounds", $4e, "inside. It's going", $4e, "to hatch soon!@"
EggCloseString: ; 0x4e3fd
- db "It moves around", $4e, "inside sometimes.", $4e, "It must be close", $4e, "to hatching.@"
+ db "It moves around", $4e, "inside sometimes.", $4e, "It must be close", $4e, "to hatching.@"
EggMoreTimeString: ; 0x4e43d
- db "Wonder what's", $4e, "inside? It needs", $4e, "more time, though.@"
+ db "Wonder what's", $4e, "inside? It needs", $4e, "more time, though.@"
EggALotMoreTimeString: ; 0x4e46e
- db "This EGG needs a", $4e, "lot more time to", $4e, "hatch.@"
+ db "This EGG needs a", $4e, "lot more time to", $4e, "hatch.@"
; 0x4e497
@@ -50147,7 +53522,21 @@ Function4e53f: ; 4e53f
ret
; 4e554
-INCBIN "baserom.gbc", $4e554, $4e5e1 - $4e554
+Function4e554: ; 4e554
+ ld a, [BattleType]
+ dec a
+ ld c, a
+ ld hl, $6564
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 4e564
+
+INCBIN "baserom.gbc", $4e564, $4e5e1 - $4e564
Function4e5e1: ; 4e5e1
@@ -50581,7 +53970,52 @@ Function4e906: ; 4e906
ret
; 4e929
-INCBIN "baserom.gbc", $4e929, $4e980 - $4e929
+Function4e929: ; 4e929
+ ld h, b
+ ld l, c
+ call Function4e930
+ ld c, a
+ ret
+; 4e930
+
+Function4e930: ; 4e930
+ ld a, [hli]
+ xor [hl]
+ ld c, a
+ jr z, .asm_4e941
+ srl c
+ srl c
+.asm_4e939
+ srl c
+ ld a, c
+ cp $18
+ jr nc, .asm_4e939
+ inc c
+
+.asm_4e941
+ ld a, [de]
+ cp $1
+ ld hl, $695d
+ jr nz, .asm_4e958
+ ld hl, $6976
+ ld a, c
+ and a
+ jr z, .asm_4e958
+.asm_4e950
+ srl c
+ ld a, c
+ cp $9
+ jr nc, .asm_4e950
+ inc c
+
+.asm_4e958
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ret
+; 4e95d
+
+INCBIN "baserom.gbc", $4e95d, $4e980 - $4e95d
Function4e980: ; 4e980
@@ -50659,7 +54093,7 @@ Function4e9d6: ; 4e9d6
; 4e9e5
Function4e9e5: ; 4e9e5
- ld hl, $d100
+ ld hl, LYOverrides
ld a, $90
ld bc, $0090
call ByteFill
@@ -50667,7 +54101,7 @@ Function4e9e5: ; 4e9e5
; 4e9f1
Function4e9f1: ; 4e9f1
- ld hl, $d100
+ ld hl, LYOverrides
ld a, d
ld c, $3e
.asm_4e9f7
@@ -50704,7 +54138,7 @@ Function4ea0a: ; 4ea0a
ld de, $cd53
ld bc, $000c
ld a, $5
- call Function306b
+ call FarCopyWRAM
ld a, [rSVBK]
push af
ld a, $1
@@ -50726,7 +54160,7 @@ Function4ea0a: ; 4ea0a
Function4ea44: ; 4ea44
ld a, $0
ld hl, InLinkBattle
- call Function307b
+ call GetFarWRAMByte
cp $4
jr z, .asm_4ea59
ld a, [Options]
@@ -50753,7 +54187,7 @@ Function4ea44: ; 4ea44
.asm_4ea72
ld a, $5
ld hl, $dc00
- call Function307b
+ call GetFarWRAMByte
bit 0, a
jr z, .asm_4ea80
and a
@@ -50875,7 +54309,301 @@ Function4eb27: ; 4eb27
ret
; 4eb38
-INCBIN "baserom.gbc", $4eb38, $4f301 - $4eb38
+INCBIN "baserom.gbc", $4eb38, $4f0bc - $4eb38
+
+Function4f0bc: ; 4f0bc
+ ld a, $0
+ call Function4f26d
+ call Functiona36
+ ld b, $6
+ callba Function50000
+ jr c, .asm_4f0e1
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_4f0e8
+ call IsAPokemon
+ jr c, .asm_4f0e7
+ call Function4f134
+ call Function4f0ee
+ ret
+
+.asm_4f0e1
+ ld a, $5
+ call Function4f26d
+ ret
+
+.asm_4f0e7
+ ret
+
+.asm_4f0e8
+ ld a, $6
+ call Function4f26d
+ ret
+; 4f0ee
+
+Function4f0ee: ; 4f0ee
+ ld a, [DefaultFlypoint]
+ ld hl, $70f6
+ rst JumpTable
+ ret
+; 4f0f6
+
+Table4f0f6: ; 4f0f6
+ dw Function4f100
+ dw Function4f10e
+ dw Function4f11f
+ dw Function4f125
+ dw Function4f12b
+; 4f100
+
+Function4f100: ; 4f100
+ ld a, $2
+ call Function4f26d
+ ld a, $3
+ call Function4f26d
+ call Function4f2b4
+ ret
+; 4f10e
+
+Function4f10e: ; 4f10e
+ call Function4f242
+ ld a, $4
+ call Function4f26d
+ ld a, $3
+ call Function4f26d
+ call Function4f2b4
+ ret
+; 4f11f
+
+Function4f11f: ; 4f11f
+ ld a, $1
+ call Function4f26d
+ ret
+; 4f125
+
+Function4f125: ; 4f125
+ ld a, $1
+ call Function4f26d
+ ret
+; 4f12b
+
+Function4f12b: ; 4f12b
+ ld a, $7
+ call Function4f26d
+ call Function4f2b4
+ ret
+; 4f134
+
+Function4f134: ; 4f134
+ ld a, $1d
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [$d03b], a
+ ld a, [hld]
+ ld [$d03c], a
+ or [hl]
+ jr z, .asm_4f170
+ ld a, $1
+ ld [DefaultFlypoint], a
+ ld a, $6
+ call GetPartyParamLocation
+ ld a, [PlayerID]
+ cp [hl]
+ jr nz, .asm_4f15f
+ inc hl
+ ld a, [$d47c]
+ jr nz, .asm_4f15f
+ ld a, $0
+ ld [DefaultFlypoint], a
+
+.asm_4f15f
+ call Function4f18c
+ call Function4f242
+ call Function4f176
+ call Function4f1c5
+ call Function4f20a
+ and a
+ ret
+
+.asm_4f170
+ ld a, $2
+ ld [DefaultFlypoint], a
+ ret
+; 4f176
+
+Function4f176: ; 4f176
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ call AddNTimes
+ ld de, $d003
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 4f18c
+
+Function4f18c: ; 4f18c
+ ld a, $50
+ ld hl, $d036
+ ld bc, $0004
+ call ByteFill
+ ld a, [$d03b]
+ and $3f
+ jr z, .asm_4f1b4
+ cp $1
+ jr nz, .asm_4f1a4
+ ld a, $5
+
+.asm_4f1a4
+ ld [$d03a], a
+ ld hl, $d036
+ ld de, $d03a
+ ld bc, $4103
+ call PrintNum
+ ret
+
+.asm_4f1b4
+ ld de, $d036
+ ld hl, $71c1
+ ld bc, $0004
+ call CopyBytes
+ ret
+; 4f1c1
+
+INCBIN "baserom.gbc", $4f1c1, $4f1c5 - $4f1c1
+
+Function4f1c5: ; 4f1c5
+ ld a, [$d03b]
+ and $c0
+ jr z, .asm_4f1df
+ rlca
+ rlca
+ dec a
+ ld hl, $71e6
+ call GetNthString
+ ld d, h
+ ld e, l
+ ld hl, $d01f
+ call CopyName2
+ and a
+ ret
+
+.asm_4f1df
+ ld de, $d01f
+ call Function4f1f8
+ ret
+; 4f1e6
+
+INCBIN "baserom.gbc", $4f1e6, $4f1f8 - $4f1e6
+
+Function4f1f8: ; 4f1f8
+ ld hl, $7202
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 4f202
+
+INCBIN "baserom.gbc", $4f202, $4f20a - $4f202
+
+Function4f20a: ; 4f20a
+ ld a, [$d03c]
+ and $7f
+ jr z, .asm_4f22e
+ cp $7f
+ jr z, .asm_4f234
+ cp $7e
+ jr z, .asm_4f23b
+ ld e, a
+ callba GetLandmarkName
+ ld hl, StringBuffer1
+ ld de, $d00e
+ ld bc, $0011
+ call CopyBytes
+ and a
+ ret
+
+.asm_4f22e
+ ld de, $d00e
+ jp Function4f1f8
+
+.asm_4f234
+ ld a, $4
+ ld [DefaultFlypoint], a
+ scf
+ ret
+
+.asm_4f23b
+ ld a, $3
+ ld [DefaultFlypoint], a
+ scf
+ ret
+; 4f242
+
+Function4f242: ; 4f242
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ call AddNTimes
+ ld de, $d02a
+ ld bc, $000b
+ call CopyBytes
+ ld hl, $726b
+ ld a, [$d03c]
+ bit 7, a
+ jr z, .asm_4f264
+ ld hl, $726c
+
+.asm_4f264
+ ld de, $d035
+ ld a, $50
+ ld [de], a
+ ret
+; 4f26b
+
+INCBIN "baserom.gbc", $4f26b, $4f26d - $4f26b
+
+Function4f26d: ; 4f26d
+ ld e, a
+ ld d, $0
+ ld hl, $727c
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 4f27c
+
+INCBIN "baserom.gbc", $4f27c, $4f2b4 - $4f27c
+
+Function4f2b4: ; 4f2b4
+ ld a, $1f
+ call GetPartyParamLocation
+ ld a, [$d03a]
+ ld c, a
+ ld a, [hl]
+ sub c
+ ld c, a
+ ld hl, $72d6
+ ld de, $0003
+.asm_4f2c6
+ cp [hl]
+ jr c, .asm_4f2ce
+ jr z, .asm_4f2ce
+ add hl, de
+ jr .asm_4f2c6
+
+.asm_4f2ce
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 4f2d6
+
+INCBIN "baserom.gbc", $4f2d6, $4f301 - $4f2d6
Function4f301: ; 4f301
@@ -50974,7 +54702,7 @@ WritePartyMenuTilemap: ; 0x5005f
cp $ff
jr z, .asm_50084 ; 0x5007a $8
push hl
- ld hl, $4089
+ ld hl, Table50089
rst JumpTable
pop hl
jr .asm_50077 ; 0x50082 $f3
@@ -50984,7 +54712,51 @@ WritePartyMenuTilemap: ; 0x5005f
ret
; 0x50089
-INCBIN "baserom.gbc", $50089, $500cf - $50089
+Table50089: ; 50089
+ dw Function5009b
+ dw Function500cf
+ dw Function50138
+ dw Function50176
+ dw Function501b2
+ dw Function501e0
+ dw Function5022f
+ dw Function502b1
+ dw Function50307
+; 5009b
+
+Function5009b: ; 5009b
+ ld hl, $c4b7
+ ld a, [PartyCount]
+ and a
+ jr z, .asm_500bf
+ ld c, a
+ ld b, $0
+.asm_500a7
+ push bc
+ push hl
+ push hl
+ ld hl, PartyMon1Nickname
+ ld a, b
+ call GetNick
+ pop hl
+ call PlaceString
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_500a7
+
+.asm_500bf
+ dec hl
+ dec hl
+ ld de, $40c8
+ call PlaceString
+ ret
+; 500c8
+
+INCBIN "baserom.gbc", $500c8, $500cf - $500c8
Function500cf: ; 500cf
@@ -51585,35 +55357,35 @@ PrintPartyMenuText: ; 5049a
; 0x504d2
PartyMenuStrings: ; 0x504d2
- dw ChooseAMonString
- dw UseOnWhichPKMNString
- dw WhichPKMNString
- dw TeachWhichPKMNString
- dw MoveToWhereString
- dw UseOnWhichPKMNString
- dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString
- dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString
- dw ToWhichPKMNString
+ dw ChooseAMonString
+ dw UseOnWhichPKMNString
+ dw WhichPKMNString
+ dw TeachWhichPKMNString
+ dw MoveToWhereString
+ dw UseOnWhichPKMNString
+ dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString
+ dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString
+ dw ToWhichPKMNString
ChooseAMonString: ; 0x504e4
- db "Choose a #MON.@"
+ db "Choose a #MON.@"
UseOnWhichPKMNString: ; 0x504f3
- db "Use on which ", $e1, $e2, "?@"
+ db "Use on which ", $e1, $e2, "?@"
WhichPKMNString: ; 0x50504
- db "Which ", $e1, $e2, "?@"
+ db "Which ", $e1, $e2, "?@"
TeachWhichPKMNString: ; 0x5050e
- db "Teach which ", $e1, $e2, "?@"
+ db "Teach which ", $e1, $e2, "?@"
MoveToWhereString: ; 0x5051e
- db "Move to where?@"
+ db "Move to where?@"
ChooseAFemalePKMNString: ; 0x5052d ; UNUSED
- db "Choose a ♀", $e1, $e2, ".@"
+ db "Choose a ♀", $e1, $e2, ".@"
ChooseAMalePKMNString: ; 0x5053b ; UNUSED
- db "Choose a ♂", $e1, $e2, ".@"
+ db "Choose a ♂", $e1, $e2, ".@"
ToWhichPKMNString: ; 0x50549
- db "To which ", $e1, $e2, "?@"
+ db "To which ", $e1, $e2, "?@"
YouHaveNoPKMNString: ; 0x50556
- db "You have no ", $e1, $e2, "!@"
+ db "You have no ", $e1, $e2, "!@"
Function50566: ; 50566
@@ -51667,7 +55439,7 @@ Function505da: ; 505da
ld a, [CurPartyMon]
ld e, a
ld d, 0
- ld hl, CurFruit
+ ld hl, $d03f
add hl, de
ld [hl], c
ld a, [EngineBuffer1]
@@ -51761,7 +55533,7 @@ UnknownScript_0x50677: ; 50677
Function5067b: ; 5067b
xor a
ld [CurPartyMon], a
- ld de, CurFruit
+ ld de, $d03f
.asm_50682
push de
ld a, [de]
@@ -52212,163 +55984,124 @@ Function508d5: ; 508d5
; 5090d
-PrintMonTypes: ; 5090d
- push hl
- call GetBaseData
- pop hl
- push hl
- ld a, [BaseType1]
- call .asm_50928
- ld a, [BaseType1]
- ld b, a
- ld a, [BaseType2]
- cp b
- pop hl
- jr z, .asm_5092b
- ld bc, 20
- add hl, bc
+INCLUDE "text/types.asm"
-.asm_50928
- ld b, a
- jr PrintType
-.asm_5092b
- ld a, " "
- ld bc, 20 - 3
+Function50a28: ; 50a28
+ ld hl, Strings50a42
+ ld a, [TrainerClass]
+ dec a
+ ld c, a
+ ld b, 0
add hl, bc
- ld [hl], a
- inc bc
add hl, bc
- ld bc, 5
- jp ByteFill
-; 5093a
-
-PrintMoveType: ; 5093a
-; Print the type of move b at hl.
-
- push hl
- ld a, b
- dec a
- ld bc, Move2 - Move1
- ld hl, Moves
- call AddNTimes
- ld de, StringBuffer1
- ld a, BANK(Moves)
- call FarCopyBytes
- ld a, [StringBuffer1 + PlayerMoveType - PlayerMoveStruct]
- pop hl
-
- ld b, a
-; 50953
-
-PrintType: ; 50953
-; Print type b at hl.
- ld a, b
-
- push hl
- add a
- ld hl, TypeNames
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- pop hl
-
- jp PlaceString
-; 50964
-
-
-GetTypeName: ; 50964
-; Copy the name of type $d265 to StringBuffer1.
- ld a, [$d265]
- ld hl, TypeNames
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld de, StringBuffer1
- ld bc, $000d
- jp CopyBytes
-; 5097b
-
-
-TypeNames: ; 5097b
- dw Normal
- dw Fighting
- dw Flying
- dw Poison
- dw Ground
- dw Rock
- dw Bird
- dw Bug
- dw Ghost
- dw Steel
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw UnknownType
- dw Fire
- dw Water
- dw Grass
- dw Electric
- dw Psychic
- dw Ice
- dw Dragon
- dw Dark
-
-Normal:
- db "NORMAL@"
-Fighting:
- db "FIGHTING@"
-Flying:
- db "FLYING@"
-Poison:
- db "POISON@"
-UnknownType:
- db "???@"
-Fire:
- db "FIRE@"
-Water:
- db "WATER@"
-Grass:
- db "GRASS@"
-Electric:
- db "ELECTRIC@"
-Psychic:
- db "PSYCHIC@"
-Ice:
- db "ICE@"
-Ground:
- db "GROUND@"
-Rock:
- db "ROCK@"
-Bird:
- db "BIRD@"
-Bug:
- db "BUG@"
-Ghost:
- db "GHOST@"
-Steel:
- db "STEEL@"
-Dragon:
- db "DRAGON@"
-Dark:
- db "DARK@"
-; 50a28
-
-
-INCBIN "baserom.gbc", $50a28, $50b0a - $50a28
+.copy
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp "@"
+ jr nz, .copy
+ ret
+; 50a42
+
+Strings50a42: ; 50a42
+; Untranslated trainer class names from Red.
+
+ dw .Youngster
+ dw .BugCatcher
+ dw .Lass
+ dw OTName
+ dw .JrTrainerM
+ dw .JrTrainerF
+ dw .Pokemaniac
+ dw .SuperNerd
+ dw OTName
+ dw OTName
+ dw .Burglar
+ dw .Engineer
+ dw .Jack
+ dw OTName
+ dw .Swimmer
+ dw OTName
+ dw OTName
+ dw .Beauty
+ dw OTName
+ dw .Rocker
+ dw .Juggler
+ dw OTName
+ dw OTName
+ dw .Blackbelt
+ dw OTName
+ dw .ProfOak
+ dw .Chief
+ dw .Scientist
+ dw OTName
+ dw .Rocket
+ dw .CooltrainerM
+ dw .CooltrainerF
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+ dw OTName
+
+.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 "エりート♀@"
+; 50b0a
DrawPlayerHP: ; 50b0a
@@ -52457,7 +56190,39 @@ DrawHP: ; 50b10
; 50b7b
-INCBIN "baserom.gbc", $50b7b, $50bdd - $50b7b
+Function50b7b: ; 50b7b
+ push bc
+ push hl
+ ld de, $4bb5
+ call PlaceString
+ pop hl
+ pop bc
+ add hl, bc
+ ld bc, $0014
+ add hl, bc
+ ld de, TempMonAtk
+ ld bc, $0203
+ call Function50bab
+ ld de, TempMonDef
+ call Function50bab
+ ld de, TempMonSpclAtk
+ call Function50bab
+ ld de, TempMonSpclDef
+ call Function50bab
+ ld de, TempMonSpd
+ jp PrintNum
+; 50bab
+
+Function50bab: ; 50bab
+ push hl
+ call PrintNum
+ pop hl
+ ld de, $0028
+ add hl, de
+ ret
+; 50bb5
+
+INCBIN "baserom.gbc", $50bb5, $50bdd - $50bb5
GetGender: ; 50bdd
@@ -52578,7 +56343,128 @@ GetGender: ; 50bdd
ret
; 50c50
-INCBIN "baserom.gbc", $50c50, $50d0a - $50c50
+Function50c50: ; 50c50
+ ld a, [$d0eb]
+ inc a
+ ld c, a
+ ld a, $4
+ sub c
+ ld b, a
+ push hl
+ ld a, [Buffer1]
+ ld e, a
+ ld d, $0
+ ld a, $3e
+ call Function50cc9
+ ld a, b
+ and a
+ jr z, .asm_50c6f
+ ld c, a
+ ld a, $e3
+ call Function50cc9
+
+.asm_50c6f
+ pop hl
+ inc hl
+ inc hl
+ inc hl
+ ld d, h
+ ld e, l
+ ld hl, TempMonMove1
+ ld b, $0
+.asm_50c7a
+ ld a, [hli]
+ and a
+ jr z, .asm_50cc8
+ push bc
+ push hl
+ push de
+ ld hl, $cfa9
+ ld a, [hl]
+ push af
+ ld [hl], b
+ push hl
+ callab Functionf8ec
+ pop hl
+ pop af
+ ld [hl], a
+ pop de
+ pop hl
+ push hl
+ ld bc, $0014
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld [$d077], a
+ ld h, d
+ ld l, e
+ push hl
+ ld de, $d077
+ ld bc, $0102
+ call PrintNum
+ ld a, $f3
+ ld [hli], a
+ ld de, $d265
+ ld bc, $0102
+ 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 $4
+ jr nz, .asm_50c7a
+
+.asm_50cc8
+ ret
+; 50cc9
+
+Function50cc9: ; 50cc9
+.asm_50cc9
+ ld [hli], a
+ ld [hld], a
+ add hl, de
+ dec c
+ jr nz, .asm_50cc9
+ ret
+; 50cd0
+
+INCBIN "baserom.gbc", $50cd0, $50cdb - $50cd0
+
+Function50cdb: ; 50cdb
+ push hl
+ push hl
+ ld hl, PartyMon1Nickname
+ ld a, [CurPartyMon]
+ call GetNick
+ pop hl
+ call PlaceString
+ call Function5084a
+ pop hl
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_50d09
+ push hl
+ ld bc, $fff4
+ add hl, bc
+ ld b, $0
+ call DrawEnemyHP
+ pop hl
+ ld bc, $0005
+ add hl, bc
+ push de
+ call PrintLevel
+ pop de
+
+.asm_50d09
+ ret
+; 50d0a
Function50d0a: ; 50d0a
@@ -52591,31 +56477,32 @@ Function50d0a: ; 50d0a
ld a, [de]
or b
pop de
- jr nz, .asm_50d2e
+ jr nz, Function50d2e
push de
- ld de, .data_50d21
- call $4d25
+ ld de, .string_50d21
+ call Function50d25
pop de
ld a, $1
and a
ret
-.data_50d21
- db $85
- db $8d
- db $93
- db $50
- db $1a
- db $13
- db $22
- db $1a
- db $13
- db $22
- db $1a
- db $77
- db $c9
+.string_50d21
+ db "カセト@"
+; 50d25
+
+Function50d25: ; 50d25
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ ret
+; 50d2e
-.asm_50d2e
+Function50d2e: ; 50d2e
push de
ld a, [de]
ld de, $4d5f
@@ -52644,7 +56531,117 @@ Function50d0a: ; 50d0a
ret
; 50d5b
-INCBIN "baserom.gbc", $50d5b, $50e1b - $50d5b
+INCBIN "baserom.gbc", $50d5b, $50d6f - $50d5b
+
+Function50d6f: ; 50d6f
+ ld de, $d25e
+ ld b, $0
+.asm_50d74
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_50da7
+ push de
+ push hl
+ push hl
+ ld [CurSpecies], a
+ ld a, $2
+ ld [$cf61], a
+ call GetName
+ ld de, StringBuffer1
+ pop hl
+ push bc
+ call PlaceString
+ pop bc
+ ld a, b
+ ld [$d0eb], 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 $4
+ jr z, .asm_50db8
+ jr .asm_50d74
+
+.asm_50da7
+ ld a, b
+.asm_50da8
+ push af
+ ld [hl], $e3
+ ld a, [Buffer1]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop af
+ inc a
+ cp $4
+ jr nz, .asm_50da8
+
+.asm_50db8
+ ret
+; 50db9
+
+Function50db9: ; 50db9
+ ld a, [$d263]
+ cp $1
+ jr nz, .asm_50dca
+ ld hl, OTPartyCount
+ ld de, OTPartyMon1OT
+ ld a, $6
+ jr .asm_50dfc
+
+.asm_50dca
+ cp $4
+ jr nz, .asm_50dd8
+ ld hl, PartyCount
+ ld de, PartyMon1OT
+ ld a, $5
+ jr .asm_50dfc
+
+.asm_50dd8
+ cp $5
+ jr nz, .asm_50de6
+ ld hl, CurMart
+ ld de, PokemonNames
+ ld a, $1
+ jr .asm_50dfc
+
+.asm_50de6
+ cp $2
+ jr nz, .asm_50df4
+ ld hl, NumItems
+ ld de, Function50000
+ ld a, $4
+ jr .asm_50dfc
+
+.asm_50df4
+ ld hl, CurMart
+ ld de, Function50000
+ ld a, $4
+
+.asm_50dfc
+ ld [$cf61], a
+ ld a, l
+ ld [LYOverrides], a
+ ld a, h
+ ld [$d101], a
+ ld a, e
+ ld [$d102], a
+ ld a, d
+ ld [$d103], a
+ ld bc, $67c1
+ ld a, c
+ ld [$d104], a
+ ld a, b
+ ld [$d105], a
+ ret
+; 50e1b
Function50e1b: ; 50e1b
@@ -52855,7 +56852,206 @@ GetUnownLetter: ; 51040
; 51077
-INCBIN "baserom.gbc", $51077, $511c5 - $51077
+Function51077: ; 51077
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call IsAPokemon
+ ret c
+ ld a, [rSVBK]
+ push af
+ call Function510a5
+ pop af
+ ld [rSVBK], a
+ ret
+; 5108b
+
+Function5108b: ; 5108b
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call IsAPokemon
+ ret c
+ ld a, [rSVBK]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ call Function510a5
+ call Function51103
+ pop af
+ ld [rSVBK], a
+ ret
+; 510a5
+
+Function510a5: ; 510a5
+ push de
+ call GetBaseData
+ ld a, [BasePicSize]
+ and $f
+ ld b, a
+ push bc
+ call Function510d7
+ ld a, $6
+ ld [rSVBK], a
+ ld a, b
+ ld de, $d800
+ call FarDecompress
+ pop bc
+ ld hl, Unkn1Pals
+ ld de, $d800
+ call Function512ab
+ pop hl
+ push hl
+ ld de, Unkn1Pals
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ pop hl
+ ret
+; 510d7
+
+Function510d7: ; 510d7
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr z, .asm_510e5
+ ld a, [CurPartySpecies]
+ ld d, $48
+ jr .asm_510ea
+
+.asm_510e5
+ ld a, [UnownLetter]
+ ld d, $49
+
+.asm_510ea
+ ld hl, Function50000
+ dec a
+ ld bc, $0006
+ call AddNTimes
+ ld a, d
+ call GetFarByte
+ call Function511c5
+ push af
+ inc hl
+ ld a, d
+ call GetFarHalfword
+ pop bc
+ ret
+; 51103
+
+Function51103: ; 51103
+ ld a, $1
+ ld [rVBK], a
+ push hl
+ ld de, Unkn1Pals
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ pop hl
+ ld de, $0310
+ add hl, de
+ push hl
+ ld a, $1
+ ld hl, BasePicSize
+ call GetFarWRAMByte
+ pop hl
+ and $f
+ ld de, $d990
+ ld c, $19
+ cp $5
+ jr z, .asm_5113b
+ ld de, $da40
+ ld c, $24
+ cp $6
+ jr z, .asm_5113b
+ ld de, $db10
+ ld c, $31
+
+.asm_5113b
+ push hl
+ push bc
+ call Function5114f
+ pop bc
+ pop hl
+ ld de, Unkn1Pals
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ xor a
+ ld [rVBK], a
+ ret
+; 5114f
+
+Function5114f: ; 5114f
+ ld hl, Unkn1Pals
+ swap c
+ ld a, c
+ and $f
+ ld b, a
+ ld a, c
+ and $f0
+ ld c, a
+ push bc
+ call Function512f2
+ pop bc
+.asm_51161
+ push bc
+ ld c, $0
+ call Function512f2
+ pop bc
+ dec b
+ jr nz, .asm_51161
+ ret
+; 5116c
+
+Function5116c: ; 5116c
+ ld a, [CurPartySpecies]
+ call IsAPokemon
+ ret c
+ ld a, [CurPartySpecies]
+ ld b, a
+ ld a, [UnownLetter]
+ ld c, a
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push de
+ ld hl, Function50000
+ ld a, b
+ ld d, $48
+ cp $c9
+ jr nz, .asm_51190
+ ld a, c
+ ld d, $49
+
+.asm_51190
+ dec a
+ ld bc, $0006
+ call AddNTimes
+ ld bc, $0003
+ add hl, bc
+ ld a, d
+ call GetFarByte
+ call Function511c5
+ push af
+ inc hl
+ ld a, d
+ call GetFarHalfword
+ ld de, Unkn1Pals
+ pop af
+ call FarDecompress
+ ld hl, Unkn1Pals
+ ld c, $24
+ call Function5127c
+ pop hl
+ ld de, Unkn1Pals
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+; 511c5
Function511c5: ; 511c5
@@ -52946,7 +57142,250 @@ DecompressPredef: ; 5125d
; 5127c
-INCBIN "baserom.gbc", $5127c, $51424 - $5127c
+Function5127c: ; 5127c
+ push de
+ push bc
+ ld a, [$c2c6]
+ and a
+ jr z, .asm_512a8
+ ld a, c
+ cp $31
+ ld de, $0310
+ jr z, .asm_51296
+ cp $24
+ ld de, $0240
+ jr z, .asm_51296
+ ld de, $0190
+
+.asm_51296
+ ld a, [hl]
+ ld b, $0
+ ld c, $8
+.asm_5129b
+ rra
+ rl b
+ dec c
+ jr nz, .asm_5129b
+ ld a, b
+ ld [hli], a
+ dec de
+ ld a, e
+ or d
+ jr nz, .asm_51296
+
+.asm_512a8
+ pop bc
+ pop de
+ ret
+; 512ab
+
+Function512ab: ; 512ab
+ ld a, b
+ cp $6
+ jr z, .asm_512bd
+ cp $5
+ jr z, .asm_512d2
+.asm_512b4
+ ld c, $70
+ call Function512f2
+ dec b
+ jr nz, .asm_512b4
+ ret
+
+.asm_512bd
+ ld c, $70
+ xor a
+ call Function512ed
+.asm_512c3
+ ld c, $10
+ xor a
+ call Function512ed
+ ld c, $60
+ call Function512f2
+ dec b
+ jr nz, .asm_512c3
+ ret
+
+.asm_512d2
+ ld c, $70
+ xor a
+ call Function512ed
+.asm_512d8
+ ld c, $20
+ xor a
+ call Function512ed
+ ld c, $50
+ call Function512f2
+ dec b
+ jr nz, .asm_512d8
+ ld c, $70
+ xor a
+ call Function512ed
+ ret
+; 512ed
+
+Function512ed: ; 512ed
+.asm_512ed
+ ld [hli], a
+ dec c
+ jr nz, .asm_512ed
+ ret
+; 512f2
+
+Function512f2: ; 512f2
+ ld a, [$c2c6]
+ and a
+ jr nz, .asm_512ff
+.asm_512f8
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_512f8
+ ret
+
+.asm_512ff
+ push bc
+.asm_51300
+ ld a, [de]
+ inc de
+ ld b, a
+ xor a
+ rr b
+ rla
+ rr b
+ rla
+ rr b
+ rla
+ rr b
+ rla
+ rr b
+ rla
+ rr b
+ rla
+ rr b
+ rla
+ rr b
+ rla
+ ld [hli], a
+ dec c
+ jr nz, .asm_51300
+ pop bc
+ ret
+; 51322
+
+Function51322: ; 51322
+ ld a, $1
+ call GetSRAMBank
+ ld hl, BoxCount
+ call Function513cb
+ ld a, [BoxCount]
+ dec a
+ ld [$d265], a
+ ld hl, BoxMon1Nickname
+ ld bc, $000b
+ ld de, DefaultFlypoint
+ call Function513e0
+ ld a, [BoxCount]
+ dec a
+ ld [$d265], a
+ ld hl, BoxMon1OT
+ ld bc, $000b
+ ld de, $d00d
+ call Function513e0
+ ld a, [BoxCount]
+ dec a
+ ld [$d265], a
+ ld hl, BoxMon1Species
+ ld bc, $0020
+ ld de, $d018
+ call Function513e0
+ ld hl, $d01a
+ ld de, TempMonMove1
+ ld bc, $0004
+ call CopyBytes
+ ld hl, $d02f
+ ld de, TempMonPP
+ ld bc, $0004
+ call CopyBytes
+ ld a, [CurPartyMon]
+ ld b, a
+ callba Functiondcb6
+ jp CloseSRAM
+; 5138b
+
+INCBIN "baserom.gbc", $5138b, $513cb - $5138b
+
+Function513cb: ; 513cb
+ inc [hl]
+ inc hl
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [CurPartySpecies]
+ ld c, a
+.asm_513d8
+ ld a, [hl]
+ ld [hl], c
+ inc hl
+ inc c
+ ld c, a
+ jr nz, .asm_513d8
+ ret
+; 513e0
+
+Function513e0: ; 513e0
+ push de
+ push hl
+ push bc
+ ld a, [$d265]
+ dec a
+ call AddNTimes
+ push hl
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+.asm_513ef
+ push bc
+ ld a, [$d265]
+ ld b, a
+ ld a, [CurPartyMon]
+ cp b
+ pop bc
+ jr z, .asm_51415
+ push hl
+ push de
+ push bc
+ call CopyBytes
+ pop bc
+ pop de
+ pop hl
+ push hl
+ ld a, l
+ sub c
+ ld l, a
+ ld a, h
+ sbc b
+ ld h, a
+ pop de
+ ld a, [$d265]
+ dec a
+ ld [$d265], a
+ jr .asm_513ef
+
+.asm_51415
+ pop bc
+ pop hl
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+ call CopyBytes
+ ret
+; 51424
BaseData:
INCLUDE "stats/base_stats.asm"
@@ -53518,7 +57957,7 @@ TrySurfStep: ; 801c0
jr c, .asm_801f1
call Function80341
- ld [CurFruit], a
+ ld [$d03f], a
and a
jr z, .asm_801f1
cp 2
@@ -53727,7 +58166,7 @@ CheckForcedMovementInput: ; 802cb
ld hl, .data_802e8
add hl, de
ld a, [CurInput]
- and BUTTON_A | BUTTON_B | SELECT | START
+ and A_BUTTON | B_BUTTON | SELECT | START
or [hl]
ld [CurInput], a
ret
@@ -54236,7 +58675,67 @@ Function84425: ; 84425
ret
; 8442c
-INCBIN "baserom.gbc", $8442c, $845d4 - $8442c
+INCBIN "baserom.gbc", $8442c, $84560 - $8442c
+
+Function84560: ; 84560
+ ld a, [$cf65]
+ push af
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ xor a
+ ld [hBGMapMode], a
+ call Function309d
+ callba Function16dac
+ ld a, $0
+ call Function84419
+ call Function30b4
+ call Function84742
+ ld a, $9
+ ld [$cf65], a
+.asm_84597
+ call Functiona57
+ call Function846f6
+ jr c, .asm_845c0
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_845c0
+ call Function84022
+ ld a, [$cf63]
+ cp $2
+ jr nc, .asm_845b5
+ ld a, $3
+ ld [$ca81], a
+
+.asm_845b5
+ call Function84757
+ call Function84785
+ call DelayFrame
+ jr .asm_84597
+
+.asm_845c0
+ pop af
+ ld [$ff9e], a
+ call Function84411
+ call Function30b4
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ pop af
+ ld [$cf65], a
+ ret
+; 845d4
Function845d4: ; 845d4
call Function845db
@@ -54280,7 +58779,112 @@ Function845db: ; 845db
ret
; 8461a
-INCBIN "baserom.gbc", $8461a, $846f6 - $8461a
+Function8461a: ; 8461a
+ ld a, [$cf65]
+ push af
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dc381
+ ld a, $10
+ call Function84419
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $8
+ ld [$cf65], a
+ call Function84742
+ call Function843f0
+ jr c, .asm_84671
+ call Function84411
+ ld c, $c
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dc47b
+ ld a, $3
+ call Function84419
+ ld a, $9
+ ld [$cf65], a
+ call Function84742
+ call Function843f0
+
+.asm_84671
+ pop af
+ ld [$ff9e], a
+ call Function84411
+ call Function84735
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [$cf65], a
+ ret
+; 84688
+
+Function84688: ; 84688
+ ld a, [$cf65]
+ push af
+ callba Function1dd709
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $10
+ call Function84419
+ call Function84742
+ ld a, $9
+ ld [$cf65], a
+ call Function843f0
+ jr c, .asm_846e2
+ call Function84411
+ ld c, $c
+ call DelayFrames
+ call Function309d
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dd7ae
+ ld a, $3
+ call Function84419
+ call Function30b4
+ call Function84742
+ ld a, $9
+ ld [$cf65], a
+ call Function843f0
+
+.asm_846e2
+ pop af
+ ld [$ff9e], a
+ call Function84411
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [$cf65], a
+ ret
+; 846f6
Function846f6: ; 846f6
ld a, [hJoyDown]
@@ -54333,10 +58937,17 @@ Function84735: ; 84735
ret
; 84742
-INCBIN "baserom.gbc", $84742, $8474c - $84742
+Function84742: ; 84742
+ xor a
+ ld [hJoyReleased], a
+ ld [hJoyPressed], a
+ ld [hJoyDown], a
+ ld [$ffa9], a
+ ret
+; 8474c
Function8474c: ; 8474c
- ld de, $005b
+ ld de, MUSIC_PRINTER
call StartMusic2
ret
; 84753
@@ -55183,7 +59794,358 @@ Function86810: ; 86810
SECTION "bank22",ROMX,BANK[$22]
-INCBIN "baserom.gbc", $88000, $88258 - $88000
+Function88000: ; 88000
+ ld hl, $4007
+ call PrintText
+ ret
+; 88007
+
+INCBIN "baserom.gbc", $88007, $8800c - $88007
+
+Function8800c: ; 8800c
+ ld hl, $4013
+ call PrintText
+ ret
+; 88013
+
+INCBIN "baserom.gbc", $88013, $88018 - $88013
+
+Function88018: ; 88018
+ call Function1d6e
+ ld c, $1
+ xor a
+ ld [$d0e4], a
+ ld [$dca4], a
+.asm_88024
+ push bc
+ call Function88000
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ call Function88055
+ ld a, c
+ ld [ScriptVar], a
+ and a
+ jr z, .asm_88051
+ ld [CurItem], a
+ ld a, [$cfa9]
+ ld c, a
+ push bc
+ call Function8800c
+ call Function880c2
+ pop bc
+ jr nc, .asm_88024
+ ld a, [$d10c]
+ ld [$dca4], a
+ call Function88161
+
+.asm_88051
+ call Function1d7d
+ ret
+; 88055
+
+Function88055: ; 88055
+ callba Function24c64
+ jr c, .asm_88083
+ ld hl, $4086
+ call Function1d3c
+ ld a, [MenuSelection]
+ ld [$cf88], a
+ xor a
+ ld [hBGMapMode], a
+ call Function352f
+ call Function1ad2
+ call Function350c
+ ld a, [$cf73]
+ cp $2
+ jr z, .asm_88083
+ ld a, [MenuSelection]
+ cp $ff
+ jr nz, .asm_88084
+
+.asm_88083
+ xor a
+
+.asm_88084
+ ld c, a
+ ret
+; 88086
+
+INCBIN "baserom.gbc", $88086, $880c2 - $88086
+
+Function880c2: ; 880c2
+ ld a, [CurItem]
+ ld [MenuSelection], a
+ call Function88139
+ jr z, .asm_88109
+ ld a, [$d10c]
+ ld [$d10d], a
+ ld a, $1
+ ld [$d10c], a
+ ld hl, $410d
+ call LoadMenuDataHeader
+.asm_880de
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function1ad2
+ call Function88116
+ call Function88126
+ call Function321c
+ callba Function27a28
+ jr nc, .asm_880de
+ push bc
+ call PlayClickSFX
+ pop bc
+ ld a, b
+ cp $ff
+ jr z, .asm_88109
+ ld a, [$d10c]
+ ld [$d10c], a
+ scf
+
+.asm_88109
+ call Function1c17
+ ret
+; 8810d
+
+INCBIN "baserom.gbc", $8810d, $88116 - $8810d
+
+Function88116: ; 88116
+ call Function1cfd
+ ld de, $0015
+ add hl, de
+ ld d, h
+ ld e, l
+ callba Function24ab4
+ ret
+; 88126
+
+Function88126: ; 88126
+ call Function1cfd
+ ld de, $0032
+ add hl, de
+ ld [hl], $f1
+ inc hl
+ ld de, $d10c
+ ld bc, $8102
+ jp PrintNum
+; 88139
+
+Function88139: ; 88139
+ push bc
+ ld hl, NumItems
+ ld a, [CurItem]
+ ld c, a
+ ld b, $0
+.asm_88143
+ inc hl
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_88153
+ cp c
+ jr nz, .asm_88143
+ ld a, [hl]
+ add b
+ ld b, a
+ jr nc, .asm_88143
+ ld b, $ff
+
+.asm_88153
+ ld a, b
+ sub $63
+ jr c, .asm_8815a
+ ld b, $63
+
+.asm_8815a
+ ld a, b
+ ld [$d10c], a
+ and a
+ pop bc
+ ret
+; 88161
+
+Function88161: ; 88161
+ push de
+ push bc
+ ld hl, NumItems
+ ld a, [CurItem]
+ ld c, a
+ ld e, $0
+ xor a
+ ld [$d107], a
+ ld a, $ff
+ ld [DefaultFlypoint], a
+.asm_88175
+ ld a, [$d107]
+ inc a
+ ld [$d107], a
+ inc hl
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_88198
+ cp c
+ jr nz, .asm_88175
+ ld d, $0
+ push hl
+ ld hl, DefaultFlypoint
+ add hl, de
+ inc e
+ ld a, [$d107]
+ dec a
+ ld [hli], a
+ ld a, $ff
+ ld [hl], a
+ pop hl
+ jr .asm_88175
+
+.asm_88198
+ ld a, e
+ and a
+ jr z, .asm_881fa
+ dec a
+ jr z, .asm_881d0
+ ld hl, DefaultFlypoint
+.asm_881a2
+ ld a, [hl]
+ ld c, a
+ push hl
+.asm_881a5
+ inc hl
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_881c9
+ ld b, a
+ ld a, c
+ call Function88201
+ ld e, a
+ ld a, b
+ call Function88201
+ sub e
+ jr z, .asm_881bc
+ jr c, .asm_881c0
+ jr .asm_881a5
+
+.asm_881bc
+ ld a, c
+ sub b
+ jr nc, .asm_881a5
+
+.asm_881c0
+ ld a, c
+ ld c, b
+ ld [hl], a
+ ld a, c
+ pop hl
+ ld [hl], a
+ push hl
+ jr .asm_881a5
+
+.asm_881c9
+ pop hl
+ inc hl
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_881a2
+
+.asm_881d0
+ ld hl, DefaultFlypoint
+.asm_881d3
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_881fa
+ push hl
+ ld [$d107], a
+ call Function88211
+ pop hl
+ ld a, [$d10c]
+ and a
+ jr z, .asm_881fa
+ push hl
+ ld a, [hli]
+ ld c, a
+.asm_881e9
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_881f6
+ cp c
+ jr c, .asm_881e9
+ dec a
+ dec hl
+ ld [hli], a
+ jr .asm_881e9
+
+.asm_881f6
+ pop hl
+ inc hl
+ jr .asm_881d3
+
+.asm_881fa
+ ld a, [$d10c]
+ and a
+ pop bc
+ pop de
+ ret
+; 88201
+
+Function88201: ; 88201
+ push hl
+ push bc
+ ld hl, NumItems
+ inc hl
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ inc hl
+ ld a, [hl]
+ pop bc
+ pop hl
+ ret
+; 88211
+
+Function88211: ; 88211
+ push bc
+ ld hl, NumItems
+ ld a, [$d107]
+ ld c, a
+ ld b, $0
+ inc hl
+ add hl, bc
+ add hl, bc
+ ld a, [CurItem]
+ ld c, a
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_88243
+ cp c
+ jr nz, .asm_88243
+ ld a, [$d10c]
+ ld c, a
+ ld a, [hl]
+ sub c
+ ld b, c
+ jr nc, .asm_88235
+ add c
+ ld b, a
+
+.asm_88235
+ push bc
+ ld hl, NumItems
+ ld a, b
+ ld [$d10c], a
+ call TossItem
+ pop bc
+ ld a, c
+ sub b
+
+.asm_88243
+ ld [$d10c], a
+ pop bc
+ ret
+; 88248
+
+INCBIN "baserom.gbc", $88248, $88258 - $88248
MovePlayerPicRight: ; 88258
hlcoord 6, 4
@@ -55421,7 +60383,712 @@ GetKrisBackpic: ; 88ec9
KrisBackpic: ; 88ed6
-INCBIN "baserom.gbc", $88ed6, $896ff - $88ed6
+INCBIN "baserom.gbc", $88ed6, $89160 - $88ed6
+
+Function89160: ; 89160
+ push af
+ ld a, $4
+ call GetSRAMBank
+ pop af
+ ret
+; 89168
+
+INCBIN "baserom.gbc", $89168, $89193 - $89168
+
+Function89193: ; 89193
+ push de
+ push hl
+.asm_89195
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_89195
+ pop hl
+ pop de
+ ret
+; 8919e
+
+INCBIN "baserom.gbc", $8919e, $891ab - $8919e
+
+Function891ab: ; 891ab
+ call Function89240
+ callba Function104061
+ call Function8923c
+ ret
+; 891b8
+
+Function891b8: ; 891b8
+ call Function8923c
+ ld hl, TileMap
+ ld a, $7f
+ ld bc, $0168
+ call ByteFill
+ call DelayFrame
+ ret
+; 891ca
+
+INCBIN "baserom.gbc", $891ca, $891de - $891ca
+
+Function891de: ; 891de
+ call Function8923c
+ call ClearPalettes
+ ld hl, AttrMap
+ ld a, $7
+ ld bc, $0168
+ call ByteFill
+ ld hl, TileMap
+ ld a, $7f
+ ld bc, $0168
+ 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 [$c2ce], a
+ ret
+; 8920f
+
+Function8920f: ; 8920f
+ ld a, $0
+ ld [$c2ce], a
+ ret
+; 89215
+
+Function89215: ; 89215
+ push hl
+ push bc
+ ld bc, $0939
+ add hl, bc
+ ld [hl], a
+ pop bc
+ pop hl
+ ret
+; 8921f
+
+INCBIN "baserom.gbc", $8921f, $8923c - $8921f
+
+Function8923c: ; 8923c
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 89240
+
+Function89240: ; 89240
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 89245
+
+INCBIN "baserom.gbc", $89245, $89259 - $89245
+
+Function89259: ; 89259
+ ld bc, $0e07
+ jr Function89261
+
+Function8925e: ; 8925e
+ ld bc, $0e0c
+
+Function89261: ; 89261
+ push af
+ push bc
+ ld hl, $52a3
+ call Function1d3c
+ pop bc
+ ld hl, $cf82
+ 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 [$cf88], a
+ call Function1c00
+ call Function8923c
+ call Function89209
+ call Function1d81
+ push af
+ ld c, $a
+ call DelayFrames
+ call Function1c17
+ call Function8920f
+ pop af
+ jr c, .asm_892a1
+ ld a, [$cfa9]
+ cp $2
+ jr z, .asm_892a1
+ and a
+ ret
+
+.asm_892a1
+ scf
+ ret
+; 892a3
+
+INCBIN "baserom.gbc", $892a3, $892b7 - $892a3
+
+Function892b7: ; 892b7
+ ld d, b
+ ld e, c
+ ld hl, $0000
+ add hl, bc
+ ld a, $50
+ ld bc, $0006
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld hl, $0006
+ add hl, bc
+ ld a, $50
+ ld bc, $0006
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld hl, $000c
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $000e
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ld hl, $0010
+ add hl, bc
+ ld [hl], a
+ ld hl, $0011
+ add hl, bc
+ ld a, $ff
+ ld bc, $0008
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld e, $6
+ ld hl, $0019
+ add hl, bc
+.asm_892fb
+ ld a, $ff
+ ld [hli], a
+ ld a, $ff
+ ld [hli], a
+ dec e
+ jr nz, .asm_892fb
+ ret
+; 89305
+
+INCBIN "baserom.gbc", $89305, $8931b - $89305
+
+Function8931b: ; 8931b
+ push hl
+ ld hl, $a03b
+ ld a, [MenuSelection]
+ dec a
+ ld bc, $0025
+ call AddNTimes
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 8932d
+
+Function8932d: ; 8932d
+ ld hl, $0000
+ add hl, bc
+
+Function89331: ; 89331
+ push bc
+ ld c, $5
+.asm_89334
+ ld a, [hli]
+ cp $50
+ jr z, .asm_89340
+ cp $7f
+ jr nz, .asm_89343
+ dec c
+ jr nz, .asm_89334
+
+.asm_89340
+ scf
+ jr .asm_89344
+
+.asm_89343
+ and a
+
+.asm_89344
+ pop bc
+ ret
+; 89346
+
+INCBIN "baserom.gbc", $89346, $8934a - $89346
+
+Function8934a: ; 8934a
+ ld hl, $0006
+ add hl, bc
+ push bc
+ ld c, $5
+.asm_89351
+ ld a, [hli]
+ cp $50
+ jr z, .asm_8935d
+ cp $7f
+ jr nz, .asm_89360
+ dec c
+ jr nz, .asm_89351
+
+.asm_8935d
+ scf
+ jr .asm_89361
+
+.asm_89360
+ and a
+
+.asm_89361
+ pop bc
+ ret
+; 89363
+
+Function89363: ; 89363
+ ld h, b
+ ld l, c
+ jr .asm_8936b
+
+ ld hl, $0019
+ add hl, bc
+
+.asm_8936b
+ push de
+ ld e, $6
+.asm_8936e
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_8937e
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_8937e
+ dec e
+ jr nz, .asm_8936e
+ scf
+ jr .asm_8937f
+
+.asm_8937e
+ and a
+
+.asm_8937f
+ pop de
+ ret
+; 89381
+
+Function89381: ; 89381
+ push bc
+ push de
+ call Function89b45
+ jr c, .asm_89392
+ push hl
+ ld a, $ff
+ ld bc, $0008
+ call ByteFill
+ pop hl
+
+.asm_89392
+ pop de
+ ld c, $8
+ call Function89193
+ pop bc
+ ret
+; 8939a
+
+Function8939a: ; 8939a
+ push bc
+ ld hl, $0000
+ add hl, bc
+ ld de, DefaultFlypoint
+ ld c, $6
+ call Function89193
+ pop bc
+ ld hl, $0011
+ add hl, bc
+ ld de, $d008
+ call Function89381
+ ret
+; 893b3
+
+INCBIN "baserom.gbc", $893b3, $893cc - $893b3
+
+Function893cc: ; 893cc
+ call DisableLCD
+ call ClearSprites
+ call Functione51
+ call Functione5f
+ call Function893ef
+ call Function89464
+ call EnableLCD
+ ret
+; 893e2
+
+INCBIN "baserom.gbc", $893e2, $893ef - $893e2
+
+Function893ef: ; 893ef
+ ld de, VTiles0
+ ld hl, $540b
+ ld bc, $0020
+ ld a, $22
+ call FarCopyBytes
+ ret
+; 893fe
+
+INCBIN "baserom.gbc", $893fe, $89464 - $893fe
+
+Function89464: ; 89464
+ ld hl, $59ef
+ ld de, VTiles2
+ ld bc, $0200
+ ld a, $5e
+ call FarCopyBytes
+ ld hl, $604f
+ ld de, $9200
+ ld bc, $0170
+ ld a, $5e
+ call FarCopyBytes
+ ret
+; 89481
+
+Function89481: ; 89481
+ ld d, $2
+ call Function8934a
+ ret c
+ ld d, $0
+ ld hl, $0010
+ add hl, bc
+ bit 0, [hl]
+ ret z
+ inc d
+ ret
+; 89492
+
+INCBIN "baserom.gbc", $89492, $8949c - $89492
+
+Function8949c: ; 8949c
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $54b3
+ ld de, $d038
+ ld bc, $0008
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 894b3
+
+INCBIN "baserom.gbc", $894b3, $894bb - $894b3
+
+Function894bb: ; 894bb
+ call Function894dc
+ push bc
+ call Function8956f
+ call Function8949c
+ call Function8a60d
+ pop bc
+ ret
+; 894ca
+
+INCBIN "baserom.gbc", $894ca, $894dc - $894ca
+
+Function894dc: ; 894dc
+ push bc
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld c, d
+ ld b, $0
+ ld hl, $5509
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Unkn1Pals
+ ld bc, $0018
+ call CopyBytes
+ ld hl, $5557
+ ld de, $d018
+ ld bc, $0018
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ pop bc
+ ret
+; 89509
+
+INCBIN "baserom.gbc", $89509, $8956f - $89509
+
+Function8956f: ; 8956f
+ 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 Function4e929
+ ld a, c
+ ld [TrainerClass], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d030
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ 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, $70ce
+ add hl, de
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, $d032
+ ld c, $4
+.asm_895b1
+ ld a, $2
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+ dec c
+ jr nz, .asm_895b1
+ ld hl, $d036
+ xor a
+ ld [hli], a
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ pop bc
+ ret
+; 895c7
+
+INCBIN "baserom.gbc", $895c7, $895f2 - $895c7
+
+Function895f2: ; 895f2
+ push bc
+ xor a
+ ld hl, AttrMap
+ ld bc, $0168
+ call ByteFill
+ call Function89605
+ call Function89655
+ pop bc
+ ret
+; 89605
+
+Function89605: ; 89605
+ ld hl, $ce14
+ ld a, $1
+ ld de, $0014
+ ld c, $e
+.asm_8960f
+ ld [hl], a
+ dec c
+ jr z, .asm_8961b
+ add hl, de
+ inc a
+ ld [hl], a
+ dec a
+ add hl, de
+ dec c
+ jr nz, .asm_8960f
+
+.asm_8961b
+ ld hl, $cf19
+ ld c, $a
+ ld a, $2
+.asm_89622
+ ld [hli], a
+ dec a
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_89622
+ ld hl, $ceb6
+ ld a, $4
+ ld bc, $0004
+ call ByteFill
+ ld a, $5
+ ld bc, $000e
+ call ByteFill
+ ret
+; 8963d
+
+Function8963d: ; 8963d
+ ld hl, $ce21
+ ld a, $6
+ ld de, $0014
+ ld bc, $0707
+.asm_89648
+ push hl
+ ld c, $7
+.asm_8964b
+ ld [hli], a
+ dec c
+ jr nz, .asm_8964b
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_89648
+ ret
+; 89655
+
+Function89655: ; 89655
+ ld hl, $ceca
+ ld de, $0014
+ ld a, $5
+ ld b, $4
+.asm_8965f
+ ld c, $12
+ push hl
+.asm_89662
+ ld [hli], a
+ dec c
+ jr nz, .asm_89662
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_8965f
+ ret
+; 8966c
+
+Function8966c: ; 8966c
+ push bc
+ call Function89688
+ ld hl, $c4a4
+ ld c, $8
+ call Function896f5
+ pop bc
+ ret
+; 8967a
+
+INCBIN "baserom.gbc", $8967a, $89688 - $8967a
+
+Function89688: ; 89688
+ ld hl, TileMap
+ ld a, $1
+ ld e, $14
+ call Function896e1
+ ld a, $2
+ ld e, $14
+ call Function896eb
+ ld a, $3
+ ld [hli], a
+ ld a, $4
+ ld e, $12
+ call Function896e1
+ ld a, $6
+ ld [hli], a
+ push bc
+ ld c, $d
+.asm_896a9
+ call Function896cb
+ dec c
+ jr z, .asm_896b5
+ call Function896d6
+ dec c
+ jr nz, .asm_896a9
+
+.asm_896b5
+ pop bc
+ ld a, $19
+ ld [hli], a
+ ld a, $1a
+ ld e, $12
+ call Function896e1
+ ld a, $1c
+ ld [hli], a
+ ld a, $2
+ ld e, $14
+ call Function896eb
+ ret
+; 896cb
+
+Function896cb: ; 896cb
+ ld de, $0013
+ ld a, $7
+ ld [hl], a
+ add hl, de
+ ld a, $9
+ ld [hli], a
+ ret
+; 896d6
+
+Function896d6: ; 896d6
+ ld de, $0013
+ ld a, $a
+ ld [hl], a
+ add hl, de
+ ld a, $b
+ ld [hli], a
+ ret
+; 896e1
+
+Function896e1: ; 896e1
+.asm_896e1
+ ld [hli], a
+ inc a
+ dec e
+ ret z
+ ld [hli], a
+ dec a
+ dec e
+ jr nz, .asm_896e1
+ ret
+; 896eb
+
+Function896eb: ; 896eb
+.asm_896eb
+ ld [hli], a
+ dec a
+ dec e
+ ret z
+ ld [hli], a
+ inc a
+ dec e
+ jr nz, .asm_896eb
+ ret
+; 896f5
+
+Function896f5: ; 896f5
+ call Function8971f
+ call Function89736
+ inc hl
+ inc hl
+ ld b, 2
ClearScreenArea: ; 0x896ff
; clears an area of the screen
@@ -55460,7 +61127,827 @@ ClearScreenArea: ; 0x896ff
ret
; 0x8971f
-INCBIN "baserom.gbc", $8971f, $8addb - $8971f
+Function8971f: ; 8971f
+ ld a, $2c
+ ld [hli], a
+ ld a, $2d
+ ld [hld], a
+ push hl
+ ld de, $0014
+ 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, $0014
+ 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, $0014
+ 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 Function4e929
+ ld a, c
+ ld [TrainerClass], a
+ xor a
+ ld [CurPartySpecies], a
+ ld de, $9370
+ callba Function5120d
+ pop bc
+ ret
+; 897d5
+
+Function897d5: ; 897d5
+ push bc
+ call Function8934a
+ jr nc, .asm_897f3
+ ld hl, $ce21
+ xor a
+ ld de, $0014
+ ld bc, $0707
+.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 [$ffad], a
+ ld hl, $c4e8
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ call Function8963d
+ pop bc
+ ret
+; 89807
+
+INCBIN "baserom.gbc", $89807, $89844 - $89807
+
+Function89844: ; 89844
+ call Function89481
+ call Function894bb
+ call Function897af
+ push bc
+ call Function3200
+ call Function32f9
+ 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, $d008
+ ld hl, $c56a
+ call Function89975
+ pop bc
+ call Function897d5
+ ret
+; 8987f
+
+INCBIN "baserom.gbc", $8987f, $898aa - $8987f
+
+Function898aa: ; 898aa
+ ld a, [MenuSelection]
+ and a
+ ret z
+ push bc
+ ld hl, $c4ba
+ ld de, MenuSelection
+ ld bc, $8102
+ call PrintNum
+ pop bc
+ ret
+; 898be
+
+Function898be: ; 898be
+ push bc
+ ld de, DefaultFlypoint
+ ld hl, DefaultFlypoint
+ call Function89331
+ jr nc, .asm_898cd
+ ld de, $5116
+
+.asm_898cd
+ ld hl, $c4bd
+ 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, $5116
+
+.asm_898eb
+ ld hl, $c4f6
+ 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
+ ld hl, $c509
+ ld bc, $8205
+ call PrintNum
+ jr .asm_89913
+
+.asm_8990a
+ ld hl, $c509
+ ld de, $5116
+ call PlaceString
+
+.asm_89913
+ pop bc
+ ret
+; 89915
+
+Function89915: ; 89915
+ push bc
+ push hl
+ ld de, $5942
+ 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, $594a
+.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
+
+INCBIN "baserom.gbc", $89942, $8994e - $89942
+
+Function8994e: ; 8994e
+ push hl
+ push de
+ ld de, $0014
+ 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
+
+INCBIN "baserom.gbc", $8999c, $899d3 - $8999c
+
+Function899d3: ; 899d3
+ ld hl, $c4f1
+ call Function89753
+ ld hl, $c506
+ call Function8975b
+ ld hl, $c555
+ call Function89771
+ ld hl, $c57d
+ call Function8977a
+ ld hl, $c505
+ call Function89797
+ ld hl, $c4f2
+ call Function89962
+ ld hl, $c556
+ 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, $5153
+ call PlaceString
+ ret
+; 89a23
+
+INCBIN "baserom.gbc", $89a23, $89a57 - $89a23
+
+Function89a57: ; 89a57
+ call Function354b
+ bit 6, c
+ jr nz, .asm_89a78
+ bit 7, c
+ jr nz, .asm_89a81
+ bit 0, c
+ jr nz, .asm_89a70
+ bit 1, c
+ jr nz, .asm_89a70
+ bit 3, c
+ jr nz, .asm_89a74
+ scf
+ ret
+
+.asm_89a70
+ ld a, $1
+ and a
+ ret
+
+.asm_89a74
+ ld a, $2
+ and a
+ ret
+
+.asm_89a78
+ call Function89a9b
+ call nc, Function89a8a
+ ld a, $0
+ ret
+
+.asm_89a81
+ call Function89a93
+ call nc, Function89a8a
+ ld a, $0
+ ret
+; 89a8a
+
+Function89a8a: ; 89a8a
+ push af
+ ld de, $0062
+ call StartSFX
+ pop af
+ ret
+; 89a93
+
+Function89a93: ; 89a93
+ ld d, $28
+ ld e, $1
+ call Function89aa3
+ ret
+; 89a9b
+
+Function89a9b: ; 89a9b
+ ld d, $1
+ ld e, $ff
+ call Function89aa3
+ ret
+; 89aa3
+
+Function89aa3: ; 89aa3
+ ld a, [MenuSelection]
+ ld c, a
+ push bc
+.asm_89aa8
+ ld a, [MenuSelection]
+ cp d
+ jr z, .asm_89ac0
+ add e
+ jr nz, .asm_89ab2
+ inc a
+
+.asm_89ab2
+ ld [MenuSelection], a
+ call Function89ac7
+ jr nc, .asm_89aa8
+ call Function89ae6
+ pop bc
+ and a
+ ret
+
+.asm_89ac0
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ scf
+ ret
+; 89ac7
+
+Function89ac7: ; 89ac7
+ call Function89160
+ call Function8931b
+ call Function89ad4
+ call CloseSRAM
+ ret
+; 89ad4
+
+Function89ad4: ; 89ad4
+ push de
+ call Function8932d
+ jr c, .asm_89ae3
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ jr c, .asm_89ae4
+
+.asm_89ae3
+ and a
+
+.asm_89ae4
+ pop de
+ ret
+; 89ae6
+
+Function89ae6: ; 89ae6
+ ld hl, $d031
+ xor a
+ ld [hl], a
+ ld a, [MenuSelection]
+.asm_89aee
+ cp $6
+ jr c, .asm_89afc
+ sub $5
+ ld c, a
+ ld a, [hl]
+ add $5
+ ld [hl], a
+ ld a, c
+ jr .asm_89aee
+
+.asm_89afc
+ ld [$d030], a
+ ret
+; 89b00
+
+INCBIN "baserom.gbc", $89b00, $89b45 - $89b00
+
+Function89b45: ; 89b45
+ push hl
+ push bc
+ ld c, $10
+ ld e, $0
+.asm_89b4b
+ ld a, [hli]
+ ld b, a
+ and $f
+ cp $a
+ jr c, .asm_89b5a
+ ld a, c
+ cp $b
+ jr nc, .asm_89b74
+ jr .asm_89b71
+
+.asm_89b5a
+ dec c
+ swap b
+ inc e
+ ld a, b
+ and $f
+ cp $a
+ jr c, .asm_89b6c
+ ld a, c
+ cp $b
+ jr nc, .asm_89b74
+ jr .asm_89b71
+
+.asm_89b6c
+ inc e
+ dec c
+ jr nz, .asm_89b4b
+ dec e
+
+.asm_89b71
+ scf
+ jr .asm_89b75
+
+.asm_89b74
+ and a
+
+.asm_89b75
+ pop bc
+ pop hl
+ ret
+; 89b78
+
+INCBIN "baserom.gbc", $89b78, $8a60d - $89b78
+
+Function8a60d: ; 8a60d
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $6624
+ ld de, Unkn2Pals
+ ld bc, $0008
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 8a624
+
+INCBIN "baserom.gbc", $8a624, $8ac4e - $8a624
+
+Function8ac4e: ; 8ac4e
+ xor a
+ ld [MenuSelection], a
+ push de
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ pop bc
+ call Function89844
+ call Function8939a
+ call Function89856
+ ld hl, $c5a5
+ 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 [$d02f], a
+ ld [MenuSelection], a
+ call Function89160
+ call Function8931b
+ call Function8932d
+ call CloseSRAM
+ jr nc, .asm_8acb0
+ call Function89160
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ call CloseSRAM
+ jr nc, .asm_8accc
+ call Function89160
+ call Function892b7
+ call CloseSRAM
+ jr .asm_8accc
+
+.asm_8acb0
+ call Function8ad0b
+ jr c, Function8ac76
+ and a
+ jr nz, .asm_8accc
+ call Function89160
+ 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 Function89160
+ 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 Functione51
+ ld a, [$d02f]
+ ld c, a
+ and a
+ ret
+
+.asm_8acf0
+ ld hl, $6d06
+ call PrintText
+ ld a, $2
+ call Function89259
+ jp c, Function8ac7c
+ call Functione51
+ pop de
+ ld c, $0
+ scf
+ ret
+; 8ad06
+
+INCBIN "baserom.gbc", $8ad06, $8ad0b - $8ad06
+
+Function8ad0b: ; 8ad0b
+.asm_8ad0b
+ ld a, [MenuSelection]
+ ld [$d02f], a
+ call Function891de
+ call WhiteBGMap
+ call Function893cc
+ call Function89160
+ call Function8931b
+ push bc
+ call Function89844
+ call Function8939a
+ call Function89856
+ ld hl, $c5a5
+ 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 Function8923c
+ push bc
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld de, $6d89
+ ld hl, $c5b9
+ call PlaceString
+ ld a, $2
+ call Function8925e
+ jr c, .asm_8ad87
+ call Function8923c
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld de, $6d9c
+ ld hl, $c5b9
+ 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
+
+INCBIN "baserom.gbc", $8ad89, $8addb - $8ad89
SpecialHoOhChamber: ; 0x8addb
ld hl, PartySpecies
@@ -55487,7 +61974,7 @@ Function8adef: ; 8adef
ld a, WATER_STONE
ld [CurItem], a
ld hl, NumItems
- call PickUpItem
+ call CheckItem
jr c, .asm_8ae24
ld a, [PartyCount]
@@ -55567,7 +62054,373 @@ Function8ae4e: ; 8ae4e
ret
; 8ae68
-INCBIN "baserom.gbc", $8ae68, $8b170 - $8ae68
+Function8ae68: ; 8ae68
+ ld a, [ScriptVar]
+ ld hl, $6ed5
+ and a
+ jr z, .asm_8ae79
+ ld d, $0
+ ld e, $5
+.asm_8ae75
+ add hl, de
+ dec a
+ jr nz, .asm_8ae75
+
+.asm_8ae79
+ call LoadMenuDataHeader
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function1ad2
+ call Function321c
+ call Function1cfd
+ inc hl
+ ld d, $0
+ ld e, $14
+ add hl, de
+ add hl, de
+ ld a, [ScriptVar]
+ ld c, a
+ ld de, $6ebc
+ and a
+ jr z, .asm_8aea5
+.asm_8ae9c
+ ld a, [de]
+ inc de
+ cp $ff
+ jr nz, .asm_8ae9c
+ dec c
+ jr nz, .asm_8ae9c
+
+.asm_8aea5
+ call Function8af09
+ ld bc, $0939
+ add hl, bc
+ call Function8aee9
+ call Function3200
+ call Functiona36
+ call PlayClickSFX
+ call Function1c17
+ ret
+; 8aebc
+
+INCBIN "baserom.gbc", $8aebc, $8aee9 - $8aebc
+
+Function8aee9: ; 8aee9
+.asm_8aee9
+ ld a, [de]
+ cp $ff
+ ret z
+ cp $60
+ ld a, $d
+ jr c, .asm_8aef5
+ ld a, $5
+
+.asm_8aef5
+ call Function8aefd
+ inc hl
+ inc hl
+ inc de
+ jr .asm_8aee9
+; 8aefd
+
+Function8aefd: ; 8aefd
+ push hl
+ ld [hli], a
+ ld [hld], a
+ ld b, $0
+ ld c, $14
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ ret
+; 8af09
+
+Function8af09: ; 8af09
+ push hl
+ push de
+.asm_8af0b
+ ld a, [de]
+ cp $ff
+ jr z, .asm_8af19
+ ld c, a
+ call Function8af1c
+ inc hl
+ inc hl
+ inc de
+ jr .asm_8af0b
+
+.asm_8af19
+ pop de
+ pop hl
+ ret
+; 8af1c
+
+Function8af1c: ; 8af1c
+ push hl
+ ld a, c
+ cp $60
+ jr z, .asm_8af3b
+ cp $62
+ jr z, .asm_8af4b
+ cp $64
+ jr z, .asm_8af5b
+ ld [hli], a
+ inc a
+ ld [hld], a
+ dec a
+ ld b, $0
+ ld c, $14
+ add hl, bc
+ ld c, $10
+ add c
+ ld [hli], a
+ inc a
+ ld [hl], a
+ pop hl
+ ret
+
+.asm_8af3b
+ ld [hl], $5b
+ inc hl
+ ld [hl], $5c
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $4d
+ inc hl
+ ld [hl], $5d
+ pop hl
+ ret
+
+.asm_8af4b
+ ld [hl], $4e
+ inc hl
+ ld [hl], $4f
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $5e
+ inc hl
+ ld [hl], $5f
+ pop hl
+ ret
+
+.asm_8af5b
+ ld [hl], $2
+ inc hl
+ ld [hl], $3
+ ld bc, $0013
+ add hl, bc
+ ld [hl], $3
+ inc hl
+ ld [hl], $2
+ pop hl
+ ret
+; 8af6b
+
+Function8af6b: ; 8af6b
+ xor a
+ ld [$cf76], a
+ ld hl, $6fa9
+ call Function1d3c
+ ld a, [$dc4a]
+ ld c, a
+ callba Functionb8f8f
+ ld a, [$cf83]
+ add c
+ add $2
+ ld [$cf85], a
+ call Function1c00
+ call Function1e5d
+ callba Function4ae5e
+ ld b, $0
+ ld a, [MenuSelection]
+ ld c, a
+ ld a, [$dc4a]
+ and $3
+ cp c
+ jr nz, .asm_8afa4
+ ld b, $1
+
+.asm_8afa4
+ ld a, b
+ ld [ScriptVar], a
+ ret
+; 8afa9
+
+INCBIN "baserom.gbc", $8afa9, $8afd4 - $8afa9
+
+Function8afd4: ; 8afd4
+ xor a
+ ld [$d0e4], a
+ ld a, $1
+ ld [MenuSelection], a
+ call Function8b0d6
+ call Function8b090
+ ld hl, $7072
+ call PrintText
+ jr .asm_8aff1
+
+.asm_8afeb
+ ld hl, $7072
+ call Function105a
+
+.asm_8aff1
+ call DelayFrame
+ call Function1ad2
+ call Function8b097
+ call Function8b0e2
+ jr z, .asm_8b05f
+ ld [$cf75], a
+ call Function8b154
+ ld a, [hl]
+ ld [$d265], a
+ call GetItemName
+ ld hl, $7077
+ call Function105a
+ call Function1dcf
+ jr c, .asm_8afeb
+ ld a, [$cf75]
+ call Function8b154
+ inc hl
+ ld a, [hld]
+ ld c, a
+ ld a, [$dc4b]
+ cp c
+ jr c, .asm_8b047
+ ld a, [hli]
+ push hl
+ ld [CurItem], a
+ ld a, $1
+ ld [$d10c], a
+ ld hl, NumItems
+ call ReceiveItem
+ pop hl
+ jr nc, .asm_8b04c
+ ld a, [hl]
+ ld c, a
+ ld a, [$dc4b]
+ sub c
+ ld [$dc4b], a
+ call Function8b097
+ jr .asm_8b051
+
+.asm_8b047
+ ld hl, $7081
+ jr .asm_8b05a
+
+.asm_8b04c
+ ld hl, $7086
+ jr .asm_8b05a
+
+.asm_8b051
+ ld de, $0022
+ call StartSFX
+ ld hl, $707c
+
+.asm_8b05a
+ call Function105a
+ jr .asm_8afeb
+
+.asm_8b05f
+ call Function1c17
+ call Function1c17
+ ld hl, $708b
+ call PrintText
+ call Functiona36
+ call PlayClickSFX
+ ret
+; 8b072
+
+INCBIN "baserom.gbc", $8b072, $8b090 - $8b072
+
+Function8b090: ; 8b090
+ ld hl, $70d1
+ call LoadMenuDataHeader
+ ret
+; 8b097
+
+Function8b097: ; 8b097
+ ld de, $dc4b
+ call Function8b09e
+ ret
+; 8b09e
+
+Function8b09e: ; 8b09e
+ push de
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $70d1
+ call Function1d3c
+ call Function1cbb
+ call Function1ad2
+ call Function1cfd
+ ld bc, $0015
+ add hl, bc
+ ld de, $70ca
+ call PlaceString
+ ld h, b
+ ld l, c
+ inc hl
+ ld a, $7f
+ ld [hli], a
+ ld [hld], a
+ pop de
+ ld bc, $0102
+ call PrintNum
+ ret
+; 8b0ca
+
+INCBIN "baserom.gbc", $8b0ca, $8b0d6 - $8b0ca
+
+Function8b0d6: ; 8b0d6
+ ld hl, $70dd
+ call LoadMenuDataHeader
+ ret
+; 8b0dd
+
+INCBIN "baserom.gbc", $8b0dd, $8b0e2 - $8b0dd
+
+Function8b0e2: ; 8b0e2
+ ld hl, $7113
+ call Function1d3c
+ ld a, [MenuSelection]
+ ld [$cf88], a
+ xor a
+ ld [$cf76], a
+ ld [hBGMapMode], a
+ call Function352f
+ call Function1ad2
+ call Function350c
+ ld a, [MenuSelection]
+ ld c, a
+ ld a, [$cfa9]
+ ld [MenuSelection], a
+ ld a, [$cf73]
+ cp $2
+ jr z, .asm_8b111
+ ld a, c
+ and a
+ ret nz
+
+.asm_8b111
+ xor a
+ ret
+; 8b113
+
+INCBIN "baserom.gbc", $8b113, $8b154 - $8b113
+
+Function8b154: ; 8b154
+ dec a
+ ld hl, $715e
+ ld b, $0
+ ld c, a
+ add hl, bc
+ add hl, bc
+ ret
+; 8b15e
+
+INCBIN "baserom.gbc", $8b15e, $8b170 - $8b15e
SpecialDratini: ; 0x8b170
; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party.
@@ -55680,7 +62533,136 @@ GetNthPartyMon: ; 0x8b1ce
scf
ret
-INCBIN "baserom.gbc", $8b1e1, $8b342 - $8b1e1
+Function8b1e1: ; 8b1e1
+ ld de, $71ed
+ call Function8b25b
+ ret z
+ call Function8b231
+ scf
+ ret
+; 8b1ed
+
+INCBIN "baserom.gbc", $8b1ed, $8b201 - $8b1ed
+
+Function8b201: ; 8b201
+ ld hl, StringBuffer2
+ ld [hl], $f9
+ inc hl
+ ld [hl], $50
+ ld de, $7215
+ call Function8b25b
+ ret z
+ call Function8b231
+ scf
+ ret
+; 8b215
+
+INCBIN "baserom.gbc", $8b215, $8b231 - $8b215
+
+Function8b231: ; 8b231
+ ld hl, $7238
+ call PrintText
+ ret
+; 8b238
+
+INCBIN "baserom.gbc", $8b238, $8b25b - $8b238
+
+Function8b25b: ; 8b25b
+ ld bc, $0000
+.asm_8b25e
+ call Function8b26c
+ call c, Function8b28e
+ call Function8b276
+ jr nz, .asm_8b25e
+ ld a, b
+ and a
+ ret
+; 8b26c
+
+Function8b26c: ; 8b26c
+ push de
+ push bc
+ call Function8b27a
+ ld a, c
+ rst JumpTable
+ pop bc
+ pop de
+ ret
+; 8b276
+
+Function8b276: ; 8b276
+ inc c
+ ld a, [de]
+ cp c
+ ret
+; 8b27a
+
+Function8b27a: ; 8b27a
+ inc de
+ ld a, [de]
+ ld l, a
+ inc de
+ ld a, [de]
+ ld h, a
+ ret
+; 8b281
+
+Function8b281: ; 8b281
+ inc de
+ inc de
+ inc de
+ ld a, [de]
+ ld l, a
+ inc de
+ ld a, [de]
+ ld h, a
+ ret
+; 8b28a
+
+Function8b28a: ; 8b28a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 8b28e
+
+Function8b28e: ; 8b28e
+ push de
+ push bc
+ ld a, b
+ and a
+ call z, Function8b29d
+ pop bc
+ call Function8b2a9
+ ld b, $1
+ pop de
+ ret
+; 8b29d
+
+Function8b29d: ; 8b29d
+ push de
+ call Function8b281
+ call Function8b28a
+ call PrintText
+ pop de
+ ret
+; 8b2a9
+
+Function8b2a9: ; 8b2a9
+ push bc
+ call Function8b281
+ inc hl
+ inc hl
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ call Function8b28a
+ call PrintText
+ pop bc
+ ret
+; 8b2bb
+
+INCBIN "baserom.gbc", $8b2bb, $8b342 - $8b2bb
Function8b342: ; 8b342
@@ -55690,7 +62672,7 @@ Function8b342: ; 8b342
xor a
.asm_8b348
push af
- ld hl, $7354
+ ld hl, Table8b354
rst JumpTable
pop af
inc a
@@ -55699,7 +62681,15 @@ Function8b342: ; 8b342
ret
; 8b354
-INCBIN "baserom.gbc", $8b354, $8b35b - $8b354
+Table8b354: ; 8b354
+ dw Function8b35a
+ dw Function8b35b
+ dw Function8b35c
+; 8b35a
+
+Function8b35a: ; 8b35a
+ ret
+; 8b35b
Function8b35b: ; 8b35b
@@ -55710,12 +62700,343 @@ Function8b35c: ; 8b35c
ret
; 8b35d
-INCBIN "baserom.gbc", $8b35d, $8ba24 - $8b35d
+INCBIN "baserom.gbc", $8b35d, $8b677 - $8b35d
+
+Function8b677: ; 8b677
+ call WhiteBGMap
+ call DisableLCD
+ call Function8b690
+ call Function8b6bb
+ call Function8b6ed
+ call EnableLCD
+ call Function891ab
+ call Function32f9
+ ret
+; 8b690
+
+Function8b690: ; 8b690
+ ld hl, $74b9
+ ld de, VTiles2
+ ld bc, $0160
+ ld a, $5e
+ call FarCopyBytes
+ ld hl, $7609
+ ld de, $9610
+ ld bc, $0010
+ ld a, $5e
+ call FarCopyBytes
+ ld hl, $7619
+ ld de, $8ee0
+ ld bc, $0010
+ ld a, $5e
+ call FarCopyBytes
+ ret
+; 8b6bb
+
+Function8b6bb: ; 8b6bb
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $76d5
+ ld de, Unkn1Pals
+ ld bc, $0018
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function8949c
+ ret
+; 8b6d5
+
+INCBIN "baserom.gbc", $8b6d5, $8b6ed - $8b6d5
+
+Function8b6ed: ; 8b6ed
+ ld hl, AttrMap
+ ld bc, $012c
+ xor a
+ call ByteFill
+ ld hl, $cef1
+ ld bc, $0050
+ ld a, $7
+ call ByteFill
+ ret
+; 8b703
+
+Function8b703: ; 8b703
+ call Function8923c
+ 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, $0014
+ 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, $0014
+ 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, $0939
+ 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, $0014
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8b74d
+ ret
+; 8b75d
+
+Function8b75d: ; 8b75d
+ call Function8923c
+ ld hl, TileMap
+ ld a, $1
+ ld bc, $0014
+ call ByteFill
+ ld hl, $c4b4
+ ld a, $2
+ ld [hl], a
+ ld hl, $c4bd
+ ld c, $b
+ call Function8b788
+ ld hl, $c4b5
+ 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
+ ld hl, $cded
+ ld a, $1
+ ld [hli], a
+ ld hl, $cdf6
+ 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, $7867
+ call Function1d3c
+ ld a, [$d030]
+ ld [$cf88], a
+ ld a, [$d031]
+ ld [$d0e4], a
+ ld a, [$d032]
+ and a
+ jr z, .asm_8b7e0
+ ld a, [$cf81]
+ set 3, a
+ ld [$cf81], a
+
+.asm_8b7e0
+ ld a, [$d0e3]
+ and a
+ jr z, .asm_8b7ea
+ dec a
+ ld [$cf77], a
+
+.asm_8b7ea
+ ld hl, $c4c8
+ ld b, $b
+ ld c, $12
+ call Function8b703
+ call Function8b75d
+ call Function1ad2
+ call Function89209
+ call Function350c
+ call Function8920f
+ ld a, [$cf73]
+ 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, [$cfa9]
+ ld [$d030], a
+ ld a, [$d0e4]
+ ld [$d031], a
+ ret
+; 8b832
+
+Function8b832: ; 8b832
+ ld a, [$d0e4]
+ ld hl, $cf92
+ sub [hl]
+ jr nc, Function8b84b
+ xor a
+ jr Function8b84b
+; 8b83e
+
+Function8b83e: ; 8b83e
+ ld a, [$d0e4]
+ ld hl, $cf92
+ add [hl]
+ cp $24
+ jr c, Function8b84b
+ ld a, $24
+
+Function8b84b: ; 8b84b
+ ld [$d0e4], a
+ ld a, [$cfa9]
+ ld [$cf88], a
+ ret
+; 8b855
+
+Function8b855: ; 8b855
+ ld a, $28
+ ld hl, DefaultFlypoint
+ 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
+
+INCBIN "baserom.gbc", $8b867, $8b94a - $8b867
+
+Function8b94a: ; 8b94a
+ ld [$d033], a
+ xor a
+ ld [$d0e4], a
+ ld [$d032], a
+ ld [$d0e3], a
+ ld [$d031], a
+ ld a, $1
+ ld [$d030], a
+ ret
+; 8b960
+
+INCBIN "baserom.gbc", $8b960, $8ba24 - $8b960
SECTION "bank23",ROMX,BANK[$23]
-INCBIN "baserom.gbc", $8c000, $8c001 - $8c000
+Function8c000: ; 8c000
+ ret
+; 8c001
Function8c001: ; 8c001
@@ -55790,7 +63111,7 @@ _TimeOfDayPals: ; 8c011
; restore bg palette 8
- ld hl, CurFruit ; last byte in Unkn1Pals
+ ld hl, $d03f ; last byte in Unkn1Pals
; save wram bank
ld a, [rSVBK]
@@ -55815,7 +63136,7 @@ _TimeOfDayPals: ; 8c011
ld [rSVBK], a
; update palettes
- call UpdateTimePals
+ call _UpdateTimePals
call DelayFrame
; successful change
@@ -55829,7 +63150,7 @@ _TimeOfDayPals: ; 8c011
; 8c070
-UpdateTimePals: ; 8c070
+_UpdateTimePals: ; 8c070
ld c, $9 ; normal
call GetTimePalFade
call DmgToCgbTimePals
@@ -55853,7 +63174,38 @@ Function8c084: ; 8c084
ret
; 8c092
-INCBIN "baserom.gbc", $8c092, $8c0c1 - $8c092
+Function8c092: ; 8c092
+ call Function8c0c1
+ ld c, $9
+ call GetTimePalFade
+ ld b, $4
+.asm_8c09c
+ call DmgToCgbTimePals
+ inc hl
+ inc hl
+ inc hl
+ ld c, $7
+ call DelayFrames
+ dec b
+ jr nz, .asm_8c09c
+ ret
+; 8c0ab
+
+Function8c0ab: ; 8c0ab
+ ld c, $0
+ call GetTimePalFade
+ ld b, $4
+ call Function8c15e
+ ret
+; 8c0b6
+
+Function8c0b6: ; 8c0b6
+ ld c, $9
+ call GetTimePalFade
+ ld b, $4
+ call Function8c16d
+ ret
+; 8c0c1
Function8c0c1: ; 8c0c1
@@ -56328,7 +63680,7 @@ Function8c6d8: ; 8c6d8
push af
ld a, $5
ld [rSVBK], a
- ld hl, $d100
+ ld hl, LYOverrides
call Function8c6ef
ld hl, $d200
call Function8c6ef
@@ -56414,7 +63766,323 @@ Function8ca0c: ; 8ca0c
jp [hl]
; 8ca1b
-INCBIN "baserom.gbc", $8ca1b, $8cf4f - $8ca1b
+INCBIN "baserom.gbc", $8ca1b, $8cc04 - $8ca1b
+
+Function8cc04: ; 8cc04
+ ld a, [ScriptVar]
+ and a
+ jr nz, .asm_8cc14
+ ld a, $1
+ ld bc, $4060
+ ld de, $fca0
+ jr .asm_8cc1c
+
+.asm_8cc14
+ ld a, $ff
+ ld bc, $c0a0
+ ld de, $b460
+
+.asm_8cc1c
+ ld h, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, h
+ ld [$d191], a
+ ld a, c
+ ld [$d192], a
+ ld a, b
+ ld [$d193], a
+ ld a, e
+ ld [$d194], a
+ ld a, d
+ ld [$d195], a
+ ld a, [hSCX]
+ push af
+ ld a, [hSCY]
+ push af
+ call Function8ccc9
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $1
+.asm_8cc48
+ ld a, [$cf63]
+ and a
+ jr z, .asm_8cc66
+ bit 7, a
+ jr nz, .asm_8cc6b
+ callab Function8cf69
+ call Function8cdf7
+ call Function8cc99
+ call Function3b0c
+ call DelayFrame
+ jr .asm_8cc48
+
+.asm_8cc66
+ call Function8ceae
+ jr .asm_8cc48
+
+.asm_8cc6b
+ pop af
+ ld [$ff9e], a
+ call WhiteBGMap
+ xor a
+ ld [hLCDStatCustom], a
+ ld [$ffc7], a
+ ld [$ffc8], a
+ ld [hSCX], a
+ ld [Requested2bppSource], a
+ ld [$cf69], a
+ ld [Requested2bppDest], a
+ ld [$cf6b], a
+ ld [Requested2bpp], a
+ call ClearTileMap
+ pop af
+ ld [hSCY], a
+ pop af
+ ld [hSCX], a
+ xor a
+ ld [hBGMapMode], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 8cc99
+
+Function8cc99: ; 8cc99
+ ld hl, $d200
+ ld c, $2f
+ ld a, [$cf64]
+ add a
+ ld [hSCX], a
+ call Function8ccc4
+ ld c, $30
+ ld a, [$cf65]
+ call Function8ccc4
+ ld c, $31
+ ld a, [$cf64]
+ add a
+ call Function8ccc4
+ ld a, [$d191]
+ ld d, a
+ ld hl, $cf64
+ ld a, [hl]
+ add d
+ add d
+ ld [hl], a
+ ret
+; 8ccc4
+
+Function8ccc4: ; 8ccc4
+.asm_8ccc4
+ ld [hli], a
+ dec c
+ jr nz, .asm_8ccc4
+ ret
+; 8ccc9
+
+Function8ccc9: ; 8ccc9
+ call WhiteBGMap
+ call ClearSprites
+ call DisableLCD
+ callab Function8cf53
+ call Function8cdc3
+ call Function8cd27
+ ld a, $90
+ ld [hWY], a
+ call EnableLCD
+ xor a
+ ld [hBGMapMode], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba GetPlayerIcon
+ pop af
+ ld [rSVBK], a
+ ld hl, VTiles0
+ ld c, $4
+ call Request2bpp
+ ld hl, $00c0
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, $8040
+ ld c, $4
+ call Request2bpp
+ call Function8cda6
+ ld hl, $cf63
+ xor a
+ ld [hli], a
+ ld a, [$d192]
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld de, MUSIC_MAGNET_TRAIN
+ call StartMusic2
+ ret
+; 8cd27
+
+Function8cd27: ; 8cd27
+ ld hl, VBGMap0
+ xor a
+.asm_8cd2b
+ call Function8cd74
+ ld b, $10
+ call Function8cd6c
+ inc a
+ cp $12
+ jr c, .asm_8cd2b
+ ld hl, $98c0
+ ld de, $4eff
+ ld c, $14
+ call Function8cd65
+ ld hl, $98e0
+ ld de, $4f13
+ ld c, $14
+ call Function8cd65
+ ld hl, $9900
+ ld de, $4f27
+ ld c, $14
+ call Function8cd65
+ ld hl, $9920
+ ld de, $4f3b
+ ld c, $14
+ call Function8cd65
+ ret
+; 8cd65
+
+Function8cd65: ; 8cd65
+.asm_8cd65
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_8cd65
+ ret
+; 8cd6c
+
+Function8cd6c: ; 8cd6c
+.asm_8cd6c
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ dec b
+ jr nz, .asm_8cd6c
+ ret
+; 8cd74
+
+Function8cd74: ; 8cd74
+ push hl
+ ld e, a
+ ld d, $0
+ ld hl, $4d82
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop hl
+ ret
+; 8cd82
+
+INCBIN "baserom.gbc", $8cd82, $8cda6 - $8cd82
+
+Function8cda6: ; 8cda6
+ ld hl, LYOverrides
+ ld bc, $0090
+ ld a, [$d192]
+ call ByteFill
+ ld hl, $d200
+ ld bc, $0090
+ ld a, [$d192]
+ call ByteFill
+ ld a, $43
+ ld [hLCDStatCustom], a
+ ret
+; 8cdc3
+
+Function8cdc3: ; 8cdc3
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VBGMap0
+ ld bc, $0080
+ ld a, $2
+ call ByteFill
+ ld hl, $9880
+ ld bc, $0140
+ xor a
+ call ByteFill
+ ld hl, $99c0
+ ld bc, $0080
+ ld a, $2
+ call ByteFill
+ ld hl, $9907
+ ld bc, $0006
+ ld a, $4
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 8cdf7
+
+Function8cdf7: ; 8cdf7
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $4e06
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8ce06
+
+INCBIN "baserom.gbc", $8ce06, $8ceae - $8ce06
+
+Function8ceae: ; 8ceae
+ callba Function8cf69
+ call Function8cdf7
+ call Function8cc99
+ call Function3b0c
+ call DelayFrame
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [TimeOfDayPal]
+ push af
+ ld a, [$d19a]
+ push af
+ ld a, [TimeOfDay]
+ and $3
+ ld [TimeOfDayPal], a
+ ld a, $1
+ ld [$d19a], a
+ ld b, $9
+ call GetSGBLayout
+ call UpdateTimePals
+ ld a, [rBGP]
+ ld [$cfc7], a
+ ld a, [rOBP0]
+ ld [$cfc8], a
+ ld a, [rOBP1]
+ ld [$cfc9], a
+ pop af
+ ld [$d19a], a
+ pop af
+ ld [TimeOfDayPal], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 8ceff
+
+INCBIN "baserom.gbc", $8ceff, $8cf4f - $8ceff
Function8cf4f: ; 8cf4f
call Function3238
@@ -57522,7 +65190,19 @@ BigmonIcon: INCBIN "gfx/icon/bigmon.2bpp" ; 0x8fe8d
SECTION "bank24",ROMX,BANK[$24]
-INCBIN "baserom.gbc", $90000, $9000f - $90000
+Function90000: ; 90000
+ call Function9001c
+ jr c, .asm_9000d
+ call Function9002d
+ jr nc, .asm_9000d
+ ld [hl], c
+ xor a
+ ret
+
+.asm_9000d
+ scf
+ ret
+; 9000f
Function9000f: ; 9000f
@@ -57559,7 +65239,58 @@ Function9001c: ; 9001c
ret
; 9002d
-INCBIN "baserom.gbc", $9002d, $90069 - $9002d
+Function9002d: ; 9002d
+ call Function90040
+ ld b, a
+ ld hl, $dc7c
+.asm_90034
+ ld a, [hli]
+ and a
+ jr z, .asm_9003d
+ dec b
+ jr nz, .asm_90034
+ xor a
+ ret
+
+.asm_9003d
+ dec hl
+ scf
+ ret
+; 90040
+
+Function90040: ; 90040
+ xor a
+ ld [Buffer1], a
+ ld hl, $4066
+.asm_90047
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_9005f
+ cp c
+ jr z, .asm_9005d
+ push bc
+ push hl
+ ld c, a
+ call Function9001c
+ jr c, .asm_9005b
+ ld hl, Buffer1
+ inc [hl]
+
+.asm_9005b
+ pop hl
+ pop bc
+
+.asm_9005d
+ jr .asm_90047
+
+.asm_9005f
+ ld a, $a
+ ld hl, Buffer1
+ sub [hl]
+ ret
+; 90066
+
+INCBIN "baserom.gbc", $90066, $90069 - $90066
Function90069: ; 90069
@@ -57710,7 +65441,171 @@ Function90375: ; 90375
ret
; 90380
-INCBIN "baserom.gbc", $90380, $909f2 - $90380
+INCBIN "baserom.gbc", $90380, $9039a - $90380
+
+Function9039a: ; 9039a
+ push hl
+ ld hl, $445f
+ ld bc, $000c
+ call AddNTimes
+ ld a, [hli]
+ ld b, [hl]
+ ld c, a
+ pop hl
+ ret
+; 903a9
+
+INCBIN "baserom.gbc", $903a9, $90439 - $903a9
+
+Function90439: ; 90439
+ ld a, [$dbf9]
+ call Function9039a
+ ld d, c
+ ld e, b
+ push de
+ ld a, [$dbf9]
+ ld hl, $4461
+ ld bc, $000c
+ call AddNTimes
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ push bc
+ call GetWorldMapLocation
+ ld e, a
+ callba GetLandmarkName
+ pop bc
+ pop de
+ ret
+; 9045f
+
+INCBIN "baserom.gbc", $9045f, $90913 - $9045f
+
+Function90913: ; 90913
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ ld de, $4903
+ ld hl, $8ef0
+ ld bc, $2401
+ call Request1bpp
+ ld de, $490b
+ ld hl, $8f50
+ ld bc, $2401
+ call Request1bpp
+ xor a
+ ld [DefaultFlypoint], a
+.asm_90936
+ ld hl, $c590
+ ld bc, $0412
+ call TextBox
+ call Function1d6e
+ ld hl, $4a3f
+ call PrintText
+ ld hl, $c4e5
+ ld b, $2
+ ld c, $9
+ call TextBox
+ ld hl, $c4ea
+ ld [hl], $ef
+ ld hl, $c526
+ ld [hl], $f5
+ ld hl, $c50e
+ call Function909de
+ call Function321c
+ ld c, $a
+ call DelayFrames
+.asm_9096a
+ call Functiona57
+ call Function90993
+ jr nc, .asm_9096a
+ call Function1c07
+ call Function1ad2
+ ld hl, $4a44
+ call PrintText
+ call Function1dcf
+ jr c, .asm_90936
+ ld a, [DefaultFlypoint]
+ ld [StringBuffer2], a
+ call $0663
+ call Functione51
+ pop af
+ ld [$ffaa], a
+ ret
+; 90993
+
+Function90993: ; 90993
+ ld a, [hJoyPressed]
+ and $1
+ jr z, .asm_9099b
+ scf
+ ret
+
+.asm_9099b
+ ld hl, $ffa9
+ ld a, [hl]
+ and $40
+ jr nz, .asm_909ba
+ ld a, [hl]
+ and $80
+ jr nz, .asm_909ad
+ call DelayFrame
+ and a
+ ret
+
+.asm_909ad
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+ and a
+ jr nz, .asm_909b6
+ ld a, $7
+
+.asm_909b6
+ dec a
+ ld [hl], a
+ jr .asm_909c6
+
+.asm_909ba
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+ cp $6
+ jr c, .asm_909c4
+ ld a, $ff
+
+.asm_909c4
+ inc a
+ ld [hl], a
+
+.asm_909c6
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c4fa
+ ld b, $2
+ ld c, $9
+ call ClearBox
+ ld hl, $c50e
+ call Function909de
+ call WaitBGMap
+ and a
+ ret
+; 909de
+
+Function909de: ; 909de
+ push hl
+ ld a, [DefaultFlypoint]
+ ld e, a
+ ld d, $0
+ ld hl, $49f2
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+; 909f2
dw Sunday
dw Monday
@@ -57737,7 +65632,214 @@ Saturday:
db "SATURDAY@"
-INCBIN "baserom.gbc", $90a3f, $914dd - $90a3f
+INCBIN "baserom.gbc", $90a3f, $90a54 - $90a3f
+
+Function90a54: ; 90a54
+ ld a, [$d4c2]
+ set 7, a
+ ld [$d4c2], a
+ ld hl, $c5b9
+ ld bc, $0312
+ call ClearBox
+ ld hl, $4a6c
+ call Function13e5
+ ret
+; 90a6c
+
+INCBIN "baserom.gbc", $90a6c, $90a88 - $90a6c
+
+Function90a88: ; 90a88
+ ld a, [$d4c2]
+ res 7, a
+ ld [$d4c2], a
+ ld hl, $c5b9
+ ld bc, $0312
+ call ClearBox
+ ld hl, $4aa0
+ call Function13e5
+ ret
+; 90aa0
+
+INCBIN "baserom.gbc", $90aa0, $90c4e - $90aa0
+
+Function90c4e: ; 90c4e
+ call Functiond79
+ ld hl, $4ba0
+ ld de, VTiles2
+ ld a, $3e
+ call FarDecompress
+ ld hl, $62e4
+ ld de, $9300
+ ld a, $77
+ call FarDecompress
+ ld hl, PokegearSpritesGFX
+ ld de, VTiles0
+ ld a, $24
+ call Decompress
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp $5f
+ jr z, .asm_90ca5
+ callba GetPlayerIcon
+ push de
+ ld h, d
+ ld l, e
+ ld a, b
+ push af
+ ld de, $8100
+ ld bc, $0040
+ call FarCopyBytes
+ pop af
+ pop hl
+ ld de, $00c0
+ add hl, de
+ ld de, $8140
+ ld bc, $0040
+ call FarCopyBytes
+ ret
+
+.asm_90ca5
+ ld hl, $4cb2
+ ld de, $8100
+ ld bc, $0080
+ call CopyBytes
+ ret
+; 90cb2
+
+INCBIN "baserom.gbc", $90cb2, $90d56 - $90cb2
+
+Function90d56: ; 90d56
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp $0
+ ret nz
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ ret
+; 90d70
+
+INCBIN "baserom.gbc", $90d70, $9106a - $90d70
+
+Function9106a: ; 9106a
+ push af
+ ld de, $0000
+ ld b, $a
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_91079
+ ld b, $1e
+
+.asm_91079
+ ld a, b
+ call Function3b2a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $10
+ pop af
+ ld e, a
+ push bc
+ callba GetLandmarkCoords
+ pop bc
+ ld hl, $0004
+ add hl, bc
+ ld [hl], e
+ ld hl, $0005
+ add hl, bc
+ ld [hl], d
+ ret
+; 91098
+
+Function91098: ; 91098
+ push af
+ ld de, $0000
+ ld a, $d
+ call Function3b2a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $4
+ ld hl, $0002
+ add hl, bc
+ ld [hl], $0
+ pop af
+ push bc
+ call Function910d4
+ pop bc
+ ret
+; 910b4
+
+Function910b4: ; 910b4
+ push af
+ ld hl, $c4a8
+ ld bc, $020c
+ call ClearBox
+ pop af
+ ld e, a
+ push de
+ callba GetLandmarkName
+ pop de
+ callba Function1de2c5
+ ld hl, $c4a8
+ ld [hl], $34
+ ret
+; 910d4
+
+Function910d4: ; 910d4
+ push bc
+ ld e, a
+ callba GetLandmarkCoords
+ pop bc
+ ld hl, $0004
+ add hl, bc
+ ld [hl], e
+ ld hl, $0005
+ add hl, bc
+ ld [hl], d
+ ret
+; 910e8
+
+Function910e8: ; 910e8
+ ld a, [StatusFlags]
+ bit 6, a
+ jr z, .asm_910f4
+ ld d, $5e
+ ld e, $2f
+ ret
+
+.asm_910f4
+ ld d, $5e
+ ld e, $58
+ ret
+; 910f9
+
+INCBIN "baserom.gbc", $910f9, $91492 - $910f9
+
+Function91492: ; 91492
+ ld a, [EnemyTurnsTaken]
+ cp $fe
+ jr z, .asm_914a3
+ cp $ff
+ call z, Function3d03
+ xor a
+ ld [EnemyTurnsTaken], a
+ ret
+
+.asm_914a3
+ call Function3d47
+ xor a
+ ld [EnemyTurnsTaken], a
+ ret
+; 914ab
+
+INCBIN "baserom.gbc", $914ab, $914dd - $914ab
PokegearSpritesGFX: ; 914dd
INCBIN "gfx/misc/pokegear_sprites.lz"
@@ -57757,7 +65859,223 @@ RadioChannels: ; 918bf
db "# FLUTE@"
; 9191c
-INCBIN "baserom.gbc", $9191c, $91ae1 - $9191c
+Function9191c: ; 9191c
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call Function90c4e
+ callba Function8cf53
+ ld a, $8
+ call Function3cb4
+ ld a, $e3
+ ld [rLCDC], a
+ call Function90d56
+ ld [DefaultFlypoint], a
+ ld [$d003], a
+ xor a
+ ld [hBGMapMode], a
+ call Function91a04
+ call Function3200
+ ld a, [DefaultFlypoint]
+ call Function9106a
+ ld a, [$d003]
+ call Function91098
+ ld a, c
+ ld [$d004], a
+ ld a, b
+ ld [StartFlypoint], a
+ ld b, $2
+ call GetSGBLayout
+ call Function32f9
+ ld a, [hCGB]
+ and a
+ jr z, .asm_9198b
+ ld a, $e4
+ call Functioncf8
+ call DelayFrame
+
+.asm_9198b
+ ld a, [DefaultFlypoint]
+ cp $2f
+ jr nc, .asm_9199b
+ ld d, $2e
+ ld e, $1
+ call Function919b0
+ jr .asm_919a1
+
+.asm_9199b
+ call Function910e8
+ call Function919b0
+
+.asm_919a1
+ pop af
+ ld [VramState], a
+ pop af
+ ld [$ffaa], a
+ pop af
+ ld [Options], a
+ call WhiteBGMap
+ ret
+; 919b0
+
+Function919b0: ; 919b0
+.asm_919b0
+ call Functiona57
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $2
+ ret nz
+ ld hl, $ffa9
+ ld a, [hl]
+ and $40
+ jr nz, .asm_919d4
+ ld a, [hl]
+ and $80
+ jr nz, .asm_919e1
+.asm_919c7
+ push de
+ callba Function8cf69
+ pop de
+ call DelayFrame
+ jr .asm_919b0
+
+.asm_919d4
+ ld hl, $d003
+ ld a, [hl]
+ cp d
+ jr c, .asm_919de
+ ld a, e
+ dec a
+ ld [hl], a
+
+.asm_919de
+ inc [hl]
+ jr .asm_919ec
+
+.asm_919e1
+ ld hl, $d003
+ ld a, [hl]
+ cp e
+ jr nz, .asm_919eb
+ ld a, d
+ inc a
+ ld [hl], a
+
+.asm_919eb
+ dec [hl]
+
+.asm_919ec
+ push de
+ ld a, [$d003]
+ call Function910b4
+ ld a, [$d004]
+ ld c, a
+ ld a, [StartFlypoint]
+ ld b, a
+ ld a, [$d003]
+ call Function910d4
+ pop de
+ jr .asm_919c7
+; 91a04
+
+Function91a04: ; 91a04
+ ld a, [DefaultFlypoint]
+ cp $2f
+ jr nc, .asm_91a0f
+ ld e, $0
+ jr .asm_91a11
+
+.asm_91a0f
+ ld e, $1
+
+.asm_91a11
+ callba Function91ae1
+ ld a, $7
+ ld bc, $0006
+ ld hl, $c4a1
+ call ByteFill
+ ld hl, TileMap
+ ld [hl], $6
+ ld hl, $c4a7
+ ld [hl], $17
+ ld hl, $c4bb
+ ld [hl], $16
+ ld hl, $c4cf
+ ld [hl], $26
+ ld a, $7
+ ld bc, $000b
+ ld hl, $c4d0
+ call ByteFill
+ ld hl, $c4db
+ ld [hl], $17
+ ld a, [$d003]
+ call Function910b4
+ callba TownMapPals
+ ret
+; 91a53
+
+Function91a53: ; 91a53
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function91a87
+ ld c, $64
+ call DelayFrames
+.asm_91a62
+ call Functiona57
+ ld a, [hJoyPressed]
+ and $3
+ jr nz, .asm_91a7f
+ ld a, [EnemyEvaLevel]
+ ld l, a
+ ld a, [$c6db]
+ ld h, a
+ ld a, [EnemyAccLevel]
+ and a
+ jr z, .asm_91a7a
+ rst FarCall
+
+.asm_91a7a
+ call DelayFrame
+ jr .asm_91a62
+
+.asm_91a7f
+ pop af
+ ld [Options], a
+ call Function91492
+ ret
+; 91a87
+
+Function91a87: ; 91a87
+ ld a, $ff
+ ld [EnemyTurnsTaken], a
+ ld hl, $5ab9
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $5a9b
+ push de
+ jp [hl]
+; 91a9b
+
+INCBIN "baserom.gbc", $91a9b, $91ae1 - $91a9b
Function91ae1: ; 91ae1
ld a, e
@@ -58171,7 +66489,277 @@ FlyMap: ; 91c90
ret
; 91d11
-INCBIN "baserom.gbc", $91d11, $91ee4 - $91d11
+Function91d11: ; 91d11
+ ld a, [DefaultFlypoint]
+ push af
+ ld a, [$d003]
+ push af
+ ld a, e
+ ld [DefaultFlypoint], a
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [$ffaa], a
+ ld de, $62d1
+ ld hl, $87f0
+ ld bc, $2401
+ call Request2bpp
+ call Function91ed0
+ ld hl, $8780
+ ld c, $4
+ call Request2bpp
+ call Function91ff2
+ call FillKantoMap
+ call Function91de9
+ call TownMapPals
+ ld hl, VBGMap1
+ call TownMapBGUpdate
+ call FillJohtoMap
+ call Function91de9
+ call TownMapPals
+ ld hl, VBGMap0
+ call TownMapBGUpdate
+ ld b, $2
+ call GetSGBLayout
+ call Function32f9
+ xor a
+ ld [hBGMapMode], a
+ xor a
+ call Function91e1e
+.asm_91d6e
+ call Functiona57
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $3
+ jr nz, .asm_91d8f
+ ld a, [hJoypadDown]
+ and $4
+ jr nz, .asm_91d87
+ call Function91d9b
+ call Function91dcd
+ jr .asm_91d8a
+
+.asm_91d87
+ call Function91e5a
+
+.asm_91d8a
+ call DelayFrame
+ jr .asm_91d6e
+
+.asm_91d8f
+ call ClearSprites
+ pop af
+ ld [$d003], a
+ pop af
+ ld [DefaultFlypoint], a
+ ret
+; 91d9b
+
+Function91d9b: ; 91d9b
+ ld a, [hl]
+ and $20
+ jr nz, .asm_91da6
+ ld a, [hl]
+ and $10
+ jr nz, .asm_91db7
+ ret
+
+.asm_91da6
+ ld a, [hWY]
+ cp $90
+ ret z
+ call ClearSprites
+ ld a, $90
+ ld [hWY], a
+ xor a
+ call Function91e1e
+ ret
+
+.asm_91db7
+ ld a, [StatusFlags]
+ bit 6, a
+ ret z
+ ld a, [hWY]
+ and a
+ ret z
+ call ClearSprites
+ xor a
+ ld [hWY], a
+ ld a, $1
+ call Function91e1e
+ ret
+; 91dcd
+
+Function91dcd: ; 91dcd
+ ld a, [$ff9b]
+ ld e, a
+ and $f
+ ret nz
+ ld a, e
+ and $10
+ jr nz, .asm_91ddc
+ call ClearSprites
+ ret
+
+.asm_91ddc
+ ld hl, TileMap
+ ld de, Sprites
+ ld bc, $00a0
+ call CopyBytes
+ ret
+; 91de9
+
+Function91de9: ; 91de9
+ ld hl, TileMap
+ ld bc, $0014
+ ld a, $7f
+ call ByteFill
+ ld hl, $c4b4
+ ld a, $6
+ ld [hli], a
+ ld bc, $0012
+ ld a, $7
+ call ByteFill
+ ld [hl], $17
+ call GetPokemonName
+ ld hl, $c4a2
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, $5e16
+ call PlaceString
+ ret
+; 91e16
+
+INCBIN "baserom.gbc", $91e16, $91e1e - $91e16
+
+Function91e1e: ; 91e1e
+ ld [$d003], a
+ ld e, a
+ callba Function2a01f
+ ld de, TileMap
+ ld hl, Sprites
+.asm_91e2e
+ ld a, [de]
+ and a
+ jr z, .asm_91e4d
+ push de
+ ld e, a
+ push hl
+ callba GetLandmarkCoords
+ pop hl
+ ld a, d
+ sub $4
+ ld [hli], a
+ ld a, e
+ sub $4
+ ld [hli], a
+ ld a, $7f
+ ld [hli], a
+ xor a
+ ld [hli], a
+ pop de
+ inc de
+ jr .asm_91e2e
+
+.asm_91e4d
+ ld hl, Sprites
+ ld de, TileMap
+ ld bc, $00a0
+ call CopyBytes
+ ret
+; 91e5a
+
+Function91e5a: ; 91e5a
+ call Function91ea9
+ ret c
+ ld a, [DefaultFlypoint]
+ ld e, a
+ callba GetLandmarkCoords
+ ld c, e
+ ld b, d
+ ld de, $5e9c
+ ld hl, Sprites
+.asm_91e70
+ ld a, [de]
+ cp $80
+ jr z, .asm_91e91
+ add b
+ ld [hli], a
+ inc de
+ ld a, [de]
+ add c
+ ld [hli], a
+ inc de
+ ld a, [de]
+ add $78
+ ld [hli], a
+ inc de
+ push bc
+ ld c, $0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_91e8c
+ inc c
+
+.asm_91e8c
+ ld a, c
+ ld [hli], a
+ pop bc
+ jr .asm_91e70
+
+.asm_91e91
+ ld hl, $c410
+ ld bc, $0090
+ xor a
+ call ByteFill
+ ret
+; 91e9c
+
+INCBIN "baserom.gbc", $91e9c, $91ea9 - $91e9c
+
+Function91ea9: ; 91ea9
+ ld a, [DefaultFlypoint]
+ cp $5f
+ jr z, .asm_91ebc
+ cp $2f
+ jr c, .asm_91ebc
+ ld a, [$d003]
+ and a
+ jr z, .asm_91ec4
+ jr .asm_91ec2
+
+.asm_91ebc
+ ld a, [$d003]
+ and a
+ jr nz, .asm_91ec4
+
+.asm_91ec2
+ and a
+ ret
+
+.asm_91ec4
+ ld hl, Sprites
+ ld bc, $00a0
+ xor a
+ call ByteFill
+ scf
+ ret
+; 91ed0
+
+Function91ed0: ; 91ed0
+ ld a, [DefaultFlypoint]
+ cp $5f
+ jr z, .asm_91ede
+ callba GetPlayerIcon
+ ret
+
+.asm_91ede
+ ld de, $4cb2
+ ld b, $24
+ ret
+; 91ee4
TownMapBGUpdate: ; 91ee4
; Update BG Map tiles and attributes
@@ -58567,9 +67155,7 @@ Function9673e: ; 9673e
ld [$d453], a
ld [$d454], a
call Function968d1
- ld a, $5
- ld hl, $5363
- rst FarCall
+ callba Function15363
call Function966cb
ld a, [$ff9f]
cp $f7
@@ -59021,7 +67607,7 @@ OWPlayerInput: ; 96974
CheckAPressOW: ; 96999
ld a, [hJoyPressed]
- and BUTTON_A
+ and A_BUTTON
ret z
call TryObjectEvent
ret c
@@ -60352,1336 +68938,22 @@ INCLUDE "text/phone/extra2.asm"
SECTION "bank2A",ROMX,BANK[$2A]
-Route32_BlockData: ; 0xa8000
- INCBIN "maps/Route32.blk"
-; 0xa81c2
-
-Route40_BlockData: ; 0xa81c2
- INCBIN "maps/Route40.blk"
-; 0xa8276
-
-Route36_BlockData: ; 0xa8276
- INCBIN "maps/Route36.blk"
-; 0xa8384
-
-Route44_BlockData: ; 0xa8384
- INCBIN "maps/Route44.blk"
-; 0xa8492
-
-Route28_BlockData: ; 0xa8492
- INCBIN "maps/Route28.blk"
-; 0xa8546
-
-BetaHerosHouse_BlockData: ; 0xa8546
- INCBIN "maps/BetaHerosHouse.blk"
-; 0xa8552
-
-CeladonCity_BlockData: ; 0xa8552
- INCBIN "maps/CeladonCity.blk"
-; 0xa86ba
-
-SaffronCity_BlockData: ; 0xa86ba
- INCBIN "maps/SaffronCity.blk"
-; 0xa8822
-
-Route2_BlockData: ; 0xa8822
- INCBIN "maps/Route2.blk"
-; 0xa8930
-
-ElmsHouse_BlockData: ; 0xa8930
- INCBIN "maps/ElmsHouse.blk"
-; 0xa8940
-
-BetaSproutTower1_BlockData: ; 0xa8940
- INCBIN "maps/BetaSproutTower1.blk"
-; 0xa899a
-
-Route11_BlockData: ; 0xa899a
- INCBIN "maps/Route11.blk"
-; 0xa8a4e
-
-BetaSproutTower5_BlockData: ; 0xa8a4e
- INCBIN "maps/BetaSproutTower5.blk"
-; 0xa8aa8
-
-Route15_BlockData: ; 0xa8aa8
- INCBIN "maps/Route15.blk"
-; 0xa8b5c
-
-BetaSproutTower9_BlockData: ; 0xa8b5c
- INCBIN "maps/BetaSproutTower9.blk"
-; 0xa8b80
-
-Route19_BlockData: ; 0xa8b80
- INCBIN "maps/Route19.blk"
-; 0xa8c34
-
-BetaBlackthornCity_BlockData: ; 0xa8c34
- INCBIN "maps/BetaBlackthornCity.blk"
-; 0xa8d9c
-
-Route10South_BlockData: ; 0xa8d9c
- INCBIN "maps/Route10South.blk"
-; 0xa8df6
-
-CinnabarPokeCenter2FBeta_BlockData: ; 0xa8df6
- INCBIN "maps/CinnabarPokeCenter2FBeta.blk"
-; 0xa8e16
-
-Route41_BlockData: ; 0xa8e16
- INCBIN "maps/Route41.blk"
-; 0xa90b9
-
-Route33_BlockData: ; 0xa90b9
- INCBIN "maps/Route33.blk"
-; 0xa9113
-
-Route45_BlockData: ; 0xa9113
- INCBIN "maps/Route45.blk"
-; 0xa92d5
-
-Route29_BlockData: ; 0xa92d5
- INCBIN "maps/Route29.blk"
-; 0xa93e3
-
-Route37_BlockData: ; 0xa93e3
- INCBIN "maps/Route37.blk"
-; 0xa943d
-
-LavenderTown_BlockData: ; 0xa943d
- INCBIN "maps/LavenderTown.blk"
-; 0xa9497
-
-PalletTown_BlockData: ; 0xa9497
- INCBIN "maps/PalletTown.blk"
-; 0xa94f1
-
-Route25_BlockData: ; 0xa94f1
- INCBIN "maps/Route25.blk"
-; 0xa95ff
-
-Route24_BlockData: ; 0xa95ff
- INCBIN "maps/Route24.blk"
-; 0xa9659
-
-BetaVioletCity_BlockData: ; 0xa9659
- INCBIN "maps/BetaVioletCity.blk"
-; 0xa97c1
-
-Route3_BlockData: ; 0xa97c1
- INCBIN "maps/Route3.blk"
-; 0xa98cf
-
-PewterCity_BlockData: ; 0xa98cf
- INCBIN "maps/PewterCity.blk"
-; 0xa9a37
-
-BetaIlexForest_BlockData: ; 0xa9a37
- INCBIN "maps/BetaIlexForest.blk"
-; 0xa9b9f
-
-BetaSproutTower2_BlockData: ; 0xa9b9f
- INCBIN "maps/BetaSproutTower2.blk"
-; 0xa9bf9
-
-Route12_BlockData: ; 0xa9bf9
- INCBIN "maps/Route12.blk"
-; 0xa9d07
-
-BetaGoldenrodCity_BlockData: ; 0xa9d07
- INCBIN "maps/BetaGoldenrodCity.blk"
-; 0xa9e6f
-
-Route20_BlockData: ; 0xa9e6f
- INCBIN "maps/Route20.blk"
-; 0xa9f7d
-
-BetaSproutTower6_BlockData: ; 0xa9f7d
- INCBIN "maps/BetaSproutTower6.blk"
-; 0xa9fd7
-
-BetaPokecenterMainHouse_BlockData: ; 0xa9fd7
- INCBIN "maps/BetaPokecenterMainHouse.blk"
-; 0xa9ff7
-
-Route30_BlockData: ; 0xa9ff7
- INCBIN "maps/Route30.blk"
-; 0xaa105
-
-Route26_BlockData: ; 0xaa105
- INCBIN "maps/Route26.blk"
-; 0xaa321
-
-Route42_BlockData: ; 0xaa321
- INCBIN "maps/Route42.blk"
-; 0xaa42f
-
-Route34_BlockData: ; 0xaa42f
- INCBIN "maps/Route34.blk"
-; 0xaa53d
-
-Route46_BlockData: ; 0xaa53d
- INCBIN "maps/Route46.blk"
-; 0xaa5f1
-
-FuchsiaCity_BlockData: ; 0xaa5f1
- INCBIN "maps/FuchsiaCity.blk"
-; 0xaa759
-
-Route38_BlockData: ; 0xaa759
- INCBIN "maps/Route38.blk"
-; 0xaa80d
-
-BetaCianwoodCity_BlockData: ; 0xaa80d
- INCBIN "maps/BetaCianwoodCity.blk"
-; 0xaa867
-
-OlivineVoltorbHouse_BlockData: ; 0xaa867
- INCBIN "maps/OlivineVoltorbHouse.blk"
-; 0xaa877
-
-SafariZoneFuchsiaGateBeta_BlockData: ; 0xaa877
- INCBIN "maps/SafariZoneFuchsiaGateBeta.blk"
-; 0xaa88b
-
-BetaTeakCity_BlockData: ; 0xaa88b
- INCBIN "maps/BetaTeakCity.blk"
-; 0xaa9f3
-
-BetaCherrygroveCity_BlockData: ; 0xaa9f3
- INCBIN "maps/BetaCherrygroveCity.blk"
-; 0xaaa4d
-
-CinnabarIsland_BlockData: ; 0xaaa4d
- INCBIN "maps/CinnabarIsland.blk"
-; 0xaaaa7
-
-Route4_BlockData: ; 0xaaaa7
- INCBIN "maps/Route4.blk"
-; 0xaab5b
-
-Route8_BlockData: ; 0xaab5b
- INCBIN "maps/Route8.blk"
-; 0xaac0f
-
-BetaSproutTower3_BlockData: ; 0xaac0f
- INCBIN "maps/BetaSproutTower3.blk"
-; 0xaac69
-
-ViridianCity_BlockData: ; 0xaac69
- INCBIN "maps/ViridianCity.blk"
-; 0xaadd1
-
-Route13_BlockData: ; 0xaadd1
- INCBIN "maps/Route13.blk"
-; 0xaaedf
-
-Route21_BlockData: ; 0xaaedf
- INCBIN "maps/Route21.blk"
-; 0xaaf93
-
-BetaSproutTower7_BlockData: ; 0xaaf93
- INCBIN "maps/BetaSproutTower7.blk"
-; 0xaafed
-
-Route17_BlockData: ; 0xaafed
- INCBIN "maps/Route17.blk"
-; 0xab1af
-
-BetaMahoganyTown_BlockData: ; 0xab1af
- INCBIN "maps/BetaMahoganyTown.blk"
-; 0xab209
-
-Route31_BlockData: ; 0xab209
- INCBIN "maps/Route31.blk"
-; 0xab2bd
-
-Route27_BlockData: ; 0xab2bd
- INCBIN "maps/Route27.blk"
-; 0xab425
-
-Route35_BlockData: ; 0xab425
- INCBIN "maps/Route35.blk"
-; 0xab4d9
-
-Route43_BlockData: ; 0xab4d9
- INCBIN "maps/Route43.blk"
-; 0xab5e7
-
-Route39_BlockData: ; 0xab5e7
- INCBIN "maps/Route39.blk"
-; 0xab69b
-
-KrissHouse1F_BlockData: ; 0xab69b
- INCBIN "maps/KrissHouse1F.blk"
-; 0xab6af
-
-Route38EcruteakGate_BlockData: ; 0xab6af
- INCBIN "maps/Route38EcruteakGate.blk"
-; 0xab6c3
-
-BetaAzaleaTown_BlockData: ; 0xab6c3
- INCBIN "maps/BetaAzaleaTown.blk"
-; 0xab82b
-
-VermilionCity_BlockData: ; 0xab82b
- INCBIN "maps/VermilionCity.blk"
-; 0xab993
-
-BetaOlivineCity_BlockData: ; 0xab993
- INCBIN "maps/BetaOlivineCity.blk"
-; 0xabafb
-
-BetaNewBarkTown_BlockData: ; 0xabafb
- INCBIN "maps/BetaNewBarkTown.blk"
-; 0xabb55
-
-ElmsLab_BlockData: ; 0xabb55
- INCBIN "maps/ElmsLab.blk"
-; 0xabb73
-
-CeruleanCity_BlockData: ; 0xabb73
- INCBIN "maps/CeruleanCity.blk"
-; 0xabcdb
-
-Route1_BlockData: ; 0xabcdb
- INCBIN "maps/Route1.blk"
-; 0xabd8f
-
-Route5_BlockData: ; 0xabd8f
- INCBIN "maps/Route5.blk"
-; 0xabde9
-
-Route9_BlockData: ; 0xabde9
- INCBIN "maps/Route9.blk"
-; 0xabef7
-
-Route22_BlockData: ; 0xabef7
- INCBIN "maps/Route22.blk"
-; 0xabfab
+INCLUDE "maps/blockdata_1.asm"
SECTION "bank2B",ROMX,BANK[$2B]
-Route14_BlockData: ; 0xac000
- INCBIN "maps/Route14.blk"
-; 0xac0b4
-
-BetaSproutTower8_BlockData: ; 0xac0b4
- INCBIN "maps/BetaSproutTower8.blk"
-; 0xac10e
-
-OlivineMart_BlockData: ; 0xac10e
- INCBIN "maps/OlivineMart.blk"
-; 0xac126
-
-Route10North_BlockData: ; 0xac126
- INCBIN "maps/Route10North.blk"
-; 0xac180
-
-BetaLakeOfRage_BlockData: ; 0xac180
- INCBIN "maps/BetaLakeOfRage.blk"
-; 0xac2e8
-
-OlivinePokeCenter1F_BlockData: ; 0xac2e8
- INCBIN "maps/OlivinePokeCenter1F.blk"
-; 0xac2fc
-
-BetaPewterMuseumOfScience1F_BlockData: ; 0xac2fc
- INCBIN "maps/BetaPewterMuseumOfScience1F.blk"
-; 0xac324
-
-BetaPewterMuseumOfScience2F_BlockData: ; 0xac324
- INCBIN "maps/BetaPewterMuseumOfScience2F.blk"
-; 0xac340
-
-EarlsPokemonAcademy_BlockData: ; 0xac340
- INCBIN "maps/EarlsPokemonAcademy.blk"
-; 0xac360
-
-BetaCinnabarIslandPokemonLabHallway_BlockData: ; 0xac360
- INCBIN "maps/BetaCinnabarIslandPokemonLabHallway.blk"
-; 0xac384
-
-BetaCinnabarIslandPokemonLabRoom1_BlockData: ; 0xac384
- INCBIN "maps/BetaCinnabarIslandPokemonLabRoom1.blk"
-; 0xac394
-
-BetaCinnabarIslandPokemonLabRoom2_BlockData: ; 0xac394
- INCBIN "maps/BetaCinnabarIslandPokemonLabRoom2.blk"
-; 0xac3a4
-
-BetaCinnabarIslandPokemonLabRoom3_BlockData: ; 0xac3a4
- INCBIN "maps/BetaCinnabarIslandPokemonLabRoom3.blk"
-; 0xac3b4
-
-GoldenrodDeptStore1F_BlockData: ; 0xac3b4
- INCBIN "maps/GoldenrodDeptStore1F.blk"
-; 0xac3d4
-
-GoldenrodDeptStore2F_BlockData: ; 0xac3d4
- INCBIN "maps/GoldenrodDeptStore2F.blk"
-; 0xac3f4
-
-GoldenrodDeptStore3F_BlockData: ; 0xac3f4
- INCBIN "maps/GoldenrodDeptStore3F.blk"
-; 0xac414
-
-GoldenrodDeptStore4F_BlockData: ; 0xac414
- INCBIN "maps/GoldenrodDeptStore4F.blk"
-; 0xac434
-
-GoldenrodDeptStore5F_BlockData: ; 0xac434
- INCBIN "maps/GoldenrodDeptStore5F.blk"
-; 0xac454
-
-GoldenrodDeptStore6F_BlockData: ; 0xac454
- INCBIN "maps/GoldenrodDeptStore6F.blk"
-; 0xac474
-
-GoldenrodDeptStoreElevator_BlockData: ; 0xac474
- INCBIN "maps/GoldenrodDeptStoreElevator.blk"
-; 0xac478
-
-CeladonMansion1F_BlockData: ; 0xac478
- INCBIN "maps/CeladonMansion1F.blk"
-; 0xac48c
-
-CeladonMansion2F_BlockData: ; 0xac48c
- INCBIN "maps/CeladonMansion2F.blk"
-; 0xac4a0
-
-CeladonMansion3F_BlockData: ; 0xac4a0
- INCBIN "maps/CeladonMansion3F.blk"
-; 0xac4b4
-
-CeladonMansionRoof_BlockData: ; 0xac4b4
- INCBIN "maps/CeladonMansionRoof.blk"
-; 0xac4c8
-
-BetaHouse_BlockData: ; 0xac4c8
- INCBIN "maps/BetaHouse.blk"
-; 0xac4d8
-
-CeladonGameCorner_BlockData: ; 0xac4d8
- INCBIN "maps/CeladonGameCorner.blk"
-; 0xac51e
-
-CeladonGameCornerPrizeRoom_BlockData: ; 0xac51e
- INCBIN "maps/CeladonGameCornerPrizeRoom.blk"
-; 0xac527
-
-Colosseum_BlockData: ; 0xac527
- INCBIN "maps/Colosseum.blk"
-; 0xac53b
-
-TradeCenter_BlockData: ; 0xac53b
- INCBIN "maps/TradeCenter.blk"
-; 0xac54f
-
-EcruteakLugiaSpeechHouse_BlockData: ; 0xac54f
- INCBIN "maps/EcruteakLugiaSpeechHouse.blk"
-; 0xac55f
-
-BetaCave_BlockData: ; 0xac55f
- INCBIN "maps/BetaCave.blk"
-; 0xac5b9
-
-UnionCaveB1F_BlockData: ; 0xac5b9
- INCBIN "maps/UnionCaveB1F.blk"
-; 0xac66d
-
-UnionCaveB2F_BlockData: ; 0xac66d
- INCBIN "maps/UnionCaveB2F.blk"
-; 0xac721
-
-UnionCave1F_BlockData: ; 0xac721
- INCBIN "maps/UnionCave1F.blk"
-; 0xac7d5
-
-NationalPark_BlockData: ; 0xac7d5
- INCBIN "maps/NationalPark.blk"
-; 0xac9f1
-
-Route6UndergroundEntrance_BlockData: ; 0xac9f1
- INCBIN "maps/Route6UndergroundEntrance.blk"
-; 0xaca01
-
-BetaPokecenterTradeStation_BlockData: ; 0xaca01
- INCBIN "maps/BetaPokecenterTradeStation.blk"
-; 0xaca11
-
-KurtsHouse_BlockData: ; 0xaca11
- INCBIN "maps/KurtsHouse.blk"
-; 0xaca31
-
-GoldenrodMagnetTrainStation_BlockData: ; 0xaca31
- INCBIN "maps/GoldenrodMagnetTrainStation.blk"
-; 0xaca8b
-
-RuinsofAlphOutside_BlockData: ; 0xaca8b
- INCBIN "maps/RuinsofAlphOutside.blk"
-; 0xacb3f
-
-BetaAlphRuinUnsolvedPuzzleRoom_BlockData: ; 0xacb3f
- INCBIN "maps/BetaAlphRuinUnsolvedPuzzleRoom.blk"
-; 0xacb53
-
-RuinsofAlphInnerChamber_BlockData: ; 0xacb53
- INCBIN "maps/RuinsofAlphInnerChamber.blk"
-; 0xacbdf
-
-RuinsofAlphHoOhChamber_BlockData: ; 0xacbdf
- INCBIN "maps/RuinsofAlphHoOhChamber.blk"
-; 0xacbf3
-
-SproutTower1F_BlockData: ; 0xacbf3
- INCBIN "maps/SproutTower1F.blk"
-; 0xacc43
-
-BetaSproutTowerCutOut1_BlockData: ; 0xacc43
- INCBIN "maps/BetaSproutTowerCutOut1.blk"
-; 0xacc4d
-
-SproutTower2F_BlockData: ; 0xacc4d
- INCBIN "maps/SproutTower2F.blk"
-; 0xacc9d
-
-BetaSproutTowerCutOut2_BlockData: ; 0xacc9d
- INCBIN "maps/BetaSproutTowerCutOut2.blk"
-; 0xacca7
-
-SproutTower3F_BlockData: ; 0xacca7
- INCBIN "maps/SproutTower3F.blk"
-; 0xaccf7
-
-BetaSproutTowerCutOut3_BlockData: ; 0xaccf7
- INCBIN "maps/BetaSproutTowerCutOut3.blk"
-; 0xacd01
-
-RadioTower1F_BlockData: ; 0xacd01
- INCBIN "maps/RadioTower1F.blk"
-; 0xacd25
-
-RadioTower2F_BlockData: ; 0xacd25
- INCBIN "maps/RadioTower2F.blk"
-; 0xacd49
-
-RadioTower3F_BlockData: ; 0xacd49
- INCBIN "maps/RadioTower3F.blk"
-; 0xacd6d
-
-RadioTower4F_BlockData: ; 0xacd6d
- INCBIN "maps/RadioTower4F.blk"
-; 0xacd91
-
-RadioTower5F_BlockData: ; 0xacd91
- INCBIN "maps/RadioTower5F.blk"
-; 0xacdb5
-
-NewBarkTown_BlockData: ; 0xacdb5
- INCBIN "maps/NewBarkTown.blk"
-; 0xace0f
-
-CherrygroveCity_BlockData: ; 0xace0f
- INCBIN "maps/CherrygroveCity.blk"
-; 0xacec3
-
-VioletCity_BlockData: ; 0xacec3
- INCBIN "maps/VioletCity.blk"
-; 0xad02b
-
-AzaleaTown_BlockData: ; 0xad02b
- INCBIN "maps/AzaleaTown.blk"
-; 0xad0df
-
-CianwoodCity_BlockData: ; 0xad0df
- INCBIN "maps/CianwoodCity.blk"
-; 0xad274
-
-GoldenrodCity_BlockData: ; 0xad274
- INCBIN "maps/GoldenrodCity.blk"
-; 0xad3dc
-
-OlivineCity_BlockData: ; 0xad3dc
- INCBIN "maps/OlivineCity.blk"
-; 0xad544
-
-EcruteakCity_BlockData: ; 0xad544
- INCBIN "maps/EcruteakCity.blk"
-; 0xad6ac
-
-MahoganyTown_BlockData: ; 0xad6ac
- INCBIN "maps/MahoganyTown.blk"
-; 0xad706
-
-LakeofRage_BlockData: ; 0xad706
- INCBIN "maps/LakeofRage.blk"
-; 0xad86e
-
-BlackthornCity_BlockData: ; 0xad86e
- INCBIN "maps/BlackthornCity.blk"
-; 0xad9d6
-
-SilverCaveOutside_BlockData: ; 0xad9d6
- INCBIN "maps/SilverCaveOutside.blk"
-; 0xadb3e
-
-Route6_BlockData: ; 0xadb3e
- INCBIN "maps/Route6.blk"
-; 0xadb98
-
-Route7_BlockData: ; 0xadb98
- INCBIN "maps/Route7.blk"
-; 0xadbf2
-
-Route16_BlockData: ; 0xadbf2
- INCBIN "maps/Route16.blk"
-; 0xadc4c
-
-Route18_BlockData: ; 0xadc4c
- INCBIN "maps/Route18.blk"
-; 0xadca6
-
-WarehouseEntrance_BlockData: ; 0xadca6
- INCBIN "maps/WarehouseEntrance.blk"
-; 0xaddb4
-
-UndergroundPathSwitchRoomEntrances_BlockData: ; 0xaddb4
- INCBIN "maps/UndergroundPathSwitchRoomEntrances.blk"
-; 0xadec2
-
-GoldenrodDeptStoreB1F_BlockData: ; 0xadec2
- INCBIN "maps/GoldenrodDeptStoreB1F.blk"
-; 0xadf1c
-
-UndergroundWarehouse_BlockData: ; 0xadf1c
- INCBIN "maps/UndergroundWarehouse.blk"
-; 0xadf76
-
-BetaElevator_BlockData: ; 0xadf76
- INCBIN "maps/BetaElevator.blk"
-; 0xadf8f
-
-TinTower1F_BlockData: ; 0xadf8f
- INCBIN "maps/TinTower1F.blk"
-; 0xadfe9
-
-TinTower2F_BlockData: ; 0xadfe9
- INCBIN "maps/TinTower2F.blk"
-; 0xae043
-
-TinTower3F_BlockData: ; 0xae043
- INCBIN "maps/TinTower3F.blk"
-; 0xae09d
-
-TinTower4F_BlockData: ; 0xae09d
- INCBIN "maps/TinTower4F.blk"
-; 0xae0f7
-
-TinTower5F_BlockData: ; 0xae0f7
- INCBIN "maps/TinTower5F.blk"
-; 0xae151
-
-TinTower6F_BlockData: ; 0xae151
- INCBIN "maps/TinTower6F.blk"
-; 0xae1ab
-
-TinTower7F_BlockData: ; 0xae1ab
- INCBIN "maps/TinTower7F.blk"
-; 0xae205
-
-TinTower8F_BlockData: ; 0xae205
- INCBIN "maps/TinTower8F.blk"
-; 0xae25f
-
-TinTower9F_BlockData: ; 0xae25f
- INCBIN "maps/TinTower9F.blk"
-; 0xae2b9
-
-TinTowerRoof_BlockData: ; 0xae2b9
- INCBIN "maps/TinTowerRoof.blk"
-; 0xae313
-
-BurnedTower1F_BlockData: ; 0xae313
- INCBIN "maps/BurnedTower1F.blk"
-; 0xae36d
-
-BurnedTowerB1F_BlockData: ; 0xae36d
- INCBIN "maps/BurnedTowerB1F.blk"
-; 0xae3c7
-
-BetaCaveTestMap_BlockData: ; 0xae3c7
- INCBIN "maps/BetaCaveTestMap.blk"
-; 0xae4d5
-
-MountMortar1FOutside_BlockData: ; 0xae4d5
- INCBIN "maps/MountMortar1FOutside.blk"
-; 0xae63d
-
-MountMortar1FInside_BlockData: ; 0xae63d
- INCBIN "maps/MountMortar1FInside.blk"
-; 0xae859
-
-MountMortar2FInside_BlockData: ; 0xae859
- INCBIN "maps/MountMortar2FInside.blk"
-; 0xae9c1
-
-MountMortarB1F_BlockData: ; 0xae9c1
- INCBIN "maps/MountMortarB1F.blk"
-; 0xaeb29
-
-IcePath1F_BlockData: ; 0xaeb29
- INCBIN "maps/IcePath1F.blk"
-; 0xaec91
-
-IcePathB1F_BlockData: ; 0xaec91
- INCBIN "maps/IcePathB1F.blk"
-; 0xaed45
-
-IcePathB2FMahoganySide_BlockData: ; 0xaed45
- INCBIN "maps/IcePathB2FMahoganySide.blk"
-; 0xaed9f
-
-IcePathB2FBlackthornSide_BlockData: ; 0xaed9f
- INCBIN "maps/IcePathB2FBlackthornSide.blk"
-; 0xaedcc
-
-IcePathB3F_BlockData: ; 0xaedcc
- INCBIN "maps/IcePathB3F.blk"
-; 0xaee26
-
-WhirlIslandNW_BlockData: ; 0xaee26
- INCBIN "maps/WhirlIslandNW.blk"
-; 0xaee53
-
-WhirlIslandNE_BlockData: ; 0xaee53
- INCBIN "maps/WhirlIslandNE.blk"
-; 0xaeead
-
-WhirlIslandSW_BlockData: ; 0xaeead
- INCBIN "maps/WhirlIslandSW.blk"
-; 0xaef07
-
-WhirlIslandCave_BlockData: ; 0xaef07
- INCBIN "maps/WhirlIslandCave.blk"
-; 0xaef34
-
-WhirlIslandSE_BlockData: ; 0xaef34
- INCBIN "maps/WhirlIslandSE.blk"
-; 0xaef61
-
-WhirlIslandB1F_BlockData: ; 0xaef61
- INCBIN "maps/WhirlIslandB1F.blk"
-; 0xaf0c9
-
-WhirlIslandB2F_BlockData: ; 0xaf0c9
- INCBIN "maps/WhirlIslandB2F.blk"
-; 0xaf17d
-
-WhirlIslandLugiaChamber_BlockData: ; 0xaf17d
- INCBIN "maps/WhirlIslandLugiaChamber.blk"
-; 0xaf1d7
-
-SilverCaveRoom1_BlockData: ; 0xaf1d7
- INCBIN "maps/SilverCaveRoom1.blk"
-; 0xaf28b
-
-SilverCaveRoom2_BlockData: ; 0xaf28b
- INCBIN "maps/SilverCaveRoom2.blk"
-; 0xaf399
-
-SilverCaveRoom3_BlockData: ; 0xaf399
- INCBIN "maps/SilverCaveRoom3.blk"
-; 0xaf44d
-
-BetaRocketHideout1_BlockData: ; 0xaf44d
- INCBIN "maps/BetaRocketHideout1.blk"
-; 0xaf55b
-
-BetaRocketHideout2_BlockData: ; 0xaf55b
- INCBIN "maps/BetaRocketHideout2.blk"
-; 0xaf669
-
-BetaEmptyHouse_BlockData: ; 0xaf669
- INCBIN "maps/BetaEmptyHouse.blk"
-; 0xaf777
-
-BetaRocketHideout3_BlockData: ; 0xaf777
- INCBIN "maps/BetaRocketHideout3.blk"
-; 0xaf885
-
-MahoganyMart1F_BlockData: ; 0xaf885
- INCBIN "maps/MahoganyMart1F.blk"
-; 0xaf895
-
-TeamRocketBaseB1F_BlockData: ; 0xaf895
- INCBIN "maps/TeamRocketBaseB1F.blk"
-; 0xaf91c
-
-TeamRocketBaseB2F_BlockData: ; 0xaf91c
- INCBIN "maps/TeamRocketBaseB2F.blk"
-; 0xaf9a3
-
-TeamRocketBaseB3F_BlockData: ; 0xaf9a3
- INCBIN "maps/TeamRocketBaseB3F.blk"
-; 0xafa2a
-
-BetaRoute23EarlyVersion_BlockData: ; 0xafa2a
- INCBIN "maps/BetaRoute23EarlyVersion.blk"
-; 0xafa84
-
-IndigoPlateauPokeCenter1F_BlockData: ; 0xafa84
- INCBIN "maps/IndigoPlateauPokeCenter1F.blk"
-; 0xafac3
-
-WillsRoom_BlockData: ; 0xafac3
- INCBIN "maps/WillsRoom.blk"
-; 0xafaf0
-
-KogasRoom_BlockData: ; 0xafaf0
- INCBIN "maps/KogasRoom.blk"
-; 0xafb1d
-
-BrunosRoom_BlockData: ; 0xafb1d
- INCBIN "maps/BrunosRoom.blk"
-; 0xafb4a
-
-KarensRoom_BlockData: ; 0xafb4a
- INCBIN "maps/KarensRoom.blk"
-; 0xafb77
-
-AzaleaGym_BlockData: ; 0xafb77
- INCBIN "maps/AzaleaGym.blk"
-; 0xafb9f
-
-VioletGym_BlockData: ; 0xafb9f
- INCBIN "maps/VioletGym.blk"
-; 0xafbc7
-
-GoldenrodGym_BlockData: ; 0xafbc7
- INCBIN "maps/GoldenrodGym.blk"
-; 0xafc21
-
-EcruteakGym_BlockData: ; 0xafc21
- INCBIN "maps/EcruteakGym.blk"
-; 0xafc4e
-
-MahoganyGym_BlockData: ; 0xafc4e
- INCBIN "maps/MahoganyGym.blk"
-; 0xafc7b
-
-OlivineGym_BlockData: ; 0xafc7b
- INCBIN "maps/OlivineGym.blk"
-; 0xafca3
-
-BetaUnknown_BlockData: ; 0xafca3
- INCBIN "maps/BetaUnknown.blk"
-; 0xafcb7
-
-CianwoodGym_BlockData: ; 0xafcb7
- INCBIN "maps/CianwoodGym.blk"
-; 0xafce4
-
-BlackthornGym1F_BlockData: ; 0xafce4
- INCBIN "maps/BlackthornGym1F.blk"
-; 0xafd11
-
-BlackthornGym2F_BlockData: ; 0xafd11
- INCBIN "maps/BlackthornGym2F.blk"
-; 0xafd3e
-
-OlivineLighthouse1F_BlockData: ; 0xafd3e
- INCBIN "maps/OlivineLighthouse1F.blk"
-; 0xafd98
-
-OlivineLighthouse2F_BlockData: ; 0xafd98
- INCBIN "maps/OlivineLighthouse2F.blk"
-; 0xafdf2
-
-OlivineLighthouse3F_BlockData: ; 0xafdf2
- INCBIN "maps/OlivineLighthouse3F.blk"
-; 0xafe4c
-
-OlivineLighthouse4F_BlockData: ; 0xafe4c
- INCBIN "maps/OlivineLighthouse4F.blk"
-; 0xafea6
-
-OlivineLighthouse5F_BlockData: ; 0xafea6
- INCBIN "maps/OlivineLighthouse5F.blk"
-; 0xaff00
-
-OlivineLighthouse6F_BlockData: ; 0xaff00
- INCBIN "maps/OlivineLighthouse6F.blk"
-; 0xaff5a
+INCLUDE "maps/blockdata_2.asm"
SECTION "bank2C",ROMX,BANK[$2C]
-BetaCave2_BlockData: ; 0xb0000
- INCBIN "maps/BetaCave2.blk"
-; 0xb0023
-
-SlowpokeWellB1F_BlockData: ; 0xb0023
- INCBIN "maps/SlowpokeWellB1F.blk"
-; 0xb007d
-
-SlowpokeWellB2F_BlockData: ; 0xb007d
- INCBIN "maps/SlowpokeWellB2F.blk"
-; 0xb00d7
-
-IlexForest_BlockData: ; 0xb00d7
- INCBIN "maps/IlexForest.blk"
-; 0xb026c
-
-DarkCaveVioletEntrance_BlockData: ; 0xb026c
- INCBIN "maps/DarkCaveVioletEntrance.blk"
-; 0xb03d4
-
-DarkCaveBlackthornEntrance_BlockData: ; 0xb03d4
- INCBIN "maps/DarkCaveBlackthornEntrance.blk"
-; 0xb04e2
-
-RuinsofAlphResearchCenter_BlockData: ; 0xb04e2
- INCBIN "maps/RuinsofAlphResearchCenter.blk"
-; 0xb04f2
-
-GoldenrodBikeShop_BlockData: ; 0xb04f2
- INCBIN "maps/GoldenrodBikeShop.blk"
-; 0xb0502
-
-DanceTheatre_BlockData: ; 0xb0502
- INCBIN "maps/DanceTheatre.blk"
-; 0xb052c
-
-EcruteakHouse_BlockData: ; 0xb052c
- INCBIN "maps/EcruteakHouse.blk"
-; 0xb0586
-
-GoldenrodGameCorner_BlockData: ; 0xb0586
- INCBIN "maps/GoldenrodGameCorner.blk"
-; 0xb05cc
-
-Route35NationalParkgate_BlockData: ; 0xb05cc
- INCBIN "maps/Route35NationalParkgate.blk"
-; 0xb05dc
-
-Route36NationalParkgate_BlockData: ; 0xb05dc
- INCBIN "maps/Route36NationalParkgate.blk"
-; 0xb05f0
-
-FastShip1F_BlockData: ; 0xb05f0
- INCBIN "maps/FastShip1F.blk"
-; 0xb0680
-
-FastShipB1F_BlockData: ; 0xb0680
- INCBIN "maps/FastShipB1F.blk"
-; 0xb0700
-
-BetaSsAquaInsideCutOut_BlockData: ; 0xb0700
- INCBIN "maps/BetaSsAquaInsideCutOut.blk"
-; 0xb0710
-
-FastShipCabins_NNW_NNE_NE_BlockData: ; 0xb0710
- INCBIN "maps/FastShipCabins_NNW_NNE_NE.blk"
-; 0xb0750
-
-FastShipCabins_SW_SSW_NW_BlockData: ; 0xb0750
- INCBIN "maps/FastShipCabins_SW_SSW_NW.blk"
-; 0xb0790
-
-FastShipCabins_SE_SSE_CaptainsCabin_BlockData: ; 0xb0790
- INCBIN "maps/FastShipCabins_SE_SSE_CaptainsCabin.blk"
-; 0xb07e5
-
-OlivinePort_BlockData: ; 0xb07e5
- INCBIN "maps/OlivinePort.blk"
-; 0xb0899
-
-VermilionPort_BlockData: ; 0xb0899
- INCBIN "maps/VermilionPort.blk"
-; 0xb094d
-
-OlivineCafe_BlockData: ; 0xb094d
- INCBIN "maps/OlivineCafe.blk"
-; 0xb095d
-
-KrissHouse2F_BlockData: ; 0xb095d
- INCBIN "maps/KrissHouse2F.blk"
-; 0xb0969
-
-SaffronTrainStation_BlockData: ; 0xb0969
- INCBIN "maps/SaffronTrainStation.blk"
-; 0xb09c3
-
-CeruleanGym_BlockData: ; 0xb09c3
- INCBIN "maps/CeruleanGym.blk"
-; 0xb09eb
-
-VermilionGym_BlockData: ; 0xb09eb
- INCBIN "maps/VermilionGym.blk"
-; 0xb0a18
-
-SaffronGym_BlockData: ; 0xb0a18
- INCBIN "maps/SaffronGym.blk"
-; 0xb0a72
-
-PowerPlant_BlockData: ; 0xb0a72
- INCBIN "maps/PowerPlant.blk"
-; 0xb0acc
-
-PokemonFanClub_BlockData: ; 0xb0acc
- INCBIN "maps/PokemonFanClub.blk"
-; 0xb0ae0
-
-FightingDojo_BlockData: ; 0xb0ae0
- INCBIN "maps/FightingDojo.blk"
-; 0xb0afe
-
-SilphCo1F_BlockData: ; 0xb0afe
- INCBIN "maps/SilphCo1F.blk"
-; 0xb0b1e
-
-ViridianGym_BlockData: ; 0xb0b1e
- INCBIN "maps/ViridianGym.blk"
-; 0xb0b4b
-
-TrainerHouse1F_BlockData: ; 0xb0b4b
- INCBIN "maps/TrainerHouse1F.blk"
-; 0xb0b6e
-
-TrainerHouseB1F_BlockData: ; 0xb0b6e
- INCBIN "maps/TrainerHouseB1F.blk"
-; 0xb0b96
-
-RedsHouse1F_BlockData: ; 0xb0b96
- INCBIN "maps/RedsHouse1F.blk"
-; 0xb0ba6
-
-RedsHouse2F_BlockData: ; 0xb0ba6
- INCBIN "maps/RedsHouse2F.blk"
-; 0xb0bb6
-
-OaksLab_BlockData: ; 0xb0bb6
- INCBIN "maps/OaksLab.blk"
-; 0xb0bd4
-
-MrFujisHouse_BlockData: ; 0xb0bd4
- INCBIN "maps/MrFujisHouse.blk"
-; 0xb0be8
-
-LavRadioTower1F_BlockData: ; 0xb0be8
- INCBIN "maps/LavRadioTower1F.blk"
-; 0xb0c10
-
-SilverCaveItemRooms_BlockData: ; 0xb0c10
- INCBIN "maps/SilverCaveItemRooms.blk"
-; 0xb0c6a
-
-DayCare_BlockData: ; 0xb0c6a
- INCBIN "maps/DayCare.blk"
-; 0xb0c7e
-
-SoulHouse_BlockData: ; 0xb0c7e
- INCBIN "maps/SoulHouse.blk"
-; 0xb0c92
-
-PewterGym_BlockData: ; 0xb0c92
- INCBIN "maps/PewterGym.blk"
-; 0xb0cb5
-
-CeladonGym_BlockData: ; 0xb0cb5
- INCBIN "maps/CeladonGym.blk"
-; 0xb0ce2
-
-BetaHouse2_BlockData: ; 0xb0ce2
- INCBIN "maps/BetaHouse2.blk"
-; 0xb0cf6
-
-CeladonCafe_BlockData: ; 0xb0cf6
- INCBIN "maps/CeladonCafe.blk"
-; 0xb0d0e
-
-BetaCeladonMansion_BlockData: ; 0xb0d0e
- INCBIN "maps/BetaCeladonMansion.blk"
-; 0xb0d26
-
-RockTunnel1F_BlockData: ; 0xb0d26
- INCBIN "maps/RockTunnel1F.blk"
-; 0xb0e34
-
-RockTunnelB1F_BlockData: ; 0xb0e34
- INCBIN "maps/RockTunnelB1F.blk"
-; 0xb0f42
-
-DiglettsCave_BlockData: ; 0xb0f42
- INCBIN "maps/DiglettsCave.blk"
-; 0xb0ff6
-
-MountMoon_BlockData: ; 0xb0ff6
- INCBIN "maps/MountMoon.blk"
-; 0xb107d
-
-SeafoamGym_BlockData: ; 0xb107d
- INCBIN "maps/SeafoamGym.blk"
-; 0xb1091
-
-MrPokemonsHouse_BlockData: ; 0xb1091
- INCBIN "maps/MrPokemonsHouse.blk"
-; 0xb10a1
-
-VictoryRoadGate_BlockData: ; 0xb10a1
- INCBIN "maps/VictoryRoadGate.blk"
-; 0xb10fb
-
-OlivinePortPassage_BlockData: ; 0xb10fb
- INCBIN "maps/OlivinePortPassage.blk"
-; 0xb1155
-
-FuchsiaGym_BlockData: ; 0xb1155
- INCBIN "maps/FuchsiaGym.blk"
-; 0xb1182
-
-SafariZoneBeta_BlockData: ; 0xb1182
- INCBIN "maps/SafariZoneBeta.blk"
-; 0xb1236
-
-Underground_BlockData: ; 0xb1236
- INCBIN "maps/Underground.blk"
-; 0xb1260
-
-Route39Barn_BlockData: ; 0xb1260
- INCBIN "maps/Route39Barn.blk"
-; 0xb1270
-
-VictoryRoad_BlockData: ; 0xb1270
- INCBIN "maps/VictoryRoad.blk"
-; 0xb13d8
-
-Route23_BlockData: ; 0xb13d8
- INCBIN "maps/Route23.blk"
-; 0xb1432
-
-LancesRoom_BlockData: ; 0xb1432
- INCBIN "maps/LancesRoom.blk"
-; 0xb146e
-
-HallOfFame_BlockData: ; 0xb146e
- INCBIN "maps/HallOfFame.blk"
-; 0xb1491
-
-CopycatsHouse1F_BlockData: ; 0xb1491
- INCBIN "maps/CopycatsHouse1F.blk"
-; 0xb14a1
-
-CopycatsHouse2F_BlockData: ; 0xb14a1
- INCBIN "maps/CopycatsHouse2F.blk"
-; 0xb14b0
-
-GoldenrodFlowerShop_BlockData: ; 0xb14b0
- INCBIN "maps/GoldenrodFlowerShop.blk"
-; 0xb14c0
-
-MountMoonSquare_BlockData: ; 0xb14c0
- INCBIN "maps/MountMoonSquare.blk"
-; 0xb1547
-
-WiseTriosRoom_BlockData: ; 0xb1547
- INCBIN "maps/WiseTriosRoom.blk"
-; 0xb1557
-
-DragonsDen1F_BlockData: ; 0xb1557
- INCBIN "maps/DragonsDen1F.blk"
-; 0xb1584
-
-DragonsDenB1F_BlockData: ; 0xb1584
- INCBIN "maps/DragonsDenB1F.blk"
-; 0xb16ec
-
-TohjoFalls_BlockData: ; 0xb16ec
- INCBIN "maps/TohjoFalls.blk"
-; 0xb1773
-
-RuinsofAlphHoOhItemRoom_BlockData: ; 0xb1773
- INCBIN "maps/RuinsofAlphHoOhItemRoom.blk"
-; 0xb1787
-
-RuinsofAlphHoOhWordRoom_BlockData: ; 0xb1787
- INCBIN "maps/RuinsofAlphHoOhWordRoom.blk"
-; 0xb17ff
-
-RuinsofAlphKabutoWordRoom_BlockData: ; 0xb17ff
- INCBIN "maps/RuinsofAlphKabutoWordRoom.blk"
-; 0xb1845
-
-RuinsofAlphOmanyteWordRoom_BlockData: ; 0xb1845
- INCBIN "maps/RuinsofAlphOmanyteWordRoom.blk"
-; 0xb1895
-
-RuinsofAlphAerodactylWordRoom_BlockData: ; 0xb1895
- INCBIN "maps/RuinsofAlphAerodactylWordRoom.blk"
-; 0xb18db
-
-DragonShrine_BlockData: ; 0xb18db
- INCBIN "maps/DragonShrine.blk"
-; 0xb18f4
-
-BattleTower1F_BlockData: ; 0xb18f4
- INCBIN "maps/BattleTower1F.blk"
-; 0xb191c
-
-BattleTowerBattleRoom_BlockData: ; 0xb191c
- INCBIN "maps/BattleTowerBattleRoom.blk"
-; 0xb192c
-
-GoldenrodPokeComCenter2FMobile_BlockData: ; 0xb192c
- INCBIN "maps/GoldenrodPokeComCenter2FMobile.blk"
-; 0xb1a2c
-
-MobileTradeRoomMobile_BlockData: ; 0xb1a2c
- INCBIN "maps/MobileTradeRoomMobile.blk"
-; 0xb1a40
-
-MobileBattleRoom_BlockData: ; 0xb1a40
- INCBIN "maps/MobileBattleRoom.blk"
-; 0xb1a54
-
-BattleTowerHallway_BlockData: ; 0xb1a54
- INCBIN "maps/BattleTowerHallway.blk"
-; 0xb1a6a
-
-BattleTowerElevator_BlockData: ; 0xb1a6a
- INCBIN "maps/BattleTowerElevator.blk"
-; 0xb1a6e
-
-BattleTowerOutside_BlockData: ; 0xb1a6e
- INCBIN "maps/BattleTowerOutside.blk"
-; 0xb1afa
-
-BetaBlank_BlockData: ; 0xb1afa
- INCBIN "maps/BetaBlank.blk"
-; 0xb1b22
-
-GoldenrodDeptStoreRoof_BlockData: ; 0xb1b22
- INCBIN "maps/GoldenrodDeptStoreRoof.blk"
-; 0xb1b42
+INCLUDE "maps/blockdata_3.asm"
SECTION "bank2D",ROMX,BANK[$2D]
-Tileset21GFX: ; 0xb4000
-INCBIN "gfx/tilesets/21.lz"
-; 0xb4893
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset21Meta: ; 0xb48a0
-INCBIN "tilesets/21_metatiles.bin"
-; 0xb4ca0
-
-Tileset21Coll: ; 0xb4ca0
-INCBIN "tilesets/21_collision.bin"
-; 0xb4da0
-
-Tileset22GFX: ; 0xb4da0
-INCBIN "gfx/tilesets/22.lz"
-; 0xb50d1
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset22Meta: ; 0xb50e0
-INCBIN "tilesets/22_metatiles.bin"
-; 0xb54e0
-
-Tileset22Coll: ; 0xb54e0
-INCBIN "tilesets/22_collision.bin"
-; 0xb55e0
-
-Tileset08GFX: ; 0xb55e0
-INCBIN "gfx/tilesets/08.lz"
-; 0xb59db
-
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset08Meta: ; 0xb59e0
-INCBIN "tilesets/08_metatiles.bin"
-; 0xb5de0
-
-Tileset08Coll: ; 0xb5de0
-INCBIN "tilesets/08_collision.bin"
-; 0xb5ee0
-
-Tileset02GFX: ; 0xb5ee0
-Tileset04GFX: ; 0xb5ee0
-INCBIN "gfx/tilesets/04.lz"
-; 0xb6ae7
-
- db $00
-
-Tileset02Meta: ; 0xb6ae8
-INCBIN "tilesets/02_metatiles.bin"
-; 0xb72e8
-
-Tileset02Coll: ; 0xb72e8
-INCBIN "tilesets/02_collision.bin"
-; 0xb74e8
-
-Tileset16GFX: ; 0xb74e8
-INCBIN "gfx/tilesets/16.lz"
-; 0xb799a
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset16Meta: ; 0xb79a8
-INCBIN "tilesets/16_metatiles.bin"
-; 0xb7da8
-
-Tileset16Coll: ; 0xb7da8
-INCBIN "tilesets/16_collision.bin"
-; 0xb7ea8
+INCLUDE "tilesets/data_5.asm"
SECTION "bank2E",ROMX,BANK[$2E]
@@ -61962,40 +69234,46 @@ Functionb81e2: ; b81e2
INCBIN "baserom.gbc", $b81ea, $b8219 - $b81ea
Functionb8219: ; b8219
-; deals strictly with rockmon encounter
+; get a RockMon encounter
+
xor a
ld [$d22e], a
ld [CurPartyLevel], a
- ld hl, WildRockMonMapTable
+
+ ld hl, RockMonMaps
call GetTreeMonEncounterTable
jr nc, .quit
- call LoadWildTreeMonData
+
+ call LoadTreeMonData
jr nc, .quit
- ld a, $0a
+
+ ld a, 10
call Function2fb1
- cp a, $04
+ cp 4
jr nc, .quit
- call $441f
+
+ call Functionb841f
jr nc, .quit
+
ret
+
.quit
xor a
ret
; b823e
-db $05 ; ????
+ db $05 ; ????
GetTreeMonEncounterTable: ; b823f
-; reads a map-sensitive encounter table
-; compares current map with maps in the table
-; if there is a match, encounter table # is loaded into a
+; Return carry and table id in a
+; if MapGroup and MapNumber are in table hl
ld a, [MapNumber]
ld e, a
ld a, [MapGroup]
ld d, a
.loop
ld a, [hli]
- cp a, $ff
+ cp $ff
jr z, .quit
cp d
jr nz, .skip2
@@ -62019,55 +69297,60 @@ GetTreeMonEncounterTable: ; b823f
INCBIN "baserom.gbc", $B825E, $b82c5 - $b825e
-WildRockMonMapTable: ; b82c5
- db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $07
- db GROUP_ROUTE_40, MAP_ROUTE_40, $07
- db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE, $07
- db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F, $07
+RockMonMaps: ; b82c5
+ db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, 7
+ db GROUP_ROUTE_40, MAP_ROUTE_40, 7
+ db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE, 7
+ db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F, 7
db $ff ; end
; b82d2
-LoadWildTreeMonData: ; b82d2
-; input: a = table number
-; returns wildtreemontable pointer in hl
-; sets carry if successful
- cp a, $08 ; which table?
- jr nc, .quit ; only 8 tables
+LoadTreeMonData: ; b82d2
+; Return TreeMon pointer a in hl
+; Return carry on success
+
+; only 7 tables
+ cp 8
+ jr nc, .quit
+
and a
- jr z, .quit ; 0 is invalid
+ jr z, .quit
+
ld e, a
- ld d, $00
- ld hl, WildTreeMonPointerTable
+ ld d, 0
+ ld hl, TreeMonPointers
add hl, de
add hl, de
- ld a, [hli] ; store pointer in hl
+
+ ld a, [hli]
ld h, [hl]
ld l, a
+
scf
ret
+
.quit
xor a
ret
; b82e8
-WildTreeMonPointerTable: ; b82e8
+TreeMonPointers: ; b82e8
; seems to point to "normal" tree encounter data
-; as such only odd-numbered tables are used
-; rockmon is 13th
- dw WildTreeMonTable1 ; filler
- dw WildTreeMonTable1 ; 1
- dw WildTreeMonTable3 ; 2
- dw WildTreeMonTable5 ; 3
- dw WildTreeMonTable7 ; 4
- dw WildTreeMonTable9 ; 5
- dw WildTreeMonTable11 ; 6
- dw WildRockMonTable ; 7
- dw WildTreeMonTable1 ; 8
+; so only odd-numbered tables are used
+ dw TreeMons1 ; filler
+ dw TreeMons1 ; 1
+ dw TreeMons3 ; 2
+ dw TreeMons5 ; 3
+ dw TreeMons7 ; 4
+ dw TreeMons9 ; 5
+ dw TreeMons11 ; 6
+ dw RockMons ; 7
+ dw TreeMons1 ; filler
; b82fa
; structure: % species level
-WildTreeMonTable1: ; b82fa
+TreeMons1: ; b82fa
db 50, SPEAROW, 10
db 15, SPEAROW, 10
db 15, SPEAROW, 10
@@ -62077,7 +69360,7 @@ WildTreeMonTable1: ; b82fa
db $ff ; end
; b830d
-WildTreeMonTable2 ; b830d
+TreeMons2 ; b830d
; unused
db 50, SPEAROW, 10
db 15, HERACROSS, 10
@@ -62088,7 +69371,7 @@ WildTreeMonTable2 ; b830d
db $ff ; end
; b8320
-WildTreeMonTable3: ; b8320
+TreeMons3: ; b8320
db 50, SPEAROW, 10
db 15, EKANS, 10
db 15, SPEAROW, 10
@@ -62098,7 +69381,7 @@ WildTreeMonTable3: ; b8320
db $ff ; end
; b8333
-WildTreeMonTable4: ; b8333
+TreeMons4: ; b8333
; unused
db 50, SPEAROW, 10
db 15, HERACROSS, 10
@@ -62109,7 +69392,7 @@ WildTreeMonTable4: ; b8333
db $ff ; end
; b8346
-WildTreeMonTable5: ; b8346
+TreeMons5: ; b8346
db 50, HOOTHOOT, 10
db 15, SPINARAK, 10
db 15, LEDYBA, 10
@@ -62119,7 +69402,7 @@ WildTreeMonTable5: ; b8346
db $ff ; end
; b8359
-WildTreeMonTable6: ; b8359
+TreeMons6: ; b8359
; unused
db 50, HOOTHOOT, 10
db 15, PINECO, 10
@@ -62130,7 +69413,7 @@ WildTreeMonTable6: ; b8359
db $ff ; end
; b836c
-WildTreeMonTable7: ; b836c
+TreeMons7: ; b836c
db 50, HOOTHOOT, 10
db 15, EKANS, 10
db 15, HOOTHOOT, 10
@@ -62140,7 +69423,7 @@ WildTreeMonTable7: ; b836c
db $ff ; end
; b837f
-WildTreeMonTable8: ; b837f
+TreeMons8: ; b837f
; unused
db 50, HOOTHOOT, 10
db 15, PINECO, 10
@@ -62151,7 +69434,7 @@ WildTreeMonTable8: ; b837f
db $ff ; end
; b8392
-WildTreeMonTable9: ; b8392
+TreeMons9: ; b8392
db 50, HOOTHOOT, 10
db 15, VENONAT, 10
db 15, HOOTHOOT, 10
@@ -62161,7 +69444,7 @@ WildTreeMonTable9: ; b8392
db $ff ; end
; b83a5
-WildTreeMonTable10: ; b83a5
+TreeMons10: ; b83a5
; unused
db 50, HOOTHOOT, 10
db 15, PINECO, 10
@@ -62172,7 +69455,7 @@ WildTreeMonTable10: ; b83a5
db $ff ; end
; b83b8
-WildTreeMonTable11: ; b83b8
+TreeMons11: ; b83b8
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
@@ -62182,7 +69465,7 @@ WildTreeMonTable11: ; b83b8
db $ff ; end
; b83cb
-WildTreeMonTable12; b83cb
+TreeMons12; b83cb
; unused
db 50, HOOTHOOT, 10
db 15, CATERPIE, 10
@@ -62193,13 +69476,82 @@ WildTreeMonTable12; b83cb
db $ff ; end
; b83de
-WildRockMonTable: ; b83de
+RockMons: ; b83de
db 90, KRABBY, 15
db 10, SHUCKLE, 15
db $ff ; end
; b83e5
-INCBIN "baserom.gbc", $b83e5, $b9229 - $b83e5
+INCBIN "baserom.gbc", $b83e5, $b841f - $b83e5
+
+Functionb841f: ; b841f
+; Read a TreeMons table.
+
+ ld a, 100
+ call Function2fb1
+.asm_b8424
+ sub [hl]
+ jr c, .asm_b842c
+ inc hl
+ inc hl
+ inc hl
+ jr .asm_b8424
+
+.asm_b842c
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_b843b
+ ld a, [hli]
+ ld [$d22e], a
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ scf
+ ret
+
+.asm_b843b
+ xor a
+ ld [$d22e], a
+ ld [CurPartyLevel], a
+ ret
+; b8443
+
+INCBIN "baserom.gbc", $b8443, $b8f8f - $b8443
+
+Functionb8f8f: ; b8f8f
+ ld a, c
+ swap a
+ and $f
+ ld hl, $4ff9
+ ld d, $0
+ ld e, a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ inc hl
+ ld a, c
+ and $f
+ ld c, a
+ push hl
+ ld hl, $4fb8
+ ld e, b
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ call _hl_
+ pop hl
+ ld c, [hl]
+ ret
+; b8fb8
+
+INCBIN "baserom.gbc", $b8fb8, $b9229 - $b8fb8
Functionb9229: ; b9229
ld a, [CurPartyMon]
@@ -62323,441 +69675,31 @@ Functionb92b8: ; b92b8
INCBIN "baserom.gbc", $b92f7, $b9e76 - $b92f7
-Functionb9e76: ; b9e76
+ItemIsMail: ; b9e76
ld a, d
- ld hl, $5e80
- ld de, $0001
+ ld hl, .items
+ ld de, 1
jp IsInArray
; b9e80
-INCBIN "baserom.gbc", $b9e80, $b9e8b - $b9e80
+.items
+ db FLOWER_MAIL
+ 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 $ff
+; b9e8b
SECTION "bank2F",ROMX,BANK[$2F]
-INCBIN "baserom.gbc", $bc000, $bc09c - $bc000
-
-PokeCenterNurseScript: ; bc09c
-; Talking to a nurse in a Pokemon Center
-
- loadfont
-; The nurse has different text for:
-; Morn
- checktime $1
- iftrue .morn
-; Day
- checktime $2
- iftrue .day
-; Nite
- checktime $4
- iftrue .nite
-; If somehow it's not a time of day at all, we skip the introduction
- 2jump .heal
-
-.morn
-; Different text if we're in the com center
- checkbit1 $032a
- iftrue .morn_comcenter
-; Good morning! Welcome to ...
- 3writetext BANK(UnknownText_0x1b0000), UnknownText_0x1b0000
- keeptextopen
- 2jump .heal
-.morn_comcenter
-; Good morning! This is the ...
- 3writetext BANK(UnknownText_0x1b008a), UnknownText_0x1b008a
- keeptextopen
- 2jump .heal
-
-.day
-; Different text if we're in the com center
- checkbit1 $032a
- iftrue .day_comcenter
-; Hello! Welcome to ...
- 3writetext BANK(UnknownText_0x1b002b), UnknownText_0x1b002b
- keeptextopen
- 2jump .heal
-.day_comcenter
-; Hello! This is the ...
- 3writetext BANK(UnknownText_0x1b00d6), UnknownText_0x1b00d6
- keeptextopen
- 2jump .heal
-
-.nite
-; Different text if we're in the com center
- checkbit1 $032a
- iftrue .nite_comcenter
-; Good evening! You're out late. ...
- 3writetext BANK(UnknownText_0x1b004f), UnknownText_0x1b004f
- keeptextopen
- 2jump .heal
-.nite_comcenter
-; Good to see you working so late. ...
- 3writetext BANK(UnknownText_0x1b011b), UnknownText_0x1b011b
- keeptextopen
- 2jump .heal
-
-.heal
-; If we come back, don't welcome us to the com center again
- clearbit1 $032a
-; Ask if you want to heal
- 3writetext BANK(UnknownText_0x1b017a), UnknownText_0x1b017a
- yesorno
- iffalse .end
-; Go ahead and heal
- 3writetext BANK(UnknownText_0x1b01bd), UnknownText_0x1b01bd
- pause 20
- special $009d
-; Turn to the machine
- spriteface $fe, $2
- pause 10
- special $001b
- playmusic $0000
- writebyte $0
- special $003e
- pause 30
- special $003d
- spriteface $fe, $0
- pause 10
-; Has Elm already phoned you about Pokerus?
- checkphonecall
- iftrue .done
-; Has Pokerus already been found in the Pokecenter?
- checkbit2 $000d
- iftrue .done
-; Check for Pokerus
- special $004e ; SPECIAL_CHECKPOKERUS
- iftrue .pokerus
-.done
-; Thank you for waiting. ...
- 3writetext BANK(UnknownText_0x1b01d7), UnknownText_0x1b01d7
- pause 20
-.end
-; We hope to see you again.
- 3writetext BANK(UnknownText_0x1b020b), UnknownText_0x1b020b
-; Curtsy
- spriteface $fe, $1
- pause 10
- spriteface $fe, $0
- pause 10
-; And we're out
- closetext
- loadmovesprites
- end
-
-.pokerus
-; Different text for com center (excludes 'in a Pokemon Center')
-; Since flag $32a is cleared when healing,
-; this text is never actually seen
- checkbit1 $032a
- iftrue .pokerus_comcenter
-; Your Pokemon appear to be infected ...
- 3writetext BANK(UnknownText_0x1b0241), UnknownText_0x1b0241
- closetext
- loadmovesprites
- 2jump .endpokerus
-.pokerus_comcenter
-; Your Pokemon appear to be infected ...
- 3writetext BANK(UnknownText_0x1b02d6), UnknownText_0x1b02d6
- closetext
- loadmovesprites
-.endpokerus
-; Don't tell us about Pokerus again
- setbit2 $000d
-; Trigger Elm's Pokerus phone call
- specialphonecall $0001
- end
-; bc162
-
-INCBIN "baserom.gbc", $bc162, $bcea5-$bc162
-
-UnusedPhoneScript: ; 0xbcea5
- 3writetext BANK(UnusedPhoneText), UnusedPhoneText
- end
-
-MomPhoneScript: ; 0xbceaa
- checkbit1 $0040
- iftrue .bcec5
- checkbit1 $0041 ; if dude talked to you, then you left home without talking to mom
- iftrue MomPhoneLectureScript
- checkbit1 $001f
- iftrue MomPhoneNoGymQuestScript
- checkbit1 $001a
- iftrue MomPhoneNoPokedexScript
- 2jump MomPhoneNoPokemonScript
-
-.bcec5 ; 0xbcec5
- checkbit1 $0007
- iftrue MomPhoneHangUpScript
- 3writetext BANK(MomPhoneGreetingText), MomPhoneGreetingText
- keeptextopen
- mapnametotext $0
- checkcode $f
- if_equal $1, UnknownScript_0xbcee7
- if_equal $2, $4f27
- 2jump UnknownScript_0xbcf2f
-
-UnknownScript_0xbcedf: ; 0xbcedf
- 3writetext $6d, $4021
- keeptextopen
- 2jump UnknownScript_0xbcf37
-
-UnknownScript_0xbcee7: ; 0xbcee7
- checkcode $c
- if_equal GROUP_NEW_BARK_TOWN, .newbark
- if_equal GROUP_CHERRYGROVE_CITY, .cherrygrove
- if_equal GROUP_VIOLET_CITY, .violet
- if_equal GROUP_AZALEA_TOWN, .azalea
- if_equal GROUP_GOLDENROD_CITY, .goldenrod
- 3writetext BANK(MomPhoneGenericAreaText), MomPhoneGenericAreaText
- keeptextopen
- 2jump UnknownScript_0xbcf37
-
-.newbark ; 0xbcf05
- 3writetext BANK(MomPhoneNewBarkText), MomPhoneNewBarkText
- keeptextopen
- 2jump UnknownScript_0xbcf37
-
-.cherrygrove ; 0xbcf0d
- 3writetext BANK(MomPhoneCherrygroveText), MomPhoneCherrygroveText
- keeptextopen
- 2jump UnknownScript_0xbcf37
-
-.violet ; 0xbcf15
- displaylocation $7 ; sprout tower
- 3call $3, UnknownScript_0xbcedf
-.azalea ; 0xbcf1b
- displaylocation $d ; slowpoke well
- 3call $3, UnknownScript_0xbcedf
-.goldenrod ; 0xbcf21
- displaylocation $11 ; radio tower
- 3call $3, UnknownScript_0xbcedf
- 3writetext $6d, $411c
- keeptextopen
- 2jump UnknownScript_0xbcf37
-
-UnknownScript_0xbcf2f: ; 0xbcf2f
- 3writetext $6d, $4150
- keeptextopen
- 2jump UnknownScript_0xbcf37
-
-UnknownScript_0xbcf37: ; 0xbcf37
- checkbit2 $0008
- iffalse UnknownScript_0xbcf49
- checkmoney $1, 0
- if_equal $0, UnknownScript_0xbcf55
- 2jump UnknownScript_0xbcf63
-
-UnknownScript_0xbcf49: ; 0xbcf49
- checkmoney $1, 0
- if_equal $0, UnknownScript_0xbcf79
- 2jump UnknownScript_0xbcf6e
-
-UnknownScript_0xbcf55: ; 0xbcf55
- readmoney $1, $0
- 3writetext $6d, $41a7
- yesorno
- iftrue MomPhoneSaveMoneyScript
- 2jump MomPhoneWontSaveMoneyScript
-
-UnknownScript_0xbcf63: ; 0xbcf63
- 3writetext $6d, $41ea
- yesorno
- iftrue MomPhoneSaveMoneyScript
- 2jump MomPhoneWontSaveMoneyScript
-
-UnknownScript_0xbcf6e: ; 0xbcf6e
- 3writetext $6d, $420d
- yesorno
- iftrue MomPhoneSaveMoneyScript
- 2jump MomPhoneWontSaveMoneyScript
-
-UnknownScript_0xbcf79: ; 0xbcf79
- readmoney $1, $0
- 3writetext $6d, $4249
- yesorno
- iftrue MomPhoneSaveMoneyScript
- 2jump MomPhoneWontSaveMoneyScript
-
-MomPhoneSaveMoneyScript: ; 0xbcf87
- setbit2 $0008
- 3writetext $6d, $4289
- keeptextopen
- 2jump MomPhoneHangUpScript
-
-MomPhoneWontSaveMoneyScript: ; 0xbcf92
- clearbit2 $0008
- 3writetext BANK(MomPhoneWontSaveMoneyText), MomPhoneWontSaveMoneyText
- keeptextopen
- 2jump MomPhoneHangUpScript
-
-MomPhoneHangUpScript: ; 0xbcf9d
- 3writetext BANK(MomPhoneHangUpText), MomPhoneHangUpText
- end
-
-MomPhoneNoPokemonScript: ; 0xbcfa2
- 3writetext BANK(MomPhoneNoPokemonText), MomPhoneNoPokemonText
- end
-
-MomPhoneNoPokedexScript: ; 0xbcfa7
- 3writetext BANK(MomPhoneNoPokedexText), MomPhoneNoPokedexText
- end
-
-MomPhoneNoGymQuestScript: ; 0xbcfac
- 3writetext BANK(MomPhoneNoGymQuestText), MomPhoneNoGymQuestText
- end
-
-MomPhoneLectureScript: ; 0xbcfb1
- setbit1 $0040
- setbit2 $0009
- specialphonecall $0000
- 3writetext BANK(MomPhoneLectureText), MomPhoneLectureText
- yesorno
- iftrue MomPhoneSaveMoneyScript
- 2jump MomPhoneWontSaveMoneyScript
-
-BillPhoneScript1: ; 0xbcfc5
- checktime $2
- iftrue .daygreet
- checktime $4
- iftrue .nitegreet
- 3writetext BANK(BillPhoneMornGreetingText), BillPhoneMornGreetingText
- keeptextopen
- 2jump .main
-
-.daygreet ; 0xbcfd7
- 3writetext BANK(BillPhoneDayGreetingText), BillPhoneDayGreetingText
- keeptextopen
- 2jump .main
-
-.nitegreet ; 0xbcfdf
- 3writetext BANK(BillPhoneNiteGreetingText), BillPhoneNiteGreetingText
- keeptextopen
- 2jump .main
-
-.main ; 0xbcfe7
- 3writetext BANK(BillPhoneGeneriText), BillPhoneGeneriText
- keeptextopen
- checkcode $10
- RAM2MEM $0
- if_equal $0, .full
- if_greater_than $6, .nearlyfull
- 3writetext BANK(BillPhoneNotFullText), BillPhoneNotFullText
- end
-
-.nearlyfull ; 0xbcffd
- 3writetext BANK(BillPhoneNearlyFullText), BillPhoneNearlyFullText
- end
-
-.full ; 0xbd002
- 3writetext BANK(BillPhoneFullText), BillPhoneFullText
- end
-
-BillPhoneScript2: ; 0xbd007
- 3writetext BANK(BillPhoneNewlyFullText), BillPhoneNewlyFullText
- closetext
- end
-
-ElmPhoneScript1: ; 0xbd00d
- checkcode $14
- if_equal $1, .pokerus
- checkbit1 $0055
- iftrue .discovery
- checkbit1 $002d
- iffalse .next
- checkbit1 $0054
- iftrue .egghatched
-.next
- checkbit1 $002d
- iftrue .eggunhatched
- checkbit1 $0701
- iftrue .assistant
- checkbit1 $001f
- iftrue .checkingegg
- checkbit1 $0043
- iftrue .stolen
- checkbit1 $001e
- iftrue .sawmrpokemon
- 3writetext BANK(ElmPhoneStartText), ElmPhoneStartText
- end
-
-.sawmrpokemon ; 0xbd048
- 3writetext BANK(ElmPhoneSawMrPokemonText), ElmPhoneSawMrPokemonText
- end
-
-.stolen ; 0xbd04d
- 3writetext BANK(ElmPhonePokemonStolenText), ElmPhonePokemonStolenText
- end
-
-.checkingegg ; 0xbd052
- 3writetext BANK(ElmPhoneCheckingEggText), ElmPhoneCheckingEggText
- end
-
-.assistant ; 0xbd057
- 3writetext BANK(ElmPhoneAssistantText), ElmPhoneAssistantText
- end
-
-.eggunhatched ; 0xbd05c
- 3writetext BANK(ElmPhoneEggUnhatchedText), ElmPhoneEggUnhatchedText
- end
-
-.egghatched ; 0xbd061
- 3writetext BANK(ElmPhoneEggHatchedText), ElmPhoneEggHatchedText
- setbit1 $0077
- end
-
-.discovery ; 0xbd069
- random $2
- if_equal $0, .nextdiscovery
- 3writetext BANK(ElmPhoneDiscovery1Text), ElmPhoneDiscovery1Text
- end
-
-.nextdiscovery ; 0xbd074
- 3writetext BANK(ElmPhoneDiscovery2Text), ElmPhoneDiscovery2Text
- end
-
-.pokerus ; 0xbd079
- 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText
- specialphonecall $0000
- end
-
-ElmPhoneScript2: ; 0xbd081
- checkcode $14
- if_equal $2, .disaster
- if_equal $3, .assistant
- if_equal $4, .rocket
- if_equal $5, .gift
- if_equal $8, .gift
- 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText
- specialphonecall $0000
- end
-
-.disaster ; 0xbd09f
- 3writetext BANK(ElmPhoneDisasterText), ElmPhoneDisasterText
- specialphonecall $0000
- setbit1 $0043
- end
-
-.assistant ; 0xbd0aa
- 3writetext BANK(ElmPhoneEggAssistantText), ElmPhoneEggAssistantText
- specialphonecall $0000
- clearbit1 $0700
- setbit1 $0701
- end
-
-.rocket ; 0xbd0b8
- 3writetext BANK(ElmPhoneRocketText), ElmPhoneRocketText
- specialphonecall $0000
- end
-
-.gift ; 0xbd0c0
- 3writetext BANK(ElmPhoneGiftText), ElmPhoneGiftText
- specialphonecall $0000
- end
-
-.unused ; 0xbd0c8
- 3writetext BANK(ElmPhoneUnusedText), ElmPhoneUnusedText
- specialphonecall $0000
- end
+INCLUDE "engine/std_scripts.asm"
INCBIN "baserom.gbc", $bd0d0, $be699-$bd0d0
@@ -62772,7 +69714,59 @@ INCLUDE "gfx/overworld/sprites_2.asm"
SECTION "bank32",ROMX,BANK[$32]
-INCBIN "baserom.gbc", $c8000, $cbe2b - $c8000
+INCBIN "baserom.gbc", $c8000, $cbcdd - $c8000
+
+Functioncbcdd: ; cbcdd
+ call Functioncbce5
+ ld a, [hCGB]
+ and a
+ ret nz
+ ret
+; cbce5
+
+Functioncbce5: ; cbce5
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_cbd06
+ ld a, [TimeOfDayPal]
+ and $3
+ cp $3
+ ld a, $0
+ jr z, .asm_cbcf7
+ ld a, $aa
+
+.asm_cbcf7
+ call DmgToCgbBGPals
+ ld c, $4
+ call DelayFrames
+ callba _UpdateTimePals
+ ret
+
+.asm_cbd06
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld c, $20
+.asm_cbd12
+ ld a, $bc
+ ld [hli], a
+ ld a, $7e
+ ld [hli], a
+ dec c
+ jr nz, .asm_cbd12
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ld c, $4
+ call DelayFrames
+ callba _UpdateTimePals
+ ret
+; cbd2e
+
+INCBIN "baserom.gbc", $cbd2e, $cbe2b - $cbd2e
SECTION "bank33",ROMX,BANK[$33]
@@ -62852,7 +69846,11 @@ Functioncc0c7: ; cc0c7
jp PrintText
; cc0d0
-INCBIN "baserom.gbc", $cc0d0, $cc0d6 - $cc0d0
+INCBIN "baserom.gbc", $cc0d0, $cc0d5 - $cc0d0
+
+Functioncc0d5: ; cc0d5
+ ret
+; cc0d6
Functioncc0d6: ; cc0d6
@@ -63193,7 +70191,7 @@ Functioncc8a4: ; cc8a4
; cc8d3
Functioncc8d3: ; cc8d3
- ld hl, $d100
+ ld hl, LYOverrides
ld bc, $0354
.asm_cc8d9
ld [hl], $0
@@ -63667,7 +70665,1030 @@ Music_PostCredits: INCLUDE "audio/music/postcredits.asm"
SECTION "bank34",ROMX,BANK[$34]
; Pic animations asm
-INCBIN "baserom.gbc", $d0000, $d0695 - $d0000
+Functiond0000: ; d0000
+ ld hl, $c4ac
+ ld a, [IsInBattle]
+ cp $1
+ jr z, .asm_d0012
+ ld e, $0
+ ld d, $0
+ call Functiond008e
+ ret
+
+.asm_d0012
+ ld e, $1
+ ld d, $0
+ call Functiond008e
+ ret
+; d001a
+
+INCBIN "baserom.gbc", $d001a, $d008e - $d001a
+
+Functiond008e: ; d008e
+ call Functiond01c6
+ ret c
+ call Functiond00a3
+.asm_d0095
+ call Functiond00b4
+ push af
+ callba Function10402d
+ pop af
+ jr nc, .asm_d0095
+ ret
+; d00a3
+
+Functiond00a3: ; d00a3
+ push hl
+ ld c, e
+ ld b, $0
+ ld hl, $4042
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld b, [hl]
+ ld c, a
+ pop hl
+ call Functiond01d6
+ ret
+; d00b4
+
+Functiond00b4: ; d00b4
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ ld a, [$d168]
+ ld c, a
+ ld b, $0
+ ld hl, $d169
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ ld a, [hl]
+ ld hl, $40da
+ rst JumpTable
+ ld a, [$d168]
+ ld c, a
+ pop af
+ ld [rSVBK], a
+ ld a, c
+ and $80
+ ret z
+ scf
+ ret
+; d00da
+
+Tabled00da: ; d00da
+ dw Functiond0171
+ dw Functiond0166
+ dw Functiond00f2
+ dw Functiond00fe
+ dw Functiond010b
+ dw Functiond011d
+ dw Functiond012f
+ dw Functiond0141
+ dw Functiond0155
+ dw Functiond017a
+ dw Functiond0188
+ dw Functiond0196
+; d00f2
+
+Functiond00f2: ; d00f2
+ ld a, $12
+ ld [$d181], a
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+
+Functiond00fe: ; d00fe
+ ld hl, $d181
+ dec [hl]
+ ret nz
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d010b
+
+Functiond010b: ; d010b
+ ld c, $0
+ ld b, $0
+ call Functiond0228
+ call Functiond0504
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d011d
+
+Functiond011d: ; d011d
+ ld c, $0
+ ld b, $4
+ call Functiond0228
+ call Functiond0504
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d012f
+
+Functiond012f: ; d012f
+ ld c, $1
+ ld b, $0
+ call Functiond0228
+ call Functiond0504
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0141
+
+Functiond0141: ; d0141
+ call Functiond0250
+ ld a, [$d17e]
+ bit 7, a
+ ret z
+ call Functiond04bd
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0155
+
+Functiond0155: ; d0155
+ call Functiond0250
+ ld a, [$d17e]
+ bit 7, a
+ ret z
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0166
+
+Functiond0166: ; d0166
+ call Functiond01a9
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0171
+
+Functiond0171: ; d0171
+ call Functiond01a9
+ ld hl, $d168
+ set 7, [hl]
+ ret
+; d017a
+
+Functiond017a: ; d017a
+ ld a, [$d16b]
+ call Function37e2
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0188
+
+Functiond0188: ; d0188
+ ld a, [$d16b]
+ call Function37d5
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d0196
+
+Functiond0196: ; d0196
+ ld a, $f
+ ld [CryTracks], a
+ ld a, [$d16b]
+ call Function37c4
+ ld a, [$d168]
+ inc a
+ ld [$d168], a
+ ret
+; d01a9
+
+Functiond01a9: ; d01a9
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ call Functiond04bd
+ callba Function10402d
+ call Functiond0536
+ callba Function104047
+ pop af
+ ld [rSVBK], a
+ ret
+; d01c6
+
+Functiond01c6: ; d01c6
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_d01d4
+ call IsAPokemon
+ jr c, .asm_d01d4
+ and a
+ ret
+
+.asm_d01d4
+ scf
+ ret
+; d01d6
+
+Functiond01d6: ; d01d6
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ push bc
+ push de
+ push hl
+ ld hl, $d168
+ ld bc, $0029
+ xor a
+ call ByteFill
+ pop hl
+ pop de
+ pop bc
+ ld a, c
+ ld [$d169], a
+ ld a, b
+ ld [$d16a], a
+ ld a, l
+ ld [$d16f], a
+ ld a, h
+ ld [$d170], a
+ ld a, d
+ ld [$d16e], a
+ ld a, $1
+ ld hl, CurPartySpecies
+ call GetFarWRAMByte
+ ld [$d16b], a
+ ld a, $1
+ ld hl, UnownLetter
+ call GetFarWRAMByte
+ ld [$d16c], a
+ call Functiond065c
+ ld [$d16d], a
+ call Functiond05b4
+ ld a, c
+ ld [$d171], a
+ pop af
+ ld [rSVBK], a
+ ret
+; d0228
+
+Functiond0228: ; d0228
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ push bc
+ ld hl, $d172
+ ld bc, $001f
+ xor a
+ call ByteFill
+ pop bc
+ ld a, b
+ ld [$d173], a
+ ld a, c
+ ld [$d172], a
+ call Functiond055c
+ call Functiond05ce
+ call Functiond061b
+ pop af
+ ld [rSVBK], a
+ ret
+; d0250
+
+Functiond0250: ; d0250
+ xor a
+ ld [hBGMapMode], a
+
+Functiond0253: ; d0253
+ ld a, [$d17e]
+ and $7f
+ ld hl, Tabled025d
+ rst JumpTable
+ ret
+; d025d
+
+Tabled025d: ; d025d
+ dw Functiond0261
+ dw Functiond0282
+; d0261
+
+Functiond0261: ; d0261
+ call Functiond02f8
+ ld a, [$d182]
+ cp $ff
+ jr z, Functiond02a8
+ cp $fe
+ jr z, Functiond028e
+ cp $fd
+ jr z, Functiond0296
+ call Functiond02c8
+ ld a, [$d183]
+ call Functiond02ae
+ ld [$d181], a
+ call Functiond02dc
+
+Functiond0282: ; d0282
+ ld a, [$d181]
+ dec a
+ ld [$d181], a
+ ret nz
+ call Functiond02e4
+ ret
+; d028e
+
+Functiond028e: ; d028e
+ ld a, [$d183]
+ ld [$d17f], a
+ jr Functiond0253
+; d0296
+
+Functiond0296: ; d0296
+ ld a, [$d17f]
+ and a
+ ret z
+ dec a
+ ld [$d17f], a
+ ret z
+ ld a, [$d183]
+ ld [$d17d], a
+ jr Functiond0253
+; d02a8
+
+Functiond02a8: ; d02a8
+ ld hl, $d17e
+ set 7, [hl]
+ ret
+; d02ae
+
+Functiond02ae: ; d02ae
+ ld c, a
+ ld b, $0
+ ld hl, $0000
+ ld a, [$d173]
+ call AddNTimes
+ ld a, h
+ swap a
+ and $f0
+ ld h, a
+ ld a, l
+ swap a
+ and $f
+ or h
+ add c
+ ret
+; d02c8
+
+Functiond02c8: ; d02c8
+ call Functiond04bd
+ ld a, [$d182]
+ and a
+ ret z
+ call Functiond031b
+ push hl
+ call Functiond033b
+ pop hl
+ call Functiond036b
+ ret
+; d02dc
+
+Functiond02dc: ; d02dc
+ ld a, [$d17e]
+ inc a
+ ld [$d17e], a
+ ret
+; d02e4
+
+Functiond02e4: ; d02e4
+ ld a, [$d17e]
+ dec a
+ ld [$d17e], a
+ ret
+; d02ec
+
+Functiond02ec: ; d02ec
+ ld a, [$d16b]
+ cp $c9
+ ret
+; d02f2
+
+Functiond02f2: ; d02f2
+ ld a, [$d16b]
+ cp $fd
+ ret
+; d02f8
+
+Functiond02f8: ; d02f8
+ push hl
+ ld a, [$d17d]
+ ld e, a
+ ld d, $0
+ ld hl, $d175
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ add hl, de
+ ld a, [$d174]
+ call GetFarHalfword
+ ld a, l
+ ld [$d182], a
+ ld a, h
+ ld [$d183], a
+ ld hl, $d17d
+ inc [hl]
+ pop hl
+ ret
+; d031b
+
+Functiond031b: ; d031b
+ ld a, [$d182]
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $d178
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ add hl, bc
+ ld a, [$d177]
+ call GetFarHalfword
+ ld a, [$d177]
+ call GetFarByte
+ ld [$d180], a
+ inc hl
+ ret
+; d033b
+
+Functiond033b: ; d033b
+ call Functiond0356
+ push bc
+ ld hl, $d17b
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d180]
+ call AddNTimes
+ pop bc
+ ld de, $d188
+ ld a, [$d17a]
+ call FarCopyBytes
+ ret
+; d0356
+
+Functiond0356: ; d0356
+ push hl
+ ld a, [$d171]
+ sub $5
+ ld c, a
+ ld b, $0
+ ld hl, $4368
+ add hl, bc
+ ld c, [hl]
+ ld b, $0
+ pop hl
+ ret
+; d0368
+
+INCBIN "baserom.gbc", $d0368, $d036b - $d0368
+
+Functiond036b: ; d036b
+ xor a
+ ld [$d187], a
+ ld [$d186], a
+ ld [$d185], a
+.asm_d0375
+ push hl
+ call Functiond0392
+ pop hl
+ ld a, b
+ and a
+ jr z, .asm_d038a
+ ld a, [$d177]
+ call GetFarByte
+ inc hl
+ push hl
+ call Functiond03bd
+ pop hl
+
+.asm_d038a
+ push hl
+ call Functiond0499
+ pop hl
+ jr nc, .asm_d0375
+ ret
+; d0392
+
+Functiond0392: ; d0392
+ ld a, [$d187]
+ and $f8
+ rrca
+ rrca
+ rrca
+ ld e, a
+ ld d, $0
+ ld hl, $d188
+ add hl, de
+ ld b, [hl]
+ ld a, [$d187]
+ and $7
+ jr z, .asm_d03b0
+ ld c, a
+ ld a, b
+.asm_d03ab
+ rrca
+ dec c
+ jr nz, .asm_d03ab
+ ld b, a
+
+.asm_d03b0
+ xor a
+ bit 0, b
+ jr z, .asm_d03b7
+ ld a, $1
+
+.asm_d03b7
+ ld b, a
+ ld hl, $d187
+ inc [hl]
+ ret
+; d03bd
+
+Functiond03bd: ; d03bd
+ push af
+ call Functiond03cd
+ pop af
+ push hl
+ call Functiond03f7
+ ld hl, $d16e
+ add [hl]
+ pop hl
+ ld [hl], a
+ ret
+; d03cd
+
+Functiond03cd: ; d03cd
+ call Functiond046c
+ ld a, [$d186]
+ ld bc, $0014
+ call AddNTimes
+ ld a, [$c2c6]
+ and a
+ jr nz, .asm_d03e8
+ ld a, [$d185]
+ ld e, a
+ ld d, $0
+ add hl, de
+ jr .asm_d03f3
+
+.asm_d03e8
+ ld a, [$d185]
+ ld e, a
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc $0
+ ld h, a
+
+.asm_d03f3
+ ret
+; d03f4
+
+INCBIN "baserom.gbc", $d03f4, $d03f7 - $d03f4
+
+Functiond03f7: ; d03f7
+ push af
+ ld a, [$d171]
+ cp $5
+ jr z, .asm_d0405
+ cp $6
+ jr z, .asm_d041a
+ pop af
+ ret
+
+.asm_d0405
+ pop af
+ cp $19
+ jr nc, .asm_d0417
+ push hl
+ push de
+ ld hl, $442f
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+
+.asm_d0417
+ add $18
+ ret
+
+.asm_d041a
+ pop af
+ cp $24
+ jr nc, .asm_d042c
+ push hl
+ push de
+ ld hl, $4448
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+
+.asm_d042c
+ add $d
+ ret
+; d042f
+
+INCBIN "baserom.gbc", $d042f, $d046c - $d042f
+
+Functiond046c: ; d046c
+ ld hl, $d16f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d171]
+ ld de, $0000
+ ld bc, $0006
+ cp $7
+ jr z, .asm_d048f
+ ld de, $0015
+ ld bc, $0019
+ cp $6
+ jr z, .asm_d048f
+ ld de, $0029
+ ld bc, $002d
+
+.asm_d048f
+ ld a, [$c2c6]
+ and a
+ jr nz, .asm_d0497
+ add hl, de
+ ret
+
+.asm_d0497
+ add hl, bc
+ ret
+; d0499
+
+Functiond0499: ; d0499
+ ld a, [$d186]
+ inc a
+ ld [$d186], a
+ ld c, a
+ ld a, [$d171]
+ cp c
+ jr nz, .asm_d04bb
+ xor a
+ ld [$d186], a
+ ld a, [$d185]
+ inc a
+ ld [$d185], a
+ ld c, a
+ ld a, [$d171]
+ cp c
+ jr nz, .asm_d04bb
+ scf
+ ret
+
+.asm_d04bb
+ xor a
+ ret
+; d04bd
+
+Functiond04bd: ; d04bd
+ call Functiond04f6
+ ld a, [$c2c6]
+ and a
+ jr nz, .asm_d04ce
+ ld de, $0001
+ ld bc, $0000
+ jr .asm_d04d4
+
+.asm_d04ce
+ ld de, rIE
+ ld bc, $0006
+
+.asm_d04d4
+ ld hl, $d16f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ ld c, $7
+ ld b, $7
+ ld a, [$d16e]
+.asm_d04e2
+ push bc
+ push hl
+ push de
+ ld de, $0014
+.asm_d04e8
+ ld [hl], a
+ inc a
+ add hl, de
+ dec b
+ jr nz, .asm_d04e8
+ pop de
+ pop hl
+ add hl, de
+ pop bc
+ dec c
+ jr nz, .asm_d04e2
+ ret
+; d04f6
+
+Functiond04f6: ; d04f6
+ ld hl, $d16f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld b, $7
+ ld c, $7
+ call ClearBox
+ ret
+; d0504
+
+Functiond0504: ; d0504
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ xor a
+ ld [hBGMapMode], a
+ call Functiond051b
+ callba Function104047
+ pop af
+ ld [rSVBK], a
+ ret
+; d051b
+
+Functiond051b: ; d051b
+ call Functiond0551
+ ld b, $7
+ ld c, $7
+ ld de, $0014
+.asm_d0525
+ push bc
+ push hl
+.asm_d0527
+ ld a, [hl]
+ or $8
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_d0527
+ pop hl
+ inc hl
+ pop bc
+ dec b
+ jr nz, .asm_d0525
+ ret
+; d0536
+
+Functiond0536: ; d0536
+ call Functiond0551
+ ld b, $7
+ ld c, $7
+ ld de, $0014
+.asm_d0540
+ push bc
+ push hl
+.asm_d0542
+ ld a, [hl]
+ and $f7
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_d0542
+ pop hl
+ inc hl
+ pop bc
+ dec b
+ jr nz, .asm_d0540
+ ret
+; d0551
+
+Functiond0551: ; d0551
+ ld hl, $d16f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $0939
+ add hl, de
+ ret
+; d055c
+
+Functiond055c: ; d055c
+ call Functiond02f2
+ jr z, .asm_d0597
+ ld c, $34
+ ld hl, UnownAnimationPointers
+ ld de, UnownAnimationExtraPointers
+ call Functiond02ec
+ jr z, .asm_d0576
+ ld c, $34
+ ld hl, AnimationPointers
+ ld de, AnimationExtraPointers
+
+.asm_d0576
+ ld a, [$d172]
+ and a
+ jr z, .asm_d057e
+ ld h, d
+ ld l, e
+
+.asm_d057e
+ ld a, [$d16d]
+ dec a
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, c
+ ld [$d174], a
+ call GetFarHalfword
+ ld a, l
+ ld [$d175], a
+ ld a, h
+ ld [$d176], a
+ ret
+
+.asm_d0597
+ ld hl, EggAnimation
+ ld c, $34
+ ld a, [$d172]
+ and a
+ jr z, .asm_d05a7
+ ld hl, EggAnimationExtra
+ ld c, $34
+
+.asm_d05a7
+ ld a, c
+ ld [$d174], a
+ ld a, l
+ ld [$d175], a
+ ld a, h
+ ld [$d176], a
+ ret
+; d05b4
+
+Functiond05b4: ; d05b4
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BasePicSize]
+ and $f
+ ld c, a
+ pop af
+ ld [rSVBK], a
+ ret
+; d05ce
+
+Functiond05ce: ; d05ce
+ call Functiond02f2
+ jr z, .asm_d0609
+ call Functiond02ec
+ ld b, $36
+ ld c, $36
+ ld hl, PikachuAnimationExtra
+ jr z, .asm_d05ef
+ ld a, [$d16b]
+ cp $98
+ ld b, $35
+ ld c, $35
+ ld hl, $4000
+ jr c, .asm_d05ef
+ ld c, $36
+
+.asm_d05ef
+ ld a, c
+ ld [$d177], a
+ ld a, [$d16d]
+ dec a
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, b
+ call GetFarHalfword
+ ld a, l
+ ld [$d178], a
+ ld a, h
+ ld [$d179], a
+ ret
+
+.asm_d0609
+ ld hl, $598b
+ ld c, $36
+ ld a, c
+ ld [$d177], a
+ ld a, l
+ ld [$d178], a
+ ld a, h
+ ld [$d179], a
+ ret
+; d061b
+
+Functiond061b: ; d061b
+ call Functiond02f2
+ jr z, .asm_d064a
+ call Functiond02ec
+ ld a, $34
+ ld hl, UnownBitmasksPointers
+ jr z, .asm_d062f
+ ld a, $34
+ ld hl, BitmasksPointers
+
+.asm_d062f
+ ld [$d17a], a
+ ld a, [$d16d]
+ dec a
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [$d17a]
+ call GetFarHalfword
+ ld a, l
+ ld [$d17b], a
+ ld a, h
+ ld [$d17c], a
+ ret
+
+.asm_d064a
+ ld c, $34
+ ld hl, EggBitmasks
+ ld a, c
+ ld [$d17a], a
+ ld a, l
+ ld [$d17b], a
+ ld a, h
+ ld [$d17c], a
+ ret
+; d065c
+
+Functiond065c: ; d065c
+ call Functiond02ec
+ jr z, .asm_d0665
+ ld a, [$d16b]
+ ret
+
+.asm_d0665
+ ld a, [$d16c]
+ ret
+; d0669
+
+Functiond0669: ; d0669
+ ld a, $1
+ ld [$c2c6], a
+
+Functiond066e: ; d066e
+ call Functiond01c6
+ jr c, .asm_d068c
+ ld h, d
+ ld l, e
+ push bc
+ push hl
+ ld de, VTiles2
+ ld a, $3e
+ call Predef
+ pop hl
+ pop bc
+ ld d, $0
+ ld e, c
+ call Functiond008e
+ xor a
+ ld [$c2c6], a
+ ret
+
+.asm_d068c
+ xor a
+ ld [$c2c6], a
+ inc a
+ ld [CurPartySpecies], a
+ ret
+; d0695
; Pic animations are assembled in 3 parts:
@@ -63732,121 +71753,646 @@ INCLUDE "gfx/pics/unown_frames.asm"
SECTION "bank37",ROMX,BANK[$37]
-Tileset31GFX: ; 0xdc000
-INCBIN "gfx/tilesets/31.lz"
-; 0xdc3ce
-
- db $00
- db $00
-
-Tileset18GFX: ; 0xdc3d0
-INCBIN "gfx/tilesets/18.lz"
-; 0xdcc4e
-
- db $00
- db $00
-
-Tileset18Meta: ; 0xdcc50
-INCBIN "tilesets/18_metatiles.bin"
-; 0xdd050
-
-Tileset18Coll: ; 0xdd050
-INCBIN "tilesets/18_collision.bin"
-; 0xdd150
-
-Tileset05GFX: ; 0xdd150
-INCBIN "gfx/tilesets/05.lz"
-; 0xdd5f8
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset05Meta: ; 0xdd600
-INCBIN "tilesets/05_metatiles.bin"
-; 0xdda00
-
-Tileset05Coll: ; 0xdda00
-INCBIN "tilesets/05_collision.bin"
-; 0xddb00
-
-Tileset19GFX: ; 0xddb00
-INCBIN "gfx/tilesets/19.lz"
-; 0xddf64
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset19Meta: ; 0xddf70
-INCBIN "tilesets/19_metatiles.bin"
-; 0xde370
-
-Tileset19Coll: ; 0xde370
-INCBIN "tilesets/19_collision.bin"
-; 0xde470
-
-Tileset31Coll: ; 0xde470
-INCBIN "tilesets/31_collision.bin"
-; 0xde570
-
-Tileset11GFX: ; 0xde570
-INCBIN "gfx/tilesets/11.lz"
-; 0xde98a
-
- db $00
- db $00
- db $00
- db $00
- db $00
- db $00
-
-Tileset11Meta: ; 0xde990
-INCBIN "tilesets/11_metatiles.bin"
-; 0xded90
-
-Tileset11Coll: ; 0xded90
-INCBIN "tilesets/11_collision.bin"
-; 0xdee90
-
-Tileset04Meta: ; 0xdee90
-INCBIN "tilesets/04_metatiles.bin"
-; 0xdf690
-
-Tileset04Coll: ; 0xdf690
-INCBIN "tilesets/04_collision.bin"
-; 0xdf890
-
-Tileset32Meta: ; 0xdf890
-INCBIN "tilesets/32_metatiles.bin"
-; 0xdfc90
-
-Tileset32Coll: ; 0xdfc90
-Tileset33Coll: ; 0xdfc90
-Tileset34Coll: ; 0xdfc90
-Tileset35Coll: ; 0xdfc90
-Tileset36Coll: ; 0xdfc90
-INCBIN "tilesets/36_collision.bin"
-; 0xdfd90
+INCLUDE "tilesets/data_6.asm"
SECTION "bank38",ROMX,BANK[$38]
-INCBIN "baserom.gbc", $e0000, $e37f9 - $e0000
+Functione0000: ; e0000
+ push de
+ xor a
+ call GetSRAMBank
+ ld hl, $a000
+ ld bc, $0000
+.asm_e000b
+ push bc
+ push hl
+ push bc
+ ld de, DefaultFlypoint
+ call Functione004e
+ call Functione0057
+ ld hl, $408b
+ pop bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, $d012
+ call Functione004e
+ pop hl
+ ld bc, $0010
+ add hl, bc
+ pop bc
+ inc c
+ ld a, c
+ cp $31
+ jr c, .asm_e000b
+ ld hl, OverworldMap
+ ld de, $a000
+ ld bc, $0310
+ call CopyBytes
+ pop hl
+ ld de, $a000
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ret
+; e004e
+
+Functione004e: ; e004e
+ ld c, $10
+.asm_e0050
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_e0050
+ ret
+; e0057
+
+Functione0057: ; e0057
+ ld hl, $d012
+ ld e, $80
+ ld d, $8
+.asm_e005e
+ push hl
+ ld hl, DefaultFlypoint
+ call Functione0078
+ pop hl
+ ld a, b
+ ld [hli], a
+ push hl
+ ld hl, $d003
+ call Functione0078
+ pop hl
+ ld a, b
+ ld [hli], a
+ srl e
+ dec d
+ jr nz, .asm_e005e
+ ret
+; e0078
+
+Functione0078: ; e0078
+ ld b, $0
+ ld c, $8
+.asm_e007c
+ ld a, [hli]
+ and e
+ jr z, .asm_e0083
+ scf
+ jr .asm_e0084
+
+.asm_e0083
+ and a
+
+.asm_e0084
+ rr b
+ inc hl
+ dec c
+ jr nz, .asm_e007c
+ ret
+; e008b
+
+INCBIN "baserom.gbc", $e008b, $e1190 - $e008b
+
+Functione1190: ; e1190
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ ld hl, EnemyMoveAnimation
+ ld bc, $01e0
+ xor a
+ call ByteFill
+ ld hl, $57c5
+ ld de, $8e00
+ ld bc, $0040
+ call CopyBytes
+ ld hl, $5805
+ ld de, $8ed0
+ call Decompress
+ call Functione17a3
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $ee
+ call ByteFill
+ ld hl, $c4e0
+ ld bc, $0c0c
+ ld a, $ef
+ call Functione13ee
+ call Functione124e
+ call Functione13fe
+ call Functione127d
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ ld [rWY], a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ld a, $93
+ ld [rLCDC], a
+ call WaitBGMap
+ ld b, $18
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $24
+ call Functioncf8
+ xor a
+ ld [$d0ec], a
+ call DelayFrame
+.asm_e1217
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_e123d
+ call Functione12ca
+ ld a, [$cf64]
+ and a
+ jr nz, .asm_e1230
+ ld a, [$ff9b]
+ and $10
+ jr z, .asm_e1235
+
+.asm_e1230
+ call Functione14d9
+ jr .asm_e1238
+
+.asm_e1235
+ call ClearSprites
+
+.asm_e1238
+ call DelayFrame
+ jr .asm_e1217
+
+.asm_e123d
+ pop af
+ ld [$ffaa], a
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ ld a, $e3
+ ld [rLCDC], a
+ ret
+; e124e
+
+Functione124e: ; e124e
+ ld c, $1
+ ld b, $10
+.asm_e1252
+ call Random
+ and $f
+ ld hl, $526d
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, [hl]
+ ld hl, PlayerSDefLevel
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e1252
+ ld [hl], c
+ inc c
+ dec b
+ jr nz, .asm_e1252
+ ret
+; e126d
+
+INCBIN "baserom.gbc", $e126d, $e127d - $e126d
+
+Functione127d: ; e127d
+ call Functione128d
+ ld hl, $c5e5
+ ld a, $f6
+ ld c, $a
+.asm_e1287
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e1287
+ ret
+; e128d
+
+Functione128d: ; e128d
+ ld hl, $c5d0
+ ld a, $f0
+ ld [hli], a
+ ld bc, $000a
+ ld a, $f1
+ call ByteFill
+ ld hl, $c5db
+ ld a, $f2
+ ld [hli], a
+ ld hl, $c5e4
+ ld a, $f3
+ ld [hli], a
+ ld bc, $000a
+ ld a, $ef
+ call ByteFill
+ ld hl, $c5ef
+ ld a, $f3
+ ld [hli], a
+ ld hl, $c5f8
+ ld a, $f4
+ ld [hli], a
+ ld bc, $000a
+ ld a, $f1
+ call ByteFill
+ ld hl, $c603
+ ld a, $f5
+ ld [hl], a
+ ret
+; e12ca
+
+Functione12ca: ; e12ca
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $52d9
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e12d9
+
+INCBIN "baserom.gbc", $e12d9, $e13ee - $e12d9
+
+Functione13ee: ; e13ee
+ ld de, $0014
+.asm_e13f1
+ push bc
+ push hl
+.asm_e13f3
+ ld [hli], a
+ dec c
+ jr nz, .asm_e13f3
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_e13f1
+ ret
+; e13fe
+
+Functione13fe: ; e13fe
+ xor a
+ ld [$cf65], a
+ ld c, $24
+.asm_e1404
+ push bc
+ call Functione1475
+ ld [$cf66], a
+ and a
+ jr z, .asm_e1413
+ call Functione141f
+ jr .asm_e1416
+
+.asm_e1413
+ call Functione1441
+
+.asm_e1416
+ ld hl, $cf65
+ inc [hl]
+ pop bc
+ dec c
+ jr nz, .asm_e1404
+ ret
+; e141f
+
+Functione141f: ; e141f
+ ld a, $2
+ call Functione1463
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ call Functione1481
+ pop hl
+ ld de, $0014
+ ld b, $3
+.asm_e1431
+ ld c, $3
+ push hl
+.asm_e1434
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e1434
+ add $9
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e1431
+ ret
+; e1441
+
+Functione1441: ; e1441
+ ld a, $2
+ call Functione1463
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ ld a, $4
+ call Functione1463
+ ld a, [hl]
+ pop hl
+ ld de, $0014
+ ld b, $3
+.asm_e1456
+ ld c, $3
+ push hl
+.asm_e1459
+ ld [hli], a
+ dec c
+ jr nz, .asm_e1459
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e1456
+ ret
+; e1463
+
+Functione1463: ; e1463
+ ld e, a
+ ld d, $0
+ ld hl, $5559
+ add hl, de
+ ld a, [$cf65]
+ ld e, a
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ret
+; e1475
+
+Functione1475: ; e1475
+ ld hl, PlayerSDefLevel
+ ld a, [$cf65]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ret
+; e1481
+
+Functione1481: ; e1481
+ ld a, [$cf66]
+ ld hl, $548f
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, [hl]
+ ret
+; e148f
+
+INCBIN "baserom.gbc", $e148f, $e14d9 - $e148f
+
+Functione14d9: ; e14d9
+ call Functione1481
+ ld [DefaultFlypoint], a
+ xor a
+ call Functione1463
+ ld a, [hli]
+ ld b, [hl]
+ ld c, a
+ ld a, [DefaultFlypoint]
+ cp $e0
+ jr z, .asm_e14f2
+ ld hl, $550f
+ jr .asm_e14f5
+
+.asm_e14f2
+ ld hl, $5534
+
+.asm_e14f5
+ ld de, Sprites
+.asm_e14f8
+ ld a, [hli]
+ cp $ff
+ ret z
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [DefaultFlypoint]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .asm_e14f8
+; e150f
+
+INCBIN "baserom.gbc", $e150f, $e1631 - $e150f
+
+Functione1631: ; e1631
+ ld hl, VTiles2
+ ld de, VTiles0
+ ld b, $6
+.asm_e1639
+ push bc
+ push hl
+ push hl
+ call Functione1654
+ pop hl
+ ld bc, $0008
+ add hl, bc
+ call Functione1654
+ pop hl
+ ld bc, $0060
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_e1639
+ call Functione16c7
+ ret
+; e1654
+
+Functione1654: ; e1654
+ ld c, $6
+.asm_e1656
+ push bc
+ push hl
+ push hl
+ ld c, $4
+.asm_e165b
+ push bc
+ ld a, [hli]
+ and $f0
+ swap a
+ call Functione16aa
+ ld c, a
+ ld a, [hli]
+ and $f0
+ swap a
+ call Functione16aa
+ ld b, a
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_e165b
+ pop hl
+ ld c, $4
+.asm_e1681
+ push bc
+ ld a, [hli]
+ and $f
+ call Functione16aa
+ ld c, a
+ ld a, [hli]
+ and $f
+ call Functione16aa
+ ld b, a
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_e1681
+ pop hl
+ ld bc, $0010
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_e1656
+ ret
+; e16aa
+
+Functione16aa: ; e16aa
+ push hl
+ ld hl, $56b7
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, [hl]
+ pop hl
+ ret
+; e16b7
+
+INCBIN "baserom.gbc", $e16b7, $e16c7 - $e16b7
+
+Functione16c7: ; e16c7
+ ld hl, $5703
+ ld a, $8
+.asm_e16cc
+ push af
+ push hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Functione16e2
+ pop hl
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_e16cc
+ ret
+; e16e2
+
+Functione16e2: ; e16e2
+ ld bc, $0404
+.asm_e16e5
+ push bc
+.asm_e16e6
+ push de
+ push hl
+ ld b, $10
+.asm_e16ea
+ ld a, [de]
+ or [hl]
+ ld [hli], a
+ inc de
+ dec b
+ jr nz, .asm_e16ea
+ pop hl
+ ld de, $0030
+ add hl, de
+ pop de
+ dec c
+ jr nz, .asm_e16e6
+ ld bc, $0180
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_e16e5
+ ret
+; e1703
+
+INCBIN "baserom.gbc", $e1703, $e17a3 - $e1703
+
+Functione17a3: ; e17a3
+ ld a, [ScriptVar]
+ and $3
+ ld e, a
+ ld d, $0
+ ld hl, $57bd
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, VTiles2
+ call Decompress
+ call Functione1631
+ ret
+; e17bd
+
+INCBIN "baserom.gbc", $e17bd, $e37f9 - $e17bd
SECTION "bank39",ROMX,BANK[$39]
@@ -64361,7 +72907,7 @@ Functione4512: ; e4512
Options_Cancel: ; e4520
ld a, [hJoyPressed]
- and BUTTON_A
+ and A_BUTTON
jr nz, .asm_e4528
and a
ret
@@ -64916,7 +73462,7 @@ Music_RivalBattle: INCLUDE "audio/music/rivalbattle.asm"
Music_RocketBattle: INCLUDE "audio/music/rocketbattle.asm"
Music_ElmsLab: INCLUDE "audio/music/elmslab.asm"
Music_DarkCave: INCLUDE "audio/music/darkcave.asm"
-Music_JohtoGymBattle: INCLUDE "audio/music/johtogymleaderbattle.asm"
+Music_JohtoGymBattle: INCLUDE "audio/music/johtogymbattle.asm"
Music_ChampionBattle: INCLUDE "audio/music/championbattle.asm"
Music_SSAqua: INCLUDE "audio/music/ssaqua.asm"
Music_NewBarkTown: INCLUDE "audio/music/newbarktown.asm"
@@ -64935,9 +73481,9 @@ SECTION "bank3B",ROMX,BANK[$3B]
Music_Route1: INCLUDE "audio/music/route1.asm"
Music_Route3: INCLUDE "audio/music/route3.asm"
Music_Route12: INCLUDE "audio/music/route12.asm"
-Music_KantoGymBattle: INCLUDE "audio/music/kantogymleaderbattle.asm"
+Music_KantoGymBattle: INCLUDE "audio/music/kantogymbattle.asm"
Music_KantoTrainerBattle: INCLUDE "audio/music/kantotrainerbattle.asm"
-Music_KantoWildBattle: INCLUDE "audio/music/kantowildpokemonbattle.asm"
+Music_KantoWildBattle: INCLUDE "audio/music/kantowildbattle.asm"
Music_PokemonCenter: INCLUDE "audio/music/pokemoncenter.asm"
Music_LookLass: INCLUDE "audio/music/looklass.asm"
Music_LookOfficer: INCLUDE "audio/music/lookofficer.asm"
@@ -64954,15 +73500,15 @@ Music_IndigoPlateau: INCLUDE "audio/music/indigoplateau.asm"
Music_Route37: INCLUDE "audio/music/route37.asm"
Music_RocketHideout: INCLUDE "audio/music/rockethideout.asm"
Music_DragonsDen: INCLUDE "audio/music/dragonsden.asm"
-Music_RuinsOfAlphRadio: INCLUDE "audio/music/ruinsofalphradiosignal.asm"
+Music_RuinsOfAlphRadio: INCLUDE "audio/music/ruinsofalphradio.asm"
Music_LookBeauty: INCLUDE "audio/music/lookbeauty.asm"
Music_Route26: INCLUDE "audio/music/route26.asm"
Music_EcruteakCity: INCLUDE "audio/music/ecruteakcity.asm"
-Music_LakeOfRageRocketRadio:INCLUDE "audio/music/lakeofragerocketsradiosignal.asm"
+Music_LakeOfRageRocketRadio:INCLUDE "audio/music/lakeofragerocketradio.asm"
Music_MagnetTrain: INCLUDE "audio/music/magnettrain.asm"
Music_LavenderTown: INCLUDE "audio/music/lavendertown.asm"
Music_DancingHall: INCLUDE "audio/music/dancinghall.asm"
-Music_ContestResults: INCLUDE "audio/music/bugcatchingcontestresults.asm"
+Music_ContestResults: INCLUDE "audio/music/contestresults.asm"
Music_Route30: INCLUDE "audio/music/route30.asm"
SECTION "bank3C",ROMX,BANK[$3C]
@@ -65005,8 +73551,8 @@ Music_NationalPark: INCLUDE "audio/music/nationalpark.asm"
Music_AzaleaTown: INCLUDE "audio/music/azaleatown.asm"
Music_CherrygroveCity: INCLUDE "audio/music/cherrygrovecity.asm"
Music_UnionCave: INCLUDE "audio/music/unioncave.asm"
-Music_JohtoWildBattle: INCLUDE "audio/music/johtowildpokemonbattle.asm"
-Music_JohtoWildBattleNight: INCLUDE "audio/music/johtowildpokemonbattlenight.asm"
+Music_JohtoWildBattle: INCLUDE "audio/music/johtowildbattle.asm"
+Music_JohtoWildBattleNight: INCLUDE "audio/music/johtowildbattlenight.asm"
Music_JohtoTrainerBattle: INCLUDE "audio/music/johtotrainerbattle.asm"
Music_LookYoungster: INCLUDE "audio/music/lookyoungster.asm"
Music_TinTower: INCLUDE "audio/music/tintower.asm"
@@ -65099,22 +73645,27 @@ Functionfb48a: ; fb48a
ld hl, $9630
ld bc, $3e16
call Functiondc9
- jr .asm_fb4cc
+ jr Functionfb4cc
+; fb4b0
+Functionfb4b0: ; fb4b0
ld de, $5424
ld hl, $9610
ld b, $3e
ld c, $1
call Functiondc9
ret
+; fb4be
+Functionfb4be: ; fb4be
ld de, $4600
ld hl, $9600
ld bc, $3e19
call Functiondc9
- jr .asm_fb4cc
+ jr Functionfb4cc
+; fb4cc
-.asm_fb4cc
+Functionfb4cc: ; fb4cc
ld a, [TextBoxFrame]
and 7
ld bc, $0030
@@ -65141,7 +73692,7 @@ Functionfb4f2: ; fb4f2
ld de, $4700
ld bc, $3e03
call Functiondc9
- call $74cc
+ call Functionfb4cc
ld de, $4ac0
ld hl, $96c0
ld bc, $3e04
@@ -65162,7 +73713,7 @@ Functionfb4f2: ; fb4f2
; fb53e
Functionfb53e: ; fb53e
- call $74be
+ call Functionfb4be
ld de, $4ac0
ld hl, $96c0
ld bc, $3e04
@@ -65186,7 +73737,273 @@ Functionfb53e: ; fb53e
ret
; fb57e
-INCBIN "baserom.gbc", $fb57e, $fba18 - $fb57e
+Functionfb57e: ; fb57e
+ ld a, [$d003]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ push hl
+ ld a, [$d003]
+ inc a
+ ld c, a
+ ld b, $0
+ ld hl, OTPartyCount
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ cp $fd
+ jr z, .asm_fb59c
+ cp [hl]
+ jr nz, .asm_fb5db
+
+.asm_fb59c
+ ld b, h
+ ld c, l
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ cp $65
+ jr nc, .asm_fb5db
+ ld a, [InLinkBattle]
+ cp $1
+ jr nz, .asm_fb5d9
+ ld hl, OTPartySpecies
+ ld a, [$d003]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ cp $51
+ jr z, .asm_fb5d9
+ cp $52
+ jr z, .asm_fb5d9
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, $cbea
+ add hl, bc
+ add hl, bc
+ ld a, [BaseType1]
+ cp [hl]
+ jr nz, .asm_fb5db
+ inc hl
+ ld a, [BaseType2]
+ cp [hl]
+ jr nz, .asm_fb5db
+
+.asm_fb5d9
+ and a
+ ret
+
+.asm_fb5db
+ scf
+ ret
+; fb5dd
+
+Functionfb5dd: ; fb5dd
+ ld a, [DefaultFlypoint]
+ ld d, a
+ ld a, [PartyCount]
+ ld b, a
+ ld c, $0
+.asm_fb5e7
+ ld a, c
+ cp d
+ jr z, .asm_fb5f8
+ push bc
+ ld a, c
+ ld hl, PartyMon1CurHP
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_fb60b
+
+.asm_fb5f8
+ inc c
+ dec b
+ jr nz, .asm_fb5e7
+ ld a, [$d003]
+ ld hl, OTPartyMon1CurHP
+ call GetPartyLocation
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_fb60b
+ scf
+ ret
+
+.asm_fb60b
+ and a
+ ret
+; fb60d
+
+Functionfb60d: ; fb60d
+ ld hl, $c4a4
+ ld de, PlayerName
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ ld hl, $c544
+ ld de, $d26b
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ ld hl, $c4bb
+ ld de, PartySpecies
+ call Functionfb634
+ ld hl, $c55b
+ ld de, OTPartySpecies
+
+Functionfb634: ; fb634
+ ld c, $0
+.asm_fb636
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [$d265], 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, $0014
+ add hl, bc
+ pop bc
+ inc c
+ jr .asm_fb636
+; fb656
+
+INCBIN "baserom.gbc", $fb656, $fb6ed - $fb656
+
+
+INCLUDE "event/name_rater.asm"
+
+
+Functionfb841: ; fb841
+ ld a, [ScriptVar]
+ call Function37f3
+ jr c, .asm_fb876
+ ld hl, CryPitch
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, $fec0
+ add hl, bc
+ ld a, l
+ ld [CryPitch], a
+ ld a, h
+ ld [CryEcho], a
+ ld hl, CryLength
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, $0060
+ add hl, bc
+ ld a, l
+ ld [CryLength], a
+ ld a, h
+ ld [$c2b3], a
+ callba PlayCry
+ call WaitSFX
+
+.asm_fb876
+ ret
+; fb877
+
+Functionfb877: ; fb877
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+ call LowVolume
+ call WhiteBGMap
+ call ClearTileMap
+ call Function1ad2
+ call ClearSprites
+ ld a, [$cf65]
+ push af
+ ld a, [hSCX]
+ add $5
+ ld [hSCX], a
+ xor a
+ ld [$cf65], a
+ callba Function41a7f
+ call Functiona80
+ ld a, $1
+ ld [$cf65], a
+ callba Function4424d
+ call Functiona80
+ pop af
+ ld [$cf65], a
+ call MaxVolume
+ call Function4b6
+ ld a, [hSCX]
+ add $fb
+ ld [hSCX], a
+ call Functionfb8c8
+ pop af
+ ld [$ffde], a
+ ret
+; fb8c8
+
+Functionfb8c8: ; fb8c8
+ call ClearTileMap
+ call Functione5f
+ call Functione51
+ callba Function40ab2
+ call Function3200
+ callba Function3da97
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hl]
+ ld [$d124], a
+ ld b, $1c
+ call GetSGBLayout
+ call Function32f9
+ ret
+; fb8f1
+
+Functionfb8f1: ; fb8f1
+ push bc
+ push hl
+ ld a, [$d265]
+ ld b, a
+ ld c, $0
+ ld hl, $791c
+.asm_fb8fc
+ inc c
+ ld a, [hli]
+ cp b
+ jr nz, .asm_fb8fc
+ ld a, c
+ ld [$d265], a
+ pop hl
+ pop bc
+ ret
+; fb908
+
+Functionfb908: ; fb908
+ push bc
+ push hl
+ ld a, [$d265]
+ dec a
+ ld hl, $791c
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [$d265], a
+ pop hl
+ pop bc
+ ret
+; fb91c
+
+INCBIN "baserom.gbc", $fb91c, $fba18 - $fb91c
Functionfba18: ; fba18
@@ -65210,11 +74027,115 @@ Functionfba18: ; fba18
ret
; fba2e
-INCBIN "baserom.gbc", $fba2e, $fbbfc - $fba2e
+INCBIN "baserom.gbc", $fba2e, $fbb32 - $fba2e
+
+Functionfbb32: ; fbb32
+ callba Function50000
+ jr c, .asm_fbb9e
+ ld a, [CurPartySpecies]
+ cp $81
+ jr nz, .asm_fbba4
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ push hl
+ ld bc, $0015
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, $0006
+ add hl, bc
+ ld b, h
+ ld c, l
+ call CalcMagikarpLength
+ call Functionfbbdb
+ callba Function105f33
+ ld hl, $7ba9
+ call PrintText
+ ld hl, Buffer1
+ ld de, $dfe8
+ ld c, $2
+ call StringCmp
+ jr nc, .asm_fbb98
+ ld hl, Buffer1
+ ld de, $dfe8
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ call SkipNames
+ call CopyBytes
+ ld a, $3
+ ld [ScriptVar], a
+ ret
+
+.asm_fbb98
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+
+.asm_fbb9e
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_fbba4
+ xor a
+ ld [ScriptVar], a
+ ret
+; fbba9
+
+INCBIN "baserom.gbc", $fbba9, $fbbae - $fbba9
+
+Functionfbbae: ; fbbae
+ ld hl, $96e0
+ ld de, $7bbb
+ ld bc, $3e02
+ call Request2bpp
+ ret
+; fbbbb
+
+INCBIN "baserom.gbc", $fbbbb, $fbbdb - $fbbbb
+
+Functionfbbdb: ; fbbdb
+ call Functionfbbae
+ ld hl, StringBuffer1
+ ld de, Buffer1
+ ld bc, $4102
+ call PrintNum
+ ld [hl], $6e
+ inc hl
+ ld de, Buffer2
+ ld bc, $4102
+ call PrintNum
+ ld [hl], $6f
+ inc hl
+ ld [hl], $50
+ ret
+; fbbfc
INCLUDE "battle/magikarp_length.asm"
-INCBIN "baserom.gbc", $fbccf, $fbced - $fbccf
+INCBIN "baserom.gbc", $fbccf, $fbcd2 - $fbccf
+
+Functionfbcd2: ; fbcd2
+ ld a, [$dfe8]
+ ld [Buffer1], a
+ ld a, [$dfe9]
+ ld [Buffer2], a
+ call Functionfbbdb
+ ld hl, $7ce8
+ call PrintText
+ ret
+; fbce8
+
+INCBIN "baserom.gbc", $fbce8, $fbced - $fbce8
INCLUDE "battle/hidden_power.asm"
@@ -65430,43 +74351,43 @@ DoBadgeTypeBoosts: ; fbe24
SECTION "bank3F",ROMX,BANK[$3F]
-DoTileAnimation: ; fc000
-; Iterate over a given pointer array of animation functions
-; (one per frame).
+_AnimateTileset: ; fc000
+; Iterate over a given pointer array of
+; animation functions (one per frame).
+
; Typically in wra1, vra0
-; Beginning of animation pointer array
- ld a, [TileSetAnim]
+ ld a, [TilesetAnim]
ld e, a
- ld a, [TileSetAnim + 1]
+ ld a, [TilesetAnim + 1]
ld d, a
-; Play this frame.
- ld a, [hTileAnimFrame] ; frame count
+ ld a, [hTileAnimFrame]
ld l, a
inc a
ld [hTileAnimFrame], a
-
-; Each pointer has:
+
ld h, 0
add hl, hl
add hl, hl
add hl, de
-; 2-byte parameter (all functions take input de)
+; 2-byte parameter
+; All functions take input de.
ld e, [hl]
inc hl
ld d, [hl]
inc hl
-
+
; Function address
ld a, [hli]
ld h, [hl]
ld l, a
-
+
jp [hl]
; fc01b
+
Tileset00Anim: ; 0xfc01b
Tileset02Anim: ; 0xfc01b
Tileset03Anim: ; 0xfc01b
@@ -65568,46 +74489,46 @@ Tileset24Anim: ; 0xfc1e7
Tileset30Anim: ; 0xfc1e7
; param, function
dw $9140, WriteTileToBuffer
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $cf41, ScrollTileRightLeft
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $9140, WriteTileFromBuffer
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $0000, TileAnimationPalette
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $9400, WriteTileToBuffer
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $cf41, ScrollTileDown
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $cf41, ScrollTileDown
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $cf41, ScrollTileDown
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $9400, WriteTileFromBuffer
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $0000, DoneTileAnimation
; 0xfc233
Tileset29Anim: ; 0xfc233
; param, function
dw $9350, WriteTileToBuffer
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $cf41, ScrollTileRightLeft
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $9350, WriteTileFromBuffer
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $0000, TileAnimationPalette
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $9310, WriteTileToBuffer
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $cf41, ScrollTileDown
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $cf41, ScrollTileDown
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $cf41, ScrollTileDown
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $9310, WriteTileFromBuffer
- dw $0000, $471e
+ dw $0000, Functionfc71e
dw $0000, DoneTileAnimation
; 0xfc27f
@@ -66369,7 +75290,45 @@ TileAnimationPalette: ; fc6d7
; fc71e
-INCBIN "baserom.gbc", $fc71e, $fc750 - $fc71e
+Functionfc71e: ; fc71e
+ ld a, [hCGB]
+ and a
+ ret z
+
+ ld a, [rBGP]
+ cp $e4
+ ret nz
+
+ ld a, [$d847]
+ cp $ff
+ ret nz
+
+ ld a, [rSVBK]
+ push af
+
+ ld a, 5
+ ld [rSVBK], a
+ ld a, $a0
+ ld [rBGPI], a
+ ld a, [$ff9b]
+ and 2
+ jr nz, .asm_fc743
+ ld hl, $d020
+ jr .asm_fc746
+
+.asm_fc743
+ ld hl, $d022
+
+.asm_fc746
+ ld a, [hli]
+ ld [rBGPD], a
+ ld a, [hli]
+ ld [rBGPD], a
+
+ pop af
+ ld [rSVBK], a
+ ret
+; fc750
SproutPillarTilePointers: ; fc750
@@ -66941,7 +75900,7 @@ Functionfd0c3: ; fd0c3
ld a, $1
ld [$d10c], a
ld hl, PCItems
- call Function2f66
+ call ReceiveItem
ret
; fd0eb
@@ -66975,12 +75934,438 @@ Functionfd117: ; fd117
ret
; fd136
-INCBIN "baserom.gbc", $fd136, $fd1d2 - $fd136
+INCBIN "baserom.gbc", $fd136, $fd1d0 - $fd136
+
+Functionfd1d0: ; fd1d0
+ ret
+; fd1d1
+
+INCBIN "baserom.gbc", $fd1d1, $fd1d2 - $fd1d1
SECTION "bank40",ROMX,BANK[$40]
-INCBIN "baserom.gbc", $100000, $10032e - $100000
+Function100000: ; 100000
+ 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 Function100063
+ pop bc
+ pop de
+ ld a, d
+ ld [$cd21], a
+ ld a, e
+ ld [CreditsTimer], a
+ ld a, c
+ ld [$cd23], a
+ ld a, b
+ ld [$cd24], a
+ callba Function10127e
+ callba Function106462
+ callba Function106464
+ callba Function11615a
+ ld hl, VramState
+ set 1, [hl]
+ ret
+; 100057
+
+Function100057: ; 100057
+ call Function1000a4
+ call Function222a
+ ld hl, VramState
+ res 1, [hl]
+ ret
+; 100063
+
+Function100063: ; 100063
+ xor a
+ ld hl, BGMapBuffer
+ ld bc, $0065
+ call ByteFill
+ xor a
+ ld hl, $c300
+ ld bc, Start
+ call ByteFill
+ ld a, [rIE]
+ ld [BGMapBuffer], a
+ xor a
+ ld [$ffde], a
+ ld [hLCDStatCustom], a
+ ret
+; 100082
+
+INCBIN "baserom.gbc", $100082, $1000a4 - $100082
+
+Function1000a4: ; 1000a4
+ di
+ xor a
+ ld [$ffc9], a
+ ld [$ffe9], a
+ xor a
+ ld [$ff9e], a
+ call NormalSpeed
+ xor a
+ ld [rIF], a
+ ld a, [BGMapBuffer]
+ ld [rIE], a
+ ei
+ ret
+; 1000ba
+
+Function1000ba: ; 1000ba
+.asm_1000ba
+ ld hl, $cd23
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$cd25]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [CreditsTimer]
+ call GetFarHalfword
+ ld a, [CreditsTimer]
+ rst FarCall
+ call Function1000e8
+ call Function1000fa
+ call Function100144
+ call Function100163
+ ld a, [$cd2b]
+ and a
+ jr z, .asm_1000ba
+ call DelayFrame
+ ret
+; 1000e8
+
+Function1000e8: ; 1000e8
+ ld hl, $cd29
+ bit 7, [hl]
+ ret z
+ callba Function115dd3
+ ld hl, $cd29
+ set 6, [hl]
+ ret
+; 1000fa
+
+Function1000fa: ; 1000fa
+ ld a, [$c30d]
+ and a
+ ret z
+ ld hl, $cd29
+ bit 4, [hl]
+ ret z
+ ld a, [$cd2b]
+ and a
+ jr nz, .asm_100117
+ callba Function11619d
+ ld hl, $cd29
+ set 6, [hl]
+ ret
+
+.asm_100117
+ di
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ and $13
+ ld [rIE], a
+ xor a
+ ld [$ffc9], a
+ ld [$ffe9], a
+ ei
+ ld a, [InLinkBattle]
+ push af
+ xor a
+ ld [InLinkBattle], a
+ ld a, $4
+ ld [$c319], a
+ callba Function11619d
+ ld hl, $cd29
+ set 6, [hl]
+ pop af
+ ld [InLinkBattle], a
+ ret
+; 100144
+
+Function100144: ; 100144
+ ld hl, $cd29
+ 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 Function10402d
+ ret
+; 100163
+
+Function100163: ; 100163
+ ld hl, $cd29
+ bit 6, [hl]
+ ret z
+ res 6, [hl]
+ call DelayFrame
+ ret
+; 10016f
+
+Function10016f: ; 10016f
+ ld a, [$cd2b]
+ cp $1
+ ret z
+ cp $2
+ 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, $0000
+ jr .asm_1001d7
+
+.asm_1001b6
+ ld a, $d5
+ ld de, $0000
+ jr .asm_1001d7
+
+.asm_1001bd
+ ld a, $d6
+ ld de, $0000
+ jr .asm_1001d7
+
+.asm_1001c4
+ ld a, $d2
+ ld de, $0002
+ jr .asm_1001d7
+
+.asm_1001cb
+ ld a, $d1
+ ld de, $0001
+ jr .asm_1001d7
+
+.asm_1001d2
+ ld a, $d0
+ ld de, $0000
+
+.asm_1001d7
+ ld [$c300], a
+ ld a, d
+ ld [$c302], a
+ ld a, e
+ ld [$c301], 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, [$cd2c]
+ ld [$c300], a
+ ld a, [$cd2d]
+ ld [$c302], a
+ ld a, [$cd2d]
+ ld [$c301], a
+ call Function10020b
+ ret
+; 10020b
+
+Function10020b: ; 10020b
+ xor a
+ ld [$c303], a
+ callba Function8c084
+ callba Function106464
+ call HideSprites
+ call DelayFrame
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba Function17f555
+ pop af
+ ld [rSVBK], a
+ ret
+; 100232
+
+Function100232: ; 100232
+ push de
+ callba Function106464
+ call Function3f20
+ call Function1ad2
+ hlcoord 1, 2
+ pop de
+ call PlaceString
+ call Function100320
+ call Functiona36
+ ret
+; 10024d
+
+String10024d: ; 10024d
+ db "つうしんを キャンセル しました@"
+; 10025e
+
+String10025e: ; 10025e
+ db "おともだちと えらんだ へやが", $4e
+ db "ちがうようです@"
+; 100276
+
+Function100276: ; 100276
+ ld a, [$cd2b]
+ cp $1
+ jr z, .asm_10029f
+ cp $2
+ 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, $2
+ ret
+
+.asm_100296
+ callba Script_reloadmappart
+ ld c, $4
+ ret
+
+.asm_10029f
+ call Function1002dc
+ ld c, $0
+ ret
+
+.asm_1002a5
+ callba Script_reloadmappart
+ call Function1002ed
+ ld c, $3
+ ret
+
+.asm_1002b1
+ call Function1002c9
+ call Function1002dc
+ ld de, String10024d
+ call Function100232
+ ld c, $2
+ ret
+
+.asm_1002c0
+ call Function1002c9
+ call Function1002dc
+ ld c, $1
+ ret
+; 1002c9
+
+Function1002c9: ; 1002c9
+ ld hl, $cd2a
+ bit 0, [hl]
+ ret z
+ callba Function3f6d0
+ callba Function1500c
+ ret
+; 1002dc
+
+Function1002dc: ; 1002dc
+ ld a, $f8
+ ld [$ff9f], a
+ callba Function15363
+ xor a
+ ld [$ff9f], a
+ call Functione51
+ ret
+; 1002ed
+
+Function1002ed: ; 1002ed
+ callba Function49409
+ callba Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ call DelayFrame
+ ret
+; 100301
+
+Function100301: ; 100301
+ ld hl, $cd2a
+ bit 1, [hl]
+ ret z
+ callba Function106464
+ callba Function10202c
+ callba Function115dd3
+ call Function100320
+ call Functiona36
+ ret
+; 100320
+
+Function100320: ; 100320
+ callba Function104099
+ ret
+; 100327
+
+INCBIN "baserom.gbc", $100327, $10032e - $100327
Function10032e: ; 10032e
@@ -67078,7 +76463,7 @@ Function10039c: ; 10039c
ld de, $d000
ld bc, $0054
ld a, $3
- call Function306b
+ call FarCopyWRAM
ret
; 1003ab
@@ -67090,7 +76475,7 @@ Function1003ba: ; 1003ba
ld de, $d080
ld bc, $0054
ld a, $3
- call Function306b
+ call FarCopyWRAM
ret
; 1003c9
@@ -67099,7 +76484,7 @@ Function1003c9: ; 1003c9
ld de, $ccb4
ld bc, $0054
ld a, $3
- call Function306b
+ call FarCopyWRAM
ret
; 1003d8
@@ -67311,7 +76696,17 @@ Function1004f4: ; 1004f4
ret
; 100504
-INCBIN "baserom.gbc", $100504, $10062d - $100504
+Function100504: ; 100504
+ push de
+ call Function3f20
+ call Function1ad2
+ pop de
+ ld hl, $c4cc
+ call PlaceString
+ ret
+; 100513
+
+INCBIN "baserom.gbc", $100513, $10062d - $100513
Function10062d: ; 10062d
@@ -67366,8 +76761,71 @@ Function10064e: ; 10064e
ret
; 100665
-INCBIN "baserom.gbc", $100665, $1006dc - $100665
+INCBIN "baserom.gbc", $100665, $100675 - $100665
+
+Function100675: ; 100675
+ ld hl, $cd2a
+ bit 2, [hl]
+ set 2, [hl]
+ ret nz
+ call Function1006d3
+ ret
+; 100681
+
+Function100681: ; 100681
+ push hl
+ ld hl, $cd2a
+ bit 2, [hl]
+ ld hl, $cd2a
+ set 2, [hl]
+ pop hl
+ jr nz, .asm_100694
+ push hl
+ call Function1006d3
+ pop hl
+.asm_100694
+ ld de, $cd32
+ 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
+ ld bc, $8102
+ 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, $cd34
+ ld hl, $cd38
Function1006dc: ; 1006dc
ld a, [hld]
@@ -67402,7 +76860,33 @@ Function1006dc: ; 1006dc
ret
; 1006fd
-INCBIN "baserom.gbc", $1006fd, $10079c - $1006fd
+Function1006fd: ; 1006fd
+ ld a, $4
+ ld hl, $a800
+ call GetSRAMBank
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ call CloseSRAM
+ ret
+; 10070d
+
+Function10070d: ; 10070d
+ ld a, $4
+ ld hl, $a800
+ call GetSRAMBank
+ xor a
+ ld [hli], a
+ ld a, $a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ call CloseSRAM
+ ret
+; 100720
+
+INCBIN "baserom.gbc", $100720, $10079c - $100720
Function10079c: ; 10079c
@@ -67511,7 +76995,44 @@ Function100826: ; 100826
ret
; 100846
-INCBIN "baserom.gbc", $100846, $1008e0 - $100846
+INCBIN "baserom.gbc", $100846, $1008a6 - $100846
+
+Function1008a6: ; 1008a6
+ ld a, $4
+ ld hl, $a800
+ call GetSRAMBank
+ ld a, [hli]
+ ld [StringBuffer2], a
+ ld a, [hli]
+ ld [$d087], a
+ ld a, [hli]
+ ld [$d088], a
+ call CloseSRAM
+ ld a, [$d088]
+ ld b, a
+ ld a, $0
+ sub b
+ jr nc, .asm_1008c8
+ add $3c
+
+.asm_1008c8
+ ld b, a
+ ld a, [$d087]
+ ld c, a
+ ld a, $a
+ 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
@@ -67607,7 +77128,7 @@ Function100989: ; 100989
Function1009a5: ; 1009a5
ld bc, $0168
ld a, $3
- call Function306b
+ call FarCopyWRAM
ret
; 1009ae
@@ -68373,7 +77894,645 @@ Function100ed4: ; 100ed4
ret
; 100edf
-INCBIN "baserom.gbc", $100edf, $10389d - $100edf
+INCBIN "baserom.gbc", $100edf, $1011f1 - $100edf
+
+Function1011f1: ; 1011f1
+ ld a, $4
+ call GetSRAMBank
+ ld a, [$a60c]
+ ld [$dc41], a
+ call CloseSRAM
+ ld hl, $dc41
+ res 4, [hl]
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ jr z, .asm_101210
+ ld hl, $dc41
+ set 4, [hl]
+
+.asm_101210
+ call Function10209c
+ xor a
+ ld [$dc5f], a
+ ld [$dc60], a
+ ld a, $4
+ ld [InLinkBattle], a
+ ret
+; 101220
+
+Function101220: ; 101220
+ xor a
+ ld [InLinkBattle], a
+ ret
+; 101225
+
+Function101225: ; 101225
+ ld d, $1
+ ld e, $40
+ ld bc, $5297
+ call Function100000
+ jr Function10123d
+
+Function101231: ; 101231
+ ld d, $2
+ ld e, $40
+ ld bc, $5297
+ call Function100000
+ jr Function10123d
+
+Function10123d: ; 10123d
+ xor a
+ ld [ScriptVar], a
+ ld a, c
+ ld hl, Table101247
+ rst JumpTable
+ ret
+; 101247
+
+Table101247: ; 101247
+ dw Function101251
+ dw Function10127d
+ dw Function10127c
+ dw Function10126c
+ dw Function101265
+; 101251
+
+Function101251: ; 101251
+ call Function1ad2
+ call ResetWindow
+ ld hl, $61f4
+ call Function1021e0
+ call Function1020ea
+ ret c
+ call Function102142
+ ret
+; 101265
+
+Function101265: ; 101265
+ ld hl, $61ef
+ call Function1021e0
+ ret
+; 10126c
+
+Function10126c: ; 10126c
+ call Function1ad2
+ callba Script_reloadmappart
+ ld hl, $61f4
+ call Function1021e0
+ ret
+; 10127c
+
+Function10127c: ; 10127c
+ ret
+; 10127d
+
+Function10127d: ; 10127d
+ ret
+; 10127e
+
+Function10127e: ; 10127e
+ ld a, [$dc5f]
+ and a
+ jr z, .asm_101290
+ cp $1
+ ld c, $27
+ jr z, .asm_101292
+ cp $2
+ ld c, $37
+ jr z, .asm_101292
+
+.asm_101290
+ ld c, $0
+
+.asm_101292
+ ld a, c
+ ld [$cd25], a
+ ret
+; 101297
+
+INCBIN "baserom.gbc", $101297, $1013aa - $101297
+
+Function1013aa: ; 1013aa
+ call WhiteBGMap
+ call Function1d7d
+ call Function2bae
+ callba Function106464
+ call Function1ad2
+ call Function2b5c
+ ret
+; 1013c0
+
+INCBIN "baserom.gbc", $1013c0, $1013d6 - $1013c0
+
+Function1013d6: ; 1013d6
+ callba Function104000
+ ret
+; 1013dd
+
+INCBIN "baserom.gbc", $1013dd, $10142c - $1013dd
+
+Function10142c: ; 10142c
+ ld a, $1
+ ld [$c305], a
+ callba Function115e18
+ ret
+; 101438
+
+INCBIN "baserom.gbc", $101438, $101ee4 - $101438
+
+Function101ee4: ; 101ee4
+ ld d, $0
+ ld hl, $5ef5
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ callba Function100504
+ ret
+; 101ef5
+
+INCBIN "baserom.gbc", $101ef5, $10202c - $101ef5
+
+Function10202c: ; 10202c
+ callba Function115d99
+ ld hl, $cd29
+ set 7, [hl]
+ ld c, $2
+ call Function10142c
+ ld e, $d
+ call Function101ee4
+ ld hl, $c4f4
+ call Function100681
+ ret
+; 102048
+
+INCBIN "baserom.gbc", $102048, $10209c - $102048
+
+Function10209c: ; 10209c
+ ld a, $ff
+ ld hl, $dc42
+ ld bc, $0008
+ call ByteFill
+ ret
+; 1020a8
+
+INCBIN "baserom.gbc", $1020a8, $1020ea - $1020a8
+
+Function1020ea: ; 1020ea
+ ld hl, $dc41
+ bit 4, [hl]
+ jr z, .asm_102110
+ ld hl, $dc41
+ bit 2, [hl]
+ jr nz, .asm_102110
+ call Function10218d
+ ld hl, EnemyMoveAnimation
+ bit 4, [hl]
+ jr z, .asm_102110
+ ld hl, EnemyMoveAnimation
+ bit 2, [hl]
+ jr nz, .asm_102110
+ call Function102112
+ jr z, .asm_102110
+ and a
+ ret
+
+.asm_102110
+ scf
+ ret
+; 102112
+
+Function102112: ; 102112
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a041
+ ld c, $28
+.asm_10211c
+ push hl
+ ld de, PlayerMoveAnimation
+ ld b, $1f
+.asm_102122
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_10212f
+ inc de
+ inc hl
+ dec b
+ jr nz, .asm_102122
+ pop hl
+ xor a
+ jr .asm_10213c
+
+.asm_10212f
+ pop hl
+ ld de, $0025
+ add hl, de
+ dec c
+ jr nz, .asm_10211c
+ ld a, $1
+ and a
+ jr .asm_10213c
+
+.asm_10213c
+ push af
+ call CloseSRAM
+ pop af
+ ret
+; 102142
+
+Function102142: ; 102142
+ call Function10218d
+ call Function102180
+ ld hl, $61d1
+ call Function1d4f
+ ld de, $0090
+ call StartSFX
+ call Functiona36
+ call Function1c07
+ call Function10219f
+ ld hl, $61d6
+ call Function1d4f
+ call Function1dcf
+ call Function1c07
+ jr c, .asm_10217c
+ call Function1021b8
+ jr c, .asm_10217c
+ call Function10218d
+ call Function102180
+ ld hl, $61db
+ call PrintText
+
+.asm_10217c
+ call Function1013d6
+ ret
+; 102180
+
+Function102180: ; 102180
+ ld hl, EnemyMoveEffect
+ ld de, StringBuffer2
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 10218d
+
+Function10218d: ; 10218d
+ ld hl, $dc00
+ ld de, EnemyMoveAnimation
+ ld bc, $0026
+ ld a, $5
+ call FarCopyWRAM
+ ld de, EnemyMoveEffect
+ ret
+; 10219f
+
+Function10219f: ; 10219f
+ call FadeToMenu
+ call Function10218d
+ ld de, EnemyMoveEffect
+ callba Function8ac4e
+ call Functiona36
+ call PlayClickSFX
+ call Function1013aa
+ ret
+; 1021b8
+
+Function1021b8: ; 1021b8
+ call FadeToMenu
+ call Function10218d
+ ld de, PlayerMoveAnimation
+ callba Function8ac70
+ ld a, c
+ ld [StringBuffer1], a
+ push af
+ call Function1013aa
+ pop af
+ ret
+; 1021d1
+
+INCBIN "baserom.gbc", $1021d1, $1021e0 - $1021d1
+
+Function1021e0: ; 1021e0
+ call Function1d4f
+ call Functiona36
+ call Function1c07
+ ret
+; 1021ea
+
+INCBIN "baserom.gbc", $1021ea, $103612 - $1021ea
+
+Function103612: ; 103612
+ ld hl, $7640
+ call LoadMenuDataHeader
+ ld a, [$dc40]
+ and $f
+ jr z, .asm_103622
+ ld [$cf88], a
+
+.asm_103622
+ call Function1d81
+ call Function1c17
+ jr c, .asm_10363b
+ ld a, [$cfa9]
+ ld [ScriptVar], a
+ ld c, a
+ ld a, [$dc40]
+ and $f0
+ or c
+ ld [$dc40], a
+ ret
+
+.asm_10363b
+ xor a
+ ld [ScriptVar], a
+ ret
+; 103640
+
+INCBIN "baserom.gbc", $103640, $10366e - $103640
+
+Function10366e: ; 10366e
+ callba Function10632f
+ bit 7, c
+ jr z, .asm_10369b
+ ld hl, $775d
+ call PrintText
+ call Function1dcf
+ jr c, .asm_103696
+ callba Function8b1e1
+ jr nc, .asm_103690
+ call Functiona36
+ jr .asm_103696
+
+.asm_103690
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_103696
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_10369b
+ ld hl, $dc40
+ bit 7, [hl]
+ set 7, [hl]
+ jr nz, .asm_1036b5
+ ld hl, $7762
+ call PrintText
+ call Function1dcf
+ jr c, .asm_1036b5
+ call Function1036f9
+ call Functiona36
+
+.asm_1036b5
+ call Function103700
+ jr c, .asm_1036f4
+ ld hl, $7747
+ call LoadMenuDataHeader
+ call Function1d81
+ call Function1c07
+ jr c, .asm_1036f4
+ ld a, [$cfa9]
+ cp $1
+ jr z, .asm_1036d9
+ cp $2
+ jr z, .asm_1036f4
+ cp $3
+ jr z, .asm_1036ec
+ jr .asm_1036b5
+
+.asm_1036d9
+ callba Function8b1e1
+ jr nc, .asm_1036e6
+ call Functiona36
+ jr .asm_1036f4
+
+.asm_1036e6
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_1036ec
+ call Function1036f9
+ call Functiona36
+ jr .asm_1036b5
+
+.asm_1036f4
+ xor a
+ ld [ScriptVar], a
+ ret
+; 1036f9
+
+Function1036f9: ; 1036f9
+ ld hl, $7767
+ call PrintText
+ ret
+; 103700
+
+Function103700: ; 103700
+ ld c, $a
+ ld hl, $dc20
+ bit 4, [hl]
+ jr z, .asm_10370f
+ callba Function1008a6
+
+.asm_10370f
+ ld a, c
+ ld [StringBuffer2], a
+ ld a, [StringBuffer2]
+ cp $5
+ jr nc, .asm_103724
+ cp $2
+ jr nc, .asm_10372c
+ cp $1
+ jr nc, .asm_103734
+ jr .asm_10373c
+
+.asm_103724
+ ld hl, $776c
+ call PrintText
+ and a
+ ret
+
+.asm_10372c
+ ld hl, $7771
+ call PrintText
+ and a
+ ret
+
+.asm_103734
+ ld hl, $7776
+ call PrintText
+ and a
+ ret
+
+.asm_10373c
+ ld hl, $777b
+ call PrintText
+ call Functiona36
+ scf
+ ret
+; 103747
+
+INCBIN "baserom.gbc", $103747, $103780 - $103747
+
+Function103780: ; 103780
+ ld a, [$d265]
+ push af
+ call Function10378c
+ pop af
+ ld [$d265], a
+ ret
+; 10378c
+
+Function10378c: ; 10378c
+ ld c, $0
+ ld hl, $dc20
+ bit 4, [hl]
+ jr nz, .asm_10379c
+ ld c, $1
+ ld hl, $dc20
+ set 4, [hl]
+
+.asm_10379c
+ push bc
+ callba Function14ab2
+ pop bc
+ jr c, .asm_1037b5
+ ld a, $1
+ ld [ScriptVar], a
+ ld a, c
+ and a
+ ret z
+ callba Function1006fd
+ ret
+
+.asm_1037b5
+ xor a
+ ld [ScriptVar], a
+ ld a, c
+ and a
+ ret z
+ ld hl, $dc20
+ res 4, [hl]
+ ret
+; 1037c2
+
+Function1037c2: ; 1037c2
+ call Function103823
+ jr c, .asm_1037de
+ ld a, [$dc5f]
+ and a
+ jr z, .asm_1037de
+ ld hl, $77e6
+ call PrintText
+ call Function1dcf
+ jr c, .asm_1037de
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_1037de
+ xor a
+ ld [$dc5f], a
+ ld [ScriptVar], a
+ ret
+; 1037e6
+
+INCBIN "baserom.gbc", $1037e6, $1037eb - $1037e6
+
+Function1037eb: ; 1037eb
+ call Function103823
+ jr nc, .asm_103807
+ ld hl, $7819
+ call PrintText
+ call Functiona36
+ ld hl, $781e
+ call PrintText
+ call Functiona36
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_103807
+ ld a, [$dc60]
+ and a
+ jr nz, .asm_103813
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_103813
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+; 103819
+
+INCBIN "baserom.gbc", $103819, $103823 - $103819
+
+Function103823: ; 103823
+ callba Function10632f
+ bit 7, c
+ jr nz, .asm_103838
+ callba Function1008a6
+ ld a, c
+ cp $1
+ jr c, .asm_10383a
+
+.asm_103838
+ xor a
+ ret
+
+.asm_10383a
+ scf
+ ret
+; 10383c
+
+Function10383c: ; 10383c
+ ld a, $1
+ ld [$dc60], a
+ xor a
+ ld hl, $dc5c
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $7876
+ call PrintText
+ call Functiona36
+ callba Script_reloadmappart
+ callba Function4a94e
+ jr c, .asm_103870
+ ld hl, DefaultFlypoint
+ ld de, $dc5c
+ ld bc, $0003
+ call CopyBytes
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_103870
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 103876
+
+INCBIN "baserom.gbc", $103876, $10387b - $103876
+
+Function10387b: ; 10387b
+ callba Function10632f
+ bit 7, c
+ ret nz
+ callba Function1008a6
+ ld a, c
+ ld [StringBuffer2], a
+ ld hl, $7898
+ call PrintText
+ call Functiona36
+ ret
+; 103898
+
+INCBIN "baserom.gbc", $103898, $10389d - $103898
SECTION "bank41",ROMX,BANK[$41]
@@ -68391,7 +78550,14 @@ Function10402d: ; 10402d
jp Function104177
; 104033
-INCBIN "baserom.gbc", $104033, $104061 - $104033
+INCBIN "baserom.gbc", $104033, $104047 - $104033
+
+Function104047: ; 104047
+ ld hl, $404d
+ jp Function104177
+; 10404d
+
+INCBIN "baserom.gbc", $10404d, $104061 - $10404d
Function104061: ; 104061
@@ -68399,7 +78565,15 @@ Function104061: ; 104061
jp Function104177
; 104067
-INCBIN "baserom.gbc", $104067, $104110 - $104067
+INCBIN "baserom.gbc", $104067, $104099 - $104067
+
+Function104099: ; 104099
+ ld hl, Function104061
+ ld hl, $40a2
+ jp Function104177
+; 1040a2
+
+INCBIN "baserom.gbc", $1040a2, $104110 - $1040a2
Function104110: ; 104110
@@ -68750,7 +78924,14 @@ EnteredConnection: ; 1046c4
; 1046c6
-INCBIN "baserom.gbc", $1046c6, $10486d - $1046c6
+INCBIN "baserom.gbc", $1046c6, $1047eb - $1046c6
+
+Function1047eb: ; 1047eb
+ ld b, $9
+ jp GetSGBLayout
+; 1047f0
+
+INCBIN "baserom.gbc", $1047f0, $10486d - $1047f0
Function10486d: ; 10486d
@@ -68800,7 +78981,32 @@ Function10486d: ; 10486d
ret
; 1048ba
-INCBIN "baserom.gbc", $1048ba, $1050d9 - $1048ba
+INCBIN "baserom.gbc", $1048ba, $1050b9 - $1048ba
+
+Function1050b9: ; 1050b9
+ call Function105106
+ ld hl, $abe3
+ ld a, [hl]
+ inc a
+ jr nz, .asm_1050c5
+ ld [hld], a
+ ld [hl], a
+
+.asm_1050c5
+ jp CloseSRAM
+; 1050c8
+
+Function1050c8: ; 1050c8
+ call Function105106
+ ld a, [$abe5]
+ cp $ff
+ jr z, .asm_1050d6
+ xor a
+ ld [$abe5], a
+
+.asm_1050d6
+ jp CloseSRAM
+; 1050d9
Function1050d9: ; 1050d9
@@ -69197,7 +79403,19 @@ UpdateUsedMoves: ; 105ed0
HallOfFame2: ; 0x105ef6
ret
-INCBIN "baserom.gbc", $105ef7, $106008 - $105ef7
+INCBIN "baserom.gbc", $105ef7, $105f33 - $105ef7
+
+Function105f33: ; 105f33
+ ret
+; 105f34
+
+INCBIN "baserom.gbc", $105f34, $105f79 - $105f34
+
+Function105f79: ; 105f79
+ ret
+; 105f7a
+
+INCBIN "baserom.gbc", $105f7a, $106008 - $105f7a
Function106008: ; 106008
@@ -69244,7 +79462,19 @@ Function106094: ; 106094
ret
; 106095
-INCBIN "baserom.gbc", $106095, $1060b5 - $106095
+INCBIN "baserom.gbc", $106095, $1060a2 - $106095
+
+Function1060a2: ; 1060a2
+ ret
+; 1060a3
+
+INCBIN "baserom.gbc", $1060a3, $1060af - $1060a3
+
+Function1060af: ; 1060af
+ ret
+; 1060b0
+
+INCBIN "baserom.gbc", $1060b0, $1060b5 - $1060b0
Function1060b5: ; 1060b5
ret
@@ -69263,7 +79493,13 @@ Function1060c1: ; 1060c1
ret
; 1060c2
-INCBIN "baserom.gbc", $1060c2, $1060d3 - $1060c2
+INCBIN "baserom.gbc", $1060c2, $1060cd - $1060c2
+
+Function1060cd: ; 1060cd
+ ret
+; 1060ce
+
+INCBIN "baserom.gbc", $1060ce, $1060d3 - $1060ce
Function1060d3: ; 1060d3
@@ -69509,7 +79745,50 @@ Function1062ff: ; 1062ff
ret
; 10630f
-INCBIN "baserom.gbc", $10630f, $106594 - $10630f
+Function10630f: ; 10630f
+ xor a
+ ld [ScriptVar], a
+ ret
+; 106314
+
+INCBIN "baserom.gbc", $106314, $10632f - $106314
+
+Function10632f: ; 10632f
+ or a
+ ret
+; 106331
+
+INCBIN "baserom.gbc", $106331, $106462 - $106331
+
+Function106462: ; 106462
+ ret
+; 106463
+
+INCBIN "baserom.gbc", $106463, $106464 - $106463
+
+Function106464: ; 106464
+ ld de, $5214
+ ld hl, $9600
+ ld bc, $3e01
+ call Get2bpp
+ ld de, $5424
+ ld hl, $9610
+ ld bc, $3e01
+ call Get2bpp
+ ld de, $6514
+ ld hl, $9620
+ ld c, $9
+ ld b, $41
+ call Get2bpp
+ ld de, $40b0
+ ld hl, $96b0
+ ld b, $f
+ call Get2bpp
+ callba Functionfb4cc
+ ret
+; 10649b
+
+INCBIN "baserom.gbc", $10649b, $106594 - $10649b
Function106594: ; 106594
@@ -69529,7 +79808,238 @@ INCBIN "baserom.gbc", $1065ad, $106dbc - $1065ad
SECTION "bank42",ROMX,BANK[$42]
-INCBIN "baserom.gbc", $108000, $109407 - $108000
+INCBIN "baserom.gbc", $108000, $108016 - $108000
+
+Function108016: ; 108016
+ ld a, $0
+ ld [$cf65], a
+ ld de, $4021
+ jp Function108089
+; 108021
+
+INCBIN "baserom.gbc", $108021, $108089 - $108021
+
+Function108089: ; 108089
+ ld hl, BattleEnded
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function108157
+.asm_1080a6
+ call Function10824b
+ jr nc, .asm_1080a6
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [$ffde], a
+ ret
+; 1080b7
+
+INCBIN "baserom.gbc", $1080b7, $108157 - $1080b7
+
+Function108157: ; 108157
+ xor a
+ ld [$cf63], a
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call Function1081ad
+ call Function1081ca
+ call Functione51
+ call Functione58
+ call EnableLCD
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ xor a
+ ld hl, $c300
+ ld [hli], a
+ ld [hl], $0
+ call DelayFrame
+ ld a, [PlayerSDefLevel]
+ ld de, PlayerAccLevel
+ call Function108239
+ ld a, [PlayerLightScreenCount]
+ ld de, PlayerReflectCount
+ call Function108239
+ xor a
+ call Function108b98
+ call Function108af4
+ ret
+; 1081ad
+
+Function1081ad: ; 1081ad
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, $1800
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, $1800
+ xor a
+ call ByteFill
+ ret
+; 1081ca
+
+Function1081ca: ; 1081ca
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VBGMap0
+ ld bc, $0800
+ ld a, $0
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld hl, VBGMap0
+ ld bc, $0800
+ ld a, $7f
+ call ByteFill
+ ret
+; 1081e9
+
+INCBIN "baserom.gbc", $1081e9, $108239 - $1081e9
+
+Function108239: ; 108239
+ push de
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, $000b
+ call CopyBytes
+ ret
+; 10824b
+
+Function10824b: ; 10824b
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_10825a
+ call Function10827b
+ call DelayFrame
+ and a
+ ret
+
+.asm_10825a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call Functione51
+ call Functione58
+ callba Function106462
+ callba Function106464
+ scf
+ ret
+; 10827b
+
+Function10827b: ; 10827b
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $428a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 10828a
+
+INCBIN "baserom.gbc", $10828a, $108af4 - $10828a
+
+Function108af4: ; 108af4
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [$cf65]
+ and $1
+ jr z, .asm_108b1c
+ ld hl, $5187
+ ld de, Unkn2Pals
+ ld bc, $0040
+ call CopyBytes
+ ld hl, $5187
+ ld de, OBPals
+ ld bc, $0040
+ call CopyBytes
+ jr .asm_108b34
+
+.asm_108b1c
+ ld hl, $5147
+ ld de, Unkn2Pals
+ ld bc, $0040
+ call CopyBytes
+ ld hl, $5147
+ ld de, OBPals
+ ld bc, $0040
+ call CopyBytes
+
+.asm_108b34
+ pop af
+ ld [rSVBK], a
+ ld a, $e4
+ call Functioncf8
+ ld a, $e4
+ call DmgToCgbBGPals
+ call DelayFrame
+ ret
+; 108b45
+
+INCBIN "baserom.gbc", $108b45, $108b98 - $108b45
+
+Function108b98: ; 108b98
+ ld d, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [$cf65]
+ and $1
+ xor d
+ jr z, .asm_108bad
+ ld hl, $4ba0
+ jr .asm_108bb0
+
+.asm_108bad
+ ld hl, $4b98
+
+.asm_108bb0
+ ld de, $d038
+ ld bc, $0040
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 108bbd
+
+INCBIN "baserom.gbc", $108bbd, $109407 - $108bbd
IntroLogoGFX: ; 109407
INCBIN "gfx/intro/logo.lz"
@@ -69588,7 +80098,7 @@ Function109847: ; 109847
call $5a95
xor a
ld [$cf66], a
- ld hl, $d100
+ ld hl, LYOverrides
ld bc, Start
xor a
call ByteFill
@@ -70199,7 +80709,193 @@ Function114243: ; 114243
jp [hl]
; 11425c
-INCBIN "baserom.gbc", $11425c, $117a7f - $11425c
+INCBIN "baserom.gbc", $11425c, $115d99 - $11425c
+
+Function115d99: ; 115d99
+ ld de, $601a
+ ld hl, $8600
+ ld bc, $4514
+ call Get2bpp
+ xor a
+ ld [$c305], a
+ ld [$c306], a
+ ld [$c309], a
+ ld [$c30a], a
+ ld [$c30b], a
+ ld [$c30c], a
+ ld a, $10
+ ld [$c307], a
+ ld a, $18
+ ld [$c308], a
+ ret
+; 115dc3
+
+INCBIN "baserom.gbc", $115dc3, $115dd3 - $115dc3
+
+Function115dd3: ; 115dd3
+ ld a, [$c305]
+ and a
+ ret z
+ ld a, $a0
+ ld hl, $c47c
+ ld bc, $0020
+ call ByteFill
+ call Function115e22
+ ld a, [$c309]
+ sla a
+ ld c, a
+ ld b, $0
+ ld hl, $5e86
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld de, $c47c
+ ld a, [$c307]
+ ld c, a
+ ld a, [$c308]
+ 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 [$c30a], a
+ xor a
+ ld [$c30b], a
+ jr Function115e2b
+; 115e22
+
+Function115e22: ; 115e22
+ ld hl, $c30c
+ dec [hl]
+ ret nz
+ ld hl, $c30b
+ inc [hl]
+
+Function115e2b: ; 115e2b
+ ld a, [$c30a]
+ sla a
+ ld c, a
+ ld b, $0
+ ld hl, $5e59
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ pop hl
+ ld a, [$c30b]
+ sla a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_115e51
+ xor a
+ ld [$c30b], a
+ jr Function115e2b
+
+.asm_115e51
+ ld [$c309], a
+ ld a, [hl]
+ ld [$c30c], a
+ ret
+; 115e59
+
+INCBIN "baserom.gbc", $115e59, $11615a - $115e59
+
+Function11615a: ; 11615a
+ xor a
+ ld [$c30d], a
+ ld [$c319], a
+ ld [$c310], a
+ ld [$c311], a
+ ld [$c312], a
+ ld [$c313], a
+ ld [$c314], a
+ ld [$c315], a
+ ld [$c318], a
+ ld [$c3f6], a
+ ld [$c3f8], a
+ ld [$c3f2], a
+ ld [$c3f4], a
+ ld a, $24
+ ld [$c3f5], a
+ ld a, $7
+ ld [$c3f7], a
+ ld a, $b0
+ ld [$c30e], a
+ ld [$c3f1], a
+ ld a, $48
+ ld [$c30f], a
+ ld [$c3f3], a
+ ret
+; 11619d
+
+Function11619d: ; 11619d
+ ld a, [$c30d]
+ 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, $61c7
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1161c7
+
+INCBIN "baserom.gbc", $1161c7, $117656 - $1161c7
+
+Function117656: ; 117656
+ callba GiveOddEgg
+ ret
+; 11765d
+
+INCBIN "baserom.gbc", $11765d, $117a7f - $11765d
; everything from here to the end of the bank is related to the
@@ -70551,7 +81247,384 @@ Function117cdd: ; 0x117cdd
SECTION "bank46",ROMX,BANK[$46]
-INCBIN "baserom.gbc", $118000, $118ba5 - $118000
+Function118000: ; 118000
+ ld a, $1
+ ld [$cd38], a
+ jr .asm_11800b
+
+ xor a
+ ld [$cd38], a
+
+.asm_11800b
+ call Function1183cb
+ ld a, $18
+ ld [$cd33], a
+ ld a, $19
+ ld [$cd34], a
+ ld a, $4
+ ld [$c3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_118024
+ call Functiona57
+ call Function118473
+ ld a, [$cf66]
+ cp $1b
+ jr c, .asm_118037
+ ld a, [$cd34]
+ ld [$cf66], a
+
+.asm_118037
+ call Function1184a5
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [$cf66]
+ ld hl, $cd33
+ cp [hl]
+ jr nz, .asm_118024
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call Function222a
+ ret
+; 11805f
+
+Function11805f: ; 11805f
+ ld a, $1
+ ld [$cd38], a
+ call Function1183cb
+ ld a, $18
+ ld [$cd33], a
+ ld a, $19
+ ld [$cd34], a
+ ld a, $4
+ ld [$c3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11807d
+ call Functiona57
+ call Function118473
+ ld a, [$cf66]
+ cp $1b
+ jr c, .asm_118090
+ ld a, [$cd34]
+ ld [$cf66], a
+
+.asm_118090
+ call Function11857c
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [$cf66]
+ ld hl, $cd33
+ cp [hl]
+ jr nz, .asm_11807d
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call Function222a
+ ret
+; 1180b8
+
+INCBIN "baserom.gbc", $1180b8, $11811a - $1180b8
+
+Function11811a: ; 11811a
+ ld a, 1
+ ld [$cd38], a
+ jr Function118125
+
+Function118121: ; 118121
+ xor a
+ ld [$cd38], a
+
+Function118125: ; 118125
+ call Function1183cb
+ ld a, $3
+ ld [$cd33], a
+ ld a, $d
+ ld [$cd34], a
+ ld a, $4
+ ld [$c3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11813e
+ call Functiona57
+ call Function118473
+ ld a, [$cf66]
+ cp $f
+ jr c, .asm_118151
+ ld a, [$cd34]
+ ld [$cf66], a
+
+.asm_118151
+ call Function11854d
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [$cf66]
+ ld hl, $cd33
+ cp [hl]
+ jr nz, .asm_11813e
+ xor a
+ ld [Unkn1Pals], a
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call Function118180
+ call Function222a
+ ret
+; 118180
+
+Function118180: ; 118180
+ ld a, [ScriptVar]
+ and a
+ ret nz
+ ld a, [$cd38]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $cd69
+ ld de, $a89c
+ ld bc, $0016
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld de, $d202
+ ld c, $96
+ callba Function17d0b3
+ jr c, .asm_1181d0
+ ld de, $d202
+ ld bc, $0196
+ callba Function17d1e1
+ jr c, .asm_1181d0
+ ld hl, $d202
+ ld de, $a8b2
+ ld bc, $0096
+ call CopyBytes
+.asm_1181c9
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+.asm_1181d0
+ ld a, $d3
+ ld [$c300], a
+ ld [ScriptVar], a
+ jr .asm_1181c9
+; 1181da
+
+Function1181da: ; 1181da
+ call Function1183cb
+ ld a, $2
+ ld [$cd38], a
+ ld a, $21
+ ld [$cd33], a
+ ld a, $22
+ ld [$cd34], a
+ ld a, $4
+ ld [$c3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_1181f8
+ call Functiona57
+ call Function118473
+ ld a, [$cf66]
+ cp $28
+ jr c, .asm_11820b
+ ld a, [$cd34]
+ ld [$cf66], a
+
+.asm_11820b
+ call Function1185c3
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [$cf66]
+ ld hl, $cd33
+ cp [hl]
+ jr nz, .asm_1181f8
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call Function222a
+ ret
+; 118233
+
+INCBIN "baserom.gbc", $118233, $1183cb - $118233
+
+Function1183cb: ; 1183cb
+ di
+ ld a, [rIE]
+ ld [$cd32], a
+ call DoubleSpeed
+ xor a
+ ld [rIF], a
+ ld [$c300], a
+ ld [$c301], a
+ ld [$c302], a
+ ld [$cd80], a
+ ld [$cd65], a
+ ld [$cd66], a
+ ld [$cd67], a
+ ld [$cd68], a
+ ld [$c31a], a
+ ld [$cd89], a
+ ld [$cd8a], a
+ ld [$cd8b], a
+ ld [$c3ec], a
+ ld [$c3ed], a
+ ld [$c3ee], a
+ ld [$c3ef], a
+ ld hl, VramState
+ ld a, [hl]
+ ld [$cd7f], a
+ set 1, [hl]
+ ld a, $f
+ ld [rIE], a
+ ld a, $1
+ ld [$ffc9], a
+ ld [$ffe9], a
+ ei
+ callba Function106462
+ callba Function106464
+ callba Function115d99
+ callba Function11615a
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$bfff], a
+ call CloseSRAM
+ ret
+; 118440
+
+INCBIN "baserom.gbc", $118440, $118452 - $118440
+
+Function118452: ; 118452
+ di
+ xor a
+ ld [$ffc9], a
+ ld [$ffe9], a
+ ld [$ff9e], a
+ call NormalSpeed
+ xor a
+ ld [rIF], a
+ ld a, [$cd32]
+ ld [rIE], a
+ ei
+ ld a, [$cd7f]
+ ld [VramState], a
+ ld a, [$c300]
+ ld [ScriptVar], a
+ ret
+; 118473
+
+Function118473: ; 118473
+ ld a, [$cd65]
+ and a
+ ret z
+ ld a, [$cd66]
+ inc a
+ ld [$cd66], a
+ cp $3c
+ ret nz
+ xor a
+ ld [$cd66], a
+ ld a, [$cd67]
+ inc a
+ ld [$cd67], a
+ cp $3c
+ ret nz
+ ld a, [$cd68]
+ inc a
+ ld [$cd68], a
+ cp $63
+ jr z, .asm_1184a0
+ xor a
+ ld [$cd67], a
+ ret
+
+.asm_1184a0
+ xor a
+ ld [$cd65], a
+ ret
+; 1184a5
+
+Function1184a5: ; 1184a5
+ ld a, [$cf66]
+ ld e, a
+ ld d, $0
+ ld hl, $44b4
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1184b4
+
+INCBIN "baserom.gbc", $1184b4, $11854d - $1184b4
+
+Function11854d: ; 11854d
+ ld a, [$cf66]
+ ld e, a
+ ld d, $0
+ ld hl, $455c
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11855c
+
+INCBIN "baserom.gbc", $11855c, $11857c - $11855c
+
+Function11857c: ; 11857c
+ ld a, [$cf66]
+ ld e, a
+ ld d, $0
+ ld hl, $458b
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11858b
+
+INCBIN "baserom.gbc", $11858b, $1185c3 - $11858b
+
+Function1185c3: ; 1185c3
+ ld a, [$cf66]
+ ld e, a
+ ld d, $0
+ ld hl, $45d2
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1185d2
+
+INCBIN "baserom.gbc", $1185d2, $118ba5 - $1185d2
ExchangeDownloadURL: ; 0x118ba5
ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt"
@@ -70578,7 +81651,22 @@ IndexDownloadURL: ; 0x118ce4
db $0
-INCBIN "baserom.gbc", $118d35, $11aa13 - $118d35
+INCBIN "baserom.gbc", $118d35, $11a8fa - $118d35
+
+Function11a8fa: ; 11a8fa
+ ld a, [$c31a]
+ ld e, a
+ ld d, $0
+ ld hl, $6909
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11a909
+
+INCBIN "baserom.gbc", $11a909, $11aa13 - $11a909
UnknownText_0x11aa13: ; 0x11aa13
db $0, "SAVE FILE will be", $4f
@@ -70670,15 +81758,628 @@ UnknownText_0x11ac0b: ; 0x11ac0b
; 0x11ac1f
UnknownText_0x11ac1f: ; 0x11ac1f
- text_from_ram $d099
+ text_from_ram StringBuffer3
db $0, "'s ROOM", $4f
db "@"
- text_from_ram $d0ac
+ text_from_ram StringBuffer4
db $0, "?", $55
db "Please wait…", $57
; 0x11ac3e
-INCBIN "baserom.gbc", $11ac3e, $11b98f - $11ac3e
+Function11ac3e: ; 11ac3e
+ call SpeechTextBox
+ call FadeToMenu
+ callab Function8e814
+ call Function11ac51
+ call Function2b3c
+ 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, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ xor a
+ ld [$ffde], a
+ ld [$cd49], a
+ ld [$cd4a], a
+ ld [$cd4c], a
+ ld [$cd4d], a
+ ld [$cd4e], a
+ call Function11ad1b
+ call DelayFrame
+.asm_11ac82
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_11aca8
+ call Function11b314
+ call Function11acb7
+ call Function11ad6e
+ ld a, $78
+ ld [$c3b5], a
+ callba Function8cf7a
+ callba Function104061
+ jr .asm_11ac82
+
+.asm_11aca8
+ call ClearSprites
+ pop af
+ ld [$ffaa], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [Options], a
+ ret
+; 11acb7
+
+Function11acb7: ; 11acb7
+ ld hl, $7a44
+ ld a, [$cd49]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ ld de, $c51e
+ ld a, [hli]
+ ld [de], a
+ ld de, $c52c
+ ld bc, $0007
+ call CopyBytes
+ ld a, [$cd49]
+ inc a
+ ld [$cd49], a
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_11aceb
+ xor a
+ ld [$cd49], a
+
+.asm_11aceb
+ ld hl, $7b7d
+ ld a, [$cd4a]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ ld de, $c557
+ ld bc, $0007
+ call CopyBytes
+ ld a, [$cd4a]
+ inc a
+ ld [$cd4a], a
+ inc hl
+ ld a, [hl]
+ cp $ff
+ ret nz
+ xor a
+ ld [$cd4a], a
+ ret
+; 11ad1b
+
+Function11ad1b: ; 11ad1b
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+ callba Function17c000
+ ld a, [$cfa9]
+ ld [$cd82], a
+ dec a
+ ld [hConnectedMapWidth], a
+ ld a, $10
+ ld [$c3b7], a
+ ld hl, $683f
+ ld a, $23
+ ld e, $4
+ rst FarCall
+ ld hl, $683f
+ ld a, $23
+ ld e, $5
+ rst FarCall
+ ld hl, PlayerSDefLevel
+ ld bc, $0115
+ xor a
+ call ByteFill
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ld [$cd30], a
+ ld a, $2
+ ld [$c7d4], a
+ callba Function40bdc
+ ret
+; 11ad6e
+
+Function11ad6e: ; 11ad6e
+ ld a, [$cf63]
+ ld hl, $6d78
+ call Function11b239
+ jp [hl]
+; 11ad78
+
+INCBIN "baserom.gbc", $11ad78, $11b239 - $11ad78
+
+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
+
+INCBIN "baserom.gbc", $11b242, $11b314 - $11b242
+
+Function11b314: ; 11b314
+ call Function11b31b
+ call Function11b3d9
+ ret
+; 11b31b
+
+Function11b31b: ; 11b31b
+ ld hl, $7350
+ ld a, [$cf63]
+ cp $2
+ jr c, .asm_11b349
+ ld a, [$c7d1]
+ cp $4
+ jr nc, .asm_11b344
+ cp $3
+ jr c, .asm_11b349
+ ld a, [$cf63]
+ cp $2
+ jr z, .asm_11b349
+ cp $3
+ jr z, .asm_11b349
+ cp $6
+ jr z, .asm_11b349
+ ld bc, $737b
+ jr .asm_11b34c
+
+.asm_11b344
+ ld bc, $7389
+ jr .asm_11b34c
+
+.asm_11b349
+ ld bc, $736d
+
+.asm_11b34c
+ call Function11b397
+ ret
+; 11b350
+
+INCBIN "baserom.gbc", $11b350, $11b397 - $11b350
+
+Function11b397: ; 11b397
+ ld de, Sprites
+.asm_11b39a
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld a, [$c7d1]
+ and $7
+ swap a
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [bc]
+ inc bc
+ ld [de], a
+ inc de
+ ld a, $5
+ ld [de], a
+ inc de
+ jr .asm_11b39a
+; 11b3b6
+
+INCBIN "baserom.gbc", $11b3b6, $11b3d9 - $11b3b6
+
+Function11b3d9: ; 11b3d9
+ ld de, $c470
+ push de
+ ld a, [$c7d2]
+ dec a
+ ld e, a
+ ld a, [$c7d1]
+ ld hl, $c7d0
+ add [hl]
+ cp e
+ jr z, .asm_11b40d
+ ld hl, $0000
+ ld bc, $0070
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld b, $0
+ ld a, d
+ or e
+ jr z, .asm_11b40f
+ ld a, [$c7d2]
+ ld c, a
+.asm_11b401
+ ld a, e
+ sub c
+ ld e, a
+ ld a, d
+ sbc $0
+ ld d, a
+ jr c, .asm_11b40f
+ inc b
+ jr .asm_11b401
+
+.asm_11b40d
+ ld b, $70
+
+.asm_11b40f
+ ld a, $15
+ add b
+ pop hl
+ ld [hli], a
+ cp $41
+ jr c, .asm_11b42b
+ ld a, [$cf63]
+ cp $4
+ jr z, .asm_11b43b
+ cp $5
+ jr z, .asm_11b43b
+ cp $7
+ jr z, .asm_11b43b
+ cp $8
+ jr z, .asm_11b43b
+
+.asm_11b42b
+ ld a, $9b
+ ld [hli], a
+ ld a, [$cd4c]
+ add $3c
+ ld [hli], a
+ ld a, [$cd4c]
+ add $1
+ ld [hl], a
+ ret
+
+.asm_11b43b
+ ld a, $9b
+ ld [hli], a
+ ld a, $39
+ ld [hli], a
+ xor a
+ ld [hl], a
+ ret
+; 11b444
+
+Function11b444: ; 11b444
+ call Function11b44b
+ call Function11b45c
+ ret
+; 11b44b
+
+Function11b44b: ; 11b44b
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ call UpdateTime
+ ret
+; 11b45c
+
+Function11b45c: ; 11b45c
+.asm_11b45c
+ call Function11b46a
+ call DelayFrame
+ ld a, [$cf63]
+ cp $4
+ jr nz, .asm_11b45c
+ ret
+; 11b46a
+
+Function11b46a: ; 11b46a
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $7479
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11b479
+
+INCBIN "baserom.gbc", $11b479, $11b5e8 - $11b479
+
+Function11b5e8: ; 11b5e8
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $d4ba
+ ld de, EnemyMoveAnimation
+ ld bc, $0004
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, EnemyMoveAnimation
+ ld de, $b08c
+ ld bc, $0004
+ call CopyBytes
+ ld a, $2
+ ld [$a800], a
+ ld a, [$a81f]
+ ld [$cd2a], a
+ ld a, [$a820]
+ ld [$cd2b], a
+ ld a, [$a821]
+ ld [$cd2c], a
+ ld a, [$a822]
+ ld [$cd2d], a
+ ld a, [$a823]
+ ld [$cd2e], a
+ ld a, [$a824]
+ ld [$cd2f], a
+ ld a, [$a825]
+ ld [$cd30], a
+ ld a, [$a826]
+ ld [$cd31], a
+ call CloseSRAM
+ call Function11b44b
+ call Function11b64c
+ ret
+; 11b64c
+
+Function11b64c: ; 11b64c
+.asm_11b64c
+ call Function11b65a
+ call DelayFrame
+ ld a, [$cf63]
+ cp $1
+ jr nz, .asm_11b64c
+ ret
+; 11b65a
+
+Function11b65a: ; 11b65a
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $7669
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11b669
+
+INCBIN "baserom.gbc", $11b669, $11b7e5 - $11b669
+
+Function11b7e5: ; 11b7e5
+ ld a, [EnemyMovePP]
+ ld [PlayerLightScreenCount], a
+ ld [CurPartySpecies], a
+ ld a, [$cd81]
+ ld [$c74e], a
+ ld hl, $c63d
+ ld de, $c724
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld a, [PlayerMoveAccuracy]
+ ld [$c731], a
+ ld a, [PlayerMovePP]
+ ld [$c732], a
+ ld hl, $c622
+ ld a, [hli]
+ ld [$c72f], a
+ ld a, [hl]
+ ld [$c730], a
+ ld bc, EnemyMovePP
+ callba Function4f301
+ ld a, c
+ ld [$c733], a
+ call SpeechTextBox
+ call FadeToMenu
+ callba Function108016
+ callba Function17d1f1
+ ld a, $1
+ ld [$d1e9], a
+ ld a, $2
+ ld [InLinkBattle], a
+ callba Function421d8
+ xor a
+ ld [InLinkBattle], a
+ callba Function14a58
+ 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 Function2147
+ ld a, d
+ or e
+ jr z, .asm_11b872
+ ld a, $1
+ ld [de], a
+
+.asm_11b872
+ call Function2b3c
+ call Function3d47
+ ret
+; 11b879
+
+Function11b879: ; 11b879
+ callba Function17089a
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a800]
+ ld [ScriptVar], a
+ ld a, [$a890]
+ ld [$cd49], a
+ ld a, [$a891]
+ ld [$cd4a], a
+ ld a, [$a892]
+ ld [$cd4b], a
+ ld a, [$a893]
+ ld [$cd4c], a
+ call CloseSRAM
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld hl, $cd4c
+ ld a, [hRTCDayHi]
+ cp [hl]
+ ret nz
+ dec hl
+ ld a, [hRTCDayLo]
+ cp [hl]
+ ret nz
+ ld hl, $cd4a
+ ld a, [hRTCHours]
+ cp [hl]
+ jr nc, .asm_11b8d8
+ ld a, $18
+ sub [hl]
+ ld hl, hRTCHours
+ add [hl]
+ ld [$cd4c], a
+ ld a, [hRTCMinutes]
+ ld [$cd4b], a
+ xor a
+ ld [$cd4a], a
+ jr .asm_11b8e2
+
+.asm_11b8d8
+ ld a, [hRTCMinutes]
+ ld [$cd4b], a
+ ld a, [hRTCHours]
+ ld [$cd4c], a
+
+.asm_11b8e2
+ xor a
+ ld l, a
+ ld h, a
+ ld b, a
+ ld d, a
+ ld a, [$cd4b]
+ ld e, a
+ ld a, [$cd4c]
+ 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, [$cd49]
+ ld e, a
+ ld a, [$cd4a]
+ 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 Function11b44b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a81f
+ ld de, $c626
+ ld bc, $0008
+ 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, EnemyMoveAnimation
+ ld bc, $008f
+ call CopyBytes
+ call CloseSRAM
+ ld a, $8
+ ld [BGMapBuffer], a
+ ld a, $c6
+ ld [$cd21], a
+ ld a, $11
+ ld [CreditsTimer], a
+ ld a, $c6
+ ld [$cd23], a
+ ld a, $41
+ ld [$cd24], a
+ ld a, $c6
+ ld [$cd25], a
+ ld a, $46
+ ld [$cd26], a
+ ld a, $c6
+ ld [$cd27], a
+ ld a, $4b
+ ld [$cd28], a
+ ld a, $c6
+ ld [$cd29], a
+ call Function11b98f
+ callba Function14a58
+ ret
+; 11b98f
Function11b98f: ; 11b98f
ld hl, PartyCount
@@ -70778,7 +82479,15 @@ Function11b98f: ; 11b98f
ret
; 11ba38
-INCBIN "baserom.gbc", $11ba38, $11bc9e - $11ba38
+Function11ba38: ; 11ba38
+ callba Functione538
+ ret c
+ xor a
+ ld [ScriptVar], a
+ ret
+; 11ba44
+
+INCBIN "baserom.gbc", $11ba44, $11bc9e - $11ba44
SECTION "bank47",ROMX,BANK[$47]
@@ -70854,7 +82563,91 @@ Function11c000: ; 11c000
ret
; 11c05d
-INCBIN "baserom.gbc", $11c05d, $11c0c6 - $11c05d
+Function11c05d: ; 11c05d
+ ld a, e
+ or d
+ jr z, .asm_11c071
+ ld a, e
+ and d
+ cp $ff
+ jr z, .asm_11c071
+ push hl
+ call Function11c156
+ pop hl
+ call PlaceString
+ and a
+ ret
+
+.asm_11c071
+ ld c, l
+ ld b, h
+ scf
+ ret
+; 11c075
+
+Function11c075: ; 11c075
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, $cd36
+ call Function11c08f
+ ret
+; 11c082
+
+INCBIN "baserom.gbc", $11c082, $11c08f - $11c082
+
+Function11c08f: ; 11c08f
+ ld l, e
+ ld h, d
+ push hl
+ ld a, $3
+.asm_11c094
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .asm_11c0a2
+ inc bc
+
+.asm_11c0a2
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_11c094
+ pop hl
+ ld de, $0028
+ add hl, de
+ ld a, $3
+.asm_11c0b0
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .asm_11c0be
+ inc bc
+
+.asm_11c0be
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_11c0b0
+ ret
+; 11c0c6
Function11c0c6: ; 11c0c6
@@ -71012,7 +82805,375 @@ Function11c156: ; 11c156
jr .asm_11c18f
; 11c1ab
-INCBIN "baserom.gbc", $11c1ab, $11f686 - $11c1ab
+Function11c1ab: ; 11c1ab
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ call Function11c1b9
+ pop af
+ ld [$ffaa], a
+ ret
+; 11c1b9
+
+Function11c1b9: ; 11c1b9
+ call Function11c1ca
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function11c283
+ pop af
+ ld [rSVBK], a
+ ret
+; 11c1ca
+
+Function11c1ca: ; 11c1ca
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ld [$cd23], a
+ ld [BGMapBuffer], a
+ ld [$cd21], a
+ ld [CreditsTimer], a
+ ld [$cd35], a
+ ld [$cd2b], a
+ ld a, $ff
+ ld [$cd24], a
+ ld a, [$cfa9]
+ dec a
+ call Function11c254
+ call WhiteBGMap
+ call ClearSprites
+ call Functionfdb
+ call Function11d323
+ call Function32f9
+ call DisableLCD
+ ld hl, $567e
+ ld de, VTiles2
+ ld bc, $0060
+ call CopyBytes
+ ld hl, $56de
+ ld de, VTiles0
+ call Decompress
+ call EnableLCD
+ callba Function104061
+ callba Function8cf53
+ callba Function1500c
+ callba Function40c30
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, PlayerSDefLevel
+ ld de, LYOverrides
+ ld bc, Start
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function11d4aa
+ call Function11d3ba
+ 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, $cd36
+ ld bc, $000c
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 11c277
+
+INCBIN "baserom.gbc", $11c277, $11c283 - $11c277
+
+Function11c283: ; 11c283
+.asm_11c283
+ call Functiona57
+ ld a, [hJoyPressed]
+ ld [hJoypadPressed], a
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_11c2a2
+ call Function11c2ac
+ callba Function8cf69
+ callba Function104061
+ jr .asm_11c283
+
+.asm_11c2a2
+ callba Function8cf53
+ call ClearSprites
+ ret
+; 11c2ac
+
+Function11c2ac: ; 11c2ac
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $42bb
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11c2bb
+
+INCBIN "baserom.gbc", $11c2bb, $11d323 - $11c2bb
+
+Function11d323: ; 11d323
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $533a
+ ld de, Unkn1Pals
+ ld bc, $0080
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d33a
+
+INCBIN "baserom.gbc", $11d33a, $11d3ba - $11d33a
+
+Function11d3ba: ; 11d3ba
+ ld a, [rSVBK]
+ push af
+ ld hl, BattleMonSpclDef
+ ld a, $0
+ ld [$cd2d], a
+ ld [hli], a
+ ld a, $d8
+ ld [$cd2e], a
+ ld [hl], a
+ ld a, $fe
+ ld [$cd2f], a
+ ld a, $54
+ ld [$cd30], a
+ ld a, $a8
+ ld [$cd31], a
+ ld a, $c6
+ ld [$cd32], a
+ ld a, $4a
+ ld [$cd33], a
+ ld a, $c6
+ ld [$cd34], a
+ ld hl, $723c
+ ld a, $2d
+
+Function11d3ef: ; 11d3ef
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ ld hl, Unkn1Pals
+ add hl, de
+ ld a, [$cd2d]
+ ld e, a
+ ld a, [$cd2e]
+ ld d, a
+ push bc
+.asm_11d406
+ 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, .asm_11d406
+ ld a, [$cd2f]
+ ld l, a
+ ld a, [$cd30]
+ ld h, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, l
+ ld [$cd2f], a
+ ld a, h
+ ld [$cd30], a
+ push bc
+ pop hl
+ ld c, $0
+.asm_11d43d
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_11d453
+ call Function11d493
+ jr nz, .asm_11d44a
+ inc hl
+ jr .asm_11d43d
+
+.asm_11d44a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ inc c
+ jr .asm_11d43d
+
+.asm_11d453
+ pop hl
+ ld b, $0
+ add hl, bc
+ push hl
+ pop bc
+ ld a, [$cd31]
+ ld l, a
+ ld a, [$cd32]
+ ld h, a
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld a, l
+ ld [$cd31], a
+ ld a, h
+ ld [$cd32], a
+ ld a, [$cd33]
+ ld l, a
+ ld a, [$cd34]
+ ld h, a
+ ld a, e
+ ld [$cd2d], a
+ ld [hli], a
+ ld a, d
+ ld [$cd2e], a
+ ld [hli], a
+ ld a, l
+ ld [$cd33], a
+ ld a, h
+ ld [$cd34], a
+ pop hl
+ pop af
+ dec a
+ jr z, .asm_11d48f
+ jp Function11d3ef
+
+.asm_11d48f
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d493
+
+Function11d493: ; 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
+
+Function11d4aa: ; 11d4aa
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $5aac
+ ld bc, $7220
+ xor a
+ ld [$cd2d], a
+ inc a
+ ld [$cd2e], a
+ ld a, $e
+.asm_11d4c1
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld hl, $0005
+ add hl, de
+ ld a, [bc]
+ inc bc
+ inc bc
+ push bc
+.asm_11d4cf
+ push af
+ push hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ld hl, Unkn1Pals
+ add hl, de
+ ld a, [$cd2d]
+ ld [hli], a
+ inc a
+ ld [$cd2d], a
+ ld a, [$cd2e]
+ ld [hl], a
+ pop hl
+ ld de, $0008
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_11d4cf
+ ld hl, $cd2d
+ xor a
+ ld [hli], a
+ inc [hl]
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_11d4c1
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d4fe
+
+INCBIN "baserom.gbc", $11d4fe, $11f686 - $11d4fe
SECTION "bank48",ROMX,BANK[$48]
@@ -71839,7 +84000,114 @@ INCBIN "gfx/pics/201r/back.lz"
SECTION "bank5B",ROMX,BANK[$5B]
-INCBIN "baserom.gbc", $16c000, $16d69a - $16c000
+INCBIN "baserom.gbc", $16c000, $16d421 - $16c000
+
+Function16d421: ; 16d421
+ ld de, $4fc1
+ ld hl, VTiles2
+ ld bc, $5b46
+ call Get2bpp
+ ret
+; 16d42e
+
+Function16d42e: ; 16d42e
+ ld hl, $5465
+ ld de, TileMap
+ ld bc, $0168
+ call CopyBytes
+ ret
+; 16d43b
+
+INCBIN "baserom.gbc", $16d43b, $16d61d - $16d43b
+
+Function16d61d: ; 16d61d
+ ld h, d
+ ld l, e
+ push bc
+ push hl
+ call Function16d640
+ pop hl
+ pop bc
+ ld de, $0939
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ ld a, $7
+.asm_16d630
+ push bc
+ push hl
+.asm_16d632
+ ld [hli], a
+ dec c
+ jr nz, .asm_16d632
+ pop hl
+ ld de, $0014
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_16d630
+ ret
+; 16d640
+
+Function16d640: ; 16d640
+ push hl
+ ld a, $30
+ ld [hli], a
+ inc a
+ call Function16d66d
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, $0014
+ add hl, de
+.asm_16d64f
+ push hl
+ ld a, $33
+ ld [hli], a
+ ld a, $7f
+ call Function16d66d
+ ld [hl], $34
+ pop hl
+ ld de, $0014
+ add hl, de
+ dec b
+ jr nz, .asm_16d64f
+ ld a, $35
+ ld [hli], a
+ ld a, $36
+ call Function16d66d
+ ld [hl], $37
+ ret
+; 16d66d
+
+Function16d66d: ; 16d66d
+ ld d, c
+.asm_16d66e
+ ld [hli], a
+ dec d
+ jr nz, .asm_16d66e
+ ret
+; 16d673
+
+Function16d673: ; 16d673
+ call Function16d696
+ call Function16d6ae
+ callba Function49856
+ callba Functionfb60d
+ ld hl, $c5fe
+ ld de, $568f
+ call PlaceString
+ ret
+; 16d68f
+
+INCBIN "baserom.gbc", $16d68f, $16d696 - $16d68f
+
+Function16d696: ; 16d696
+ call Function16d421
+ ret
+; 16d69a
Function16d69a: ; 16d69a
@@ -71850,12 +84118,387 @@ Function16d69a: ; 16d69a
ret
; 16d6a7
-INCBIN "baserom.gbc", $16d6a7, $16d7fe - $16d6a7
+Function16d6a7: ; 16d6a7
+ callba Function49811
+ ret
+; 16d6ae
+
+Function16d6ae: ; 16d6ae
+ call Function16d42e
+ ld hl, $55cd
+ ld de, TileMap
+ ld bc, $0028
+ call CopyBytes
+ ld hl, $55f5
+ ld de, $c5e0
+ ld bc, $0028
+ call CopyBytes
+ ret
+; 16d6ca
+
+Function16d6ca: ; 16d6ca
+ call Function16d61d
+ ret
+; 16d6ce
+
+Function16d6ce: ; 16d6ce
+ call Function1d6e
+ call Function16d6e1
+ callba Function87d
+ call Function1d7d
+ call Function3200
+ ret
+; 16d6e1
+
+Function16d6e1: ; 16d6e1
+ ld hl, $c56c
+ ld b, $1
+ ld c, $a
+ ld a, $10
+ call Predef
+ ld hl, $c581
+ ld de, $5701
+ call PlaceString
+ call WaitBGMap
+ call Function3200
+ ld c, $32
+ jp DelayFrames
+; 16d701
+
+INCBIN "baserom.gbc", $16d701, $16d70c - $16d701
+
+Function16d70c: ; 16d70c
+ call Function16d725
+ call Function16d713
+ ret
+; 16d713
+
+Function16d713: ; 16d713
+ push bc
+ push af
+ ld a, [$ffa9]
+ and $f0
+ ld b, a
+ ld a, [hJoyPressed]
+ and $f
+ or b
+ ld b, a
+ pop af
+ ld a, b
+ pop bc
+ ld d, a
+ ret
+; 16d725
+
+Function16d725: ; 16d725
+ ld hl, $cfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function16d734
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 16d734
+
+Function16d734: ; 16d734
+.asm_16d734
+ call Function16d77a
+ call Function16d759
+ call Function16d76a
+ jr nc, .asm_16d758
+ callba Function24270
+ jr c, .asm_16d758
+ ld a, [$cfa5]
+ bit 7, a
+ jr nz, .asm_16d758
+ call Function16d713
+ ld b, a
+ ld a, [$cfa8]
+ and b
+ jr z, .asm_16d734
+
+.asm_16d758
+ ret
+; 16d759
+
+Function16d759: ; 16d759
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call WaitBGMap
+ pop af
+ ld [hOAMUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 16d76a
+
+Function16d76a: ; 16d76a
+.asm_16d76a
+ call RTC
+ call Function16d7e7
+ ret c
+ ld a, [$cfa5]
+ bit 7, a
+ jr z, .asm_16d76a
+ and a
+ ret
+; 16d77a
+
+Function16d77a: ; 16d77a
+ ld hl, $cfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ cp $1f
+ jr nz, .asm_16d792
+ ld a, [$cfab]
+ ld [hl], a
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], a
+ pop bc
+ pop hl
+
+.asm_16d792
+ ld a, [$cfa1]
+ ld b, a
+ ld a, [$cfa2]
+ ld c, a
+ call Function1d05
+ ld a, [$cfa7]
+ swap a
+ and $f
+ ld c, a
+ ld a, [$cfa9]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_16d7b1
+.asm_16d7ad
+ add c
+ dec b
+ jr nz, .asm_16d7ad
+
+.asm_16d7b1
+ ld c, $14
+ call AddNTimes
+ ld a, [$cfa7]
+ and $f
+ ld c, a
+ ld a, [$cfaa]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_16d7c8
+.asm_16d7c4
+ add c
+ dec b
+ jr nz, .asm_16d7c4
+
+.asm_16d7c8
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ cp $1f
+ jr z, .asm_16d7de
+ ld [$cfab], a
+ ld [hl], $1f
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $1f
+ pop bc
+ pop hl
+
+.asm_16d7de
+ ld a, l
+ ld [$cfac], a
+ ld a, h
+ ld [$cfad], a
+ ret
+; 16d7e7
+
+Function16d7e7: ; 16d7e7
+ ld a, [$cfa5]
+ bit 6, a
+ jr z, .asm_16d7f4
+ callba Function8cf62
+
+.asm_16d7f4
+ call Functiona57
+ call Function16d713
+ and a
+ ret z
+ scf
+ ret
+; 16d7fe
SECTION "bank5C",ROMX,BANK[$5C]
-INCBIN "baserom.gbc", $170000, $170923 - $170000
+INCBIN "baserom.gbc", $170000, $1700b0 - $170000
+
+Function1700b0: ; 1700b0
+ call Function17021e
+ callba Function118121
+ ret
+; 1700ba
+
+Function1700ba: ; 1700ba
+ call Function17021e
+ callba Function11811a
+ ret
+; 1700c4
+
+INCBIN "baserom.gbc", $1700c4, $170114 - $1700c4
+
+Function170114: ; 170114
+ call Function17021e
+ call Function170121
+ callba Function11805f
+ ret
+; 170121
+
+Function170121: ; 170121
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a948
+ ld de, EnemyMoveAnimation
+ ld bc, $00f6
+ call CopyBytes
+ call CloseSRAM
+ call Function170c8b
+ ret
+; 170139
+
+INCBIN "baserom.gbc", $170139, $170215 - $170139
+
+Function170215: ; 170215
+ xor a
+ ld [$cf63], a
+ call Function17022c
+ ret
+; 17021d
+
+Function17021d: ; 17021d
+ ret
+; 17021e
+
+Function17021e: ; 17021e
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ret
+; 17022c
+
+Function17022c: ; 17022c
+.asm_17022c
+ call Function17023a
+ call DelayFrame
+ ld a, [$cf63]
+ cp $1
+ jr nz, .asm_17022c
+ ret
+; 17023a
+
+Function17023a: ; 17023a
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $4249
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 170249
+
+INCBIN "baserom.gbc", $170249, $1704e1 - $170249
+
+Function1704e1: ; 1704e1
+ call SpeechTextBox
+ call FadeToMenu
+ call Function17021e
+ call Function1704f1
+ call Function2b3c
+ ret
+; 1704f1
+
+Function1704f1: ; 1704f1
+ call WhiteBGMap
+ call ClearSprites
+ call Functionfdb
+.asm_1704fa
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_17050f
+ call Function170510
+ callba Function104061
+ jr .asm_1704fa
+
+.asm_17050f
+ ret
+; 170510
+
+Function170510: ; 170510
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $451f
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 17051f
+
+INCBIN "baserom.gbc", $17051f, $170687 - $17051f
+
+Function170687: ; 170687
+ ld a, [ScriptVar]
+ ld e, a
+ ld d, $0
+ ld hl, $4696
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 170696
+
+INCBIN "baserom.gbc", $170696, $17089a - $170696
+
+Function17089a: ; 17089a
+ ld a, [$cfcd]
+ and a
+ jr z, .asm_1708ad
+ callba Function14bcb
+ jr z, .asm_1708ab
+ xor a
+ jr .asm_1708ad
+
+.asm_1708ab
+ ld a, $1
+
+.asm_1708ad
+ ld [ScriptVar], a
+ ret
+; 1708b1
+
+INCBIN "baserom.gbc", $1708b1, $170923 - $1708b1
Function170923: ; 170923
@@ -71871,7 +84514,85 @@ Function170923: ; 170923
ret
; 17093c
-INCBIN "baserom.gbc", $17093c, $17367f - $17093c
+INCBIN "baserom.gbc", $17093c, $170b44 - $17093c
+
+Function170b44: ; 170b44
+ callba Function1f8000
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $d10a
+ ld a, [hl]
+ dec a
+ ld c, a
+ ld b, $0
+ pop af
+ ld [rSVBK], a
+ ld hl, $4b90
+ add hl, bc
+ ld a, [hl]
+ ld [$cd49], a
+ 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, [$cd49]
+ ld [hl], a
+ ld hl, UsedSprites
+ add hl, de
+ ld [hli], a
+ ld [$ffbd], a
+ ld a, [hl]
+ ld [$ffbe], a
+ callba Function143c8
+ ret
+; 170b90
+
+INCBIN "baserom.gbc", $170b90, $170bd2 - $170b90
+
+Function170bd2: ; 170bd2
+ ret
+; 170bd3
+
+Function170bd3: ; 170bd3
+ callba Function8b201
+ jr c, .asm_170bde
+ xor a
+ jr .asm_170be0
+
+.asm_170bde
+ ld a, $1
+
+.asm_170be0
+ ld [ScriptVar], a
+ ret
+; 170be4
+
+INCBIN "baserom.gbc", $170be4, $170c8b - $170be4
+
+Function170c8b: ; 170c8b
+ ld hl, LastPlayerCounterMove
+ ld b, $5
+.asm_170c90
+ ld a, [hl]
+ xor $ff
+ ld [hli], a
+ dec b
+ jr nz, .asm_170c90
+ ret
+; 170c98
+
+INCBIN "baserom.gbc", $170c98, $17367f - $170c98
SECTION "bank5D",ROMX,BANK[$5D]
@@ -71972,7 +84693,427 @@ Function17c000: ; 17c000
ret
; 17c083
-INCBIN "baserom.gbc", $17c083, $17f036 - $17c083
+INCBIN "baserom.gbc", $17c083, $17d0b3 - $17c083
+
+Function17d0b3: ; 17d0b3
+.asm_17d0b3
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_17d0ee
+ cp $60
+ jr nc, .asm_17d0ee
+ cp $4e
+ jr z, .asm_17d0ee
+ cp $50
+ jr z, .asm_17d0ee
+ cp $5
+ jr c, .asm_17d0ec
+ cp $14
+ jr c, .asm_17d0ee
+ cp $19
+ jr c, .asm_17d0ec
+ cp $1d
+ jr c, .asm_17d0ee
+ cp $26
+ jr c, .asm_17d0ec
+ cp $35
+ jr c, .asm_17d0ee
+ cp $3a
+ jr c, .asm_17d0ec
+ cp $3f
+ jr c, .asm_17d0ee
+ cp $40
+ jr c, .asm_17d0ec
+ cp $49
+ jr c, .asm_17d0ee
+
+.asm_17d0ec
+ scf
+ ret
+
+.asm_17d0ee
+ dec c
+ jr nz, .asm_17d0b3
+ and a
+ ret
+; 17d0f3
+
+INCBIN "baserom.gbc", $17d0f3, $17d1e1 - $17d0f3
+
+Function17d1e1: ; 17d1e1
+.asm_17d1e1
+ ld a, [de]
+ inc de
+ cp $4e
+ jr nz, .asm_17d1ea
+ dec b
+ jr z, .asm_17d1ef
+
+.asm_17d1ea
+ dec c
+ jr nz, .asm_17d1e1
+ and a
+ ret
+
+.asm_17d1ef
+ scf
+ ret
+; 17d1f1
+
+Function17d1f1: ; 17d1f1
+ ld a, [CurPartySpecies]
+ dec a
+ call SetSeenAndCaughtMon
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_17d223
+ ld hl, PartyMon1DVs
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld a, $2d
+ call Predef
+ callab Functionfba18
+ ld a, [$def4]
+ and a
+ jr nz, .asm_17d223
+ ld a, [UnownLetter]
+ ld [$def4], a
+
+.asm_17d223
+ ret
+; 17d224
+
+Function17d224: ; 17d224
+ ld a, [ScriptVar]
+ and a
+ jr nz, .asm_17d234
+ ld a, $4
+ ld [ScriptVar], a
+ ld hl, $526a
+ jr .asm_17d23c
+
+.asm_17d234
+ ld a, $4
+ ld [ScriptVar], a
+ ld hl, $528f
+
+.asm_17d23c
+ call LoadMenuDataHeader
+ call Function17d246
+ call Function1c17
+ ret
+; 17d246
+
+Function17d246: ; 17d246
+ call Function1d81
+ jr c, .asm_17d264
+ ld a, [ScriptVar]
+ cp $5
+ jr nz, .asm_17d25d
+ ld a, [$cfa9]
+ cp $3
+ ret z
+ jr c, .asm_17d25d
+ dec a
+ jr .asm_17d260
+
+.asm_17d25d
+ ld a, [$cfa9]
+
+.asm_17d260
+ ld [ScriptVar], a
+ ret
+
+.asm_17d264
+ ld a, $4
+ ld [ScriptVar], a
+ ret
+; 17d26a
+
+INCBIN "baserom.gbc", $17d26a, $17d2b6 - $17d26a
+
+Function17d2b6: ; 17d2b6
+ call Function17d2c0
+ callba Function1181da
+ ret
+; 17d2c0
+
+Function17d2c0: ; 17d2c0
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], 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, $0066
+ ld a, e
+ ld [CurMusic], a
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+ call StartMusic
+ call Function222a
+ call Function2b3c
+ 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, $000c
+ call ByteFill
+ call CloseSRAM
+ ld a, $2
+ ld [ScriptVar], a
+ scf
+ ret
+; 17d370
+
+Function17d370: ; 17d370
+ xor a
+ ld [$cd77], a
+ ld [$cd78], a
+ ld [$cd79], a
+ dec a
+ ld [$cd6c], a
+ call WhiteBGMap
+ call ClearSprites
+ call Functionfdb
+ callba Function104061
+ call DisableLCD
+ ld hl, $8ee0
+ ld de, EnemyMoveAnimation
+ ld bc, $0010
+ call CopyBytes
+ ld a, $1
+ ld [rVBK], a
+ ld hl, $66fe
+ ld de, VTiles1
+ ld bc, $0480
+ call CopyBytes
+ xor a
+ ld hl, $97f0
+ ld bc, $0010
+ call ByteFill
+ ld hl, EnemyMoveAnimation
+ ld de, $8ee0
+ ld bc, $0010
+ call CopyBytes
+ xor a
+ ld [rVBK], a
+ ld hl, $6b7e
+ ld de, $9600
+ ld bc, $0010
+ call CopyBytes
+ call EnableLCD
+ call Function17d60b
+ ld a, $0
+ ld [BGMapBuffer], a
+ ld a, $d0
+ ld [$cd21], a
+ ld a, $6
+ call GetSRAMBank
+ ld hl, $a006
+ ld de, Unkn1Pals
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17d3f6
+
+INCBIN "baserom.gbc", $17d3f6, $17d45a - $17d3f6
+
+Function17d45a: ; 17d45a
+.asm_17d45a
+ call Functiona57
+ ld a, [$cd77]
+ bit 7, a
+ jr nz, .asm_17d46f
+ call Function17d474
+ callba Function104061
+ jr .asm_17d45a
+
+.asm_17d46f
+ xor a
+ ld [ScriptVar], a
+ ret
+; 17d474
+
+Function17d474: ; 17d474
+ ld a, [$cd77]
+ ld e, a
+ ld d, $0
+ ld hl, $5483
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 17d483
+
+INCBIN "baserom.gbc", $17d483, $17d60b - $17d483
+
+Function17d60b: ; 17d60b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b1d3
+ ld de, EnemyMoveAnimation
+ ld bc, $0020
+ 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, $000a
+ add hl, bc
+ pop bc
+ ld a, [hli]
+ ld [$cd4a], a
+ ld a, [hli]
+ ld [$cd49], a
+ push hl
+ push de
+ ld hl, EnemyMoveAnimation
+ ld e, b
+ ld d, $0
+ add hl, de
+ ld a, [hli]
+ ld [$cd4b], a
+ ld a, [hl]
+ ld [$cd4c], a
+ pop de
+ pop hl
+ inc b
+ inc b
+ dec c
+ dec c
+ jr z, .asm_17d684
+ push bc
+ push de
+ ld a, [$cd49]
+ ld c, a
+ ld a, [$cd4a]
+ ld b, a
+ ld a, [$cd4b]
+ ld e, a
+ ld a, [$cd4c]
+ 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
+
+INCBIN "baserom.gbc", $17d6a1, $17f036 - $17d6a1
Function17f036: ; 17f036
@@ -71999,8 +85140,8 @@ Function17f047: ; 17f047
dec a
push de
ld e, a
- ld d, $0
- ld hl, $7061
+ ld d, 0
+ ld hl, Table17f061
add hl, de
add hl, de
ld a, [hli]
@@ -72013,7 +85154,1164 @@ Function17f047: ; 17f047
ret
; 17f061
-INCBIN "baserom.gbc", $17f061, $17ff6c - $17f061
+Table17f061: ; 17f061
+ dw Function17f081
+ dw Function17f0f8
+ dw Function17f154
+ dw Function17f181
+ dw Function17f1d0
+ dw Function17f220
+ dw Function17f27b
+ dw Function17f2cb
+ dw Function17f2ff
+ dw Function17f334
+ dw Function17f382
+ dw Function17f3c9
+ dw Function17f3f0
+ dw Function17f41d
+ dw Function17f44f
+ dw Function17f44f
+; 17f081
+
+Function17f081: ; 17f081
+ pop hl
+ call Function17f524
+ jr c, .asm_17f09f
+ ld de, $0004
+ 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, $cd54
+ ld bc, $0007
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ pop bc
+ ld a, [$cd54]
+ ld e, a
+ ld a, [$cd55]
+ ld d, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ push hl
+ ld a, [$cd56]
+ ld b, a
+ ld a, [$cd57]
+ ld c, a
+ call Function31a4
+ ld a, l
+ ld [$cd52], a
+ ld a, h
+ ld [$cd53], a
+ ld a, [$cd59]
+ and a
+ jr z, .asm_17f0ee
+ ld c, a
+ ld a, [$cd57]
+ 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, [$cd5a]
+ ld [hl], a
+
+.asm_17f0ee
+ pop hl
+ ld a, [$cd58]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f0f8
+
+Function17f0f8: ; 17f0f8
+ pop hl
+ call Function17f524
+ jr c, .asm_17f114
+ ld de, $0003
+ 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, $cd54
+ ld bc, $0004
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ ld a, [$cd54]
+ ld e, a
+ ld a, [$cd55]
+ ld d, a
+ add hl, de
+ ld de, EnemyMoveAnimation
+ ld a, [$cd56]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ pop hl
+ ld de, EnemyMoveAnimation
+ call PlaceString
+ ld a, c
+ ld [$cd52], a
+ ld a, b
+ ld [$cd53], a
+ ld a, [$cd57]
+ 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, $0002
+ 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 [$cd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld c, a
+ ld de, EnemyMoveAnimation
+ callba Function48c63
+ pop hl
+ ld de, EnemyMoveAnimation
+ call PlaceString
+ ld a, c
+ ld [$cd52], a
+ ld a, b
+ ld [$cd53], a
+ ld a, [$cd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f1d0
+
+Function17f1d0: ; 17f1d0
+ pop hl
+ call Function17f524
+ jr c, .asm_17f1ec
+ ld de, $0002
+ 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 [$cd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld a, $1
+ ld [rSVBK], a
+ ld [$d265], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ ld a, c
+ ld [$cd52], a
+ ld a, b
+ ld [$cd53], a
+ ld a, $4
+ ld [rSVBK], a
+ ld a, [$cd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f220
+
+Function17f220: ; 17f220
+ pop hl
+ call Function17f524
+ jr c, .asm_17f23c
+ ld de, $0002
+ 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 [$cd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld e, a
+ ld d, $0
+ ld hl, $726e
+ 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 [$cd52], a
+ ld a, b
+ ld [$cd53], a
+ ld a, [$cd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f26e
+
+INCBIN "baserom.gbc", $17f26e, $17f27b - $17f26e
+
+Function17f27b: ; 17f27b
+ pop hl
+ call Function17f524
+ jr c, .asm_17f297
+ ld de, $0002
+ 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 [$cd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld a, $1
+ ld [rSVBK], a
+ ld [$d265], a
+ call GetItemName
+ pop hl
+ call PlaceString
+ ld a, c
+ ld [$cd52], a
+ ld a, b
+ ld [$cd53], a
+ ld a, $4
+ ld [rSVBK], a
+ ld a, [$cd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f2cb
+
+Function17f2cb: ; 17f2cb
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [$cd54], a
+ ld a, [hli]
+ ld [$cd55], a
+ ld a, [$cd2e]
+ inc a
+ ld [$cd56], a
+ pop bc
+ push hl
+ ld l, c
+ ld h, b
+ push hl
+ ld de, $cd56
+ ld b, $1
+ ld a, [$cd54]
+ ld c, a
+ call Function31a4
+ ld a, l
+ ld [$cd52], a
+ ld a, h
+ ld [$cd53], a
+ pop hl
+ ld a, [$cd55]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f2ff
+
+Function17f2ff: ; 17f2ff
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [$cd54], a
+ pop bc
+ push hl
+ push bc
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, PlayerName
+ ld de, EnemyMoveAnimation
+ ld bc, $0006
+ call CopyBytes
+ ld a, $4
+ ld [rSVBK], a
+ pop hl
+ ld de, EnemyMoveAnimation
+ call PlaceString
+ ld a, c
+ ld [$cd52], a
+ ld a, b
+ ld [$cd53], a
+ ld a, [$cd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f334
+
+Function17f334: ; 17f334
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [$cd55], a
+ and $f
+ ld [$cd54], a
+ pop bc
+ push hl
+ ld l, c
+ ld h, b
+ push hl
+ ld a, [$cd55]
+ bit 7, a
+ jr nz, .asm_17f355
+ ld a, $1
+ call GetSRAMBank
+ ld a, [$be3f]
+ jr .asm_17f35d
+
+.asm_17f355
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2f3]
+
+.asm_17f35d
+ ld c, a
+ call CloseSRAM
+ ld de, EnemyMoveAnimation
+ callba Function48c63
+ pop hl
+ ld de, EnemyMoveAnimation
+ call PlaceString
+ ld a, c
+ ld [$cd52], a
+ ld a, b
+ ld [$cd53], a
+ ld a, [$cd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f382
+
+Function17f382: ; 17f382
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [$cd55], a
+ and $f
+ ld [$cd54], a
+ pop bc
+ push hl
+ push bc
+ ld l, c
+ ld h, b
+ ld a, [$cd55]
+ bit 7, a
+ jr nz, .asm_17f3a3
+ ld a, $1
+ call GetSRAMBank
+ ld de, $be40
+ jr .asm_17f3ab
+
+.asm_17f3a3
+ ld a, $5
+ call GetSRAMBank
+ ld de, $b2f4
+
+.asm_17f3ab
+ ld a, $82
+ ld b, a
+ ld a, $3
+ ld c, a
+ call PrintNum
+ call CloseSRAM
+ ld a, l
+ ld [$cd52], a
+ ld a, h
+ ld [$cd53], a
+ pop hl
+ ld a, [$cd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f3c9
+
+Function17f3c9: ; 17f3c9
+ push bc
+ ld hl, $cd36
+ ld de, $c708
+ ld bc, $000c
+ call CopyBytes
+ pop de
+ ld c, $0
+ callba Function11c075
+ push hl
+ ld hl, $c708
+ ld de, $cd36
+ ld bc, $000c
+ 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, Unkn1Pals
+ 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, $3b60
+ add hl, bc
+ ld de, $ffec
+ ld c, $1
+.asm_17f42c
+ ld a, h
+ and a
+ jr nz, .asm_17f435
+ ld a, l
+ cp $14
+ jr c, .asm_17f439
+
+.asm_17f435
+ add hl, de
+ inc c
+ jr .asm_17f42c
+
+.asm_17f439
+ ld hl, TileMap
+ ld de, $0014
+ 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, $0005
+ 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, $cd54
+ ld bc, $0008
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ ld a, [$cd56]
+ cp $c0
+ jr c, .asm_17f488
+ ld a, [$cd54]
+ ld [rSVBK], a
+ jr .asm_17f48e
+
+.asm_17f488
+ ld a, [$cd54]
+ call GetSRAMBank
+
+.asm_17f48e
+ ld a, [$cd55]
+ ld l, a
+ ld a, [$cd56]
+ ld h, a
+ ld de, EnemyMoveAnimation
+ ld a, [$cd57]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$cd56]
+ 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, EnemyMoveAnimation
+ pop hl
+ push hl
+ ld a, [$cd57]
+ ld b, a
+ ld a, [$cd58]
+ ld c, a
+ call Function31a4
+ ld a, l
+ ld [$cd52], a
+ ld a, h
+ ld [$cd53], a
+ ld a, [$cd5a]
+ and a
+ jr z, .asm_17f4ec
+ ld c, a
+ ld a, [$cd58]
+ 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, [$cd5b]
+ ld [hl], a
+
+.asm_17f4ec
+ pop hl
+ ld a, [$cd59]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f4f6
+
+Function17f4f6: ; 17f4f6
+ ld a, [$cd6a]
+ ld l, a
+ ld a, [$cd6b]
+ ld h, a
+ ld a, [$cd47]
+ ld c, a
+ ld a, [BGMapPalBuffer]
+ ld b, a
+ ld a, [$cd2e]
+.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, [$cd52]
+ ld c, a
+ ld l, a
+ ld a, [$cd53]
+ ld b, a
+ ld h, a
+ ret
+; 17f524
+
+Function17f524: ; 17f524
+ push hl
+ push bc
+ push de
+ ld a, [$cd42]
+ dec a
+ ld b, a
+ ld a, [$cd2e]
+ cp b
+ jr z, .asm_17f53a
+ ld hl, $cd68
+ cp [hl]
+.asm_17f536
+ pop de
+ pop bc
+ pop hl
+ ret
+
+.asm_17f53a
+ scf
+ jr .asm_17f536
+; 17f53d
+
+Function17f53d: ; 17f53d
+ call FadeToMenu
+ xor a
+ ld [$c303], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call Function17f555
+ pop af
+ ld [rSVBK], a
+ call Function2b4d
+ ret
+; 17f555
+
+Function17f555: ; 17f555
+.asm_17f555
+ call Functiona57
+ call Function17f5ae
+ ld a, [$c303]
+ bit 7, a
+ jr nz, .asm_17f56a
+ callba Function104000
+ jr .asm_17f555
+
+.asm_17f56a
+ call Function17f56e
+ ret
+; 17f56e
+
+Function17f56e: ; 17f56e
+ ld a, [$c300]
+ cp $22
+ jr z, .asm_17f597
+ cp $31
+ jr z, .asm_17f58a
+ cp $33
+ ret nz
+ ld a, [$c301]
+ cp $1
+ ret nz
+ ld a, [$c302]
+ cp $2
+ ret nz
+ jr .asm_17f5a1
+
+.asm_17f58a
+ ld a, [$c301]
+ cp $3
+ ret nz
+ ld a, [$c302]
+ and a
+ ret nz
+ jr .asm_17f5a1
+
+.asm_17f597
+ ld a, [$c301]
+ and a
+ ret nz
+ ld a, [$c302]
+ and a
+ ret nz
+
+.asm_17f5a1
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$aa4b], a
+ call CloseSRAM
+ ret
+; 17f5ae
+
+Function17f5ae: ; 17f5ae
+ ld a, [$c303]
+ ld e, a
+ ld d, 0
+ ld hl, Table17f5bd
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 17f5bd
+
+Table17f5bd: ; 17f5bd
+ dw Function17f5c3
+ dw Function17ff23
+ dw Function17f5d2
+; 17f5c3
+
+Function17f5c3: ; 17f5c3
+ call Function17f5e4
+ callba Function2b5c
+ ld a, $1
+ ld [$c303], a
+ ret
+; 17f5d2
+
+Function17f5d2: ; 17f5d2
+ call Function17f5e4
+ callba Function104000
+ call Function32f9
+ ld a, $1
+ ld [$c303], a
+ ret
+; 17f5e4
+
+Function17f5e4: ; 17f5e4
+ ld a, $8
+ ld [MusicFade], a
+ ld de, MUSIC_NONE
+ ld a, e
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+ ld a, " "
+ ld hl, TileMap
+ ld bc, $0168
+ call ByteFill
+ ld a, $6
+ ld hl, AttrMap
+ ld bc, $0168
+ call ByteFill
+ ld hl, $c4b6
+ ld b, $1
+ ld c, $e
+ call Function3eea
+ ld hl, $c4f1
+ ld b, $c
+ ld c, $10
+ call Function3eea
+ ld hl, $c4cb
+ ld de, $76dc
+ call PlaceString
+ call Function17ff3c
+ jr nc, .asm_17f632
+ ld hl, $c4d3
+ call Function17f6b7
+
+.asm_17f632
+ ld a, [$c300]
+ 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, $7706
+ add hl, de
+ add hl, de
+ ld a, [$c301]
+ ld e, a
+ ld a, [$c302]
+ 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
+ ld hl, $c51a
+ call PlaceString
+ ret
+
+.asm_17f684
+ sub $d0
+ ld e, a
+ ld d, $0
+ ld hl, $7699
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ld hl, $c51a
+ call PlaceString
+ ret
+; 17f699
+
+INCBIN "baserom.gbc", $17f699, $17f6b7 - $17f699
+
+Function17f6b7: ; 17f6b7
+ ld a, [$c300]
+ call Function17f6cd
+ inc hl
+ ld a, [$c302]
+ and $f
+ call Function17f6d8
+ ld a, [$c301]
+ call Function17f6cd
+ ret
+; 17f6cd
+
+Function17f6cd: ; 17f6cd
+ ld c, a
+ and $f0
+ swap a
+ call Function17f6d8
+ ld a, c
+ and $f
+
+Function17f6d8: ; 17f6d8
+ add $f6
+ ld [hli], a
+ ret
+; 17f6dc
+
+INCBIN "baserom.gbc", $17f6dc, $17ff23 - $17f6dc
+
+Function17ff23: ; 17ff23
+ ld a, [hJoyPressed]
+ and a
+ ret z
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [CurMusic]
+ ld [MusicFadeIDLo], a
+ xor a
+ ld [MusicFadeIDHi], a
+ ld hl, $c303
+ set 7, [hl]
+ ret
+; 17ff3c
+
+Function17ff3c: ; 17ff3c
+ nop
+ ld a, [$c300]
+ cp $d0
+ ret c
+ ld hl, $c4d2
+ ld de, $7f68
+ call PlaceString
+ ld a, [$c300]
+ push af
+ sub $d0
+ inc a
+ ld [$c300], a
+ ld hl, $c4d6
+ ld de, $c300
+ ld bc, $8103
+ call PrintNum
+ pop af
+ ld [$c300], a
+ and a
+ ret
+; 17ff68
+
+INCBIN "baserom.gbc", $17ff68, $17ff6c - $17ff68
SECTION "bank60",ROMX,BANK[$60]
@@ -72388,7 +86686,7 @@ RegionCheck: ; 0x1caea1
SECTION "bank73",ROMX,BANK[$73]
- ; Pokedex entries III
+; Pokedex entries III
; 129-192
PokedexEntries3:
INCLUDE "stats/pokedex/entries_3.asm"
@@ -72414,28 +86712,281 @@ UnownFont: ; 1dc000
INCBIN "gfx/misc/unown_font.2bpp"
; 1dc1b0
-INCBIN "baserom.gbc", $1dc1b0, $1dc5a1 - $1dc1b0
+INCBIN "baserom.gbc", $1dc1b0, $1dc381 - $1dc1b0
+
+Function1dc381: ; 1dc381
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call Functione58
+ ld de, $4591
+ ld hl, $9710
+ ld bc, $7701
+ call Request1bpp
+ ld de, $4599
+ ld hl, $96e0
+ ld bc, $7701
+ call Request1bpp
+ ld de, $4a90
+ ld hl, $93f0
+ ld bc, $3e01
+ call Get2bpp
+ xor a
+ ld [MonType], a
+ callba Function5084a
+ ld hl, $c52c
+ ld b, $9
+ ld c, $12
+ call TextBox
+ ld hl, $c4d0
+ ld a, [TempMonLevel]
+ call Function383d
+ ld hl, $c4d4
+ ld [hl], $71
+ inc hl
+ ld de, TempMonMaxHP
+ ld bc, $0203
+ call PrintNum
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ ld [CurSpecies], a
+ ld hl, PartyMon1Nickname
+ call Function1dc50e
+ ld hl, $c4f8
+ call PlaceString
+ ld hl, $c521
+ ld [hl], $f3
+ call GetPokemonName
+ ld hl, $c522
+ call PlaceString
+ ld hl, $c4a8
+ ld [hl], $74
+ inc hl
+ ld [hl], $e8
+ inc hl
+ ld de, $d265
+ ld bc, $8103
+ call PrintNum
+ ld hl, $c555
+ ld de, $4550
+ call PlaceString
+ ld hl, PartyMon1OT
+ call Function1dc50e
+ ld hl, $c558
+ call PlaceString
+ ld hl, $c57d
+ ld de, $4559
+ call PlaceString
+ ld hl, $c580
+ ld de, TempMonID
+ ld bc, $8205
+ call PrintNum
+ ld hl, $c5b9
+ ld de, $4554
+ call PlaceString
+ ld hl, $c5bf
+ ld a, [TempMonMove1]
+ call Function1dc51a
+ call Function1dc52c
+ ld hl, TempMonDVs
+ ld a, $2d
+ call Predef
+ ld hl, $c2c6
+ xor a
+ ld [hl], a
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr z, .asm_1dc469
+ inc [hl]
+
+.asm_1dc469
+ ld hl, TileMap
+ call Function378b
+ call WaitBGMap
+ ld b, $3
+ call GetSGBLayout
+ call Function32f9
+ ret
+; 1dc47b
+
+Function1dc47b: ; 1dc47b
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call Functione58
+ xor a
+ ld [MonType], a
+ callba Function5084a
+ ld hl, TileMap
+ ld b, $f
+ ld c, $12
+ call TextBox
+ ld bc, $0014
+ ld de, TileMap
+ ld hl, $c4b4
+ call CopyBytes
+ ld hl, $c4a7
+ ld a, [TempMonMove2]
+ call Function1dc51a
+ ld hl, $c4cf
+ ld a, [TempMonMove3]
+ call Function1dc51a
+ ld hl, $c4f7
+ ld a, [TempMonMove4]
+ call Function1dc51a
+ ld hl, $c533
+ ld de, $455d
+ call PlaceString
+ ld hl, $c53c
+ ld de, TempMonAtk
+ call Function1dc507
+ ld hl, $c564
+ ld de, TempMonDef
+ call Function1dc507
+ ld hl, $c58c
+ ld de, TempMonSpclAtk
+ call Function1dc507
+ ld hl, $c5b4
+ ld de, TempMonSpclDef
+ call Function1dc507
+ ld hl, $c5dc
+ ld de, TempMonSpd
+ call Function1dc507
+ call WaitBGMap
+ ld b, $3
+ call GetSGBLayout
+ call Function32f9
+ ret
+; 1dc507
+
+Function1dc507: ; 1dc507
+ ld bc, $0203
+ call PrintNum
+ ret
+; 1dc50e
+
+Function1dc50e: ; 1dc50e
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+; 1dc51a
+
+Function1dc51a: ; 1dc51a
+ and a
+ jr z, .asm_1dc525
+ ld [$d265], a
+ call GetMoveName
+ jr .asm_1dc528
+
+.asm_1dc525
+ ld de, $4584
-Tileset26GFX: ; 0x1dc5a1
-Tileset32GFX: ; 0x1dc5a1
-Tileset33GFX: ; 0x1dc5a1
-Tileset34GFX: ; 0x1dc5a1
-Tileset35GFX: ; 0x1dc5a1
-Tileset36GFX: ; 0x1dc5a1
-INCBIN "gfx/tilesets/36.lz"
-; 0x1dd1a8
+.asm_1dc528
+ call PlaceString
+ ret
+; 1dc52c
+
+Function1dc52c: ; 1dc52c
+ callba GetGender
+ ld a, $7f
+ jr c, .asm_1dc53c
+ ld a, $ef
+ jr nz, .asm_1dc53c
+ ld a, $f5
- db $00
+.asm_1dc53c
+ ld hl, $c4d9
+ ld [hl], a
+ ld bc, TempMonDVs
+ callba CheckShininess
+ ret nc
+ ld hl, $c4da
+ ld [hl], $3f
+ ret
+; 1dc550
+
+INCBIN "baserom.gbc", $1dc550, $1dc5a1 - $1dc550
+
+INCLUDE "tilesets/data_7.asm"
+
+INCBIN "baserom.gbc", $1dd6a9, $1dd702 - $1dd6a9
+
+Function1dd702: ; 1dd702
+ call Function1dd709
+ call Functiona80
+ ret
+; 1dd709
+
+Function1dd709: ; 1dd709
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ ld hl, $5805
+ ld de, VTiles2
+ call Decompress
+ ld hl, $5c4b
+ ld de, TileMap
+ ld bc, $0168
+ call CopyBytes
+ ld de, $5760
+ ld hl, $c506
+ call PlaceString
+ ld de, $5767
+ ld hl, $c513
+ call PlaceString
+ ld de, PlayerName
+ ld hl, $c50d
+ call PlaceString
+ ld de, $5768
+ ld hl, $c542
+ call PlaceString
+ call EnableLCD
+ call WaitBGMap
+ ld b, $8
+ call GetSGBLayout
+ call Function32f9
+ call DelayFrame
+ ret
+; 1dd760
-Tileset26Meta: ; 0x1dd1a9
-INCBIN "tilesets/26_metatiles.bin"
-; 0x1dd5a9
+INCBIN "baserom.gbc", $1dd760, $1dd7ae - $1dd760
-Tileset26Coll: ; 0x1dd5a9
-INCBIN "tilesets/26_collision.bin"
-; 0x1dd6a9
+Function1dd7ae: ; 1dd7ae
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ ld hl, $5db3
+ ld de, TileMap
+ ld bc, $0168
+ call CopyBytes
+ ld de, $57fa
+ ld hl, $c4a8
+ call PlaceString
+ ld de, $57f0
+ ld hl, $c5cf
+ call PlaceString
+ ld hl, $c5d8
+ ld de, GameTimeHours
+ ld bc, $0204
+ call PrintNum
+ ld [hl], $67
+ inc hl
+ ld de, GameTimeMinutes
+ ld bc, $8102
+ call PrintNum
+ ret
+; 1dd7f0
-INCBIN "baserom.gbc", $1dd6a9, $1ddf1c - $1dd6a9
+INCBIN "baserom.gbc", $1dd7f0, $1ddf1c - $1dd7f0
Function1ddf1c: ; 1ddf1c
@@ -72529,7 +87080,7 @@ Function1de299: ; 1de299
DudeAutoInput_A: ; 1de29f
db NO_INPUT, $50
- db BUTTON_A, $00
+ db A_BUTTON, $00
db NO_INPUT, $ff ; end
; 1de2a5
@@ -72537,7 +87088,7 @@ DudeAutoInput_RightA: ; 1de2a5
db NO_INPUT, $08
db D_RIGHT, $00
db NO_INPUT, $08
- db BUTTON_A, $00
+ db A_BUTTON, $00
db NO_INPUT, $ff ; end
; 1de2af
@@ -72551,12 +87102,33 @@ DudeAutoInput_DownA: ; 1de2af
db NO_INPUT, $fe
db NO_INPUT, $fe
db NO_INPUT, $fe
- db BUTTON_A, $00
+ db A_BUTTON, $00
db NO_INPUT, $ff ; end
; 1de2c5
-INCBIN "baserom.gbc", $1de2c5, $1de2e4 - $1de2c5
+Function1de2c5: ; 1de2c5
+ ld hl, StringBuffer1
+.asm_1de2c8
+ ld a, [hl]
+ cp $50
+ jr z, .asm_1de2da
+ cp $25
+ jr z, .asm_1de2d8
+ cp $1f
+ jr z, .asm_1de2d8
+ inc hl
+ jr .asm_1de2c8
+
+.asm_1de2d8
+ ld [hl], $22
+
+.asm_1de2da
+ ld de, StringBuffer1
+ ld hl, $c4a9
+ call PlaceString
+ ret
+; 1de2e4
PokegearGFX: ; 1de2e4
INCBIN "gfx/misc/pokegear.lz"
@@ -72588,26 +87160,90 @@ Function1de5c8: ; 1de5c8
ret
; 1de5e6
-INCBIN "baserom.gbc", $1de5e6, $1df238 - $1de5e6
+INCBIN "baserom.gbc", $1de5e6, $1df1e6 - $1de5e6
+
+Function1df1e6: ; 1df1e6
+ ld b, $21
+ ld h, d
+ ld l, e
+.asm_1df1ea
+ ld a, [hl]
+ cp $dc
+ jr nz, .asm_1df1f3
+ ld a, $d4
+ jr .asm_1df1fd
+
+.asm_1df1f3
+ sub $d4
+ jr c, .asm_1df1fe
+ cp $3
+ jr nc, .asm_1df1fe
+ add $cd
+.asm_1df1fd
+ ld [hl], a
-SECTION "bank78",ROMX,BANK[$78]
+.asm_1df1fe
+ inc hl
+ dec b
+ jr nz, .asm_1df1ea
+ ret
+; 1df203
+
+Function1df203: ; 1df203
+ ld b, $21
+ ld h, d
+ ld l, e
+.asm_1df207
+ ld a, [hl]
+ cp $d4
+ jr nz, .asm_1df210
+ ld a, $dc
+ jr .asm_1df21a
-Tileset33Meta: ; 0x1e0000
-INCBIN "tilesets/33_metatiles.bin"
-; 0x1e0400
+.asm_1df210
+ sub $cd
+ jr c, .asm_1df21b
+ cp $3
+ jr nc, .asm_1df21b
+ add $d4
-Tileset34Meta: ; 0x1e0400
-INCBIN "tilesets/34_metatiles.bin"
-; 0x1e0800
+.asm_1df21a
+ ld [hl], a
-Tileset35Meta: ; 0x1e0800
-INCBIN "tilesets/35_metatiles.bin"
-; 0x1e0c00
+.asm_1df21b
+ inc hl
+ dec b
+ jr nz, .asm_1df207
+ ret
+; 1df220
+
+Function1df220: ; 1df220
+ ld b, $21
+ ld h, d
+ ld l, e
+.asm_1df224
+ ld a, [hl]
+ and $f0
+ cp $d0
+ jr nz, .asm_1df233
+ ld a, [hl]
+ add $8
+ and $f
+ or $d0
+ ld [hl], a
+
+.asm_1df233
+ inc hl
+ dec b
+ jr nz, .asm_1df224
+ ret
+; 1df238
+
+
+SECTION "bank78",ROMX,BANK[$78]
-Tileset36Meta: ; 0x1e0c00
-INCBIN "tilesets/36_metatiles.bin"
-; 0x1e1000
+INCLUDE "tilesets/data_8.asm"
SECTION "bank79",ROMX,BANK[$79]
diff --git a/maps/AzaleaGym.asm b/maps/AzaleaGym.asm
index 73bb27e3c..dc30fa5be 100644
--- a/maps/AzaleaGym.asm
+++ b/maps/AzaleaGym.asm
@@ -9,7 +9,7 @@ AzaleaGym_MapScriptHeader: ; 0x18ec1c
BugsyScript_0x18ec1e: ; 0x18ec1e
faceplayer
loadfont
- checkbit1 $04be
+ checkbit1 EVENT_BEAT_BUGSY
iftrue UnknownScript_0x18ec48
2writetext UnknownText_0x18ed0b
closetext
@@ -18,7 +18,7 @@ BugsyScript_0x18ec1e: ; 0x18ec1e
loadtrainer BUGSY, 1
startbattle
returnafterbattle
- setbit1 $04be
+ setbit1 EVENT_BEAT_BUGSY
loadfont
2writetext UnknownText_0x18ee14
playsound $009c
@@ -27,17 +27,17 @@ BugsyScript_0x18ec1e: ; 0x18ec1e
checkcode $7
2call UnknownScript_0x18ec73
UnknownScript_0x18ec48: ; 0x18ec48
- checkbit1 $0009
+ checkbit1 EVENT_GOT_TM49_FURY_CUTTER
iftrue UnknownScript_0x18ec6d
- setbit1 $0464
- setbit1 $053c
- setbit1 $053d
- setbit1 $053e
+ setbit1 EVENT_BEAT_TWINS_AMY_AND_MAY
+ setbit1 EVENT_BEAT_BUG_CATCHER_BENNY
+ setbit1 EVENT_BEAT_BUG_CATCHER_AL
+ setbit1 EVENT_BEAT_BUG_CATCHER_JOSH
2writetext UnknownText_0x18ee2b
keeptextopen
verbosegiveitem TM_49, 1
iffalse UnknownScript_0x18ec71
- setbit1 $0009
+ setbit1 EVENT_GOT_TM49_FURY_CUTTER
2writetext UnknownText_0x18eefa
closetext
loadmovesprites
@@ -213,7 +213,7 @@ Bug_catcherJoshScript: ; 0x18ecde
AzaleaGymGuyScript: ; 0x18ece6
faceplayer
- checkbit1 $04be
+ checkbit1 EVENT_BEAT_BUGSY
iftrue .AzaleaGymGuyWinScript
loadfont
2writetext AzaleaGymGuyText
diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm
index 04eda0034..96c7ce25c 100644
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -59,9 +59,9 @@ UnknownScript_0x198049: ; 0x198049
closetext
loadmovesprites
setbit1 $06bf
- checkbit1 $001c
+ checkbit1 EVENT_GOT_TOTODILE_FROM_ELM
iftrue UnknownScript_0x198071
- checkbit1 $001d
+ checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM
iftrue UnknownScript_0x198081
winlosstext UnknownText_0x1981e6, UnknownText_0x19835b
setlasttalked $b
@@ -119,7 +119,7 @@ AzaleaRocketScript_0x1980ae: ; 0x1980ae
GrampsScript_0x1980b1: ; 0x1980b1
faceplayer
loadfont
- checkbit1 $002b
+ checkbit1 EVENT_CLEARED_SLOWPOKE_WELL
iftrue UnknownScript_0x1980bf
2writetext UnknownText_0x19841b
closetext
diff --git a/maps/BillsHouse.asm b/maps/BillsHouse.asm
index a1647dcfe..af1495f73 100644
--- a/maps/BillsHouse.asm
+++ b/maps/BillsHouse.asm
@@ -11,23 +11,23 @@ GrampsScript_0x189538: ; 0x189538
loadfont
checkbit1 $0000
iftrue UnknownScript_0x1896ba
- checkbit1 $0324
+ checkbit1 EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x1896c0
- checkbit1 $031a
+ checkbit1 EVENT_MET_BILLS_GRANDPA
iftrue UnknownScript_0x189553
2writetext UnknownText_0x1896ce
keeptextopen
- setbit1 $031a
+ setbit1 EVENT_MET_BILLS_GRANDPA
UnknownScript_0x189553: ; 0x189553
- checkbit1 $031f
+ checkbit1 EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA
iftrue UnknownScript_0x189697
- checkbit1 $031e
+ checkbit1 EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA
iftrue UnknownScript_0x189680
- checkbit1 $031d
+ checkbit1 EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA
iftrue UnknownScript_0x189669
- checkbit1 $031c
+ checkbit1 EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA
iftrue UnknownScript_0x189652
- checkbit1 $031b
+ checkbit1 EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA
iftrue UnknownScript_0x18963b
2writetext UnknownText_0x1898c0
keeptextopen
@@ -39,7 +39,7 @@ UnknownScript_0x189553: ; 0x189553
iffalse UnknownScript_0x1896aa
if_not_equal LICKITUNG, UnknownScript_0x1896c6
2call UnknownScript_0x1896b0
- setbit1 $031b
+ setbit1 EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA
2jump UnknownScript_0x18963b
; 0x189592
@@ -54,7 +54,7 @@ UnknownScript_0x189592: ; 0x189592
iffalse UnknownScript_0x1896aa
if_not_equal ODDISH, UnknownScript_0x1896c6
2call UnknownScript_0x1896b0
- setbit1 $031c
+ setbit1 EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA
2jump UnknownScript_0x189652
; 0x1895b3
@@ -69,7 +69,7 @@ UnknownScript_0x1895b3: ; 0x1895b3
iffalse UnknownScript_0x1896aa
if_not_equal STARYU, UnknownScript_0x1896c6
2call UnknownScript_0x1896b0
- setbit1 $031d
+ setbit1 EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA
2jump UnknownScript_0x189669
; 0x1895d4
@@ -86,7 +86,7 @@ UnknownScript_0x1895d4: ; 0x1895d4
iffalse UnknownScript_0x1896aa
if_not_equal GROWLITHE, UnknownScript_0x1896c6
2call UnknownScript_0x1896b0
- setbit1 $031e
+ setbit1 EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA
2jump UnknownScript_0x189680
; 0x1895f9
@@ -101,7 +101,7 @@ UnknownScript_0x1895f9: ; 0x1895f9
iffalse UnknownScript_0x1896aa
if_not_equal VULPIX, UnknownScript_0x1896c6
2call UnknownScript_0x1896b0
- setbit1 $031e
+ setbit1 EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA
2jump UnknownScript_0x189680
; 0x18961a
@@ -116,53 +116,53 @@ UnknownScript_0x18961a: ; 0x18961a
iffalse UnknownScript_0x1896aa
if_not_equal PICHU, UnknownScript_0x1896c6
2call UnknownScript_0x1896b0
- setbit1 $031f
+ setbit1 EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA
2jump UnknownScript_0x189697
; 0x18963b
UnknownScript_0x18963b: ; 0x18963b
- checkbit1 $0320
+ checkbit1 EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x189592
2call UnknownScript_0x1896b5
verbosegiveitem EVERSTONE, 1
iffalse UnknownScript_0x1896cc
- setbit1 $0320
+ setbit1 EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
setbit1 $0000
loadmovesprites
end
; 0x189652
UnknownScript_0x189652: ; 0x189652
- checkbit1 $0321
+ checkbit1 EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x1895b3
2call UnknownScript_0x1896b5
verbosegiveitem LEAF_STONE, 1
iffalse UnknownScript_0x1896cc
- setbit1 $0321
+ setbit1 EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
setbit1 $0000
loadmovesprites
end
; 0x189669
UnknownScript_0x189669: ; 0x189669
- checkbit1 $0322
+ checkbit1 EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x1895d4
2call UnknownScript_0x1896b5
verbosegiveitem WATER_STONE, 1
iffalse UnknownScript_0x1896cc
- setbit1 $0322
+ setbit1 EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
setbit1 $0000
loadmovesprites
end
; 0x189680
UnknownScript_0x189680: ; 0x189680
- checkbit1 $0323
+ checkbit1 EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x18961a
2call UnknownScript_0x1896b5
verbosegiveitem FIRE_STONE, 1
iffalse UnknownScript_0x1896cc
- setbit1 $0323
+ setbit1 EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
setbit1 $0000
loadmovesprites
end
@@ -172,7 +172,7 @@ UnknownScript_0x189697: ; 0x189697
2call UnknownScript_0x1896b5
verbosegiveitem THUNDERSTONE, 1
iffalse UnknownScript_0x1896cc
- setbit1 $0324
+ setbit1 EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
loadmovesprites
end
; 0x1896a5
diff --git a/maps/BlackthornCity.asm b/maps/BlackthornCity.asm
index a366aed77..6b60c56fc 100644
--- a/maps/BlackthornCity.asm
+++ b/maps/BlackthornCity.asm
@@ -32,9 +32,9 @@ UnknownScript_0x1a46e5: ; 0x1a46e5
SuperNerdScript_0x1a46e8: ; 0x1a46e8
faceplayer
loadfont
- checkbit1 $04c4
+ checkbit1 EVENT_BEAT_CLAIR
iftrue UnknownScript_0x1a4702
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1a46fc
2writetext UnknownText_0x1a477a
closetext
@@ -67,7 +67,7 @@ GrampsScript_0x1a470b: ; 0x1a470b
BlackBeltScript_0x1a470e: ; 0x1a470e
faceplayer
loadfont
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1a471c
2writetext UnknownText_0x1a494a
closetext
@@ -97,21 +97,21 @@ CooltrainerFScript_0x1a4728: ; 0x1a4728
YoungsterScript_0x1a472b: ; 0x1a472b
faceplayer
loadfont
- checkbit1 $006d
+ checkbit1 EVENT_GOT_SPELL_TAG_FROM_SANTOS
iftrue UnknownScript_0x1a4759
checkcode $b
if_not_equal SATURDAY, UnknownScript_0x1a475f
- checkbit1 $006c
+ checkbit1 EVENT_MET_SANTOS_OF_SATURDAY
iftrue UnknownScript_0x1a4746
2writetext UnknownText_0x1a4a27
keeptextopen
- setbit1 $006c
+ setbit1 EVENT_MET_SANTOS_OF_SATURDAY
UnknownScript_0x1a4746: ; 0x1a4746
2writetext UnknownText_0x1a4a57
keeptextopen
verbosegiveitem SPELL_TAG, 1
iffalse UnknownScript_0x1a475d
- setbit1 $006d
+ setbit1 EVENT_GOT_SPELL_TAG_FROM_SANTOS
2writetext UnknownText_0x1a4a6b
closetext
loadmovesprites
diff --git a/maps/BlackthornGym1F.asm b/maps/BlackthornGym1F.asm
index bcda61cf6..d86dde1bd 100644
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -31,7 +31,7 @@ ClairScript_0x194e24: ; 0x194e24
loadfont
checkbit2 $0022
iftrue UnknownScript_0x194e69
- checkbit1 $04c4
+ checkbit1 EVENT_BEAT_CLAIR
iftrue UnknownScript_0x194e63
2writetext UnknownText_0x194efa
closetext
@@ -40,16 +40,16 @@ ClairScript_0x194e24: ; 0x194e24
loadtrainer CLAIR, 1
startbattle
returnafterbattle
- setbit1 $04c4
+ setbit1 EVENT_BEAT_CLAIR
loadfont
2writetext UnknownText_0x19500e
closetext
loadmovesprites
- setbit1 $054a
- setbit1 $054b
- setbit1 $054c
- setbit1 $055d
- setbit1 $055e
+ setbit1 EVENT_BEAT_COOLTRAINERM_PAUL
+ setbit1 EVENT_BEAT_COOLTRAINERM_CODY
+ setbit1 EVENT_BEAT_COOLTRAINERM_MIKE
+ setbit1 EVENT_BEAT_COOLTRAINERF_FRAN
+ setbit1 EVENT_BEAT_COOLTRAINERF_LOLA
clearbit1 $0736
setbit1 $074c
clearbit1 $074d
@@ -64,7 +64,7 @@ UnknownScript_0x194e63: ; 0x194e63
; 0x194e69
UnknownScript_0x194e69: ; 0x194e69
- checkbit1 $000f
+ checkbit1 EVENT_GOT_TM24_DRAGONBREATH
iftrue UnknownScript_0x194e94
2writetext UnknownText_0x195196
keeptextopen
@@ -75,7 +75,7 @@ UnknownScript_0x194e69: ; 0x194e69
playsound $0001
waitbutton
itemnotify
- setbit1 $000f
+ setbit1 EVENT_GOT_TM24_DRAGONBREATH
2writetext UnknownText_0x1951d1
keeptextopen
2jump UnknownScript_0x194e94
@@ -185,7 +185,7 @@ CooltrainerfLolaScript: ; 0x194ece
BlackthornGymGuyScript: ; 0x194ed6
faceplayer
loadfont
- checkbit1 $04c4
+ checkbit1 EVENT_BEAT_CLAIR
iftrue .BlackthornGymGuyWinScript
2writetext BlackthornGymGuyText
closetext
diff --git a/maps/BrunosRoom.asm b/maps/BrunosRoom.asm
index 9669b1090..261799f2d 100644
--- a/maps/BrunosRoom.asm
+++ b/maps/BrunosRoom.asm
@@ -24,11 +24,11 @@ UnknownScript_0x180997: ; 0x180997
; 0x180998
UnknownScript_0x180998: ; 0x180998
- checkbit1 $030d
+ checkbit1 EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
iffalse UnknownScript_0x1809a2
changeblock $4, $e, $2a
UnknownScript_0x1809a2: ; 0x1809a2
- checkbit1 $030e
+ checkbit1 EVENT_BRUNOS_ROOM_EXIT_OPEN
iffalse UnknownScript_0x1809ac
changeblock $4, $2, $16
UnknownScript_0x1809ac: ; 0x1809ac
@@ -44,7 +44,7 @@ UnknownScript_0x1809ad: ; 0x1809ad
reloadmappart
loadmovesprites
dotrigger $1
- setbit1 $030d
+ setbit1 EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
waitbutton
end
; 0x1809c5
@@ -70,7 +70,7 @@ BrunoScript_0x1809c5: ; 0x1809c5
changeblock $4, $2, $16
reloadmappart
loadmovesprites
- setbit1 $030e
+ setbit1 EVENT_BRUNOS_ROOM_EXIT_OPEN
waitbutton
end
; 0x1809f3
diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm
index b15ead9d8..7d85aa5af 100644
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -33,7 +33,7 @@ UnknownScript_0x185bf8: ; 0x185bf8
iftrue UnknownScript_0x185c02
changeblock $a, $8, $32
UnknownScript_0x185c02: ; 0x185c02
- checkbit1 $007b
+ checkbit1 EVENT_RELEASED_THE_BEASTS
iftrue UnknownScript_0x185c0c
changeblock $6, $e, $9
UnknownScript_0x185c0c: ; 0x185c0c
@@ -66,9 +66,9 @@ UnknownScript_0x185c25: ; 0x185c25
2writetext UnknownText_0x185cd9
closetext
loadmovesprites
- checkbit1 $001c
+ checkbit1 EVENT_GOT_TOTODILE_FROM_ELM
iftrue UnknownScript_0x185c60
- checkbit1 $001d
+ checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM
iftrue UnknownScript_0x185c70
winlosstext UnknownText_0x185d9b, UnknownText_0x185e2c
setlasttalked $4
diff --git a/maps/BurnedTowerB1F.asm b/maps/BurnedTowerB1F.asm
index 9788884da..54645c58f 100644
--- a/maps/BurnedTowerB1F.asm
+++ b/maps/BurnedTowerB1F.asm
@@ -23,7 +23,7 @@ UnknownScript_0x18615f: ; 0x18615f
; 0x186160
UnknownScript_0x186160: ; 0x186160
- checkbit1 $007b
+ checkbit1 EVENT_RELEASED_THE_BEASTS
iftrue UnknownScript_0x18616a
changeblock $6, $e, $2
UnknownScript_0x18616a: ; 0x18616a
@@ -80,11 +80,11 @@ UnknownScript_0x18616b: ; 0x18616b
waitbutton
special $003d
dotrigger $1
- setbit1 $007b
+ setbit1 EVENT_RELEASED_THE_BEASTS
special $0069
domaptrigger GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM, $1
domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $1
- clearbit1 $07ae
+ clearbit1 EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
setbit1 $07a8
clearbit1 $07a9
setbit1 $0764
diff --git a/maps/CeladonCafe.asm b/maps/CeladonCafe.asm
index fa44d4a09..19beea7f3 100644
--- a/maps/CeladonCafe.asm
+++ b/maps/CeladonCafe.asm
@@ -92,7 +92,7 @@ MapCeladonCafeSignpost0Script: ; 0x730ad
; 0x730b0
MapCeladonCafeSignpost1Script: ; 0x730b0
- checkbit1 $00f9
+ checkbit1 EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE
iftrue UnknownScript_0x730db
giveitem LEFTOVERS, $1
iffalse UnknownScript_0x730cd
@@ -103,7 +103,7 @@ MapCeladonCafeSignpost1Script: ; 0x730b0
waitbutton
itemnotify
loadmovesprites
- setbit1 $00f9
+ setbit1 EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE
end
; 0x730cd
diff --git a/maps/CeladonGameCorner.asm b/maps/CeladonGameCorner.asm
index 12d01a398..8d5927f83 100644
--- a/maps/CeladonGameCorner.asm
+++ b/maps/CeladonGameCorner.asm
@@ -47,7 +47,7 @@ FishingGuruScript_0x72139: ; 0x72139
FisherScript_0x72144: ; 0x72144
faceplayer
loadfont
- checkbit1 $00ce
+ checkbit1 EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
iftrue .UnknownScript_0x72169
2writetext UnknownText_0x722dc
keeptextopen
@@ -58,7 +58,7 @@ FisherScript_0x72144: ; 0x72144
stringtotext .coinname, $1
2call .UnknownScript_0x72172
givecoins 18
- setbit1 $00ce
+ setbit1 EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
.UnknownScript_0x72169 ; 0x72169
2writetext UnknownText_0x72345
closetext
diff --git a/maps/CeladonGym.asm b/maps/CeladonGym.asm
index 20fffeacf..1a2abe435 100644
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -19,23 +19,23 @@ ErikaScript_0x72a6a: ; 0x72a6a
startbattle
returnafterbattle
setbit1 $04c8
- setbit1 $051d
- setbit1 $0490
- setbit1 $04ba
- setbit1 $0468
+ setbit1 EVENT_BEAT_LASS_MICHELLE
+ setbit1 EVENT_BEAT_PICNICKER_TANYA
+ setbit1 EVENT_BEAT_BEAUTY_JULIA
+ setbit1 EVENT_BEAT_TWINS_JO_AND_ZOE
loadfont
2writetext UnknownText_0x72c96
playsound $009c
waitbutton
setbit2 $0026
UnknownScript_0x72a9b: ; 0x72a9b
- checkbit1 $00dc
+ checkbit1 EVENT_GOT_TM19_GIGA_DRAIN
iftrue UnknownScript_0x72aae
2writetext UnknownText_0x72cb0
keeptextopen
verbosegiveitem TM_19, 1
iffalse UnknownScript_0x72aae
- setbit1 $00dc
+ setbit1 EVENT_GOT_TM19_GIGA_DRAIN
UnknownScript_0x72aae: ; 0x72aae
2writetext UnknownText_0x72d8f
closetext
diff --git a/maps/CeladonMansion3F.asm b/maps/CeladonMansion3F.asm
index 359ce3d4b..012f05e51 100644
--- a/maps/CeladonMansion3F.asm
+++ b/maps/CeladonMansion3F.asm
@@ -28,14 +28,14 @@ UnknownScript_0x7167e: ; 0x7167e
2writetext UnknownText_0x71763
closetext
loadmovesprites
- setbit1 $00d6
+ setbit1 EVENT_ENABLE_DIPLOMA_PRINTING
end
; 0x71696
GymGuyScript_0x71696: ; 0x71696
faceplayer
loadfont
- checkbit1 $00d6
+ checkbit1 EVENT_ENABLE_DIPLOMA_PRINTING
iftrue UnknownScript_0x716a4
2writetext UnknownText_0x717b4
closetext
diff --git a/maps/CeladonMansionRoofHouse.asm b/maps/CeladonMansionRoofHouse.asm
index 49bdbd44c..a79e9a3bb 100644
--- a/maps/CeladonMansionRoofHouse.asm
+++ b/maps/CeladonMansionRoofHouse.asm
@@ -9,7 +9,7 @@ CeladonMansionRoofHouse_MapScriptHeader: ; 0x71afb
PharmacistScript_0x71afd: ; 0x71afd
faceplayer
loadfont
- checkbit1 $00da
+ checkbit1 EVENT_GOT_TM03_CURSE
iftrue UnknownScript_0x71b21
2writetext UnknownText_0x71b27
keeptextopen
@@ -26,7 +26,7 @@ UnknownScript_0x71b14: ; 0x71b14
keeptextopen
verbosegiveitem TM_03, 1
iffalse UnknownScript_0x71b25
- setbit1 $00da
+ setbit1 EVENT_GOT_TM03_CURSE
UnknownScript_0x71b21: ; 0x71b21
2writetext UnknownText_0x71db3
closetext
diff --git a/maps/CeruleanCity.asm b/maps/CeruleanCity.asm
index 86a934390..b3d4dede2 100644
--- a/maps/CeruleanCity.asm
+++ b/maps/CeruleanCity.asm
@@ -18,7 +18,7 @@ UnknownScript_0x184005: ; 0x184005
CooltrainerMScript_0x184009: ; 0x184009
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x184017
2writetext UnknownText_0x1840bc
closetext
@@ -72,9 +72,9 @@ CooltrainerFScript_0x18402a: ; 0x18402a
FisherScript_0x18404a: ; 0x18404a
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x184058
- checkbit1 $00cb
+ checkbit1 EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM
iftrue UnknownScript_0x18405e
UnknownScript_0x184058: ; 0x184058
2writetext UnknownText_0x18424e
diff --git a/maps/CeruleanGym.asm b/maps/CeruleanGym.asm
index 907c75f98..319944032 100644
--- a/maps/CeruleanGym.asm
+++ b/maps/CeruleanGym.asm
@@ -42,7 +42,7 @@ UnknownScript_0x1883de: ; 0x1883de
applymovement $2, MovementData_0x1884e8
playsound $0023
disappear $2
- setbit1 $00cb
+ setbit1 EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM
clearbit1 $076c
clearbit1 $076e
dotrigger $0
@@ -68,10 +68,10 @@ MistyScript_0x188432: ; 0x188432
loadtrainer MISTY, 1
startbattle
returnafterbattle
- setbit1 $04c6
- setbit1 $03f9
- setbit1 $03fa
- setbit1 $05a8
+ setbit1 EVENT_BEAT_MISTY
+ setbit1 EVENT_BEAT_SWIMMERF_DIANA
+ setbit1 EVENT_BEAT_SWIMMERF_BRIANA
+ setbit1 EVENT_BEAT_SWIMMERM_PARKER
loadfont
2writetext UnknownText_0x188768
playsound $009c
@@ -174,7 +174,7 @@ SwimmermParkerScript: ; 0x18849a
CeruleanGymGuyScript: ; 0x1884a2
faceplayer
loadfont
- checkbit1 $04c6
+ checkbit1 EVENT_BEAT_MISTY
iftrue .CeruleanGymGuyWinScript
2writetext CeruleanGymGuyText
closetext
diff --git a/maps/CharcoalKiln.asm b/maps/CharcoalKiln.asm
index fa98ab51d..ef8f92b2a 100644
--- a/maps/CharcoalKiln.asm
+++ b/maps/CharcoalKiln.asm
@@ -9,9 +9,9 @@ CharcoalKiln_MapScriptHeader: ; 0x18dd18
BlackBeltScript_0x18dd1a: ; 0x18dd1a
faceplayer
loadfont
- checkbit1 $0010
+ checkbit1 EVENT_GOT_HM01_CUT
iftrue UnknownScript_0x18dd34
- checkbit1 $002b
+ checkbit1 EVENT_CLEARED_SLOWPOKE_WELL
iftrue UnknownScript_0x18dd2e
2writetext UnknownText_0x18dd74
closetext
@@ -36,9 +36,9 @@ UnknownScript_0x18dd34: ; 0x18dd34
YoungsterScript_0x18dd3a: ; 0x18dd3a
faceplayer
loadfont
- checkbit1 $005e
+ checkbit1 EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN
iftrue UnknownScript_0x18dd5d
- checkbit1 $0010
+ checkbit1 EVENT_GOT_HM01_CUT
iftrue UnknownScript_0x18dd4e
2writetext UnknownText_0x18dee0
closetext
@@ -51,7 +51,7 @@ UnknownScript_0x18dd4e: ; 0x18dd4e
keeptextopen
verbosegiveitem CHARCOAL, 1
iffalse UnknownScript_0x18dd61
- setbit1 $005e
+ setbit1 EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN
loadmovesprites
end
; 0x18dd5d
diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm
index 2e31ffec3..884ca2eae 100644
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -87,7 +87,7 @@ UnknownScript_0x19c01f: ; 0x19c01f
applymovement $2, MovementData_0x19c1cb
playsound $001f
disappear $2
- clearbit1 $06ff
+ clearbit1 EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
waitbutton
end
@@ -123,9 +123,9 @@ UnknownScript_0x19c0ae: ; 0x19c0ae
2writetext UnknownText_0x19c4e2
closetext
loadmovesprites
- checkbit1 $001c
+ checkbit1 EVENT_GOT_TOTODILE_FROM_ELM
iftrue UnknownScript_0x19c0ee
- checkbit1 $001d
+ checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM
iftrue UnknownScript_0x19c104
winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6
setlasttalked $3
@@ -228,13 +228,13 @@ UnknownScript_0x19c168: ; 0x19c168
FisherScript_0x19c16e: ; 0x19c16e
faceplayer
loadfont
- checkbit1 $004d
+ checkbit1 EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE
iftrue UnknownScript_0x19c183
2writetext UnknownText_0x19c766
keeptextopen
verbosegiveitem MYSTIC_WATER, 1
iffalse UnknownScript_0x19c187
- setbit1 $004d
+ setbit1 EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE
UnknownScript_0x19c183: ; 0x19c183
2writetext UnknownText_0x19c7c1
closetext
diff --git a/maps/CherrygroveMart.asm b/maps/CherrygroveMart.asm
index 03c8f821c..441dacd51 100644
--- a/maps/CherrygroveMart.asm
+++ b/maps/CherrygroveMart.asm
@@ -8,7 +8,7 @@ CherrygroveMart_MapScriptHeader: ; 0x196808
ClerkScript_0x19680a: ; 0x19680a
loadfont
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue UnknownScript_0x196817
pokemart $0, $0000
loadmovesprites
@@ -24,7 +24,7 @@ UnknownScript_0x196817: ; 0x196817
CooltrainerMScript_0x19681d: ; 0x19681d
faceplayer
loadfont
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue UnknownScript_0x19682b
2writetext UnknownText_0x196834
closetext
diff --git a/maps/CherrygrovePokeCenter1F.asm b/maps/CherrygrovePokeCenter1F.asm
index dd3704143..368d5a146 100644
--- a/maps/CherrygrovePokeCenter1F.asm
+++ b/maps/CherrygrovePokeCenter1F.asm
@@ -21,7 +21,7 @@ GentlemanScript_0x196973: ; 0x196973
TeacherScript_0x196976: ; 0x196976
faceplayer
loadfont
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue UnknownScript_0x196984
2writetext UnknownText_0x1969f1
closetext
diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm
index 9662b256d..527be1bf1 100644
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -45,7 +45,7 @@ UnknownScript_0x1a001e: ; 0x1a001e
disappear $d
pause 10
dotrigger $0
- clearbit1 $07af
+ clearbit1 EVENT_SAW_SUICUNE_ON_ROUTE_42
domaptrigger GROUP_ROUTE_42, MAP_ROUTE_42, $1
checkbit1 $0333
iftrue UnknownScript_0x1a0083
@@ -81,11 +81,11 @@ UnknownScript_0x1a0083: ; 0x1a0083
PokefanFScript_0x1a0084: ; 0x1a0084
faceplayer
loadfont
- checkbit1 $0011
+ checkbit1 EVENT_GOT_HM02_FLY
iftrue UnknownScript_0x1a00ad
2writetext UnknownText_0x1a00f1
keeptextopen
- checkbit1 $04c2
+ checkbit1 EVENT_BEAT_CHUCK
iftrue UnknownScript_0x1a009c
2writetext UnknownText_0x1a0163
closetext
@@ -98,7 +98,7 @@ UnknownScript_0x1a009c: ; 0x1a009c
keeptextopen
verbosegiveitem HM_02, 1
iffalse UnknownScript_0x1a00b1
- setbit1 $0011
+ setbit1 EVENT_GOT_HM02_FLY
2writetext UnknownText_0x1a021d
keeptextopen
UnknownScript_0x1a00ad: ; 0x1a00ad
diff --git a/maps/CianwoodGym.asm b/maps/CianwoodGym.asm
index 78e86e053..5b34e53b1 100644
--- a/maps/CianwoodGym.asm
+++ b/maps/CianwoodGym.asm
@@ -9,7 +9,7 @@ CianwoodGym_MapScriptHeader: ; 0x9d60d
ChuckScript_0x9d60f: ; 0x9d60f
faceplayer
loadfont
- checkbit1 $04c2
+ checkbit1 EVENT_BEAT_CHUCK
iftrue UnknownScript_0x9d656
2writetext UnknownText_0x9d6f9
closetext
@@ -33,7 +33,7 @@ ChuckScript_0x9d60f: ; 0x9d60f
loadtrainer CHUCK, 1
startbattle
returnafterbattle
- setbit1 $04c2
+ setbit1 EVENT_BEAT_CHUCK
loadfont
2writetext UnknownText_0x9d835
playsound $009c
@@ -42,17 +42,17 @@ ChuckScript_0x9d60f: ; 0x9d60f
checkcode $7
2call UnknownScript_0x9d681
UnknownScript_0x9d656: ; 0x9d656
- checkbit1 $000a
+ checkbit1 EVENT_GOT_TM01_DYNAMICPUNCH
iftrue UnknownScript_0x9d67b
- setbit1 $04a5
- setbit1 $04a7
- setbit1 $04a8
- setbit1 $04aa
+ setbit1 EVENT_BEAT_BLACKBELT_YOSHI
+ setbit1 EVENT_BEAT_BLACKBELT_LAO
+ setbit1 EVENT_BEAT_BLACKBELT_NOB
+ setbit1 EVENT_BEAT_BLACKBELT_LUNG
2writetext UnknownText_0x9d84d
keeptextopen
verbosegiveitem TM_01, 1
iffalse UnknownScript_0x9d67f
- setbit1 $000a
+ setbit1 EVENT_GOT_TM01_DYNAMICPUNCH
2writetext UnknownText_0x9d8da
closetext
loadmovesprites
diff --git a/maps/CianwoodPharmacy.asm b/maps/CianwoodPharmacy.asm
index 674ea5931..4f8bb2a49 100644
--- a/maps/CianwoodPharmacy.asm
+++ b/maps/CianwoodPharmacy.asm
@@ -16,7 +16,7 @@ UnknownScript_0x9df9d: ; 0x9df9d
PharmacistScript_0x9df9e: ; 0x9df9e
faceplayer
loadfont
- checkbit1 $0023
+ checkbit1 EVENT_GOT_SECRETPOTION_FROM_PHARMACY
iftrue UnknownScript_0x9dfc4
checkbit1 $0037
iffalse UnknownScript_0x9dfc4
@@ -27,7 +27,7 @@ PharmacistScript_0x9df9e: ; 0x9df9e
playsound $0091
waitbutton
itemnotify
- setbit1 $0023
+ setbit1 EVENT_GOT_SECRETPOTION_FROM_PHARMACY
2writetext UnknownText_0x9e070
closetext
loadmovesprites
diff --git a/maps/CianwoodPokeCenter1F.asm b/maps/CianwoodPokeCenter1F.asm
index a8f3ff202..54cd87573 100644
--- a/maps/CianwoodPokeCenter1F.asm
+++ b/maps/CianwoodPokeCenter1F.asm
@@ -16,7 +16,7 @@ LassScript_0x9dbd2: ; 0x9dbd2
CianwoodGymGuyScript: ; 0x9dbd5
faceplayer
- checkbit1 $04c2
+ checkbit1 EVENT_BEAT_CHUCK
iftrue .CianwoodGymGuyWinScript
loadfont
2writetext CianwoodGymGuyText
diff --git a/maps/CopycatsHouse1F.asm b/maps/CopycatsHouse1F.asm
index 07b90ec65..89f2835e7 100644
--- a/maps/CopycatsHouse1F.asm
+++ b/maps/CopycatsHouse1F.asm
@@ -13,7 +13,7 @@ PokefanMScript_0x18ad13: ; 0x18ad13
PokefanFScript_0x18ad16: ; 0x18ad16
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x18ad24
2writetext UnknownText_0x18ad95
closetext
diff --git a/maps/CopycatsHouse2F.asm b/maps/CopycatsHouse2F.asm
index 6a63af393..eb85b9e77 100644
--- a/maps/CopycatsHouse2F.asm
+++ b/maps/CopycatsHouse2F.asm
@@ -27,9 +27,9 @@ UnknownScript_0x18aeb0: ; 0x18aeb0
CopycatScript_0x18aeb1: ; 0x18aeb1
faceplayer
- checkbit1 $00d1
+ checkbit1 EVENT_GOT_PASS_FROM_COPYCAT
iftrue UnknownScript_0x18af6f
- checkbit1 $00d0
+ checkbit1 EVENT_RETURNED_LOST_ITEM_TO_COPYCAT
iftrue UnknownScript_0x18af5b
checkitem LOST_ITEM
iftrue UnknownScript_0x18af4a
@@ -47,7 +47,7 @@ UnknownScript_0x18aed4: ; 0x18aed4
variablesprite $b, $60
UnknownScript_0x18aedc: ; 0x18aedc
special $005e
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x18af16
loadfont
checkbit2 $0063
@@ -109,7 +109,7 @@ UnknownScript_0x18af39: ; 0x18af39
2writetext UnknownText_0x18b116
closetext
loadmovesprites
- setbit1 $00cf
+ setbit1 EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM
end
; 0x18af4a
@@ -118,7 +118,7 @@ UnknownScript_0x18af4a: ; 0x18af4a
2writetext UnknownText_0x18b17f
keeptextopen
takeitem LOST_ITEM, 1
- setbit1 $00d0
+ setbit1 EVENT_RETURNED_LOST_ITEM_TO_COPYCAT
clearbit1 $0773
2jump UnknownScript_0x18af5c
; 0x18af5b
@@ -130,7 +130,7 @@ UnknownScript_0x18af5c: ; 0x18af5c
keeptextopen
verbosegiveitem PASS, 1
iffalse UnknownScript_0x18afba
- setbit1 $00d1
+ setbit1 EVENT_GOT_PASS_FROM_COPYCAT
2writetext UnknownText_0x18b214
closetext
loadmovesprites
diff --git a/maps/DanceTheatre.asm b/maps/DanceTheatre.asm
index d99010d75..3f4f2656b 100644
--- a/maps/DanceTheatre.asm
+++ b/maps/DanceTheatre.asm
@@ -156,17 +156,17 @@ GentlemanScript_0x994c6: ; 0x994c6
loadfont
2writetext UnknownText_0x9980a
keeptextopen
- checkbit1 $0012
+ checkbit1 EVENT_GOT_HM03_SURF
iftrue UnknownScript_0x99515
- checkbit1 $04df
+ checkbit1 EVENT_BEAT_KIMONO_GIRL_NAOKO
iffalse UnknownScript_0x994f3
- checkbit1 $04e0
+ checkbit1 EVENT_BEAT_KIMONO_GIRL_SAYO
iffalse UnknownScript_0x994f3
- checkbit1 $04e1
+ checkbit1 EVENT_BEAT_KIMONO_GIRL_ZUKI
iffalse UnknownScript_0x994f3
- checkbit1 $04e2
+ checkbit1 EVENT_BEAT_KIMONO_GIRL_KUNI
iffalse UnknownScript_0x994f3
- checkbit1 $04e3
+ checkbit1 EVENT_BEAT_KIMONO_GIRL_MIKI
iffalse UnknownScript_0x994f3
2jump UnknownScript_0x99505
; 0x994f3
@@ -191,7 +191,7 @@ UnknownScript_0x99505: ; 0x99505
2writetext UnknownText_0x9991a
keeptextopen
verbosegiveitem HM_03, 1
- setbit1 $0012
+ setbit1 EVENT_GOT_HM03_SURF
2writetext UnknownText_0x9999b
closetext
loadmovesprites
diff --git a/maps/DarkCaveBlackthornEntrance.asm b/maps/DarkCaveBlackthornEntrance.asm
index 04357d05d..cc87b799a 100644
--- a/maps/DarkCaveBlackthornEntrance.asm
+++ b/maps/DarkCaveBlackthornEntrance.asm
@@ -9,13 +9,13 @@ DarkCaveBlackthornEntrance_MapScriptHeader: ; 0x18c71e
PharmacistScript_0x18c720: ; 0x18c720
faceplayer
loadfont
- checkbit1 $0072
+ checkbit1 EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
iftrue UnknownScript_0x18c735
2writetext UnknownText_0x18c73f
keeptextopen
verbosegiveitem BLACKGLASSES, 1
iffalse UnknownScript_0x18c739
- setbit1 $0072
+ setbit1 EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
UnknownScript_0x18c735: ; 0x18c735
2writetext UnknownText_0x18c80c
closetext
diff --git a/maps/DayCare.asm b/maps/DayCare.asm
index a3799b9fe..2c05823e4 100644
--- a/maps/DayCare.asm
+++ b/maps/DayCare.asm
@@ -27,7 +27,7 @@ UnknownScript_0x62f88: ; 0x62f88
GrampsScript_0x62f8f: ; 0x62f8f
faceplayer
loadfont
- checkbit1 $033e
+ checkbit1 EVENT_GOT_ODD_EGG
iftrue UnknownScript_0x62fbd
2writetext UnknownText_0x630ce
keeptextopen
@@ -42,7 +42,7 @@ GrampsScript_0x62f8f: ; 0x62f8f
2writetext UnknownText_0x631c3
closetext
loadmovesprites
- setbit1 $033e
+ setbit1 EVENT_GOT_ODD_EGG
end
; 0x62fb6
diff --git a/maps/DragonShrine.asm b/maps/DragonShrine.asm
index f2bdbc4ce..28ef72a6d 100644
--- a/maps/DragonShrine.asm
+++ b/maps/DragonShrine.asm
@@ -201,7 +201,7 @@ ElderScript_0x18d1a5: ; 0x18d1a5
iftrue UnknownScript_0x18d1ff
checkbit1 $00bd
iffalse UnknownScript_0x18d1c5
- checkbit1 $0319
+ checkbit1 EVENT_BEAT_RIVAL_IN_MT_MOON
iftrue UnknownScript_0x18d1f3
2writetext UnknownText_0x18d724
closetext
diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm
index 8319b8b02..44e852f01 100644
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -23,7 +23,7 @@ UnknownScript_0x18c89e: ; 0x18c89e
; 0x18c89f
UnknownScript_0x18c89f: ; 0x18c89f
- checkbit1 $0319
+ checkbit1 EVENT_BEAT_RIVAL_IN_MT_MOON
iftrue UnknownScript_0x18c8a8
disappear $4
return
@@ -62,7 +62,7 @@ UnknownScript_0x18c8b8: ; 0x18c8b8
playsound $0001
waitbutton
itemnotify
- setbit1 $000f
+ setbit1 EVENT_GOT_TM24_DRAGONBREATH
2writetext UnknownText_0x18ca0d
keeptextopen
2writetext UnknownText_0x18caf1
diff --git a/maps/EcruteakCity.asm b/maps/EcruteakCity.asm
index ec560c2c3..62318f36e 100644
--- a/maps/EcruteakCity.asm
+++ b/maps/EcruteakCity.asm
@@ -34,7 +34,7 @@ LassScript_0x1a4012: ; 0x1a4012
LassScript_0x1a4015: ; 0x1a4015
faceplayer
loadfont
- checkbit1 $007b
+ checkbit1 EVENT_RELEASED_THE_BEASTS
iftrue UnknownScript_0x1a4023
2writetext UnknownText_0x1a421a
closetext
@@ -52,7 +52,7 @@ UnknownScript_0x1a4023: ; 0x1a4023
FisherScript_0x1a4029: ; 0x1a4029
faceplayer
loadfont
- checkbit1 $0020
+ checkbit1 EVENT_JASMINE_RETURNED_TO_GYM
iftrue UnknownScript_0x1a4037
2writetext UnknownText_0x1a42ac
closetext
diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm
index cd3db22f0..b6e49ac57 100644
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -22,7 +22,7 @@ UnknownScript_0x99d57: ; 0x99d57
MortyScript_0x99d58: ; 0x99d58
faceplayer
loadfont
- checkbit1 $04c0
+ checkbit1 EVENT_BEAT_MORTY
iftrue UnknownScript_0x99d8c
2writetext UnknownText_0x99e65
closetext
@@ -31,7 +31,7 @@ MortyScript_0x99d58: ; 0x99d58
loadtrainer MORTY, 1
startbattle
returnafterbattle
- setbit1 $04c0
+ setbit1 EVENT_BEAT_MORTY
loadfont
2writetext UnknownText_0x9a043
playsound $009c
@@ -43,17 +43,17 @@ MortyScript_0x99d58: ; 0x99d58
setbit1 $0766
setbit1 $0767
UnknownScript_0x99d8c: ; 0x99d8c
- checkbit1 $000c
+ checkbit1 EVENT_GOT_TM30_SHADOW_BALL
iftrue UnknownScript_0x99db1
- setbit1 $0415
- setbit1 $0416
- setbit1 $058b
- setbit1 $058c
+ setbit1 EVENT_BEAT_SAGE_JEFFREY
+ setbit1 EVENT_BEAT_SAGE_PING
+ setbit1 EVENT_BEAT_MEDIUM_MARTHA
+ setbit1 EVENT_BEAT_MEDIUM_GRACE
2writetext UnknownText_0x9a059
keeptextopen
verbosegiveitem TM_30, 1
iffalse UnknownScript_0x99db5
- setbit1 $000c
+ setbit1 EVENT_GOT_TM30_SHADOW_BALL
2writetext UnknownText_0x9a0ec
closetext
loadmovesprites
@@ -218,7 +218,7 @@ MediumGraceScript: ; 0x99e31
EcruteakGymGuyScript: ; 0x99e39
faceplayer
loadfont
- checkbit1 $04c0
+ checkbit1 EVENT_BEAT_MORTY
iftrue .EcruteakGymGuyWinScript
2writetext EcruteakGymGuyText
closetext
diff --git a/maps/EcruteakHouse.asm b/maps/EcruteakHouse.asm
index b67c8fa9e..0356d9dc8 100644
--- a/maps/EcruteakHouse.asm
+++ b/maps/EcruteakHouse.asm
@@ -23,11 +23,11 @@ UnknownScript_0x9800e: ; 0x9800e
; 0x9800f
UnknownScript_0x9800f: ; 0x9800f
- checkbit1 $0335
+ checkbit1 EVENT_FOUGHT_SUICUNE
iftrue UnknownScript_0x98033
- checkbit1 $0334
+ checkbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
iftrue UnknownScript_0x98033
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x98022
return
; 0x98022
@@ -77,7 +77,7 @@ UnknownScript_0x98061: ; 0x98061
SageScript_0x98062: ; 0x98062
faceplayer
loadfont
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x9807c
checkbit2 $001e
iftrue UnknownScript_0x98076
@@ -95,7 +95,7 @@ UnknownScript_0x98076: ; 0x98076
; 0x9807c
UnknownScript_0x9807c: ; 0x9807c
- checkbit1 $0334
+ checkbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
iftrue UnknownScript_0x980a4
checkbit1 $0000
iftrue UnknownScript_0x980aa
@@ -135,7 +135,7 @@ UnknownScript_0x980aa: ; 0x980aa
SageScript_0x980b0: ; 0x980b0
faceplayer
loadfont
- checkbit1 $0078
+ checkbit1 EVENT_GOT_CLEAR_BELL
iftrue UnknownScript_0x980be
2writetext UnknownText_0x9840b
closetext
diff --git a/maps/EcruteakItemfinderHouse.asm b/maps/EcruteakItemfinderHouse.asm
index b3b192323..b340e9fd4 100644
--- a/maps/EcruteakItemfinderHouse.asm
+++ b/maps/EcruteakItemfinderHouse.asm
@@ -9,7 +9,7 @@ EcruteakItemfinderHouse_MapScriptHeader: ; 0x9a5f9
CooltrainerMScript_0x9a5fb: ; 0x9a5fb
faceplayer
loadfont
- checkbit1 $005a
+ checkbit1 EVENT_GOT_ITEMFINDER
iftrue UnknownScript_0x9a614
2writetext UnknownText_0x9a63c
yesorno
@@ -17,7 +17,7 @@ CooltrainerMScript_0x9a5fb: ; 0x9a5fb
2writetext UnknownText_0x9a6b5
keeptextopen
verbosegiveitem ITEMFINDER, 1
- setbit1 $005a
+ setbit1 EVENT_GOT_ITEMFINDER
UnknownScript_0x9a614: ; 0x9a614
2writetext UnknownText_0x9a70e
closetext
diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm
index f94e297c5..d567846ff 100644
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -98,21 +98,21 @@ UnknownScript_0x78ba5: ; 0x78ba5
ProfElmScript: ; 0x78be0
faceplayer
loadfont
- checkbit1 $0024
+ checkbit1 EVENT_GOT_SS_TICKET_FROM_ELM
iftrue UnknownScript_0x78bee
checkbit1 $0044
iftrue ElmGiveTicketScript
UnknownScript_0x78bee: ; 0x78bee
- checkbit1 $007c
+ checkbit1 EVENT_GOT_MASTER_BALL_FROM_ELM
iftrue UnknownScript_0x78bfa
checkbit2 $0022
iftrue ElmGiveMasterBallScript
UnknownScript_0x78bfa: ; 0x78bfa
- checkbit1 $0056
+ checkbit1 EVENT_GOT_EVERSTONE_FROM_ELM
iftrue UnknownScript_0x78e16
- checkbit1 $0055
+ checkbit1 EVENT_SHOWED_TOGEPI_TO_ELM
iftrue UnknownScript_0x78e03
- checkbit1 $0077
+ checkbit1 EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
iffalse UnknownScript_0x78c35
writebyte TOGEPI
special $0043
@@ -137,20 +137,20 @@ UnknownScript_0x78c22: ; 0x78c22
; 0x78c35
UnknownScript_0x78c35: ; 0x78c35
- checkbit1 $002d
+ checkbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
iffalse UnknownScript_0x78c41
- checkbit1 $0054
+ checkbit1 EVENT_TOGEPI_HATCHED
iftrue UnknownScript_0x78c22
UnknownScript_0x78c41: ; 0x78c41
- checkbit1 $002d ; why are we checking it again?
+ checkbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE ; why are we checking it again?
iftrue ElmWaitingEggHatchScript
checkbit2 $001b
iftrue ElmAideHasEggScript
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue ElmStudyingEggScript
- checkbit1 $001e
+ checkbit1 EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
iftrue ElmAfterTheftScript
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue ElmDescribesMrPokemonScript
2writetext UnknownText_0x79375
closetext
@@ -169,7 +169,7 @@ LabTryToLeaveScript: ; 0x78c65
; 0x78c73
CyndaquilPokeBallScript: ; 0x78c73
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue LookAtElmPokeBallScript
spriteface $2, $0
refreshscreen $0
@@ -182,7 +182,7 @@ CyndaquilPokeBallScript: ; 0x78c73
yesorno
iffalse DidntChooseStarterScript
disappear $4
- setbit1 $001b
+ setbit1 EVENT_GOT_CYNDAQUIL_FROM_ELM
2writetext ChoseStarterText
keeptextopen
waitbutton
@@ -200,7 +200,7 @@ CyndaquilPokeBallScript: ; 0x78c73
; 0x78cb5
TotodilePokeBallScript: ; 0x78cb5
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue LookAtElmPokeBallScript
spriteface $2, $0
refreshscreen $0
@@ -213,7 +213,7 @@ TotodilePokeBallScript: ; 0x78cb5
yesorno
iffalse DidntChooseStarterScript
disappear $5
- setbit1 $001c
+ setbit1 EVENT_GOT_TOTODILE_FROM_ELM
2writetext ChoseStarterText
keeptextopen
waitbutton
@@ -229,7 +229,7 @@ TotodilePokeBallScript: ; 0x78cb5
; 0x78cf1
ChikoritaPokeBallScript: ; 0x78cf1
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue LookAtElmPokeBallScript
spriteface $2, $0
refreshscreen $0
@@ -242,7 +242,7 @@ ChikoritaPokeBallScript: ; 0x78cf1
yesorno
iffalse DidntChooseStarterScript
disappear $6
- setbit1 $001d
+ setbit1 EVENT_GOT_CHIKORITA_FROM_ELM
2writetext ChoseStarterText
keeptextopen
waitbutton
@@ -287,7 +287,7 @@ ElmDirectionsScript: ; 0x78d33
2writetext ElmDirectionsText3
closetext
loadmovesprites
- setbit1 $001a
+ setbit1 EVENT_GOT_A_POKEMON_FROM_ELM
setbit1 $06be
dotrigger $5
domaptrigger GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN, $1
@@ -311,7 +311,7 @@ LookAtElmPokeBallScript: ; 0x78d6d
MapElmsLabSignpost0Script: ; 0x78d74
loadfont
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue UnknownScript_0x78d81
2writetext UnknownText_0x79690
closetext
@@ -361,7 +361,7 @@ ElmAfterTheftScript: ; 0x78da2
keeptextopen
2writetext ElmAfterTheftText5
keeptextopen
- setbit1 $001f
+ setbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
setbit2 $0010
domaptrigger GROUP_ROUTE_29, MAP_ROUTE_29, $1
clearbit1 $0715
@@ -399,7 +399,7 @@ ShowElmTogepiScript: ; 0x78dee
closetext
loadmovesprites
showemote $0, $2, 15
- setbit1 $0055
+ setbit1 EVENT_SHOWED_TOGEPI_TO_ELM
loadfont
2writetext ShowElmTogepiText2
keeptextopen
@@ -413,7 +413,7 @@ UnknownScript_0x78e03: ; 0x78e03
2writetext ElmGiveEverstoneText2
closetext
loadmovesprites
- setbit1 $0056
+ setbit1 EVENT_GOT_EVERSTONE_FROM_ELM
end
; 0x78e16
@@ -430,7 +430,7 @@ ElmGiveMasterBallScript: ; 0x78e1c
keeptextopen
verbosegiveitem MASTER_BALL, 1
iffalse .notdone
- setbit1 $007c
+ setbit1 EVENT_GOT_MASTER_BALL_FROM_ELM
2writetext ElmGiveMasterBallText2
closetext
.notdone
@@ -442,7 +442,7 @@ ElmGiveTicketScript: ; 0x78e2f
2writetext ElmGiveTicketText1
keeptextopen
verbosegiveitem S_S_TICKET, 1
- setbit1 $0024
+ setbit1 EVENT_GOT_SS_TICKET_FROM_ELM
2writetext ElmGiveTicketText2
closetext
loadmovesprites
@@ -560,11 +560,11 @@ UnknownScript_0x78ee2: ; 0x78ee2
ElmsAideScript: ; 0x78ee6
faceplayer
loadfont
- checkbit1 $002d
+ checkbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
iftrue UnknownScript_0x78f0c
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue UnknownScript_0x78f06
- checkbit1 $001e
+ checkbit1 EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
iftrue UnknownScript_0x78f00
2writetext UnknownText_0x79f65
closetext
@@ -617,7 +617,7 @@ MapElmsLabSignpost14Script: ; 0x78f33
loadfont
checkbit2 $0043
iftrue UnknownScript_0x78f49
- checkbit1 $0043
+ checkbit1 EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
iftrue UnknownScript_0x78f43
2jump UnknownScript_0x78f49
; 0x78f43
diff --git a/maps/FastShipCabins.asm b/maps/FastShipCabins.asm
index 4e3ef010b..7eaf4f1de 100644
--- a/maps/FastShipCabins.asm
+++ b/maps/FastShipCabins.asm
@@ -80,7 +80,7 @@ UnknownScript_0x75f09: ; 0x75f09
GentlemanScript_0x75f1f: ; 0x75f1f
faceplayer
loadfont
- checkbit1 $0071
+ checkbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
iftrue UnknownScript_0x75f67
checkbit1 $0732
iftrue UnknownScript_0x75f58
@@ -96,7 +96,7 @@ UnknownScript_0x75f37: ; 0x75f37
keeptextopen
verbosegiveitem METAL_COAT, 1
iffalse UnknownScript_0x75f44
- setbit1 $0071
+ setbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
UnknownScript_0x75f44: ; 0x75f44
loadmovesprites
waitbutton
@@ -116,7 +116,7 @@ UnknownScript_0x75f58: ; 0x75f58
keeptextopen
verbosegiveitem METAL_COAT, 1
iffalse UnknownScript_0x75f65
- setbit1 $0071
+ setbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
UnknownScript_0x75f65: ; 0x75f65
loadmovesprites
end
diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
index 4e3ef010b..7eaf4f1de 100644
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -80,7 +80,7 @@ UnknownScript_0x75f09: ; 0x75f09
GentlemanScript_0x75f1f: ; 0x75f1f
faceplayer
loadfont
- checkbit1 $0071
+ checkbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
iftrue UnknownScript_0x75f67
checkbit1 $0732
iftrue UnknownScript_0x75f58
@@ -96,7 +96,7 @@ UnknownScript_0x75f37: ; 0x75f37
keeptextopen
verbosegiveitem METAL_COAT, 1
iffalse UnknownScript_0x75f44
- setbit1 $0071
+ setbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
UnknownScript_0x75f44: ; 0x75f44
loadmovesprites
waitbutton
@@ -116,7 +116,7 @@ UnknownScript_0x75f58: ; 0x75f58
keeptextopen
verbosegiveitem METAL_COAT, 1
iffalse UnknownScript_0x75f65
- setbit1 $0071
+ setbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
UnknownScript_0x75f65: ; 0x75f65
loadmovesprites
end
diff --git a/maps/FuchsiaGym.asm b/maps/FuchsiaGym.asm
index 4364525fe..e7bd0f9cf 100644
--- a/maps/FuchsiaGym.asm
+++ b/maps/FuchsiaGym.asm
@@ -19,7 +19,7 @@ JanineScript_0x195db9: ; 0x195db9
loadtrainer JANINE, 1
startbattle
returnafterbattle
- setbit1 $04c9
+ setbit1 EVENT_BEAT_JANINE
setbit1 $0517
setbit1 $051a
setbit1 $0482
@@ -41,13 +41,13 @@ UnknownScript_0x195e00: ; 0x195e00
faceplayer
loadfont
UnknownScript_0x195e02: ; 0x195e02
- checkbit1 $00dd
+ checkbit1 EVENT_GOT_TM06_TOXIC
iftrue UnknownScript_0x195e15
2writetext UnknownText_0x196002
keeptextopen
verbosegiveitem TM_06, 1
iffalse UnknownScript_0x195e15
- setbit1 $00dd
+ setbit1 EVENT_GOT_TM06_TOXIC
UnknownScript_0x195e15: ; 0x195e15
2writetext UnknownText_0x196074
closetext
@@ -206,7 +206,7 @@ UnknownScript_0x195efd: ; 0x195efd
FuchsiaGymGuyScript: ; 0x195f03
faceplayer
loadfont
- checkbit1 $04c9
+ checkbit1 EVENT_BEAT_JANINE
iftrue .FuchsiaGymGuyWinScript
2writetext FuchsiaGymGuyText
closetext
diff --git a/maps/GoldenrodBikeShop.asm b/maps/GoldenrodBikeShop.asm
index e31454948..f45d769b5 100644
--- a/maps/GoldenrodBikeShop.asm
+++ b/maps/GoldenrodBikeShop.asm
@@ -13,7 +13,7 @@ UnknownScript_0x5474f: ; 0x5474f
ClerkScript_0x54750: ; 0x54750
faceplayer
loadfont
- checkbit1 $005b
+ checkbit1 EVENT_GOT_BICYCLE
iftrue UnknownScript_0x54775
2writetext UnknownText_0x54787
yesorno
@@ -27,7 +27,7 @@ ClerkScript_0x54750: ; 0x54750
waitbutton
itemnotify
setbit2 $0014
- setbit1 $005b
+ setbit1 EVENT_GOT_BICYCLE
UnknownScript_0x54775: ; 0x54775
2writetext UnknownText_0x5485f
closetext
diff --git a/maps/GoldenrodBillsHouse.asm b/maps/GoldenrodBillsHouse.asm
index 2c938011f..955721ea0 100644
--- a/maps/GoldenrodBillsHouse.asm
+++ b/maps/GoldenrodBillsHouse.asm
@@ -9,7 +9,7 @@ GoldenrodBillsHouse_MapScriptHeader: ; 0x54be2
BillScript_0x54be4: ; 0x54be4
faceplayer
loadfont
- checkbit1 $004f
+ checkbit1 EVENT_GOT_EEVEE
iftrue UnknownScript_0x54c1f
2writetext UnknownText_0x54c74
yesorno
@@ -23,7 +23,7 @@ BillScript_0x54be4: ; 0x54be4
playsound $0002
waitbutton
givepoke EEVEE, 20, 0, 0
- setbit1 $004f
+ setbit1 EVENT_GOT_EEVEE
2writetext UnknownText_0x54dc1
closetext
loadmovesprites
diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm
index d0eecc9e3..0644c1cb2 100644
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -174,7 +174,7 @@ YoungsterScript_0x1989e6: ; 0x1989e6
CooltrainerFScript_0x1989e9: ; 0x1989e9
faceplayer
loadfont
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1989f7
2writetext UnknownText_0x198ae6
closetext
diff --git a/maps/GoldenrodDeptStore5F.asm b/maps/GoldenrodDeptStore5F.asm
index ed991d26e..3558f5d28 100644
--- a/maps/GoldenrodDeptStore5F.asm
+++ b/maps/GoldenrodDeptStore5F.asm
@@ -25,15 +25,15 @@ UnknownScript_0x56099: ; 0x56099
ClerkScript_0x5609c: ; 0x5609c
faceplayer
loadfont
- checkbit1 $005f
+ checkbit1 EVENT_GOT_TM02_HEADBUTT
iftrue UnknownScript_0x560ad
- checkbit1 $004b
+ checkbit1 EVENT_GOT_TM08_ROCK_SMASH
iftrue UnknownScript_0x560c2
2jump UnknownScript_0x560b6
; 0x560ad
UnknownScript_0x560ad: ; 0x560ad
- checkbit1 $004b
+ checkbit1 EVENT_GOT_TM08_ROCK_SMASH
iftrue UnknownScript_0x560c8
2jump UnknownScript_0x560bc
; 0x560b6
diff --git a/maps/GoldenrodFlowerShop.asm b/maps/GoldenrodFlowerShop.asm
index 51153e393..a4282f5cd 100644
--- a/maps/GoldenrodFlowerShop.asm
+++ b/maps/GoldenrodFlowerShop.asm
@@ -7,9 +7,9 @@ GoldenrodFlowerShop_MapScriptHeader: ; 0x5535b
; 0x5535d
TeacherScript_0x5535d: ; 0x5535d
- checkbit1 $002a
+ checkbit1 EVENT_FOUGHT_SUDOWOODO
iftrue UnknownScript_0x5538f
- checkbit1 $005c
+ checkbit1 EVENT_GOT_SQUIRTBOTTLE
iftrue UnknownScript_0x55399
checkbit1 $00b9
iffalse UnknownScript_0x5539f
@@ -22,7 +22,7 @@ TeacherScript_0x5535d: ; 0x5535d
2writetext UnknownText_0x554c2
keeptextopen
verbosegiveitem SQUIRTBOTTLE, 1
- setbit1 $005c
+ setbit1 EVENT_GOT_SQUIRTBOTTLE
loadmovesprites
setbit1 $0769
clearbit1 $0768
@@ -53,9 +53,9 @@ UnknownScript_0x5539f: ; 0x5539f
LassScript_0x553a2: ; 0x553a2
faceplayer
loadfont
- checkbit1 $002a
+ checkbit1 EVENT_FOUGHT_SUDOWOODO
iftrue UnknownScript_0x553c5
- checkbit1 $005c
+ checkbit1 EVENT_GOT_SQUIRTBOTTLE
iftrue UnknownScript_0x553bf
2writetext UnknownText_0x55561
closetext
diff --git a/maps/GoldenrodGym.asm b/maps/GoldenrodGym.asm
index 33e6a1895..88d4a61f5 100644
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -20,7 +20,7 @@ UnknownScript_0x5400b: ; 0x5400b
WhitneyScript_0x5400c: ; 0x5400c
faceplayer
- checkbit1 $04bf
+ checkbit1 EVENT_BEAT_WHITNEY
iftrue UnknownScript_0x54037
loadfont
2writetext UnknownText_0x54122
@@ -30,16 +30,16 @@ WhitneyScript_0x5400c: ; 0x5400c
loadtrainer WHITNEY, 1
startbattle
returnafterbattle
- setbit1 $04bf
- setbit1 $0028
+ setbit1 EVENT_BEAT_WHITNEY
+ setbit1 EVENT_MADE_WHITNEY_CRY
dotrigger $1
- setbit1 $04ad
- setbit1 $04ae
- setbit1 $0515
- setbit1 $0516
+ setbit1 EVENT_BEAT_BEAUTY_VICTORIA
+ setbit1 EVENT_BEAT_BEAUTY_SAMANTHA
+ setbit1 EVENT_BEAT_LASS_CARRIE
+ setbit1 EVENT_BEAT_LASS_BRIDGET
UnknownScript_0x54037: ; 0x54037
loadfont
- checkbit1 $0028
+ checkbit1 EVENT_MADE_WHITNEY_CRY
iffalse UnknownScript_0x54044
2writetext UnknownText_0x541f4
closetext
@@ -48,7 +48,7 @@ UnknownScript_0x54037: ; 0x54037
; 0x54044
UnknownScript_0x54044: ; 0x54044
- checkbit1 $000b
+ checkbit1 EVENT_GOT_TM45_ATTRACT
iftrue UnknownScript_0x54077
checkbit2 $001d
iftrue UnknownScript_0x54064
@@ -66,7 +66,7 @@ UnknownScript_0x54064: ; 0x54064
keeptextopen
verbosegiveitem TM_45, 1
iffalse UnknownScript_0x5407b
- setbit1 $000b
+ setbit1 EVENT_GOT_TM45_ATTRACT
2writetext UnknownText_0x54302
closetext
loadmovesprites
@@ -134,7 +134,7 @@ WhitneyCriesScript: ; 0x540a0
loadmovesprites
applymovement $4, BridgetWalksAwayMovement
dotrigger $0
- clearbit1 $0028
+ clearbit1 EVENT_MADE_WHITNEY_CRY
end
; 0x540bb
@@ -227,7 +227,7 @@ BeautySamanthaScript: ; 0x540ef
GoldenrodGymGuyScript: ; 0x540f7
faceplayer
- checkbit1 $04bf
+ checkbit1 EVENT_BEAT_WHITNEY
iftrue .GoldenrodGymGuyWinScript
loadfont
2writetext GoldenrodGymGuyText
diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm
index 1b305969f..952a7d1f4 100644
--- a/maps/GoldenrodMagnetTrainStation.asm
+++ b/maps/GoldenrodMagnetTrainStation.asm
@@ -16,7 +16,7 @@ UnknownScript_0x550eb: ; 0x550eb
OfficerScript_0x550ec: ; 0x550ec
faceplayer
loadfont
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x550fa
2writetext UnknownText_0x55160
closetext
diff --git a/maps/GoldenrodPokeCenter1F.asm b/maps/GoldenrodPokeCenter1F.asm
index e871c383b..d5bf6ab80 100644
--- a/maps/GoldenrodPokeCenter1F.asm
+++ b/maps/GoldenrodPokeCenter1F.asm
@@ -18,7 +18,7 @@ UnknownScript_0x60f94: ; 0x60f94
; 0x60f9e
UnknownScript_0x60f9e: ; 0x60f9e
- checkbit1 $0340
+ checkbit1 EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
iftrue UnknownScript_0x60fd8
playsound $0023
moveperson $3, $0, $7
@@ -31,8 +31,8 @@ UnknownScript_0x60f9e: ; 0x60f9e
2writetext UnknownText_0x622f0
closetext
verbosegiveitem GS_BALL, 1
- setbit1 $0340
- setbit1 $00be
+ setbit1 EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
+ setbit1 EVENT_CAN_GIVE_GS_BALL_TO_KURT
2writetext UnknownText_0x62359
closetext
loadmovesprites
@@ -52,7 +52,7 @@ UnknownScript_0x60fd9: ; 0x60fd9
; 0x60fe3
UnknownScript_0x60fe3: ; 0x60fe3
- checkbit1 $0340
+ checkbit1 EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
iftrue UnknownScript_0x6101d
playsound $0023
moveperson $3, $0, $7
@@ -65,8 +65,8 @@ UnknownScript_0x60fe3: ; 0x60fe3
2writetext UnknownText_0x622f0
closetext
verbosegiveitem GS_BALL, 1
- setbit1 $0340
- setbit1 $00be
+ setbit1 EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
+ setbit1 EVENT_CAN_GIVE_GS_BALL_TO_KURT
2writetext UnknownText_0x62359
closetext
loadmovesprites
diff --git a/maps/HallOfFame.asm b/maps/HallOfFame.asm
index a4c955064..a0cace60f 100644
--- a/maps/HallOfFame.asm
+++ b/maps/HallOfFame.asm
@@ -42,7 +42,7 @@ UnknownScript_0x181454: ; 0x181454
clearbit1 $0738
domaptrigger GROUP_SPROUT_TOWER_3F, MAP_SPROUT_TOWER_3F, $1
special $001b
- checkbit1 $0024
+ checkbit1 EVENT_GOT_SS_TICKET_FROM_ELM
iftrue UnknownScript_0x181497
specialphonecall $5
UnknownScript_0x181497: ; 0x181497
diff --git a/maps/IcePathB1F.asm b/maps/IcePathB1F.asm
index f09402904..5d51fcf32 100644
--- a/maps/IcePathB1F.asm
+++ b/maps/IcePathB1F.asm
@@ -38,25 +38,25 @@ StoneTable_0x7e4c7: ; 0x7e4c7
UnknownScript_0x7e4d8: ; 0x7e4d8
disappear 2
- clearbit1 $070d
+ clearbit1 EVENT_BOULDER_IN_ICE_PATH_1
2jump UnknownScript_0x7e4f8
; 0x7e4e0
UnknownScript_0x7e4e0: ; 0x7e4e0
disappear 3
- clearbit1 $070e
+ clearbit1 EVENT_BOULDER_IN_ICE_PATH_2
2jump UnknownScript_0x7e4f8
; 0x7e4e8
UnknownScript_0x7e4e8: ; 0x7e4e8
disappear 4
- clearbit1 $070f
+ clearbit1 EVENT_BOULDER_IN_ICE_PATH_3
2jump UnknownScript_0x7e4f8
; 0x7e4f0
UnknownScript_0x7e4f0: ; 0x7e4f0
disappear 5
- clearbit1 $0710
+ clearbit1 EVENT_BOULDER_IN_ICE_PATH_4
2jump UnknownScript_0x7e4f8
; 0x7e4f8
diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm
index 9e8baa9fa..280d1f9a2 100644
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -11,7 +11,7 @@ IlexForest_MapScriptHeader: ; 0x6eafe
; 0x6eb03
UnknownScript_0x6eb03: ; 0x6eb03
- checkbit1 $0010
+ checkbit1 EVENT_GOT_HM01_CUT
iftrue UnknownScript_0x6eb34
copybytetovar FarfetchdPosition
if_equal $1, UnknownScript_0x6eb35
@@ -373,12 +373,12 @@ UnknownScript_0x6eda1: ; 0x6eda1
BlackBeltScript_0x6edae: ; 0x6edae
faceplayer
loadfont
- checkbit1 $0010
+ checkbit1 EVENT_GOT_HM01_CUT
iftrue UnknownScript_0x6edd8
2writetext UnknownText_0x6f099
keeptextopen
verbosegiveitem HM_01, 1
- setbit1 $0010
+ setbit1 EVENT_GOT_HM01_CUT
2writetext UnknownText_0x6f141
closetext
loadmovesprites
@@ -401,13 +401,13 @@ UnknownScript_0x6edd8: ; 0x6edd8
RockerScript_0x6edde: ; 0x6edde
faceplayer
loadfont
- checkbit1 $005f
+ checkbit1 EVENT_GOT_TM02_HEADBUTT
iftrue UnknownScript_0x6edf3
2writetext UnknownText_0x6f21b
keeptextopen
verbosegiveitem TM_02, 1
iffalse UnknownScript_0x6edf7
- setbit1 $005f
+ setbit1 EVENT_GOT_TM02_HEADBUTT
UnknownScript_0x6edf3: ; 0x6edf3
2writetext UnknownText_0x6f26d
closetext
diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm
index 1b1274b47..892d9dd16 100644
--- a/maps/IndigoPlateauPokeCenter1F.asm
+++ b/maps/IndigoPlateauPokeCenter1F.asm
@@ -25,26 +25,26 @@ UnknownScript_0x18000a: ; 0x18000a
domaptrigger GROUP_LANCES_ROOM, MAP_LANCES_ROOM, $0
domaptrigger GROUP_HALL_OF_FAME, MAP_HALL_OF_FAME, $0
clearbit1 $0309
- clearbit1 $030a
- clearbit1 $030b
- clearbit1 $030c
- clearbit1 $030d
- clearbit1 $030e
- clearbit1 $030f
- clearbit1 $0310
- clearbit1 $0311
+ clearbit1 EVENT_WILLS_ROOM_EXIT_OPEN
+ clearbit1 EVENT_WILLS_ROOM_ENTRANCE_CLOSED
+ clearbit1 EVENT_KOGAS_ROOM_EXIT_OPEN
+ clearbit1 EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
+ clearbit1 EVENT_BRUNOS_ROOM_EXIT_OPEN
+ clearbit1 EVENT_KARENS_ROOM_ENTRANCE_CLOSED
+ clearbit1 EVENT_KARENS_ROOM_EXIT_OPEN
+ clearbit1 EVENT_LANCES_ROOM_ENTRANCE_CLOSED
clearbit1 $0312
clearbit1 $05b8
clearbit1 $05b9
clearbit1 $05ba
- clearbit1 $05bb
- clearbit1 $05bc
+ clearbit1 EVENT_BEAT_ELITE_4_KAREN
+ clearbit1 EVENT_BEAT_CHAMPION_LANCE
setbit1 $075f
return
; 0x180053
UnknownScript_0x180053: ; 0x180053
- checkbit1 $0319
+ checkbit1 EVENT_BEAT_RIVAL_IN_MT_MOON
iffalse UnknownScript_0x18012b
checkbit2 $005d
iftrue UnknownScript_0x18012b
@@ -67,7 +67,7 @@ UnknownScript_0x180053: ; 0x180053
; 0x180094
UnknownScript_0x180094: ; 0x180094
- checkbit1 $0319
+ checkbit1 EVENT_BEAT_RIVAL_IN_MT_MOON
iffalse UnknownScript_0x18012b
checkbit2 $005d
iftrue UnknownScript_0x18012b
@@ -91,9 +91,9 @@ UnknownScript_0x1800ce: ; 0x1800ce
closetext
loadmovesprites
setbit1 $077b
- checkbit1 $001c
+ checkbit1 EVENT_GOT_TOTODILE_FROM_ELM
iftrue UnknownScript_0x1800f3
- checkbit1 $001d
+ checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM
iftrue UnknownScript_0x180103
winlosstext UnknownText_0x180295, UnknownText_0x1802fd
setlasttalked $5
diff --git a/maps/KarensRoom.asm b/maps/KarensRoom.asm
index d6af8bce0..cf0219ffc 100644
--- a/maps/KarensRoom.asm
+++ b/maps/KarensRoom.asm
@@ -24,11 +24,11 @@ UnknownScript_0x180bc0: ; 0x180bc0
; 0x180bc1
UnknownScript_0x180bc1: ; 0x180bc1
- checkbit1 $030f
+ checkbit1 EVENT_KARENS_ROOM_ENTRANCE_CLOSED
iffalse UnknownScript_0x180bcb
changeblock $4, $e, $2a
UnknownScript_0x180bcb: ; 0x180bcb
- checkbit1 $0310
+ checkbit1 EVENT_KARENS_ROOM_EXIT_OPEN
iffalse UnknownScript_0x180bd5
changeblock $4, $2, $16
UnknownScript_0x180bd5: ; 0x180bd5
@@ -44,7 +44,7 @@ UnknownScript_0x180bd6: ; 0x180bd6
reloadmappart
loadmovesprites
dotrigger $1
- setbit1 $030f
+ setbit1 EVENT_KARENS_ROOM_ENTRANCE_CLOSED
waitbutton
end
; 0x180bee
@@ -52,7 +52,7 @@ UnknownScript_0x180bd6: ; 0x180bd6
KarenScript_0x180bee: ; 0x180bee
faceplayer
loadfont
- checkbit1 $05bb
+ checkbit1 EVENT_BEAT_ELITE_4_KAREN
iftrue UnknownScript_0x180c1c
2writetext UnknownText_0x180c27
closetext
@@ -61,7 +61,7 @@ KarenScript_0x180bee: ; 0x180bee
loadtrainer KAREN, 1
startbattle
returnafterbattle
- setbit1 $05bb
+ setbit1 EVENT_BEAT_ELITE_4_KAREN
loadfont
2writetext UnknownText_0x180d29
closetext
@@ -70,7 +70,7 @@ KarenScript_0x180bee: ; 0x180bee
changeblock $4, $2, $16
reloadmappart
loadmovesprites
- setbit1 $0310
+ setbit1 EVENT_KARENS_ROOM_EXIT_OPEN
waitbutton
end
; 0x180c1c
diff --git a/maps/KogasRoom.asm b/maps/KogasRoom.asm
index e2395373e..7fba3dde1 100644
--- a/maps/KogasRoom.asm
+++ b/maps/KogasRoom.asm
@@ -24,11 +24,11 @@ UnknownScript_0x18072c: ; 0x18072c
; 0x18072d
UnknownScript_0x18072d: ; 0x18072d
- checkbit1 $030b
+ checkbit1 EVENT_WILLS_ROOM_ENTRANCE_CLOSED
iffalse UnknownScript_0x180737
changeblock $4, $e, $2a
UnknownScript_0x180737: ; 0x180737
- checkbit1 $030c
+ checkbit1 EVENT_KOGAS_ROOM_EXIT_OPEN
iffalse UnknownScript_0x180741
changeblock $4, $2, $16
UnknownScript_0x180741: ; 0x180741
@@ -44,7 +44,7 @@ UnknownScript_0x180742: ; 0x180742
reloadmappart
loadmovesprites
dotrigger $1
- setbit1 $030b
+ setbit1 EVENT_WILLS_ROOM_ENTRANCE_CLOSED
waitbutton
end
; 0x18075a
@@ -70,7 +70,7 @@ KogaScript_0x18075a: ; 0x18075a
changeblock $4, $2, $16
reloadmappart
loadmovesprites
- setbit1 $030c
+ setbit1 EVENT_KOGAS_ROOM_EXIT_OPEN
waitbutton
end
; 0x180788
diff --git a/maps/KrissHouse1F.asm b/maps/KrissHouse1F.asm
index 20e0dbfcc..3c6641e9e 100644
--- a/maps/KrissHouse1F.asm
+++ b/maps/KrissHouse1F.asm
@@ -131,11 +131,11 @@ MomScript_0x7a582: ; 0x7a582
loadfont
checkbit1 $0076
iftrue UnknownScript_0x7a5af
- checkbit1 $0040
+ checkbit1 EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
iftrue UnknownScript_0x7a5b8
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue UnknownScript_0x7a5b5
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue UnknownScript_0x7a5a9
2writetext UnknownText_0x7a8b5
closetext
@@ -160,7 +160,7 @@ UnknownScript_0x7a5af: ; 0x7a5af
UnknownScript_0x7a5b5: ; 0x7a5b5
setbit1 $0076
UnknownScript_0x7a5b8: ; 0x7a5b8
- setbit1 $0040
+ setbit1 EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
special $0022
closetext
loadmovesprites
diff --git a/maps/KrissHouse2F.asm b/maps/KrissHouse2F.asm
index 6a6394238..1d4a33040 100644
--- a/maps/KrissHouse2F.asm
+++ b/maps/KrissHouse2F.asm
@@ -64,9 +64,9 @@ MapKrissHouse2FSignpost4Script: ; 0x7abd8
; 0x7abda
MapKrissHouse2FSignpost2Script: ; 0x7abda
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue UnknownScript_0x7ac07
- checkbit1 $0325
+ checkbit1 EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE
iftrue UnknownScript_0x7ac0a
playmusic $001d
loadfont
@@ -80,7 +80,7 @@ MapKrissHouse2FSignpost2Script: ; 0x7abda
2writetext UnknownText_0x7ac84
pause 45
loadmovesprites
- setbit1 $0325
+ setbit1 EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE
end
; 0x7ac07
diff --git a/maps/KrissNeighborsHouse.asm b/maps/KrissNeighborsHouse.asm
index 5fdf07c71..313678348 100644
--- a/maps/KrissNeighborsHouse.asm
+++ b/maps/KrissNeighborsHouse.asm
@@ -19,9 +19,9 @@ MapKrissNeighborsHouseSignpost1Script: ; 0x7acf4
; 0x7acf7
MapKrissNeighborsHouseSignpost2Script: ; 0x7acf7
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue UnknownScript_0x7ad24
- checkbit1 $0325
+ checkbit1 EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE
iftrue UnknownScript_0x7ad27
playmusic $001d
loadfont
@@ -35,7 +35,7 @@ MapKrissNeighborsHouseSignpost2Script: ; 0x7acf7
2writetext UnknownText_0x7ae9b
pause 45
loadmovesprites
- setbit1 $0325
+ setbit1 EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE
end
; 0x7ad24
diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm
index df8ec978c..53920eede 100644
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -11,7 +11,7 @@ KurtsHouse_MapScriptHeader: ; 0x18e14f
; 0x18e154
UnknownScript_0x18e154: ; 0x18e154
- checkbit1 $002b
+ checkbit1 EVENT_CLEARED_SLOWPOKE_WELL
iffalse UnknownScript_0x18e177
checkbit1 $00c0
iftrue UnknownScript_0x18e177
@@ -38,7 +38,7 @@ KurtScript_0x18e178: ; 0x18e178
loadfont
checkbit1 $0035
iftrue UnknownScript_0x18e1cc
- checkbit1 $002b
+ checkbit1 EVENT_CLEARED_SLOWPOKE_WELL
iftrue UnknownScript_0x18e1bf
2writetext UnknownText_0x18e473
closetext
@@ -91,7 +91,7 @@ UnknownScript_0x18e1cc: ; 0x18e1cc
iftrue UnknownScript_0x18e322
checkbit1 $025e
iftrue UnknownScript_0x18e338
- checkbit1 $00be
+ checkbit1 EVENT_CAN_GIVE_GS_BALL_TO_KURT
iftrue UnknownScript_0x18e34e
UnknownScript_0x18e202: ; 0x18e202
checkbit1 $0001
@@ -317,7 +317,7 @@ UnknownScript_0x18e378: ; 0x18e378
closetext
loadmovesprites
setbit1 $00c0
- clearbit1 $00be
+ clearbit1 EVENT_CAN_GIVE_GS_BALL_TO_KURT
clearbit1 $00bf
special $006a
pause 20
@@ -388,7 +388,7 @@ TwinScript_0x18e3ed: ; 0x18e3ed
iftrue UnknownScript_0x18e420
checkbit1 $0030
iftrue UnknownScript_0x18e427
- checkbit1 $002b
+ checkbit1 EVENT_CLEARED_SLOWPOKE_WELL
iftrue UnknownScript_0x18e419
checkbit1 $06fa
iftrue UnknownScript_0x18e420
diff --git a/maps/LakeofRage.asm b/maps/LakeofRage.asm
index 6e4e71be9..f11687473 100644
--- a/maps/LakeofRage.asm
+++ b/maps/LakeofRage.asm
@@ -42,7 +42,7 @@ UnknownScript_0x7001f: ; 0x7001f
; 0x70022
LanceScript_0x70022: ; 0x70022
- checkbit1 $0026
+ checkbit1 EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE
iftrue UnknownScript_0x70057
loadfont
2writetext UnknownText_0x70157
@@ -59,7 +59,7 @@ UnknownScript_0x70035: ; 0x70035
applymovement $2, MovementData_0x70155
disappear $2
clearbit1 $06d5
- setbit1 $0060
+ setbit1 EVENT_DECIDED_TO_HELP_LANCE
domaptrigger GROUP_MAHOGANY_MART_1F, MAP_MAHOGANY_MART_1F, $1
end
; 0x7004e
@@ -68,7 +68,7 @@ UnknownScript_0x7004e: ; 0x7004e
2writetext UnknownText_0x70371
closetext
loadmovesprites
- setbit1 $0026
+ setbit1 EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE
end
; 0x70057
@@ -110,7 +110,7 @@ UnknownScript_0x7007a: ; 0x7007a
GrampsScript_0x7008e: ; 0x7008e
faceplayer
loadfont
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x7009c
2writetext UnknownText_0x703f8
closetext
@@ -140,7 +140,7 @@ MapLakeofRageSignpost0Script: ; 0x700a8
MapLakeofRageSignpost1Script: ; 0x700ab
loadfont
2writetext UnknownText_0x70903
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x700b8
closetext
loadmovesprites
@@ -273,21 +273,21 @@ CooltrainerfLoisScript: ; 0x70106
SuperNerdScript_0x7010e: ; 0x7010e
faceplayer
loadfont
- checkbit1 $006b
+ checkbit1 EVENT_GOT_BLACKBELT_FROM_WESLEY
iftrue UnknownScript_0x7013c
checkcode $b
if_not_equal WEDNESDAY, UnknownScript_0x70142
- checkbit1 $006a
+ checkbit1 EVENT_MET_WESLEY_OF_WEDNESDAY
iftrue UnknownScript_0x70129
2writetext UnknownText_0x70784
keeptextopen
- setbit1 $006a
+ setbit1 EVENT_MET_WESLEY_OF_WEDNESDAY
UnknownScript_0x70129: ; 0x70129
2writetext UnknownText_0x707dd
keeptextopen
verbosegiveitem BLACKBELT, 1
iffalse UnknownScript_0x70140
- setbit1 $006b
+ setbit1 EVENT_GOT_BLACKBELT_FROM_WESLEY
2writetext UnknownText_0x7080b
closetext
loadmovesprites
diff --git a/maps/LakeofRageHiddenPowerHouse.asm b/maps/LakeofRageHiddenPowerHouse.asm
index 783275c69..cc50000ec 100644
--- a/maps/LakeofRageHiddenPowerHouse.asm
+++ b/maps/LakeofRageHiddenPowerHouse.asm
@@ -9,13 +9,13 @@ LakeofRageHiddenPowerHouse_MapScriptHeader: ; 0x19a525
FisherScript_0x19a527: ; 0x19a527
faceplayer
loadfont
- checkbit1 $0058
+ checkbit1 EVENT_GOT_TM10_HIDDEN_POWER
iftrue UnknownScript_0x19a542
2writetext UnknownText_0x19a54b
keeptextopen
verbosegiveitem TM_10, 1
iffalse UnknownScript_0x19a546
- setbit1 $0058
+ setbit1 EVENT_GOT_TM10_HIDDEN_POWER
2writetext UnknownText_0x19a5de
closetext
loadmovesprites
diff --git a/maps/LakeofRageMagikarpHouse.asm b/maps/LakeofRageMagikarpHouse.asm
index f044ef9dd..a89867a4d 100644
--- a/maps/LakeofRageMagikarpHouse.asm
+++ b/maps/LakeofRageMagikarpHouse.asm
@@ -13,7 +13,7 @@ FishingGuruScript_0x19a6ae: ; 0x19a6ae
iftrue UnknownScript_0x19a6fe
checkbit1 $0039
iftrue UnknownScript_0x19a6e0
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x19a6d7
checkbit1 $0038
iftrue UnknownScript_0x19a6d1
diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm
index 4db16287d..30773e254 100644
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -24,7 +24,7 @@ UnknownScript_0x180e3d: ; 0x180e3d
; 0x180e3e
UnknownScript_0x180e3e: ; 0x180e3e
- checkbit1 $0311
+ checkbit1 EVENT_LANCES_ROOM_ENTRANCE_CLOSED
iffalse UnknownScript_0x180e48
changeblock $4, $16, $34
UnknownScript_0x180e48: ; 0x180e48
@@ -44,7 +44,7 @@ UnknownScript_0x180e53: ; 0x180e53
reloadmappart
loadmovesprites
dotrigger $1
- setbit1 $0311
+ setbit1 EVENT_LANCES_ROOM_ENTRANCE_CLOSED
end
; 0x180e6a
@@ -69,7 +69,7 @@ UnknownScript_0x180e7b: ; 0x180e7b
startbattle
reloadmapmusic
returnafterbattle
- setbit1 $05bc
+ setbit1 EVENT_BEAT_CHAMPION_LANCE
loadfont
2writetext UnknownText_0x181132
closetext
@@ -78,7 +78,7 @@ UnknownScript_0x180e7b: ; 0x180e7b
changeblock $4, $0, $b
reloadmappart
loadmovesprites
- setbit1 $0311
+ setbit1 EVENT_LANCES_ROOM_ENTRANCE_CLOSED
musicfadeout $0038, $10
pause 30
showemote $0, $2, 15
diff --git a/maps/LavRadioTower1F.asm b/maps/LavRadioTower1F.asm
index d009b2f5e..8069343f2 100644
--- a/maps/LavRadioTower1F.asm
+++ b/maps/LavRadioTower1F.asm
@@ -23,7 +23,7 @@ GentlemanScript_0x7ee6c: ; 0x7ee6c
loadfont
checkbit2 $0003
iftrue .UnknownScript_0x7ee8e
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue .UnknownScript_0x7ee80
2writetext UnknownText_0x7effb
closetext
diff --git a/maps/LavenderPokeCenter1F.asm b/maps/LavenderPokeCenter1F.asm
index 91229efef..e1a7f591e 100644
--- a/maps/LavenderPokeCenter1F.asm
+++ b/maps/LavenderPokeCenter1F.asm
@@ -21,7 +21,7 @@ TeacherScript_0x7e6a6: ; 0x7e6a6
YoungsterScript_0x7e6a9: ; 0x7e6a9
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x7e6b7
2writetext UnknownText_0x7e779
closetext
diff --git a/maps/MahoganyGym.asm b/maps/MahoganyGym.asm
index ed98ad765..9356cdc84 100644
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -9,7 +9,7 @@ MahoganyGym_MapScriptHeader: ; 0x199a9c
PryceScript_0x199a9e: ; 0x199a9e
faceplayer
loadfont
- checkbit1 $04c3
+ checkbit1 EVENT_BEAT_PRYCE
iftrue UnknownScript_0x199ac8
2writetext UnknownText_0x199b8d
closetext
@@ -18,7 +18,7 @@ PryceScript_0x199a9e: ; 0x199a9e
loadtrainer PRYCE, 1
startbattle
returnafterbattle
- setbit1 $04c3
+ setbit1 EVENT_BEAT_PRYCE
loadfont
2writetext UnknownText_0x199d3b
playsound $009c
@@ -27,18 +27,18 @@ PryceScript_0x199a9e: ; 0x199a9e
checkcode $7
2call UnknownScript_0x199af6
UnknownScript_0x199ac8: ; 0x199ac8
- checkbit1 $000e
+ checkbit1 EVENT_GOT_TM16_ICY_WIND
iftrue UnknownScript_0x199af0
- setbit1 $0592
- setbit1 $0593
- setbit1 $040e
- setbit1 $040f
- setbit1 $0410
+ setbit1 EVENT_BEAT_SKIER_ROXANNE
+ setbit1 EVENT_BEAT_SKIER_CLARISSA
+ setbit1 EVENT_BEAT_BOARDER_RONALD
+ setbit1 EVENT_BEAT_BOARDER_BRAD
+ setbit1 EVENT_BEAT_BOARDER_DOUGLAS
2writetext UnknownText_0x199d55
keeptextopen
verbosegiveitem TM_16, 1
iffalse UnknownScript_0x199af4
- setbit1 $000e
+ setbit1 EVENT_GOT_TM16_ICY_WIND
2writetext UnknownText_0x199def
closetext
loadmovesprites
@@ -215,7 +215,7 @@ BoarderDouglasScript: ; 0x199b61
MahoganyGymGuyScript: ; 0x199b69
faceplayer
loadfont
- checkbit1 $04c3
+ checkbit1 EVENT_BEAT_PRYCE
iftrue .MahoganyGymGuyWinScript
2writetext MahoganyGymGuyText
closetext
diff --git a/maps/MahoganyMart1F.asm b/maps/MahoganyMart1F.asm
index c5ef6464a..a81b0bfa1 100644
--- a/maps/MahoganyMart1F.asm
+++ b/maps/MahoganyMart1F.asm
@@ -24,7 +24,7 @@ UnknownScript_0x6c357: ; 0x6c357
; 0x6c35b
UnknownScript_0x6c35b: ; 0x6c35b
- checkbit1 $02e2
+ checkbit1 EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART
iftrue UnknownScript_0x6c362
return
; 0x6c362
@@ -37,7 +37,7 @@ UnknownScript_0x6c362: ; 0x6c362
PharmacistScript_0x6c367: ; 0x6c367
faceplayer
loadfont
- checkbit1 $0060
+ checkbit1 EVENT_DECIDED_TO_HELP_LANCE
iftrue UnknownScript_0x6c375
pokemart $0, $000f
loadmovesprites
@@ -54,7 +54,7 @@ UnknownScript_0x6c375: ; 0x6c375
BlackBeltScript_0x6c37b: ; 0x6c37b
faceplayer
loadfont
- checkbit1 $0060
+ checkbit1 EVENT_DECIDED_TO_HELP_LANCE
iftrue UnknownScript_0x6c389
2writetext UnknownText_0x6c494
closetext
@@ -99,7 +99,7 @@ UnknownScript_0x6c38f: ; 0x6c38f
changeblock $6, $2, $1e
reloadmappart
loadmovesprites
- setbit1 $02e2
+ setbit1 EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART
spriteface $4, $2
loadfont
2writetext UnknownText_0x6c5ba
diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm
index a3ab060f0..89a51f4e0 100644
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -42,7 +42,7 @@ UnknownScript_0x190013: ; 0x190013
PokefanMScript_0x19002e: ; 0x19002e
faceplayer
UnknownScript_0x19002f: ; 0x19002f
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x190039
2call UnknownScript_0x190040
end
@@ -100,7 +100,7 @@ UnknownScript_0x190078: ; 0x190078
GrampsScript_0x19007e: ; 0x19007e
faceplayer
loadfont
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x19008c
2writetext UnknownText_0x1901e5
closetext
diff --git a/maps/ManiasHouse.asm b/maps/ManiasHouse.asm
index f69abb947..6ffc2d3b8 100644
--- a/maps/ManiasHouse.asm
+++ b/maps/ManiasHouse.asm
@@ -9,9 +9,9 @@ ManiasHouse_MapScriptHeader: ; 0x9d276
RockerScript_0x9d278: ; 0x9d278
faceplayer
loadfont
- checkbit1 $0046
+ checkbit1 EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM
iftrue UnknownScript_0x9d2fa
- checkbit1 $0045
+ checkbit1 EVENT_GOT_SHUCKIE
iftrue UnknownScript_0x9d2a4
2writetext UnknownText_0x9d303
yesorno
@@ -25,7 +25,7 @@ RockerScript_0x9d278: ; 0x9d278
playsound $0091
waitbutton
loadmovesprites
- setbit1 $0045
+ setbit1 EVENT_GOT_SHUCKIE
end
; 0x9d2a4
@@ -64,7 +64,7 @@ UnknownScript_0x9d2bc: ; 0x9d2bc
2writetext UnknownText_0x9d4b1
closetext
loadmovesprites
- setbit1 $0046
+ setbit1 EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM
end
; 0x9d2df
@@ -79,7 +79,7 @@ UnknownScript_0x9d2e5: ; 0x9d2e5
2writetext UnknownText_0x9d4e3
closetext
loadmovesprites
- setbit1 $0046
+ setbit1 EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM
end
; 0x9d2ee
diff --git a/maps/MountMoon.asm b/maps/MountMoon.asm
index 44b3cf538..f3c760189 100644
--- a/maps/MountMoon.asm
+++ b/maps/MountMoon.asm
@@ -30,9 +30,9 @@ UnknownScript_0x7408e: ; 0x7408e
2writetext UnknownText_0x74105
closetext
loadmovesprites
- checkbit1 $001c
+ checkbit1 EVENT_GOT_TOTODILE_FROM_ELM
iftrue UnknownScript_0x740c3
- checkbit1 $001d
+ checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM
iftrue UnknownScript_0x740d3
winlosstext UnknownText_0x7419d, UnknownText_0x742e0
setlasttalked $2
@@ -72,7 +72,7 @@ UnknownScript_0x740e3: ; 0x740e3
applymovement $2, MovementData_0x740fd
disappear $2
dotrigger $1
- setbit1 $0319
+ setbit1 EVENT_BEAT_RIVAL_IN_MT_MOON
playmapmusic
end
; 0x740f9
diff --git a/maps/MountMortarB1F.asm b/maps/MountMortarB1F.asm
index c316904c3..02f12f2ee 100644
--- a/maps/MountMortarB1F.asm
+++ b/maps/MountMortarB1F.asm
@@ -9,7 +9,7 @@ MountMortarB1F_MapScriptHeader: ; 0x7e1f4
BlackBeltScript_0x7e1f6: ; 0x7e1f6
faceplayer
loadfont
- checkbit1 $0061
+ checkbit1 EVENT_GOT_TYROGUE_FROM_KIYO
iftrue UnknownScript_0x7e231
checkbit1 $04a9
iftrue UnknownScript_0x7e217
@@ -32,7 +32,7 @@ UnknownScript_0x7e217: ; 0x7e217
playsound $0002
waitbutton
givepoke TYROGUE, 10, 0, 0
- setbit1 $0061
+ setbit1 EVENT_GOT_TYROGUE_FROM_KIYO
UnknownScript_0x7e231: ; 0x7e231
2writetext UnknownText_0x7e36a
closetext
diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm
index 8b80af737..c3677dea2 100644
--- a/maps/MrPokemonsHouse.asm
+++ b/maps/MrPokemonsHouse.asm
@@ -36,7 +36,7 @@ UnknownScript_0x196e56: ; 0x196e56
playsound $0091
waitbutton
itemnotify
- setbit1 $001e
+ setbit1 EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
blackoutmod GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
2writetext UnknownText_0x196feb
keeptextopen
@@ -56,7 +56,7 @@ GentlemanScript_0x196e97: ; 0x196e97
loadfont
checkitem RED_SCALE
iftrue UnknownScript_0x196eb0
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue UnknownScript_0x196eaa
2writetext UnknownText_0x197134
closetext
@@ -136,9 +136,9 @@ UnknownScript_0x196ec9: ; 0x196ec9
domaptrigger GROUP_ELMS_LAB, MAP_ELMS_LAB, $3
specialphonecall $2
clearbit1 $0702
- checkbit1 $001c
+ checkbit1 EVENT_GOT_TOTODILE_FROM_ELM
iftrue UnknownScript_0x196f49
- checkbit1 $001d
+ checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM
iftrue UnknownScript_0x196f4d
setbit1 $0641
end
diff --git a/maps/MrPsychicsHouse.asm b/maps/MrPsychicsHouse.asm
index 64f3fbfda..e760c3f99 100644
--- a/maps/MrPsychicsHouse.asm
+++ b/maps/MrPsychicsHouse.asm
@@ -9,13 +9,13 @@ MrPsychicsHouse_MapScriptHeader: ; 0x18a778
FishingGuruScript_0x18a77a: ; 0x18a77a
faceplayer
loadfont
- checkbit1 $00e3
+ checkbit1 EVENT_GOT_TM29_PSYCHIC
iftrue UnknownScript_0x18a78f
2writetext UnknownText_0x18a798
keeptextopen
verbosegiveitem TM_29, 1
iffalse UnknownScript_0x18a793
- setbit1 $00e3
+ setbit1 EVENT_GOT_TM29_PSYCHIC
UnknownScript_0x18a78f: ; 0x18a78f
2writetext UnknownText_0x18a7bb
closetext
diff --git a/maps/NationalPark.asm b/maps/NationalPark.asm
index 8a6c6335d..f11a8f429 100644
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -17,13 +17,13 @@ PokefanFScript_0x5c005: ; 0x5c005
TeacherScript_0x5c008: ; 0x5c008
faceplayer
loadfont
- checkbit1 $0057
+ checkbit1 EVENT_GOT_QUICK_CLAW
iftrue UnknownScript_0x5c01d
2writetext UnknownText_0x5c265
keeptextopen
verbosegiveitem QUICK_CLAW, 1
iffalse UnknownScript_0x5c021
- setbit1 $0057
+ setbit1 EVENT_GOT_QUICK_CLAW
UnknownScript_0x5c01d: ; 0x5c01d
2writetext UnknownText_0x5c30d
closetext
@@ -122,13 +122,13 @@ UnknownScript_0x5c088: ; 0x5c088
if_equal $1, UnknownScript_0x5c0b9
if_equal $0, UnknownScript_0x5c0bf
UnknownScript_0x5c0a7: ; 0x5c0a7
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x5c0f3
UnknownScript_0x5c0ad: ; 0x5c0ad
checkbit1 $0044
iftrue UnknownScript_0x5c0e6
UnknownScript_0x5c0b3: ; 0x5c0b3
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x5c0d9
UnknownScript_0x5c0b9: ; 0x5c0b9
checkbit2 $0047
@@ -271,11 +271,11 @@ PokefanfBeverly1Script: ; 0x5c138
iftrue UnknownScript_0x5c19b
checkpoke MARILL
iffalse UnknownScript_0x5c189
- checkbit1 $0261
+ checkbit1 EVENT_SHOWED_BEVERLY_MARILL
iftrue UnknownScript_0x5c160
2writetext UnknownText_0x5c5bd
keeptextopen
- setbit1 $0261
+ setbit1 EVENT_SHOWED_BEVERLY_MARILL
2call UnknownScript_0x5c18f
2jump UnknownScript_0x5c163
; 0x5c160
diff --git a/maps/NewBarkTown.asm b/maps/NewBarkTown.asm
index 5d9afe0d2..e6e643abf 100644
--- a/maps/NewBarkTown.asm
+++ b/maps/NewBarkTown.asm
@@ -80,11 +80,11 @@ UnknownScript_0x1a8041: ; 0x1a8041
TeacherScript_0x1a806f: ; 0x1a806f
faceplayer
loadfont
- checkbit1 $0040
+ checkbit1 EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
iftrue UnknownScript_0x1a8095
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue UnknownScript_0x1a808f
- checkbit1 $001a
+ checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM
iftrue UnknownScript_0x1a8089
2writetext UnknownText_0x1a80f7
closetext
diff --git a/maps/OlivineCafe.asm b/maps/OlivineCafe.asm
index 417df164f..e5c31f9f5 100644
--- a/maps/OlivineCafe.asm
+++ b/maps/OlivineCafe.asm
@@ -9,12 +9,12 @@ OlivineCafe_MapScriptHeader: ; 0x9c8bf
SailorScript_0x9c8c1: ; 0x9c8c1
faceplayer
loadfont
- checkbit1 $0013
+ checkbit1 EVENT_GOT_HM04_STRENGTH
iftrue UnknownScript_0x9c8d3
2writetext UnknownText_0x9c8df
keeptextopen
verbosegiveitem HM_04, 1
- setbit1 $0013
+ setbit1 EVENT_GOT_HM04_STRENGTH
UnknownScript_0x9c8d3: ; 0x9c8d3
2writetext UnknownText_0x9c965
closetext
diff --git a/maps/OlivineGoodRodHouse.asm b/maps/OlivineGoodRodHouse.asm
index 181ec09b3..26d128460 100644
--- a/maps/OlivineGoodRodHouse.asm
+++ b/maps/OlivineGoodRodHouse.asm
@@ -9,7 +9,7 @@ OlivineGoodRodHouse_MapScriptHeader: ; 0x9c719
FishingGuruScript_0x9c71b: ; 0x9c71b
faceplayer
loadfont
- checkbit1 $0018
+ checkbit1 EVENT_GOT_GOOD_ROD
iftrue UnknownScript_0x9c740
2writetext UnknownText_0x9c749
yesorno
@@ -20,7 +20,7 @@ FishingGuruScript_0x9c71b: ; 0x9c71b
2writetext UnknownText_0x9c807
closetext
loadmovesprites
- setbit1 $0018
+ setbit1 EVENT_GOT_GOOD_ROD
end
; 0x9c73a
diff --git a/maps/OlivineGym.asm b/maps/OlivineGym.asm
index fad06da3f..df750359f 100644
--- a/maps/OlivineGym.asm
+++ b/maps/OlivineGym.asm
@@ -9,7 +9,7 @@ OlivineGym_MapScriptHeader: ; 0x9c12d
JasmineScript_0x9c12f: ; 0x9c12f
faceplayer
loadfont
- checkbit1 $04c1
+ checkbit1 EVENT_BEAT_JASMINE
iftrue UnknownScript_0x9c159
2writetext UnknownText_0x9c1b9
closetext
@@ -18,7 +18,7 @@ JasmineScript_0x9c12f: ; 0x9c12f
loadtrainer JASMINE, 1
startbattle
returnafterbattle
- setbit1 $04c1
+ setbit1 EVENT_BEAT_JASMINE
loadfont
2writetext UnknownText_0x9c33a
playsound $009c
@@ -27,13 +27,13 @@ JasmineScript_0x9c12f: ; 0x9c12f
checkcode $7
2call UnknownScript_0x9c178
UnknownScript_0x9c159: ; 0x9c159
- checkbit1 $000d
+ checkbit1 EVENT_GOT_TM23_IRON_TAIL
iftrue UnknownScript_0x9c172
2writetext UnknownText_0x9c354
keeptextopen
verbosegiveitem TM_23, 1
iffalse UnknownScript_0x9c176
- setbit1 $000d
+ setbit1 EVENT_GOT_TM23_IRON_TAIL
2writetext UnknownText_0x9c3a5
closetext
loadmovesprites
@@ -64,9 +64,9 @@ UnknownScript_0x9c184: ; 0x9c184
OlivineGymGuyScript: ; 0x9c187
faceplayer
- checkbit1 $04c1
+ checkbit1 EVENT_BEAT_JASMINE
iftrue .OlivineGymGuyWinScript
- checkbit1 $0020
+ checkbit1 EVENT_JASMINE_RETURNED_TO_GYM
iffalse .OlivineGymGuyPreScript
loadfont
2writetext OlivineGymGuyText
diff --git a/maps/OlivineLighthouse2F.asm b/maps/OlivineLighthouse2F.asm
index af121bc9d..defcbb4d6 100644
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -90,13 +90,13 @@ UnknownScript_0x5afc7: ; 0x5afc7
if_equal $1, UnknownScript_0x5afee
if_equal $0, UnknownScript_0x5aff4
UnknownScript_0x5afe2: ; 0x5afe2
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x5b01b
UnknownScript_0x5afe8: ; 0x5afe8
checkbit1 $0044
iftrue UnknownScript_0x5b00e
UnknownScript_0x5afee: ; 0x5afee
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x5b001
UnknownScript_0x5aff4: ; 0x5aff4
loadtrainer SAILOR, HUEY1
@@ -130,7 +130,7 @@ UnknownScript_0x5b01b: ; 0x5b01b
startbattle
returnafterbattle
clearbit2 $0066
- checkbit1 $0337
+ checkbit1 EVENT_HUEY_PROTEIN
iftrue UnknownScript_0x5b03f
checkbit1 $0265
iftrue UnknownScript_0x5b03e
@@ -151,7 +151,7 @@ UnknownScript_0x5b03f: ; 0x5b03f
closetext
verbosegiveitem PROTEIN, 1
iffalse UnknownScript_0x5b06f
- clearbit1 $0337
+ clearbit1 EVENT_HUEY_PROTEIN
setbit1 $0265
2jump UnknownScript_0x5b05f
; 0x5b053
@@ -192,7 +192,7 @@ UnknownScript_0x5b06b: ; 0x5b06b
; 0x5b06f
UnknownScript_0x5b06f: ; 0x5b06f
- setbit1 $0337
+ setbit1 EVENT_HUEY_PROTEIN
jumpstd $0021
end
; 0x5b076
diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm
index a6551b84f..6ecb4230d 100644
--- a/maps/OlivineLighthouse6F.asm
+++ b/maps/OlivineLighthouse6F.asm
@@ -64,7 +64,7 @@ UnknownScript_0x60bab: ; 0x60bab
2writetext UnknownText_0x60e6c
closetext
loadmovesprites
- setbit1 $0020
+ setbit1 EVENT_JASMINE_RETURNED_TO_GYM
clearbit1 $06d3
checkcode $9
if_equal $0, UnknownScript_0x60c17
@@ -107,7 +107,7 @@ UnknownScript_0x60c39: ; 0x60c39
MonsterScript_0x60c3a: ; 0x60c3a
faceplayer
loadfont
- checkbit1 $0020
+ checkbit1 EVENT_JASMINE_RETURNED_TO_GYM
iftrue UnknownScript_0x60c51
2writetext UnknownText_0x60f03
writebyte AMPHAROS
diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm
index c07301471..6819babd3 100644
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -49,15 +49,15 @@ SailorScript_0x748c0: ; 0x748c0
iffalse UnknownScript_0x7490a
clearbit1 $073a
setbit1 $073b
- clearbit1 $0557
- clearbit1 $0567
- clearbit1 $049b
- clearbit1 $04b2
- clearbit1 $0445
- clearbit1 $0589
- clearbit1 $057b
- clearbit1 $0459
- clearbit1 $04ac
+ clearbit1 EVENT_BEAT_COOLTRAINERM_SEAN
+ clearbit1 EVENT_BEAT_COOLTRAINERF_CAROL
+ clearbit1 EVENT_BEAT_GENTLEMAN_EDWARD
+ clearbit1 EVENT_BEAT_BEAUTY_CASSIE
+ clearbit1 EVENT_BEAT_PSYCHIC_RODNEY
+ clearbit1 EVENT_BEAT_SUPER_NERD_SHAWN
+ clearbit1 EVENT_BEAT_SAILOR_GARRETT
+ clearbit1 EVENT_BEAT_FISHER_JONAH
+ clearbit1 EVENT_BEAT_BLACKBELT_WAI
UnknownScript_0x7490a: ; 0x7490a
clearbit1 $002f
appear $2
diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm
index 1db609539..5f41c2a05 100644
--- a/maps/PewterCity.asm
+++ b/maps/PewterCity.asm
@@ -26,12 +26,12 @@ BugCatcherScript_0x18c00c: ; 0x18c00c
GrampsScript_0x18c00f: ; 0x18c00f
faceplayer
loadfont
- checkbit1 $0079
+ checkbit1 EVENT_GOT_SILVER_WING
iftrue UnknownScript_0x18c023
2writetext UnknownText_0x18c0c6
keeptextopen
verbosegiveitem SILVER_WING, 1
- setbit1 $0079
+ setbit1 EVENT_GOT_SILVER_WING
loadmovesprites
end
; 0x18c023
diff --git a/maps/PewterGym.asm b/maps/PewterGym.asm
index 608c6886c..427a77195 100644
--- a/maps/PewterGym.asm
+++ b/maps/PewterGym.asm
@@ -18,8 +18,8 @@ BrockScript_0x1a2864: ; 0x1a2864
loadtrainer BROCK, 1
startbattle
returnafterbattle
- setbit1 $04c5
- setbit1 $042b
+ setbit1 EVENT_BEAT_BROCK
+ setbit1 EVENT_BEAT_CAMPER_JERRY
loadfont
2writetext UnknownText_0x1a2a3d
playsound $009c
@@ -70,7 +70,7 @@ CamperJerryScript: ; 0x1a28a4
PewterGymGuyScript: ; 0x1a28ac
faceplayer
loadfont
- checkbit1 $04c5
+ checkbit1 EVENT_BEAT_BROCK
iftrue .PewterGymGuyWinScript
2writetext PewterGymGuyText
closetext
diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm
index 63aa75f5c..6f9503fb6 100644
--- a/maps/PokeCenter2F.asm
+++ b/maps/PokeCenter2F.asm
@@ -77,7 +77,7 @@ UnknownScript_0x192895: ; 0x192895
; 0x19289d
LinkReceptionistScript_0x19289d: ; 0x19289d
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iffalse UnknownScript_0x19288d
loadfont
2writetext UnknownText_0x192e3a
@@ -190,7 +190,7 @@ UnknownScript_0x19294a: ; 0x19294a
; 0x192952
LinkReceptionistScript_0x192952: ; 0x192952
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iffalse UnknownScript_0x192895
loadfont
2writetext UnknownText_0x192de0
diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm
index ba8b2fe06..f2b4e8b62 100644
--- a/maps/PokemonFanClub.asm
+++ b/maps/PokemonFanClub.asm
@@ -9,9 +9,9 @@ PokemonFanClub_MapScriptHeader: ; 0x1917e7
GentlemanScript_0x1917e9: ; 0x1917e9
faceplayer
loadfont
- checkbit1 $00d4
+ checkbit1 EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT
iftrue UnknownScript_0x191815
- checkbit1 $00d3
+ checkbit1 EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT_BUT_BAG_WAS_FULL
iftrue UnknownScript_0x191802
2writetext UnknownText_0x191881
yesorno
@@ -23,7 +23,7 @@ UnknownScript_0x191802: ; 0x191802
keeptextopen
verbosegiveitem RARE_CANDY, 1
iffalse UnknownScript_0x19181f
- setbit1 $00d4
+ setbit1 EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT
2writetext UnknownText_0x191a72
closetext
loadmovesprites
@@ -52,9 +52,9 @@ ReceptionistScript_0x191821: ; 0x191821
FisherScript_0x191824: ; 0x191824
faceplayer
loadfont
- checkbit1 $00d2
+ checkbit1 EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB
iftrue UnknownScript_0x19185f
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x191838
2writetext UnknownText_0x191ba0
closetext
@@ -64,7 +64,7 @@ FisherScript_0x191824: ; 0x191824
UnknownScript_0x191838: ; 0x191838
2writetext UnknownText_0x191bff
- checkbit1 $00cf
+ checkbit1 EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM
iftrue UnknownScript_0x191844
closetext
loadmovesprites
@@ -83,7 +83,7 @@ UnknownScript_0x191844: ; 0x191844
playsound $0091
waitbutton
itemnotify
- setbit1 $00d2
+ setbit1 EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB
loadmovesprites
end
; 0x19185f
diff --git a/maps/PowerPlant.asm b/maps/PowerPlant.asm
index 8fe259a32..9247de7a8 100644
--- a/maps/PowerPlant.asm
+++ b/maps/PowerPlant.asm
@@ -45,9 +45,9 @@ UnknownScript_0x188dc5: ; 0x188dc5
OfficerScript_0x188df5: ; 0x188df5
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x188e0f
- checkbit1 $00ca
+ checkbit1 EVENT_MET_MANAGER_AT_POWER_PLANT
iftrue UnknownScript_0x188e09
2writetext UnknownText_0x188ee0
closetext
@@ -72,7 +72,7 @@ UnknownScript_0x188e0f: ; 0x188e0f
GymGuyScript_0x188e15: ; 0x188e15
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x188e23
2writetext UnknownText_0x188fcf
closetext
@@ -90,7 +90,7 @@ UnknownScript_0x188e23: ; 0x188e23
GymGuyScript_0x188e29: ; 0x188e29
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x188e37
2writetext UnknownText_0x189079
closetext
@@ -108,7 +108,7 @@ UnknownScript_0x188e37: ; 0x188e37
OfficerScript_0x188e3d: ; 0x188e3d
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x188e4b
2writetext UnknownText_0x18910e
closetext
@@ -126,7 +126,7 @@ UnknownScript_0x188e4b: ; 0x188e4b
GymGuyScript_0x188e51: ; 0x188e51
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x188e5f
2writetext UnknownText_0x1891c2
closetext
@@ -144,18 +144,18 @@ UnknownScript_0x188e5f: ; 0x188e5f
FisherScript_0x188e65: ; 0x188e65
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x188eac
checkitem MACHINE_PART
iftrue UnknownScript_0x188e93
- checkbit1 $00ca
+ checkbit1 EVENT_MET_MANAGER_AT_POWER_PLANT
iftrue UnknownScript_0x188e8d
2writetext UnknownText_0x189264
closetext
loadmovesprites
- setbit1 $00ca
+ setbit1 EVENT_MET_MANAGER_AT_POWER_PLANT
clearbit1 $076d
- clearbit1 $00fb
+ clearbit1 EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM
domaptrigger GROUP_CERULEAN_GYM, MAP_CERULEAN_GYM, $1
dotrigger $1
end
@@ -172,20 +172,20 @@ UnknownScript_0x188e93: ; 0x188e93
2writetext UnknownText_0x18936e
keeptextopen
takeitem MACHINE_PART, 1
- setbit1 $00c9
+ setbit1 EVENT_RETURNED_MACHINE_PART
clearbit1 $0772
setbit1 $0771
setbit1 $076c
- setbit1 $00cd
+ setbit1 EVENT_RESTORED_POWER_TO_KANTO
clearbit1 $0749
UnknownScript_0x188eac: ; 0x188eac
- checkbit1 $00df
+ checkbit1 EVENT_GOT_TM07_ZAP_CANNON
iftrue UnknownScript_0x188ec5
2writetext UnknownText_0x1893c4
keeptextopen
verbosegiveitem TM_07, 1
iffalse UnknownScript_0x188ec3
- setbit1 $00df
+ setbit1 EVENT_GOT_TM07_ZAP_CANNON
2writetext UnknownText_0x1893f4
closetext
UnknownScript_0x188ec3: ; 0x188ec3
diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm
index 97c295dc4..cc9f529f8 100644
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -170,7 +170,7 @@ BuenaScript_0x5d775: ; 0x5d775
loadfont
checkbit2 $0013
iftrue UnknownScript_0x5d865
- checkbit1 $033d
+ checkbit1 EVENT_MET_BUENA
iffalse UnknownScript_0x5d800
checkbit2 $0060
iftrue UnknownScript_0x5d82f
@@ -231,7 +231,7 @@ UnknownScript_0x5d7be: ; 0x5d7be
UnknownScript_0x5d800: ; 0x5d800
2writetext UnknownText_0x5dcf4
keeptextopen
- setbit1 $033d
+ setbit1 EVENT_MET_BUENA
verbosegiveitem BLUE_CARD, 1
UnknownScript_0x5d80a: ; 0x5d80a
2writetext UnknownText_0x5de10
@@ -239,7 +239,7 @@ UnknownScript_0x5d80a: ; 0x5d80a
loadmovesprites
checkcellnum $25
iftrue UnknownScript_0x5d81a
- checkbit1 $033c
+ checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
iftrue UnknownScript_0x5d8cc
UnknownScript_0x5d81a: ; 0x5d81a
spriteface $b, $3
@@ -263,7 +263,7 @@ UnknownScript_0x5d82f: ; 0x5d82f
loadmovesprites
checkcellnum $25
iftrue UnknownScript_0x5d83f
- checkbit1 $033c
+ checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
iftrue UnknownScript_0x5d8cc
UnknownScript_0x5d83f: ; 0x5d83f
spriteface $b, $3
@@ -303,7 +303,7 @@ UnknownScript_0x5d86b: ; 0x5d86b
loadmovesprites
checkcellnum $25
iftrue UnknownScript_0x5d87b
- checkbit1 $029e
+ checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
iftrue UnknownScript_0x5d8cc
UnknownScript_0x5d87b: ; 0x5d87b
spriteface $b, $3
@@ -316,7 +316,7 @@ UnknownScript_0x5d87f: ; 0x5d87f
loadmovesprites
checkcellnum $25
iftrue UnknownScript_0x5d88f
- checkbit1 $029e
+ checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
iftrue UnknownScript_0x5d8cc
UnknownScript_0x5d88f: ; 0x5d88f
spriteface $b, $3
@@ -329,7 +329,7 @@ UnknownScript_0x5d893: ; 0x5d893
loadmovesprites
checkcellnum $25
iftrue UnknownScript_0x5d8a3
- checkbit1 $033c
+ checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
iftrue UnknownScript_0x5d8cc
UnknownScript_0x5d8a3: ; 0x5d8a3
end
@@ -343,11 +343,11 @@ UnknownScript_0x5d8a4: ; 0x5d8a4
pause 15
spriteface $0, $1
pause 15
- checkbit1 $029e
+ checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
iftrue UnknownScript_0x5d8cc
showemote $0, $b, 15
- setbit1 $029e
- setbit1 $033c
+ setbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
+ setbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
loadfont
2writetext UnknownText_0x5e1ee
2jump UnknownScript_0x5d8d0
diff --git a/maps/RadioTower3F.asm b/maps/RadioTower3F.asm
index 4d6b7b71f..6037234c6 100644
--- a/maps/RadioTower3F.asm
+++ b/maps/RadioTower3F.asm
@@ -11,7 +11,7 @@ RadioTower3F_MapScriptHeader: ; 0x5e53e
; 0x5e543
UnknownScript_0x5e543: ; 0x5e543
- checkbit1 $0025
+ checkbit1 EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
iftrue UnknownScript_0x5e54a
return
; 0x5e54a
@@ -29,7 +29,7 @@ SuperNerdScript_0x5e553: ; 0x5e553
GymGuyScript_0x5e556: ; 0x5e556
faceplayer
loadfont
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x5e564
2writetext UnknownText_0x5e682
closetext
@@ -47,11 +47,11 @@ UnknownScript_0x5e564: ; 0x5e564
CooltrainerFScript_0x5e56a: ; 0x5e56a
faceplayer
loadfont
- checkbit1 $0047
+ checkbit1 EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER
iftrue UnknownScript_0x5e59d
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x5e58a
- checkbit1 $0025
+ checkbit1 EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
iftrue UnknownScript_0x5e584
2writetext UnknownText_0x5e754
closetext
@@ -74,7 +74,7 @@ UnknownScript_0x5e58a: ; 0x5e58a
2writetext UnknownText_0x5e821
closetext
loadmovesprites
- setbit1 $0047
+ setbit1 EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER
end
; 0x5e59d
@@ -206,7 +206,7 @@ MapRadioTower3FSignpost2Script: ; 0x5e5f3
loadfont
2writetext UnknownText_0x5eaa4
closetext
- checkbit1 $0025
+ checkbit1 EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
iftrue UnknownScript_0x5e603
checkitem CARD_KEY
iftrue UnknownScript_0x5e605
@@ -218,7 +218,7 @@ UnknownScript_0x5e603: ; 0x5e603
UnknownScript_0x5e605: ; 0x5e605
2writetext UnknownText_0x5eabc
closetext
- setbit1 $0025
+ setbit1 EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
playsound $001f
changeblock $e, $2, $2a
changeblock $e, $4, $1
diff --git a/maps/RadioTower4F.asm b/maps/RadioTower4F.asm
index 85443e0f7..5300c23b2 100644
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -13,9 +13,9 @@ FisherScript_0x5eb82: ; 0x5eb82
TeacherScript_0x5eb85: ; 0x5eb85
faceplayer
loadfont
- checkbit1 $0048
+ checkbit1 EVENT_GOT_PINK_BOW_FROM_MARY
iftrue UnknownScript_0x5ebac
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x5eb99
2writetext UnknownText_0x5ec68
closetext
@@ -31,7 +31,7 @@ UnknownScript_0x5eb99: ; 0x5eb99
2writetext UnknownText_0x5ecef
closetext
loadmovesprites
- setbit1 $0048
+ setbit1 EVENT_GOT_PINK_BOW_FROM_MARY
end
; 0x5ebac
diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm
index 4f95cc170..4f0588598 100644
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -54,7 +54,7 @@ UnknownScript_0x60011: ; 0x60011
GentlemanScript_0x60046: ; 0x60046
faceplayer
loadfont
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x60054
2writetext UnknownText_0x60246
closetext
@@ -122,7 +122,7 @@ UnknownScript_0x6006e: ; 0x6006e
pause 15
special $0032
setbit1 $0571
- setbit1 $0021
+ setbit1 EVENT_CLEARED_RADIO_TOWER
clearbit2 $0013
setbit1 $06cc
setbit1 $06cd
@@ -148,7 +148,7 @@ UnknownScript_0x6006e: ; 0x6006e
loadmovesprites
dotrigger $2
domaptrigger GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE, $0
- setbit1 $0078
+ setbit1 EVENT_GOT_CLEAR_BELL
setbit1 $0761
2jump UnknownScript_0x600f1
; 0x600f1
diff --git a/maps/RedsHouse1F.asm b/maps/RedsHouse1F.asm
index c52c06ffa..266fbb3c7 100644
--- a/maps/RedsHouse1F.asm
+++ b/maps/RedsHouse1F.asm
@@ -16,12 +16,12 @@ UnknownScript_0x19aea2: ; 0x19aea2
RedsMomScript_0x19aea3: ; 0x19aea3
faceplayer
loadfont
- checkbit1 $00cc
+ checkbit1 EVENT_MET_REDS_MOM
iftrue UnknownScript_0x19aeb4
2writetext UnknownText_0x19aec0
closetext
loadmovesprites
- setbit1 $00cc
+ setbit1 EVENT_MET_REDS_MOM
end
; 0x19aeb4
diff --git a/maps/Route10PokeCenter1F.asm b/maps/Route10PokeCenter1F.asm
index 177781e77..c44e702b5 100644
--- a/maps/Route10PokeCenter1F.asm
+++ b/maps/Route10PokeCenter1F.asm
@@ -17,7 +17,7 @@ GentlemanScript_0x188bd7: ; 0x188bd7
GymGuyScript_0x188bda: ; 0x188bda
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x188be8
2writetext UnknownText_0x188c26
closetext
diff --git a/maps/Route12SuperRodHouse.asm b/maps/Route12SuperRodHouse.asm
index 063aece9a..33df4505a 100644
--- a/maps/Route12SuperRodHouse.asm
+++ b/maps/Route12SuperRodHouse.asm
@@ -9,7 +9,7 @@ Route12SuperRodHouse_MapScriptHeader: ; 0x7f482
FishingGuruScript_0x7f484: ; 0x7f484
faceplayer
loadfont
- checkbit1 $0019
+ checkbit1 EVENT_GOT_SUPER_ROD
iftrue UnknownScript_0x7f4a0
2writetext UnknownText_0x7f4af
yesorno
@@ -18,7 +18,7 @@ FishingGuruScript_0x7f484: ; 0x7f484
keeptextopen
verbosegiveitem SUPER_ROD, 1
iffalse UnknownScript_0x7f4aa
- setbit1 $0019
+ setbit1 EVENT_GOT_SUPER_ROD
UnknownScript_0x7f4a0: ; 0x7f4a0
2writetext UnknownText_0x7f57c
closetext
diff --git a/maps/Route25.asm b/maps/Route25.asm
index 4b4b87435..9aa6a9a6e 100644
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -280,13 +280,13 @@ CooltrainerMScript_0x19efac: ; 0x19efac
loadfont
checkbit1 $0558
iftrue UnknownScript_0x19efda
- checkbit1 $00d8
+ checkbit1 EVENT_CLEARED_NUGGET_BRIDGE
iftrue UnknownScript_0x19efc7
2writetext UnknownText_0x19f43b
keeptextopen
verbosegiveitem NUGGET, 1
iffalse UnknownScript_0x19efde
- setbit1 $00d8
+ setbit1 EVENT_CLEARED_NUGGET_BRIDGE
UnknownScript_0x19efc7: ; 0x19efc7
2writetext UnknownText_0x19f49d
closetext
diff --git a/maps/Route26.asm b/maps/Route26.asm
index d6507166c..29df4ac92 100644
--- a/maps/Route26.asm
+++ b/maps/Route26.asm
@@ -91,7 +91,7 @@ UnknownScript_0x1a4d79: ; 0x1a4d79
if_equal $1, UnknownScript_0x1a4d96
if_equal $0, UnknownScript_0x1a4d9c
UnknownScript_0x1a4d90: ; 0x1a4d90
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1a4db6
UnknownScript_0x1a4d96: ; 0x1a4d96
checkbit1 $0044
@@ -242,7 +242,7 @@ UnknownScript_0x1a4e35: ; 0x1a4e35
if_equal $1, UnknownScript_0x1a4e52
if_equal $0, UnknownScript_0x1a4e58
UnknownScript_0x1a4e4c: ; 0x1a4e4c
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1a4e72
UnknownScript_0x1a4e52: ; 0x1a4e52
checkbit1 $0044
diff --git a/maps/Route27.asm b/maps/Route27.asm
index a90d87176..5f5de922b 100644
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -132,7 +132,7 @@ UnknownScript_0x1a08ff: ; 0x1a08ff
if_equal $1, UnknownScript_0x1a091c
if_equal $0, UnknownScript_0x1a0922
UnknownScript_0x1a0916: ; 0x1a0916
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1a093c
UnknownScript_0x1a091c: ; 0x1a091c
checkbit1 $0044
@@ -334,7 +334,7 @@ UnknownScript_0x1a09e9: ; 0x1a09e9
if_equal $1, UnknownScript_0x1a0a06
if_equal $0, UnknownScript_0x1a0a0c
UnknownScript_0x1a0a00: ; 0x1a0a00
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1a0a26
UnknownScript_0x1a0a06: ; 0x1a0a06
checkbit1 $0044
diff --git a/maps/Route27SandstormHouse.asm b/maps/Route27SandstormHouse.asm
index 2a2072d32..2de720eac 100644
--- a/maps/Route27SandstormHouse.asm
+++ b/maps/Route27SandstormHouse.asm
@@ -9,7 +9,7 @@ Route27SandstormHouse_MapScriptHeader: ; 0x7b392
GrannyScript_0x7b394: ; 0x7b394
faceplayer
loadfont
- checkbit1 $0075
+ checkbit1 EVENT_GOT_TM37_SANDSTORM
iftrue UnknownScript_0x7b3b7
special $0059
2writetext UnknownText_0x7b3c6
@@ -23,7 +23,7 @@ UnknownScript_0x7b3aa: ; 0x7b3aa
keeptextopen
verbosegiveitem TM_37, 1
iffalse UnknownScript_0x7b3bb
- setbit1 $0075
+ setbit1 EVENT_GOT_TM37_SANDSTORM
UnknownScript_0x7b3b7: ; 0x7b3b7
2writetext UnknownText_0x7b48f
closetext
diff --git a/maps/Route28FamousSpeechHouse.asm b/maps/Route28FamousSpeechHouse.asm
index fe897806b..3dc744a33 100644
--- a/maps/Route28FamousSpeechHouse.asm
+++ b/maps/Route28FamousSpeechHouse.asm
@@ -16,13 +16,13 @@ UnknownScript_0x1ae657: ; 0x1ae657
CooltrainerFScript_0x1ae658: ; 0x1ae658
faceplayer
loadfont
- checkbit1 $0074
+ checkbit1 EVENT_GOT_TM47_STEEL_WING
iftrue UnknownScript_0x1ae66f
2writetext UnknownText_0x1ae682
keeptextopen
verbosegiveitem TM_47, 1
iffalse UnknownScript_0x1ae66d
- setbit1 $0074
+ setbit1 EVENT_GOT_TM47_STEEL_WING
UnknownScript_0x1ae66d: ; 0x1ae66d
loadmovesprites
end
diff --git a/maps/Route29.asm b/maps/Route29.asm
index 14ee63449..a6f5e2e92 100644
--- a/maps/Route29.asm
+++ b/maps/Route29.asm
@@ -42,7 +42,7 @@ UnknownScript_0x1a0f6d: ; 0x1a0f6d
showemote $0, $2, 15
applymovement $2, MovementData_0x1a108d
spriteface $0, $2
- setbit1 $0041
+ setbit1 EVENT_DUDE_TALKED_TO_YOU
loadfont
2writetext UnknownText_0x1a10df
yesorno
@@ -59,7 +59,7 @@ UnknownScript_0x1a0f6d: ; 0x1a0f6d
closetext
loadmovesprites
dotrigger $0
- setbit1 $0042
+ setbit1 EVENT_LEARNED_TO_CATCH_POKEMON
end
; 0x1a0fa3
@@ -68,7 +68,7 @@ UnknownScript_0x1a0fa3: ; 0x1a0fa3
showemote $0, $2, 15
applymovement $2, MovementData_0x1a1094
spriteface $0, $2
- setbit1 $0041
+ setbit1 EVENT_DUDE_TALKED_TO_YOU
loadfont
2writetext UnknownText_0x1a10df
yesorno
@@ -85,7 +85,7 @@ UnknownScript_0x1a0fa3: ; 0x1a0fa3
closetext
loadmovesprites
dotrigger $0
- setbit1 $0042
+ setbit1 EVENT_LEARNED_TO_CATCH_POKEMON
end
; 0x1a0fd9
@@ -112,9 +112,9 @@ CooltrainerMScript_0x1a0ff1: ; 0x1a0ff1
loadfont
checkcode $10
if_equal $0, UnknownScript_0x1a101c
- checkbit1 $0042
+ checkbit1 EVENT_LEARNED_TO_CATCH_POKEMON
iftrue UnknownScript_0x1a101c
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iffalse UnknownScript_0x1a101c
2writetext UnknownText_0x1a11e3
yesorno
@@ -126,7 +126,7 @@ CooltrainerMScript_0x1a0ff1: ; 0x1a0ff1
2writetext UnknownText_0x1a114d
closetext
loadmovesprites
- setbit1 $0042
+ setbit1 EVENT_LEARNED_TO_CATCH_POKEMON
end
; 0x1a101c
@@ -180,21 +180,21 @@ UnknownScript_0x1a1043: ; 0x1a1043
TeacherScript_0x1a1049: ; 0x1a1049
faceplayer
loadfont
- checkbit1 $0065
+ checkbit1 EVENT_GOT_PINK_BOW_FROM_TUSCANY
iftrue UnknownScript_0x1a1077
checkcode $b
if_not_equal TUESDAY, UnknownScript_0x1a107d
- checkbit1 $0064
+ checkbit1 EVENT_MET_TUSCANY_OF_TUESDAY
iftrue UnknownScript_0x1a1064
2writetext UnknownText_0x1a13b2
keeptextopen
- setbit1 $0064
+ setbit1 EVENT_MET_TUSCANY_OF_TUESDAY
UnknownScript_0x1a1064: ; 0x1a1064
2writetext UnknownText_0x1a142f
keeptextopen
verbosegiveitem PINK_BOW, 1
iffalse UnknownScript_0x1a107b
- setbit1 $0065
+ setbit1 EVENT_GOT_PINK_BOW_FROM_TUSCANY
2writetext UnknownText_0x1a146f
closetext
loadmovesprites
diff --git a/maps/Route30.asm b/maps/Route30.asm
index 58eb0d93f..ddf2dffd4 100644
--- a/maps/Route30.asm
+++ b/maps/Route30.asm
@@ -88,7 +88,7 @@ UnknownScript_0x1a16ff: ; 0x1a16ff
checkbit1 $0044
iftrue UnknownScript_0x1a174b
UnknownScript_0x1a1705: ; 0x1a1705
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1a173e
UnknownScript_0x1a170b: ; 0x1a170b
checkbit2 $0047
@@ -137,7 +137,7 @@ UnknownScript_0x1a174b: ; 0x1a174b
startbattle
returnafterbattle
clearbit2 $006b
- checkbit1 $0338
+ checkbit1 EVENT_JOEY_HP_UP
iftrue UnknownScript_0x1a176f
checkbit1 $0266
iftrue UnknownScript_0x1a176e
@@ -158,7 +158,7 @@ UnknownScript_0x1a176f: ; 0x1a176f
closetext
verbosegiveitem HP_UP, 1
iffalse UnknownScript_0x1a179f
- clearbit1 $0338
+ clearbit1 EVENT_JOEY_HP_UP
setbit1 $0266
2jump UnknownScript_0x1a178f
; 0x1a1783
@@ -199,7 +199,7 @@ UnknownScript_0x1a179b: ; 0x1a179b
; 0x1a179f
UnknownScript_0x1a179f: ; 0x1a179f
- setbit1 $0338
+ setbit1 EVENT_JOEY_HP_UP
jumpstd $0021
end
; 0x1a17a6
@@ -270,7 +270,7 @@ Bug_catcherDonScript: ; 0x1a17ca
YoungsterScript_0x1a17d2: ; 0x1a17d2
faceplayer
loadfont
- checkbit1 $001f
+ checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM
iftrue UnknownScript_0x1a17e0
2writetext UnknownText_0x1a1a6a
closetext
diff --git a/maps/Route30BerrySpeechHouse.asm b/maps/Route30BerrySpeechHouse.asm
index 0c9c59b5e..52437a0c9 100644
--- a/maps/Route30BerrySpeechHouse.asm
+++ b/maps/Route30BerrySpeechHouse.asm
@@ -9,13 +9,13 @@ Route30BerrySpeechHouse_MapScriptHeader: ; 0x196d62
PokefanMScript_0x196d64: ; 0x196d64
faceplayer
loadfont
- checkbit1 $0027
+ checkbit1 EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
iftrue UnknownScript_0x196d79
2writetext UnknownText_0x196d82
keeptextopen
verbosegiveitem BERRY, 1
iffalse UnknownScript_0x196d7d
- setbit1 $0027
+ setbit1 EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
UnknownScript_0x196d79: ; 0x196d79
2writetext UnknownText_0x196dec
closetext
diff --git a/maps/Route31.asm b/maps/Route31.asm
index 34f03fc6d..0948f2464 100644
--- a/maps/Route31.asm
+++ b/maps/Route31.asm
@@ -11,7 +11,7 @@ Route31_MapScriptHeader: ; 0x1a5437
; 0x1a543c
UnknownScript_0x1a543c: ; 0x1a543c
- checkbit1 $0040
+ checkbit1 EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
iffalse UnknownScript_0x1a5443
return
; 0x1a5443
@@ -84,7 +84,7 @@ UnknownScript_0x1a54b2: ; 0x1a54b2
checkbit1 $0044
iftrue UnknownScript_0x1a54fe
UnknownScript_0x1a54b8: ; 0x1a54b8
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1a54f1
UnknownScript_0x1a54be: ; 0x1a54be
checkbit2 $0049
@@ -138,13 +138,13 @@ UnknownScript_0x1a54fe: ; 0x1a54fe
UnknownScript_0x1a5507: ; 0x1a5507
2call UnknownScript_0x1a5568
- checkbit1 $032b
+ checkbit1 EVENT_WADE_HAS_BERRY
iftrue UnknownScript_0x1a5522
- checkbit1 $032c
+ checkbit1 EVENT_WADE_HAS_PSNCUREBERRY
iftrue UnknownScript_0x1a552b
- checkbit1 $032d
+ checkbit1 EVENT_WADE_HAS_PRZCUREBERRY
iftrue UnknownScript_0x1a5534
- checkbit1 $032e
+ checkbit1 EVENT_WADE_HAS_BITTER_BERRY
iftrue UnknownScript_0x1a553d
UnknownScript_0x1a5522: ; 0x1a5522
verbosegiveitem BERRY, 1
@@ -224,9 +224,9 @@ UnknownScript_0x1a556c: ; 0x1a556c
FisherScript_0x1a5570: ; 0x1a5570
faceplayer
loadfont
- checkbit1 $0053
+ checkbit1 EVENT_GOT_TM50_NIGHTMARE
iftrue UnknownScript_0x1a55af
- checkbit1 $0050
+ checkbit1 EVENT_GOT_KENYA
iftrue UnknownScript_0x1a5584
2writetext UnknownText_0x1a56d9
closetext
@@ -246,10 +246,10 @@ UnknownScript_0x1a5584: ; 0x1a5584
keeptextopen
2writetext UnknownText_0x1a57ba
keeptextopen
- setbit1 $0051
+ setbit1 EVENT_GAVE_KENYA
verbosegiveitem TM_50, 1
iffalse UnknownScript_0x1a55b3
- setbit1 $0053
+ setbit1 EVENT_GOT_TM50_NIGHTMARE
UnknownScript_0x1a55af: ; 0x1a55af
2writetext UnknownText_0x1a5896
closetext
diff --git a/maps/Route32.asm b/maps/Route32.asm
index 2651777e9..8a16abafe 100644
--- a/maps/Route32.asm
+++ b/maps/Route32.asm
@@ -43,11 +43,11 @@ CooltrainerMScript_0x19046f: ; 0x19046f
faceplayer
UnknownScript_0x190470: ; 0x190470
loadfont
- checkbit1 $005d
+ checkbit1 EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
iftrue UnknownScript_0x1904a5
checkbit2 $001b
iffalse UnknownScript_0x19049f
- checkbit1 $002d
+ checkbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
iftrue UnknownScript_0x19048f
2writetext UnknownText_0x1907ab
closetext
@@ -67,7 +67,7 @@ UnknownScript_0x19048f: ; 0x19048f
keeptextopen
verbosegiveitem MIRACLE_SEED, 1
iffalse UnknownScript_0x1904a9
- setbit1 $005d
+ setbit1 EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
2jump UnknownScript_0x1904a5
; 0x19049f
@@ -106,13 +106,13 @@ UnknownScript_0x1904ab: ; 0x1904ab
FisherScript_0x1904ce: ; 0x1904ce
faceplayer
loadfont
- checkbit1 $004e
+ checkbit1 EVENT_GOT_TM05_ROAR
iftrue UnknownScript_0x1904e3
2writetext UnknownText_0x191133
keeptextopen
verbosegiveitem TM_05, 1
iffalse UnknownScript_0x1904e7
- setbit1 $004e
+ setbit1 EVENT_GOT_TM05_ROAR
UnknownScript_0x1904e3: ; 0x1904e3
2writetext UnknownText_0x19118c
closetext
@@ -266,7 +266,7 @@ UnknownScript_0x19057d: ; 0x19057d
if_equal $1, UnknownScript_0x1905ae
if_equal $0, UnknownScript_0x1905b4
UnknownScript_0x19059c: ; 0x19059c
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1905e8
UnknownScript_0x1905a2: ; 0x1905a2
checkbit1 $0044
@@ -453,10 +453,10 @@ UnknownScript_0x19068c: ; 0x19068c
checkbit1 $0044
iftrue UnknownScript_0x1906d8
UnknownScript_0x190692: ; 0x190692
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1906cb
UnknownScript_0x190698: ; 0x190698
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x1906be
UnknownScript_0x19069e: ; 0x19069e
checkbit2 $0048
@@ -630,21 +630,21 @@ Bird_keeperPeterScript: ; 0x190731
LassScript_0x190739: ; 0x190739
faceplayer
loadfont
- checkbit1 $0063
+ checkbit1 EVENT_GOT_POISON_BARB_FROM_FRIEDA
iftrue UnknownScript_0x190767
checkcode $b
if_not_equal FRIDAY, UnknownScript_0x19076d
- checkbit1 $0062
+ checkbit1 EVENT_MET_FRIEDA_OF_FRIDAY
iftrue UnknownScript_0x190754
2writetext UnknownText_0x1911c1
keeptextopen
- setbit1 $0062
+ setbit1 EVENT_MET_FRIEDA_OF_FRIDAY
UnknownScript_0x190754: ; 0x190754
2writetext UnknownText_0x191204
keeptextopen
verbosegiveitem POISON_BARB, 1
iffalse UnknownScript_0x19076b
- setbit1 $0063
+ setbit1 EVENT_GOT_POISON_BARB_FROM_FRIEDA
2writetext UnknownText_0x191222
closetext
loadmovesprites
diff --git a/maps/Route32PokeCenter1F.asm b/maps/Route32PokeCenter1F.asm
index 59adccc64..472b65c34 100644
--- a/maps/Route32PokeCenter1F.asm
+++ b/maps/Route32PokeCenter1F.asm
@@ -13,7 +13,7 @@ NurseScript_0x69b52: ; 0x69b52
FishingGuruScript_0x69b55: ; 0x69b55
faceplayer
loadfont
- checkbit1 $0017
+ checkbit1 EVENT_GOT_OLD_ROD
iftrue UnknownScript_0x69b7a
2writetext UnknownText_0x69b83
yesorno
@@ -24,7 +24,7 @@ FishingGuruScript_0x69b55: ; 0x69b55
2writetext UnknownText_0x69c1b
closetext
loadmovesprites
- setbit1 $0017
+ setbit1 EVENT_GOT_OLD_ROD
end
; 0x69b74
diff --git a/maps/Route33.asm b/maps/Route33.asm
index cd81e5d19..fb3bd84bf 100644
--- a/maps/Route33.asm
+++ b/maps/Route33.asm
@@ -70,13 +70,13 @@ UnknownScript_0x1ac051: ; 0x1ac051
if_equal $1, UnknownScript_0x1ac082
if_equal $0, UnknownScript_0x1ac088
UnknownScript_0x1ac070: ; 0x1ac070
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1ac0bc
UnknownScript_0x1ac076: ; 0x1ac076
checkbit1 $0044
iftrue UnknownScript_0x1ac0af
UnknownScript_0x1ac07c: ; 0x1ac07c
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1ac0a2
UnknownScript_0x1ac082: ; 0x1ac082
checkbit2 $0047
diff --git a/maps/Route34.asm b/maps/Route34.asm
index 4eee05525..8bdd35677 100644
--- a/maps/Route34.asm
+++ b/maps/Route34.asm
@@ -146,7 +146,7 @@ UnknownScript_0x780bd: ; 0x780bd
if_equal $1, UnknownScript_0x780ee
if_equal $0, UnknownScript_0x780f4
UnknownScript_0x780dc: ; 0x780dc
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x78128
UnknownScript_0x780e2: ; 0x780e2
checkbit1 $0044
@@ -303,13 +303,13 @@ UnknownScript_0x7819f: ; 0x7819f
if_equal $1, UnknownScript_0x781d0
if_equal $0, UnknownScript_0x781d6
UnknownScript_0x781be: ; 0x781be
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x7820a
UnknownScript_0x781c4: ; 0x781c4
checkbit1 $0044
iftrue UnknownScript_0x781fd
UnknownScript_0x781ca: ; 0x781ca
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x781f0
UnknownScript_0x781d0: ; 0x781d0
checkbit2 $0049
@@ -560,7 +560,7 @@ TrainerCooltrainerfIrene: ; 0x782b8
CooltrainerfIreneScript: ; 0x782c4
talkaftercancel
loadfont
- checkbit1 $0070
+ checkbit1 EVENT_GOT_SOFT_SAND_FROM_KATE
iftrue UnknownScript_0x782d2
2writetext UnknownText_0x7877f
closetext
@@ -598,7 +598,7 @@ TrainerCooltrainerfJenn: ; 0x782d8
CooltrainerfJennScript: ; 0x782e4
talkaftercancel
loadfont
- checkbit1 $0070
+ checkbit1 EVENT_GOT_SOFT_SAND_FROM_KATE
iftrue UnknownScript_0x782f2
2writetext UnknownText_0x78836
closetext
@@ -636,13 +636,13 @@ TrainerCooltrainerfKate: ; 0x782f8
CooltrainerfKateScript: ; 0x78304
talkaftercancel
loadfont
- checkbit1 $0070
+ checkbit1 EVENT_GOT_SOFT_SAND_FROM_KATE
iftrue UnknownScript_0x78319
2writetext UnknownText_0x788e2
keeptextopen
verbosegiveitem SOFT_SAND, 1
iffalse UnknownScript_0x7831d
- setbit1 $0070
+ setbit1 EVENT_GOT_SOFT_SAND_FROM_KATE
UnknownScript_0x78319: ; 0x78319
2writetext UnknownText_0x7892b
closetext
diff --git a/maps/Route34IlexForestGate.asm b/maps/Route34IlexForestGate.asm
index 60da81b17..dc9a16e59 100644
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -48,13 +48,13 @@ TeacherScript_0x62d63: ; 0x62d63
loadfont
checkbit1 $00c0
iftrue UnknownScript_0x62d84
- checkbit1 $007a
+ checkbit1 EVENT_GOT_TM12_SWEET_SCENT
iftrue UnknownScript_0x62d7e
2writetext UnknownText_0x62d9d
keeptextopen
verbosegiveitem TM_12, 1
iffalse UnknownScript_0x62d82
- setbit1 $007a
+ setbit1 EVENT_GOT_TM12_SWEET_SCENT
UnknownScript_0x62d7e: ; 0x62d7e
2writetext UnknownText_0x62df6
closetext
diff --git a/maps/Route35.asm b/maps/Route35.asm
index 74f8d8741..713d2ecb5 100644
--- a/maps/Route35.asm
+++ b/maps/Route35.asm
@@ -292,7 +292,7 @@ UnknownScript_0x19c9bb: ; 0x19c9bb
if_equal $1, UnknownScript_0x19c9ec
if_equal $0, UnknownScript_0x19c9f2
UnknownScript_0x19c9da: ; 0x19c9da
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x19ca26
UnknownScript_0x19c9e0: ; 0x19c9e0
checkbit1 $0044
diff --git a/maps/Route35Goldenrodgate.asm b/maps/Route35Goldenrodgate.asm
index b67f859a5..0fbd6d2af 100644
--- a/maps/Route35Goldenrodgate.asm
+++ b/maps/Route35Goldenrodgate.asm
@@ -9,11 +9,11 @@ Route35Goldenrodgate_MapScriptHeader: ; 0x69d35
OfficerScript_0x69d37: ; 0x69d37
faceplayer
loadfont
- checkbit1 $0052
+ checkbit1 EVENT_GOT_HP_UP_FROM_RANDY
iftrue UnknownScript_0x69d92
- checkbit1 $0051
+ checkbit1 EVENT_GAVE_KENYA
iftrue UnknownScript_0x69d85
- checkbit1 $0050
+ checkbit1 EVENT_GOT_KENYA
iftrue UnknownScript_0x69d73
2writetext UnknownText_0x69ddd
yesorno
@@ -28,7 +28,7 @@ OfficerScript_0x69d37: ; 0x69d37
waitbutton
givepoke SPEAROW, 10, 0, 1, GiftSpearowName, GiftSpearowOTName
givepokeitem GiftSpearowMail
- setbit1 $0050
+ setbit1 EVENT_GOT_KENYA
UnknownScript_0x69d73: ; 0x69d73
2writetext UnknownText_0x69ed6
closetext
@@ -55,7 +55,7 @@ UnknownScript_0x69d85: ; 0x69d85
keeptextopen
verbosegiveitem HP_UP, 1
iffalse UnknownScript_0x69d96
- setbit1 $0052
+ setbit1 EVENT_GOT_HP_UP_FROM_RANDY
UnknownScript_0x69d92: ; 0x69d92
2writetext UnknownText_0x69fd9
closetext
@@ -77,7 +77,7 @@ GiftSpearowOTName: ; 0x69dbf
PokefanFScript_0x69dc6: ; 0x69dc6
faceplayer
loadfont
- checkbit1 $002a
+ checkbit1 EVENT_FOUGHT_SUDOWOODO
iftrue UnknownScript_0x69dd4
2writetext UnknownText_0x6a00a
closetext
diff --git a/maps/Route36.asm b/maps/Route36.asm
index a7525ea81..032135784 100644
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -44,7 +44,7 @@ UnknownScript_0x19401b: ; 0x19401b
spriteface $0, $0
pause 10
dotrigger $0
- clearbit1 $07ae
+ clearbit1 EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $1
end
; 0x19403c
@@ -81,7 +81,7 @@ WateredWeirdTreeScript: ; 0x194053
loadmovesprites
loadpokedata SUDOWOODO, 20
startbattle
- setbit1 $002a
+ setbit1 EVENT_FOUGHT_SUDOWOODO
if_equal $2, UnknownScript_0x19407b
disappear $4
variablesprite $4, $26
@@ -137,9 +137,9 @@ UnknownScript_0x1940b3: ; 0x1940b3
FisherScript_0x1940b9: ; 0x1940b9
faceplayer
loadfont
- checkbit1 $004b
+ checkbit1 EVENT_GOT_TM08_ROCK_SMASH
iftrue UnknownScript_0x1940da
- checkbit1 $002a
+ checkbit1 EVENT_FOUGHT_SUDOWOODO
iftrue UnknownScript_0x1940cd
2writetext UnknownText_0x19446f
closetext
@@ -152,7 +152,7 @@ UnknownScript_0x1940cd: ; 0x1940cd
keeptextopen
verbosegiveitem TM_08, 1
iffalse UnknownScript_0x1940de
- setbit1 $004b
+ setbit1 EVENT_GOT_TM08_ROCK_SMASH
UnknownScript_0x1940da: ; 0x1940da
2writetext UnknownText_0x19452c
closetext
@@ -164,7 +164,7 @@ UnknownScript_0x1940de: ; 0x1940de
LassScript_0x1940e0: ; 0x1940e0
faceplayer
loadfont
- checkbit1 $002a
+ checkbit1 EVENT_FOUGHT_SUDOWOODO
iftrue UnknownScript_0x1940ee
2writetext UnknownText_0x194626
closetext
@@ -239,7 +239,7 @@ UnknownScript_0x194140: ; 0x194140
if_equal $1, UnknownScript_0x194171
if_equal $0, UnknownScript_0x194177
UnknownScript_0x19415f: ; 0x19415f
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1941ab
UnknownScript_0x194165: ; 0x194165
checkbit1 $0044
@@ -384,21 +384,21 @@ PsychicMarkScript: ; 0x1941f9
YoungsterScript_0x194201: ; 0x194201
faceplayer
loadfont
- checkbit1 $0067
+ checkbit1 EVENT_GOT_HARD_STONE_FROM_ARTHUR
iftrue UnknownScript_0x19422f
checkcode $b
if_not_equal THURSDAY, UnknownScript_0x194235
- checkbit1 $0066
+ checkbit1 EVENT_MET_ARTHUR_OF_THURSDAY
iftrue UnknownScript_0x19421c
2writetext UnknownText_0x194800
keeptextopen
- setbit1 $0066
+ setbit1 EVENT_MET_ARTHUR_OF_THURSDAY
UnknownScript_0x19421c: ; 0x19421c
2writetext UnknownText_0x19482d
keeptextopen
verbosegiveitem HARD_STONE, 1
iffalse UnknownScript_0x194233
- setbit1 $0067
+ setbit1 EVENT_GOT_HARD_STONE_FROM_ARTHUR
2writetext UnknownText_0x194847
closetext
loadmovesprites
diff --git a/maps/Route37.asm b/maps/Route37.asm
index f3ede525c..c70e38521 100644
--- a/maps/Route37.asm
+++ b/maps/Route37.asm
@@ -112,15 +112,15 @@ PsychicGregScript: ; 0x1a8db7
BugCatcherScript_0x1a8dbf: ; 0x1a8dbf
faceplayer
loadfont
- checkbit1 $0069
+ checkbit1 EVENT_GOT_MAGNET_FROM_SUNNY
iftrue UnknownScript_0x1a8dfa
checkcode $b
if_not_equal SUNDAY, UnknownScript_0x1a8e00
- checkbit1 $0068
+ checkbit1 EVENT_MET_SUNNY_OF_SUNDAY
iftrue UnknownScript_0x1a8dda
2writetext UnknownText_0x1a8fc8
keeptextopen
- setbit1 $0068
+ setbit1 EVENT_MET_SUNNY_OF_SUNDAY
UnknownScript_0x1a8dda: ; 0x1a8dda
checkbit2 $0063
iftrue UnknownScript_0x1a8de7
@@ -135,7 +135,7 @@ UnknownScript_0x1a8de7: ; 0x1a8de7
UnknownScript_0x1a8deb: ; 0x1a8deb
verbosegiveitem MAGNET, 1
iffalse UnknownScript_0x1a8dfe
- setbit1 $0069
+ setbit1 EVENT_GOT_MAGNET_FROM_SUNNY
2writetext UnknownText_0x1a905a
closetext
loadmovesprites
diff --git a/maps/Route38.asm b/maps/Route38.asm
index b22c26417..fd6a9ab6c 100644
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -124,13 +124,13 @@ UnknownScript_0x1a1d82: ; 0x1a1d82
if_equal $1, UnknownScript_0x1a1db3
if_equal $0, UnknownScript_0x1a1db9
UnknownScript_0x1a1da1: ; 0x1a1da1
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1a1ded
UnknownScript_0x1a1da7: ; 0x1a1da7
checkbit1 $0044
iftrue UnknownScript_0x1a1de0
UnknownScript_0x1a1dad: ; 0x1a1dad
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1a1dd3
UnknownScript_0x1a1db3: ; 0x1a1db3
checkbit2 $0045
@@ -295,13 +295,13 @@ UnknownScript_0x1a1e75: ; 0x1a1e75
if_equal $1, UnknownScript_0x1a1ea6
if_equal $0, UnknownScript_0x1a1eac
UnknownScript_0x1a1e94: ; 0x1a1e94
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1a1ee0
UnknownScript_0x1a1e9a: ; 0x1a1e9a
checkbit1 $0044
iftrue UnknownScript_0x1a1ed3
UnknownScript_0x1a1ea0: ; 0x1a1ea0
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x1a1ec6
UnknownScript_0x1a1ea6: ; 0x1a1ea6
checkbit2 $0049
diff --git a/maps/Route39.asm b/maps/Route39.asm
index e454282af..ad255cd9b 100644
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -45,11 +45,11 @@ PokefanmDerek1Script: ; 0x1a5b0b
iftrue UnknownScript_0x1a5b6e
checkpoke PIKACHU
iffalse UnknownScript_0x1a5b5c
- checkbit1 $028d
+ checkbit1 EVENT_SHOWED_DEREK_PIKACHU
iftrue UnknownScript_0x1a5b33
2writetext UnknownText_0x1a5cf8
keeptextopen
- setbit1 $028d
+ setbit1 EVENT_SHOWED_DEREK_PIKACHU
2call UnknownScript_0x1a5b62
2jump UnknownScript_0x1a5b36
; 0x1a5b33
diff --git a/maps/Route39Barn.asm b/maps/Route39Barn.asm
index af20dd5c3..e937bcc0b 100644
--- a/maps/Route39Barn.asm
+++ b/maps/Route39Barn.asm
@@ -9,7 +9,7 @@ Route39Barn_MapScriptHeader: ; 0x9cc74
TwinScript_0x9cc76: ; 0x9cc76
faceplayer
loadfont
- checkbit1 $003d
+ checkbit1 EVENT_HEALED_MOOMOO
iftrue UnknownScript_0x9cc87
2writetext UnknownText_0x9cd2e
closetext
@@ -29,7 +29,7 @@ UnknownScript_0x9cc87: ; 0x9cc87
TwinScript_0x9cc90: ; 0x9cc90
faceplayer
loadfont
- checkbit1 $003d
+ checkbit1 EVENT_HEALED_MOOMOO
iftrue UnknownScript_0x9cca1
2writetext UnknownText_0x9cd2e
closetext
@@ -48,14 +48,14 @@ UnknownScript_0x9cca1: ; 0x9cca1
TaurosScript_0x9ccaa: ; 0x9ccaa
loadfont
- checkbit1 $003d
+ checkbit1 EVENT_HEALED_MOOMOO
iftrue UnknownScript_0x9cd25
2writetext UnknownText_0x9cd70
writebyte MILTANK
special $005f
keeptextopen
2writetext UnknownText_0x9cd80
- checkbit1 $003f
+ checkbit1 EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO
iftrue UnknownScript_0x9ccc6
closetext
loadmovesprites
@@ -109,7 +109,7 @@ UnknownScript_0x9cd04: ; 0x9cd04
2writetext UnknownText_0x9ce1b
closetext
loadmovesprites
- setbit1 $003d
+ setbit1 EVENT_HEALED_MOOMOO
end
; 0x9cd19
diff --git a/maps/Route39Farmhouse.asm b/maps/Route39Farmhouse.asm
index 546f714c7..cef97e8da 100644
--- a/maps/Route39Farmhouse.asm
+++ b/maps/Route39Farmhouse.asm
@@ -9,12 +9,12 @@ Route39Farmhouse_MapScriptHeader: ; 0x9ceb2
PokefanMScript_0x9ceb4: ; 0x9ceb4
faceplayer
loadfont
- checkbit1 $003d
+ checkbit1 EVENT_HEALED_MOOMOO
iftrue UnknownScript_0x9cec5
2writetext UnknownText_0x9cf38
closetext
loadmovesprites
- setbit1 $003f
+ setbit1 EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO
end
; 0x9cec5
@@ -71,9 +71,9 @@ UnknownScript_0x9cf08: ; 0x9cf08
PokefanFScript_0x9cf0e: ; 0x9cf0e
faceplayer
loadfont
- checkbit1 $003e
+ checkbit1 EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM
iftrue UnknownScript_0x9cf2f
- checkbit1 $003d
+ checkbit1 EVENT_HEALED_MOOMOO
iftrue UnknownScript_0x9cf22
2writetext UnknownText_0x9d0f6
closetext
@@ -86,7 +86,7 @@ UnknownScript_0x9cf22: ; 0x9cf22
keeptextopen
verbosegiveitem TM_13, 1
iffalse UnknownScript_0x9cf33
- setbit1 $003e
+ setbit1 EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM
UnknownScript_0x9cf2f: ; 0x9cf2f
2writetext UnknownText_0x9d1c7
closetext
diff --git a/maps/Route40.asm b/maps/Route40.asm
index eb5b5e82f..6b03735d1 100644
--- a/maps/Route40.asm
+++ b/maps/Route40.asm
@@ -164,21 +164,21 @@ StandingYoungsterScript_0x1a61d6: ; 0x1a61d6
BuenaScript_0x1a61d9: ; 0x1a61d9
faceplayer
loadfont
- checkbit1 $006f
+ checkbit1 EVENT_GOT_SHARP_BEAK_FROM_MONICA
iftrue UnknownScript_0x1a6207
checkcode $b
if_not_equal MONDAY, UnknownScript_0x1a620d
- checkbit1 $006e
+ checkbit1 EVENT_MET_MONICA_OF_MONDAY
iftrue UnknownScript_0x1a61f4
2writetext UnknownText_0x1a6606
keeptextopen
- setbit1 $006e
+ setbit1 EVENT_MET_MONICA_OF_MONDAY
UnknownScript_0x1a61f4: ; 0x1a61f4
2writetext UnknownText_0x1a6636
keeptextopen
verbosegiveitem SHARP_BEAK, 1
iffalse UnknownScript_0x1a620b
- setbit1 $006f
+ setbit1 EVENT_GOT_SHARP_BEAK_FROM_MONICA
2writetext UnknownText_0x1a666c
closetext
loadmovesprites
diff --git a/maps/Route42.asm b/maps/Route42.asm
index 0e48522fe..186e01268 100644
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -26,7 +26,7 @@ UnknownScript_0x1a9218: ; 0x1a9218
disappear $a
pause 10
dotrigger $0
- clearbit1 $07b0
+ clearbit1 EVENT_SAW_SUICUNE_ON_ROUTE_36
domaptrigger GROUP_ROUTE_36, MAP_ROUTE_36, $1
end
; 0x1a9233
@@ -90,13 +90,13 @@ UnknownScript_0x1a927f: ; 0x1a927f
if_equal $1, UnknownScript_0x1a92a6
if_equal $0, UnknownScript_0x1a92ac
UnknownScript_0x1a929a: ; 0x1a929a
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1a92d3
UnknownScript_0x1a92a0: ; 0x1a92a0
checkbit1 $0044
iftrue UnknownScript_0x1a92c6
UnknownScript_0x1a92a6: ; 0x1a92a6
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x1a92b9
UnknownScript_0x1a92ac: ; 0x1a92ac
loadtrainer FISHER, TULLY1
diff --git a/maps/Route43.asm b/maps/Route43.asm
index 6ccc95809..749bed109 100644
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -11,7 +11,7 @@ Route43_MapScriptHeader: ; 0x19d04c
; 0x19d051
UnknownScript_0x19d051: ; 0x19d051
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x19d05c
domaptrigger GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE, $0
return
@@ -137,13 +137,13 @@ UnknownScript_0x19d0cf: ; 0x19d0cf
if_equal $1, UnknownScript_0x19d0f6
if_equal $0, UnknownScript_0x19d0fc
UnknownScript_0x19d0ea: ; 0x19d0ea
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x19d123
UnknownScript_0x19d0f0: ; 0x19d0f0
checkbit1 $0044
iftrue UnknownScript_0x19d116
UnknownScript_0x19d0f6: ; 0x19d0f6
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x19d109
UnknownScript_0x19d0fc: ; 0x19d0fc
loadtrainer POKEMANIAC, BRENT1
@@ -305,11 +305,11 @@ PicnickerTiffany3Script: ; 0x19d17c
iftrue UnknownScript_0x19d245
checkpoke CLEFAIRY
iffalse UnknownScript_0x19d233
- checkbit1 $0293
+ checkbit1 EVENT_SHOWED_TIFFANY_CLEFAIRY
iftrue UnknownScript_0x19d1aa
2writetext UnknownText_0x19d618
keeptextopen
- setbit1 $0293
+ setbit1 EVENT_SHOWED_TIFFANY_CLEFAIRY
2call UnknownScript_0x19d239
2jump UnknownScript_0x19d1ad
; 0x19d1aa
@@ -334,13 +334,13 @@ UnknownScript_0x19d1c1: ; 0x19d1c1
if_equal $1, UnknownScript_0x19d1e8
if_equal $0, UnknownScript_0x19d1ee
UnknownScript_0x19d1dc: ; 0x19d1dc
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x19d215
UnknownScript_0x19d1e2: ; 0x19d1e2
checkbit1 $0044
iftrue UnknownScript_0x19d208
UnknownScript_0x19d1e8: ; 0x19d1e8
- checkbit1 $0021
+ checkbit1 EVENT_CLEARED_RADIO_TOWER
iftrue UnknownScript_0x19d1fb
UnknownScript_0x19d1ee: ; 0x19d1ee
loadtrainer PICNICKER, TIFFANY3
diff --git a/maps/Route43Gate.asm b/maps/Route43Gate.asm
index d70a8fdf8..f6947da9e 100644
--- a/maps/Route43Gate.asm
+++ b/maps/Route43Gate.asm
@@ -24,7 +24,7 @@ UnknownScript_0x19abc9: ; 0x19abc9
; 0x19abca
UnknownScript_0x19abca: ; 0x19abca
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x19abd5
domaptrigger GROUP_ROUTE_43, MAP_ROUTE_43, $0
return
@@ -124,13 +124,13 @@ RocketScript_0x19ac82: ; 0x19ac82
OfficerScript_0x19ac85: ; 0x19ac85
faceplayer
loadfont
- checkbit1 $0059
+ checkbit1 EVENT_GOT_TM36_SLUDGE_BOMB
iftrue UnknownScript_0x19ac9c
2writetext UnknownText_0x19ad9b
keeptextopen
verbosegiveitem TM_36, 1
iffalse UnknownScript_0x19aca0
- setbit1 $0059
+ setbit1 EVENT_GOT_TM36_SLUDGE_BOMB
loadmovesprites
end
; 0x19ac9c
diff --git a/maps/Route43MahoganyGate.asm b/maps/Route43MahoganyGate.asm
index d7ae9dbb9..168e5a6d8 100644
--- a/maps/Route43MahoganyGate.asm
+++ b/maps/Route43MahoganyGate.asm
@@ -9,7 +9,7 @@ Route43MahoganyGate_MapScriptHeader: ; 0x19ab09
OfficerScript_0x19ab0b: ; 0x19ab0b
faceplayer
loadfont
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x19ab19
2writetext UnknownText_0x19ab1f
closetext
diff --git a/maps/Route44.asm b/maps/Route44.asm
index b4af61ca6..d94cccfbd 100644
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -62,7 +62,7 @@ UnknownScript_0x19d86a: ; 0x19d86a
if_equal $1, UnknownScript_0x19d887
if_equal $0, UnknownScript_0x19d88d
UnknownScript_0x19d881: ; 0x19d881
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x19d8a7
UnknownScript_0x19d887: ; 0x19d887
checkbit1 $0044
@@ -90,7 +90,7 @@ UnknownScript_0x19d8a7: ; 0x19d8a7
startbattle
returnafterbattle
clearbit2 $0079
- checkbit1 $0339
+ checkbit1 EVENT_VANCE_CARBOS
iftrue UnknownScript_0x19d8cb
checkbit1 $0267
iftrue UnknownScript_0x19d8ca
@@ -111,7 +111,7 @@ UnknownScript_0x19d8cb: ; 0x19d8cb
closetext
verbosegiveitem CARBOS, 1
iffalse UnknownScript_0x19d903
- clearbit1 $0339
+ clearbit1 EVENT_VANCE_CARBOS
setbit1 $0267
2jump UnknownScript_0x19d8eb
; 0x19d8df
@@ -162,7 +162,7 @@ UnknownScript_0x19d8ff: ; 0x19d8ff
; 0x19d903
UnknownScript_0x19d903: ; 0x19d903
- setbit1 $0339
+ setbit1 EVENT_VANCE_CARBOS
jumpstd $0021
end
; 0x19d90a
@@ -259,7 +259,7 @@ UnknownScript_0x19d96e: ; 0x19d96e
if_equal $1, UnknownScript_0x19d98b
if_equal $0, UnknownScript_0x19d991
UnknownScript_0x19d985: ; 0x19d985
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x19d9ab
UnknownScript_0x19d98b: ; 0x19d98b
checkbit1 $0044
@@ -292,11 +292,11 @@ UnknownScript_0x19d9ab: ; 0x19d9ab
UnknownScript_0x19d9b4: ; 0x19d9b4
2call UnknownScript_0x19d8fb
- checkbit1 $032f
+ checkbit1 EVENT_WILTON_HAS_ULTRA_BALL
iftrue UnknownScript_0x19d9c9
- checkbit1 $0330
+ checkbit1 EVENT_WILTON_HAS_GREAT_BALL
iftrue UnknownScript_0x19d9d2
- checkbit1 $0331
+ checkbit1 EVENT_WILTON_HAS_POKE_BALL
iftrue UnknownScript_0x19d9db
UnknownScript_0x19d9c9: ; 0x19d9c9
verbosegiveitem ULTRA_BALL, 1
diff --git a/maps/Route45.asm b/maps/Route45.asm
index a42c05485..f4468f997 100644
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -134,7 +134,7 @@ UnknownScript_0x19e13b: ; 0x19e13b
; 0x19e13f
UnknownScript_0x19e13f: ; 0x19e13f
- setbit1 $033a
+ setbit1 EVENT_PARRY_IRON
jumpstd $0021
end
; 0x19e146
@@ -258,7 +258,7 @@ UnknownScript_0x19e1b8: ; 0x19e1b8
if_equal $1, UnknownScript_0x19e1d5
if_equal $0, UnknownScript_0x19e1db
UnknownScript_0x19e1cf: ; 0x19e1c
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x19e1f5
UnknownScript_0x19e1d5: ; 0x19e1d5
checkbit1 $0044
@@ -286,7 +286,7 @@ UnknownScript_0x19e1f5: ; 0x19e1f5
startbattle
returnafterbattle
clearbit2 $007b
- checkbit1 $033a
+ checkbit1 EVENT_PARRY_IRON
iftrue UnknownScript_0x19e219
checkbit1 $0268
iftrue UnknownScript_0x19e218
@@ -307,7 +307,7 @@ UnknownScript_0x19e219: ; 0x19e219
closetext
verbosegiveitem IRON, 1
iffalse UnknownScript_0x19e13f
- clearbit1 $033a
+ clearbit1 EVENT_PARRY_IRON
setbit1 $0268
2jump UnknownScript_0x19e127
; 0x19e22d
diff --git a/maps/Route46.asm b/maps/Route46.asm
index d192a2275..2203faeba 100644
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -91,7 +91,7 @@ UnknownScript_0x1a96da: ; 0x1a96da
if_equal $1, UnknownScript_0x1a96f7
if_equal $0, UnknownScript_0x1a96fd
UnknownScript_0x1a96f1: ; 0x1a96f1
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x1a9717
UnknownScript_0x1a96f7: ; 0x1a96f7
checkbit1 $0044
@@ -119,7 +119,7 @@ UnknownScript_0x1a9717: ; 0x1a9717
startbattle
returnafterbattle
clearbit2 $007c
- checkbit1 $033b
+ checkbit1 EVENT_ERIN_CALCIUM
iftrue UnknownScript_0x1a973b
checkbit1 $0269
iftrue UnknownScript_0x1a973a
@@ -140,7 +140,7 @@ UnknownScript_0x1a973b: ; 0x1a973b
closetext
verbosegiveitem CALCIUM, 1
iffalse UnknownScript_0x1a976b
- clearbit1 $033b
+ clearbit1 EVENT_ERIN_CALCIUM
setbit1 $0269
2jump UnknownScript_0x1a975b
; 0x1a974f
@@ -181,7 +181,7 @@ UnknownScript_0x1a9767: ; 0x1a9767
; 0x1a976b
UnknownScript_0x1a976b: ; 0x1a976b
- setbit1 $033b
+ setbit1 EVENT_ERIN_CALCIUM
jumpstd $002b
end
; 0x1a9772
diff --git a/maps/Route5CleanseTagSpeechHouse.asm b/maps/Route5CleanseTagSpeechHouse.asm
index 535fe4d6e..918c411d7 100644
--- a/maps/Route5CleanseTagSpeechHouse.asm
+++ b/maps/Route5CleanseTagSpeechHouse.asm
@@ -9,13 +9,13 @@ Route5CleanseTagSpeechHouse_MapScriptHeader: ; 0x18b632
GrannyScript_0x18b634: ; 0x18b634
faceplayer
loadfont
- checkbit1 $00db
+ checkbit1 EVENT_GOT_CLEANSE_TAG
iftrue UnknownScript_0x18b649
2writetext UnknownText_0x18b655
keeptextopen
verbosegiveitem CLEANSE_TAG, 1
iffalse UnknownScript_0x18b64d
- setbit1 $00db
+ setbit1 EVENT_GOT_CLEANSE_TAG
UnknownScript_0x18b649: ; 0x18b649
2writetext UnknownText_0x18b6a7
closetext
diff --git a/maps/Route6SaffronGate.asm b/maps/Route6SaffronGate.asm
index 7ebb3b07e..380f9fbd8 100644
--- a/maps/Route6SaffronGate.asm
+++ b/maps/Route6SaffronGate.asm
@@ -16,7 +16,7 @@ UnknownScript_0x1926e9: ; 0x1926e9
OfficerScript_0x1926ea: ; 0x1926ea
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x1926f8
2writetext UnknownText_0x1926fe
closetext
diff --git a/maps/Route7SaffronGate.asm b/maps/Route7SaffronGate.asm
index 127cd2d32..0ded4568b 100644
--- a/maps/Route7SaffronGate.asm
+++ b/maps/Route7SaffronGate.asm
@@ -9,7 +9,7 @@ Route7SaffronGate_MapScriptHeader: ; 0x73516
OfficerScript_0x73518: ; 0x73518
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x73526
2writetext UnknownText_0x7352c
closetext
diff --git a/maps/RuinsofAlphAerodactylChamber.asm b/maps/RuinsofAlphAerodactylChamber.asm
index 514ea95e7..62739b4a9 100644
--- a/maps/RuinsofAlphAerodactylChamber.asm
+++ b/maps/RuinsofAlphAerodactylChamber.asm
@@ -15,7 +15,7 @@ RuinsofAlphAerodactylChamber_MapScriptHeader: ; 0x58da0
; 0x58dad
UnknownScript_0x58dad: ; 0x58dad
- checkbit1 $0329
+ checkbit1 EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
iftrue UnknownScript_0x58db4
end
; 0x58db4
@@ -30,7 +30,7 @@ UnknownScript_0x58db8: ; 0x58db8
; 0x58db9
UnknownScript_0x58db9: ; 0x58db9
- checkbit1 $0329
+ checkbit1 EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
iftrue UnknownScript_0x58dc3
changeblock $4, $0, $2e
UnknownScript_0x58dc3: ; 0x58dc3
@@ -106,7 +106,7 @@ MapRuinsofAlphAerodactylChamberSignpost4Script: ; 0x58e2a
; 0x58e35
MapRuinsofAlphAerodactylChamberSignpost5Script: ; 0x58e35
- checkbit1 $0329
+ checkbit1 EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
iftrue UnknownScript_0x58e46
loadfont
2writetext UnknownText_0x58e81
diff --git a/maps/RuinsofAlphHoOhChamber.asm b/maps/RuinsofAlphHoOhChamber.asm
index b860edc79..512f0a37c 100644
--- a/maps/RuinsofAlphHoOhChamber.asm
+++ b/maps/RuinsofAlphHoOhChamber.asm
@@ -16,7 +16,7 @@ RuinsofAlphHoOhChamber_MapScriptHeader: ; 0x58560
UnknownScript_0x5856d: ; 0x5856d
special $008d
- checkbit1 $0326
+ checkbit1 EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
iftrue UnknownScript_0x58577
end
; 0x58577
@@ -31,7 +31,7 @@ UnknownScript_0x5857b: ; 0x5857b
; 0x5857c
UnknownScript_0x5857c: ; 0x5857c
- checkbit1 $0326
+ checkbit1 EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
iftrue UnknownScript_0x58586
changeblock $4, $0, $2e
UnknownScript_0x58586: ; 0x58586
@@ -107,7 +107,7 @@ MapRuinsofAlphHoOhChamberSignpost4Script: ; 0x585ed
; 0x585f8
MapRuinsofAlphHoOhChamberSignpost5Script: ; 0x585f8
- checkbit1 $0326
+ checkbit1 EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
iftrue UnknownScript_0x58609
loadfont
2writetext UnknownText_0x58644
diff --git a/maps/RuinsofAlphInnerChamber.asm b/maps/RuinsofAlphInnerChamber.asm
index eae1298a5..3ef70d6bd 100644
--- a/maps/RuinsofAlphInnerChamber.asm
+++ b/maps/RuinsofAlphInnerChamber.asm
@@ -28,7 +28,7 @@ UnknownScript_0x58f6e: ; 0x58f6e
closetext
loadmovesprites
dotrigger $0
- setbit1 $002e
+ setbit1 EVENT_MADE_UNOWN_APPEAR_IN_RUINS
clearbit1 $078e
end
; 0x58f7d
diff --git a/maps/RuinsofAlphKabutoChamber.asm b/maps/RuinsofAlphKabutoChamber.asm
index bfe05a7a0..b96862cc3 100644
--- a/maps/RuinsofAlphKabutoChamber.asm
+++ b/maps/RuinsofAlphKabutoChamber.asm
@@ -15,7 +15,7 @@ RuinsofAlphKabutoChamber_MapScriptHeader: ; 0x5871e
; 0x5872b
UnknownScript_0x5872b: ; 0x5872b
- checkbit1 $0327
+ checkbit1 EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
iftrue UnknownScript_0x58732
end
; 0x58732
@@ -33,7 +33,7 @@ UnknownScript_0x58736: ; 0x58736
; 0x58737
UnknownScript_0x58737: ; 0x58737
- checkbit1 $0327
+ checkbit1 EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
iftrue UnknownScript_0x58741
changeblock $4, $0, $2e
UnknownScript_0x58741: ; 0x58741
@@ -101,7 +101,7 @@ ScientistScript_0x587a8: ; 0x587a8
loadfont
checkcode $e
if_equal 26, UnknownScript_0x587cf
- checkbit1 $0327
+ checkbit1 EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
iftrue UnknownScript_0x587c9
checkbit1 $02a1
iffalse UnknownScript_0x587c0
@@ -147,7 +147,7 @@ MapRuinsofAlphKabutoChamberSignpost4Script: ; 0x587db
; 0x587e6
MapRuinsofAlphKabutoChamberSignpost5Script: ; 0x587e6
- checkbit1 $0327
+ checkbit1 EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
iftrue UnknownScript_0x587f7
loadfont
2writetext UnknownText_0x58ad9
diff --git a/maps/RuinsofAlphOmanyteChamber.asm b/maps/RuinsofAlphOmanyteChamber.asm
index f66ceed62..a904b7118 100644
--- a/maps/RuinsofAlphOmanyteChamber.asm
+++ b/maps/RuinsofAlphOmanyteChamber.asm
@@ -16,7 +16,7 @@ RuinsofAlphOmanyteChamber_MapScriptHeader: ; 0x58bdc
UnknownScript_0x58be9: ; 0x58be9
special $0084
- checkbit1 $0328
+ checkbit1 EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
iftrue UnknownScript_0x58bf3
end
; 0x58bf3
@@ -31,7 +31,7 @@ UnknownScript_0x58bf7: ; 0x58bf7
; 0x58bf8
UnknownScript_0x58bf8: ; 0x58bf8
- checkbit1 $0328
+ checkbit1 EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
iftrue UnknownScript_0x58c02
changeblock $4, $0, $2e
UnknownScript_0x58c02: ; 0x58c02
@@ -107,7 +107,7 @@ MapRuinsofAlphOmanyteChamberSignpost4Script: ; 0x58c69
; 0x58c74
MapRuinsofAlphOmanyteChamberSignpost5Script: ; 0x58c74
- checkbit1 $0328
+ checkbit1 EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
iftrue UnknownScript_0x58c85
loadfont
2writetext UnknownText_0x58cc0
diff --git a/maps/RuinsofAlphOutside.asm b/maps/RuinsofAlphOutside.asm
index 088f0dda9..4658d2d61 100644
--- a/maps/RuinsofAlphOutside.asm
+++ b/maps/RuinsofAlphOutside.asm
@@ -25,7 +25,7 @@ UnknownScript_0x5800e: ; 0x5800e
UnknownScript_0x5800f: ; 0x5800f
checkbit2 $000c
iftrue UnknownScript_0x5802c
- checkbit1 $002e
+ checkbit1 EVENT_MADE_UNOWN_APPEAR_IN_RUINS
iftrue UnknownScript_0x5801e
2jump UnknownScript_0x5802c
; 0x5801e
diff --git a/maps/RuinsofAlphResearchCenter.asm b/maps/RuinsofAlphResearchCenter.asm
index b7dca96d7..0ab3ff03d 100644
--- a/maps/RuinsofAlphResearchCenter.asm
+++ b/maps/RuinsofAlphResearchCenter.asm
@@ -90,7 +90,7 @@ ScientistScript_0x591e5: ; 0x591e5
if_equal 26, UnknownScript_0x5920b
checkbit2 $000c
iftrue UnknownScript_0x59205
- checkbit1 $002e
+ checkbit1 EVENT_MADE_UNOWN_APPEAR_IN_RUINS
iftrue UnknownScript_0x591ff
2writetext UnknownText_0x593ed
closetext
@@ -125,7 +125,7 @@ ScientistScript_0x59214: ; 0x59214
loadfont
checkcode $e
if_equal 26, UnknownScript_0x5922e
- checkbit1 $002e
+ checkbit1 EVENT_MADE_UNOWN_APPEAR_IN_RUINS
iftrue UnknownScript_0x59228
2writetext UnknownText_0x5954f
closetext
diff --git a/maps/SafariZoneWardensHome.asm b/maps/SafariZoneWardensHome.asm
index b912a31da..aac403aa0 100644
--- a/maps/SafariZoneWardensHome.asm
+++ b/maps/SafariZoneWardensHome.asm
@@ -9,12 +9,12 @@ SafariZoneWardensHome_MapScriptHeader: ; 0x1965c4
LassScript_0x1965c6: ; 0x1965c6
faceplayer
loadfont
- checkbit1 $00d9
+ checkbit1 EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER
iftrue UnknownScript_0x1965d7
2writetext UnknownText_0x1965e6
closetext
loadmovesprites
- setbit1 $00d9
+ setbit1 EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER
end
; 0x1965d7
diff --git a/maps/SaffronCity.asm b/maps/SaffronCity.asm
index 265101997..5b045eff1 100644
--- a/maps/SaffronCity.asm
+++ b/maps/SaffronCity.asm
@@ -18,7 +18,7 @@ UnknownScript_0x199326: ; 0x199326
LassScript_0x19932a: ; 0x19932a
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x199338
2writetext UnknownText_0x19938d
closetext
@@ -36,7 +36,7 @@ UnknownScript_0x199338: ; 0x199338
PokefanMScript_0x19933e: ; 0x19933e
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x19934c
2writetext UnknownText_0x199460
closetext
@@ -62,7 +62,7 @@ CooltrainerFScript_0x199355: ; 0x199355
FisherScript_0x199358: ; 0x199358
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x199366
2writetext UnknownText_0x1995fc
closetext
diff --git a/maps/SaffronGym.asm b/maps/SaffronGym.asm
index f2ce9daa5..52499a2f7 100644
--- a/maps/SaffronGym.asm
+++ b/maps/SaffronGym.asm
@@ -18,11 +18,11 @@ SabrinaScript_0x189c2e: ; 0x189c2e
loadtrainer SABRINA, 1
startbattle
returnafterbattle
- setbit1 $04ca
- setbit1 $0590
- setbit1 $0591
- setbit1 $043b
- setbit1 $0444
+ setbit1 EVENT_BEAT_SABRINA
+ setbit1 EVENT_BEAT_MEDIUM_REBECCA
+ setbit1 EVENT_BEAT_MEDIUM_DORIS
+ setbit1 EVENT_BEAT_PSYCHIC_FRANKLIN
+ setbit1 EVENT_BEAT_PSYCHIC_JARED
loadfont
2writetext UnknownText_0x189e95
playsound $009c
@@ -160,7 +160,7 @@ PsychicJaredScript: ; 0x189cb3
SaffronGymGuyScript: ; 0x189cbb
faceplayer
loadfont
- checkbit1 $04ca
+ checkbit1 EVENT_BEAT_SABRINA
iftrue .SaffronGymGuyWinScript
2writetext SaffronGymGuyText
closetext
diff --git a/maps/SaffronPokeCenter1F.asm b/maps/SaffronPokeCenter1F.asm
index f2ac5defa..41b028d5b 100644
--- a/maps/SaffronPokeCenter1F.asm
+++ b/maps/SaffronPokeCenter1F.asm
@@ -23,7 +23,7 @@ UnknownScript_0x18a489: ; 0x18a489
FisherScript_0x18a48c: ; 0x18a48c
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x18a49a
2writetext UnknownText_0x18a5d3
closetext
diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm
index 3208e63b7..897f702d7 100644
--- a/maps/SaffronTrainStation.asm
+++ b/maps/SaffronTrainStation.asm
@@ -16,7 +16,7 @@ UnknownScript_0x18a81d: ; 0x18a81d
OfficerScript_0x18a81e: ; 0x18a81e
faceplayer
loadfont
- checkbit1 $00cd
+ checkbit1 EVENT_RESTORED_POWER_TO_KANTO
iftrue UnknownScript_0x18a82c
2writetext UnknownText_0x18a8a9
closetext
@@ -77,7 +77,7 @@ UnknownScript_0x18a862: ; 0x18a862
GymGuyScript_0x18a875: ; 0x18a875
faceplayer
loadfont
- checkbit1 $00c9
+ checkbit1 EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x18a883
2writetext UnknownText_0x18a9ca
closetext
diff --git a/maps/SeafoamGym.asm b/maps/SeafoamGym.asm
index 618707efb..cd0405e3b 100644
--- a/maps/SeafoamGym.asm
+++ b/maps/SeafoamGym.asm
@@ -50,12 +50,12 @@ UnknownScript_0x1ab52b: ; 0x1ab52b
SeafoamGymGuyScript: ; 0x1ab531
faceplayer
loadfont
- checkbit1 $00d5
+ checkbit1 EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE
iftrue .TalkedToSeafoamGymGuyScript
2writetext SeafoamGymGuyWinText
closetext
loadmovesprites
- setbit1 $00d5
+ setbit1 EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE
end
.TalkedToSeafoamGymGuyScript
diff --git a/maps/SilphCo1F.asm b/maps/SilphCo1F.asm
index 72c5e2f88..614b3eb8d 100644
--- a/maps/SilphCo1F.asm
+++ b/maps/SilphCo1F.asm
@@ -13,13 +13,13 @@ ReceptionistScript_0x18abe5: ; 0x18abe5
OfficerScript_0x18abe8: ; 0x18abe8
faceplayer
loadfont
- checkbit1 $00de
+ checkbit1 EVENT_GOT_UP_GRADE
iftrue UnknownScript_0x18abfd
2writetext UnknownText_0x18ac36
keeptextopen
verbosegiveitem UP_GRADE, 1
iffalse UnknownScript_0x18ac01
- setbit1 $00de
+ setbit1 EVENT_GOT_UP_GRADE
UnknownScript_0x18abfd: ; 0x18abfd
2writetext UnknownText_0x18aca8
closetext
diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm
index 0c3cda606..245bdbc29 100644
--- a/maps/SlowpokeWellB1F.asm
+++ b/maps/SlowpokeWellB1F.asm
@@ -81,7 +81,7 @@ GruntM1Script: ; 0x5a5f8
2writetext KurtLeaveSlowpokeWellText
closetext
loadmovesprites
- setbit1 $002b
+ setbit1 EVENT_CLEARED_SLOWPOKE_WELL
variablesprite $6, $4
domaptrigger GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN, $1
clearbit1 $06f3
diff --git a/maps/SlowpokeWellB2F.asm b/maps/SlowpokeWellB2F.asm
index 9c6bb4bbf..45b3201fe 100644
--- a/maps/SlowpokeWellB2F.asm
+++ b/maps/SlowpokeWellB2F.asm
@@ -9,13 +9,13 @@ SlowpokeWellB2F_MapScriptHeader: ; 0x5ad09
GymGuyScript_0x5ad0b: ; 0x5ad0b
faceplayer
loadfont
- checkbit1 $0073
+ checkbit1 EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL
iftrue UnknownScript_0x5ad22
2writetext UnknownText_0x5ad2a
keeptextopen
verbosegiveitem KINGS_ROCK, 1
iffalse UnknownScript_0x5ad20
- setbit1 $0073
+ setbit1 EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL
UnknownScript_0x5ad20: ; 0x5ad20
loadmovesprites
end
diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm
index df943fa56..0f935bb74 100644
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -63,7 +63,7 @@ UnknownScript_0x184947: ; 0x184947
SageLiScript: ; 0x1849a6
faceplayer
loadfont
- checkbit1 $0014
+ checkbit1 EVENT_GOT_HM05_FLASH
iftrue UnknownScript_0x1849d1
2writetext SageLiSeenText
closetext
@@ -76,8 +76,8 @@ SageLiScript: ; 0x1849a6
2writetext UnknownText_0x184cc2
keeptextopen
verbosegiveitem HM_05, 1
- setbit1 $0014
- setbit1 $0419
+ setbit1 EVENT_GOT_HM05_FLASH
+ setbit1 EVENT_BEAT_SAGE_LI
2writetext UnknownText_0x184d13
closetext
loadmovesprites
diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm
index 8039cd4d5..30b163509 100644
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -23,7 +23,7 @@ UnknownScript_0x6c65b: ; 0x6c65b
; 0x6c65e
SecurityCamera1a: ; 0x6c65e
- checkbit1 $02e4
+ checkbit1 EVENT_SECURITY_CAMERA_1
iftrue NoSecurityCamera
2call PlaySecurityCameraSounds
checkbit1 $06da
@@ -44,12 +44,12 @@ SecurityCamera1a: ; 0x6c65e
applymovement $2, SecurityCameraMovement1
2call TrainerCameraGrunt2
if_equal $1, NoSecurityCamera
- setbit1 $02e4
+ setbit1 EVENT_SECURITY_CAMERA_1
end
; 0x6c6a7
SecurityCamera1b: ; 0x6c6a7
- checkbit1 $02e4
+ checkbit1 EVENT_SECURITY_CAMERA_1
iftrue NoSecurityCamera
2call PlaySecurityCameraSounds
checkbit1 $06da
@@ -70,12 +70,12 @@ SecurityCamera1b: ; 0x6c6a7
applymovement $2, SecurityCameraMovement1
2call TrainerCameraGrunt2
if_equal $1, NoSecurityCamera
- setbit1 $02e4
+ setbit1 EVENT_SECURITY_CAMERA_1
end
; 0x6c6f0
SecurityCamera2a: ; 0x6c6f0
- checkbit1 $02e5
+ checkbit1 EVENT_SECURITY_CAMERA_2
iftrue NoSecurityCamera
2call PlaySecurityCameraSounds
checkbit1 $06da
@@ -97,12 +97,12 @@ SecurityCamera2a: ; 0x6c6f0
applymovement $2, SecurityCameraMovement3
2call TrainerCameraGrunt2
if_equal $1, NoSecurityCamera
- setbit1 $02e5
+ setbit1 EVENT_SECURITY_CAMERA_2
end
; 0x6c73c
SecurityCamera2b: ; 0x6c73c
- checkbit1 $02e5
+ checkbit1 EVENT_SECURITY_CAMERA_2
iftrue NoSecurityCamera
2call PlaySecurityCameraSounds
checkbit1 $06da
@@ -124,12 +124,12 @@ SecurityCamera2b: ; 0x6c73c
applymovement $2, SecurityCameraMovement5
2call TrainerCameraGrunt2
if_equal $1, NoSecurityCamera
- setbit1 $02e5
+ setbit1 EVENT_SECURITY_CAMERA_2
end
; 0x6c788
SecurityCamera3a: ; 0x6c788
- checkbit1 $02e6
+ checkbit1 EVENT_SECURITY_CAMERA_3
iftrue NoSecurityCamera
2call PlaySecurityCameraSounds
checkbit1 $06da
@@ -151,12 +151,12 @@ SecurityCamera3a: ; 0x6c788
applymovement $2, SecurityCameraMovement6
2call TrainerCameraGrunt2
if_equal $1, NoSecurityCamera
- setbit1 $02e6
+ setbit1 EVENT_SECURITY_CAMERA_3
end
; 0x6c7d4
SecurityCamera3b: ; 0x6c7d4
- checkbit1 $02e6
+ checkbit1 EVENT_SECURITY_CAMERA_3
iftrue NoSecurityCamera
2call PlaySecurityCameraSounds
checkbit1 $06da
@@ -178,12 +178,12 @@ SecurityCamera3b: ; 0x6c7d4
applymovement $2, SecurityCameraMovement7
2call TrainerCameraGrunt2
if_equal $1, NoSecurityCamera
- setbit1 $02e6
+ setbit1 EVENT_SECURITY_CAMERA_3
end
; 0x6c820
SecurityCamera4: ; 0x6c820
- checkbit1 $02e7
+ checkbit1 EVENT_SECURITY_CAMERA_4
iftrue NoSecurityCamera
2call PlaySecurityCameraSounds
checkbit1 $06da
@@ -205,12 +205,12 @@ SecurityCamera4: ; 0x6c820
applymovement $2, SecurityCameraMovement8
2call TrainerCameraGrunt2
if_equal $1, NoSecurityCamera
- setbit1 $02e7
+ setbit1 EVENT_SECURITY_CAMERA_4
end
; 0x6c86c
SecurityCamera5: ; 0x6c86c
- checkbit1 $02e8
+ checkbit1 EVENT_SECURITY_CAMERA_5
iftrue NoSecurityCamera
2call PlaySecurityCameraSounds
checkbit1 $06da
@@ -232,7 +232,7 @@ SecurityCamera5: ; 0x6c86c
applymovement $2, SecurityCameraMovement9
2call TrainerCameraGrunt2
if_equal $1, NoSecurityCamera
- setbit1 $02e8
+ setbit1 EVENT_SECURITY_CAMERA_5
end
; 0x6c8b8
@@ -284,179 +284,179 @@ PlaySecurityCameraSounds: ; 0x6c8e3
; 0x6c900
ExplodingTrap1: ; 0x6c900
- checkbit1 $02e9
+ checkbit1 EVENT_EXPLODING_TRAP_1
iftrue NoExplodingTrap
2call KoffingExplodingTrap
returnafterbattle
- setbit1 $02e9
+ setbit1 EVENT_EXPLODING_TRAP_1
end
ExplodingTrap2: ; 0x6c90e
- checkbit1 $02ea
+ checkbit1 EVENT_EXPLODING_TRAP_2
iftrue NoExplodingTrap
2call VoltorbExplodingTrap
returnafterbattle
- setbit1 $02ea
+ setbit1 EVENT_EXPLODING_TRAP_2
end
ExplodingTrap3: ; 0x6c91c
- checkbit1 $02eb
+ checkbit1 EVENT_EXPLODING_TRAP_3
iftrue NoExplodingTrap
2call GeodudeExplodingTrap
returnafterbattle
- setbit1 $02eb
+ setbit1 EVENT_EXPLODING_TRAP_3
end
ExplodingTrap4: ; 0x6c92a
- checkbit1 $02ec
+ checkbit1 EVENT_EXPLODING_TRAP_4
iftrue NoExplodingTrap
2call VoltorbExplodingTrap
returnafterbattle
- setbit1 $02ec
+ setbit1 EVENT_EXPLODING_TRAP_4
end
ExplodingTrap5: ; 0x6c938
- checkbit1 $02ed
+ checkbit1 EVENT_EXPLODING_TRAP_5
iftrue NoExplodingTrap
2call GeodudeExplodingTrap
returnafterbattle
- setbit1 $02ed
+ setbit1 EVENT_EXPLODING_TRAP_5
end
ExplodingTrap6: ; 0x6c946
- checkbit1 $02ee
+ checkbit1 EVENT_EXPLODING_TRAP_6
iftrue NoExplodingTrap
2call KoffingExplodingTrap
returnafterbattle
- setbit1 $02ee
+ setbit1 EVENT_EXPLODING_TRAP_6
end
ExplodingTrap7: ; 0x6c954
- checkbit1 $02ef
+ checkbit1 EVENT_EXPLODING_TRAP_7
iftrue NoExplodingTrap
2call VoltorbExplodingTrap
returnafterbattle
- setbit1 $02ef
+ setbit1 EVENT_EXPLODING_TRAP_7
end
ExplodingTrap8: ; 0x6c962
- checkbit1 $02f0
+ checkbit1 EVENT_EXPLODING_TRAP_8
iftrue NoExplodingTrap
2call KoffingExplodingTrap
returnafterbattle
- setbit1 $02f0
+ setbit1 EVENT_EXPLODING_TRAP_8
end
ExplodingTrap9: ; 0x6c970
- checkbit1 $02f1
+ checkbit1 EVENT_EXPLODING_TRAP_9
iftrue NoExplodingTrap
2call KoffingExplodingTrap
returnafterbattle
- setbit1 $02f1
+ setbit1 EVENT_EXPLODING_TRAP_9
end
ExplodingTrap10: ; 0x6c97e
- checkbit1 $02f2
+ checkbit1 EVENT_EXPLODING_TRAP_10
iftrue NoExplodingTrap
2call VoltorbExplodingTrap
returnafterbattle
- setbit1 $02f2
+ setbit1 EVENT_EXPLODING_TRAP_10
end
ExplodingTrap11: ; 0x6c98c
- checkbit1 $02f3
+ checkbit1 EVENT_EXPLODING_TRAP_11
iftrue NoExplodingTrap
2call GeodudeExplodingTrap
returnafterbattle
- setbit1 $02f3
+ setbit1 EVENT_EXPLODING_TRAP_11
end
ExplodingTrap12: ; 0x6c99a
- checkbit1 $02f4
+ checkbit1 EVENT_EXPLODING_TRAP_12
iftrue NoExplodingTrap
2call GeodudeExplodingTrap
returnafterbattle
- setbit1 $02f4
+ setbit1 EVENT_EXPLODING_TRAP_12
end
ExplodingTrap13: ; 0x6c9a8
- checkbit1 $02f5
+ checkbit1 EVENT_EXPLODING_TRAP_13
iftrue NoExplodingTrap
2call GeodudeExplodingTrap
returnafterbattle
- setbit1 $02f5
+ setbit1 EVENT_EXPLODING_TRAP_13
end
ExplodingTrap14: ; 0x6c9b6
- checkbit1 $02f6
+ checkbit1 EVENT_EXPLODING_TRAP_14
iftrue NoExplodingTrap
2call KoffingExplodingTrap
returnafterbattle
- setbit1 $02f6
+ setbit1 EVENT_EXPLODING_TRAP_14
end
ExplodingTrap15: ; 0x6c9c4
- checkbit1 $02f7
+ checkbit1 EVENT_EXPLODING_TRAP_15
iftrue NoExplodingTrap
2call VoltorbExplodingTrap
returnafterbattle
- setbit1 $02f7
+ setbit1 EVENT_EXPLODING_TRAP_15
end
ExplodingTrap16: ; 0x6c9d2
- checkbit1 $02f8
+ checkbit1 EVENT_EXPLODING_TRAP_16
iftrue NoExplodingTrap
2call KoffingExplodingTrap
returnafterbattle
- setbit1 $02f8
+ setbit1 EVENT_EXPLODING_TRAP_16
end
ExplodingTrap17: ; 0x6c9e0
- checkbit1 $02f9
+ checkbit1 EVENT_EXPLODING_TRAP_17
iftrue NoExplodingTrap
2call VoltorbExplodingTrap
returnafterbattle
- setbit1 $02f9
+ setbit1 EVENT_EXPLODING_TRAP_17
end
ExplodingTrap18: ; 0x6c9ee
- checkbit1 $02fa
+ checkbit1 EVENT_EXPLODING_TRAP_18
iftrue NoExplodingTrap
2call GeodudeExplodingTrap
returnafterbattle
- setbit1 $02fa
+ setbit1 EVENT_EXPLODING_TRAP_18
end
ExplodingTrap19: ; 0x6c9fc
- checkbit1 $02fb
+ checkbit1 EVENT_EXPLODING_TRAP_19
iftrue NoExplodingTrap
2call GeodudeExplodingTrap
returnafterbattle
- setbit1 $02fb
+ setbit1 EVENT_EXPLODING_TRAP_19
end
ExplodingTrap20: ; 0x6ca0a
- checkbit1 $02fc
+ checkbit1 EVENT_EXPLODING_TRAP_20
iftrue NoExplodingTrap
2call VoltorbExplodingTrap
returnafterbattle
- setbit1 $02fc
+ setbit1 EVENT_EXPLODING_TRAP_20
end
ExplodingTrap21: ; 0x6ca18
- checkbit1 $02fd
+ checkbit1 EVENT_EXPLODING_TRAP_21
iftrue NoExplodingTrap
2call KoffingExplodingTrap
returnafterbattle
- setbit1 $02fd
+ setbit1 EVENT_EXPLODING_TRAP_21
end
ExplodingTrap22: ; 0x6ca26
- checkbit1 $02fe
+ checkbit1 EVENT_EXPLODING_TRAP_22
iftrue NoExplodingTrap
2call VoltorbExplodingTrap
returnafterbattle
- setbit1 $02fe
+ setbit1 EVENT_EXPLODING_TRAP_22
end
VoltorbExplodingTrap: ; 0x6ca34
@@ -561,18 +561,18 @@ MapTeamRocketBaseB1FSignpost7Script: ; 0x6ca99
MapTeamRocketBaseB1FSignpost0Script: ; 0x6ca9c
loadfont
- checkbit1 $02e3
+ checkbit1 EVENT_TURNED_OFF_SECURITY_CAMERAS
iftrue UnknownScript_0x6cabe
2writetext UnknownText_0x6cdad
playsound $0021
closetext
loadmovesprites
- setbit1 $02e3
- setbit1 $02e4
- setbit1 $02e5
- setbit1 $02e6
- setbit1 $02e7
- setbit1 $02e8
+ setbit1 EVENT_TURNED_OFF_SECURITY_CAMERAS
+ setbit1 EVENT_SECURITY_CAMERA_1
+ setbit1 EVENT_SECURITY_CAMERA_2
+ setbit1 EVENT_SECURITY_CAMERA_3
+ setbit1 EVENT_SECURITY_CAMERA_4
+ setbit1 EVENT_SECURITY_CAMERA_5
end
; 0x6cabe
diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm
index c0ef3fa76..229dbddcc 100644
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -33,7 +33,7 @@ UnknownScript_0x6cf88: ; 0x6cf88
; 0x6cf89
UnknownScript_0x6cf89: ; 0x6cf89
- checkbit1 $0300
+ checkbit1 EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER
iftrue UnknownScript_0x6cf90
return
; 0x6cf90
@@ -349,7 +349,7 @@ UnknownScript_0x6d184: ; 0x6d184
2writetext UnknownText_0x6d809
keeptextopen
verbosegiveitem HM_06, 1
- setbit1 $0015
+ setbit1 EVENT_GOT_HM06_WHIRLPOOL
2writetext UnknownText_0x6d8f8
closetext
loadmovesprites
@@ -361,18 +361,18 @@ UnknownScript_0x6d184: ; 0x6d184
spriteface $0, $0
applymovement $4, MovementData_0x6d283
disappear $4
- setbit1 $0022
+ setbit1 EVENT_CLEARED_ROCKET_HIDEOUT
clearbit2 $000e
setbit1 $06dc
setbit1 $0757
dotrigger $3
clearbit1 $0735
- setbit1 $02e3
- setbit1 $02e4
- setbit1 $02e5
- setbit1 $02e6
- setbit1 $02e7
- setbit1 $02e8
+ setbit1 EVENT_TURNED_OFF_SECURITY_CAMERAS
+ setbit1 EVENT_SECURITY_CAMERA_1
+ setbit1 EVENT_SECURITY_CAMERA_2
+ setbit1 EVENT_SECURITY_CAMERA_3
+ setbit1 EVENT_SECURITY_CAMERA_4
+ setbit1 EVENT_SECURITY_CAMERA_5
end
; 0x6d1d7
@@ -384,7 +384,7 @@ MapTeamRocketBaseB2FSignpostPtr1: ; 0x6d1d7
MapTeamRocketBaseB2FSignpost1Script: ; 0x6d1db
loadfont
- checkbit1 $02ff
+ checkbit1 EVENT_LEARNED_HAIL_GIOVANNI
iftrue UnknownScript_0x6d1e8
2writetext UnknownText_0x6dd39
closetext
@@ -399,14 +399,14 @@ UnknownScript_0x6d1e8: ; 0x6d1e8
changeblock $e, $c, $7
reloadmappart
loadmovesprites
- setbit1 $0300
+ setbit1 EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER
waitbutton
end
; 0x6d1fa
MapTeamRocketBaseB2FSignpost21Script: ; 0x6d1fa
loadfont
- checkbit1 $0022
+ checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT
iftrue UnknownScript_0x6d207
2writetext UnknownText_0x6dda7
closetext
diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm
index 0fd031fdc..9e89313b5 100644
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -125,7 +125,7 @@ MoltresScript_0x6e091: ; 0x6e091
2writetext UnknownText_0x6e585
closetext
loadmovesprites
- setbit1 $02ff
+ setbit1 EVENT_LEARNED_HAIL_GIOVANNI
end
; 0x6e09b
diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm
index 2eb1a5a98..5f927fb36 100644
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -26,7 +26,7 @@ UnknownScript_0x18502e: ; 0x18502e
; 0x18502f
UnknownScript_0x18502f: ; 0x18502f
- checkbit1 $0336
+ checkbit1 EVENT_GOT_RAINBOW_WING
iftrue UnknownScript_0x185047
checkbit1 $0044
iffalse UnknownScript_0x185050
@@ -35,7 +35,7 @@ UnknownScript_0x18502f: ; 0x18502f
clearbit1 $07c5
setbit1 $07b6
UnknownScript_0x185047: ; 0x185047
- checkbit1 $0317
+ checkbit1 EVENT_FOUGHT_HO_OH
iffalse UnknownScript_0x18504f
appear $5
UnknownScript_0x18504f: ; 0x18504f
@@ -43,7 +43,7 @@ UnknownScript_0x18504f: ; 0x18504f
; 0x185050
UnknownScript_0x185050: ; 0x185050
- checkbit1 $0335
+ checkbit1 EVENT_FOUGHT_SUICUNE
iftrue UnknownScript_0x185077
appear $2
writebyte RAIKOU
@@ -79,7 +79,7 @@ UnknownScript_0x185077: ; 0x185077
; 0x185084
UnknownScript_0x185084: ; 0x185084
- checkbit1 $0336
+ checkbit1 EVENT_GOT_RAINBOW_WING
iftrue UnknownScript_0x18508e
changeblock $a, $2, $9
UnknownScript_0x18508e: ; 0x18508e
@@ -126,15 +126,15 @@ UnknownScript_0x1850d7: ; 0x1850d7
startbattle
reloadmapmusic
disappear $2
- setbit1 $0335
- setbit1 $07af
+ setbit1 EVENT_FOUGHT_SUICUNE
+ setbit1 EVENT_SAW_SUICUNE_ON_ROUTE_42
domaptrigger GROUP_ROUTE_42, MAP_ROUTE_42, $0
- setbit1 $07b0
+ setbit1 EVENT_SAW_SUICUNE_ON_ROUTE_36
domaptrigger GROUP_ROUTE_36, MAP_ROUTE_36, $0
- setbit1 $07ae
+ setbit1 EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $0
dotrigger $1
- clearbit1 $07b7
+ clearbit1 EVENT_SET_WHEN_FOUGHT_HO_OH
returnafterbattle
pause 20
spriteface $0, $0
@@ -186,7 +186,7 @@ SageScript_0x185179: ; 0x185179
; 0x18517c
SageScript_0x18517c: ; 0x18517c
- checkbit1 $0317
+ checkbit1 EVENT_FOUGHT_HO_OH
iftrue UnknownScript_0x185185
jumptextfaceplayer UnknownText_0x1855ee
; 0x185185
@@ -198,9 +198,9 @@ UnknownScript_0x185185: ; 0x185185
SageScript_0x185188: ; 0x185188
faceplayer
loadfont
- checkbit1 $0317
+ checkbit1 EVENT_FOUGHT_HO_OH
iftrue UnknownScript_0x1851b6
- checkbit1 $0336
+ checkbit1 EVENT_GOT_RAINBOW_WING
iftrue UnknownScript_0x1851b0
2writetext UnknownText_0x185629
keeptextopen
@@ -212,7 +212,7 @@ SageScript_0x185188: ; 0x185188
playsound $001b
changeblock $a, $2, $20
reloadmappart
- setbit1 $0336
+ setbit1 EVENT_GOT_RAINBOW_WING
loadmovesprites
loadfont
UnknownScript_0x1851b0: ; 0x1851b0
@@ -230,7 +230,7 @@ UnknownScript_0x1851b6: ; 0x1851b6
; 0x1851bc
SageScript_0x1851bc: ; 0x1851bc
- checkbit1 $0317
+ checkbit1 EVENT_FOUGHT_HO_OH
iftrue UnknownScript_0x1851c5
jumptextfaceplayer UnknownText_0x185654
; 0x1851c5
diff --git a/maps/TinTowerRoof.asm b/maps/TinTowerRoof.asm
index 409ffaa98..c30744c0b 100644
--- a/maps/TinTowerRoof.asm
+++ b/maps/TinTowerRoof.asm
@@ -11,7 +11,7 @@ TinTowerRoof_MapScriptHeader: ; 0x7722b
; 0x77230
UnknownScript_0x77230: ; 0x77230
- checkbit1 $0317
+ checkbit1 EVENT_FOUGHT_HO_OH
iftrue UnknownScript_0x77241
checkitem RAINBOW_WING
iftrue UnknownScript_0x7723e
@@ -35,13 +35,13 @@ HoOhScript_0x77244: ; 0x77244
cry HO_OH
pause 15
loadmovesprites
- setbit1 $0317
+ setbit1 EVENT_FOUGHT_HO_OH
writecode $3, $a
loadpokedata HO_OH, 60
startbattle
disappear $2
returnafterbattle
- setbit1 $07b7
+ setbit1 EVENT_SET_WHEN_FOUGHT_HO_OH
end
; 0x77260
diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm
index 8b9dbed3c..36b951d59 100644
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -23,51 +23,51 @@ UnknownScript_0x7c9f6: ; 0x7c9f6
; 0x7c9f7
UnknownScript_0x7c9f7: ; 0x7c9f7
- checkbit1 $02d7
+ checkbit1 EVENT_SWITCH_4
iffalse UnknownScript_0x7ca01
changeblock $10, $6, $2d
UnknownScript_0x7ca01: ; 0x7ca01
- checkbit1 $02d8
+ checkbit1 EVENT_SWITCH_5
iffalse UnknownScript_0x7ca0b
changeblock $a, $6, $2d
UnknownScript_0x7ca0b: ; 0x7ca0b
- checkbit1 $02d9
+ checkbit1 EVENT_SWITCH_6
iffalse UnknownScript_0x7ca15
changeblock $2, $6, $2d
UnknownScript_0x7ca15: ; 0x7ca15
- checkbit1 $02da
+ checkbit1 EVENT_SWITCH_7
iffalse UnknownScript_0x7ca1f
changeblock $2, $a, $2d
UnknownScript_0x7ca1f: ; 0x7ca15
- checkbit1 $02db
+ checkbit1 EVENT_SWITCH_8
iffalse UnknownScript_0x7ca29
changeblock $a, $a, $2d
UnknownScript_0x7ca29: ; 0x7ca29
- checkbit1 $02dc
+ checkbit1 EVENT_SWITCH_9
iffalse UnknownScript_0x7ca33
changeblock $10, $a, $2d
UnknownScript_0x7ca33: ; 0x7ca33
- checkbit1 $02dd
+ checkbit1 EVENT_SWITCH_10
iffalse UnknownScript_0x7ca41
changeblock $c, $6, $2a
changeblock $c, $8, $2d
UnknownScript_0x7ca41: ; 0x7ca41
- checkbit1 $02de
+ checkbit1 EVENT_SWITCH_11
iffalse UnknownScript_0x7ca4f
changeblock $6, $6, $2a
changeblock $6, $8, $2d
UnknownScript_0x7ca4f: ; 0x7ca4f
- checkbit1 $02df
+ checkbit1 EVENT_SWITCH_12
iffalse UnknownScript_0x7ca5d
changeblock $c, $a, $2a
changeblock $c, $c, $2d
UnknownScript_0x7ca5d: ; 0x7ca5d
- checkbit1 $02e0
+ checkbit1 EVENT_SWITCH_13
iffalse UnknownScript_0x7ca6b
changeblock $6, $a, $2a
changeblock $6, $c, $2d
UnknownScript_0x7ca6b: ; 0x7ca6b
- checkbit1 $02e1
+ checkbit1 EVENT_SWITCH_14
iffalse UnknownScript_0x7ca79
changeblock $12, $a, $2a
changeblock $12, $c, $2d
@@ -135,9 +135,9 @@ UnknownScript_0x7cae1: ; 0x7cae1
closetext
loadmovesprites
setbit1 $06c1
- checkbit1 $001c
+ checkbit1 EVENT_GOT_TOTODILE_FROM_ELM
iftrue UnknownScript_0x7cb09
- checkbit1 $001d
+ checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM
iftrue UnknownScript_0x7cb19
winlosstext UnknownText_0x7cf5d, UnknownText_0x7d102
setlasttalked $c
@@ -355,7 +355,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost0Script: ; 0x7cbab
loadfont
2writetext UnknownText_0x7d554
keeptextopen
- checkbit1 $02d3
+ checkbit1 EVENT_SWITCH_1
iftrue UnknownScript_0x7cbcb
2writetext UnknownText_0x7d617
yesorno
@@ -363,7 +363,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost0Script: ; 0x7cbab
copybytetovar UndergroundSwitchPositions
addvar $1
copyvartobyte UndergroundSwitchPositions
- setbit1 $02d3
+ setbit1 EVENT_SWITCH_1
2jump UnknownScript_0x7cc8d
; 0x7cbcb
@@ -374,7 +374,7 @@ UnknownScript_0x7cbcb: ; 0x7cbcb
copybytetovar UndergroundSwitchPositions
addvar -1
copyvartobyte UndergroundSwitchPositions
- clearbit1 $02d3
+ clearbit1 EVENT_SWITCH_1
2jump UnknownScript_0x7cc8d
; 0x7cbe0
@@ -382,7 +382,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost1Script: ; 0x7cbe0
loadfont
2writetext UnknownText_0x7d643
keeptextopen
- checkbit1 $02d4
+ checkbit1 EVENT_SWITCH_2
iftrue UnknownScript_0x7cc00
2writetext UnknownText_0x7d617
yesorno
@@ -390,7 +390,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost1Script: ; 0x7cbe0
copybytetovar UndergroundSwitchPositions
addvar $2
copyvartobyte UndergroundSwitchPositions
- setbit1 $02d4
+ setbit1 EVENT_SWITCH_2
2jump UnknownScript_0x7cc8d
; 0x7cc00
@@ -401,7 +401,7 @@ UnknownScript_0x7cc00: ; 0x7cc00
copybytetovar UndergroundSwitchPositions
addvar -2
copyvartobyte UndergroundSwitchPositions
- clearbit1 $02d4
+ clearbit1 EVENT_SWITCH_2
2jump UnknownScript_0x7cc8d
; 0x7cc15
@@ -409,7 +409,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost2Script: ; 0x7cc15
loadfont
2writetext UnknownText_0x7d65a
keeptextopen
- checkbit1 $02d5
+ checkbit1 EVENT_SWITCH_3
iftrue UnknownScript_0x7cc35
2writetext UnknownText_0x7d617
yesorno
@@ -417,7 +417,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost2Script: ; 0x7cc15
copybytetovar UndergroundSwitchPositions
addvar $3
copyvartobyte UndergroundSwitchPositions
- setbit1 $02d5
+ setbit1 EVENT_SWITCH_3
2jump UnknownScript_0x7cc8d
; 0x7cc35
@@ -428,7 +428,7 @@ UnknownScript_0x7cc35: ; 0x7cc35
copybytetovar UndergroundSwitchPositions
addvar -3
copyvartobyte UndergroundSwitchPositions
- clearbit1 $02d5
+ clearbit1 EVENT_SWITCH_3
2jump UnknownScript_0x7cc8d
; 0x7cc4a
@@ -436,17 +436,17 @@ MapUndergroundPathSwitchRoomEntrancesSignpost3Script: ; 0x7cc4a
loadfont
2writetext UnknownText_0x7d671
keeptextopen
- checkbit1 $02d6
+ checkbit1 EVENT_EMERGENCY_SWITCH
iftrue UnknownScript_0x7cc70
2writetext UnknownText_0x7d617
yesorno
iffalse UnknownScript_0x7cc8b
writebyte $7
copyvartobyte UndergroundSwitchPositions
- setbit1 $02d6
- setbit1 $02d3
- setbit1 $02d4
- setbit1 $02d5
+ setbit1 EVENT_EMERGENCY_SWITCH
+ setbit1 EVENT_SWITCH_1
+ setbit1 EVENT_SWITCH_2
+ setbit1 EVENT_SWITCH_3
2jump UnknownScript_0x7cc8d
; 0x7cc70
@@ -456,10 +456,10 @@ UnknownScript_0x7cc70: ; 0x7cc70
iffalse UnknownScript_0x7cc8b
writebyte $0
copyvartobyte UndergroundSwitchPositions
- clearbit1 $02d6
- clearbit1 $02d3
- clearbit1 $02d4
- clearbit1 $02d5
+ clearbit1 EVENT_EMERGENCY_SWITCH
+ clearbit1 EVENT_SWITCH_1
+ clearbit1 EVENT_SWITCH_2
+ clearbit1 EVENT_SWITCH_3
2jump UnknownScript_0x7cc8d
; 0x7cc8b
@@ -602,143 +602,143 @@ UnknownScript_0x7cd79: ; 0x7cd79
UnknownScript_0x7cda5: ; 0x7cda5
changeblock $10, $6, $2d
- setbit1 $02d7
+ setbit1 EVENT_SWITCH_4
end
; 0x7cdad
UnknownScript_0x7cdad: ; 0x7cdad
changeblock $a, $6, $2d
- setbit1 $02d8
+ setbit1 EVENT_SWITCH_5
end
; 0x7cdb5
UnknownScript_0x7cdb5: ; 0x7cdb5
changeblock $2, $6, $2d
- setbit1 $02d9
+ setbit1 EVENT_SWITCH_6
end
; 0x7cdbd
UnknownScript_0x7cdbd: ; 0x7cdbd
changeblock $2, $a, $2d
- setbit1 $02da
+ setbit1 EVENT_SWITCH_7
end
; 0x7cdc5
UnknownScript_0x7cdc5: ; 0x7cdc5
changeblock $a, $a, $2d
- setbit1 $02db
+ setbit1 EVENT_SWITCH_8
end
; 0x7cdcd
UnknownScript_0x7cdcd: ; 0x7cdcd
changeblock $10, $a, $2d
- setbit1 $02dc
+ setbit1 EVENT_SWITCH_9
end
; 0x7cdd5
UnknownScript_0x7cdd5: ; 0x7cdd5
changeblock $c, $6, $2a
changeblock $c, $8, $2d
- setbit1 $02dd
+ setbit1 EVENT_SWITCH_10
end
; 0x7cde1
UnknownScript_0x7cde1: ; 0x7cde1
changeblock $6, $6, $2a
changeblock $6, $8, $2d
- setbit1 $02de
+ setbit1 EVENT_SWITCH_11
end
; 0x7cded
UnknownScript_0x7cded: ; 0x7cded
changeblock $c, $a, $2a
changeblock $c, $c, $2d
- setbit1 $02df
+ setbit1 EVENT_SWITCH_12
end
; 0x7cdf9
UnknownScript_0x7cdf9: ; 0x7cdf9
changeblock $6, $a, $2a
changeblock $6, $c, $2d
- setbit1 $02e0
+ setbit1 EVENT_SWITCH_13
end
; 0x7ce05
UnknownScript_0x7ce05: ; 0x7ce05
changeblock $12, $a, $2a
changeblock $12, $c, $2d
- setbit1 $02e1
+ setbit1 EVENT_SWITCH_14
end
; 0x7ce11
UnknownScript_0x7ce11: ; 0x7ce11
changeblock $10, $6, $3e
- clearbit1 $02d7
+ clearbit1 EVENT_SWITCH_4
end
; 0x7ce19
UnknownScript_0x7ce19: ; 0x7ce19
changeblock $a, $6, $3e
- clearbit1 $02d8
+ clearbit1 EVENT_SWITCH_5
end
; 0x7ce21
UnknownScript_0x7ce21: ; 0x7ce21
changeblock $2, $6, $3e
- clearbit1 $02d9
+ clearbit1 EVENT_SWITCH_6
end
; 0x7ce29
UnknownScript_0x7ce29: ; 0x7ce29
changeblock $2, $a, $3e
- clearbit1 $02da
+ clearbit1 EVENT_SWITCH_7
end
; 0x7ce31
UnknownScript_0x7ce31: ; 0x7ce31
changeblock $a, $a, $3e
- clearbit1 $02db
+ clearbit1 EVENT_SWITCH_8
end
; 0x7ce39
UnknownScript_0x7ce39: ; 0x7ce39
changeblock $10, $a, $3e
- clearbit1 $02dc
+ clearbit1 EVENT_SWITCH_9
end
; 0x7ce41
UnknownScript_0x7ce41: ; 0x7ce41
changeblock $c, $6, $3f
changeblock $c, $8, $3d
- clearbit1 $02dd
+ clearbit1 EVENT_SWITCH_10
end
; 0x7ce4d
UnknownScript_0x7ce4d: ; 0x7ce4d
changeblock $6, $6, $3f
changeblock $6, $8, $3d
- clearbit1 $02de
+ clearbit1 EVENT_SWITCH_11
end
; 0x7ce59
UnknownScript_0x7ce59: ; 0x7ce59
changeblock $c, $a, $3f
changeblock $c, $c, $3d
- clearbit1 $02df
+ clearbit1 EVENT_SWITCH_12
end
; 0x7ce65
UnknownScript_0x7ce65: ; 0x7ce65
changeblock $6, $a, $3f
changeblock $6, $c, $3d
- clearbit1 $02e0
+ clearbit1 EVENT_SWITCH_13
end
; 0x7ce71
UnknownScript_0x7ce71: ; 0x7ce71
changeblock $12, $a, $3f
changeblock $12, $c, $3d
- clearbit1 $02e1
+ clearbit1 EVENT_SWITCH_14
end
; 0x7ce7d
diff --git a/maps/UndergroundWarehouse.asm b/maps/UndergroundWarehouse.asm
index 43420ee05..f20f78273 100644
--- a/maps/UndergroundWarehouse.asm
+++ b/maps/UndergroundWarehouse.asm
@@ -11,21 +11,21 @@ UndergroundWarehouse_MapScriptHeader: ; 0x7d94b
; 0x7d950
UnknownScript_0x7d950: ; 0x7d950
- clearbit1 $02d3
- clearbit1 $02d4
- clearbit1 $02d5
- clearbit1 $02d6
- clearbit1 $02d7
- clearbit1 $02d8
- clearbit1 $02d9
- clearbit1 $02da
- clearbit1 $02db
- clearbit1 $02dc
- clearbit1 $02dd
- clearbit1 $02de
- clearbit1 $02df
- clearbit1 $02e0
- clearbit1 $02e1
+ clearbit1 EVENT_SWITCH_1
+ clearbit1 EVENT_SWITCH_2
+ clearbit1 EVENT_SWITCH_3
+ clearbit1 EVENT_EMERGENCY_SWITCH
+ clearbit1 EVENT_SWITCH_4
+ clearbit1 EVENT_SWITCH_5
+ clearbit1 EVENT_SWITCH_6
+ clearbit1 EVENT_SWITCH_7
+ clearbit1 EVENT_SWITCH_8
+ clearbit1 EVENT_SWITCH_9
+ clearbit1 EVENT_SWITCH_10
+ clearbit1 EVENT_SWITCH_11
+ clearbit1 EVENT_SWITCH_12
+ clearbit1 EVENT_SWITCH_13
+ clearbit1 EVENT_SWITCH_14
writebyte $0
copyvartobyte UndergroundSwitchPositions
return
diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm
index ef2aff882..69ba933e6 100644
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -60,7 +60,7 @@ UnknownScript_0x1aa9ab: ; 0x1aa9ab
loadpokedata SNORLAX, 50
startbattle
disappear $6
- setbit1 $0750
+ setbit1 EVENT_FOUGHT_SNORLAX
returnafterbattle
end
; 0x1aa9c2
diff --git a/maps/VermilionGym.asm b/maps/VermilionGym.asm
index c671d3571..1988a1588 100644
--- a/maps/VermilionGym.asm
+++ b/maps/VermilionGym.asm
@@ -18,10 +18,10 @@ SurgeScript_0x1920a5: ; 0x1920a5
loadtrainer LT_SURGE, 1
startbattle
returnafterbattle
- setbit1 $04c7
- setbit1 $049c
- setbit1 $0494
- setbit1 $0497
+ setbit1 EVENT_BEAT_LTSURGE
+ setbit1 EVENT_BEAT_GENTLEMAN_GREGORY
+ setbit1 EVENT_BEAT_GUITARIST_VINCENT
+ setbit1 EVENT_BEAT_JUGGLER_HORTON
loadfont
2writetext UnknownText_0x192277
playsound $009c
@@ -130,7 +130,7 @@ JugglerHortonScript: ; 0x192113
VermilionGymGuyScript: ; 0x19211b
faceplayer
loadfont
- checkbit1 $04c7
+ checkbit1 EVENT_BEAT_LTSURGE
iftrue .VermilionGymGuyWinScript
2writetext VermilionGymGuyText
closetext
diff --git a/maps/VermilionPokeCenter1F.asm b/maps/VermilionPokeCenter1F.asm
index 0a10c04dc..4bf949b10 100644
--- a/maps/VermilionPokeCenter1F.asm
+++ b/maps/VermilionPokeCenter1F.asm
@@ -13,7 +13,7 @@ NurseScript_0x191603: ; 0x191603
FishingGuruScript_0x191606: ; 0x191606
faceplayer
loadfont
- checkbit1 $0750
+ checkbit1 EVENT_FOUGHT_SNORLAX
iftrue UnknownScript_0x191614
2writetext UnknownText_0x191620
closetext
diff --git a/maps/VermilionPort.asm b/maps/VermilionPort.asm
index 86a55a1b8..c541f77b2 100644
--- a/maps/VermilionPort.asm
+++ b/maps/VermilionPort.asm
@@ -61,16 +61,16 @@ SailorScript_0x74dc4: ; 0x74dc4
waitbutton
setbit1 $073a
clearbit1 $073b
- clearbit1 $04eb
- clearbit1 $042f
- clearbit1 $0540
- clearbit1 $0493
- clearbit1 $04d4
- clearbit1 $04dd
- clearbit1 $057c
- clearbit1 $05b7
- clearbit1 $0476
- clearbit1 $0477
+ clearbit1 EVENT_BEAT_POKEMANIAC_ETHAN
+ clearbit1 EVENT_BEAT_BURGLAR_COREY
+ clearbit1 EVENT_BEAT_BUG_CATCHER_KEN
+ clearbit1 EVENT_BEAT_GUITARIST_CLYDE
+ clearbit1 EVENT_BEAT_POKEFANM_JEREMY
+ clearbit1 EVENT_BEAT_POKEFANF_GEORGIA
+ clearbit1 EVENT_BEAT_SAILOR_KENNETH
+ clearbit1 EVENT_BEAT_TEACHER_SHIRLEY
+ clearbit1 EVENT_BEAT_SCHOOLBOY_NATE
+ clearbit1 EVENT_BEAT_SCHOOLBOY_RICKY
setbit1 $002f
appear $2
domaptrigger GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $1
diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm
index 0109fcc92..86f94969c 100644
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -57,9 +57,9 @@ UnknownScript_0x744d4: ; 0x744d4
closetext
loadmovesprites
setbit1 $06c2
- checkbit1 $001c
+ checkbit1 EVENT_GOT_TOTODILE_FROM_ELM
iftrue UnknownScript_0x744ff
- checkbit1 $001d
+ checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM
iftrue UnknownScript_0x7450f
winlosstext UnknownText_0x7463d, UnknownText_0x747aa
setlasttalked $2
diff --git a/maps/VioletGym.asm b/maps/VioletGym.asm
index 502daee05..9c4a862f2 100644
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -9,7 +9,7 @@ VioletGym_MapScriptHeader: ; 0x683c0
FalknerScript_0x683c2: ; 0x683c2
faceplayer
loadfont
- checkbit1 $04bd
+ checkbit1 EVENT_BEAT_FALKNER
iftrue UnknownScript_0x683ec
2writetext UnknownText_0x68473
closetext
@@ -18,7 +18,7 @@ FalknerScript_0x683c2: ; 0x683c2
loadtrainer FALKNER, 1
startbattle
returnafterbattle
- setbit1 $04bd
+ setbit1 EVENT_BEAT_FALKNER
loadfont
2writetext UnknownText_0x685af
playsound $009c
@@ -27,17 +27,17 @@ FalknerScript_0x683c2: ; 0x683c2
checkcode $7
2call UnknownScript_0x68418
UnknownScript_0x683ec: ; 0x683ec
- checkbit1 $0008
+ checkbit1 EVENT_GOT_TM31_MUD_SLAP
iftrue UnknownScript_0x68412
- setbit1 $03fb
- setbit1 $03fc
+ setbit1 EVENT_BEAT_BIRD_KEEPER_ROD
+ setbit1 EVENT_BEAT_BIRD_KEEPER_ABE
domaptrigger GROUP_ELMS_LAB, MAP_ELMS_LAB, $2
specialphonecall $3
2writetext UnknownText_0x685c8
keeptextopen
verbosegiveitem TM_31, 1
iffalse UnknownScript_0x68416
- setbit1 $0008
+ setbit1 EVENT_GOT_TM31_MUD_SLAP
2writetext UnknownText_0x68648
closetext
loadmovesprites
@@ -127,7 +127,7 @@ Bird_keeperAbeScript: ; 0x68447
VioletGymGuyScript: ; 0x6844f
faceplayer
loadfont
- checkbit1 $04bd
+ checkbit1 EVENT_BEAT_FALKNER
iftrue .VioletGymGuyWinScript
2writetext VioletGymGuyText
closetext
diff --git a/maps/VioletPokeCenter1F.asm b/maps/VioletPokeCenter1F.asm
index 0ed13e26b..1fba9bb62 100644
--- a/maps/VioletPokeCenter1F.asm
+++ b/maps/VioletPokeCenter1F.asm
@@ -13,7 +13,7 @@ NurseScript_0x694c9: ; 0x694c9
ScientistScript_0x694cc: ; 0x694cc
faceplayer
loadfont
- checkbit1 $002c
+ checkbit1 EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE
iftrue UnknownScript_0x6953a
2writetext UnknownText_0x69555
UnknownScript_0x694d7: ; 0x694d7
@@ -24,9 +24,9 @@ UnknownScript_0x694d7: ; 0x694d7
giveegg TOGEPI, 5
stringtotext .eggname, $1
2call UnknownScript_0x69527
- setbit1 $002d
- clearbit1 $0701
- clearbit1 $0054
+ setbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
+ clearbit1 EVENT_ELMS_AIDE_IN_LAB
+ clearbit1 EVENT_TOGEPI_HATCHED
domaptrigger GROUP_ROUTE_32, MAP_ROUTE_32, $1
2writetext UnknownText_0x695c5
closetext
@@ -70,7 +70,7 @@ UnknownScript_0x69531: ; 0x69531
2writetext UnknownText_0x696f2
closetext
loadmovesprites
- setbit1 $002c
+ setbit1 EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE
end
; 0x6953a
diff --git a/maps/ViridianCity.asm b/maps/ViridianCity.asm
index 489208241..e16dad94c 100644
--- a/maps/ViridianCity.asm
+++ b/maps/ViridianCity.asm
@@ -55,13 +55,13 @@ UnknownScript_0x1a9a6f: ; 0x1a9a6f
FisherScript_0x1a9a75: ; 0x1a9a75
faceplayer
loadfont
- checkbit1 $00e0
+ checkbit1 EVENT_GOT_TM42_DREAM_EATER
iftrue UnknownScript_0x1a9a8a
2writetext UnknownText_0x1a9cc4
keeptextopen
verbosegiveitem TM_42, 1
iffalse UnknownScript_0x1a9a8e
- setbit1 $00e0
+ setbit1 EVENT_GOT_TM42_DREAM_EATER
UnknownScript_0x1a9a8a: ; 0x1a9a8a
2writetext UnknownText_0x1a9d86
closetext
diff --git a/maps/ViridianGym.asm b/maps/ViridianGym.asm
index 393940f7b..b8f733bb3 100644
--- a/maps/ViridianGym.asm
+++ b/maps/ViridianGym.asm
@@ -18,7 +18,7 @@ BlueScript_0x9aa26: ; 0x9aa26
loadtrainer BLUE, 1
startbattle
returnafterbattle
- setbit1 $04cc
+ setbit1 EVENT_BEAT_BLUE
loadfont
2writetext UnknownText_0x9ac0f
playsound $009c
@@ -40,7 +40,7 @@ UnknownScript_0x9aa51: ; 0x9aa51
ViridianGymGuyScript: ; 0x9aa57
faceplayer
loadfont
- checkbit1 $04cc
+ checkbit1 EVENT_BEAT_BLUE
iftrue .ViridianGymGuyWinScript
2writetext ViridianGymGuyText
closetext
diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm
index ad83746d1..ba083e7ff 100644
--- a/maps/WarehouseEntrance.asm
+++ b/maps/WarehouseEntrance.asm
@@ -15,28 +15,28 @@ WarehouseEntrance_MapScriptHeader: ; 0x7c038
; 0x7c043
UnknownScript_0x7c043: ; 0x7c043
- clearbit1 $02d3
- clearbit1 $02d4
- clearbit1 $02d5
- clearbit1 $02d6
- clearbit1 $02d7
- clearbit1 $02d8
- clearbit1 $02d9
- clearbit1 $02da
- clearbit1 $02db
- clearbit1 $02dc
- clearbit1 $02dd
- clearbit1 $02de
- clearbit1 $02df
- clearbit1 $02e0
- clearbit1 $02e1
+ clearbit1 EVENT_SWITCH_1
+ clearbit1 EVENT_SWITCH_2
+ clearbit1 EVENT_SWITCH_3
+ clearbit1 EVENT_EMERGENCY_SWITCH
+ clearbit1 EVENT_SWITCH_4
+ clearbit1 EVENT_SWITCH_5
+ clearbit1 EVENT_SWITCH_6
+ clearbit1 EVENT_SWITCH_7
+ clearbit1 EVENT_SWITCH_8
+ clearbit1 EVENT_SWITCH_9
+ clearbit1 EVENT_SWITCH_10
+ clearbit1 EVENT_SWITCH_11
+ clearbit1 EVENT_SWITCH_12
+ clearbit1 EVENT_SWITCH_13
+ clearbit1 EVENT_SWITCH_14
writebyte $0
copyvartobyte UndergroundSwitchPositions
return
; 0x7c076
UnknownScript_0x7c076: ; 0x7c076
- checkbit1 $0049
+ checkbit1 EVENT_USED_BASEMENT_KEY
iffalse UnknownScript_0x7c07d
return
; 0x7c07d
@@ -470,7 +470,7 @@ UnknownScript_0x7c2cd: ; 0x7c2cd
MapWarehouseEntranceSignpost0Script: ; 0x7c2d6
loadfont
- checkbit1 $0049
+ checkbit1 EVENT_USED_BASEMENT_KEY
iftrue UnknownScript_0x7c2fa
checkitem BASEMENT_KEY
iftrue UnknownScript_0x7c2e8
@@ -488,7 +488,7 @@ UnknownScript_0x7c2e8: ; 0x7c2e8
changeblock $12, $6, $2e
reloadmappart
loadmovesprites
- setbit1 $0049
+ setbit1 EVENT_USED_BASEMENT_KEY
end
; 0x7c2fa
diff --git a/maps/WhirlIslandLugiaChamber.asm b/maps/WhirlIslandLugiaChamber.asm
index 8b394ea22..1b002757b 100644
--- a/maps/WhirlIslandLugiaChamber.asm
+++ b/maps/WhirlIslandLugiaChamber.asm
@@ -11,7 +11,7 @@ WhirlIslandLugiaChamber_MapScriptHeader: ; 0x18c4ff
; 0x18c504
UnknownScript_0x18c504: ; 0x18c504
- checkbit1 $0318
+ checkbit1 EVENT_FOUGHT_LUGIA
iftrue UnknownScript_0x18c515
checkitem SILVER_WING
iftrue UnknownScript_0x18c512
@@ -35,7 +35,7 @@ LugiaScript_0x18c518: ; 0x18c518
cry LUGIA
pause 15
loadmovesprites
- setbit1 $0318
+ setbit1 EVENT_FOUGHT_LUGIA
writecode $3, $a
loadpokedata LUGIA, 60
startbattle
diff --git a/maps/WillsRoom.asm b/maps/WillsRoom.asm
index e59a1ac62..8089c469e 100644
--- a/maps/WillsRoom.asm
+++ b/maps/WillsRoom.asm
@@ -28,7 +28,7 @@ UnknownScript_0x1804cb: ; 0x1804cb
iffalse UnknownScript_0x1804d5
changeblock $4, $e, $2a
UnknownScript_0x1804d5: ; 0x1804d5
- checkbit1 $030a
+ checkbit1 EVENT_WILLS_ROOM_EXIT_OPEN
iffalse UnknownScript_0x1804df
changeblock $4, $2, $16
UnknownScript_0x1804df: ; 0x1804df
@@ -70,7 +70,7 @@ WillScript_0x1804f8: ; 0x1804f8
changeblock $4, $2, $16
reloadmappart
loadmovesprites
- setbit1 $030a
+ setbit1 EVENT_WILLS_ROOM_EXIT_OPEN
waitbutton
end
; 0x180526
diff --git a/maps/WiseTriosRoom.asm b/maps/WiseTriosRoom.asm
index 79dce2d5e..f99817aac 100644
--- a/maps/WiseTriosRoom.asm
+++ b/maps/WiseTriosRoom.asm
@@ -23,9 +23,9 @@ UnknownScript_0x98573: ; 0x98573
; 0x98574
UnknownScript_0x98574: ; 0x98574
- checkbit1 $0335
+ checkbit1 EVENT_FOUGHT_SUICUNE
iftrue UnknownScript_0x98593
- checkbit1 $0334
+ checkbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
iftrue UnknownScript_0x9858c
checkitem CLEAR_BELL
iftrue UnknownScript_0x9858c
@@ -152,7 +152,7 @@ TrainerSageKoji: ; 0x985ec
; 0x985f8
SageKojiScript: ; 0x985f8
- checkbit1 $0334
+ checkbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
iftrue UnknownScript_0x9861b
pause 10
showemote $0, $7, 20
@@ -164,7 +164,7 @@ SageKojiScript: ; 0x985f8
loadmovesprites
applymovement $7, MovementData_0x98628
spriteface $7, $1
- setbit1 $0334
+ setbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
dotrigger $1
end
; 0x9861b
diff --git a/maps/blockdata_1.asm b/maps/blockdata_1.asm
new file mode 100644
index 000000000..ddd7b6e3a
--- /dev/null
+++ b/maps/blockdata_1.asm
@@ -0,0 +1,308 @@
+Route32_BlockData: ; 0xa8000
+ INCBIN "maps/Route32.blk"
+; 0xa81c2
+
+Route40_BlockData: ; 0xa81c2
+ INCBIN "maps/Route40.blk"
+; 0xa8276
+
+Route36_BlockData: ; 0xa8276
+ INCBIN "maps/Route36.blk"
+; 0xa8384
+
+Route44_BlockData: ; 0xa8384
+ INCBIN "maps/Route44.blk"
+; 0xa8492
+
+Route28_BlockData: ; 0xa8492
+ INCBIN "maps/Route28.blk"
+; 0xa8546
+
+BetaHerosHouse_BlockData: ; 0xa8546
+ INCBIN "maps/BetaHerosHouse.blk"
+; 0xa8552
+
+CeladonCity_BlockData: ; 0xa8552
+ INCBIN "maps/CeladonCity.blk"
+; 0xa86ba
+
+SaffronCity_BlockData: ; 0xa86ba
+ INCBIN "maps/SaffronCity.blk"
+; 0xa8822
+
+Route2_BlockData: ; 0xa8822
+ INCBIN "maps/Route2.blk"
+; 0xa8930
+
+ElmsHouse_BlockData: ; 0xa8930
+ INCBIN "maps/ElmsHouse.blk"
+; 0xa8940
+
+BetaSproutTower1_BlockData: ; 0xa8940
+ INCBIN "maps/BetaSproutTower1.blk"
+; 0xa899a
+
+Route11_BlockData: ; 0xa899a
+ INCBIN "maps/Route11.blk"
+; 0xa8a4e
+
+BetaSproutTower5_BlockData: ; 0xa8a4e
+ INCBIN "maps/BetaSproutTower5.blk"
+; 0xa8aa8
+
+Route15_BlockData: ; 0xa8aa8
+ INCBIN "maps/Route15.blk"
+; 0xa8b5c
+
+BetaSproutTower9_BlockData: ; 0xa8b5c
+ INCBIN "maps/BetaSproutTower9.blk"
+; 0xa8b80
+
+Route19_BlockData: ; 0xa8b80
+ INCBIN "maps/Route19.blk"
+; 0xa8c34
+
+BetaBlackthornCity_BlockData: ; 0xa8c34
+ INCBIN "maps/BetaBlackthornCity.blk"
+; 0xa8d9c
+
+Route10South_BlockData: ; 0xa8d9c
+ INCBIN "maps/Route10South.blk"
+; 0xa8df6
+
+CinnabarPokeCenter2FBeta_BlockData: ; 0xa8df6
+ INCBIN "maps/CinnabarPokeCenter2FBeta.blk"
+; 0xa8e16
+
+Route41_BlockData: ; 0xa8e16
+ INCBIN "maps/Route41.blk"
+; 0xa90b9
+
+Route33_BlockData: ; 0xa90b9
+ INCBIN "maps/Route33.blk"
+; 0xa9113
+
+Route45_BlockData: ; 0xa9113
+ INCBIN "maps/Route45.blk"
+; 0xa92d5
+
+Route29_BlockData: ; 0xa92d5
+ INCBIN "maps/Route29.blk"
+; 0xa93e3
+
+Route37_BlockData: ; 0xa93e3
+ INCBIN "maps/Route37.blk"
+; 0xa943d
+
+LavenderTown_BlockData: ; 0xa943d
+ INCBIN "maps/LavenderTown.blk"
+; 0xa9497
+
+PalletTown_BlockData: ; 0xa9497
+ INCBIN "maps/PalletTown.blk"
+; 0xa94f1
+
+Route25_BlockData: ; 0xa94f1
+ INCBIN "maps/Route25.blk"
+; 0xa95ff
+
+Route24_BlockData: ; 0xa95ff
+ INCBIN "maps/Route24.blk"
+; 0xa9659
+
+BetaVioletCity_BlockData: ; 0xa9659
+ INCBIN "maps/BetaVioletCity.blk"
+; 0xa97c1
+
+Route3_BlockData: ; 0xa97c1
+ INCBIN "maps/Route3.blk"
+; 0xa98cf
+
+PewterCity_BlockData: ; 0xa98cf
+ INCBIN "maps/PewterCity.blk"
+; 0xa9a37
+
+BetaIlexForest_BlockData: ; 0xa9a37
+ INCBIN "maps/BetaIlexForest.blk"
+; 0xa9b9f
+
+BetaSproutTower2_BlockData: ; 0xa9b9f
+ INCBIN "maps/BetaSproutTower2.blk"
+; 0xa9bf9
+
+Route12_BlockData: ; 0xa9bf9
+ INCBIN "maps/Route12.blk"
+; 0xa9d07
+
+BetaGoldenrodCity_BlockData: ; 0xa9d07
+ INCBIN "maps/BetaGoldenrodCity.blk"
+; 0xa9e6f
+
+Route20_BlockData: ; 0xa9e6f
+ INCBIN "maps/Route20.blk"
+; 0xa9f7d
+
+BetaSproutTower6_BlockData: ; 0xa9f7d
+ INCBIN "maps/BetaSproutTower6.blk"
+; 0xa9fd7
+
+BetaPokecenterMainHouse_BlockData: ; 0xa9fd7
+ INCBIN "maps/BetaPokecenterMainHouse.blk"
+; 0xa9ff7
+
+Route30_BlockData: ; 0xa9ff7
+ INCBIN "maps/Route30.blk"
+; 0xaa105
+
+Route26_BlockData: ; 0xaa105
+ INCBIN "maps/Route26.blk"
+; 0xaa321
+
+Route42_BlockData: ; 0xaa321
+ INCBIN "maps/Route42.blk"
+; 0xaa42f
+
+Route34_BlockData: ; 0xaa42f
+ INCBIN "maps/Route34.blk"
+; 0xaa53d
+
+Route46_BlockData: ; 0xaa53d
+ INCBIN "maps/Route46.blk"
+; 0xaa5f1
+
+FuchsiaCity_BlockData: ; 0xaa5f1
+ INCBIN "maps/FuchsiaCity.blk"
+; 0xaa759
+
+Route38_BlockData: ; 0xaa759
+ INCBIN "maps/Route38.blk"
+; 0xaa80d
+
+BetaCianwoodCity_BlockData: ; 0xaa80d
+ INCBIN "maps/BetaCianwoodCity.blk"
+; 0xaa867
+
+OlivineVoltorbHouse_BlockData: ; 0xaa867
+ INCBIN "maps/OlivineVoltorbHouse.blk"
+; 0xaa877
+
+SafariZoneFuchsiaGateBeta_BlockData: ; 0xaa877
+ INCBIN "maps/SafariZoneFuchsiaGateBeta.blk"
+; 0xaa88b
+
+BetaTeakCity_BlockData: ; 0xaa88b
+ INCBIN "maps/BetaTeakCity.blk"
+; 0xaa9f3
+
+BetaCherrygroveCity_BlockData: ; 0xaa9f3
+ INCBIN "maps/BetaCherrygroveCity.blk"
+; 0xaaa4d
+
+CinnabarIsland_BlockData: ; 0xaaa4d
+ INCBIN "maps/CinnabarIsland.blk"
+; 0xaaaa7
+
+Route4_BlockData: ; 0xaaaa7
+ INCBIN "maps/Route4.blk"
+; 0xaab5b
+
+Route8_BlockData: ; 0xaab5b
+ INCBIN "maps/Route8.blk"
+; 0xaac0f
+
+BetaSproutTower3_BlockData: ; 0xaac0f
+ INCBIN "maps/BetaSproutTower3.blk"
+; 0xaac69
+
+ViridianCity_BlockData: ; 0xaac69
+ INCBIN "maps/ViridianCity.blk"
+; 0xaadd1
+
+Route13_BlockData: ; 0xaadd1
+ INCBIN "maps/Route13.blk"
+; 0xaaedf
+
+Route21_BlockData: ; 0xaaedf
+ INCBIN "maps/Route21.blk"
+; 0xaaf93
+
+BetaSproutTower7_BlockData: ; 0xaaf93
+ INCBIN "maps/BetaSproutTower7.blk"
+; 0xaafed
+
+Route17_BlockData: ; 0xaafed
+ INCBIN "maps/Route17.blk"
+; 0xab1af
+
+BetaMahoganyTown_BlockData: ; 0xab1af
+ INCBIN "maps/BetaMahoganyTown.blk"
+; 0xab209
+
+Route31_BlockData: ; 0xab209
+ INCBIN "maps/Route31.blk"
+; 0xab2bd
+
+Route27_BlockData: ; 0xab2bd
+ INCBIN "maps/Route27.blk"
+; 0xab425
+
+Route35_BlockData: ; 0xab425
+ INCBIN "maps/Route35.blk"
+; 0xab4d9
+
+Route43_BlockData: ; 0xab4d9
+ INCBIN "maps/Route43.blk"
+; 0xab5e7
+
+Route39_BlockData: ; 0xab5e7
+ INCBIN "maps/Route39.blk"
+; 0xab69b
+
+KrissHouse1F_BlockData: ; 0xab69b
+ INCBIN "maps/KrissHouse1F.blk"
+; 0xab6af
+
+Route38EcruteakGate_BlockData: ; 0xab6af
+ INCBIN "maps/Route38EcruteakGate.blk"
+; 0xab6c3
+
+BetaAzaleaTown_BlockData: ; 0xab6c3
+ INCBIN "maps/BetaAzaleaTown.blk"
+; 0xab82b
+
+VermilionCity_BlockData: ; 0xab82b
+ INCBIN "maps/VermilionCity.blk"
+; 0xab993
+
+BetaOlivineCity_BlockData: ; 0xab993
+ INCBIN "maps/BetaOlivineCity.blk"
+; 0xabafb
+
+BetaNewBarkTown_BlockData: ; 0xabafb
+ INCBIN "maps/BetaNewBarkTown.blk"
+; 0xabb55
+
+ElmsLab_BlockData: ; 0xabb55
+ INCBIN "maps/ElmsLab.blk"
+; 0xabb73
+
+CeruleanCity_BlockData: ; 0xabb73
+ INCBIN "maps/CeruleanCity.blk"
+; 0xabcdb
+
+Route1_BlockData: ; 0xabcdb
+ INCBIN "maps/Route1.blk"
+; 0xabd8f
+
+Route5_BlockData: ; 0xabd8f
+ INCBIN "maps/Route5.blk"
+; 0xabde9
+
+Route9_BlockData: ; 0xabde9
+ INCBIN "maps/Route9.blk"
+; 0xabef7
+
+Route22_BlockData: ; 0xabef7
+ INCBIN "maps/Route22.blk"
+; 0xabfab
+
diff --git a/maps/blockdata_2.asm b/maps/blockdata_2.asm
new file mode 100644
index 000000000..6e0059d2a
--- /dev/null
+++ b/maps/blockdata_2.asm
@@ -0,0 +1,552 @@
+Route14_BlockData: ; 0xac000
+ INCBIN "maps/Route14.blk"
+; 0xac0b4
+
+BetaSproutTower8_BlockData: ; 0xac0b4
+ INCBIN "maps/BetaSproutTower8.blk"
+; 0xac10e
+
+OlivineMart_BlockData: ; 0xac10e
+ INCBIN "maps/OlivineMart.blk"
+; 0xac126
+
+Route10North_BlockData: ; 0xac126
+ INCBIN "maps/Route10North.blk"
+; 0xac180
+
+BetaLakeOfRage_BlockData: ; 0xac180
+ INCBIN "maps/BetaLakeOfRage.blk"
+; 0xac2e8
+
+OlivinePokeCenter1F_BlockData: ; 0xac2e8
+ INCBIN "maps/OlivinePokeCenter1F.blk"
+; 0xac2fc
+
+BetaPewterMuseumOfScience1F_BlockData: ; 0xac2fc
+ INCBIN "maps/BetaPewterMuseumOfScience1F.blk"
+; 0xac324
+
+BetaPewterMuseumOfScience2F_BlockData: ; 0xac324
+ INCBIN "maps/BetaPewterMuseumOfScience2F.blk"
+; 0xac340
+
+EarlsPokemonAcademy_BlockData: ; 0xac340
+ INCBIN "maps/EarlsPokemonAcademy.blk"
+; 0xac360
+
+BetaCinnabarIslandPokemonLabHallway_BlockData: ; 0xac360
+ INCBIN "maps/BetaCinnabarIslandPokemonLabHallway.blk"
+; 0xac384
+
+BetaCinnabarIslandPokemonLabRoom1_BlockData: ; 0xac384
+ INCBIN "maps/BetaCinnabarIslandPokemonLabRoom1.blk"
+; 0xac394
+
+BetaCinnabarIslandPokemonLabRoom2_BlockData: ; 0xac394
+ INCBIN "maps/BetaCinnabarIslandPokemonLabRoom2.blk"
+; 0xac3a4
+
+BetaCinnabarIslandPokemonLabRoom3_BlockData: ; 0xac3a4
+ INCBIN "maps/BetaCinnabarIslandPokemonLabRoom3.blk"
+; 0xac3b4
+
+GoldenrodDeptStore1F_BlockData: ; 0xac3b4
+ INCBIN "maps/GoldenrodDeptStore1F.blk"
+; 0xac3d4
+
+GoldenrodDeptStore2F_BlockData: ; 0xac3d4
+ INCBIN "maps/GoldenrodDeptStore2F.blk"
+; 0xac3f4
+
+GoldenrodDeptStore3F_BlockData: ; 0xac3f4
+ INCBIN "maps/GoldenrodDeptStore3F.blk"
+; 0xac414
+
+GoldenrodDeptStore4F_BlockData: ; 0xac414
+ INCBIN "maps/GoldenrodDeptStore4F.blk"
+; 0xac434
+
+GoldenrodDeptStore5F_BlockData: ; 0xac434
+ INCBIN "maps/GoldenrodDeptStore5F.blk"
+; 0xac454
+
+GoldenrodDeptStore6F_BlockData: ; 0xac454
+ INCBIN "maps/GoldenrodDeptStore6F.blk"
+; 0xac474
+
+GoldenrodDeptStoreElevator_BlockData: ; 0xac474
+ INCBIN "maps/GoldenrodDeptStoreElevator.blk"
+; 0xac478
+
+CeladonMansion1F_BlockData: ; 0xac478
+ INCBIN "maps/CeladonMansion1F.blk"
+; 0xac48c
+
+CeladonMansion2F_BlockData: ; 0xac48c
+ INCBIN "maps/CeladonMansion2F.blk"
+; 0xac4a0
+
+CeladonMansion3F_BlockData: ; 0xac4a0
+ INCBIN "maps/CeladonMansion3F.blk"
+; 0xac4b4
+
+CeladonMansionRoof_BlockData: ; 0xac4b4
+ INCBIN "maps/CeladonMansionRoof.blk"
+; 0xac4c8
+
+BetaHouse_BlockData: ; 0xac4c8
+ INCBIN "maps/BetaHouse.blk"
+; 0xac4d8
+
+CeladonGameCorner_BlockData: ; 0xac4d8
+ INCBIN "maps/CeladonGameCorner.blk"
+; 0xac51e
+
+CeladonGameCornerPrizeRoom_BlockData: ; 0xac51e
+ INCBIN "maps/CeladonGameCornerPrizeRoom.blk"
+; 0xac527
+
+Colosseum_BlockData: ; 0xac527
+ INCBIN "maps/Colosseum.blk"
+; 0xac53b
+
+TradeCenter_BlockData: ; 0xac53b
+ INCBIN "maps/TradeCenter.blk"
+; 0xac54f
+
+EcruteakLugiaSpeechHouse_BlockData: ; 0xac54f
+ INCBIN "maps/EcruteakLugiaSpeechHouse.blk"
+; 0xac55f
+
+BetaCave_BlockData: ; 0xac55f
+ INCBIN "maps/BetaCave.blk"
+; 0xac5b9
+
+UnionCaveB1F_BlockData: ; 0xac5b9
+ INCBIN "maps/UnionCaveB1F.blk"
+; 0xac66d
+
+UnionCaveB2F_BlockData: ; 0xac66d
+ INCBIN "maps/UnionCaveB2F.blk"
+; 0xac721
+
+UnionCave1F_BlockData: ; 0xac721
+ INCBIN "maps/UnionCave1F.blk"
+; 0xac7d5
+
+NationalPark_BlockData: ; 0xac7d5
+ INCBIN "maps/NationalPark.blk"
+; 0xac9f1
+
+Route6UndergroundEntrance_BlockData: ; 0xac9f1
+ INCBIN "maps/Route6UndergroundEntrance.blk"
+; 0xaca01
+
+BetaPokecenterTradeStation_BlockData: ; 0xaca01
+ INCBIN "maps/BetaPokecenterTradeStation.blk"
+; 0xaca11
+
+KurtsHouse_BlockData: ; 0xaca11
+ INCBIN "maps/KurtsHouse.blk"
+; 0xaca31
+
+GoldenrodMagnetTrainStation_BlockData: ; 0xaca31
+ INCBIN "maps/GoldenrodMagnetTrainStation.blk"
+; 0xaca8b
+
+RuinsofAlphOutside_BlockData: ; 0xaca8b
+ INCBIN "maps/RuinsofAlphOutside.blk"
+; 0xacb3f
+
+BetaAlphRuinUnsolvedPuzzleRoom_BlockData: ; 0xacb3f
+ INCBIN "maps/BetaAlphRuinUnsolvedPuzzleRoom.blk"
+; 0xacb53
+
+RuinsofAlphInnerChamber_BlockData: ; 0xacb53
+ INCBIN "maps/RuinsofAlphInnerChamber.blk"
+; 0xacbdf
+
+RuinsofAlphHoOhChamber_BlockData: ; 0xacbdf
+ INCBIN "maps/RuinsofAlphHoOhChamber.blk"
+; 0xacbf3
+
+SproutTower1F_BlockData: ; 0xacbf3
+ INCBIN "maps/SproutTower1F.blk"
+; 0xacc43
+
+BetaSproutTowerCutOut1_BlockData: ; 0xacc43
+ INCBIN "maps/BetaSproutTowerCutOut1.blk"
+; 0xacc4d
+
+SproutTower2F_BlockData: ; 0xacc4d
+ INCBIN "maps/SproutTower2F.blk"
+; 0xacc9d
+
+BetaSproutTowerCutOut2_BlockData: ; 0xacc9d
+ INCBIN "maps/BetaSproutTowerCutOut2.blk"
+; 0xacca7
+
+SproutTower3F_BlockData: ; 0xacca7
+ INCBIN "maps/SproutTower3F.blk"
+; 0xaccf7
+
+BetaSproutTowerCutOut3_BlockData: ; 0xaccf7
+ INCBIN "maps/BetaSproutTowerCutOut3.blk"
+; 0xacd01
+
+RadioTower1F_BlockData: ; 0xacd01
+ INCBIN "maps/RadioTower1F.blk"
+; 0xacd25
+
+RadioTower2F_BlockData: ; 0xacd25
+ INCBIN "maps/RadioTower2F.blk"
+; 0xacd49
+
+RadioTower3F_BlockData: ; 0xacd49
+ INCBIN "maps/RadioTower3F.blk"
+; 0xacd6d
+
+RadioTower4F_BlockData: ; 0xacd6d
+ INCBIN "maps/RadioTower4F.blk"
+; 0xacd91
+
+RadioTower5F_BlockData: ; 0xacd91
+ INCBIN "maps/RadioTower5F.blk"
+; 0xacdb5
+
+NewBarkTown_BlockData: ; 0xacdb5
+ INCBIN "maps/NewBarkTown.blk"
+; 0xace0f
+
+CherrygroveCity_BlockData: ; 0xace0f
+ INCBIN "maps/CherrygroveCity.blk"
+; 0xacec3
+
+VioletCity_BlockData: ; 0xacec3
+ INCBIN "maps/VioletCity.blk"
+; 0xad02b
+
+AzaleaTown_BlockData: ; 0xad02b
+ INCBIN "maps/AzaleaTown.blk"
+; 0xad0df
+
+CianwoodCity_BlockData: ; 0xad0df
+ INCBIN "maps/CianwoodCity.blk"
+; 0xad274
+
+GoldenrodCity_BlockData: ; 0xad274
+ INCBIN "maps/GoldenrodCity.blk"
+; 0xad3dc
+
+OlivineCity_BlockData: ; 0xad3dc
+ INCBIN "maps/OlivineCity.blk"
+; 0xad544
+
+EcruteakCity_BlockData: ; 0xad544
+ INCBIN "maps/EcruteakCity.blk"
+; 0xad6ac
+
+MahoganyTown_BlockData: ; 0xad6ac
+ INCBIN "maps/MahoganyTown.blk"
+; 0xad706
+
+LakeofRage_BlockData: ; 0xad706
+ INCBIN "maps/LakeofRage.blk"
+; 0xad86e
+
+BlackthornCity_BlockData: ; 0xad86e
+ INCBIN "maps/BlackthornCity.blk"
+; 0xad9d6
+
+SilverCaveOutside_BlockData: ; 0xad9d6
+ INCBIN "maps/SilverCaveOutside.blk"
+; 0xadb3e
+
+Route6_BlockData: ; 0xadb3e
+ INCBIN "maps/Route6.blk"
+; 0xadb98
+
+Route7_BlockData: ; 0xadb98
+ INCBIN "maps/Route7.blk"
+; 0xadbf2
+
+Route16_BlockData: ; 0xadbf2
+ INCBIN "maps/Route16.blk"
+; 0xadc4c
+
+Route18_BlockData: ; 0xadc4c
+ INCBIN "maps/Route18.blk"
+; 0xadca6
+
+WarehouseEntrance_BlockData: ; 0xadca6
+ INCBIN "maps/WarehouseEntrance.blk"
+; 0xaddb4
+
+UndergroundPathSwitchRoomEntrances_BlockData: ; 0xaddb4
+ INCBIN "maps/UndergroundPathSwitchRoomEntrances.blk"
+; 0xadec2
+
+GoldenrodDeptStoreB1F_BlockData: ; 0xadec2
+ INCBIN "maps/GoldenrodDeptStoreB1F.blk"
+; 0xadf1c
+
+UndergroundWarehouse_BlockData: ; 0xadf1c
+ INCBIN "maps/UndergroundWarehouse.blk"
+; 0xadf76
+
+BetaElevator_BlockData: ; 0xadf76
+ INCBIN "maps/BetaElevator.blk"
+; 0xadf8f
+
+TinTower1F_BlockData: ; 0xadf8f
+ INCBIN "maps/TinTower1F.blk"
+; 0xadfe9
+
+TinTower2F_BlockData: ; 0xadfe9
+ INCBIN "maps/TinTower2F.blk"
+; 0xae043
+
+TinTower3F_BlockData: ; 0xae043
+ INCBIN "maps/TinTower3F.blk"
+; 0xae09d
+
+TinTower4F_BlockData: ; 0xae09d
+ INCBIN "maps/TinTower4F.blk"
+; 0xae0f7
+
+TinTower5F_BlockData: ; 0xae0f7
+ INCBIN "maps/TinTower5F.blk"
+; 0xae151
+
+TinTower6F_BlockData: ; 0xae151
+ INCBIN "maps/TinTower6F.blk"
+; 0xae1ab
+
+TinTower7F_BlockData: ; 0xae1ab
+ INCBIN "maps/TinTower7F.blk"
+; 0xae205
+
+TinTower8F_BlockData: ; 0xae205
+ INCBIN "maps/TinTower8F.blk"
+; 0xae25f
+
+TinTower9F_BlockData: ; 0xae25f
+ INCBIN "maps/TinTower9F.blk"
+; 0xae2b9
+
+TinTowerRoof_BlockData: ; 0xae2b9
+ INCBIN "maps/TinTowerRoof.blk"
+; 0xae313
+
+BurnedTower1F_BlockData: ; 0xae313
+ INCBIN "maps/BurnedTower1F.blk"
+; 0xae36d
+
+BurnedTowerB1F_BlockData: ; 0xae36d
+ INCBIN "maps/BurnedTowerB1F.blk"
+; 0xae3c7
+
+BetaCaveTestMap_BlockData: ; 0xae3c7
+ INCBIN "maps/BetaCaveTestMap.blk"
+; 0xae4d5
+
+MountMortar1FOutside_BlockData: ; 0xae4d5
+ INCBIN "maps/MountMortar1FOutside.blk"
+; 0xae63d
+
+MountMortar1FInside_BlockData: ; 0xae63d
+ INCBIN "maps/MountMortar1FInside.blk"
+; 0xae859
+
+MountMortar2FInside_BlockData: ; 0xae859
+ INCBIN "maps/MountMortar2FInside.blk"
+; 0xae9c1
+
+MountMortarB1F_BlockData: ; 0xae9c1
+ INCBIN "maps/MountMortarB1F.blk"
+; 0xaeb29
+
+IcePath1F_BlockData: ; 0xaeb29
+ INCBIN "maps/IcePath1F.blk"
+; 0xaec91
+
+IcePathB1F_BlockData: ; 0xaec91
+ INCBIN "maps/IcePathB1F.blk"
+; 0xaed45
+
+IcePathB2FMahoganySide_BlockData: ; 0xaed45
+ INCBIN "maps/IcePathB2FMahoganySide.blk"
+; 0xaed9f
+
+IcePathB2FBlackthornSide_BlockData: ; 0xaed9f
+ INCBIN "maps/IcePathB2FBlackthornSide.blk"
+; 0xaedcc
+
+IcePathB3F_BlockData: ; 0xaedcc
+ INCBIN "maps/IcePathB3F.blk"
+; 0xaee26
+
+WhirlIslandNW_BlockData: ; 0xaee26
+ INCBIN "maps/WhirlIslandNW.blk"
+; 0xaee53
+
+WhirlIslandNE_BlockData: ; 0xaee53
+ INCBIN "maps/WhirlIslandNE.blk"
+; 0xaeead
+
+WhirlIslandSW_BlockData: ; 0xaeead
+ INCBIN "maps/WhirlIslandSW.blk"
+; 0xaef07
+
+WhirlIslandCave_BlockData: ; 0xaef07
+ INCBIN "maps/WhirlIslandCave.blk"
+; 0xaef34
+
+WhirlIslandSE_BlockData: ; 0xaef34
+ INCBIN "maps/WhirlIslandSE.blk"
+; 0xaef61
+
+WhirlIslandB1F_BlockData: ; 0xaef61
+ INCBIN "maps/WhirlIslandB1F.blk"
+; 0xaf0c9
+
+WhirlIslandB2F_BlockData: ; 0xaf0c9
+ INCBIN "maps/WhirlIslandB2F.blk"
+; 0xaf17d
+
+WhirlIslandLugiaChamber_BlockData: ; 0xaf17d
+ INCBIN "maps/WhirlIslandLugiaChamber.blk"
+; 0xaf1d7
+
+SilverCaveRoom1_BlockData: ; 0xaf1d7
+ INCBIN "maps/SilverCaveRoom1.blk"
+; 0xaf28b
+
+SilverCaveRoom2_BlockData: ; 0xaf28b
+ INCBIN "maps/SilverCaveRoom2.blk"
+; 0xaf399
+
+SilverCaveRoom3_BlockData: ; 0xaf399
+ INCBIN "maps/SilverCaveRoom3.blk"
+; 0xaf44d
+
+BetaRocketHideout1_BlockData: ; 0xaf44d
+ INCBIN "maps/BetaRocketHideout1.blk"
+; 0xaf55b
+
+BetaRocketHideout2_BlockData: ; 0xaf55b
+ INCBIN "maps/BetaRocketHideout2.blk"
+; 0xaf669
+
+BetaEmptyHouse_BlockData: ; 0xaf669
+ INCBIN "maps/BetaEmptyHouse.blk"
+; 0xaf777
+
+BetaRocketHideout3_BlockData: ; 0xaf777
+ INCBIN "maps/BetaRocketHideout3.blk"
+; 0xaf885
+
+MahoganyMart1F_BlockData: ; 0xaf885
+ INCBIN "maps/MahoganyMart1F.blk"
+; 0xaf895
+
+TeamRocketBaseB1F_BlockData: ; 0xaf895
+ INCBIN "maps/TeamRocketBaseB1F.blk"
+; 0xaf91c
+
+TeamRocketBaseB2F_BlockData: ; 0xaf91c
+ INCBIN "maps/TeamRocketBaseB2F.blk"
+; 0xaf9a3
+
+TeamRocketBaseB3F_BlockData: ; 0xaf9a3
+ INCBIN "maps/TeamRocketBaseB3F.blk"
+; 0xafa2a
+
+BetaRoute23EarlyVersion_BlockData: ; 0xafa2a
+ INCBIN "maps/BetaRoute23EarlyVersion.blk"
+; 0xafa84
+
+IndigoPlateauPokeCenter1F_BlockData: ; 0xafa84
+ INCBIN "maps/IndigoPlateauPokeCenter1F.blk"
+; 0xafac3
+
+WillsRoom_BlockData: ; 0xafac3
+ INCBIN "maps/WillsRoom.blk"
+; 0xafaf0
+
+KogasRoom_BlockData: ; 0xafaf0
+ INCBIN "maps/KogasRoom.blk"
+; 0xafb1d
+
+BrunosRoom_BlockData: ; 0xafb1d
+ INCBIN "maps/BrunosRoom.blk"
+; 0xafb4a
+
+KarensRoom_BlockData: ; 0xafb4a
+ INCBIN "maps/KarensRoom.blk"
+; 0xafb77
+
+AzaleaGym_BlockData: ; 0xafb77
+ INCBIN "maps/AzaleaGym.blk"
+; 0xafb9f
+
+VioletGym_BlockData: ; 0xafb9f
+ INCBIN "maps/VioletGym.blk"
+; 0xafbc7
+
+GoldenrodGym_BlockData: ; 0xafbc7
+ INCBIN "maps/GoldenrodGym.blk"
+; 0xafc21
+
+EcruteakGym_BlockData: ; 0xafc21
+ INCBIN "maps/EcruteakGym.blk"
+; 0xafc4e
+
+MahoganyGym_BlockData: ; 0xafc4e
+ INCBIN "maps/MahoganyGym.blk"
+; 0xafc7b
+
+OlivineGym_BlockData: ; 0xafc7b
+ INCBIN "maps/OlivineGym.blk"
+; 0xafca3
+
+BetaUnknown_BlockData: ; 0xafca3
+ INCBIN "maps/BetaUnknown.blk"
+; 0xafcb7
+
+CianwoodGym_BlockData: ; 0xafcb7
+ INCBIN "maps/CianwoodGym.blk"
+; 0xafce4
+
+BlackthornGym1F_BlockData: ; 0xafce4
+ INCBIN "maps/BlackthornGym1F.blk"
+; 0xafd11
+
+BlackthornGym2F_BlockData: ; 0xafd11
+ INCBIN "maps/BlackthornGym2F.blk"
+; 0xafd3e
+
+OlivineLighthouse1F_BlockData: ; 0xafd3e
+ INCBIN "maps/OlivineLighthouse1F.blk"
+; 0xafd98
+
+OlivineLighthouse2F_BlockData: ; 0xafd98
+ INCBIN "maps/OlivineLighthouse2F.blk"
+; 0xafdf2
+
+OlivineLighthouse3F_BlockData: ; 0xafdf2
+ INCBIN "maps/OlivineLighthouse3F.blk"
+; 0xafe4c
+
+OlivineLighthouse4F_BlockData: ; 0xafe4c
+ INCBIN "maps/OlivineLighthouse4F.blk"
+; 0xafea6
+
+OlivineLighthouse5F_BlockData: ; 0xafea6
+ INCBIN "maps/OlivineLighthouse5F.blk"
+; 0xaff00
+
+OlivineLighthouse6F_BlockData: ; 0xaff00
+ INCBIN "maps/OlivineLighthouse6F.blk"
+; 0xaff5a
+
diff --git a/maps/blockdata_3.asm b/maps/blockdata_3.asm
new file mode 100644
index 000000000..261406e84
--- /dev/null
+++ b/maps/blockdata_3.asm
@@ -0,0 +1,348 @@
+BetaCave2_BlockData: ; 0xb0000
+ INCBIN "maps/BetaCave2.blk"
+; 0xb0023
+
+SlowpokeWellB1F_BlockData: ; 0xb0023
+ INCBIN "maps/SlowpokeWellB1F.blk"
+; 0xb007d
+
+SlowpokeWellB2F_BlockData: ; 0xb007d
+ INCBIN "maps/SlowpokeWellB2F.blk"
+; 0xb00d7
+
+IlexForest_BlockData: ; 0xb00d7
+ INCBIN "maps/IlexForest.blk"
+; 0xb026c
+
+DarkCaveVioletEntrance_BlockData: ; 0xb026c
+ INCBIN "maps/DarkCaveVioletEntrance.blk"
+; 0xb03d4
+
+DarkCaveBlackthornEntrance_BlockData: ; 0xb03d4
+ INCBIN "maps/DarkCaveBlackthornEntrance.blk"
+; 0xb04e2
+
+RuinsofAlphResearchCenter_BlockData: ; 0xb04e2
+ INCBIN "maps/RuinsofAlphResearchCenter.blk"
+; 0xb04f2
+
+GoldenrodBikeShop_BlockData: ; 0xb04f2
+ INCBIN "maps/GoldenrodBikeShop.blk"
+; 0xb0502
+
+DanceTheatre_BlockData: ; 0xb0502
+ INCBIN "maps/DanceTheatre.blk"
+; 0xb052c
+
+EcruteakHouse_BlockData: ; 0xb052c
+ INCBIN "maps/EcruteakHouse.blk"
+; 0xb0586
+
+GoldenrodGameCorner_BlockData: ; 0xb0586
+ INCBIN "maps/GoldenrodGameCorner.blk"
+; 0xb05cc
+
+Route35NationalParkgate_BlockData: ; 0xb05cc
+ INCBIN "maps/Route35NationalParkgate.blk"
+; 0xb05dc
+
+Route36NationalParkgate_BlockData: ; 0xb05dc
+ INCBIN "maps/Route36NationalParkgate.blk"
+; 0xb05f0
+
+FastShip1F_BlockData: ; 0xb05f0
+ INCBIN "maps/FastShip1F.blk"
+; 0xb0680
+
+FastShipB1F_BlockData: ; 0xb0680
+ INCBIN "maps/FastShipB1F.blk"
+; 0xb0700
+
+BetaSsAquaInsideCutOut_BlockData: ; 0xb0700
+ INCBIN "maps/BetaSsAquaInsideCutOut.blk"
+; 0xb0710
+
+FastShipCabins_NNW_NNE_NE_BlockData: ; 0xb0710
+ INCBIN "maps/FastShipCabins_NNW_NNE_NE.blk"
+; 0xb0750
+
+FastShipCabins_SW_SSW_NW_BlockData: ; 0xb0750
+ INCBIN "maps/FastShipCabins_SW_SSW_NW.blk"
+; 0xb0790
+
+FastShipCabins_SE_SSE_CaptainsCabin_BlockData: ; 0xb0790
+ INCBIN "maps/FastShipCabins_SE_SSE_CaptainsCabin.blk"
+; 0xb07e5
+
+OlivinePort_BlockData: ; 0xb07e5
+ INCBIN "maps/OlivinePort.blk"
+; 0xb0899
+
+VermilionPort_BlockData: ; 0xb0899
+ INCBIN "maps/VermilionPort.blk"
+; 0xb094d
+
+OlivineCafe_BlockData: ; 0xb094d
+ INCBIN "maps/OlivineCafe.blk"
+; 0xb095d
+
+KrissHouse2F_BlockData: ; 0xb095d
+ INCBIN "maps/KrissHouse2F.blk"
+; 0xb0969
+
+SaffronTrainStation_BlockData: ; 0xb0969
+ INCBIN "maps/SaffronTrainStation.blk"
+; 0xb09c3
+
+CeruleanGym_BlockData: ; 0xb09c3
+ INCBIN "maps/CeruleanGym.blk"
+; 0xb09eb
+
+VermilionGym_BlockData: ; 0xb09eb
+ INCBIN "maps/VermilionGym.blk"
+; 0xb0a18
+
+SaffronGym_BlockData: ; 0xb0a18
+ INCBIN "maps/SaffronGym.blk"
+; 0xb0a72
+
+PowerPlant_BlockData: ; 0xb0a72
+ INCBIN "maps/PowerPlant.blk"
+; 0xb0acc
+
+PokemonFanClub_BlockData: ; 0xb0acc
+ INCBIN "maps/PokemonFanClub.blk"
+; 0xb0ae0
+
+FightingDojo_BlockData: ; 0xb0ae0
+ INCBIN "maps/FightingDojo.blk"
+; 0xb0afe
+
+SilphCo1F_BlockData: ; 0xb0afe
+ INCBIN "maps/SilphCo1F.blk"
+; 0xb0b1e
+
+ViridianGym_BlockData: ; 0xb0b1e
+ INCBIN "maps/ViridianGym.blk"
+; 0xb0b4b
+
+TrainerHouse1F_BlockData: ; 0xb0b4b
+ INCBIN "maps/TrainerHouse1F.blk"
+; 0xb0b6e
+
+TrainerHouseB1F_BlockData: ; 0xb0b6e
+ INCBIN "maps/TrainerHouseB1F.blk"
+; 0xb0b96
+
+RedsHouse1F_BlockData: ; 0xb0b96
+ INCBIN "maps/RedsHouse1F.blk"
+; 0xb0ba6
+
+RedsHouse2F_BlockData: ; 0xb0ba6
+ INCBIN "maps/RedsHouse2F.blk"
+; 0xb0bb6
+
+OaksLab_BlockData: ; 0xb0bb6
+ INCBIN "maps/OaksLab.blk"
+; 0xb0bd4
+
+MrFujisHouse_BlockData: ; 0xb0bd4
+ INCBIN "maps/MrFujisHouse.blk"
+; 0xb0be8
+
+LavRadioTower1F_BlockData: ; 0xb0be8
+ INCBIN "maps/LavRadioTower1F.blk"
+; 0xb0c10
+
+SilverCaveItemRooms_BlockData: ; 0xb0c10
+ INCBIN "maps/SilverCaveItemRooms.blk"
+; 0xb0c6a
+
+DayCare_BlockData: ; 0xb0c6a
+ INCBIN "maps/DayCare.blk"
+; 0xb0c7e
+
+SoulHouse_BlockData: ; 0xb0c7e
+ INCBIN "maps/SoulHouse.blk"
+; 0xb0c92
+
+PewterGym_BlockData: ; 0xb0c92
+ INCBIN "maps/PewterGym.blk"
+; 0xb0cb5
+
+CeladonGym_BlockData: ; 0xb0cb5
+ INCBIN "maps/CeladonGym.blk"
+; 0xb0ce2
+
+BetaHouse2_BlockData: ; 0xb0ce2
+ INCBIN "maps/BetaHouse2.blk"
+; 0xb0cf6
+
+CeladonCafe_BlockData: ; 0xb0cf6
+ INCBIN "maps/CeladonCafe.blk"
+; 0xb0d0e
+
+BetaCeladonMansion_BlockData: ; 0xb0d0e
+ INCBIN "maps/BetaCeladonMansion.blk"
+; 0xb0d26
+
+RockTunnel1F_BlockData: ; 0xb0d26
+ INCBIN "maps/RockTunnel1F.blk"
+; 0xb0e34
+
+RockTunnelB1F_BlockData: ; 0xb0e34
+ INCBIN "maps/RockTunnelB1F.blk"
+; 0xb0f42
+
+DiglettsCave_BlockData: ; 0xb0f42
+ INCBIN "maps/DiglettsCave.blk"
+; 0xb0ff6
+
+MountMoon_BlockData: ; 0xb0ff6
+ INCBIN "maps/MountMoon.blk"
+; 0xb107d
+
+SeafoamGym_BlockData: ; 0xb107d
+ INCBIN "maps/SeafoamGym.blk"
+; 0xb1091
+
+MrPokemonsHouse_BlockData: ; 0xb1091
+ INCBIN "maps/MrPokemonsHouse.blk"
+; 0xb10a1
+
+VictoryRoadGate_BlockData: ; 0xb10a1
+ INCBIN "maps/VictoryRoadGate.blk"
+; 0xb10fb
+
+OlivinePortPassage_BlockData: ; 0xb10fb
+ INCBIN "maps/OlivinePortPassage.blk"
+; 0xb1155
+
+FuchsiaGym_BlockData: ; 0xb1155
+ INCBIN "maps/FuchsiaGym.blk"
+; 0xb1182
+
+SafariZoneBeta_BlockData: ; 0xb1182
+ INCBIN "maps/SafariZoneBeta.blk"
+; 0xb1236
+
+Underground_BlockData: ; 0xb1236
+ INCBIN "maps/Underground.blk"
+; 0xb1260
+
+Route39Barn_BlockData: ; 0xb1260
+ INCBIN "maps/Route39Barn.blk"
+; 0xb1270
+
+VictoryRoad_BlockData: ; 0xb1270
+ INCBIN "maps/VictoryRoad.blk"
+; 0xb13d8
+
+Route23_BlockData: ; 0xb13d8
+ INCBIN "maps/Route23.blk"
+; 0xb1432
+
+LancesRoom_BlockData: ; 0xb1432
+ INCBIN "maps/LancesRoom.blk"
+; 0xb146e
+
+HallOfFame_BlockData: ; 0xb146e
+ INCBIN "maps/HallOfFame.blk"
+; 0xb1491
+
+CopycatsHouse1F_BlockData: ; 0xb1491
+ INCBIN "maps/CopycatsHouse1F.blk"
+; 0xb14a1
+
+CopycatsHouse2F_BlockData: ; 0xb14a1
+ INCBIN "maps/CopycatsHouse2F.blk"
+; 0xb14b0
+
+GoldenrodFlowerShop_BlockData: ; 0xb14b0
+ INCBIN "maps/GoldenrodFlowerShop.blk"
+; 0xb14c0
+
+MountMoonSquare_BlockData: ; 0xb14c0
+ INCBIN "maps/MountMoonSquare.blk"
+; 0xb1547
+
+WiseTriosRoom_BlockData: ; 0xb1547
+ INCBIN "maps/WiseTriosRoom.blk"
+; 0xb1557
+
+DragonsDen1F_BlockData: ; 0xb1557
+ INCBIN "maps/DragonsDen1F.blk"
+; 0xb1584
+
+DragonsDenB1F_BlockData: ; 0xb1584
+ INCBIN "maps/DragonsDenB1F.blk"
+; 0xb16ec
+
+TohjoFalls_BlockData: ; 0xb16ec
+ INCBIN "maps/TohjoFalls.blk"
+; 0xb1773
+
+RuinsofAlphHoOhItemRoom_BlockData: ; 0xb1773
+ INCBIN "maps/RuinsofAlphHoOhItemRoom.blk"
+; 0xb1787
+
+RuinsofAlphHoOhWordRoom_BlockData: ; 0xb1787
+ INCBIN "maps/RuinsofAlphHoOhWordRoom.blk"
+; 0xb17ff
+
+RuinsofAlphKabutoWordRoom_BlockData: ; 0xb17ff
+ INCBIN "maps/RuinsofAlphKabutoWordRoom.blk"
+; 0xb1845
+
+RuinsofAlphOmanyteWordRoom_BlockData: ; 0xb1845
+ INCBIN "maps/RuinsofAlphOmanyteWordRoom.blk"
+; 0xb1895
+
+RuinsofAlphAerodactylWordRoom_BlockData: ; 0xb1895
+ INCBIN "maps/RuinsofAlphAerodactylWordRoom.blk"
+; 0xb18db
+
+DragonShrine_BlockData: ; 0xb18db
+ INCBIN "maps/DragonShrine.blk"
+; 0xb18f4
+
+BattleTower1F_BlockData: ; 0xb18f4
+ INCBIN "maps/BattleTower1F.blk"
+; 0xb191c
+
+BattleTowerBattleRoom_BlockData: ; 0xb191c
+ INCBIN "maps/BattleTowerBattleRoom.blk"
+; 0xb192c
+
+GoldenrodPokeComCenter2FMobile_BlockData: ; 0xb192c
+ INCBIN "maps/GoldenrodPokeComCenter2FMobile.blk"
+; 0xb1a2c
+
+MobileTradeRoomMobile_BlockData: ; 0xb1a2c
+ INCBIN "maps/MobileTradeRoomMobile.blk"
+; 0xb1a40
+
+MobileBattleRoom_BlockData: ; 0xb1a40
+ INCBIN "maps/MobileBattleRoom.blk"
+; 0xb1a54
+
+BattleTowerHallway_BlockData: ; 0xb1a54
+ INCBIN "maps/BattleTowerHallway.blk"
+; 0xb1a6a
+
+BattleTowerElevator_BlockData: ; 0xb1a6a
+ INCBIN "maps/BattleTowerElevator.blk"
+; 0xb1a6e
+
+BattleTowerOutside_BlockData: ; 0xb1a6e
+ INCBIN "maps/BattleTowerOutside.blk"
+; 0xb1afa
+
+BetaBlank_BlockData: ; 0xb1afa
+ INCBIN "maps/BetaBlank.blk"
+; 0xb1b22
+
+GoldenrodDeptStoreRoof_BlockData: ; 0xb1b22
+ INCBIN "maps/GoldenrodDeptStoreRoof.blk"
+; 0xb1b42
+
diff --git a/predef/cgb.asm b/predef/cgb.asm
new file mode 100644
index 000000000..aadc66a3d
--- /dev/null
+++ b/predef/cgb.asm
@@ -0,0 +1,922 @@
+; Replaces the functionality of sgb.asm to work with CGB hardware.
+
+CheckCGB: ; 8d55
+ ld a, [hCGB]
+ and a
+ ret
+; 8d59
+
+Function8d59: ; 8d59
+ ld a, b
+ cp $ff
+ jr nz, .asm_8d61
+ ld a, [SGBPredef]
+
+.asm_8d61
+ cp $fc
+ jp z, Function96f3
+ call Function9673
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, Table8d7a
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Function8d79
+ push de
+ jp [hl]
+; 8d79
+
+Function8d79: ; 8d79
+ ret
+; 8d7a
+
+Table8d7a: ; 8d7a
+ dw Function8db8
+ dw Function8ddb
+ dw Function8eb9
+ dw Function8edb
+ dw Function8f70
+ dw Function906e
+ dw Function90f8
+ dw Function9122
+ dw Function91ad
+ dw Function91c8
+ dw Function91d1
+ dw Function91e4
+ dw Function9228
+ dw Function9251
+ dw Function9373
+ dw Function93a6
+ dw Function93ba
+ dw Function9195
+ dw Function9499
+ dw Function94d0
+ dw Function93d3
+ dw Function9289
+ dw Function903e
+ dw Function8fca
+ dw Function925e
+ dw Function94fa
+ dw Function9529
+ dw Function9555
+ dw Function9578
+ dw Function9591
+ dw Function9542
+; 8db8
+
+Function8db8: ; 8db8
+ ld hl, $5c67
+ ld de, $d000
+ ld c, $4
+ call $5615
+ ld hl, $5c67
+ ld de, $d020
+ ld c, $4
+ call $5615
+ ld hl, $5c67
+ ld de, MartPointer
+ ld c, $2
+ call $5615
+ jr Function8e23
+
+Function8ddb: ; 8ddb
+ ld de, $d000
+ call Function9729
+ push hl
+ call Function9643
+ call Function973a
+ push hl
+ call Function9643
+ ld a, [EnemyHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ call Function9643
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ call Function9643
+ ld hl, $68ca
+ call Function9643
+ ld de, MartPointer
+ pop hl
+ call Function9643
+ pop hl
+ call Function9643
+ ld a, $1
+ ld [SGBPredef], a
+ call Function96a4
+
+Function8e23: ; 8e23
+ call Function8e85
+ ld hl, AttrMap
+ ld bc, $0168
+ ld a, $2
+ call ByteFill
+ ld hl, $ce29
+ ld bc, $080a
+ ld a, $0
+ call Function9663
+ ld hl, $cde3
+ ld bc, $070a
+ ld a, $1
+ call Function9663
+ ld hl, AttrMap
+ ld bc, $040a
+ ld a, $2
+ call Function9663
+ ld hl, $ce6f
+ ld bc, $050a
+ ld a, $3
+ call Function9663
+ ld hl, $cebf
+ ld bc, $0109
+ ld a, $4
+ call Function9663
+ ld hl, $cec9
+ ld bc, $0078
+ ld a, $7
+ call ByteFill
+ ld hl, $579c
+ ld de, $d050
+ ld bc, $0030
+ ld a, $5
+ call FarCopyWRAM
+ call Function96b3
+ ret
+; 8e85
+
+
+Function8e85: ; 8e85
+ ld a, $40
+ ld hl, $4dc0
+ rst FarCall
+ ld hl, $7311
+ jr nc, .asm_8e93
+ ld hl, $7309
+
+.asm_8e93
+ ld de, $d038
+ ld bc, $0008
+ ld a, $5
+ call FarCopyWRAM
+ ret
+; 8e9f
+
+Function8e9f: ; 8e9f
+ callba Function100dc0
+ ld hl, $7311
+ jr nc, .asm_8ead
+ ld hl, $7309
+
+.asm_8ead
+ ld de, $d000
+ ld bc, $0008
+ ld a, $5
+ call FarCopyWRAM
+ ret
+; 8eb9
+
+Function8eb9: ; 8eb9
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_8ec5
+ ld hl, $7759
+ jr .asm_8ec8
+
+.asm_8ec5
+ ld hl, $7729
+
+.asm_8ec8
+ ld de, $d000
+ ld bc, $0030
+ ld a, $5
+ call FarCopyWRAM
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8edb
+
+Function8edb: ; 8edb
+ ld de, $d000
+ ld a, [$cda1]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ call Function9643
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call Function974b
+ call Function9643
+ ld hl, $68ca
+ call Function9643
+ ld hl, $4f52
+ ld de, $d018
+ ld bc, $0018
+ ld a, $5
+ call FarCopyWRAM
+ call Function9699
+ ld hl, AttrMap
+ ld bc, $0814
+ ld a, $1
+ call Function9663
+ ld hl, $cf23
+ ld bc, $000a
+ ld a, $2
+ call ByteFill
+ ld hl, $ce4a
+ ld bc, $0202
+ ld a, $3
+ call Function9663
+ ld hl, $ce4c
+ ld bc, $0202
+ ld a, $4
+ call Function9663
+ ld hl, $ce4e
+ ld bc, $0202
+ ld a, $5
+ call Function9663
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8f52
+
+INCBIN "baserom.gbc", $8f52, $8f70 - $8f52
+
+Function8f70: ; 8f70
+ ld de, Unkn1Pals
+ ld a, $1d
+ call Function9625
+ call Function9630
+ ld a, [CurPartySpecies]
+ cp $ff
+ jr nz, .asm_8f8a
+ ld hl, $4fba
+ call Function9630
+ jr .asm_8f90
+
+.asm_8f8a
+ call Function9775
+ call Function9643
+
+.asm_8f90
+ call Function9699
+ ld hl, $cdee
+ ld bc, $0707
+ ld a, $1
+ call Function9663
+ call Function971a
+ ld hl, $4fc2
+ ld de, $d078
+ ld bc, $0008
+ ld a, $5
+ call FarCopyWRAM
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8fba
+
+INCBIN "baserom.gbc", $8fba, $8fca - $8fba
+
+Function8fca: ; 8fca
+ ld de, Unkn1Pals
+ ld a, $1d
+ call Function9625
+ call Function9630
+ ld a, [CurPartySpecies]
+ cp $ff
+ jr nz, .asm_8fe4
+ ld hl, $5036
+ call Function9630
+ jr .asm_8fed
+
+.asm_8fe4
+ ld bc, TempMonDVs
+ call Function974b
+ call Function9643
+
+.asm_8fed
+ call Function9699
+ ld hl, $ce2a
+ ld bc, $0707
+ ld a, $1
+ call Function9663
+ call Function971a
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9009
+
+INCBIN "baserom.gbc", $9009, $903e - $9009
+
+Function903e: ; 903e
+ ld de, Unkn1Pals
+ ld a, $1d
+ call Function9625
+ call Function9630
+ ld a, [CurPartySpecies]
+ call Function9775
+ call Function9643
+ call Function9699
+ ld hl, $ce44
+ ld bc, $0707
+ ld a, $1
+ call Function9663
+ call Function971a
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 906e
+
+Function906e: ; 906e
+ ld hl, $77a9
+ ld de, Unkn1Pals
+ ld bc, $0080
+ ld a, $5
+ call FarCopyWRAM
+ call Function9699
+ ld hl, $ce01
+ ld bc, $0a03
+ ld a, $2
+ call Function9663
+ ld hl, $ce12
+ ld bc, $0a03
+ ld a, $2
+ call Function9663
+ ld hl, $ce29
+ ld bc, $0603
+ ld a, $3
+ call Function9663
+ ld hl, $ce3a
+ ld bc, $0603
+ ld a, $3
+ call Function9663
+ ld hl, $ce51
+ ld bc, $0203
+ ld a, $4
+ call Function9663
+ ld hl, $ce62
+ ld bc, $0203
+ ld a, $4
+ call Function9663
+ ld hl, $ce05
+ ld bc, $020c
+ ld a, $1
+ call Function9663
+ ld hl, $ce04
+ ld bc, $0a01
+ ld a, $1
+ call Function9663
+ ld hl, $ce11
+ ld bc, $0a01
+ ld a, $1
+ call Function9663
+ ld hl, $cec9
+ ld bc, $0078
+ ld a, $7
+ call ByteFill
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 90f8
+
+Function90f8: ; 90f8
+ ld hl, $5ca7
+ call Function9610
+ call Function9699
+ ld de, Unkn2Pals
+ ld a, $3c
+ call Function9625
+ call Function9630
+ ld hl, $ce51
+ ld bc, $0c14
+ ld a, $1
+ call Function9663
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9122
+
+Function9122: ; 9122
+ ld b, $0
+ ld hl, $512d
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 912d
+
+INCBIN "baserom.gbc", $912d, $9195 - $912d
+
+Function9195: ; 9195
+ ld hl, $7789
+ ld de, Unkn1Pals
+ ld bc, $0028
+ ld a, $5
+ call FarCopyWRAM
+ call Function96a4
+ call Function9699
+ call Function96b3
+ ret
+; 91ad
+
+Function91ad: ; 91ad
+ ld hl, $7641
+ ld de, Unkn1Pals
+ ld bc, $0080
+ ld a, $5
+ call FarCopyWRAM
+ ld hl, $5cb7
+ call Function9610
+ call Function9699
+ call Function96b3
+ ret
+; 91c8
+
+Function91c8: ; 91c8
+ call Functionb1de
+ ld a, $9
+ ld [SGBPredef], a
+ ret
+; 91d1
+
+Function91d1: ; 91d1
+ ld hl, $5c57
+ call Function9610
+ call Function8e9f
+ call Function8e85
+ call Function971a
+ call Function96b3
+ ret
+; 91e4
+
+Function91e4: ; 91e4
+ ld de, Unkn1Pals
+ ld a, c
+ and a
+ jr z, .asm_91f5
+ ld a, $1a
+ call Function9625
+ call Function9630
+ jr .asm_921a
+
+.asm_91f5
+ ld hl, PartyMon1DVs
+ ld bc, $0030
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld c, l
+ ld b, h
+ ld a, [PlayerHPPal]
+ call Function974b
+ call Function9643
+ ld hl, $579c
+ ld de, $d050
+ ld bc, $0030
+ ld a, $5
+ call FarCopyWRAM
+
+.asm_921a
+ call Function9699
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9228
+
+Function9228: ; 9228
+ ld hl, $76f1
+ ld de, Unkn1Pals
+ ld bc, $0028
+ ld a, $5
+ call FarCopyWRAM
+ ld hl, $7719
+ ld de, Unkn2Pals
+ ld bc, $0010
+ ld a, $5
+ call FarCopyWRAM
+ ld a, $8
+ ld [SGBPredef], a
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9251
+
+Function9251: ; 9251
+ ld hl, $5cb7
+ call Function9610
+ call Function9699
+ call Function96b3
+ ret
+; 925e
+
+Function925e: ; 925e
+ ld hl, $5bc7
+ call Function9610
+ ld de, Unkn2Pals
+ ld a, $4c
+ call Function9625
+ call Function9630
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Unkn2Pals
+ ld a, $1f
+ ld [hli], a
+ ld a, $0
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ call Function9699
+ call Function96b3
+ ret
+; 9289
+
+Function9289: ; 9289
+ ld de, Unkn1Pals
+ xor a
+ call Function976b
+ call Function9643
+ ld a, $1
+ call Function976b
+ call Function9643
+ ld a, $3
+ call Function976b
+ call Function9643
+ ld a, $2
+ call Function976b
+ call Function9643
+ ld a, $4
+ call Function976b
+ call Function9643
+ ld a, $7
+ call Function976b
+ call Function9643
+ ld a, $6
+ call Function976b
+ call Function9643
+ ld a, $5
+ call Function976b
+ call Function9643
+ ld a, $24
+ call Function9625
+ call Function9630
+ ld hl, AttrMap
+ ld bc, $0168
+ ld a, [PlayerGender]
+ and a
+ ld a, $1
+ jr z, .asm_92e3
+ ld a, $0
+
+.asm_92e3
+ call ByteFill
+ ld hl, $cdfb
+ ld bc, $0705
+ ld a, [PlayerGender]
+ and a
+ ld a, $0
+ jr z, .asm_92f6
+ ld a, $1
+
+.asm_92f6
+ call Function9663
+ ld hl, $cdff
+ ld [hl], $1
+ ld hl, $ceb7
+ ld bc, $0204
+ ld a, $1
+ call Function9663
+ ld hl, $cebb
+ ld bc, $0204
+ ld a, $2
+ call Function9663
+ ld hl, $cebf
+ ld bc, $0204
+ ld a, $3
+ call Function9663
+ ld hl, $cec3
+ ld bc, $0204
+ ld a, $4
+ call Function9663
+ ld hl, $cef3
+ ld bc, $0204
+ ld a, $5
+ call Function9663
+ ld hl, $cef7
+ ld bc, $0204
+ ld a, $6
+ call Function9663
+ ld hl, $cefb
+ ld bc, $0204
+ ld a, $7
+ call Function9663
+ ld a, [PlayerGender]
+ and a
+ push af
+ jr z, .asm_935d
+ ld hl, $ceff
+ ld bc, $0204
+ ld a, $1
+ call Function9663
+
+.asm_935d
+ pop af
+ ld c, $0
+ jr nz, .asm_9363
+ inc c
+
+.asm_9363
+ ld a, c
+ ld hl, $cdff
+ ld [hl], a
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9373
+
+Function9373: ; 9373
+ ld de, Unkn1Pals
+ ld a, $10
+ call Function9625
+ call Function9630
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ call Function9643
+ call Function9699
+ ld hl, $cdf8
+ ld bc, $0209
+ ld a, $1
+ call Function9663
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93a6
+
+Function93a6: ; 93a6
+ ld hl, $5c47
+ call Function9610
+ call Function9699
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93ba
+
+Function93ba: ; 93ba
+ ld de, Unkn1Pals
+ ld a, $1d
+ call Function9625
+ call Function9630
+ call Function9699
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93d3
+
+Function93d3: ; 93d3
+ ld a, [BattleType]
+ cp $3
+ jr z, .asm_93e6
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_93e6
+ ld hl, $5469
+ jr .asm_93e9
+
+.asm_93e6
+ ld hl, $5439
+
+.asm_93e9
+ ld de, Unkn1Pals
+ ld bc, $0040
+ ld a, $5
+ call FarCopyWRAM
+ call Function9699
+ ld hl, AttrMap
+ ld bc, $010a
+ ld a, $1
+ call Function9663
+ ld hl, $cde3
+ ld bc, $010a
+ ld a, $2
+ call Function9663
+ ld hl, $ce08
+ ld bc, $0901
+ ld a, $3
+ call Function9663
+ ld hl, $ce65
+ ld bc, $0305
+ ld a, $4
+ call Function9663
+ ld hl, $ce15
+ ld bc, $0305
+ ld a, $5
+ call Function9663
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9439
+
+INCBIN "baserom.gbc", $9439, $9499 - $9439
+
+Function9499: ; 9499
+ call Function91c8
+ ld de, $0014
+ ld hl, AttrMap
+ ld a, [$cf82]
+.asm_94a5
+ and a
+ jr z, .asm_94ac
+ dec a
+ add hl, de
+ jr .asm_94a5
+
+.asm_94ac
+ ld a, [$cf83]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [$cf82]
+ ld b, a
+ ld a, [$cf84]
+ inc a
+ sub b
+ ld b, a
+ ld a, [$cf83]
+ ld c, a
+ ld a, [$cf85]
+ sub c
+ inc a
+ ld c, a
+ ld a, $0
+ call Function9663
+ call Function96b3
+ ret
+; 94d0
+
+Function94d0: ; 94d0
+ ld hl, $5ba7
+ call Function9610
+ call Function9699
+ ld hl, $ce29
+ ld bc, $0a14
+ ld a, $2
+ call Function9663
+ ld hl, $ce51
+ ld bc, $0614
+ ld a, $1
+ call Function9663
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 94fa
+
+Function94fa: ; 94fa
+ ld de, Unkn1Pals
+ ld a, $4e
+ call Function9625
+ call Function9630
+ ld hl, $5521
+ ld de, Unkn2Pals
+ call Function9630
+ ld hl, $5521
+ ld de, $d048
+ call Function9630
+ call Function9699
+ call Function96b3
+ call Function96a4
+ ret
+; 9521
+
+INCBIN "baserom.gbc", $9521, $9529 - $9521
+
+Function9529: ; 9529
+ ld de, Unkn1Pals
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call Function974b
+ call Function9643
+ call Function9699
+ call Function96b3
+ call Function96a4
+ ret
+; 9542
+
+Function9542: ; 9542
+ ld de, Unkn1Pals
+ ld a, [CurPartySpecies]
+ call Function9775
+ call Function9643
+ call Function9699
+ call Function96b3
+ ret
+; 9555
+
+Function9555: ; 9555
+ ld hl, $5cc7
+ call Function9610
+ ld hl, $7681
+ ld de, Unkn2Pals
+ ld bc, $0008
+ ld a, $5
+ call FarCopyWRAM
+ ld de, $d078
+ ld a, $1c
+ call Function9625
+ call Function9630
+ call Function9699
+ ret
+; 9578
+
+Function9578: ; 9578
+ ld de, Unkn1Pals
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call Function9764
+ call Function9643
+ call Function9699
+ call Function96b3
+ call Function96a4
+ ret
+; 9591
+
+Function9591: ; 9591
+ ld hl, $55e0
+ ld de, Unkn1Pals
+ ld bc, $0010
+ ld a, $5
+ call FarCopyWRAM
+ call Function96a4
+ call Function9699
+ ld hl, $ce68
+ ld bc, $080e
+ ld a, $1
+ call Function9663
+ ld hl, $ce3e
+ ld bc, $0112
+ ld a, $1
+ call Function9663
+ ld hl, $cf1a
+ ld bc, $0112
+ ld a, $1
+ call Function9663
+ ld hl, AttrMap
+ ld bc, $1102
+ ld a, $1
+ call Function9663
+ ld hl, $ce4f
+ ld bc, $0c01
+ ld a, $1
+ call Function9663
+ call Function96b3
+ ret
+; 95e0
+
diff --git a/predef/sgb.asm b/predef/sgb.asm
new file mode 100644
index 000000000..323a0fbb7
--- /dev/null
+++ b/predef/sgb.asm
@@ -0,0 +1,591 @@
+Function864c: ; 864c
+; LoadSGBLayout
+ call CheckCGB
+ jp nz, Function8d59
+
+ ld a, b
+ cp $ff
+ jr nz, .asm_865a
+ ld a, [SGBPredef]
+
+.asm_865a
+ cp $fc
+ jp z, Function8ade
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, Table866f
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Function8a60
+ push de
+ jp [hl]
+; 866f
+
+Table866f: ; 866f
+ dw Function86ad
+ dw Function86b4
+ dw Function875c
+ dw Function8763
+ dw Function87b2
+ dw Function8852
+ dw Function8859
+ dw Function8867
+ dw Function8860
+ dw Function88b1
+ dw Function87ab
+ dw Function88cd
+ dw Function8884
+ dw Function891a
+ dw Function873c
+ dw Function8897
+ dw Function882a
+ dw Function889e
+ dw Function8928
+ dw Function8890
+ dw Function884b
+ dw Function891a
+ dw Function8823
+ dw Function87e9
+ dw Function8921
+ dw Function89a6
+ dw Function89ad
+ dw Function89d9
+ dw Function89e0
+ dw Function8860
+ dw Function8969
+; 86ad
+
+Function86ad: ; 86ad
+ ld hl, $5c66
+ ld de, $5aa6
+ ret
+; 86b4
+
+Function86b4: ; 86b4
+ ld hl, $5aa6
+ call Function9809
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld de, $68be
+ add hl, de
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hl]
+ ld [$cdaf], a
+ ld a, [EnemyHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld de, $68be
+ add hl, de
+ ld a, [hli]
+ ld [$cdb2], a
+ ld a, [hli]
+ ld [$cdb3], a
+ ld a, [hli]
+ ld [$cdb4], a
+ ld a, [hl]
+ ld [$cdb5], a
+ ld hl, $5cf6
+ ld de, $cdb9
+ ld bc, $0010
+ call CopyBytes
+ call Function9729
+ ld a, [hli]
+ ld [$cdbc], a
+ ld a, [hli]
+ ld [$cdbd], a
+ ld a, [hli]
+ ld [$cdbe], a
+ ld a, [hl]
+ ld [$cdbf], a
+ call Function973a
+ ld a, [hli]
+ ld [$cdc2], a
+ ld a, [hli]
+ ld [$cdc3], a
+ ld a, [hli]
+ ld [$cdc4], a
+ ld a, [hl]
+ ld [$cdc5], a
+ ld hl, $cda9
+ ld de, $cdb9
+ ld a, $1
+ ld [SGBPredef], a
+ ret
+; 873c
+
+Function873c: ; 873c
+ ld hl, $5bd6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld hl, $cdaa
+ ld [hl], $10
+ inc hl
+ inc hl
+ ld a, [PlayerHPPal]
+ add $2f
+ ld [hl], a
+ ld hl, $cda9
+ ld de, $5ad6
+ ret
+; 875c
+
+Function875c: ; 875c
+ ld hl, $5c76
+ ld de, $5a86
+ ret
+; 8763
+
+Function8763: ; 8763
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld a, [$cda1]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld de, $68be
+ add hl, de
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hl]
+ ld [$cdaf], a
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call Function974b
+ ld a, [hli]
+ ld [$cdb2], a
+ ld a, [hli]
+ ld [$cdb3], a
+ ld a, [hli]
+ ld [$cdb4], a
+ ld a, [hl]
+ ld [$cdb5], a
+ ld hl, $cda9
+ ld de, $5ac6
+ ret
+; 87ab
+
+Function87ab: ; 87ab
+ ld hl, $5c56
+ ld de, $cdaa
+ ret
+; 87b2
+
+Function87b2: ; 87b2
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld hl, $cdac
+ ld [hl], $9f
+ inc hl
+ ld [hl], $2a
+ inc hl
+ ld [hl], $5a
+ inc hl
+ ld [hl], $19
+ ld a, [CurPartySpecies]
+ call Function9775
+ ld a, [hli]
+ ld [$cdb2], a
+ ld a, [hli]
+ ld [$cdb3], a
+ ld a, [hli]
+ ld [$cdb4], a
+ ld a, [hl]
+ ld [$cdb5], a
+ ld hl, $cda9
+ ld de, $5ae6
+ ret
+; 87e9
+
+Function87e9: ; 87e9
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld hl, $cdac
+ 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 Function974b
+ ld a, [hli]
+ ld [$cdb2], a
+ ld a, [hli]
+ ld [$cdb3], a
+ ld a, [hli]
+ ld [$cdb4], a
+ ld a, [hl]
+ ld [$cdb5], a
+ ld hl, $cda9
+ ld de, $5ae6
+ ret
+; 8823
+
+Function8823: ; 8823
+ call Function87b2
+ ld de, $5af6
+ ret
+; 882a
+
+Function882a: ; 882a
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld hl, $cdac
+ ld [hl], $9f
+ inc hl
+ ld [hl], $2a
+ inc hl
+ ld [hl], $5a
+ inc hl
+ ld [hl], $19
+ ld hl, $cda9
+ ld de, $5a86
+ ret
+; 884b
+
+Function884b: ; 884b
+ ld hl, $5c36
+ ld de, $5a86
+ ret
+; 8852
+
+Function8852: ; 8852
+ ld hl, $5c96
+ ld de, $5b06
+ ret
+; 8859
+
+Function8859: ; 8859
+ ld hl, $5ca6
+ ld de, $5b76
+ ret
+; 8860
+
+Function8860: ; 8860
+ ld hl, $5cb6
+ ld de, $5a86
+ ret
+; 8867
+
+Function8867: ; 8867
+ ld b, $0
+ ld hl, $4878
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 8878
+
+INCBIN "baserom.gbc", $8878, $8884 - $8878
+
+Function8884: ; 8884
+ ld hl, $5b96
+ ld de, $5b56
+ ld a, $8
+ ld [SGBPredef], a
+ ret
+; 8890
+
+Function8890: ; 8890
+ ld hl, $5ba6
+ ld de, $5b86
+ ret
+; 8897
+
+Function8897: ; 8897
+ ld hl, $5c46
+ ld de, $5a86
+ ret
+; 889e
+
+Function889e: ; 889e
+ ld hl, $5a86
+ ld de, PlayerLightScreenCount
+ ld bc, $0010
+ call CopyBytes
+ ld hl, $5bb6
+ ld de, $5a86
+ ret
+; 88b1
+
+Function88b1: ; 88b1
+ ld hl, $5bd6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ call Function8a0c
+ ld hl, $cdaa
+ ld [hld], a
+ ld de, $5a86
+ ld a, $9
+ ld [SGBPredef], a
+ ret
+; 88cd
+
+Function88cd: ; 88cd
+ push bc
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ pop bc
+ ld a, c
+ and a
+ jr z, .asm_88ef
+ ld hl, $cdac
+ ld [hl], $e7
+ inc hl
+ ld [hl], $1c
+ inc hl
+ ld [hl], $62
+ inc hl
+ ld [hl], $c
+ jr .asm_8913
+
+.asm_88ef
+ ld hl, PartyMon1DVs
+ ld bc, $0030
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld c, l
+ ld b, h
+ ld a, [PlayerHPPal]
+ call Function974b
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hl]
+ ld [$cdaf], a
+
+.asm_8913
+ ld hl, $cda9
+ ld de, $5a86
+ ret
+; 891a
+
+Function891a: ; 891a
+ ld hl, $5cb6
+ ld de, $5a86
+ ret
+; 8921
+
+Function8921: ; 8921
+ ld hl, $5bc6
+ ld de, $5a86
+ ret
+; 8928
+
+Function8928: ; 8928
+ ld hl, $5bd6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld hl, $5a86
+ ld de, $cdb9
+ ld bc, $0010
+ call CopyBytes
+ call Function8a0c
+ ld hl, $cdaa
+ ld [hl], a
+ ld hl, $cdac
+ ld [hl], $2e
+ ld hl, $cdbc
+ ld a, $5
+ ld [hli], a
+ ld a, [$cf83]
+ ld [hli], a
+ ld a, [$cf82]
+ ld [hli], a
+ ld a, [$cf85]
+ ld [hli], a
+ ld a, [$cf84]
+ ld [hl], a
+ ld hl, $cda9
+ ld de, $cdb9
+ ret
+; 8969
+
+Function8969: ; 8969
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, $68ce
+ add hl, de
+ ld a, [$cf65]
+ and $3
+ sla a
+ sla a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hl]
+ ld [$cdaf], a
+ ld hl, $cda9
+ ld de, $5a86
+ ret
+; 89a6
+
+Function89a6: ; 89a6
+ ld hl, $5cd6
+ ld de, $5a86
+ ret
+; 89ad
+
+Function89ad: ; 89ad
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call Function974b
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hl]
+ ld [$cdaf], a
+ ld hl, $cda9
+ ld de, $5a86
+ ret
+; 89d9
+
+Function89d9: ; 89d9
+ ld hl, $5cc6
+ ld de, $5a86
+ ret
+; 89e0
+
+Function89e0: ; 89e0
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call Function9764
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hl]
+ ld [$cdaf], a
+ ld hl, $cda9
+ ld de, $5a86
+ ret
+; 8a0c
+
+Function8a0c: ; 8a0c
+ ld a, [TimeOfDayPal]
+ cp $2
+ jr c, .asm_8a16
+ ld a, $19
+ ret
+
+.asm_8a16
+ ld a, [$d19a]
+ cp $2
+ jr z, .asm_8a39
+ cp $4
+ jr z, .asm_8a3c
+ cp $7
+ jr z, .asm_8a3c
+ cp $5
+ jr z, .asm_8a3f
+ cp $6
+ jr z, .asm_8a42
+ ld a, [MapGroup]
+ ld e, a
+ ld d, $0
+ ld hl, $4a45
+ add hl, de
+ ld a, [hl]
+ ret
+
+.asm_8a39
+ ld a, $0
+ ret
+
+.asm_8a3c
+ ld a, $18
+ ret
+
+.asm_8a3f
+ ld a, $6
+ ret
+
+.asm_8a42
+ ld a, $3
+ ret
+; 8a45
+
+INCBIN "baserom.gbc", $8a45, $8a60 - $8a45
+
+Function8a60: ; 8a60
+ push de
+ call Function9809
+ pop hl
+ jp Function9809
+; 8a68
+
diff --git a/rst.asm b/rst.asm
new file mode 100644
index 000000000..d5bac0915
--- /dev/null
+++ b/rst.asm
@@ -0,0 +1,38 @@
+; rst vectors
+
+SECTION "rst0",ROM0[0]
+ di
+ jp Start
+
+SECTION "rst8",ROM0[FarCall]
+ jp FarCall_hl
+
+SECTION "rst10",ROM0[Bankswitch]
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+ ret
+
+SECTION "rst18",ROM0[$18]
+ rst $38
+
+SECTION "rst20",ROM0[$20]
+ rst $38
+
+SECTION "rst28",ROM0[JumpTable]
+ push de
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ jp [hl]
+
+; SECTION "rst30",ROM0[$30]
+; rst30 is midst rst28
+
+SECTION "rst38",ROM0[$38]
+ rst $38
+
diff --git a/stats/odd_eggs.asm b/stats/odd_eggs.asm
index 6922a2de7..68062ec3b 100644
--- a/stats/odd_eggs.asm
+++ b/stats/odd_eggs.asm
@@ -45,7 +45,7 @@ GiveOddEgg: ; 1fb4b6
ld a, $ff
ld [$d107], a
ld hl, NumItems
- call Function2f53
+ call TossItem
ld a, EGG
ld [$cd2a], a
ld a, $29
diff --git a/text/types.asm b/text/types.asm
new file mode 100644
index 000000000..0addaaf6e
--- /dev/null
+++ b/text/types.asm
@@ -0,0 +1,162 @@
+PrintMonTypes: ; 5090d
+; Print both types of CurSpecies on the stats screen at hl.
+
+ push hl
+ call GetBaseData
+ pop hl
+
+ push hl
+ ld a, [BaseType1]
+ call .PrintType
+
+ ld a, [BaseType1]
+ ld b, a
+ ld a, [BaseType2]
+ cp b
+ pop hl
+ jr z, .HideSecondType
+
+; Next row
+ ld bc, 20
+ add hl, bc
+
+.PrintType
+ ld b, a
+ jr PrintType
+
+.HideSecondType
+; This doesn't actually do anything.
+ ld a, " "
+ ld bc, 20 - 3
+ add hl, bc
+ ld [hl], a
+ inc bc
+ add hl, bc
+ ld bc, 5
+ jp ByteFill
+; 5093a
+
+PrintMoveType: ; 5093a
+; Print the type of move b at hl.
+
+ push hl
+ ld a, b
+ dec a
+ ld bc, Move2 - Move1
+ ld hl, Moves
+ call AddNTimes
+ ld de, StringBuffer1
+ ld a, BANK(Moves)
+ call FarCopyBytes
+ ld a, [StringBuffer1 + PlayerMoveType - PlayerMoveStruct]
+ pop hl
+
+ ld b, a
+; 50953
+
+PrintType: ; 50953
+; Print type b at hl.
+ ld a, b
+
+ push hl
+ add a
+ ld hl, TypeNames
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ pop hl
+
+ jp PlaceString
+; 50964
+
+
+GetTypeName: ; 50964
+; Copy the name of type $d265 to StringBuffer1.
+ ld a, [$d265]
+ ld hl, TypeNames
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, StringBuffer1
+ ld bc, $000d
+ jp CopyBytes
+; 5097b
+
+
+TypeNames: ; 5097b
+ dw Normal
+ dw Fighting
+ dw Flying
+ dw Poison
+ dw Ground
+ dw Rock
+ dw Bird
+ dw Bug
+ dw Ghost
+ dw Steel
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw UnknownType
+ dw Fire
+ dw Water
+ dw Grass
+ dw Electric
+ dw Psychic
+ dw Ice
+ dw Dragon
+ dw Dark
+
+Normal:
+ db "NORMAL@"
+Fighting:
+ db "FIGHTING@"
+Flying:
+ db "FLYING@"
+Poison:
+ db "POISON@"
+UnknownType:
+ db "???@"
+Fire:
+ db "FIRE@"
+Water:
+ db "WATER@"
+Grass:
+ db "GRASS@"
+Electric:
+ db "ELECTRIC@"
+Psychic:
+ db "PSYCHIC@"
+Ice:
+ db "ICE@"
+Ground:
+ db "GROUND@"
+Rock:
+ db "ROCK@"
+Bird:
+ db "BIRD@"
+Bug:
+ db "BUG@"
+Ghost:
+ db "GHOST@"
+Steel:
+ db "STEEL@"
+Dragon:
+ db "DRAGON@"
+Dark:
+ db "DARK@"
+; 50a28
+
diff --git a/tilesets/data_1.asm b/tilesets/data_1.asm
new file mode 100644
index 000000000..1124b3f2e
--- /dev/null
+++ b/tilesets/data_1.asm
@@ -0,0 +1,51 @@
+Tileset03GFX: ; 0x18000
+INCBIN "gfx/tilesets/03.lz"
+; 0x18606
+
+Tileset03Meta: ; 0x18606
+INCBIN "tilesets/03_metatiles.bin"
+; 0x18e06
+
+Tileset03Coll: ; 0x18e06
+INCBIN "tilesets/03_collision.bin"
+; 0x19006
+
+Tileset00GFX: ; 0x19006
+Tileset01GFX: ; 0x19006
+INCBIN "gfx/tilesets/01.lz"
+; 0x19c0e
+
+Tileset00Meta: ; 0x19c0e
+Tileset01Meta: ; 0x19c0e
+INCBIN "tilesets/01_metatiles.bin"
+; 0x1a40e
+
+Tileset00Coll: ; 0x1a40e
+Tileset01Coll: ; 0x1a40e
+INCBIN "tilesets/01_collision.bin"
+; 0x1a60e
+
+Tileset29GFX: ; 0x1a60e
+INCBIN "gfx/tilesets/29.lz"
+; 0x1af3e
+
+Tileset29Meta: ; 0x1af3e
+INCBIN "tilesets/29_metatiles.bin"
+; 0x1b33e
+
+Tileset29Coll: ; 0x1b33e
+INCBIN "tilesets/29_collision.bin"
+; 0x1b43e
+
+Tileset20GFX: ; 0x1b43e
+INCBIN "gfx/tilesets/20.lz"
+; 0x1b8fe
+
+Tileset20Meta: ; 0x1b8fe
+INCBIN "tilesets/20_metatiles.bin"
+; 0x1bcfe
+
+Tileset20Coll: ; 0x1bcfe
+INCBIN "tilesets/20_collision.bin"
+; 0x1bdfe
+
diff --git a/tilesets/data_2.asm b/tilesets/data_2.asm
new file mode 100644
index 000000000..a04f0c56b
--- /dev/null
+++ b/tilesets/data_2.asm
@@ -0,0 +1,62 @@
+Tileset07GFX: ; 0x1c30c
+INCBIN "gfx/tilesets/07.lz"
+; 0x1c73c
+
+Tileset07Meta: ; 0x1c73c
+INCBIN "tilesets/07_metatiles.bin"
+; 0x1cb3c
+
+Tileset07Coll: ; 0x1cb3c
+INCBIN "tilesets/07_collision.bin"
+; 0x1cc3c
+
+Tileset09GFX: ; 0x1cc3c
+INCBIN "gfx/tilesets/09.lz"
+; 0x1d04c
+
+Tileset09Meta: ; 0x1d04c
+INCBIN "tilesets/09_metatiles.bin"
+; 0x1d44c
+
+Tileset09Coll: ; 0x1d44c
+INCBIN "tilesets/09_collision.bin"
+; 0x1d54c
+
+Tileset06GFX: ; 0x1d54c
+INCBIN "gfx/tilesets/06.lz"
+; 0x1d92c
+
+Tileset06Meta: ; 0x1d92c
+INCBIN "tilesets/06_metatiles.bin"
+; 0x1dd2c
+
+Tileset06Coll: ; 0x1dd2c
+INCBIN "tilesets/06_collision.bin"
+; 0x1de2c
+
+Tileset13GFX: ; 0x1de2c
+INCBIN "gfx/tilesets/13.lz"
+; 0x1e58c
+
+Tileset13Meta: ; 0x1e58c
+INCBIN "tilesets/13_metatiles.bin"
+; 0x1e98c
+
+Tileset13Coll: ; 0x1e98c
+INCBIN "tilesets/13_collision.bin"
+; 0x1ea8c
+
+Tileset24GFX: ; 0x1ea8c
+INCBIN "gfx/tilesets/24.lz"
+; 0x1ee1c
+
+Tileset24Meta: ; 0x1ee1c
+Tileset30Meta: ; 0x1ee1c
+INCBIN "tilesets/30_metatiles.bin"
+; 0x1f21c
+
+Tileset24Coll: ; 0x1f21c
+Tileset30Coll: ; 0x1f21c
+INCBIN "tilesets/30_collision.bin"
+; 0x1f31c
+
diff --git a/tilesets/data_3.asm b/tilesets/data_3.asm
new file mode 100644
index 000000000..337573d20
--- /dev/null
+++ b/tilesets/data_3.asm
@@ -0,0 +1,65 @@
+Tileset23GFX: ; 0x20181
+INCBIN "gfx/tilesets/23.lz"
+; 0x206e1
+
+Tileset23Meta: ; 0x206e1
+INCBIN "tilesets/23_metatiles.bin"
+; 0x20ae1
+
+Tileset23Coll: ; 0x20ae1
+INCBIN "tilesets/23_collision.bin"
+; 0x20be1
+
+Tileset10GFX: ; 0x20be1
+INCBIN "gfx/tilesets/10.lz"
+; 0x213e1
+
+Tileset10Meta: ; 0x213e1
+INCBIN "tilesets/10_metatiles.bin"
+; 0x217e1
+
+Tileset10Coll: ; 0x217e1
+INCBIN "tilesets/10_collision.bin"
+; 0x218e1
+
+Tileset12GFX: ; 0x218e1
+INCBIN "gfx/tilesets/12.lz"
+; 0x22031
+
+Tileset12Meta: ; 0x22031
+INCBIN "tilesets/12_metatiles.bin"
+; 0x22431
+
+Tileset12Coll: ; 0x22431
+INCBIN "tilesets/12_collision.bin"
+; 0x22531
+
+Tileset14GFX: ; 0x22531
+INCBIN "gfx/tilesets/14.lz"
+; 0x22af1
+
+Tileset14Meta: ; 0x22af1
+INCBIN "tilesets/14_metatiles.bin"
+; 0x22ef1
+
+Tileset14Coll: ; 0x22ef1
+INCBIN "tilesets/14_collision.bin"
+; 0x22ff1
+
+Tileset17GFX: ; 0x22ff1
+INCBIN "gfx/tilesets/17.lz"
+; 0x23391
+
+Tileset17Meta: ; 0x23391
+INCBIN "tilesets/17_metatiles.bin"
+; 0x23791
+
+Tileset17Coll: ; 0x23791
+INCBIN "tilesets/17_collision.bin"
+; 0x23891
+
+; todo
+Tileset31Meta: ; 0x23891
+INCBIN "tilesets/31_metatiles.bin"
+; 0x23b11
+
diff --git a/tilesets/data_4.asm b/tilesets/data_4.asm
new file mode 100644
index 000000000..9b05877cb
--- /dev/null
+++ b/tilesets/data_4.asm
@@ -0,0 +1,52 @@
+Tileset15GFX: ; 0x30000
+INCBIN "gfx/tilesets/15.lz"
+; 0x304e0
+
+Tileset15Meta: ; 0x304e0
+INCBIN "tilesets/15_metatiles.bin"
+; 0x308e0
+
+Tileset15Coll: ; 0x308e0
+INCBIN "tilesets/15_collision.bin"
+; 0x309e0
+
+Tileset25GFX: ; 0x309e0
+INCBIN "gfx/tilesets/25.lz"
+; 0x30e80
+
+Tileset25Meta: ; 0x30e80
+INCBIN "tilesets/25_metatiles.bin"
+; 0x31280
+
+Tileset25Coll: ; 0x31280
+INCBIN "tilesets/25_collision.bin"
+; 0x31380
+
+Tileset27GFX: ; 0x31380
+INCBIN "gfx/tilesets/27.lz"
+; 0x318e0
+
+Tileset27Meta: ; 0x318e0
+INCBIN "tilesets/27_metatiles.bin"
+; 0x31ce0
+
+Tileset27Coll: ; 0x31ce0
+INCBIN "tilesets/27_collision.bin"
+; 0x31de0
+
+Tileset28GFX: ; 0x31de0
+INCBIN "gfx/tilesets/28.lz"
+; 0x321b0
+
+Tileset28Meta: ; 0x321b0
+INCBIN "tilesets/28_metatiles.bin"
+; 0x325b0
+
+Tileset28Coll: ; 0x325b0
+INCBIN "tilesets/28_collision.bin"
+; 0x326b0
+
+Tileset30GFX: ; 0x326b0
+INCBIN "gfx/tilesets/30.lz"
+; 0x329f0
+
diff --git a/tilesets/data_5.asm b/tilesets/data_5.asm
new file mode 100644
index 000000000..00cc1b956
--- /dev/null
+++ b/tilesets/data_5.asm
@@ -0,0 +1,61 @@
+Tileset21GFX: ; 0xb4000
+INCBIN "gfx/tilesets/21.lz"
+; 0xb48a0
+
+Tileset21Meta: ; 0xb48a0
+INCBIN "tilesets/21_metatiles.bin"
+; 0xb4ca0
+
+Tileset21Coll: ; 0xb4ca0
+INCBIN "tilesets/21_collision.bin"
+; 0xb4da0
+
+Tileset22GFX: ; 0xb4da0
+INCBIN "gfx/tilesets/22.lz"
+; 0xb50e0
+
+Tileset22Meta: ; 0xb50e0
+INCBIN "tilesets/22_metatiles.bin"
+; 0xb54e0
+
+Tileset22Coll: ; 0xb54e0
+INCBIN "tilesets/22_collision.bin"
+; 0xb55e0
+
+Tileset08GFX: ; 0xb55e0
+INCBIN "gfx/tilesets/08.lz"
+; 0xb59e0
+
+Tileset08Meta: ; 0xb59e0
+INCBIN "tilesets/08_metatiles.bin"
+; 0xb5de0
+
+Tileset08Coll: ; 0xb5de0
+INCBIN "tilesets/08_collision.bin"
+; 0xb5ee0
+
+Tileset02GFX: ; 0xb5ee0
+Tileset04GFX: ; 0xb5ee0
+INCBIN "gfx/tilesets/04.lz"
+; 0xb6ae8
+
+Tileset02Meta: ; 0xb6ae8
+INCBIN "tilesets/02_metatiles.bin"
+; 0xb72e8
+
+Tileset02Coll: ; 0xb72e8
+INCBIN "tilesets/02_collision.bin"
+; 0xb74e8
+
+Tileset16GFX: ; 0xb74e8
+INCBIN "gfx/tilesets/16.lz"
+; 0xb79a8
+
+Tileset16Meta: ; 0xb79a8
+INCBIN "tilesets/16_metatiles.bin"
+; 0xb7da8
+
+Tileset16Coll: ; 0xb7da8
+INCBIN "tilesets/16_collision.bin"
+; 0xb7ea8
+
diff --git a/tilesets/data_6.asm b/tilesets/data_6.asm
new file mode 100644
index 000000000..93d3b75af
--- /dev/null
+++ b/tilesets/data_6.asm
@@ -0,0 +1,76 @@
+Tileset31GFX: ; 0xdc000
+INCBIN "gfx/tilesets/31.lz"
+; 0xdc3d0
+
+Tileset18GFX: ; 0xdc3d0
+INCBIN "gfx/tilesets/18.lz"
+; 0xdcc50
+
+Tileset18Meta: ; 0xdcc50
+INCBIN "tilesets/18_metatiles.bin"
+; 0xdd050
+
+Tileset18Coll: ; 0xdd050
+INCBIN "tilesets/18_collision.bin"
+; 0xdd150
+
+Tileset05GFX: ; 0xdd150
+INCBIN "gfx/tilesets/05.lz"
+; 0xdd600
+
+Tileset05Meta: ; 0xdd600
+INCBIN "tilesets/05_metatiles.bin"
+; 0xdda00
+
+Tileset05Coll: ; 0xdda00
+INCBIN "tilesets/05_collision.bin"
+; 0xddb00
+
+Tileset19GFX: ; 0xddb00
+INCBIN "gfx/tilesets/19.lz"
+; 0xddf70
+
+Tileset19Meta: ; 0xddf70
+INCBIN "tilesets/19_metatiles.bin"
+; 0xde370
+
+Tileset19Coll: ; 0xde370
+INCBIN "tilesets/19_collision.bin"
+; 0xde470
+
+Tileset31Coll: ; 0xde470
+INCBIN "tilesets/31_collision.bin"
+; 0xde570
+
+Tileset11GFX: ; 0xde570
+INCBIN "gfx/tilesets/11.lz"
+; 0xde990
+
+Tileset11Meta: ; 0xde990
+INCBIN "tilesets/11_metatiles.bin"
+; 0xded90
+
+Tileset11Coll: ; 0xded90
+INCBIN "tilesets/11_collision.bin"
+; 0xdee90
+
+Tileset04Meta: ; 0xdee90
+INCBIN "tilesets/04_metatiles.bin"
+; 0xdf690
+
+Tileset04Coll: ; 0xdf690
+INCBIN "tilesets/04_collision.bin"
+; 0xdf890
+
+Tileset32Meta: ; 0xdf890
+INCBIN "tilesets/32_metatiles.bin"
+; 0xdfc90
+
+Tileset32Coll: ; 0xdfc90
+Tileset33Coll: ; 0xdfc90
+Tileset34Coll: ; 0xdfc90
+Tileset35Coll: ; 0xdfc90
+Tileset36Coll: ; 0xdfc90
+INCBIN "tilesets/36_collision.bin"
+; 0xdfd90
+
diff --git a/tilesets/data_7.asm b/tilesets/data_7.asm
new file mode 100644
index 000000000..206551811
--- /dev/null
+++ b/tilesets/data_7.asm
@@ -0,0 +1,17 @@
+Tileset26GFX: ; 0x1dc5a1
+Tileset32GFX: ; 0x1dc5a1
+Tileset33GFX: ; 0x1dc5a1
+Tileset34GFX: ; 0x1dc5a1
+Tileset35GFX: ; 0x1dc5a1
+Tileset36GFX: ; 0x1dc5a1
+INCBIN "gfx/tilesets/36.lz"
+; 0x1dd1a9
+
+Tileset26Meta: ; 0x1dd1a9
+INCBIN "tilesets/26_metatiles.bin"
+; 0x1dd5a9
+
+Tileset26Coll: ; 0x1dd5a9
+INCBIN "tilesets/26_collision.bin"
+; 0x1dd6a9
+
diff --git a/tilesets/data_8.asm b/tilesets/data_8.asm
new file mode 100644
index 000000000..82fe6b873
--- /dev/null
+++ b/tilesets/data_8.asm
@@ -0,0 +1,16 @@
+Tileset33Meta: ; 0x1e0000
+INCBIN "tilesets/33_metatiles.bin"
+; 0x1e0400
+
+Tileset34Meta: ; 0x1e0400
+INCBIN "tilesets/34_metatiles.bin"
+; 0x1e0800
+
+Tileset35Meta: ; 0x1e0800
+INCBIN "tilesets/35_metatiles.bin"
+; 0x1e0c00
+
+Tileset36Meta: ; 0x1e0c00
+INCBIN "tilesets/36_metatiles.bin"
+; 0x1e1000
+
diff --git a/tilesets/palette_maps.asm b/tilesets/palette_maps.asm
new file mode 100644
index 000000000..a7ef63c43
--- /dev/null
+++ b/tilesets/palette_maps.asm
@@ -0,0 +1,129 @@
+Tileset03PalMap: ; 0x4c075
+INCBIN "tilesets/03_palette_map.bin"
+; 0x4c0e5
+
+Tileset00PalMap: ; 0x4c0e5
+Tileset01PalMap: ; 0x4c0e5
+INCBIN "tilesets/01_palette_map.bin"
+; 0x4c155
+
+Tileset02PalMap: ; 0x4c155
+INCBIN "tilesets/02_palette_map.bin"
+; 0x4c1c5
+
+Tileset05PalMap: ; 0x4c1c5
+INCBIN "tilesets/05_palette_map.bin"
+; 0x4c235
+
+Tileset06PalMap: ; 0x4c235
+INCBIN "tilesets/06_palette_map.bin"
+; 0x4c2a5
+
+Tileset07PalMap: ; 0x4c2a5
+INCBIN "tilesets/07_palette_map.bin"
+; 0x4c315
+
+Tileset08PalMap: ; 0x4c315
+INCBIN "tilesets/08_palette_map.bin"
+; 0x4c385
+
+Tileset09PalMap: ; 0x4c385
+INCBIN "tilesets/09_palette_map.bin"
+; 0x4c3f5
+
+Tileset10PalMap: ; 0x4c3f5
+INCBIN "tilesets/10_palette_map.bin"
+; 0x4c465
+
+Tileset11PalMap: ; 0x4c465
+INCBIN "tilesets/11_palette_map.bin"
+; 0x4c4d5
+
+Tileset12PalMap: ; 0x4c4d5
+INCBIN "tilesets/12_palette_map.bin"
+; 0x4c545
+
+Tileset13PalMap: ; 0x4c545
+INCBIN "tilesets/13_palette_map.bin"
+; 0x4c5b5
+
+Tileset14PalMap: ; 0x4c5b5
+INCBIN "tilesets/14_palette_map.bin"
+; 0x4c625
+
+Tileset15PalMap: ; 0x4c625
+INCBIN "tilesets/15_palette_map.bin"
+; 0x4c695
+
+Tileset16PalMap: ; 0x4c695
+INCBIN "tilesets/16_palette_map.bin"
+; 0x4c705
+
+Tileset23PalMap: ; 0x4c705
+INCBIN "tilesets/23_palette_map.bin"
+; 0x4c775
+
+Tileset24PalMap: ; 0x4c775
+Tileset30PalMap: ; 0x4c775
+INCBIN "tilesets/30_palette_map.bin"
+; 0x4c7e5
+
+Tileset25PalMap: ; 0x4c7e5
+INCBIN "tilesets/25_palette_map.bin"
+; 0x4c855
+
+Tileset26PalMap: ; 0x4c855
+Tileset32PalMap: ; 0x4c855
+Tileset33PalMap: ; 0x4c855
+Tileset34PalMap: ; 0x4c855
+Tileset35PalMap: ; 0x4c855
+Tileset36PalMap: ; 0x4c855
+INCBIN "tilesets/36_palette_map.bin"
+; 0x4c8c5
+
+Tileset27PalMap: ; 0x4c8c5
+INCBIN "tilesets/27_palette_map.bin"
+; 0x4c935
+
+Tileset17PalMap: ; 0x4c935
+INCBIN "tilesets/17_palette_map.bin"
+; 0x4c9a5
+
+Tileset28PalMap: ; 0x4c9a5
+INCBIN "tilesets/28_palette_map.bin"
+; 0x4ca15
+
+Tileset18PalMap: ; 0x4ca15
+INCBIN "tilesets/18_palette_map.bin"
+; 0x4ca85
+
+Tileset19PalMap: ; 0x4ca85
+INCBIN "tilesets/19_palette_map.bin"
+; 0x4caf5
+
+Tileset20PalMap: ; 0x4caf5
+INCBIN "tilesets/20_palette_map.bin"
+; 0x4cb65
+
+INCBIN "baserom.gbc", $4cb65, $4cbd5-$4cb65
+
+Tileset29PalMap: ; 0x4cbd5
+INCBIN "tilesets/29_palette_map.bin"
+; 0x4cc45
+
+Tileset31PalMap: ; 0x4cc45
+INCBIN "tilesets/31_palette_map.bin"
+; 0x4ccb5
+
+Tileset21PalMap: ; 0x4ccb5
+INCBIN "tilesets/21_palette_map.bin"
+; 0x4cd25
+
+Tileset22PalMap: ; 0x4cd25
+INCBIN "tilesets/22_palette_map.bin"
+; 0x4cd95
+
+Tileset04PalMap: ; 0x4cd95
+INCBIN "tilesets/04_palette_map.bin"
+; 0x4ce05
+
diff --git a/tilesets/tileset_headers.asm b/tilesets/tileset_headers.asm
new file mode 100644
index 000000000..52829a427
--- /dev/null
+++ b/tilesets/tileset_headers.asm
@@ -0,0 +1,298 @@
+Tileset00: ; 0x4d596
+ dbw BANK(Tileset00GFX), Tileset00GFX
+ dbw BANK(Tileset00Meta), Tileset00Meta
+ dbw BANK(Tileset00Coll), Tileset00Coll
+ dw Tileset00Anim
+ dw $0000
+ dw Tileset00PalMap
+
+Tileset01: ; 0x4d5a5
+ dbw BANK(Tileset01GFX), Tileset01GFX
+ dbw BANK(Tileset01Meta), Tileset01Meta
+ dbw BANK(Tileset01Coll), Tileset01Coll
+ dw Tileset01Anim
+ dw $0000
+ dw Tileset01PalMap
+
+Tileset02: ; 0x4d5b4
+ dbw BANK(Tileset02GFX), Tileset02GFX
+ dbw BANK(Tileset02Meta), Tileset02Meta
+ dbw BANK(Tileset02Coll), Tileset02Coll
+ dw Tileset02Anim
+ dw $0000
+ dw Tileset02PalMap
+
+Tileset03: ; 0x4d5c3
+ dbw BANK(Tileset03GFX), Tileset03GFX
+ dbw BANK(Tileset03Meta), Tileset03Meta
+ dbw BANK(Tileset03Coll), Tileset03Coll
+ dw Tileset03Anim
+ dw $0000
+ dw Tileset03PalMap
+
+Tileset04: ; 0x4d5d2
+ dbw BANK(Tileset04GFX), Tileset04GFX
+ dbw BANK(Tileset04Meta), Tileset04Meta
+ dbw BANK(Tileset04Coll), Tileset04Coll
+ dw Tileset04Anim
+ dw $0000
+ dw Tileset04PalMap
+
+Tileset05: ; 0x4d5e1
+ dbw BANK(Tileset05GFX), Tileset05GFX
+ dbw BANK(Tileset05Meta), Tileset05Meta
+ dbw BANK(Tileset05Coll), Tileset05Coll
+ dw Tileset05Anim
+ dw $0000
+ dw Tileset05PalMap
+
+Tileset06: ; 0x4d5f0
+ dbw BANK(Tileset06GFX), Tileset06GFX
+ dbw BANK(Tileset06Meta), Tileset06Meta
+ dbw BANK(Tileset06Coll), Tileset06Coll
+ dw Tileset06Anim
+ dw $0000
+ dw Tileset06PalMap
+
+Tileset07: ; 0x4d5ff
+ dbw BANK(Tileset07GFX), Tileset07GFX
+ dbw BANK(Tileset07Meta), Tileset07Meta
+ dbw BANK(Tileset07Coll), Tileset07Coll
+ dw Tileset07Anim
+ dw $0000
+ dw Tileset07PalMap
+
+Tileset08: ; 0x4d60e
+ dbw BANK(Tileset08GFX), Tileset08GFX
+ dbw BANK(Tileset08Meta), Tileset08Meta
+ dbw BANK(Tileset08Coll), Tileset08Coll
+ dw Tileset08Anim
+ dw $0000
+ dw Tileset08PalMap
+
+Tileset09: ; 0x4d61d
+ dbw BANK(Tileset09GFX), Tileset09GFX
+ dbw BANK(Tileset09Meta), Tileset09Meta
+ dbw BANK(Tileset09Coll), Tileset09Coll
+ dw Tileset09Anim
+ dw $0000
+ dw Tileset09PalMap
+
+Tileset10: ; 0x4d62c
+ dbw BANK(Tileset10GFX), Tileset10GFX
+ dbw BANK(Tileset10Meta), Tileset10Meta
+ dbw BANK(Tileset10Coll), Tileset10Coll
+ dw Tileset10Anim
+ dw $0000
+ dw Tileset10PalMap
+
+Tileset11: ; 0x4d63b
+ dbw BANK(Tileset11GFX), Tileset11GFX
+ dbw BANK(Tileset11Meta), Tileset11Meta
+ dbw BANK(Tileset11Coll), Tileset11Coll
+ dw Tileset11Anim
+ dw $0000
+ dw Tileset11PalMap
+
+Tileset12: ; 0x4d64a
+ dbw BANK(Tileset12GFX), Tileset12GFX
+ dbw BANK(Tileset12Meta), Tileset12Meta
+ dbw BANK(Tileset12Coll), Tileset12Coll
+ dw Tileset12Anim
+ dw $0000
+ dw Tileset12PalMap
+
+Tileset13: ; 0x4d659
+ dbw BANK(Tileset13GFX), Tileset13GFX
+ dbw BANK(Tileset13Meta), Tileset13Meta
+ dbw BANK(Tileset13Coll), Tileset13Coll
+ dw Tileset13Anim
+ dw $0000
+ dw Tileset13PalMap
+
+Tileset14: ; 0x4d668
+ dbw BANK(Tileset14GFX), Tileset14GFX
+ dbw BANK(Tileset14Meta), Tileset14Meta
+ dbw BANK(Tileset14Coll), Tileset14Coll
+ dw Tileset14Anim
+ dw $0000
+ dw Tileset14PalMap
+
+Tileset15: ; 0x4d677
+ dbw BANK(Tileset15GFX), Tileset15GFX
+ dbw BANK(Tileset15Meta), Tileset15Meta
+ dbw BANK(Tileset15Coll), Tileset15Coll
+ dw Tileset15Anim
+ dw $0000
+ dw Tileset15PalMap
+
+Tileset16: ; 0x4d686
+ dbw BANK(Tileset16GFX), Tileset16GFX
+ dbw BANK(Tileset16Meta), Tileset16Meta
+ dbw BANK(Tileset16Coll), Tileset16Coll
+ dw Tileset16Anim
+ dw $0000
+ dw Tileset16PalMap
+
+Tileset17: ; 0x4d695
+ dbw BANK(Tileset17GFX), Tileset17GFX
+ dbw BANK(Tileset17Meta), Tileset17Meta
+ dbw BANK(Tileset17Coll), Tileset17Coll
+ dw Tileset17Anim
+ dw $0000
+ dw Tileset17PalMap
+
+Tileset18: ; 0x4d6a4
+ dbw BANK(Tileset18GFX), Tileset18GFX
+ dbw BANK(Tileset18Meta), Tileset18Meta
+ dbw BANK(Tileset18Coll), Tileset18Coll
+ dw Tileset18Anim
+ dw $0000
+ dw Tileset18PalMap
+
+Tileset19: ; 0x4d6b3
+ dbw BANK(Tileset19GFX), Tileset19GFX
+ dbw BANK(Tileset19Meta), Tileset19Meta
+ dbw BANK(Tileset19Coll), Tileset19Coll
+ dw Tileset19Anim
+ dw $0000
+ dw Tileset19PalMap
+
+Tileset20: ; 0x4d6c2
+ dbw BANK(Tileset20GFX), Tileset20GFX
+ dbw BANK(Tileset20Meta), Tileset20Meta
+ dbw BANK(Tileset20Coll), Tileset20Coll
+ dw Tileset20Anim
+ dw $0000
+ dw Tileset20PalMap
+
+Tileset21: ; 0x4d6d1
+ dbw BANK(Tileset21GFX), Tileset21GFX
+ dbw BANK(Tileset21Meta), Tileset21Meta
+ dbw BANK(Tileset21Coll), Tileset21Coll
+ dw Tileset21Anim
+ dw $0000
+ dw Tileset21PalMap
+
+Tileset22: ; 0x4d6e0
+ dbw BANK(Tileset22GFX), Tileset22GFX
+ dbw BANK(Tileset22Meta), Tileset22Meta
+ dbw BANK(Tileset22Coll), Tileset22Coll
+ dw Tileset22Anim
+ dw $0000
+ dw Tileset22PalMap
+
+Tileset23: ; 0x4d6ef
+ dbw BANK(Tileset23GFX), Tileset23GFX
+ dbw BANK(Tileset23Meta), Tileset23Meta
+ dbw BANK(Tileset23Coll), Tileset23Coll
+ dw Tileset23Anim
+ dw $0000
+ dw Tileset23PalMap
+
+Tileset24: ; 0x4d6fe
+ dbw BANK(Tileset24GFX), Tileset24GFX
+ dbw BANK(Tileset24Meta), Tileset24Meta
+ dbw BANK(Tileset24Coll), Tileset24Coll
+ dw Tileset24Anim
+ dw $0000
+ dw Tileset24PalMap
+
+Tileset25: ; 0x4d70d
+ dbw BANK(Tileset25GFX), Tileset25GFX
+ dbw BANK(Tileset25Meta), Tileset25Meta
+ dbw BANK(Tileset25Coll), Tileset25Coll
+ dw Tileset25Anim
+ dw $0000
+ dw Tileset25PalMap
+
+Tileset26: ; 0x4d71c
+ dbw BANK(Tileset26GFX), Tileset26GFX
+ dbw BANK(Tileset26Meta), Tileset26Meta
+ dbw BANK(Tileset26Coll), Tileset26Coll
+ dw Tileset26Anim
+ dw $0000
+ dw Tileset26PalMap
+
+Tileset27: ; 0x4d72b
+ dbw BANK(Tileset27GFX), Tileset27GFX
+ dbw BANK(Tileset27Meta), Tileset27Meta
+ dbw BANK(Tileset27Coll), Tileset27Coll
+ dw Tileset27Anim
+ dw $0000
+ dw Tileset27PalMap
+
+Tileset28: ; 0x4d73a
+ dbw BANK(Tileset28GFX), Tileset28GFX
+ dbw BANK(Tileset28Meta), Tileset28Meta
+ dbw BANK(Tileset28Coll), Tileset28Coll
+ dw Tileset28Anim
+ dw $0000
+ dw Tileset28PalMap
+
+Tileset29: ; 0x4d749
+ dbw BANK(Tileset29GFX), Tileset29GFX
+ dbw BANK(Tileset29Meta), Tileset29Meta
+ dbw BANK(Tileset29Coll), Tileset29Coll
+ dw Tileset29Anim
+ dw $0000
+ dw Tileset29PalMap
+
+Tileset30: ; 0x4d758
+ dbw BANK(Tileset30GFX), Tileset30GFX
+ dbw BANK(Tileset30Meta), Tileset30Meta
+ dbw BANK(Tileset30Coll), Tileset30Coll
+ dw Tileset30Anim
+ dw $0000
+ dw Tileset30PalMap
+
+Tileset31: ; 0x4d767
+ dbw BANK(Tileset31GFX), Tileset31GFX
+ dbw BANK(Tileset31Meta), Tileset31Meta
+ dbw BANK(Tileset31Coll), Tileset31Coll
+ dw Tileset31Anim
+ dw $0000
+ dw Tileset31PalMap
+
+Tileset32: ; 0x4d776
+ dbw BANK(Tileset32GFX), Tileset32GFX
+ dbw BANK(Tileset32Meta), Tileset32Meta
+ dbw BANK(Tileset32Coll), Tileset32Coll
+ dw Tileset32Anim
+ dw $0000
+ dw Tileset32PalMap
+
+Tileset33: ; 0x4d785
+ dbw BANK(Tileset33GFX), Tileset33GFX
+ dbw BANK(Tileset33Meta), Tileset33Meta
+ dbw BANK(Tileset33Coll), Tileset33Coll
+ dw Tileset33Anim
+ dw $0000
+ dw Tileset33PalMap
+
+Tileset34: ; 0x4d794
+ dbw BANK(Tileset34GFX), Tileset34GFX
+ dbw BANK(Tileset34Meta), Tileset34Meta
+ dbw BANK(Tileset34Coll), Tileset34Coll
+ dw Tileset34Anim
+ dw $0000
+ dw Tileset34PalMap
+
+Tileset35: ; 0x4d7a3
+ dbw BANK(Tileset35GFX), Tileset35GFX
+ dbw BANK(Tileset35Meta), Tileset35Meta
+ dbw BANK(Tileset35Coll), Tileset35Coll
+ dw Tileset35Anim
+ dw $0000
+ dw Tileset35PalMap
+
+Tileset36: ; 0x4d7b2
+ dbw BANK(Tileset36GFX), Tileset36GFX
+ dbw BANK(Tileset36Meta), Tileset36Meta
+ dbw BANK(Tileset36Coll), Tileset36Coll
+ dw Tileset36Anim
+ dw $0000
+ dw Tileset36PalMap
+
+; 0x4d7c1
+
diff --git a/trainers/dvs.asm b/trainers/dvs.asm
new file mode 100644
index 000000000..2277c7872
--- /dev/null
+++ b/trainers/dvs.asm
@@ -0,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
+ ; 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
+
diff --git a/wram.asm b/wram.asm
index 14fb8d5a3..6f25a2f96 100644
--- a/wram.asm
+++ b/wram.asm
@@ -477,7 +477,10 @@ BattleMonType1: ; c64a
BattleMonType2: ; c64b
ds 1
- ds 23
+ ds 10
+
+OTName: ; c656
+ ds 13
CurOTMon: ; c663
ds 1
@@ -585,6 +588,7 @@ PlayerPerishCount: ; c677
ds 1
PlayerFuryCutterCount: ; c678
ds 1
+PlayerProtectCount: ; c679
ds 1
EnemyRolloutCount: ; c67a
@@ -600,6 +604,7 @@ EnemyPerishCount: ; c67f
ds 1
EnemyFuryCutterCount: ; c680
ds 1
+EnemyProtectCount: ; c681
ds 1
PlayerDamageTaken: ; c682
@@ -829,7 +834,23 @@ WILDMON EQU 4
CurSpecies: ; cf60
ds 1
- ds $13
+ ds 6
+
+Requested2bpp: ; cf67
+ ds 1
+Requested2bppSource: ; cf68
+ ds 2
+Requested2bppDest: ; cf6a
+ ds 2
+
+Requested1bpp: ; cf6c
+ ds 1
+Requested1bppSource: ; cf6d
+ ds 2
+Requested1bppDest: ; cf6f
+ ds 2
+
+ ds 3
MenuSelection:; cf74
ds 1
@@ -844,7 +865,14 @@ TextDelayFrames: ; cfb2
VBlankOccurred: ; cfb3
ds 1
- ds 8
+PredefID: ; cfb4
+ ds 1
+PredefTemp: ; cfb5
+ ds 2
+PredefAddress: ; cfb7
+ ds 2
+
+ ds 3
GameTimerPause: ; cfbc
; bit 0
@@ -1176,25 +1204,25 @@ EastConnectionWindow: ; d1d7
ds 2
-TileSetHeader:
-TileSetBank: ; d1d9
+TilesetHeader:
+TilesetBank: ; d1d9
ds 1
-TileSetAddress: ; d1da
+TilesetAddress: ; d1da
ds 2
-TileSetBlocksBank: ; d1dc
+TilesetBlocksBank: ; d1dc
ds 1
-TileSetBlocksAddress: ; d1dd
+TilesetBlocksAddress: ; d1dd
ds 2
-TileSetCollisionBank: ; d1df
+TilesetCollisionBank: ; d1df
ds 1
-TileSetCollisionAddress: ; d1e0
+TilesetCollisionAddress: ; d1e0
ds 2
-TileSetAnim: ; d1e2
+TilesetAnim: ; d1e2
; bank 3f
ds 2
; unused ; d1e4
ds 2
-TileSetPalettes: ; d1e6
+TilesetPalettes: ; d1e6
; bank 3f
ds 2
@@ -2000,12 +2028,12 @@ PartyMon6Nickname: ; de78
PartyMonNicknamesEnd
SECTION "Pokedex",WRAMX[$de99],BANK[1]
-PokedexSeen: ; de99
- ds 32
-EndPokedexSeen:
-PokedexCaught: ; deb9
+PokedexCaught: ; de99
ds 32
EndPokedexCaught:
+PokedexSeen: ; deb9
+ ds 32
+EndPokedexSeen:
UnownDex: ; ded9
ds 26
UnlockedUnowns: ; def3